db->table('t_supplierdetailsn') ->select('SupplierID, SupplierName,ADeleteRequistionLineItemddress'); //->where('roleId !=', 1); $query = $builder->get(); return $query->getResult(); } /** * This function is used to get the userId information * @return array $result : This is result of the query */ function getusers() { $builder = $this->db->table('tbl_users') ->select('userId, name'); //->where('roleId !=', 1); $query = $builder->get(); return $query->getResult(); } /* This function is used to getEditRequistItemList view the information * @return array $result : This is result of the query */ // don't forgot to check this 13th april 2024. function getEditRequistItemList($ReqNo) { $result = $this->db->query("CALL P_GET_REQUISTITEMLIST('".$ReqNo."')"); //echo 'REQUISTITEMLIST Line item view successfully'; // $result->next_result(); if($result->getNumRows() > 0) { return $result->getResult(); } /* $subQuery ='select distinct Req.ReqNo, Req.MaterialCode,Mat.MaterialName,Mat.UOM, Req.Quantity, ifnull(Po.Quantity,0) as POQTY,sta.StatusName from t_requestion_details Req join t_materialmaster Mat on Req.MaterialCode = Mat.MaterialCode left join t_purchaseorder_lineitem Po on Po.ReqNo = Req.ReqNo left join t_purchaseorder_master POmast on POmast.PONO=Po.PONO and Po.MaterialCode = Req.MaterialCode join t_status sta on sta.StatusCode = Req.Status where Req.ReqNo = ? and POmast.Status != ?'; $query = $this->db->query($subQuery, [$ReqNo,PO_AMENDED)); return $query->getResult(); */ } /** * This function is used to get the userId information * @return array $result : This is result of the query */ function getStatus() { $builder = $this->db->table('t_status') ->select('StatusCode,StatusName') ->where('StatusType', REQUISTSTATUS) ->where('StatusCode !=', REQ_DRAFT); $query = $builder->get(); return $query->getResult(); } /* This function is used to get the Raw Material information * @return array $result : This is result of the query */ function getRequistionList($ReqNo, $IsArray = '') { $result = $this->db->query("CALL P_GET_AllREQUISTION('".$ReqNo."')"); if (!$result) { return []; } if ($IsArray != '') { $data = $result->getResultArray(); // Fetch as an array return array_reverse($data); // Reverse the array and return } else { $data = $result->getResult(); // Fetch as an object array return array_reverse($data); // Reverse the array and return } } /** * This function is used to get Employee details based on Employee ID Selection * @return array $result : This is result of the query */ function GetEmployeeDetails($EmpID) { $builder = $this->db->table('t_employee_details EMP') ->select(' EMP.EmpID,EMP.Designation,DEPT.DEPCode,DEPT.DepartmentName') ->join('t_departmentdetails DEPT', 'EMP.Departmentcode = DEPT.DEPCode') ->where('EMP.EmpID ',$EmpID ); $query = $builder->get(); return $query->getResultArray(); } /** * This function is used to get the Cost Center details for the Login user department * @return array $result : This is result of the query */ function GetCostCenterByDept($DeptId) { $builder = $this->db->table('t_costcenter_master Mast ') ->select('Mast.CostCenterCode,Mast.CostCenterName') ->where('Mast.IsActive ',1 ); // ->join('t_costcenter_departments COST', 'COST.CostCenterCode = Mast.CostCenterCode','left') // ->where('COST.DEPCode ',$DeptId ); $query = $builder->get(); return $query->getResultArray(); } /** * This function is used to get the Available BudgetAmount for the Cost center * @return array $result : This is result of the query */ function GetAvailableBudgetAmount($CostCode,$Year,$BudgetType) { $builder = $this->db->table('t_costcenter_budget') ->select('BudgetAmount') ->where('CostCenterCode',$CostCode ) ->where('BudgetYear',$Year ) ->where('BudgetType',$BudgetType ); $query = $builder->get(); return $query->getResultArray(); } function EditMaterialCode($ReqNo,$ReqType) { $subQuery ='SELECT Mat.MaterialCode,Mat.MaterialName,Mat.UOM from t_materialmaster Mat where Mat.MaterialCode not in (select Req.MaterialCode from t_requestion_details Req join t_requestion_master mast on Req.ReqNo = mast.ReqNo where mast.ReqNo=? and mast.ReqType=? ) and Mat.MaterialType=?'; $query = $this->db->query($subQuery, [$ReqNo,$ReqType,$ReqType]); return $query->getResult(); } /** * This function is used to get the Material details for the Request type * @return array $result : This is result of the query */ function GetMaterialCode($ReqType,$NotArray='') { $builder = $this->db->table('t_materialmaster') ->select('MaterialCode, MaterialName,UOM') ->where('IsActive',1); //->where('MaterialType',$ReqType ); $query = $builder->get(); if($NotArray == '') { return $query->getResultArray(); } else { return $query->getResult(); } } /** * This function is used to get the Raw Material information * @return array $result : This is result of the query */ function getRawMaterialList($MaterialCode) { $builder = $this->db->table('t_materialmaster') ->select('MaterialName,UOM') ->where('MaterialCode',$MaterialCode ); $query = $builder->get(); return $query->getResultArray(); } /** * This function is used to get the Config value from configuration table * @return array $result : This is result of the query */ function getConfigValue($ConfigID ,$ConfigValue = '') { $builder = $this->db->table('t_configdetails') ->select('ConfigValue') ->where('Config_id ',$ConfigID ); if($ConfigValue != '') { $builder->where('ConfigValue != ',$ConfigValue ); } $query = $builder->get(); return $query->getResult(); } /** * This function is used to get the All employees * @return array $result : This is result of the query */ function getAllEmployees() { $builder = $this->db->table('t_employee_details') ->select('EmpID,FirstName,LastName'); $query = $builder->get(); return $query->getResult(); } /** * This function is used to get the Employee Details * @return array $result : This is result of the query */ function getEmpIdByUserID($UserID) { $subQuery ='SELECT EMP.EmpID,EMP.FirstName,EMP.Designation,DEPT.DEPCode,DEPT.DepartmentName FROM t_employee_details EMP JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode WHERE EMP.EmpID=(select EmpID from tbl_users where userId=?)'; $query = $this->db->query($subQuery, [$UserID]); return $query->getResult(); } /** * This function is used to get the CostCenter for the Selected Employee * @return array $result : This is result of the query */ function getCostCenterUserID($UserID) { // $subQuery ='SELECT Mast.CostCenterCode,Mast.CostCenterName from t_costcenter_master Mast // LEFT JOIN t_costcenter_departments COST ON COST.CostCenterCode = Mast.CostCenterCode // WHERE COST.DEPCode=(select Departmentcode from t_employee_details where EmpID = (select EmpID from tbl_users where userId=?))'; $subQuery ='SELECT Mast.CostCenterCode,Mast.CostCenterName from t_costcenter_master Mast where Mast.IsActive = 1'; $query = $this->db->query($subQuery, [$UserID]); return $query->getResult(); } /** * This function is used to get the Purchase order Type * @return array $result : This is result of the query */ function CheckDraftStatus($UserID) { $subQuery = 'select count(ReqNo) as cnt,ReqNo from t_requestion_master where Requestedby= ( select EmpID from tbl_users where userId=?) and status=?'; $query = $this->db->query($subQuery, [$UserID,REQ_DRAFT]); return $query->getResult(); } /** * This function is used to get the Requsition List for the login user * @return array $result : This is result of the query */ function getRequistDetails($ReqID,$NoArray='') { $subQuery = 'select distinct ReqNo,ReqType,Status,Requestedby,DATE_FORMAT(mast.CreatedDate, "%d-%m-%Y") as CreatedDate,Schedule_Type,NumberOfService,Service_Period ,emp.FirstName,emp.EmpID,emp.Designation, Dept.DEPCode,Dept.DepartmentName,DATE_FORMAT(mast.ReqDate, "%d-%m-%Y") as ReqDate,mast.CostCenterCode,Cost.CostCenterName from t_requestion_master mast left join t_costcenter_master Cost on Cost.CostCenterCode = mast.CostCenterCode join t_employee_details emp on mast.Requestedby = emp.EmpID join t_departmentdetails Dept on emp.Departmentcode = Dept.DEPCode where ReqNo=?'; $query = $this->db->query($subQuery, [$ReqID]); if($NoArray == '') { return $query->getResultArray(); } else { return $query->getResult(); } } /** * This function is used to get the Requsition List for the login user * @return array $result : This is result of the query */ function getRequistListUserID($UserID) { $subQuery = 'select ReqNo, ReqType ,Status,CreatedDate ,StatusName from t_requestion_master mast join t_status st on st.StatusCode= mast.Status where Requestedby = ( select EmpID from tbl_users where userId=?) and Status != ? '; $query = $this->db->query($subQuery, [$UserID,REQ_DELETED]); return $query->getResult(); } /** * This function is used to get the Requsition List for the login user * @return array $result : This is result of the query */ function getRequistItemList($ReqID,$NoArray='') { /* $subQuery = 'select distinct Req.ReqNo, Mat.MaterialCode,Mat.MaterialName,Mat.UOM, Req.Quantity,sum(Po.Quantity) as POQTY,sta.StatusName from t_materialmaster Mat left join t_requestion_details Req on Req.MaterialCode = Mat.MaterialCode left join t_purchaseorder_lineitem Po on Po.ReqNo = Req.ReqNo and Po.MaterialCode = Req.MaterialCode left join t_status sta on sta.StatusCode = Req.Status where Req.ReqNo=? group by Po.ReqNo,Req.MaterialCode'; $query = $this->db->query($subQuery, [$ReqID)); */ // $result = $this->db-> query("CALL P_GET_REQUISTITEMLIST('".$ReqID."')") ; or die(mysql_error()); // $result ->next_result(); $result = $this->db->query("CALL P_GET_REQUISTITEMLIST('".$ReqID."')"); if ($result->getNumRows() > 0) { if ($NoArray == '') { return $result->getResultArray(); } else { return $result->getResult(); } } } /** * This function is used to add the Requistion into the Database * @return array $result : This is result of the query */ // function addRequistion($Requistion) // { // $this->db->transStart(); // $builder = $this->db->table('t_requestion_master'); // $builder->insert($Requistion); // $insert_id = $this->db->affectedRows(); // $this->db->transComplete(); // if($insert_id>0) // { // $subQuery = 'select max(ReqNo) as ReqNo from t_requestion_master'; // $query = $this->db->query($subQuery); // return $query->getResultArray(); // } function addRequisition($Requisition) { $this->db->transStart(); // Start transaction $result = $this->db->table('t_requestion_master')->insert($Requisition); $insert_id = $this->db->insertID(); $affected_rows = $this->db->affectedRows(); $this->db->transComplete(); // Complete transaction try { $result = ($result) ? $result : false; if ($result && $affected_rows > 0) { $subQuery = 'SELECT ReqNo FROM t_requestion_master ORDER BY CreatedDate DESC LIMIT 1'; $query = $this->db->query($subQuery); log_message('error', 'Added new Requisition: ReqID '.$insert_id); return $query->getResultArray(); } else { throw new \Exception("Database error occurred, requisition master details not inserted"); } } catch (\Exception $e) { log_message('error', $e->getMessage()); return false; } } /** * This function is used to check the Request is in Draft status * @return array $result : This is result of the query */ function RequistionIsExists($ReqBy) { $builder = $this->db->table('t_requestion_master') ->select('ReqNo') ->where('Status ',REQ_DRAFT ) ->where('Requestedby ',$ReqBy ); $query = $builder->get(); if ($query->getNumRows() > 0) { return $query->getResultArray(); }else{ return []; } } /** * This function is used to check the Request Line Item is in Draft status * @return array $result : This is result of the query */ function LineItemIsExists($ReqNo,$MaterialCode) { $builder = $this->db->table('t_requestion_details') ->select('ReqNo') ->where('ReqNo ',$ReqNo ) ->where('MaterialCode ',$MaterialCode ); $query = $builder->get(); if ($query->getNumRows() > 0) { //echo $result->getNumRows(); return $query->getResultArray(); } } /** * This function is used to add the Line item details to the Database * @return array $result : This is result of the query */ function addRequistionDetails($Requistion,$RegNo='') { $this->db->transStart(); $builder = $this->db->table('t_requestion_details'); $builder->insert($Requistion); $insert_id = $this->db->affectedRows(); $this->db->transComplete(); $subQuery = 'select max(ItemNo) as ItemNo from t_requestion_details where ReqNo=?'; $query = $this->db->query($subQuery,[$RegNo]); return $query->getResultArray(); } function getItemNumber($ReqNo,$MaterialCode) { $subQuery = 'select ItemNo from t_requestion_details where ReqNo=? and MaterialCode=?'; $query = $this->db->query($subQuery,[$ReqNo,$MaterialCode]); return $query->getResultArray(); } /** * This function is used to delete the Line item from details into Database * @return array $result : This is result of the query */ function DeleteRequistionLineItem( $ReqNo,$MaterialCode) { $this->db->table('t_requestion_details')->delete(['ReqNo' => $ReqNo,'MaterialCode'=>$MaterialCode]); return TRUE; } /** * This function is used to update the details into Database * @return array $result : This is result of the query */ function UpdateRequistionLineItem($Requist, $ReqNo,$MaterialCode) { $this->db->table('t_requestion_details') ->where('ReqNo', $ReqNo) ->where('MaterialCode', $MaterialCode) ->update($Requist); return TRUE; } function UpdateAvlQty($BalanceQuantity,$MaterialCode) { $this->db->table('t_store_stockdetails') ->where('MaterialCode',$MaterialCode) ->update($BalanceQuantity); return TRUE; } /** * This function is used to update the details into Database * @return array $result : This is result of the query */ function UpdateRequistion($Requistion, $ReqNo) { $this->db->table('t_requestion_master') ->where('ReqNo', $ReqNo) ->update($Requistion); return TRUE; } /** * This function is used to get the List of Requist details to the approver * @return array $result : This is result of the query */ function getApproverRequistList($UserID,$Status = '',$FromDate='' ,$ToDate='') { // echo 'UserId: '.$UserID . 'From: '.$FromDate .'TO: '. $ToDate. 'Status: '. $Status; $subQuery = 'select distinct ReqNo,Status,mast.CreatedDate,Requestedby,emp.FirstName,mast.Comments,st.StatusName from t_requestion_master mast join t_employee_details emp on mast.Requestedby = emp.EmpID join t_departmentdetails Dept on emp.Departmentcode = Dept.DEPCode join t_status st on st.StatusCode = mast.Status where status not in(?,?,?) and emp.Departmentcode in (select DEPCode from t_departmentdetails where HeadDept= (select HeadDept from t_departmentdetails where DEPCode = (select Departmentcode from t_employee_details where EmpID=(select EmpID from tbl_users where userId=?))))'; $subQuery1 = $subQuery; $order_by = ' order by mast.CreatedDate desc'; $query =''; if($FromDate != '' && $ToDate != '' && $Status !='' ) { $Where = 'and mast.CreatedDate >= ? and mast.CreatedDate <= ? and Status=?'; $subQuery1 .= $Where; $subQuery1 .= $order_by; $query = $this->db->query($subQuery1, [REQ_DRAFT,REQ_DELETED,REQ_REJECTED,$UserID,$FromDate,$ToDate,$Status]); } else if($FromDate != '' && $ToDate != '' && $Status =='') { $Where = 'and mast.CreatedDate >= ? and mast.CreatedDate <= ? '; $subQuery1 .= $Where; $subQuery1 .= $order_by; $query = $this->db->query($subQuery1, [REQ_DRAFT,REQ_DELETED,REQ_REJECTED,$UserID,$FromDate,$ToDate]); } else if($Status != '' && $FromDate == '' && $ToDate == '') { $Where = 'and Status = ?'; $subQuery1 .= $Where; $subQuery1 .= $order_by; $query = $this->db->query($subQuery1, [REQ_DRAFT,REQ_DELETED,REQ_REJECTED,$UserID,$Status]); } else { $subQuery .= $order_by; // $query = $this->db->query($subQuery, [REQ_DRAFT,REQ_DELETED,REQ_REJECTED,$UserID]); $query = $this->db->query($subQuery, [REQ_DELETED,REQ_REJECTED,$UserID]); } return $query->getResult(); } function getRequestBy(){ $subQuery ='SELECT CONCAT_WS(" ",ted.FirstName,ted.LastName) as Full_Name ,tdd.DepartmentName, ted.EmpID from t_employee_details as ted left join t_departmentdetails as tdd on tdd.DEPCode = ted.Departmentcode where ted.Designation = "Admin Head" and ted.IsActive = 1'; $query = $this->db->query($subQuery); return $query->getResult(); } }