Files
BarangaySystem/app/Http/Controllers/Helpers/Legacy/Backup/DBEXT/USERINFODB.php
2026-06-06 18:43:00 +08:00

306 lines
9.8 KiB
PHP

<?php
class DB_USERINFO
{
public $DB = false;
public $tablename = 'userinfo';
use BASICDB;
public function __construct($DB = false)
{
if (!$DB) {
$DB = DB();
}
if (!$DB) {
return false;
}
if ($DB) {
$this->DB = $DB;
}
if (!$this->tablename) {
return false;
}
}
function NewUserInfo($targetuserlogin, $fullname = '', $firstname = '', $middlename = '', $lastname = '', $landline = '', $mobile = '', $email = '', $altemail = '', $altlandline = '', $altmobile = '', $credit_card = '', $bankdetails = '[]', $facebookurl = '', $photourl = '[]', $otherdetails = '[]', $addresses = '[]')
{
if (!$targetuserlogin) {
return false;
}
$usercheck = DBQUERY()->USERS()->getDetailsbyUIDorHashkey($targetuserlogin)['uid'] ?? false;
if (!$usercheck) {
return false;
}
$hashkey = $this->GenerateNewHash();
if ($bankdetails) {
if (is_array($bankdetails)) {
$bankdetails = json_encode($bankdetails);
}
} else {
$bankdetails = '[]';
}
if ($otherdetails) {
if (is_array($otherdetails)) {
$otherdetails = json_encode($otherdetails);
}
} else {
$otherdetails = '[]';
}
if ($addresses) {
if (is_array($otherdetails)) {
$otherdetails = json_encode($otherdetails);
}
} else {
$addresses = '[]';
}
$data = [
'hashkey' => $hashkey,
'targetuserlogin' => $targetuserlogin,
'fullname' => $fullname,
'firstname' => $firstname,
'middlename' => $middlename,
'lastname' => $lastname,
'landline' => $landline,
'mobile' => $mobile,
'email' => $email,
'altemail' => $altemail,
'altlandline' => $altlandline,
'altmobile' => $altmobile,
'credit_card' => $credit_card,
'bankdetails' => $bankdetails,
'facebookurl' => $facebookurl,
'photourl' => $photourl,
'otherdetails' => $otherdetails,
'addresses' => $addresses
];
$insert = $this->InsertIntoDB($data);
return $insert;
}
function GetbyTargetUserUID($useruidorhashkey, $fieldstoselect = '')
{
$result = $this->ListbyTargetUserUID($useruidorhashkey, $fieldstoselect);
return $result[0] ?? [];
}
function ListbyTargetUserUID($useruidorhashkey, $fieldstoselect = '')
{
if (!$useruidorhashkey) {
return false;
}
if (!is_numeric($useruidorhashkey)) {
$useruidorhashkey = DB_USERS($this->DB)->GetUserUIDbyHashkey($useruidorhashkey) ?? false;
}
if (!$useruidorhashkey || !is_numeric($useruidorhashkey)) {
return false;
}
return $this->ListFromDB(['targetuserlogin' => $useruidorhashkey], [], $fieldstoselect);
}
function ModifybyTargetUserUID($targetuserUID, $data)
{
if (!$targetuserUID || !$data) {
return false;
}
$wherearray = ['targetuserlogin' => $targetuserUID];
return $this->ModifySingleRowwithVerification($data, $wherearray);
}
function GetAddresses($targetuserUID)
{
if (!$targetuserUID) {
return false;
}
$details = $this->GetbyTargetUserUID($targetuserUID);
if (!$details) {
return false;
}
$addresses = $details['addresses'] ?? null;
if ($addresses) {
$addresses = tryjsondecode($addresses, true);
}
return $addresses;
}
function GetLastAddress($targetuserUID)
{
$details = $this->GetAddresses($targetuserUID);
if ($details === false) {
return false;
}
if ($details === null) {
return null;
}
$details[count($details) - 1]['key'] = count($details) - 1;
return $details[count($details) - 1];
}
function getDefaultAddress($targetuserUID)
{
if (!$targetuserUID) {
return false;
}
$details = $this->GetAddresses($targetuserUID);
if (!$details) {
return false;
}
if (count($details) === 1) {
$details['key'] = 0;
return $details[0];
}
foreach ($details as $key => $value) {
if ($value['default']) {
$value['key'] = $key;
return $value;
}
}
return null;
}
function SetAddresses($targetuserUID, $newaddresses)
{
if (!$targetuserUID || !is_numeric($targetuserUID)) {
return false;
}
$data = [];
if (is_array($newaddresses)) {
$newaddresses = array_values($newaddresses);
$newaddresses = json_encode($newaddresses);
}
$data['addresses'] = $newaddresses;
return $this->ModifybyTargetUserUID($targetuserUID, $data);
}
function AddAddress($targetuserUID, $address, $addressname, $contactname, $contactnumber, $default = false)
{
if (!$targetuserUID || !$address || !$addressname || !$contactname || !$contactnumber) {
return false;
}
if ($default === 'true') {
$default = true;
} elseif ($default === 'false') {
$default = 0;
}
$data = $this->GetAddresses($targetuserUID);
if ($data === false) {
return false;
}
if (!$data) {
$data = [];
}
if ($default) {
foreach ($data as $key => $value) {
$data[$key][4] = false;
}
}
$data[] = [$address, $addressname, $contactname, $contactnumber, $default];
$submit = $this->SetAddresses($targetuserUID, $data);
if (!$submit) {
return false;
}
return $this->GetLastAddress($targetuserUID);
}
function RemoveAddress($targetuserUID, $index)
{
if (!$targetuserUID || !is_numeric($index)) {
return false;
}
$addressees = $this->GetAddresses($targetuserUID);
if ($addressees === false) {
return false;
}
if (!isset($addressees[$index])) {
return false;
}
unset($addressees[$index]);
$addressees = array_values($addressees);
return $this->SetAddresses($targetuserUID, $addressees);
}
function ModifyAddressbyIndex($targetuserUID, $index,$name=null,$address=null,$contactname=null,$contactnumber=null,$default=null)
{
if(!$name && !$address && !$contactname && !$contactnumber && $default===null) {return false;}
if (!$targetuserUID || !is_numeric($index)) {
return false;
}
$addressees = $this->GetAddresses($targetuserUID);
if ($addressees === false) {
return false;
}
if (!isset($addressees[$index])) {
return false;
}
$dataname= $addressees[$index][1] ?? false;
$dataaddress = $addressees[$index][0] ?? false;
$datacontactname =$addressees[$index][2] ?? false;
$datacontactnumber = $addressees[$index][3] ?? false;
$datadefault = $addressees[$index][4] ?? false;
$finalname = $name ?? $dataname;
$finaladdress = $address ?? $dataaddress;
$finalcontactname = $contactname ?? $datacontactname;
$finaldatacontactnumber =$contactnumber ?? $datacontactnumber;
if($default !==null){
$finaldefault = $default;
}else{
$finaldefault= $datadefault;
}
if ($finaldefault) {
foreach ($addressees as $key => $value) {
$addressees[$key][4] = false;
}
}
$addressees[$index]=[$finaladdress,$finalname,$finalcontactname,$finaldatacontactnumber,$finaldefault];
$addressees = array_values($addressees);
return $this->SetAddresses($targetuserUID, $addressees);
}
function SetAddressAsDefault($targetuserUID,$index){
return $this->ModifyAddressbyIndex($targetuserUID, $index,null,null,null,null,true);
}
function EmptyAddresses($targetuserUID)
{
return $this->SetAddresses($targetuserUID, '');
}
function ShowAddressFormat()
{
return ['Address', 'Address Name', 'Contact Name', 'Contact Number', 'default'];
}
}
function DB_USERINFO($db = false)
{
return new DB_USERINFO($db);
}
function USERINFO_MULTIPLESEARCH($data = [], $likefields = [], $fieldstoselectarray = '', $orderby = '', $noindex = 0, $whereappend = ' and ', $dateonlyarray = '', $newdata = false)
{
return new USERINFO_QUICK_MULTIPLESEARCH($data, $likefields, $fieldstoselectarray, $orderby, $noindex, $whereappend, $dateonlyarray, $newdata);
}
class USERINFO_QUICK_MULTIPLESEARCH
{
use DBClassSearch;
public $data;
public $tablename = 'users';
private $parentidresults = [];
public $DB;
public function __construct($data = [], $likefields = [], $fieldstoselectarray = '', $orderby = '', $noindex = 0, $whereappend = ' and ', $dateonlyarray = '', $newdata = false)
{
return $this->initialize($data, $likefields, $fieldstoselectarray, $orderby, $noindex, $whereappend, $dateonlyarray, $newdata);
}
function FindName($uid)
{
return $this->Find($fieldname = 'uid', $contenttosearch = $uid, $exact = true)[0]['name'];
}
}