diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 0ae1e4d7..78636294 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -239,6 +239,7 @@ $routes->get('EditPO', 'Purchaseorder::EditPurchaseOrder'); $routes->get('purchaseorder/CreatePOPrint', 'Purchaseorder::CreatePOPrint'); $routes->post('purchaseorder/ReleasePO', 'Purchaseorder::ReleasePO'); $routes->post('purchaseorder/EditRevenuePurchaseOrder', 'Purchaseorder::EditRevenuePurchaseOrder'); +$routes->post('purchaseorder/deletePurchaseOrderFile' , 'Purchaseorder::deletePurchaseOrderFile'); $routes->post('VerifyWithSupplierForPendingPO', 'Purchaseorder::VerifyWithSupplierForPendingPO'); diff --git a/app/Controllers/Purchaseorder.php b/app/Controllers/Purchaseorder.php index 2ffe2457..b26c2587 100755 --- a/app/Controllers/Purchaseorder.php +++ b/app/Controllers/Purchaseorder.php @@ -2976,7 +2976,7 @@ class Purchaseorder extends BaseController } }else{ log_message('error', 'File Upload not Done' . $requestfilename); - return json_encode($this->requestr); + } $POMaster = $this->purchaseorder_model->updatePOMaster($PONO, $POList); @@ -3415,9 +3415,48 @@ class Purchaseorder extends BaseController + /* delete purchase order file */ + function deletePurchaseOrderFile(){ + + $PONO=$this->request->getPost('PONO'); + $filename=$this->request->getPost('POFile'); + $result= $this->purchaseorder_model->deletePurchaseOrderFile($PONO); + + $result2=$this->purchaseorder_model->findPurchaseOrderFile($filename); + + + + if ($result && empty($result2)) { + + $path = ROOTPATH . 'public/uploads/POfiles/' . $filename; + + if (file_exists($path)) { + + if (unlink($path)) { + + return $this->response->setJSON(['success' => 'File removed successfully !!!']); + } else { + + return $this->response->setJSON(['error' => 'Failed to delete the file from the server.']); + } + } else { + + return $this->response->setJSON(['error' => 'File not found on the server.']); + } + + } else if($result){ + + return $this->response->setJSON(['success' => 'File removed successfully !!']); + } + else { + + return $this->response->setJSON(['error' => 'File deletion from database failed or file still exists in database.']); + } + + } /*This function is used to convert amount(digit) into words*/ diff --git a/app/Models/Purchaseorder_model.php b/app/Models/Purchaseorder_model.php index 10d5c695..80cb10ce 100755 --- a/app/Models/Purchaseorder_model.php +++ b/app/Models/Purchaseorder_model.php @@ -1129,797 +1129,797 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath, // join t_supplierdetailsn sup on sup.SupplierID = POMaster.SupplierID // where LineItem.PONO =?'; - $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.ReqNo,Mat.MaterialCode,Mat.MaterialName,Import_DispatchDetails,LineItem.Per,LineItem.ServiceMaterialDescription, -Mat.UOM,Quantity,ReqMas.Requestedby,Rate,ROUND((RMCIncludingCustomersPerKG*Quantity),2)as Taxamount , -ProductPrice,Tax.*,LineItem.CostCenterCode ,Date(ReqMast.ReqDate) as ReqDate,POMaster.*,sup.SupplierName,sup.Address,LineItem.AmendedDetails as LineAmend,LineItem.AmendedDetails as lineamenddetails,AdvanceAmount, Pay.PaymentTerms as Pay,ROUND((Quantity *Rate),2 ) as BasicValue,HSNCODE, -sup.EmailAddress,sup.SupplierID,sup.PAN,sup.ContactNumber,sup.GSTNO,sup.MSME,sup.Cert_MSME -FROM t_purchaseorder_lineitem LineItem -join t_requestion_master ReqMas on ReqMas.ReqNo=LineItem.ReqNo -join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode -join t_import_tax Tax on Tax.LineItemNo = LineItem.LineItemNo -join t_purchaseorder_master POMaster on POMaster.PONO = LineItem.PONO -join t_supplierdetailsn sup on sup.SupplierID = POMaster.SupplierID -left join t_purchaseorder_advancerequest PurAdv on POMaster.PONO=PurAdv.PONO -join t_requestion_master ReqMast on LineItem.ReqNo=ReqMast.ReqNo -join t_paymentterms Pay on POMaster.PaymentTerms=Pay.PaymentID -where LineItem.PONO =?'; + $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.ReqNo,Mat.MaterialCode,Mat.MaterialName,Import_DispatchDetails,LineItem.Per,LineItem.ServiceMaterialDescription, + Mat.UOM,Quantity,ReqMas.Requestedby,Rate,ROUND((RMCIncludingCustomersPerKG*Quantity),2)as Taxamount , + ProductPrice,Tax.*,LineItem.CostCenterCode ,Date(ReqMast.ReqDate) as ReqDate,POMaster.*,sup.SupplierName,sup.Address,LineItem.AmendedDetails as LineAmend,LineItem.AmendedDetails as lineamenddetails,AdvanceAmount, Pay.PaymentTerms as Pay,ROUND((Quantity *Rate),2 ) as BasicValue,HSNCODE, + sup.EmailAddress,sup.SupplierID,sup.PAN,sup.ContactNumber,sup.GSTNO,sup.MSME,sup.Cert_MSME + FROM t_purchaseorder_lineitem LineItem + join t_requestion_master ReqMas on ReqMas.ReqNo=LineItem.ReqNo + join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode + join t_import_tax Tax on Tax.LineItemNo = LineItem.LineItemNo + join t_purchaseorder_master POMaster on POMaster.PONO = LineItem.PONO + join t_supplierdetailsn sup on sup.SupplierID = POMaster.SupplierID + left join t_purchaseorder_advancerequest PurAdv on POMaster.PONO=PurAdv.PONO + join t_requestion_master ReqMast on LineItem.ReqNo=ReqMast.ReqNo + join t_paymentterms Pay on POMaster.PaymentTerms=Pay.PaymentID + where LineItem.PONO =?'; - $query = $this->db->query($subQuery, array($PONO)); + $query = $this->db->query($subQuery, array($PONO)); - return $query->getResult(); - } + return $query->getResult(); + } - function GetCurrencyDetail($Currency = '') - { + function GetCurrencyDetail($Currency = '') + { - $subQuery = 'SELECT * from t_currency_details where Currency_Code=?'; - $query = $this->db->query($subQuery, array($Currency)); - //print_r($query); - return $query->getResult(); - } + $subQuery = 'SELECT * from t_currency_details where Currency_Code=?'; + $query = $this->db->query($subQuery, array($Currency)); + //print_r($query); + return $query->getResult(); + } - function GerRequesterName($Requester = '') - { - $subQuery = 'SELECT EmpID,FirstName,Departmentcode from t_employee_details where EmpID=?'; + function GerRequesterName($Requester = '') + { + $subQuery = 'SELECT EmpID,FirstName,Departmentcode from t_employee_details where EmpID=?'; - $query = $this->db->query($subQuery, array($Requester)); + $query = $this->db->query($subQuery, array($Requester)); - return $query->getResult(); - } - - - function GerRequesterDep($Depcode = '') - { - $subQuery = 'SELECT DepartmentName from t_departmentdetails where DEPCode=?'; - $query = $this->db->query($subQuery, array($Depcode)); + return $query->getResult(); + } - return $query->getResult(); - } - function GerCurrencyCodeName($Currencycode = '') - { - $subQuery = 'SELECT * from t_currency_details where Currency_Code=?'; - $query = $this->db->query($subQuery, array($Currencycode)); + function GerRequesterDep($Depcode = '') + { + $subQuery = 'SELECT DepartmentName from t_departmentdetails where DEPCode=?'; + $query = $this->db->query($subQuery, array($Depcode)); - return $query->getResult(); - } + return $query->getResult(); + } + function GerCurrencyCodeName($Currencycode = '') + { + $subQuery = 'SELECT * from t_currency_details where Currency_Code=?'; + $query = $this->db->query($subQuery, array($Currencycode)); - function GetPOStatus($Status = '') - { - $subQuery = 'SELECT StatusName from t_status where StatusCode=?'; - $query = $this->db->query($subQuery, array($Status)); - return $query->getResult(); - } + return $query->getResult(); + } - function GetPaymentTerms($PONO = '') - { - $subQuery = 'SELECT PaymentTerms from t_purchaseorder_master where PONO=?'; - $query = $this->db->query($subQuery, array($PONO)); - //print_r($query); - return $query->getResult(); - } + function GetPOStatus($Status = '') + { + $subQuery = 'SELECT StatusName from t_status where StatusCode=?'; + $query = $this->db->query($subQuery, array($Status)); + return $query->getResult(); + } + function GetPaymentTerms($PONO = '') + { + $subQuery = 'SELECT PaymentTerms from t_purchaseorder_master where PONO=?'; + $query = $this->db->query($subQuery, array($PONO)); + //print_r($query); + return $query->getResult(); + } - // function getSupplierPayment($Currency='') - // { - // $subQuery='select distinct PaymentTerms from t_supplierdetailsn'; - // $query=$this->db->query($subQuery,array($Currency)); - // - // return $query->getResult(); - // } + // function getSupplierPayment($Currency='') + // { - function getSupplierPayment($Config_ID = '') - { + // $subQuery='select distinct PaymentTerms from t_supplierdetailsn'; + // $query=$this->db->query($subQuery,array($Currency)); + // + // return $query->getResult(); - // $subQuery='select distinct PaymentTerms from t_supplierdetailsn'; - $subQuery = 'select ConfigValue from t_configdetails where Config_ID=?'; - $query = $this->db->query($subQuery, array($Config_ID)); + // } - return $query->getResult(); - } + function getSupplierPayment($Config_ID = '') + { - function GetWorkStatus($Config_ID = '') - { - $subQuery = 'select ConfigValue from t_configdetails where Config_ID=?'; - $query = $this->db->query($subQuery, array($Config_ID)); - //print_r($query); - return $query->getResult(); - } + // $subQuery='select distinct PaymentTerms from t_supplierdetailsn'; + $subQuery = 'select ConfigValue from t_configdetails where Config_ID=?'; + $query = $this->db->query($subQuery, array($Config_ID)); + return $query->getResult(); + } + function GetWorkStatus($Config_ID = '') + { + $subQuery = 'select ConfigValue from t_configdetails where Config_ID=?'; + $query = $this->db->query($subQuery, array($Config_ID)); + //print_r($query); + return $query->getResult(); + } - function GetImportPurchaseOrderDetails($PONO = '') - { - $subQuery = 'SELECT DISTINCT LineItem.LineItemNo, Req.ReqNo, Mat.MaterialCode, Mat.MaterialName, - Mat.UOM, Quantity, Rate, Req.Status, ROUND((Quantity * Rate), 2) AS BasicValue, - ReceivedQuantity, QuantityRejected, ROUND(Quantity - ReceivedQuantity) AS PendingQty, Per, - ROUND((RMCIncludingCustomersPerKG * Quantity), 2) AS Taxamount, LandingCharge, HighSeasSalesCharge, - CustomDuty, ExciseDuty, ExciseDutyEdCess, CustomEdCess, POMast.ExchangeRate, AfterLandingCharge, - AfterHighSeasSalesCharge, AfterCustomDuty, AfterExciseDuty, AfterExciseDutyEdCess, AddlExciseDuty, - AfterAddlExciseDuty, Grossdutypayable, AvailableModvat, Grossexpensesduetocustomduty, - purchaseratePerKG, CustomDutyExpensesPerKG, RMCIncludingCustomersPerKG, QuantityKG, - BasicPriceInMTon, ProductPrice, CustomSHCess, AfterCustomSHCess, AfterExciseDutySHCess, - ExciseDutySHCess, AfterCustomEdCess, ROUND((Quantity * Rate), 2) AS TotalOrderValue, - ROUND((POMast.ExchangeRate * BasicPriceInMTon), 2) AS BasicINRValue, TotalValue, CurrencyType, - ReceivedQuantity, Tax.*, LineItem.ServiceMaterialDescription, Req.CostCenterCode, - Dept.DepartmentName - - FROM t_purchaseorder_lineitem LineItem - LEFT JOIN t_purchaseorder_master POMast ON POMast.PONO = LineItem.PONO - LEFT JOIN t_materialmaster Mat ON Mat.MaterialCode = LineItem.MaterialCode - LEFT JOIN t_import_tax Tax ON Tax.LineItemNo = LineItem.LineItemNo - LEFT JOIN t_requestion_master Req ON Req.ReqNo = LineItem.ReqNo - LEFT JOIN t_employee_details emp ON Req.Requestedby = emp.EmpID - LEFT JOIN t_mrir_master Mast ON POMast.PONO = Mast.PONO - LEFT JOIN t_mrir_details Det ON Det.MaterialCode = LineItem.MaterialCode AND Mast.MRIRNO = Det.MRIRNO - LEFT JOIN t_departmentdetails Dept ON Req.RequestedDept = Dept.DEPCode - - WHERE LineItem.PONO = ?'; - - $query = $this->db->query($subQuery, array($PONO)); - - return $query->getResult(); - } - - - - - function GetCurrencytype() - { - - $subQuery = 'select * from t_currency_details'; - - $query = $this->db->query($subQuery); - - return $query->getResult(); - } - - function GetINRCurrencytype($Currency_Code = '') - { - $subQuery = 'select * from t_currency_details where Currency_Code=?'; - $query = $this->db->query($subQuery, array($Currency_Code)); - - return $query->getResult(); - } - - - - - - - // To Update the PO - function updatePOMaster($PONO, $PODetails) - { - $this->db->table('t_purchaseorder_master') - ->where('PONO', $PONO) - ->update($PODetails); - - return TRUE; - } - - - // To update Parent PO as Amended PO - function updateAmendPOMaster($PONO, $PODetail) - { - //echo $PONO."from model"; - $this->db->table('t_purchaseorder_master') - ->where('PONO', $PONO) - ->update($PODetail); - $insert_id = $this->db->affectedRows(); - - return $insert_id; - } - /** - * This function is used to check the Line Item is already available in the database - * @return array $result : This is result of the query - */ - function LineItemExists($LineItemNo) - { - - $builder = $this->db->table('t_service_tax') - ->select('LineItemNo,TaxID') - ->where('LineItemNo ', $LineItemNo); - //->where('Requestedby ',$ReqBy ); - $query = $builder->get(); - - if ($query->getNumRows() > 0) { - //echo $result->getNumRows(); - return $query->getResultArray(); - } - } - /** - * This function is used to check the Revenue Line Item is already available in the database - * @return array $result : This is result of the query - */ - function LineItemExistsinRevenueTax($LineItemNo) - { - - $builder = $this->db->table('t_revenue_tax')->select('LineItemNo') - ->where('LineItemNo ', $LineItemNo); - $query = $builder->get(); - - if ($query->getNumRows() > 0) { - return $query->getResultArray(); - } - } - - - function LineItemExistsinImportTax($LineItemNo) - { - - $builder = $this->db->table('t_import_tax')->select('LineItemNo') - ->where('LineItemNo ', $LineItemNo); - $query = $builder->get(); - - if ($query->getNumRows() > 0) { - return $query->getResultArray(); - } - } - // To Update the PO Line Item - function updatePOLineItem($PONO, $LineItemNo, $PODetails) - { - $this->db->table('t_purchaseorder_lineitem') - ->where('PONO', $PONO) - ->where('LineItemNo', $LineItemNo) - ->update($PODetails); - - return TRUE; - } - /*// To Update the Service Tax Item */ - function updateServiceTax($LineItemNo, $PODetails) - { - $this->db->table('t_service_tax') - ->where('LineItemNo', $LineItemNo) - ->update($PODetails); - - return TRUE; - } - - /*// To Update the Revenue Tax Item */ - function updateRevenueTax($LineItemNo, $PODetails) - { - $this->db->table('t_revenue_tax') - ->where('LineItemNo', $LineItemNo) - ->update($PODetails); - return TRUE; - } - - function updateImportTax($LineItemNo, $PODetails) - { - $this->db->table('t_import_tax') - ->where('LineItemNo', $LineItemNo) - ->update($PODetails); - return TRUE; - } - - function getLastInsertedPO() - { - - $builder = $this->db->table('T_PurchaseOrderDetails')->select('max(PONO) as PO'); - $query = $builder->get(); - return $query->getResultArray(); - } - - - /* This Method to get all the Department name for the requistion */ - function getDepartmentListForAllReq() - { - $subQuery = 'SELECT DISTINCT DEPT.DEPCode,DEPT.DepartmentName FROM t_requestion_master REQ - JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID - JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode WHERE REQ.Status not in(?,?,?,?)'; - - $query = $this->db->query($subQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED)); - //print_r($query); - return $query->getResult(); - } - /* - * This Method to get all department list - */ - function getDepartmentAllList() - { - $subQuery = 'SELECT DISTINCT DEPCode,DepartmentName FROM t_departmentdetails'; - - $query = $this->db->query($subQuery); - //print_r($query); - return $query->getResult(); - } - - - function getStatusListforAllReq() - { - $subQuery = 'SELECT DISTINCT STAT.StatusCode, STAT.StatusName FROM t_requestion_master REQ - JOIN t_status STAT on REQ.Status = STAT.StatusCode where STAT.StatusCode not in (?,?,?,?)'; - $query = $this->db->query($subQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED)); - - - - return $query->getResult(); - } - - function getStatusByDepartment($DepNo = '') - { - - $subQuery = 'SELECT DISTINCT STAT.StatusCode ,STAT.StatusName FROM t_requestion_master REQ - JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID - JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode - JOIN t_status STAT ON REQ.Status = STAT.StatusCode - WHERE DEPT.DEPCode=? AND REQ.Status NOT IN (?,?,?,?)'; - $query = $this->db->query($subQuery, array($DepNo, REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED)); - - return $query->getResultArray(); - } - - function getRequistionListbySearch($Depid = '', $Status = '', $FromDate = '', $ToDate = '') - { - $subQuery = ' SELECT ReqNo,ReqType,Requestedby,EMP.FirstName,EMP.Designation,STAT.StatusCode ,STAT.StatusName,ReqDate,DEPT.DEPCode,DEPT.DepartmentName FROM t_requestion_master REQ - JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID - JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode - JOIN t_status STAT on REQ.Status = STAT.StatusCode - where REQ.Status NOT IN (?,?,?,?,?)'; - - $appendQuery = $subQuery; - - if ($Depid != '' && $Status != '' && $FromDate != '' && $ToDate != '') { - $appendQuery .= ' AND DEPT.DEPCode=? AND STAT.StatusCode=? AND ReqDate >= ? AND ReqDate <= ?'; - //echo "$appendQuery";die(); - $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid, $Status, $FromDate, $ToDate)); - - return $query->getResultArray(); - } else if ($Depid != '' && $Status == '' && $FromDate == '' && $ToDate == '') { - $appendQuery .= ' AND DEPT.DEPCode=?'; - - $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid)); - - return $query->getResultArray(); - } else if ($Depid == '' && $Status != '' && $FromDate == '' && $ToDate == '') { - $appendQuery .= ' AND STAT.StatusCode=?'; - - $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Status)); - - return $query->getResultArray(); - } else if ($Depid == '' && $Status == '' && $FromDate != '' && $ToDate != '') { - $appendQuery .= ' AND ReqDate >= ? AND ReqDate <= ?'; - - $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $FromDate, $ToDate)); - - return $query->getResultArray(); - } else if ($Depid != '' && $Status != '' && $FromDate == '' && $ToDate == '') { - $appendQuery .= ' AND DEPT.DEPCode=? AND STAT.StatusCode=?'; - - $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid, $Status)); - - return $query->getResultArray(); - } else if ($Depid != '' && $Status == '' && $FromDate != '' && $ToDate != '') { - $appendQuery .= ' AND DEPT.DEPCode=? AND ReqDate >= ? AND ReqDate <= ?'; - - $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid, $FromDate, $ToDate)); - - return $query->getResultArray(); - } else if ($Depid == '' && $Status != '' && $FromDate != '' && $ToDate != '') { - $appendQuery .= ' AND STAT.StatusCode=? AND ReqDate >= ? AND ReqDate <= ?'; - - $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Status, $FromDate, $ToDate)); - - return $query->getResultArray(); - } else { - $query = $this->db->query($subQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED)); - - return $query->getResult(); - } - } - - function UpdateRequistItemStatus() - { - $query = $this->db->query("update t_requestion_details REQ - JOIN t_purchaseorder_lineitem line ON REQ.ReqNo = line.ReqNo - JOIN t_purchaseorder_master PO ON PO.PONO = line.PONO - set REQ.Status = CASE WHEN REQ.Quantity = line.Quantity THEN 'ST022' WHEN REQ.Quantity > line.Quantity THEN 'ST023' ELSE 'ST003' END , - REQ.updatedOn= CURRENT_TIMESTAMP - where PO.Status ='" . PO_CREATED . "'"); - - //$query ->next_result(); - - } - function UpdateRequistionStatus() - { - $result = $this->db->query("CALL P_UPDATE_REQUISTIONSTATUS_New()"); // or die(mysql_error()); - - // $result ->next_result(); - - } - /** - * This function is used to delete the Line item from details into Database - * @return array $result : This is result of the query - */ - function DeletePOLineItem($LineItem = '', $ReqNo = '', $MaterialCode = '') - { - $this->db->table('t_purchaseorder_lineitem')->delete(['LineItemNo' => $LineItem, 'ReqNo' => $ReqNo, 'MaterialCode' => $MaterialCode]); - return TRUE; - } - - /** - * This function is used to delete the Revenue item from details into Database - * @return array $result : This is result of the query - */ - function DeletePORevenueTax($LineItem = '') - { - - $this->db->table('t_revenue_tax')->delete(['LineItemNo' => $LineItem]); - return TRUE; - } - - /** - * This function is used to delete Service Tax from details into Database - * @return array $result : This is result of the query - */ - function DeletePOServiceTax($LineItem = '') - { - $this->db->table('t_service_tax')->delete(['LineItemNo' => $LineItem]); - return TRUE; - } - - - function DeletePOImportTax($LineItem = '') - { - - $this->db->table('t_import_tax')->delete(['LineItemNo' => $LineItem]); - return TRUE; - } - - /** - * This function is used to get the List of PO details to the approver - * @return array $result : This is result of the query - * join t_departmentdetails Dept on emp.Departmentcode = Dept.DEPCode - */ - function getPOList($type) - { - - - - $builder = $this->db->table('t_purchaseorder_master mast')->distinct() - ->select('mast.PODate,mast.PONO,mast.TotalOrderValue,st.StatusCode,st.StatusName,emp.FirstName,mast.CreatedDate,ccm.CostCenterName,ccm.CostCenterCode,mast.POType as RType,mast.Remarks,DepartmentName,mast.ApprovedBy,(select EmpID from tbl_users where userId=mast.ApprovedBy )as EID,rmast.ReqType,mast.Status,mast.CapitalRange, - (select FirstName from t_employee_details where EmpID=EID)as Approver,sup.SupplierName,sup.MSME') - // ->orderBy('mast.Status',"PO_CREATED"); - - ->join('t_supplierdetailsn sup', 'sup.SupplierID = mast.SupplierID') - ->join('t_status st', 'st.StatusCode=mast.Status') - ->join('t_purchaseorder_lineitem req', 'req.PONO= mast.PONO') - ->join('t_requestion_master rmast', 'rmast.ReqNo=req.ReqNo') - //->join('t_costcenter_budget bud','bud.CostCenterCode = req.CostCenterCode and bud.BudgetType = rmast.ReqType') - ->join('t_costcenter_master ccm', 'ccm.CostCenterCode = req.CostCenterCode', 'left') - ->join('tbl_users tbl', 'rmast.createdby=tbl.userid', 'left') - ->join('t_employee_details as emp', 'emp.empid=tbl.empid', 'left') - ->join('t_departmentdetails as Dep', 'Dep.DEPCode=emp.Departmentcode', 'left'); - - // old Status Don't Deleted it. - // if ($type == 'APPROVAL') { - // $builder->orWhere('mast.Status', PO_DRAFT); - // $builder->orWhere('mast.Status', PO_CREATED); - // $builder->orWhere('mast.Status', PO_APPROVER_ONHOLD); - // $builder->orWhere('mast.Status', PO_AWAITING_RELEASE); - // $builder->orWhere('mast.Status', PO_RELEASED); - // $builder->orWhere('mast.Status', REQITEM_Emergency_PO_CREATED); - // $builder->orderBy('mast.Status'); - // } - // else if ($type == 'RELEASE') { - // $builder->orWhere('mast.Status', PO_DRAFT); - // $builder->orWhere('mast.Status', PO_AWAITING_RELEASE); - // $builder->orWhere('mast.Status', PO_RELEASER_ONHOLD); - // $builder->orWhere('mast.Status', PO_RELEASED); - // $builder->orderBy('mast.Status'); - // } - if ($type == 'RELEASE') { - $builder->orWhere('mast.Status', PO_DRAFT); - $builder->orWhere('mast.Status', PO_CREATED); - $builder->orWhere('mast.Status', PO_APPROVER_ONHOLD); - $builder->orWhere('mast.Status', PO_AWAITING_RELEASE); - $builder->orWhere('mast.Status', PO_RELEASER_ONHOLD); - $builder->orWhere('mast.Status', PO_RELEASED); - $builder->orWhere('mast.Status', REQITEM_Emergency_PO_CREATED); - // $builder->orderBy('mast.Status'); - } - $builder->orderBy('mast.CreatedDate', 'DESC'); - - $result = $builder->get(); - - return $result->getResult(); - } - - - function UpdatePO($store, $PONO) - { - $this->db->table('t_purchaseorder_master') - ->where('PONO', $PONO) - ->update($store); - - return TRUE; - } - - function GetReleasedDetails($PONO) - { - $builder = $this->db->table('t_purchaseorder_master mast') - ->select('mast.ReleasedOn,re.FirstName') - ->join('tbl_users tbl', 'mast.ReleasedBy=tbl.userid') - ->join('t_employee_details re', 're.EmpID=tbl.EmpID') - ->where('mast.PONO', $PONO); - $result = $builder->get(); - - //die(); - return $result->getResult(); - } - //This is get the capital po list for edit - - function getCapitalPurchaseOrderDetails($PONO = '') - { - - $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.Per,LineItem.ServiceMaterialDescription,Req.ReqNo,Mat.MaterialCode,Mat.MaterialName,LineItem.ServiceMaterialDescription,LineItem.ServiceFrequency, - Mat.UOM,Quantity,ReceivedQuantity,Rate,Req.Status,Tax.*, - ROUND((RMCIncludingCustomersPerKG*Quantity),2)as Taxamount,LandingCharge,HighSeasSalesCharge,CustomDuty,ExciseDuty,ExciseDutyEdCess,CustomEdCess,POMast.ExchangeRate,POMast.ExchangeRateCalculatedon,POMast.TotalOrderValue as BasicValue,POMast.CapitalRange,AfterLandingCharge,AfterHighSeasSalesCharge,AfterCustomDuty,AfterExciseDuty,AfterExciseDutyEdCess,AddlExciseDuty,AfterAddlExciseDuty,Grossdutypayable,AvailableModvat,Grossexpensesduetocustomduty,purchaseratePerKG,CustomDutyExpensesPerKG,RMCIncludingCustomersPerKG,QuantityKG,BasicPriceInMTon,ProductPrice,CustomSHCess,AfterCustomSHCess,AfterExciseDutySHCess,ExciseDutySHCess,AfterCustomEdCess,ROUND((POMast.ExchangeRate*BasicPriceInMTon*Quantity),2) as BasicINRValue,Tax.TotalValue as ImportTotalValue,Tax.FreightType,Tax.NoOfTrip,Tax.FreightValue,Tax.AfterFreightValue,POMast.CurrencyType, + function GetImportPurchaseOrderDetails($PONO = '') + { + $subQuery = 'SELECT DISTINCT LineItem.LineItemNo, Req.ReqNo, Mat.MaterialCode, Mat.MaterialName, + Mat.UOM, Quantity, Rate, Req.Status, ROUND((Quantity * Rate), 2) AS BasicValue, + ReceivedQuantity, QuantityRejected, ROUND(Quantity - ReceivedQuantity) AS PendingQty, Per, + ROUND((RMCIncludingCustomersPerKG * Quantity), 2) AS Taxamount, LandingCharge, HighSeasSalesCharge, + CustomDuty, ExciseDuty, ExciseDutyEdCess, CustomEdCess, POMast.ExchangeRate, AfterLandingCharge, + AfterHighSeasSalesCharge, AfterCustomDuty, AfterExciseDuty, AfterExciseDutyEdCess, AddlExciseDuty, + AfterAddlExciseDuty, Grossdutypayable, AvailableModvat, Grossexpensesduetocustomduty, + purchaseratePerKG, CustomDutyExpensesPerKG, RMCIncludingCustomersPerKG, QuantityKG, + BasicPriceInMTon, ProductPrice, CustomSHCess, AfterCustomSHCess, AfterExciseDutySHCess, + ExciseDutySHCess, AfterCustomEdCess, ROUND((Quantity * Rate), 2) AS TotalOrderValue, + ROUND((POMast.ExchangeRate * BasicPriceInMTon), 2) AS BasicINRValue, TotalValue, CurrencyType, + ReceivedQuantity, Tax.*, LineItem.ServiceMaterialDescription, Req.CostCenterCode, + Dept.DepartmentName + + FROM t_purchaseorder_lineitem LineItem + LEFT JOIN t_purchaseorder_master POMast ON POMast.PONO = LineItem.PONO + LEFT JOIN t_materialmaster Mat ON Mat.MaterialCode = LineItem.MaterialCode + LEFT JOIN t_import_tax Tax ON Tax.LineItemNo = LineItem.LineItemNo + LEFT JOIN t_requestion_master Req ON Req.ReqNo = LineItem.ReqNo + LEFT JOIN t_employee_details emp ON Req.Requestedby = emp.EmpID + LEFT JOIN t_mrir_master Mast ON POMast.PONO = Mast.PONO + LEFT JOIN t_mrir_details Det ON Det.MaterialCode = LineItem.MaterialCode AND Mast.MRIRNO = Det.MRIRNO + LEFT JOIN t_departmentdetails Dept ON Req.RequestedDept = Dept.DEPCode + WHERE LineItem.PONO = ?'; + + $query = $this->db->query($subQuery, array($PONO)); + + return $query->getResult(); + } + + + + + + + function GetCurrencytype() + { + + $subQuery = 'select * from t_currency_details'; + + $query = $this->db->query($subQuery); + + return $query->getResult(); + } + + function GetINRCurrencytype($Currency_Code = '') + { + $subQuery = 'select * from t_currency_details where Currency_Code=?'; + $query = $this->db->query($subQuery, array($Currency_Code)); + + return $query->getResult(); + } + + + + + + + // To Update the PO + function updatePOMaster($PONO, $PODetails) + { + $this->db->table('t_purchaseorder_master') + ->where('PONO', $PONO) + ->update($PODetails); + + return TRUE; + } + + + // To update Parent PO as Amended PO + function updateAmendPOMaster($PONO, $PODetail) + { + //echo $PONO."from model"; + $this->db->table('t_purchaseorder_master') + ->where('PONO', $PONO) + ->update($PODetail); + $insert_id = $this->db->affectedRows(); + + return $insert_id; + } + /** + * This function is used to check the Line Item is already available in the database + * @return array $result : This is result of the query + */ + function LineItemExists($LineItemNo) + { + + $builder = $this->db->table('t_service_tax') + ->select('LineItemNo,TaxID') + ->where('LineItemNo ', $LineItemNo); + //->where('Requestedby ',$ReqBy ); + $query = $builder->get(); + + if ($query->getNumRows() > 0) { + //echo $result->getNumRows(); + return $query->getResultArray(); + } + } + /** + * This function is used to check the Revenue Line Item is already available in the database + * @return array $result : This is result of the query + */ + function LineItemExistsinRevenueTax($LineItemNo) + { + + $builder = $this->db->table('t_revenue_tax')->select('LineItemNo') + ->where('LineItemNo ', $LineItemNo); + $query = $builder->get(); + + if ($query->getNumRows() > 0) { + return $query->getResultArray(); + } + } + + + function LineItemExistsinImportTax($LineItemNo) + { + + $builder = $this->db->table('t_import_tax')->select('LineItemNo') + ->where('LineItemNo ', $LineItemNo); + $query = $builder->get(); + + if ($query->getNumRows() > 0) { + return $query->getResultArray(); + } + } + // To Update the PO Line Item + function updatePOLineItem($PONO, $LineItemNo, $PODetails) + { + $this->db->table('t_purchaseorder_lineitem') + ->where('PONO', $PONO) + ->where('LineItemNo', $LineItemNo) + ->update($PODetails); + + return TRUE; + } + /*// To Update the Service Tax Item */ + function updateServiceTax($LineItemNo, $PODetails) + { + $this->db->table('t_service_tax') + ->where('LineItemNo', $LineItemNo) + ->update($PODetails); + + return TRUE; + } + + /*// To Update the Revenue Tax Item */ + function updateRevenueTax($LineItemNo, $PODetails) + { + $this->db->table('t_revenue_tax') + ->where('LineItemNo', $LineItemNo) + ->update($PODetails); + return TRUE; + } + + function updateImportTax($LineItemNo, $PODetails) + { + $this->db->table('t_import_tax') + ->where('LineItemNo', $LineItemNo) + ->update($PODetails); + return TRUE; + } + + function getLastInsertedPO() + { + + $builder = $this->db->table('T_PurchaseOrderDetails')->select('max(PONO) as PO'); + $query = $builder->get(); + return $query->getResultArray(); + } + + + /* This Method to get all the Department name for the requistion */ + function getDepartmentListForAllReq() + { + $subQuery = 'SELECT DISTINCT DEPT.DEPCode,DEPT.DepartmentName FROM t_requestion_master REQ + JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID + JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode WHERE REQ.Status not in(?,?,?,?)'; + + $query = $this->db->query($subQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED)); + //print_r($query); + return $query->getResult(); + } + /* + * This Method to get all department list + */ + function getDepartmentAllList() + { + $subQuery = 'SELECT DISTINCT DEPCode,DepartmentName FROM t_departmentdetails'; + + $query = $this->db->query($subQuery); + //print_r($query); + return $query->getResult(); + } + + + function getStatusListforAllReq() + { + $subQuery = 'SELECT DISTINCT STAT.StatusCode, STAT.StatusName FROM t_requestion_master REQ + JOIN t_status STAT on REQ.Status = STAT.StatusCode where STAT.StatusCode not in (?,?,?,?)'; + $query = $this->db->query($subQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED)); + + + + return $query->getResult(); + } + + function getStatusByDepartment($DepNo = '') + { + + $subQuery = 'SELECT DISTINCT STAT.StatusCode ,STAT.StatusName FROM t_requestion_master REQ + JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID + JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode + JOIN t_status STAT ON REQ.Status = STAT.StatusCode + WHERE DEPT.DEPCode=? AND REQ.Status NOT IN (?,?,?,?)'; + $query = $this->db->query($subQuery, array($DepNo, REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED)); + + return $query->getResultArray(); + } + + function getRequistionListbySearch($Depid = '', $Status = '', $FromDate = '', $ToDate = '') + { + $subQuery = ' SELECT ReqNo,ReqType,Requestedby,EMP.FirstName,EMP.Designation,STAT.StatusCode ,STAT.StatusName,ReqDate,DEPT.DEPCode,DEPT.DepartmentName FROM t_requestion_master REQ + JOIN t_employee_details EMP ON REQ.Requestedby = EMP.EmpID + JOIN t_departmentdetails DEPT ON EMP.Departmentcode = DEPT.DEPCode + JOIN t_status STAT on REQ.Status = STAT.StatusCode + where REQ.Status NOT IN (?,?,?,?,?)'; + + $appendQuery = $subQuery; + + if ($Depid != '' && $Status != '' && $FromDate != '' && $ToDate != '') { + $appendQuery .= ' AND DEPT.DEPCode=? AND STAT.StatusCode=? AND ReqDate >= ? AND ReqDate <= ?'; + //echo "$appendQuery";die(); + $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid, $Status, $FromDate, $ToDate)); + + return $query->getResultArray(); + } else if ($Depid != '' && $Status == '' && $FromDate == '' && $ToDate == '') { + $appendQuery .= ' AND DEPT.DEPCode=?'; + + $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid)); + + return $query->getResultArray(); + } else if ($Depid == '' && $Status != '' && $FromDate == '' && $ToDate == '') { + $appendQuery .= ' AND STAT.StatusCode=?'; + + $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Status)); + + return $query->getResultArray(); + } else if ($Depid == '' && $Status == '' && $FromDate != '' && $ToDate != '') { + $appendQuery .= ' AND ReqDate >= ? AND ReqDate <= ?'; + + $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $FromDate, $ToDate)); + + return $query->getResultArray(); + } else if ($Depid != '' && $Status != '' && $FromDate == '' && $ToDate == '') { + $appendQuery .= ' AND DEPT.DEPCode=? AND STAT.StatusCode=?'; + + $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid, $Status)); + + return $query->getResultArray(); + } else if ($Depid != '' && $Status == '' && $FromDate != '' && $ToDate != '') { + $appendQuery .= ' AND DEPT.DEPCode=? AND ReqDate >= ? AND ReqDate <= ?'; + + $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Depid, $FromDate, $ToDate)); + + return $query->getResultArray(); + } else if ($Depid == '' && $Status != '' && $FromDate != '' && $ToDate != '') { + $appendQuery .= ' AND STAT.StatusCode=? AND ReqDate >= ? AND ReqDate <= ?'; + + $query = $this->db->query($appendQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED, $Status, $FromDate, $ToDate)); + + return $query->getResultArray(); + } else { + $query = $this->db->query($subQuery, array(REQ_DRAFT, REQ_PENDING_APPROVAL, REQ_DELETED, REQ_REJECTED, REQ_PO_CREATED)); + + return $query->getResult(); + } + } + + function UpdateRequistItemStatus() + { + $query = $this->db->query("update t_requestion_details REQ + JOIN t_purchaseorder_lineitem line ON REQ.ReqNo = line.ReqNo + JOIN t_purchaseorder_master PO ON PO.PONO = line.PONO + set REQ.Status = CASE WHEN REQ.Quantity = line.Quantity THEN 'ST022' WHEN REQ.Quantity > line.Quantity THEN 'ST023' ELSE 'ST003' END , + REQ.updatedOn= CURRENT_TIMESTAMP + where PO.Status ='" . PO_CREATED . "'"); + + //$query ->next_result(); + + } + function UpdateRequistionStatus() + { + $result = $this->db->query("CALL P_UPDATE_REQUISTIONSTATUS_New()"); // or die(mysql_error()); + + // $result ->next_result(); + + } + /** + * This function is used to delete the Line item from details into Database + * @return array $result : This is result of the query + */ + function DeletePOLineItem($LineItem = '', $ReqNo = '', $MaterialCode = '') + { + $this->db->table('t_purchaseorder_lineitem')->delete(['LineItemNo' => $LineItem, 'ReqNo' => $ReqNo, 'MaterialCode' => $MaterialCode]); + return TRUE; + } + + /** + * This function is used to delete the Revenue item from details into Database + * @return array $result : This is result of the query + */ + function DeletePORevenueTax($LineItem = '') + { + + $this->db->table('t_revenue_tax')->delete(['LineItemNo' => $LineItem]); + return TRUE; + } + + /** + * This function is used to delete Service Tax from details into Database + * @return array $result : This is result of the query + */ + function DeletePOServiceTax($LineItem = '') + { + $this->db->table('t_service_tax')->delete(['LineItemNo' => $LineItem]); + return TRUE; + } + + + function DeletePOImportTax($LineItem = '') + { + + $this->db->table('t_import_tax')->delete(['LineItemNo' => $LineItem]); + return TRUE; + } + + /** + * This function is used to get the List of PO details to the approver + * @return array $result : This is result of the query + * join t_departmentdetails Dept on emp.Departmentcode = Dept.DEPCode + */ + function getPOList($type) + { + + + + $builder = $this->db->table('t_purchaseorder_master mast')->distinct() + ->select('mast.PODate,mast.PONO,mast.TotalOrderValue,st.StatusCode,st.StatusName,emp.FirstName,mast.CreatedDate,ccm.CostCenterName,ccm.CostCenterCode,mast.POType as RType,mast.Remarks,DepartmentName,mast.ApprovedBy,(select EmpID from tbl_users where userId=mast.ApprovedBy )as EID,rmast.ReqType,mast.Status,mast.CapitalRange, + (select FirstName from t_employee_details where EmpID=EID)as Approver,sup.SupplierName,sup.MSME') + // ->orderBy('mast.Status',"PO_CREATED"); + + ->join('t_supplierdetailsn sup', 'sup.SupplierID = mast.SupplierID') + ->join('t_status st', 'st.StatusCode=mast.Status') + ->join('t_purchaseorder_lineitem req', 'req.PONO= mast.PONO') + ->join('t_requestion_master rmast', 'rmast.ReqNo=req.ReqNo') + //->join('t_costcenter_budget bud','bud.CostCenterCode = req.CostCenterCode and bud.BudgetType = rmast.ReqType') + ->join('t_costcenter_master ccm', 'ccm.CostCenterCode = req.CostCenterCode', 'left') + ->join('tbl_users tbl', 'rmast.createdby=tbl.userid', 'left') + ->join('t_employee_details as emp', 'emp.empid=tbl.empid', 'left') + ->join('t_departmentdetails as Dep', 'Dep.DEPCode=emp.Departmentcode', 'left'); + + // old Status Don't Deleted it. + // if ($type == 'APPROVAL') { + // $builder->orWhere('mast.Status', PO_DRAFT); + // $builder->orWhere('mast.Status', PO_CREATED); + // $builder->orWhere('mast.Status', PO_APPROVER_ONHOLD); + // $builder->orWhere('mast.Status', PO_AWAITING_RELEASE); + // $builder->orWhere('mast.Status', PO_RELEASED); + // $builder->orWhere('mast.Status', REQITEM_Emergency_PO_CREATED); + // $builder->orderBy('mast.Status'); + // } + // else if ($type == 'RELEASE') { + // $builder->orWhere('mast.Status', PO_DRAFT); + // $builder->orWhere('mast.Status', PO_AWAITING_RELEASE); + // $builder->orWhere('mast.Status', PO_RELEASER_ONHOLD); + // $builder->orWhere('mast.Status', PO_RELEASED); + // $builder->orderBy('mast.Status'); + // } + if ($type == 'RELEASE') { + $builder->orWhere('mast.Status', PO_DRAFT); + $builder->orWhere('mast.Status', PO_CREATED); + $builder->orWhere('mast.Status', PO_APPROVER_ONHOLD); + $builder->orWhere('mast.Status', PO_AWAITING_RELEASE); + $builder->orWhere('mast.Status', PO_RELEASER_ONHOLD); + $builder->orWhere('mast.Status', PO_RELEASED); + $builder->orWhere('mast.Status', REQITEM_Emergency_PO_CREATED); + // $builder->orderBy('mast.Status'); + } + $builder->orderBy('mast.CreatedDate', 'DESC'); + + $result = $builder->get(); + + return $result->getResult(); + } + + + function UpdatePO($store, $PONO) + { + $this->db->table('t_purchaseorder_master') + ->where('PONO', $PONO) + ->update($store); + + return TRUE; + } + + function GetReleasedDetails($PONO) + { + $builder = $this->db->table('t_purchaseorder_master mast') + ->select('mast.ReleasedOn,re.FirstName') + ->join('tbl_users tbl', 'mast.ReleasedBy=tbl.userid') + ->join('t_employee_details re', 're.EmpID=tbl.EmpID') + ->where('mast.PONO', $PONO); + $result = $builder->get(); + + //die(); + return $result->getResult(); + } + //This is get the capital po list for edit + + function getCapitalPurchaseOrderDetails($PONO = '') + { + + $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.Per,LineItem.ServiceMaterialDescription,Req.ReqNo,Mat.MaterialCode,Mat.MaterialName,LineItem.ServiceMaterialDescription,LineItem.ServiceFrequency, + Mat.UOM,Quantity,ReceivedQuantity,Rate,Req.Status,Tax.*, + ROUND((RMCIncludingCustomersPerKG*Quantity),2)as Taxamount,LandingCharge,HighSeasSalesCharge,CustomDuty,ExciseDuty,ExciseDutyEdCess,CustomEdCess,POMast.ExchangeRate,POMast.ExchangeRateCalculatedon,POMast.TotalOrderValue as BasicValue,POMast.CapitalRange,AfterLandingCharge,AfterHighSeasSalesCharge,AfterCustomDuty,AfterExciseDuty,AfterExciseDutyEdCess,AddlExciseDuty,AfterAddlExciseDuty,Grossdutypayable,AvailableModvat,Grossexpensesduetocustomduty,purchaseratePerKG,CustomDutyExpensesPerKG,RMCIncludingCustomersPerKG,QuantityKG,BasicPriceInMTon,ProductPrice,CustomSHCess,AfterCustomSHCess,AfterExciseDutySHCess,ExciseDutySHCess,AfterCustomEdCess,ROUND((POMast.ExchangeRate*BasicPriceInMTon*Quantity),2) as BasicINRValue,Tax.TotalValue as ImportTotalValue,Tax.FreightType,Tax.NoOfTrip,Tax.FreightValue,Tax.AfterFreightValue,POMast.CurrencyType, + + Req.CostCenterCode,Dept.DepartmentName FROM t_purchaseorder_lineitem LineItem + join t_purchaseorder_master POMast on POMast.PONO = LineItem.PONO + join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode + left join t_import_tax Tax on Tax.LineItemNo = LineItem.LineItemNo + join t_requestion_master Req on Req.ReqNo = LineItem.ReqNo + left join t_employee_details emp on Req.Requestedby = emp.EmpID + left join t_departmentdetails Dept on Req.RequestedDept = Dept.DEPCode where LineItem.PONO =?'; + //print_r($subQuery); + + $query = $this->db->query($subQuery, array($PONO)); + + return $query->getResult(); + } + + // This Method to get the Capital PO Details for pdf + function GetCapitalPurchaseOrderDetailsForPDF($PONO = '') + { + + $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.Per,LineItem.AmendedDetails as lineamd,LineItem.AmendedDetails as lineamenddetails,ReqNo,Mat.MaterialCode,Mat.MaterialName,LineItem.ServiceMaterialDescription, + Mat.UOM,Mat.HSNCODE,Quantity,Rate,ROUND((Quantity *Rate),2 ) as BasicValue , + LineItem.CostCenterCode , POMaster.*,sup.SupplierName,sup.SupplierID,sup.Address,sup.ContactNumber,sup.EmailAddress,sup.PAN,sup.GSTNO,sup.MSME,sup.Cert_MSME,Payment.PaymentID,Payment.PaymentTerms,AdvanceAmount,HSNCODE + FROM t_purchaseorder_lineitem LineItem + join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode + + join t_purchaseorder_master POMaster on POMaster.PONO = LineItem.PONO + join t_supplierdetailsn sup on sup.SupplierID = POMaster.SupplierID + join t_paymentterms Payment on Payment.PaymentID = POMaster.PaymentTerms + left join t_purchaseorder_advancerequest Adv on POMaster.PONO=Adv.PONO + where LineItem.PONO =?'; + $query = $this->db->query($subQuery, array($PONO)); + + return $query->getResult(); + } + // get requested by details + function GetRequesedByDetails($PONO) + { + $builder = $this->db->table('t_purchaseorder_master mast') + ->select('mast.CreatedBy, re.FirstName, Dept.DEPCode, Dept.DepartmentName') + ->join('tbl_users tbl', 'mast.CreatedBy = tbl.userid', 'left') + ->join('t_employee_details re', 're.EmpID = tbl.EmpID', 'left') + ->join('t_departmentdetails Dept', 're.Departmentcode = Dept.DEPCode', 'left') + ->where('mast.PONO', $PONO); + + $result = $builder->get(); + return $result->getResult(); + } + + + // get domestic capital po list + + + function getDomesticCapitalPurchaseOrderDetails($PONO = '') + { + + $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.Per,LineItem.ServiceMaterialDescription,Req.ReqNo,Mat.MaterialCode,Mat.MaterialName,LineItem.ServiceMaterialDescription,LineItem.ServiceFrequency, + Mat.UOM,Quantity,ReceivedQuantity,Rate,Req.Status,ROUND((ServiceTax.After_CGST + ServiceTax.After_SGST + ServiceTax.After_IGST),2) as ServiceTaxamount + ,ServiceTax.TotalValue,ServiceTax.CGST,ServiceTax.After_CGST,ServiceTax.SGST,ServiceTax.After_SGST,ServiceTax.IGST,ServiceTax.After_IGST,ServiceTax.otherallowance,ServiceTax.discount,ServiceTax.discountval,ServiceTax.Afterdiscountval, + POMast.ExchangeRate,POMast.ExchangeRateCalculatedon,POMast.TotalOrderValue as BasicValue,POMast.CapitalRange,ROUND((POMast.TotalOrderValue),2) as BasicINRValue,POMast.CurrencyType,FreightType as Ftype,NoOfTrip as NoTrip,FreightValue as Fvalue,AfterFreightValue as Afvalue, + Req.CostCenterCode,Dept.DepartmentName FROM t_purchaseorder_lineitem LineItem join t_purchaseorder_master POMast on POMast.PONO = LineItem.PONO join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode - left join t_import_tax Tax on Tax.LineItemNo = LineItem.LineItemNo + left join t_service_tax ServiceTax on ServiceTax.LineItemNo = LineItem.LineItemNo join t_requestion_master Req on Req.ReqNo = LineItem.ReqNo - left join t_employee_details emp on Req.Requestedby = emp.EmpID - left join t_departmentdetails Dept on Req.RequestedDept = Dept.DEPCode where LineItem.PONO =?'; - //print_r($subQuery); + join t_employee_details emp on Req.Requestedby = emp.EmpID - $query = $this->db->query($subQuery, array($PONO)); + join t_departmentdetails Dept on emp.Departmentcode = Dept.DEPCode where LineItem.PONO =?'; + //print_r($subQuery); - return $query->getResult(); - } + $query = $this->db->query($subQuery, array($PONO)); - // This Method to get the Capital PO Details for pdf - function GetCapitalPurchaseOrderDetailsForPDF($PONO = '') - { - - $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.Per,LineItem.AmendedDetails as lineamd,LineItem.AmendedDetails as lineamenddetails,ReqNo,Mat.MaterialCode,Mat.MaterialName,LineItem.ServiceMaterialDescription, - Mat.UOM,Mat.HSNCODE,Quantity,Rate,ROUND((Quantity *Rate),2 ) as BasicValue , - LineItem.CostCenterCode , POMaster.*,sup.SupplierName,sup.SupplierID,sup.Address,sup.ContactNumber,sup.EmailAddress,sup.PAN,sup.GSTNO,sup.MSME,sup.Cert_MSME,Payment.PaymentID,Payment.PaymentTerms,AdvanceAmount,HSNCODE - FROM t_purchaseorder_lineitem LineItem - join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode - - join t_purchaseorder_master POMaster on POMaster.PONO = LineItem.PONO - join t_supplierdetailsn sup on sup.SupplierID = POMaster.SupplierID - join t_paymentterms Payment on Payment.PaymentID = POMaster.PaymentTerms - left join t_purchaseorder_advancerequest Adv on POMaster.PONO=Adv.PONO - where LineItem.PONO =?'; - $query = $this->db->query($subQuery, array($PONO)); - - return $query->getResult(); - } - // get requested by details - function GetRequesedByDetails($PONO) - { - $builder = $this->db->table('t_purchaseorder_master mast') - ->select('mast.CreatedBy, re.FirstName, Dept.DEPCode, Dept.DepartmentName') - ->join('tbl_users tbl', 'mast.CreatedBy = tbl.userid', 'left') - ->join('t_employee_details re', 're.EmpID = tbl.EmpID', 'left') - ->join('t_departmentdetails Dept', 're.Departmentcode = Dept.DEPCode', 'left') - ->where('mast.PONO', $PONO); - - $result = $builder->get(); - return $result->getResult(); - } + return $query->getResult(); + } + //get pdf po requistion details - // get domestic capital po list + function GetPdfRequistionDetails($PONO) + { + $builder = $this->db->table('t_purchaseorder_lineitem LineItem')->select('LineItem.ReqNo') + ->where('LineItem.PONO', $PONO); + $result = $builder->get(); + $ReqNo = ''; - function getDomesticCapitalPurchaseOrderDetails($PONO = '') - { + foreach ($result->getResult() as $res) { - $subQuery = 'SELECT distinct LineItem.LineItemNo,LineItem.Per,LineItem.ServiceMaterialDescription,Req.ReqNo,Mat.MaterialCode,Mat.MaterialName,LineItem.ServiceMaterialDescription,LineItem.ServiceFrequency, - Mat.UOM,Quantity,ReceivedQuantity,Rate,Req.Status,ROUND((ServiceTax.After_CGST + ServiceTax.After_SGST + ServiceTax.After_IGST),2) as ServiceTaxamount - ,ServiceTax.TotalValue,ServiceTax.CGST,ServiceTax.After_CGST,ServiceTax.SGST,ServiceTax.After_SGST,ServiceTax.IGST,ServiceTax.After_IGST,ServiceTax.otherallowance,ServiceTax.discount,ServiceTax.discountval,ServiceTax.Afterdiscountval, - POMast.ExchangeRate,POMast.ExchangeRateCalculatedon,POMast.TotalOrderValue as BasicValue,POMast.CapitalRange,ROUND((POMast.TotalOrderValue),2) as BasicINRValue,POMast.CurrencyType,FreightType as Ftype,NoOfTrip as NoTrip,FreightValue as Fvalue,AfterFreightValue as Afvalue, + if ($ReqNo == $res->ReqNo) { + } else { + $ReqNo = $res->ReqNo; + $builder1 = $this->db->table('t_requestion_master ReqMast') + ->select('ReqMast.ReqNo,ReqMast.CostCenterCode,ReqMast.ReqDate,ReqMast.Schedule_Type,ReqMast.NumberOfService,ReqMast.Service_Period,Dept.DEPCode,Dept.DepartmentName,Dept.shortName') + ->join('t_departmentdetails Dept', 'ReqMast.RequestedDept = Dept.DEPCode') + ->where('ReqMast.ReqNo', $ReqNo); + $Reqresult = $builder1->get(); + $Details['RequistionNo'] = $Reqresult->getResult()[0]->ReqNo; + $Details['ReqDate'] = $Reqresult->getResult()[0]->ReqDate; - Req.CostCenterCode,Dept.DepartmentName FROM t_purchaseorder_lineitem LineItem - join t_purchaseorder_master POMast on POMast.PONO = LineItem.PONO - join t_materialmaster Mat on Mat.MaterialCode = LineItem.MaterialCode - left join t_service_tax ServiceTax on ServiceTax.LineItemNo = LineItem.LineItemNo - join t_requestion_master Req on Req.ReqNo = LineItem.ReqNo - join t_employee_details emp on Req.Requestedby = emp.EmpID + $Details['RequestedDept'] = $Reqresult->getResult()[0]->shortName; + $Details['CostCenterCode'] = $Reqresult->getResult()[0]->CostCenterCode; + $retDate = format_date($Reqresult->getResult()[0]->ReqDate, 0, $format = 'd-m-Y'); + $Details['ReqDate'] = $retDate; + $ScheduleType = $Reqresult->getResult()[0]->Schedule_Type; + if ($ScheduleType != 'Recurring') { + $Details['Frequency'] = $Reqresult->getResult()[0]->Schedule_Type; + } else { + $Details['Frequency'] = $Reqresult->getResult()[0]->Service_Period . ' - ' . $Reqresult->getResult()[0]->NumberOfService; + } - join t_departmentdetails Dept on emp.Departmentcode = Dept.DEPCode where LineItem.PONO =?'; - //print_r($subQuery); + $ResultArray[] = $Details; + } + } - $query = $this->db->query($subQuery, array($PONO)); + $RequistionDetails = $ResultArray; + return $RequistionDetails; + } + function GetLineItemReceivedQty($ParentPO, $MaterialCode) + { + $builder = $this->db->table('t_purchaseorder_lineitem') + ->select('ReceivedQuantity') + ->where('PONO', $ParentPO) + ->where('MaterialCode', $MaterialCode); + $result = $builder->get(); - return $query->getResult(); - } - //get pdf po requistion details - - - function GetPdfRequistionDetails($PONO) - { - - $builder = $this->db->table('t_purchaseorder_lineitem LineItem')->select('LineItem.ReqNo') - ->where('LineItem.PONO', $PONO); - $result = $builder->get(); - $ReqNo = ''; - - foreach ($result->getResult() as $res) { - - if ($ReqNo == $res->ReqNo) { - } else { - $ReqNo = $res->ReqNo; - $builder1 = $this->db->table('t_requestion_master ReqMast') - ->select('ReqMast.ReqNo,ReqMast.CostCenterCode,ReqMast.ReqDate,ReqMast.Schedule_Type,ReqMast.NumberOfService,ReqMast.Service_Period,Dept.DEPCode,Dept.DepartmentName,Dept.shortName') - ->join('t_departmentdetails Dept', 'ReqMast.RequestedDept = Dept.DEPCode') - ->where('ReqMast.ReqNo', $ReqNo); - $Reqresult = $builder1->get(); - $Details['RequistionNo'] = $Reqresult->getResult()[0]->ReqNo; - $Details['ReqDate'] = $Reqresult->getResult()[0]->ReqDate; - - $Details['RequestedDept'] = $Reqresult->getResult()[0]->shortName; - $Details['CostCenterCode'] = $Reqresult->getResult()[0]->CostCenterCode; - $retDate = format_date($Reqresult->getResult()[0]->ReqDate, 0, $format = 'd-m-Y'); - $Details['ReqDate'] = $retDate; - $ScheduleType = $Reqresult->getResult()[0]->Schedule_Type; - if ($ScheduleType != 'Recurring') { - $Details['Frequency'] = $Reqresult->getResult()[0]->Schedule_Type; - } else { - $Details['Frequency'] = $Reqresult->getResult()[0]->Service_Period . ' - ' . $Reqresult->getResult()[0]->NumberOfService; + return $result->getResultArray(); } - $ResultArray[] = $Details; - } - } + //get paymentTerms details - $RequistionDetails = $ResultArray; - return $RequistionDetails; - } - function GetLineItemReceivedQty($ParentPO, $MaterialCode) - { - $builder = $this->db->table('t_purchaseorder_lineitem') - ->select('ReceivedQuantity') - ->where('PONO', $ParentPO) - ->where('MaterialCode', $MaterialCode); - $result = $builder->get(); - - return $result->getResultArray(); - } - - //get paymentTerms details - - function getPaymentTermsDetails($Payment_ID = '') - { + function getPaymentTermsDetails($Payment_ID = '') + { - $getpaymentQuery = 'select distinct PaymentID,PaymentTerms,Details from t_paymentterms'; - $paymentQuery = $this->db->query($getpaymentQuery); + $getpaymentQuery = 'select distinct PaymentID,PaymentTerms,Details from t_paymentterms'; + $paymentQuery = $this->db->query($getpaymentQuery); - return $paymentQuery->getResult(); - } - /** - * This function is used to get status in status table - - */ - function getStatus($StatusType = '') - { - - $builder = $this->db->table('t_status')->select('StatusCode,StatusName ') - ->where('StatusType', $StatusType); - $query = $builder->get(); - - return $query->getResult(); - } - - - function edit_mrir($MrirNo) - { - $builder = $this->db->table('t_mrir_master TMM') - ->distinct() - ->select('TMM.MRIRNO,TMM.PONO,TMM.IGRNO,TMM.Createdon,TMD.ActualQuantityReceived,IGRM.DeliveryChellanOrInvoiceNo,IGRM.DeliveryChellanDate,IGRM.VehicleNo,IGRM.CourierNo,IGRM.CreatedDate,IGRD.QuantityAsPerInvoice,SUPP.SupplierName,SUPP.Address,POMR.PODate,POMR.DeliveryDate,POMR.ServiceDescription,TMD.MaterialCode,MM.MaterialName,MM.UOM,POLT.Quantity,POLT.ReceivedQuantity,ED.FirstName as PORasiedbyName,ED1.FirstName as MRIRRasiedbyName, ED2.FirstName as IGRRasiedbyName,TMM.MRIRStatus,TMM.Createdon as MRIRCreatedon,POLT.CostCenterCode,CostCenterName,QuantityAccepted,QuantityRejected,TMD.Remarks') - ->join('t_mrir_details TMD', 'TMM.MRIRNO = TMD.MRIRNO', 'left') //to get IGRNO,PONO,MRIRNO,mrirdate, - ->join('t_igr_master IGRM', 'IGRM.IGRNO = TMM.IGRNO', 'left') //to get actualquantity,deliverydate,Invoicedate,vechileno,courierno,igrdate, - ->join('t_purchaseorder_master POMR ', 'IGRM.PONO = POMR.PONO', 'left') //to get podate,deliverydate,servicedescription - ->join('t_purchaseorder_lineitem POLT', 'IGRM.PONO=POLT.PONO', 'left') //to get receivedquantity,quantity - ->join('t_igr_details IGRD', 'IGRD.IGRNO = IGRM.IGRNO', 'left') //to get invoicequantity - ->join('t_materialmaster MM', 'IGRD.MaterialCode = MM.MaterialCode', 'left') - ->join('t_supplierdetailsn SUPP', 'POMR.SupplierID = SUPP.SupplierID', 'left') //to get suppliername,supplieraddress - ->join('tbl_users user', 'user.userid = POMR.CreatedBy', 'left') //to get poraisedby - ->join('t_employee_details ED', 'ED.EmpID = user.EmpID', 'left') - ->join('tbl_users user1', 'user1.userid=TMM.CreatedBy', 'left') //to get mrirraisedby - ->join('t_employee_details ED1', 'ED1.EmpID = user1.EmpID', 'left') - ->join('tbl_users user2', 'user2.userid=IGRM.CreatedBy', 'left') //to get igrraisedby - ->join('t_employee_details ED2', 'ED2.EmpID = user2.EmpID', 'left') - ->join('t_costcenter_master TCOST', 'POLT.CostCenterCode=TCOST.CostCenterCode') - ->where('TMM.MRIRNO', $MrirNo) - ->groupBy('TMM.MRIRNO,TMD.MaterialCode'); - $query = $builder->get(); - $result = $query->getResult(); - - return $result; - } - - - - - - function getadvancePONO($Status = '') - { - $builder = $this->db->table('t_purchaseorder_master Mast')->select('Mast.PONO,POType,Mast.CreatedDate,Mast.ReleasedOn,Mast.TotalOrderValue,Mast.SupplierID,DeliveryDate,DeliverySchedule,DeliveryOption,Mast.PaymentTerms as Paycode,Payterm.PaymentTerms,LineItem.ReqNo,Requestedby,Departmentcode,DepartmentName,LineItem.CostCenterCode,SupDet.SupplierName,Import_DispatchDetails,CurrencyType,AdvancePercentage,AdvanceAmount,POAdv.Remarks,Mast.CapitalRange,Mast.PaymentOtherDescription,RequestedDept') - ->join('t_purchaseorder_lineitem LineItem', 'Mast.PONO=LineItem.PONO') - ->join('t_requestion_master ReqMa', 'LineItem.ReqNo=ReqMa.ReqNo') - ->join('t_employee_details EmpDet', 'ReqMa.Requestedby=EmpDet.EmpID', 'left') - ->join('t_departmentdetails DepDet', 'EmpDet.Departmentcode=DepDet.DEPCode or ReqMa.RequestedDept=DepDet.DEPCode', 'left') - ->join('t_supplierdetailsn SupDet', 'Mast.SupplierID=SupDet.SupplierID') - ->join('t_purchaseorder_advancerequest POAdv', 'Mast.PONO=POAdv.PONO', 'left') - ->join('t_paymentterms Payterm', 'Mast.PaymentTerms=Payterm.PaymentID') - ->where('Mast.Status', $Status); - $query = $builder->get(); - - return $query->getResult(); - } - - // update req deatail if work status is completed - - function updateReqDetail($PONO, $POStatus, $MaterialCode) - { - $this->db->table('t_purchaseorder_lineitem Item') - ->join('t_requestion_details Req', 'Item.ReqNo = Req.ReqNo') - ->where('Item.PONO', $PONO) - ->where('Req.MaterialCode', $MaterialCode) - ->set('Req.Status', $POStatus) - ->update(); - return TRUE; - } - - function UpdateReceivedQtyforServicePO($PONO, $updateddt, $updatedBy) - { - $builder = $this->db->table('t_purchaseorder_lineitem')->select('LineItemNo,MaterialCode') - ->where('PONO ', $PONO); - $query = $builder->get(); - $result = $query->getResult(); - - if (!empty($result)) { - foreach ($result as $res) { - $LineItemNo = $res->LineItemNo; - $MaterialCode = $res->MaterialCode; - //echo $LineItemNo; - - $subQuery = 'update t_purchaseorder_lineitem - set ReceivedQuantity=Quantity, status=?,UpdatedOn=?,UpdateBY=? where PONO=? and LineItemNo=?'; - - $query = $this->db->query($subQuery, array(PO_SERVICE_COMPLETED, $updateddt, $updatedBy, $PONO, $LineItemNo)); - $finddot = strpos($PONO, '.'); - if ($finddot = true) { - $subQuery = 'update t_purchaseorder_lineitem - set ReceivedQuantity=Quantity, status=?,UpdatedOn=?,UpdateBY=? where PONO=substring(?,1,(case when INstr(?,?) > 0 then INstr(?,?)-1 else 0 end)) and MaterialCode=?'; - - $query = $this->db->query($subQuery, array(PO_SERVICE_COMPLETED, $updateddt, $updatedBy, $PONO, $PONO, '.', $PONO, '.', $MaterialCode)); + return $paymentQuery->getResult(); } - } - } - } - //get service tax listusing po number - function GetServiceTaxDetails($PONO = '') - { + /** + * This function is used to get status in status table + + */ + function getStatus($StatusType = '') + { - $taxQuery = 'SELECT group_concat(@count:=@count+1) Itemcode, -st.CGST,st.SGST,st.IGST,st.otherallowance FROM t_service_tax st - join t_purchaseorder_lineitem pl on pl.LineItemNo=st.LineItemNo - join t_purchaseorder_master pm on pm.PONO=pl.PONO JOIN - (SELECT @count := 0) count - where pm.POType=? and pm.PONO=? - group by st.CGST,st.SGST,st.IGST,st.otherallowance - ORDER BY Itemcode ASC '; + $builder = $this->db->table('t_status')->select('StatusCode,StatusName ') + ->where('StatusType', $StatusType); + $query = $builder->get(); + + return $query->getResult(); + } + + + function edit_mrir($MrirNo) + { + $builder = $this->db->table('t_mrir_master TMM') + ->distinct() + ->select('TMM.MRIRNO,TMM.PONO,TMM.IGRNO,TMM.Createdon,TMD.ActualQuantityReceived,IGRM.DeliveryChellanOrInvoiceNo,IGRM.DeliveryChellanDate,IGRM.VehicleNo,IGRM.CourierNo,IGRM.CreatedDate,IGRD.QuantityAsPerInvoice,SUPP.SupplierName,SUPP.Address,POMR.PODate,POMR.DeliveryDate,POMR.ServiceDescription,TMD.MaterialCode,MM.MaterialName,MM.UOM,POLT.Quantity,POLT.ReceivedQuantity,ED.FirstName as PORasiedbyName,ED1.FirstName as MRIRRasiedbyName, ED2.FirstName as IGRRasiedbyName,TMM.MRIRStatus,TMM.Createdon as MRIRCreatedon,POLT.CostCenterCode,CostCenterName,QuantityAccepted,QuantityRejected,TMD.Remarks') + ->join('t_mrir_details TMD', 'TMM.MRIRNO = TMD.MRIRNO', 'left') //to get IGRNO,PONO,MRIRNO,mrirdate, + ->join('t_igr_master IGRM', 'IGRM.IGRNO = TMM.IGRNO', 'left') //to get actualquantity,deliverydate,Invoicedate,vechileno,courierno,igrdate, + ->join('t_purchaseorder_master POMR ', 'IGRM.PONO = POMR.PONO', 'left') //to get podate,deliverydate,servicedescription + ->join('t_purchaseorder_lineitem POLT', 'IGRM.PONO=POLT.PONO', 'left') //to get receivedquantity,quantity + ->join('t_igr_details IGRD', 'IGRD.IGRNO = IGRM.IGRNO', 'left') //to get invoicequantity + ->join('t_materialmaster MM', 'IGRD.MaterialCode = MM.MaterialCode', 'left') + ->join('t_supplierdetailsn SUPP', 'POMR.SupplierID = SUPP.SupplierID', 'left') //to get suppliername,supplieraddress + ->join('tbl_users user', 'user.userid = POMR.CreatedBy', 'left') //to get poraisedby + ->join('t_employee_details ED', 'ED.EmpID = user.EmpID', 'left') + ->join('tbl_users user1', 'user1.userid=TMM.CreatedBy', 'left') //to get mrirraisedby + ->join('t_employee_details ED1', 'ED1.EmpID = user1.EmpID', 'left') + ->join('tbl_users user2', 'user2.userid=IGRM.CreatedBy', 'left') //to get igrraisedby + ->join('t_employee_details ED2', 'ED2.EmpID = user2.EmpID', 'left') + ->join('t_costcenter_master TCOST', 'POLT.CostCenterCode=TCOST.CostCenterCode') + ->where('TMM.MRIRNO', $MrirNo) + ->groupBy('TMM.MRIRNO,TMD.MaterialCode'); + $query = $builder->get(); + $result = $query->getResult(); + + return $result; + } + + + + + + function getadvancePONO($Status = '') + { + $builder = $this->db->table('t_purchaseorder_master Mast')->select('Mast.PONO,POType,Mast.CreatedDate,Mast.ReleasedOn,Mast.TotalOrderValue,Mast.SupplierID,DeliveryDate,DeliverySchedule,DeliveryOption,Mast.PaymentTerms as Paycode,Payterm.PaymentTerms,LineItem.ReqNo,Requestedby,Departmentcode,DepartmentName,LineItem.CostCenterCode,SupDet.SupplierName,Import_DispatchDetails,CurrencyType,AdvancePercentage,AdvanceAmount,POAdv.Remarks,Mast.CapitalRange,Mast.PaymentOtherDescription,RequestedDept') + ->join('t_purchaseorder_lineitem LineItem', 'Mast.PONO=LineItem.PONO') + ->join('t_requestion_master ReqMa', 'LineItem.ReqNo=ReqMa.ReqNo') + ->join('t_employee_details EmpDet', 'ReqMa.Requestedby=EmpDet.EmpID', 'left') + ->join('t_departmentdetails DepDet', 'EmpDet.Departmentcode=DepDet.DEPCode or ReqMa.RequestedDept=DepDet.DEPCode', 'left') + ->join('t_supplierdetailsn SupDet', 'Mast.SupplierID=SupDet.SupplierID') + ->join('t_purchaseorder_advancerequest POAdv', 'Mast.PONO=POAdv.PONO', 'left') + ->join('t_paymentterms Payterm', 'Mast.PaymentTerms=Payterm.PaymentID') + ->where('Mast.Status', $Status); + $query = $builder->get(); + + return $query->getResult(); + } + + // update req deatail if work status is completed + + function updateReqDetail($PONO, $POStatus, $MaterialCode) + { + $this->db->table('t_purchaseorder_lineitem Item') + ->join('t_requestion_details Req', 'Item.ReqNo = Req.ReqNo') + ->where('Item.PONO', $PONO) + ->where('Req.MaterialCode', $MaterialCode) + ->set('Req.Status', $POStatus) + ->update(); + return TRUE; + } + + function UpdateReceivedQtyforServicePO($PONO, $updateddt, $updatedBy) + { + $builder = $this->db->table('t_purchaseorder_lineitem')->select('LineItemNo,MaterialCode') + ->where('PONO ', $PONO); + $query = $builder->get(); + $result = $query->getResult(); + + if (!empty($result)) { + foreach ($result as $res) { + $LineItemNo = $res->LineItemNo; + $MaterialCode = $res->MaterialCode; + //echo $LineItemNo; + + $subQuery = 'update t_purchaseorder_lineitem + set ReceivedQuantity=Quantity, status=?,UpdatedOn=?,UpdateBY=? where PONO=? and LineItemNo=?'; + + $query = $this->db->query($subQuery, array(PO_SERVICE_COMPLETED, $updateddt, $updatedBy, $PONO, $LineItemNo)); + $finddot = strpos($PONO, '.'); + if ($finddot = true) { + $subQuery = 'update t_purchaseorder_lineitem + set ReceivedQuantity=Quantity, status=?,UpdatedOn=?,UpdateBY=? where PONO=substring(?,1,(case when INstr(?,?) > 0 then INstr(?,?)-1 else 0 end)) and MaterialCode=?'; + + $query = $this->db->query($subQuery, array(PO_SERVICE_COMPLETED, $updateddt, $updatedBy, $PONO, $PONO, '.', $PONO, '.', $MaterialCode)); + } + } + } + } + //get service tax listusing po number + function GetServiceTaxDetails($PONO = '') + { + + $taxQuery = 'SELECT group_concat(@count:=@count+1) Itemcode, + st.CGST,st.SGST,st.IGST,st.otherallowance FROM t_service_tax st + join t_purchaseorder_lineitem pl on pl.LineItemNo=st.LineItemNo + join t_purchaseorder_master pm on pm.PONO=pl.PONO JOIN + (SELECT @count := 0) count + where pm.POType=? and pm.PONO=? + group by st.CGST,st.SGST,st.IGST,st.otherallowance + ORDER BY Itemcode ASC '; $query = $this->db->query($taxQuery, array("SERVICE", $PONO)); @@ -1985,443 +1985,443 @@ st.CGST,st.SGST,st.IGST,st.otherallowance FROM t_service_tax st function amendpdf($PONO = '') { $Amend = 'select p.PONO,p.ParentPO,p.Status,p.TotalOrderValue, - m.Status as parentpostatus, - m.TotalOrderValue as partenttotalorder - from t_purchaseorder_master as p - join t_purchaseorder_master as m - on m.PONO = p.ParentPO - where p.PONO = ?'; - $amendment = $this->db->query($Amend, array($PONO)); + m.Status as parentpostatus, + m.TotalOrderValue as partenttotalorder + from t_purchaseorder_master as p + join t_purchaseorder_master as m + on m.PONO = p.ParentPO + where p.PONO = ?'; + $amendment = $this->db->query($Amend, array($PONO)); - return $amendment->getResult(); - } + return $amendment->getResult(); + } - function GetClients() - { + function GetClients() + { - $builder = $this->db->table('ip_clients')->select('client_id,client_name'); - $query = $builder->get(); - return $query->getResultArray(); - } + $builder = $this->db->table('ip_clients')->select('client_id,client_name'); + $query = $builder->get(); + return $query->getResultArray(); + } - function SaveEnquiry($save) - { - $this->db->transStart(); - $builder = $this->db->table('T_Enquiry'); - $builder->insert($save); - $insert_id = $this->db->affectedRows(); - $this->db->transComplete(); - return $insert_id; - } + function SaveEnquiry($save) + { + $this->db->transStart(); + $builder = $this->db->table('T_Enquiry'); + $builder->insert($save); + $insert_id = $this->db->affectedRows(); + $this->db->transComplete(); + return $insert_id; + } - function UpdateEnquiry($save, $Id) - { - $this->db->table('T_Enquiry') - ->where('Id', $Id) - ->update($save); - $insert_id = $this->db->affectedRows(); - return $insert_id; - } + function UpdateEnquiry($save, $Id) + { + $this->db->table('T_Enquiry') + ->where('Id', $Id) + ->update($save); + $insert_id = $this->db->affectedRows(); + return $insert_id; + } - function GetEnquiryDetails() - { - $builder = $this->db->table('T_Enquiry') - ->select('T_Enquiry.*,client_name') - ->join('ip_clients', 'ip_clients.client_id=T_Enquiry.client_id') - ->orderBy('Id', 'desc'); - $query = $builder->get(); - return $query->getResult(); - } - + function GetEnquiryDetails() + { + $builder = $this->db->table('T_Enquiry') + ->select('T_Enquiry.*,client_name') + ->join('ip_clients', 'ip_clients.client_id=T_Enquiry.client_id') + ->orderBy('Id', 'desc'); + $query = $builder->get(); + return $query->getResult(); + } + - function GetEnquiry($Id) - { + function GetEnquiry($Id) + { - $builder = $this->db->table('T_Enquiry') - ->select('T_Enquiry.*,client_name') - ->join('ip_clients', 'ip_clients.client_id=T_Enquiry.client_id') - ->where('Id', $Id) - ->orderBy('Id', 'desc'); - $query = $builder->get(); - return $query->getResult(); - } + $builder = $this->db->table('T_Enquiry') + ->select('T_Enquiry.*,client_name') + ->join('ip_clients', 'ip_clients.client_id=T_Enquiry.client_id') + ->where('Id', $Id) + ->orderBy('Id', 'desc'); + $query = $builder->get(); + return $query->getResult(); + } - function GetEnquiryCount($createddt) - { + function GetEnquiryCount($createddt) + { - - $builder = $this->db->table('T_Enquiry') - ->select('count(Id) as Countnumber') - ->where('Created_Date', $createddt); - $query = $builder->get(); - return $query->getResult(); - } - - - function SaveActionMaster($master) - { - - $this->db->transStart(); - $builder = $this->db->table('T_ActionReport_Master'); - $builder->insert($master); - $insert_id = $this->db->affectedRows(); - $this->db->transComplete(); - - if ($insert_id > 0) { - $subQuery = 'select max(Id) as Id from T_ActionReport_Master'; - - $query = $this->db->query($subQuery, array()); - - return $query->getResultArray(); - } - } - - - function SaveActionDisposition($actionsave) - { - $this->db->transStart(); - $builder = $this->db->table('T_Action_Disposition'); - $builder->insert($actionsave); - - $insert_id = $this->db->affectedRows(); - $this->db->transComplete(); - return $insert_id; - } + + $builder = $this->db->table('T_Enquiry') + ->select('count(Id) as Countnumber') + ->where('Created_Date', $createddt); + $query = $builder->get(); + return $query->getResult(); + } + + + function SaveActionMaster($master) + { + + $this->db->transStart(); + $builder = $this->db->table('T_ActionReport_Master'); + $builder->insert($master); + $insert_id = $this->db->affectedRows(); + $this->db->transComplete(); + + if ($insert_id > 0) { + $subQuery = 'select max(Id) as Id from T_ActionReport_Master'; + + $query = $this->db->query($subQuery, array()); + + return $query->getResultArray(); + } + } + + + function SaveActionDisposition($actionsave) + { + $this->db->transStart(); + $builder = $this->db->table('T_Action_Disposition'); + $builder->insert($actionsave); + + $insert_id = $this->db->affectedRows(); + $this->db->transComplete(); + return $insert_id; + } - function UpdateActionDisposition($actionsave, $LineDisposition) - { - //echo $LineDisposition; - $this->db->table('T_Action_Disposition') - ->where('DispositionId', $LineDisposition) - ->update($actionsave); - return TRUE; - } - - function UpdateRootCause($rootsave, $Lineroot) - { - $this->db->table('T_RootCause') - ->where('RootId', $Lineroot) - ->update($rootsave); - return TRUE; - } - - - function Updatecounteraction($savecounter, $LineCounter) - { - $this->db->table('T_Action_Counter_Measure') - ->where('CounterId', $LineCounter) - ->update($savecounter); - return TRUE; - } - - - function UpdateActionMaster($master, $Id) - { - $this->db->table('T_ActionReport_Master') - ->where('Id', $Id) - ->update($master); - $insert_id = $this->db->affectedRows(); - //return TRUE; - if ($insert_id > 0) { - $subQuery = 'select max(Id) as Id from T_ActionReport_Master'; - - $query = $this->db->query($subQuery, array()); + function UpdateActionDisposition($actionsave, $LineDisposition) + { + //echo $LineDisposition; + $this->db->table('T_Action_Disposition') + ->where('DispositionId', $LineDisposition) + ->update($actionsave); + return TRUE; + } + + function UpdateRootCause($rootsave, $Lineroot) + { + $this->db->table('T_RootCause') + ->where('RootId', $Lineroot) + ->update($rootsave); + return TRUE; + } + + + function Updatecounteraction($savecounter, $LineCounter) + { + $this->db->table('T_Action_Counter_Measure') + ->where('CounterId', $LineCounter) + ->update($savecounter); + return TRUE; + } + + + function UpdateActionMaster($master, $Id) + { + $this->db->table('T_ActionReport_Master') + ->where('Id', $Id) + ->update($master); + $insert_id = $this->db->affectedRows(); + //return TRUE; + if ($insert_id > 0) { + $subQuery = 'select max(Id) as Id from T_ActionReport_Master'; + + $query = $this->db->query($subQuery, array()); - return $query->getResultArray(); - } - } - - - - function SaveRootCause($rootsave) - { - - $this->db->transStart(); - $builder = $this->db->table('T_RootCause'); - $builder->insert($rootsave); - $insert_id = $this->db->affectedRows(); - $this->db->transComplete(); - return $insert_id; - } - - function Savecounteraction($savecounter) - { - $this->db->transStart(); - $builder = $this->db->table('T_Action_Counter_Measure'); - $builder->insert($savecounter); - $insert_id = $this->db->affectedRows(); - $this->db->transComplete(); - return $insert_id; - } - - function GetNcrlist() - { - $builder = $this->db->table('t_complaintregister')->select('*') - ->join('ip_clients', 'ip_clients.client_id=t_complaintregister.client_id') - ->orderBy('CId', 'desc'); - $query = $builder->get(); - return $query->getResult(); - } - - - function GetncrmasterDetails($Id) - { + return $query->getResultArray(); + } + } + + + + function SaveRootCause($rootsave) + { + + $this->db->transStart(); + $builder = $this->db->table('T_RootCause'); + $builder->insert($rootsave); + $insert_id = $this->db->affectedRows(); + $this->db->transComplete(); + return $insert_id; + } + + function Savecounteraction($savecounter) + { + $this->db->transStart(); + $builder = $this->db->table('T_Action_Counter_Measure'); + $builder->insert($savecounter); + $insert_id = $this->db->affectedRows(); + $this->db->transComplete(); + return $insert_id; + } + + function GetNcrlist() + { + $builder = $this->db->table('t_complaintregister')->select('*') + ->join('ip_clients', 'ip_clients.client_id=t_complaintregister.client_id') + ->orderBy('CId', 'desc'); + $query = $builder->get(); + return $query->getResult(); + } + + + function GetncrmasterDetails($Id) + { - $builder = $this->db->table('T_ActionReport_Master')->select('*') - ->where('Id', $Id); - $query = $builder->get(); - return $query->getResult(); - } + $builder = $this->db->table('T_ActionReport_Master')->select('*') + ->where('Id', $Id); + $query = $builder->get(); + return $query->getResult(); + } - function GetDispositionDetails($Id) - { + function GetDispositionDetails($Id) + { - $builder = $this->db->table('T_Action_Disposition')->select('*') - ->where('Id', $Id); - $query = $builder->get(); - return $query->getResult(); - } + $builder = $this->db->table('T_Action_Disposition')->select('*') + ->where('Id', $Id); + $query = $builder->get(); + return $query->getResult(); + } - function GetRootcauseDetails($Id) - { + function GetRootcauseDetails($Id) + { - $builder = $this->db->table('T_RootCause')->select('*') - ->where('Id', $Id); - $query = $builder->get(); - return $query->getResult(); - } + $builder = $this->db->table('T_RootCause')->select('*') + ->where('Id', $Id); + $query = $builder->get(); + return $query->getResult(); + } - function GetCouteractionDetails($Id) - { + function GetCouteractionDetails($Id) + { - $builder = $this->db->table('T_Action_Counter_Measure')->select('*') - ->where('Id', $Id); - $query = $builder->get(); - return $query->getResult(); - } + $builder = $this->db->table('T_Action_Counter_Measure')->select('*') + ->where('Id', $Id); + $query = $builder->get(); + return $query->getResult(); + } - function Savecomplaint($save_complaint) - { - $this->db->transStart(); - $builder = $this->db->table('t_complaintregister'); - $builder->insert($save_complaint); - $insert_id = $this->db->affectedRows(); - $this->db->transComplete(); - return $insert_id; - } + function Savecomplaint($save_complaint) + { + $this->db->transStart(); + $builder = $this->db->table('t_complaintregister'); + $builder->insert($save_complaint); + $insert_id = $this->db->affectedRows(); + $this->db->transComplete(); + return $insert_id; + } - function Get_SavedComplaint($CId) - { + function Get_SavedComplaint($CId) + { - $builder = $this->db->table('t_complaintregister')->select('*') - ->join('ip_clients', 'ip_clients.client_id=t_complaintregister.client_id') - ->where('CId', $CId) - ->orderBy('CId', 'desc'); - $query = $builder->get(); + $builder = $this->db->table('t_complaintregister')->select('*') + ->join('ip_clients', 'ip_clients.client_id=t_complaintregister.client_id') + ->where('CId', $CId) + ->orderBy('CId', 'desc'); + $query = $builder->get(); - return $query->getResult(); - } + return $query->getResult(); + } - function Updatecomplaint($save_complaint, $CId) - { - $this->db->table('t_complaintregister') - ->where('CId', $CId) - ->update($save_complaint); - return TRUE; - } + function Updatecomplaint($save_complaint, $CId) + { + $this->db->table('t_complaintregister') + ->where('CId', $CId) + ->update($save_complaint); + return TRUE; + } - function updatecomplaintId($up, $CId) - { - $this->db->table('t_complaintregister') - ->where('CId', $CId) - ->update($up); - return TRUE; - } + function updatecomplaintId($up, $CId) + { + $this->db->table('t_complaintregister') + ->where('CId', $CId) + ->update($up); + return TRUE; + } - function GetActionid($LineDisposition) - { + function GetActionid($LineDisposition) + { - $builder = $this->db->table('T_Action_Disposition') - ->select('*') - ->where('DispositionId', $LineDisposition); - $query = $builder->get(); + $builder = $this->db->table('T_Action_Disposition') + ->select('*') + ->where('DispositionId', $LineDisposition); + $query = $builder->get(); - return $query->getResult(); - } + return $query->getResult(); + } - function GetlastDispositionId() - { - $subQuery = 'select max(DispositionId) from T_Action_Disposition'; + function GetlastDispositionId() + { + $subQuery = 'select max(DispositionId) from T_Action_Disposition'; - $query = $this->db->query($subQuery, array()); + $query = $this->db->query($subQuery, array()); - return $query->getResultArray(); - } + return $query->getResultArray(); + } - function Getrootid($Lineroot) - { + function Getrootid($Lineroot) + { - $builder = $this->db->table('T_RootCause')->select('*') - ->where('RootId', $Lineroot); - $query = $builder->get(); + $builder = $this->db->table('T_RootCause')->select('*') + ->where('RootId', $Lineroot); + $query = $builder->get(); - return $query->getResult(); - } + return $query->getResult(); + } - function Getcounterid($LineCounter) - { + function Getcounterid($LineCounter) + { - $builder = $this->db->table('T_Action_Counter_Measure')->select('*') - ->where('CounterId', $LineCounter); - $query = $builder->get(); + $builder = $this->db->table('T_Action_Counter_Measure')->select('*') + ->where('CounterId', $LineCounter); + $query = $builder->get(); - return $query->getResult(); - } + return $query->getResult(); + } - function DeleteAction($DelId) - { + function DeleteAction($DelId) + { - $this->db->table('T_Action_Disposition')->delete(['DispositionId' => $DelId]); - return TRUE; - } + $this->db->table('T_Action_Disposition')->delete(['DispositionId' => $DelId]); + return TRUE; + } - function DeleteRoot($DelId) - { - $this->db->table('T_RootCause')->delete(['RootId' => $DelId]); - return TRUE; - } + function DeleteRoot($DelId) + { + $this->db->table('T_RootCause')->delete(['RootId' => $DelId]); + return TRUE; + } - function DeleteCounter($DelId) - { - $this->db->table('T_Action_Counter_Measure')->delete(['CounterId' => $DelId]); - return TRUE; - } + function DeleteCounter($DelId) + { + $this->db->table('T_Action_Counter_Measure')->delete(['CounterId' => $DelId]); + return TRUE; + } - /*------------------------------------------------------------------------------*/ + /*------------------------------------------------------------------------------*/ - function updatefile($bill, $Picture, $oldfile) - { + function updatefile($bill, $Picture, $oldfile) + { - // if($oldfile != ''){ - // //unlink("public/uploads/BillFiles/".$oldfile);//this deletes the file on particular folder too - // } - $this->db->table('t_purchaseorder_billupload') - ->set('FilePath', $Picture) //value that used to update column - ->where('BillNo', $bill) //which row want to upgrade - ->update(); - $afftectedRows = $this->db->affectedRows(); - return $afftectedRows; - } + // if($oldfile != ''){ + // //unlink("public/uploads/BillFiles/".$oldfile);//this deletes the file on particular folder too + // } + $this->db->table('t_purchaseorder_billupload') + ->set('FilePath', $Picture) //value that used to update column + ->where('BillNo', $bill) //which row want to upgrade + ->update(); + $afftectedRows = $this->db->affectedRows(); + return $afftectedRows; + } - // function newlogpo($logpo) - // { + // function newlogpo($logpo) + // { - // $this->db->transStart(); - // $builder = $this->db->table('T_ponewlogs_Details'); - // $builder->insert($logpo); + // $this->db->transStart(); + // $builder = $this->db->table('T_ponewlogs_Details'); + // $builder->insert($logpo); - // $insert_id = $this->db->affectedRows(); - // $this->db->transComplete(); - // return $insert_id; + // $insert_id = $this->db->affectedRows(); + // $this->db->transComplete(); + // return $insert_id; - // // $this->db->transStart(); - // $builder = $this->db->table('t_polog_details'); - // $builder->insert($logpo); + // // $this->db->transStart(); + // $builder = $this->db->table('t_polog_details'); + // $builder->insert($logpo); - // // $insert_id = $this->db->affectedRows(); - // // $this->db->transComplete(); - // // return $insert_id; + // // $insert_id = $this->db->affectedRows(); + // // $this->db->transComplete(); + // // return $insert_id; - // } + // } - function insertlogpo($logpo) - { + function insertlogpo($logpo) + { - // $this->db->table('T_ponewlogs_Details') - // ->where('MaterialCode',$MaterialCode,'LineItemNos',$POLineItemNo) - // ->update($logpo) - $this->db->transStart(); - $builder = $this->db->table('t_polog_details'); - $builder->insert($logpo); - $insert_id = $this->db->affectedRows(); - $this->db->transComplete(); - return $insert_id; - } - function getlogpodtl($PONO) - { + // $this->db->table('T_ponewlogs_Details') + // ->where('MaterialCode',$MaterialCode,'LineItemNos',$POLineItemNo) + // ->update($logpo) + $this->db->transStart(); + $builder = $this->db->table('t_polog_details'); + $builder->insert($logpo); + $insert_id = $this->db->affectedRows(); + $this->db->transComplete(); + return $insert_id; + } + function getlogpodtl($PONO) + { - // $SQL = "select distinct log.PONO as LPONO, - // case - // WHEN log.Quantity <> pl.Quantity THEN log.Quantity - // else '-' - // ENd as Lqty, + // $SQL = "select distinct log.PONO as LPONO, + // case + // WHEN log.Quantity <> pl.Quantity THEN log.Quantity + // else '-' + // ENd as Lqty, - // case - // WHEN log.SupplierID <> pm.SupplierID THEN sup.Suppliername - // else '-' - // ENd as LSuppid, - // case - // WHEN log.Date <> pm.PODate THEN log.Date - // else '-' - // ENd as logDate , - // case - // WHEN log.Rate <> pl.Rate THEN log.Rate - // else '-' - // ENd as logRate , + // case + // WHEN log.SupplierID <> pm.SupplierID THEN sup.Suppliername + // else '-' + // ENd as LSuppid, + // case + // WHEN log.Date <> pm.PODate THEN log.Date + // else '-' + // ENd as logDate , + // case + // WHEN log.Rate <> pl.Rate THEN log.Rate + // else '-' + // ENd as logRate , - // log.LineItemNos,log.MaterialCode,log.UpdatedOn,log.UpdateBy,emp.FirstName + // log.LineItemNos,log.MaterialCode,log.UpdatedOn,log.UpdateBy,emp.FirstName - // from T_ponewlogs_Details log - // join t_purchaseorder_lineitem pl on log.LineItemNos = pl.LineItemNo - // join t_purchaseorder_master pm on pm.PONO = log.PONO - // join tbl_users user on user.userId = log.UpdateBy - // left join t_employee_details emp on emp.EmpID= user.EmpID - // left join t_supplierdetailsn sup on sup.SupplierID = log.SupplierID - // where log.PONO ='".$PONO."'"; + // from T_ponewlogs_Details log + // join t_purchaseorder_lineitem pl on log.LineItemNos = pl.LineItemNo + // join t_purchaseorder_master pm on pm.PONO = log.PONO + // join tbl_users user on user.userId = log.UpdateBy + // left join t_employee_details emp on emp.EmpID= user.EmpID + // left join t_supplierdetailsn sup on sup.SupplierID = log.SupplierID + // where log.PONO ='".$PONO."'"; - $SQL = "select log.*,sup.SupplierName,emp.FirstName from - t_polog_details log - join tbl_users user on user.userId = log.UpdateBy - left join t_employee_details emp on emp.EmpID= user.EmpID - left join t_supplierdetailsn sup on sup.SupplierID = log.oldValue - where PONO ='" . $PONO . "'"; + $SQL = "select log.*,sup.SupplierName,emp.FirstName from + t_polog_details log + join tbl_users user on user.userId = log.UpdateBy + left join t_employee_details emp on emp.EmpID= user.EmpID + left join t_supplierdetailsn sup on sup.SupplierID = log.oldValue + where PONO ='" . $PONO . "'"; $logpodtl = $this->db->query($SQL); @@ -2499,4 +2499,29 @@ st.CGST,st.SGST,st.IGST,st.otherallowance FROM t_service_tax st return $lastPONO; } /*** ----------------------------- */ + + function deletePurchaseOrderFile($PONO){ + + $builder = $this->db->table('t_purchaseorder_master POMast') + ->where('PONO',$PONO); + $result = $builder->update(['POFile' => NULL]); + + return $result; + + } + + function findPurchaseOrderFile($filename){ + + $builder = $this->db->table('t_purchaseorder_master POMast') + ->where('POFile',$filename); + $query = $builder->get(); + $result = $query->getRow(); + + return $result; + + } + + + + } diff --git a/app/Views/EditservicePurchaseorder.php b/app/Views/EditservicePurchaseorder.php index d48606c2..5d1b9089 100755 --- a/app/Views/EditservicePurchaseorder.php +++ b/app/Views/EditservicePurchaseorder.php @@ -1458,9 +1458,11 @@ if (!empty($getlogpodtl)) { -
+
+      +
diff --git a/app/Views/editCapitalPo.php b/app/Views/editCapitalPo.php index 786ec2a9..a9bc4709 100755 --- a/app/Views/editCapitalPo.php +++ b/app/Views/editCapitalPo.php @@ -1494,19 +1494,22 @@ if (!empty($getlogpodtl)) {

- +
- + +
- -
+
+ @@ -5815,9 +5818,18 @@ if (!empty($getlogpodtl)) { formData.append('txtPONO', $('#txtPONO').val()); formData.append('capitalType', $('#capitalType').val()); const fileInput = document.getElementById('POFile'); - if (fileInput.files.length > 0) { + const prePOFileInput= document.getElementById('PrePOFile'); + + console.log(fileInput.vlaue); + console.log(prePOFileInput.value); + + if (fileInput && fileInput.vlaue &&fileInput.files.length > 0) { formData.append('POFile', fileInput.files[0]); - } else { + } else if(prePOFileInput && prePOFileInput.files && prePOFileInput.files.length > 0) { + formData.append('PrePOFile', prePOFileInput.files[0]); + + }else{ + formData.append('POFile', " "); console.error('No file selected.'); } $('input, select, textarea').each(function() { @@ -8478,4 +8490,5 @@ if (!empty($getlogpodtl)) { } } - \ No newline at end of file + + diff --git a/app/Views/editRevenuepurchaseorder.php b/app/Views/editRevenuepurchaseorder.php index e2e10c98..0944c3bf 100755 --- a/app/Views/editRevenuepurchaseorder.php +++ b/app/Views/editRevenuepurchaseorder.php @@ -2635,12 +2635,14 @@ if (!empty($getlogpodtl)) {
-

+ diff --git a/app/Views/editimportpo.php b/app/Views/editimportpo.php index 91ba111f..56790931 100755 --- a/app/Views/editimportpo.php +++ b/app/Views/editimportpo.php @@ -1163,22 +1163,26 @@ if (!empty($getlogpodtl)) {
-
-
- - - - -
+ +
+ +
+ + + +
+
-
+
+      + diff --git a/app/Views/includes/new_footer.php b/app/Views/includes/new_footer.php index d16e6755..2568d22f 100755 --- a/app/Views/includes/new_footer.php +++ b/app/Views/includes/new_footer.php @@ -151,6 +151,51 @@ + + + + \ No newline at end of file