From 49255ef79e42324c2659cd98ec363df844733151 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Mon, 22 Jul 2024 02:56:19 +0000 Subject: [PATCH] FIX_Live bug --- app/Controllers/Purchaseorder.php | 631 +++++++++++++---------------- app/Models/Purchaseorder_model.php | 68 ++-- app/Views/POlist.php | 3 - 3 files changed, 312 insertions(+), 390 deletions(-) diff --git a/app/Controllers/Purchaseorder.php b/app/Controllers/Purchaseorder.php index 085109ec..75e3c856 100644 --- a/app/Controllers/Purchaseorder.php +++ b/app/Controllers/Purchaseorder.php @@ -1056,152 +1056,132 @@ $mpdf->use_kwt = true; } //This used to Create Revenue Purchase Order - function addNewPurchaseOrder() { - // print_r($this->request->getPost()); - // echo "@1100 i have pomaster = ".'
'.print_r($this->request->getPost(),true).'
'."
"; - $POdt = $this->request->getPost('PODate'); - $PODate = get_date_time_format($POdt); - $SupplierID = $this->request->getPost('drpSupplier'); - $DeliveryAddr = $this->request->getPost('DeliveryAddr'); - $dt = $this->request->getPost('Deliverydt'); - $POType = $this->request->getPost('POType'); - $DeliveryOption = $this->request->getPost('DateRange'); - if ($DeliveryOption == 1) { - $Deliverydt = ''; - $DeliverySchedule = $this->request->getPost('Scheduleby'); - } else { - $Deliverydt = get_date_time_format($dt); - $DeliverySchedule = ''; - } - $POType = $this->request->getPost('POType'); - $BudgetType = $this->request->getPost('Budget'); - //$PoRange = $this->request->getPost('txtPoRange'); - $Modeofshipment = $this->request->getPost('addmodeofshipment'); - $supplierreference = $this->request->getPost('addsupplierreference'); - $supplieroffno = $this->request->getPost('addsupplierofferno'); - $otherreference = $this->request->getPost('addotherreference'); - $fincap = $this->request->getPost('addfincap'); - $revenuetype = $this->request->getPost('PoTypeOptions'); - $insurancestatus = $this->request->getPost('insurance'); - if ($insurancestatus == 1) { - $InsuranceNumber = $this->request->getPost('InsuranceNumber'); - } else { - $InsuranceNumber = $this->request->getPost('InsuranceNumber'); - } - $SpcialInstruction = $this->request->getPost('SpcialInstruction'); - $TotalOrderValueSummary = $this->request->getPost('txtTotalOrderValueSummary'); - $POStatus = $this->request->getPost('txtStatus'); - $CreateBy = $this->session->get('userId'); - $RowCount = $this->request->getPost('txtRowCount'); - $DeletedRow = $this->request->getPost('txtDeletedRow'); - $comma_separated = ($DeletedRow !== null && is_string($DeletedRow)) - ? explode(':', $DeletedRow) - : []; - // echo "DeletedRow = ".$DeletedRow; - - - - $createddt = get_current_date_time(); - - $PaymentTerms = $this->request->getPost('PaymentTerms'); - $OtherPayment = $this->request->getPost('Otherpayment'); - $Local_Interstate = $this->request->getPost('Range'); - - $Qualitycheck = 1; - - $IsOpenOrder = ($this->request->getPost('IsOpenOrder') !== null && !empty($this->request->getPost('IsOpenOrder')) && $this->request->getPost('IsOpenOrder') === '1') ? $this->request->getPost('IsOpenOrder') : null; - - $lastPONO = $this->purchaseorder_model->lastPONO(); - $newPONO = generate_po_number($lastPONO); - - // PO Master - $POList = array('PONO'=>$newPONO,'SupplierID' => $SupplierID, 'TotalOrderValue' => $TotalOrderValueSummary, 'PODate' => $PODate, 'DeliverySchedule' => $DeliverySchedule, 'DeliveryOption' => $DeliveryOption, 'Status' => $POStatus, 'PORange' => $Local_Interstate, 'ServiceDescription' => $SpcialInstruction, 'CreatedBy' => $CreateBy, 'DeliveryAddress' => $DeliveryAddr, 'DeliveryDate' => $Deliverydt, 'CreatedDate' => $createddt, 'PaymentTerms' => $PaymentTerms, 'POType' => $POType, 'CapitalRange' => $Local_Interstate, 'PaymentOtherDescription' => $OtherPayment, 'Supplier_Reference' => $supplierreference, 'Mode_Of_Shipment' => $Modeofshipment, 'Supplier_Offer_No' => $supplieroffno, 'Other_Reference' => $otherreference, 'Fincap' => $fincap, 'InsuranceStatus' => $insurancestatus, 'POSubType' => $revenuetype, 'InsuranceNumber' => $InsuranceNumber, 'IsQualityChkReqired' => $Qualitycheck, 'BudgetType' => $BudgetType,'IsOpenOrder'=>$IsOpenOrder); - $POMaster = $this->purchaseorder_model->addPOMaster($POList, $POType, $revenuetype); - // echo "@1100 i have pomaster = ".'
'.print_r($POMaster,true).'
'."
";die(); - $PONO = $POMaster ? $newPONO : ""; - // $PONO = ''; - // if (count($POMaster) > 0) { - // $PONO = $POMaster[0]['PONO']; - // } - // $PONO = "SIA/2021-2022/10044"; - // PO Line Items - $LineItemStatus = REQITEM_NEW; - - for ($i = 1; $i <= $RowCount; $i++) { - - $MaterialCode = $this->request->getPost('materialCode' . $i); - $Quantity = $this->request->getPost('quantity' . $i); - $Reqnumber = $this->request->getPost('Reqnumber' . $i); - $itemRate = $this->request->getPost('itemRate' . $i); - $per = $this->request->getPost('per' . $i); - - $DiscountType = $this->request->getPost('DisType' . $i); - $DiscountValue = $this->request->getPost('DisVal' . $i); - $AfterDiscount = $this->request->getPost('AfterDisVal' . $i); - $PackagingOption = $this->request->getPost('PackOption' . $i); - $PackagingType = $this->request->getPost('PackType' . $i); - $PackagingValue = $this->request->getPost('PackVal' . $i); - $AfterPackagingValue = $this->request->getPost('AfterPackVal' . $i); - - $FreightType = $this->request->getPost('FreightType' . $i); - $FreightValue = $this->request->getPost('FreightVal' . $i); - $AfterFreightValue = $this->request->getPost('AfterFreightVal' . $i); - $NOOfTrip = $this->request->getPost('NoOfTrip' . $i); - $InsuranceValue = $this->request->getPost('Insval' . $i); - $TotalOrderValue = $this->request->getPost('TotalOrderValue' . $i); - $revenuedescription = $this->request->getPost('Service_Description' . $i); - $CostCenter = $this->request->getPost('costCode' . $i); - $Cgst = $this->request->getPost('RevenueCgst' . $i); - $Sgst = $this->request->getPost('RevenueSgst' . $i); - $Igst = $this->request->getPost('RevenueIgst' . $i); - $AfterCgst = $this->request->getPost('RevenueAfterCgst' . $i); - $AfterSgst = $this->request->getPost('RevenueAfterSgst' . $i); - $AfterIgst = $this->request->getPost('RevenueAfterIgst' . $i); - - $SkipInsert = "False"; - if (count($comma_separated) > 0) { - for ($j = 1; $j < count($comma_separated); $j++) { - $deletedRow = $comma_separated[$j]; - - if ($deletedRow == $i) { - $SkipInsert = "True"; - break; + try { + // Extract POST data + $POdt = $this->request->getPost('PODate'); + $PODate = get_date_time_format($POdt); + $SupplierID = $this->request->getPost('drpSupplier'); + $DeliveryAddr = $this->request->getPost('DeliveryAddr'); + $dt = $this->request->getPost('Deliverydt'); + $POType = $this->request->getPost('POType'); + $DeliveryOption = $this->request->getPost('DateRange'); + if ($DeliveryOption == 1) { + $Deliverydt = ''; + $DeliverySchedule = $this->request->getPost('Scheduleby'); + } else { + $Deliverydt = get_date_time_format($dt); + $DeliverySchedule = ''; } - } + $BudgetType = $this->request->getPost('Budget'); + $Modeofshipment = $this->request->getPost('addmodeofshipment'); + $supplierreference = $this->request->getPost('addsupplierreference'); + $supplieroffno = $this->request->getPost('addsupplierofferno'); + $otherreference = $this->request->getPost('addotherreference'); + $fincap = $this->request->getPost('addfincap'); + $revenuetype = $this->request->getPost('PoTypeOptions'); + $insurancestatus = $this->request->getPost('insurance'); + $InsuranceNumber = ($insurancestatus == 1) ? $this->request->getPost('InsuranceNumber') : ''; + $SpcialInstruction = $this->request->getPost('SpcialInstruction'); + $TotalOrderValueSummary = $this->request->getPost('txtTotalOrderValueSummary'); + $POStatus = $this->request->getPost('txtStatus'); + $CreateBy = $this->session->get('userId'); + $RowCount = $this->request->getPost('txtRowCount'); + $DeletedRow = $this->request->getPost('txtDeletedRow'); + $comma_separated = ($DeletedRow !== null && is_string($DeletedRow)) ? explode(':', $DeletedRow) : []; + $createddt = get_current_date_time(); + $PaymentTerms = $this->request->getPost('PaymentTerms'); + $OtherPayment = $this->request->getPost('Otherpayment'); + $Local_Interstate = $this->request->getPost('Range'); + $Qualitycheck = 1; + $IsOpenOrder = ($this->request->getPost('IsOpenOrder') !== null && !empty($this->request->getPost('IsOpenOrder')) && $this->request->getPost('IsOpenOrder') === '1') ? $this->request->getPost('IsOpenOrder') : null; + + // Generate PO Number + $lastPONO = $this->purchaseorder_model->lastPONO(); + $newPONO = generate_po_number($lastPONO); + log_message('debug', 'newPONO returned: ' . $newPONO); + + // PO Master + $POList = array('PONO'=>$newPONO,'SupplierID' => $SupplierID, 'TotalOrderValue' => $TotalOrderValueSummary, 'PODate' => $PODate, 'DeliverySchedule' => $DeliverySchedule, 'DeliveryOption' => $DeliveryOption, 'Status' => $POStatus, 'PORange' => $Local_Interstate, 'ServiceDescription' => $SpcialInstruction, 'CreatedBy' => $CreateBy, 'DeliveryAddress' => $DeliveryAddr, 'DeliveryDate' => $Deliverydt, 'CreatedDate' => $createddt, 'PaymentTerms' => $PaymentTerms, 'POType' => $POType, 'CapitalRange' => $Local_Interstate, 'PaymentOtherDescription' => $OtherPayment, 'Supplier_Reference' => $supplierreference, 'Mode_Of_Shipment' => $Modeofshipment, 'Supplier_Offer_No' => $supplieroffno, 'Other_Reference' => $otherreference, 'Fincap' => $fincap, 'InsuranceStatus' => $insurancestatus, 'POSubType' => $revenuetype, 'InsuranceNumber' => $InsuranceNumber, 'IsQualityChkReqired' => $Qualitycheck, 'BudgetType' => $BudgetType,'IsOpenOrder'=>$IsOpenOrder); + $POMaster = $this->purchaseorder_model->addPOMaster($POList, $POType, $revenuetype); + $PONO = ''; + if (count($POMaster) > 0) { + $PONO = $POMaster[0]['PONO']; + } else { + throw new \Exception('Error occurred while creating PO Master'); + } + + // PO Line Items + $LineItemStatus = REQITEM_NEW; + + for ($i = 1; $i <= $RowCount; $i++) { + $MaterialCode = $this->request->getPost('materialCode' . $i); + $Quantity = $this->request->getPost('quantity' . $i); + $Reqnumber = $this->request->getPost('Reqnumber' . $i); + $itemRate = $this->request->getPost('itemRate' . $i); + $per = $this->request->getPost('per' . $i); + + $DiscountType = $this->request->getPost('DisType' . $i); + $DiscountValue = $this->request->getPost('DisVal' . $i); + $AfterDiscount = $this->request->getPost('AfterDisVal' . $i); + $PackagingOption = $this->request->getPost('PackOption' . $i); + $PackagingType = $this->request->getPost('PackType' . $i); + $PackagingValue = $this->request->getPost('PackVal' . $i); + $AfterPackagingValue = $this->request->getPost('AfterPackVal' . $i); + + $FreightType = $this->request->getPost('FreightType' . $i); + $FreightValue = $this->request->getPost('FreightVal' . $i); + $AfterFreightValue = $this->request->getPost('AfterFreightVal' . $i); + $NOOfTrip = $this->request->getPost('NoOfTrip' . $i); + $InsuranceValue = $this->request->getPost('Insval' . $i); + $TotalOrderValue = $this->request->getPost('TotalOrderValue' . $i); + $revenuedescription = $this->request->getPost('Service_Description' . $i); + $CostCenter = $this->request->getPost('costCode' . $i); + $Cgst = $this->request->getPost('RevenueCgst' . $i); + $Sgst = $this->request->getPost('RevenueSgst' . $i); + $Igst = $this->request->getPost('RevenueIgst' . $i); + $AfterCgst = $this->request->getPost('RevenueAfterCgst' . $i); + $AfterSgst = $this->request->getPost('RevenueAfterSgst' . $i); + $AfterIgst = $this->request->getPost('RevenueAfterIgst' . $i); + + $SkipInsert = "False"; + if (count($comma_separated) > 0) { + for ($j = 1; $j < count($comma_separated); $j++) { + $deletedRow = $comma_separated[$j]; + if ($deletedRow == $i) { + $SkipInsert = "True"; + break; + } + } + } + if ($SkipInsert == "False") { + + $POLineItemList = array('PONO' => $PONO, 'ReqNo' => $Reqnumber, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Rate' => $itemRate, 'Per' => $per, 'ServiceMaterialDescription' => $revenuedescription, 'Status' => $LineItemStatus, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'CostCenterCode' => $CostCenter); + $POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList); + $LineItemNo = ''; + if (count($POLineItem) > 0) { + $LineItemNo = $POLineItem[0]['LineItemNo']; + } else { + throw new \Exception('Error occurred while creating PO Line Item'); + } + + if (trim((string)$POType) == REVENUE) { + $RevenueTaxList = array('LineItemNo' => $LineItemNo, 'DiscountType' => $DiscountType, 'DiscountValue' => $DiscountValue, 'AfterDiscount' => $AfterDiscount, 'PackagingType' => $PackagingType, 'PackagingValue' => $PackagingValue, 'PackagingCalulatedOn' => $PackagingOption, 'AfterPackagingValue' => $AfterPackagingValue, 'FreightType' => $FreightType, 'FreightValue' => $FreightValue, 'AfterFreightValue' => $AfterFreightValue, 'Insurance' => $InsuranceValue, 'TotalValue' => $TotalOrderValue, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'CGST' => $Cgst, 'AfterCGST' => $AfterCgst, 'SGST' => $Sgst, 'AfterSGST' => $AfterSgst, 'IGST' => $Igst, 'AfterIGST' => $AfterIgst, 'NoOfTrip' => $NOOfTrip); + $RevenueList = $this->purchaseorder_model->addRevenueTax($RevenueTaxList); + if (!$RevenueList) { + throw new \Exception('Error occurred while creating Revenue Tax'); + } + } + } + } + echo 'Purchase Order Created Successfully! PO Number Is: ' . $PONO; + } catch (\Exception $e) { + log_message('error', 'Exception occurred: ' . $e->getMessage()); + echo 'An error occurred while creating the purchase order. Please try again.'; } - if ($SkipInsert == "False") { - $POLineItemList = array('PONO' => $PONO, 'ReqNo' => $Reqnumber, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Rate' => $itemRate, 'Per' => $per, 'ServiceMaterialDescription' => $revenuedescription, 'Status' => $LineItemStatus, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'CostCenterCode' => $CostCenter); - $POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList); - // echo "@1162 i have polineitem arr ".'
'.print_r($POLineItem,true).'
'."
"; - // [PONO] => SIA/2021-2022/10044 - // [ReqNo] => REQ7704 - // [LineItemNo] => POItem9999 - // $LineItemNo = "POItem10360"; - $LineItemNo = ''; - if (count($POLineItem) > 0) { - $LineItemNo = $POLineItem[0]['LineItemNo']; - } - // echo $LineItemNo; die; - // echo "POType ".$POType."
"; - /*---------*/ - // $logpo =array('PONO'=>$PONO,'Date'=>$PODate,'POType'=>$POType,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'SupplierID'=>$SupplierID,'LineItemNos'=>$LineItemNo); - - // $addlog= $this->purchaseorder_model->newlogpo($logpo); - /*---------*/ - if (trim((string)$POType) == REVENUE) { - // echo 'Success'; - $RevenueTaxList = array('LineItemNo' => $LineItemNo, 'DiscountType' => $DiscountType, 'DiscountValue' => $DiscountValue, 'AfterDiscount' => $AfterDiscount, 'PackagingType' => $PackagingType, 'PackagingValue' => $PackagingValue, 'PackagingCalulatedOn' => $PackagingOption, 'AfterPackagingValue' => $AfterPackagingValue, 'FreightType' => $FreightType, 'FreightValue' => $FreightValue, 'AfterFreightValue' => $AfterFreightValue, 'Insurance' => $InsuranceValue, 'TotalValue' => $TotalOrderValue, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'CGST' => $Cgst, 'AfterCGST' => $AfterCgst, 'SGST' => $Sgst, 'AfterSGST' => $AfterSgst, 'IGST' => $Igst, 'AfterIGST' => $AfterIgst, 'NoOfTrip' => $NOOfTrip); - // echo "@1176 i have arr for tax ".'
'.print_r($RevenueTaxList,true).'
'."
"; - $RevenueList = $this->purchaseorder_model->addRevenueTax($RevenueTaxList); - // echo "@1183 i have after insertion ".'
'.print_r($RevenueList,true).'
'."
"; - //echo 'Revenue tax Success'; - } - } - } - echo 'Purchase Order Created Successfully! PO Number Is: ' . $PONO; } + //This used to Edit the Revenue Purchase Order function EditRevenuePurchaseOrder() { @@ -1427,7 +1407,7 @@ $mpdf->use_kwt = true; //echo $current_qty; - $this->inwardgateregister_model->addmaterialmaster($current_qty, $rawmaterial); + $this->inwardgateregister_model->addmaterialmaster($current_qty, $MaterialCode); } if ($SkipInsert == "False") { @@ -1848,204 +1828,160 @@ $mpdf->use_kwt = true; function addNewImportPurchaseOrder() - { //echo ("ggh"); - - - - $POdt = $this->request->getPost('PODate'); - $PODate = get_date_time_format($POdt); - $SupplierID = $this->request->getPost('drpSupplier'); - $DeliveryAddr = $this->request->getPost('DeliveryAddr'); - - $POType = $this->request->getPost('POType'); - $PoRange = $this->request->getPost('txtPoRange'); - - $DeliveryOption = $this->request->getPost('DateRange'); - - //echo $DeliveryOption; - //die(); - $DeliverySchedule = ''; - $Dispatch = ''; - if ($DeliveryOption == 1) { - $Dispatch = ''; - $DeliverySchedule = $this->request->getPost('Scheduleby'); - } else { - $Dispatch = $this->request->getPost('Dispatch'); - $DeliverySchedule = ''; - } - - $SpcialInstruction = $this->request->getPost('txtSpcialInstruction'); - $TotalOrder = $this->request->getPost('txtToatlOrder'); - $POStatus = $this->request->getVar('textStatus'); - - $BudgetType = $this->request->getPost('Budget'); - - $CreateBy = $this->session->get('userId'); - $RowCount = $this->request->getVar('txtRowCount'); - - $DeletedRow = $this->request->getVar('txtDeletedRow'); - $comma_separated = ($DeletedRow !== null && is_string($DeletedRow)) - ? explode(':', $DeletedRow) - : []; - - $createddt = get_current_date_time(); - $Exchangerate = $this->request->getPost('ExchangeRate'); - $Edt = $this->request->getPost('Exchangerateon'); - $ExchangeRateCalculatedon = get_date_time_format($Edt); - - $CurrencyType = $this->request->getPost('currencytype'); - - $PaymentTerms = $this->request->getPost('PaymentTerms'); - $OtherPayment = $this->request->getPost('Otherpayment'); - $Palaceoforigin = $this->request->getPost('PlaceOforigin'); - // $Payableat=$this->request->getPost('PayableAT'); - - $Shipmentmode = $this->request->getPost('addmodeofshipment'); - $SupplierRef = $this->request->getPost('addsupplierreference'); - $SupplierOffer = $this->request->getPost('addsupplierofferno'); - $otherRef = $this->request->getPost('addotherreference'); - $finCap = $this->request->getPost('addfincap'); - - $importoption = $this->request->getPost('Importoption'); - // echo $importoption; - // die(); - $Insurance = $this->request->getPost('Insurance'); - - if ($Insurance == 1) { - - $InsuranceNumber = $this->request->getPost('InsuranceNumber'); - } else { - $InsuranceNumber = ''; - } - - // $POList = array('SupplierID'=>$SupplierID, 'TotalOrderValue'=>$TotalOrder,'PODate'=>$PODate,'Status'=>$POStatus,'PORange'=>$PoRange,'ServiceDescription'=>$SpcialInstruction,'CreatedBy'=>$CreateBy,'DeliveryAddress'=>$DeliveryAddr,'CreatedDate'=>$createddt,'ExchangeRate'=>$Exchangerate,'ExchangeRateCalculatedon'=>$ExchangeRateCalculatedon,'CurrencyType'=>$CurrencyType,'PaymentTerms'=>$PaymentTerms,'POType'=>$POType); - - $Qualitycheck = 1; - $IsOpenOrder = ($this->request->getPost('IsOpenOrder') !== null && !empty($this->request->getPost('IsOpenOrder')) && $this->request->getPost('IsOpenOrder') === '1') ? $this->request->getPost('IsOpenOrder') : null; - - $lastPONO = $this->purchaseorder_model->lastPONO(); - $newPONO = generate_po_number($lastPONO); - - $POList = array('PONO'=>$newPONO,'SupplierID' => $SupplierID, 'TotalOrderValue' => $TotalOrder, 'PODate' => $PODate, 'Status' => $POStatus, 'PORange' => $PoRange, 'ServiceDescription' => $SpcialInstruction, 'CreatedBy' => $CreateBy, 'DeliveryAddress' => $DeliveryAddr, 'Import_DispatchDetails' => $Dispatch, 'CreatedDate' => $createddt, 'DeliverySchedule' => $DeliverySchedule, 'DeliveryOption' => $DeliveryOption, 'ExchangeRate' => $Exchangerate, 'ExchangeRateCalculatedon' => $ExchangeRateCalculatedon, 'CurrencyType' => $CurrencyType, 'PaymentTerms' => $PaymentTerms, 'POType' => $POType, 'Import_PlaceofOrgin' => $Palaceoforigin, 'PaymentOtherDescription' => $OtherPayment, 'Mode_Of_Shipment' => $Shipmentmode, 'Supplier_Reference' => $SupplierRef, 'Supplier_Offer_No' => $SupplierOffer, 'Other_Reference' => $otherRef, 'Fincap' => $finCap, 'InsuranceStatus' => $Insurance, 'InsuranceNumber' => $InsuranceNumber, 'POSubType' => $importoption, 'IsQualityChkReqired' => $Qualitycheck, 'BudgetType' => $BudgetType,'IsOpenOrder'=>$IsOpenOrder); - - //print_r($POList); - //die(); - $POMaster = $this->purchaseorder_model->addPOMaster($POList, $POType, $importoption); - $PONO = $POMaster ? $newPONO : ""; - // $PONO = ''; - // if (count($POMaster) > 0) { - // $PONO = $POMaster[0]['PONO']; - // } - //echo $PONO; - //echo $POType; - // PO Line Items - $LineItemStatus = REQITEM_NEW; - //echo ' test:'.REVENUE; - //echo $RowCount; - for ($i = 1; $i <= $RowCount; $i++) { - //echo "AS"; - $MaterialCode = $this->request->getPost('materialCode' . $i); - $Quantity = $this->request->getPost('quantity' . $i); - //echo $Quantity; - $Reqnumber = $this->request->getPost('Reqnumber' . $i); - $itemRate = $this->request->getPost('itemRate' . $i); - - //$Exchangerate = $this->request->getPost('Exchangerate'.$i); - $BasicPriceinmton = $this->request->getPost('BasicPriceinUS' . $i); - $Productprice = $this->request->getPost('BasicAmt' . $i); - $LandingCharge = $this->request->getPost('LandingChargee' . $i); - $AfterLandingCharge = $this->request->getPost('AfterLandingChargee' . $i); - $CustomDuty = $this->request->getPost('Customduty' . $i); - $AfterCustomDuty = $this->request->getPost('AfterCustomduty' . $i); - $CustomEd = $this->request->getPost('CustomEDcess' . $i); - $AfterCustomEd = $this->request->getPost('AfterCustomEDcess' . $i); - $CustomSH = $this->request->getPost('CustomSHcess' . $i); - $AfterCustomSH = $this->request->getPost('AfterCustomSHcess' . $i); - $Grossdutypayable = $this->request->getPost('Grossdutypayable' . $i); - $CustomDutyExpensesPerKG = $this->request->getPost('CustomDutyExpenses' . $i); - - $QuantityKG = $this->request->getPost('PurQuantity' . $i); - - //$currencytypeID = $this->request->getPost('currencytype'); - $Totalvalueitem = $this->request->getPost('TotalExp' . $i); - - //echo $BasicPriceinmton; - $CostCenter = $this->request->getPost('costCode' . $i); - - $AssessableValue = $this->request->getPost('AfterAssessable' . $i); - $Subtotal = $this->request->getPost('Subtotal' . $i); - $Igst = $this->request->getPost('Igst' . $i); - $AfterIgst = $this->request->getPost('AfterIgst' . $i); - $Dutyimpact = $this->request->getPost('Dutyimpact' . $i); - $Clearingcharge = $this->request->getPost('ClearingCharges' . $i); - $Nettvalue = $this->request->getPost('Nett' . $i); - - - - $FreightType = $this->request->getPost('FreightType' . $i); - $nooftrip = $this->request->getPost('NoofTrip' . $i); - $Freightrate = $this->request->getPost('FreightRate' . $i); - $Freightamount = $this->request->getPost('AfterFreightRate' . $i); - - //echo $Freightamount; - - $specialinstruction = $this->request->getPost('Addinstruction' . $i); - - //echo $specialinstruction; - - $per = $this->request->getPost('Per' . $i); - - - - - $SkipInsert = "False"; - if (count($comma_separated) > 0) { - for ($j = 1; $j < count($comma_separated); $j++) { - $deletedRow = $comma_separated[$j]; - - if ($deletedRow == $i) { - $SkipInsert = "True"; - break; + { + try { + $POdt = $this->request->getPost('PODate'); + $PODate = get_date_time_format($POdt); + $SupplierID = $this->request->getPost('drpSupplier'); + $DeliveryAddr = $this->request->getPost('DeliveryAddr'); + + $POType = $this->request->getPost('POType'); + $PoRange = $this->request->getPost('txtPoRange'); + + $DeliveryOption = $this->request->getPost('DateRange'); + + $DeliverySchedule = ''; + $Dispatch = ''; + if ($DeliveryOption == 1) { + $Dispatch = ''; + $DeliverySchedule = $this->request->getPost('Scheduleby'); + } else { + $Dispatch = $this->request->getPost('Dispatch'); + $DeliverySchedule = ''; } - } + + $SpcialInstruction = $this->request->getPost('txtSpcialInstruction'); + $TotalOrder = $this->request->getPost('txtToatlOrder'); + $POStatus = $this->request->getVar('textStatus'); + + $BudgetType = $this->request->getPost('Budget'); + + $CreateBy = $this->session->get('userId'); + $RowCount = $this->request->getVar('txtRowCount'); + + $DeletedRow = $this->request->getVar('txtDeletedRow'); + $comma_separated = ($DeletedRow !== null && is_string($DeletedRow)) + ? explode(':', $DeletedRow) + : []; + + $createddt = get_current_date_time(); + $Exchangerate = $this->request->getPost('ExchangeRate'); + $Edt = $this->request->getPost('Exchangerateon'); + $ExchangeRateCalculatedon = get_date_time_format($Edt); + + $CurrencyType = $this->request->getPost('currencytype'); + + $PaymentTerms = $this->request->getPost('PaymentTerms'); + $OtherPayment = $this->request->getPost('Otherpayment'); + $Palaceoforigin = $this->request->getPost('PlaceOforigin'); + + $Shipmentmode = $this->request->getPost('addmodeofshipment'); + $SupplierRef = $this->request->getPost('addsupplierreference'); + $SupplierOffer = $this->request->getPost('addsupplierofferno'); + $otherRef = $this->request->getPost('addotherreference'); + $finCap = $this->request->getPost('addfincap'); + + $importoption = $this->request->getPost('Importoption'); + $Insurance = $this->request->getPost('Insurance'); + + if ($Insurance == 1) { + $InsuranceNumber = $this->request->getPost('InsuranceNumber'); + } else { + $InsuranceNumber = ''; + } + + $Qualitycheck = 1; + $IsOpenOrder = ($this->request->getPost('IsOpenOrder') !== null && !empty($this->request->getPost('IsOpenOrder')) && $this->request->getPost('IsOpenOrder') === '1') ? $this->request->getPost('IsOpenOrder') : null; + + $lastPONO = $this->purchaseorder_model->lastPONO(); + $newPONO = generate_po_number($lastPONO); + + $POList = array('PONO' => $newPONO,'SupplierID' => $SupplierID,'TotalOrderValue' => $TotalOrder,'PODate' => $PODate,'Status' => $POStatus,'PORange' => $PoRange,'ServiceDescription' => $SpcialInstruction,'CreatedBy' => $CreateBy,'DeliveryAddress' => $DeliveryAddr,'Import_DispatchDetails' => $Dispatch,'CreatedDate' => $createddt,'DeliverySchedule' => $DeliverySchedule,'DeliveryOption' => $DeliveryOption,'ExchangeRate' => $Exchangerate,'ExchangeRateCalculatedon' => $ExchangeRateCalculatedon,'CurrencyType' => $CurrencyType,'PaymentTerms' => $PaymentTerms,'POType' => $POType,'Import_PlaceofOrgin' => $Palaceoforigin,'PaymentOtherDescription' => $OtherPayment,'Mode_Of_Shipment' => $Shipmentmode,'Supplier_Reference' => $SupplierRef,'Supplier_Offer_No' => $SupplierOffer,'Other_Reference' => $otherRef,'Fincap' => $finCap,'InsuranceStatus' => $Insurance,'InsuranceNumber' => $InsuranceNumber,'POSubType' => $importoption,'IsQualityChkReqired' => $Qualitycheck,'BudgetType' => $BudgetType,'IsOpenOrder' => $IsOpenOrder); + $POMaster = $this->purchaseorder_model->addPOMaster($POList, $POType, $importoption); + $PONO = ''; + if (count($POMaster) > 0) { + $PONO = $POMaster[0]['PONO']; + } else { + throw new \Exception('Error occurred while creating PO Master'); + } + + $LineItemStatus = REQITEM_NEW; + + for ($i = 1; $i <= $RowCount; $i++) { + $MaterialCode = $this->request->getPost('materialCode' . $i); + $Quantity = $this->request->getPost('quantity' . $i); + $Reqnumber = $this->request->getPost('Reqnumber' . $i); + $itemRate = $this->request->getPost('itemRate' . $i); + + $BasicPriceinmton = $this->request->getPost('BasicPriceinUS' . $i); + $Productprice = $this->request->getPost('BasicAmt' . $i); + $LandingCharge = $this->request->getPost('LandingChargee' . $i); + $AfterLandingCharge = $this->request->getPost('AfterLandingChargee' . $i); + $CustomDuty = $this->request->getPost('Customduty' . $i); + $AfterCustomDuty = $this->request->getPost('AfterCustomduty' . $i); + $CustomEd = $this->request->getPost('CustomEDcess' . $i); + $AfterCustomEd = $this->request->getPost('AfterCustomEDcess' . $i); + $CustomSH = $this->request->getPost('CustomSHcess' . $i); + $AfterCustomSH = $this->request->getPost('AfterCustomSHcess' . $i); + $Grossdutypayable = $this->request->getPost('Grossdutypayable' . $i); + $CustomDutyExpensesPerKG = $this->request->getPost('CustomDutyExpenses' . $i); + + $QuantityKG = $this->request->getPost('PurQuantity' . $i); + $Totalvalueitem = $this->request->getPost('TotalExp' . $i); + $CostCenter = $this->request->getPost('costCode' . $i); + $AssessableValue = $this->request->getPost('AfterAssessable' . $i); + $Subtotal = $this->request->getPost('Subtotal' . $i); + $Igst = $this->request->getPost('Igst' . $i); + $AfterIgst = $this->request->getPost('AfterIgst' . $i); + $Dutyimpact = $this->request->getPost('Dutyimpact' . $i); + $Clearingcharge = $this->request->getPost('ClearingCharges' . $i); + $Nettvalue = $this->request->getPost('Nett' . $i); + + $FreightType = $this->request->getPost('FreightType' . $i); + $nooftrip = $this->request->getPost('NoofTrip' . $i); + $Freightrate = $this->request->getPost('FreightRate' . $i); + $Freightamount = $this->request->getPost('AfterFreightRate' . $i); + + $specialinstruction = $this->request->getPost('Addinstruction' . $i); + $per = $this->request->getPost('Per' . $i); + + $SkipInsert = "False"; + if (count($comma_separated) > 0) { + for ($j = 1; $j < count($comma_separated); $j++) { + $deletedRow = $comma_separated[$j]; + + if ($deletedRow == $i) { + $SkipInsert = "True"; + break; + } + } + } + + if ($SkipInsert == "False") { + $POLineItemList = array('PONO' => $PONO,'ReqNo' => $Reqnumber,'MaterialCode' => $MaterialCode,'Quantity' => $Quantity,'Rate' => $itemRate,'Status' => $LineItemStatus,'CreatedBy' => $CreateBy,'CreatedDate' => $createddt,'CostCenterCode' => $CostCenter,'Per' => $per,'ServiceMaterialDescription' => $specialinstruction); + + $POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList); + + $LineItemNo = ''; + if (count($POLineItem) > 0) { + $LineItemNo = $POLineItem[0]['LineItemNo']; + } + + if (trim((string)$POType) == IMPORT) { + $ImportTaxList = array('LineItemNo' => $LineItemNo,'BasicPriceInMTon' => $BasicPriceinmton,'ProductPrice' => $Productprice,'LandingCharge' => $LandingCharge,'AfterLandingCharge' => $AfterLandingCharge,'CustomDuty' => $CustomDuty,'AfterCustomDuty' => $AfterCustomDuty,'CustomEdCess' => $CustomEd,'CustomSHCess' => $CustomSH,'CreatedBy' => $CreateBy,'CreatedDate' => $createddt,'Grossdutypayable' => $Grossdutypayable,'CustomDutyExpensesPerKG' => $CustomDutyExpensesPerKG,'QuantityKG' => $QuantityKG,'AfterCustomSHCess' => $AfterCustomSH,'AfterCustomEdCess' => $AfterCustomEd,'TotalValue' => $Totalvalueitem,'FreightType' => $FreightType,'NoOfTrip' => $nooftrip,'FreightValue' => $Freightrate,'AfterFreightValue' => $Freightamount,'AssessableValue' => $AssessableValue,'SubTotal' => $Subtotal,'IGST' => $Igst,'AfterIGST' => $AfterIgst,'DutyImpact' => $Dutyimpact,'ClearingCharge' => $Clearingcharge,'NetValue' => $Nettvalue); + $ImportList = $this->purchaseorder_model->addImportTax($ImportTaxList); + } + } + } + + echo 'Purchase Order Created Successfully! PO Number Is: ' . $PONO; + } catch (\Exception $e) { + log_message('error', 'Exception occurred: ' . $e->getMessage()); + echo 'An error occurred while creating the purchase order. Please try again.'; + } - if ($SkipInsert == "False") { - $POLineItemList = array('PONO' => $PONO, 'ReqNo' => $Reqnumber, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Rate' => $itemRate, 'Status' => $LineItemStatus, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'CostCenterCode' => $CostCenter, 'Per' => $per, 'ServiceMaterialDescription' => $specialinstruction); - - //print_r($POLineItemList); - //die(); - - - $POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList); - - $LineItemNo = ''; - if (count($POLineItem) > 0) { - $LineItemNo = $POLineItem[0]['LineItemNo']; - } - //echo $LineItemNo; - - /* --------------------------------------------*/ - - // $logpo =array('PONO'=>$PONO,'Date'=>$PODate,'POType'=>$POType,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=> $itemRate,'SupplierID'=>$SupplierID,'LineItemNos'=>$LineItemNo); - // $this->purchaseorder_model->newlogpo($logpo); - /* --------------------------------------------*/ - - if (trim((string)$POType) == IMPORT) { - // echo 'Success'; - $ImportTaxList = array('LineItemNo' => $LineItemNo, 'BasicPriceInMTon' => $BasicPriceinmton, 'ProductPrice' => $Productprice, 'LandingCharge' => $LandingCharge, 'AfterLandingCharge' => $AfterLandingCharge, 'CustomDuty' => $CustomDuty, 'AfterCustomDuty' => $AfterCustomDuty, 'CustomEdCess' => $CustomEd, 'CustomSHCess' => $CustomSH, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'Grossdutypayable' => $Grossdutypayable, 'CustomDutyExpensesPerKG' => $CustomDutyExpensesPerKG, 'QuantityKG' => $QuantityKG, 'AfterCustomSHCess' => $AfterCustomSH, 'AfterCustomEdCess' => $AfterCustomEd, 'TotalValue' => $Totalvalueitem, 'FreightType' => $FreightType, 'NoOfTrip' => $nooftrip, 'FreightValue' => $Freightrate, 'AfterFreightValue' => $Freightamount, 'AssessableValue' => $AssessableValue, 'SubTotal' => $Subtotal, 'IGST' => $Igst, 'AfterIGST' => $AfterIgst, 'DutyImpact' => $Dutyimpact, 'ClearingCharge' => $Clearingcharge, 'NetValue' => $Nettvalue); - //print_r($ImportTaxList); - //die();$Nettvalue - - - - $ImportList = $this->purchaseorder_model->addImportTax($ImportTaxList); - } - } - } - - - echo 'Purchase Order Created Successfully! PO Number Is: ' . $PONO; } + function EditImportPurchaseOrder() @@ -2483,7 +2419,7 @@ $mpdf->use_kwt = true; function addNewCapitalPurchaseOrder() { - +try{ $POdt = $this->request->getPost('PODate'); $PODate = get_date_time_format($POdt); $SupplierID = $this->request->getPost('drpSupplier'); @@ -2581,11 +2517,12 @@ $mpdf->use_kwt = true; $POMaster = $this->purchaseorder_model->addPOMaster($POList, $POType, $ServiceTypeOptions); - $PONO = $POMaster ? $newPONO : ""; - // $PONO = ''; - // if (count($POMaster) > 0) { - // $PONO = $POMaster[0]['PONO']; - // } + $PONO = ''; + if (count($POMaster) > 0) { + $PONO = $POMaster[0]['PONO']; + } else { + throw new \Exception('Error occurred while creating PO Master'); + } $LineItemStatus = REQITEM_NEW; @@ -2711,12 +2648,14 @@ $mpdf->use_kwt = true; } } - echo 'Purchase Order Created Successfully! PO Number Is: ' . $PONO; + } catch (\Exception $e) { + log_message('error', 'Exception occurred: ' . $e->getMessage()); + echo 'An error occurred while creating the purchase order. Please try again.'; + } + } - - /*Edit Capital po*/ function EditCapitalPurchaseOrder() { diff --git a/app/Models/Purchaseorder_model.php b/app/Models/Purchaseorder_model.php index e01ddabf..0ed5f4ac 100644 --- a/app/Models/Purchaseorder_model.php +++ b/app/Models/Purchaseorder_model.php @@ -400,7 +400,7 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath, $builder->where('POMast.Status !=', PO_AMENDED); // $builder->orderBy('POMast.Status !=',PO_AMENDED); } - $builder->orderBy('POMast.UpdatedOn', 'desc'); + $builder->orderBy('POMast.POID', 'desc'); $query = $builder->get(); $result = $query->getResult(); @@ -779,48 +779,34 @@ mstr.CourierNo,pom.Status,pom.POType') //,bill.BillNo,bill.FilePath, } /** * This function is used to add New Purchase order to the system - */ - // function addPOMaster($POMaster, $POType, $POSubtype) - // { - // $this->db->transStart(); - // $builder = $this->db->table('T_PurchaseOrder_Master'); - // $builder->insert($POMaster); - - // //->update('T_PONO_Reset_Table') - - // $insert_id = $this->db->affectedRows(); - // $this->db->transComplete(); - - // if ($insert_id > 0) { - // $subQuery = 'select PONO from T_PurchaseOrder_Master where POType=? and POSubType=? and isnull(ParentPO) order by CreatedDate desc limit 1 '; - - // $query = $this->db->query($subQuery, array($POType, $POSubtype)); - - // //print_r($query->getResult());die(); - // return $query->getResultArray(); - // } - // } - public function addPOMaster($POMaster) - { - try { - $this->db->transStart(); - $builder = $this->db->table('T_PurchaseOrder_Master'); - $builder->insert($POMaster); - $aff = $this->db->affectedRows(); - $this->db->transComplete(); - return $aff; - } catch (\Exception $e) { - $this->db->transRollback(); - log_message('error', 'Error occurred in addPOMaster function: ' . $e->getMessage()); - return false; - } - } - - - - + function addPOMaster($POMaster,$POType, $revenuetype) + { + print_r($POMaster);die; + try { + $this->db->transStart(); + $builder = $this->db->table('T_PurchaseOrder_Master'); + $builder->insert($POMaster); + $aff_row = $this->db->affectedRows(); + $this->db->transComplete(); + if ($aff_row > 0) { + + $insertId = $aff_row > 0 ? $this->db->insertId() : 0; + $subQuery = 'SELECT PONO FROM T_PurchaseOrder_Master + WHERE POID = ? AND ParentPO IS NULL + ORDER BY CreatedDate DESC LIMIT 1'; + $query = $this->db->query($subQuery, [$insertId]); + return $query->getResultArray(); + } + return []; + } catch (\Exception $e) { + $this->db->transRollback(); + log_message('error', 'Error in addPOMaster: ' . $e->getMessage()); + throw $e; + return false; + } + } function addAmendPOMaster($POMaster, $CreatedBy, $ParentPO) { diff --git a/app/Views/POlist.php b/app/Views/POlist.php index b373fd15..2a341784 100644 --- a/app/Views/POlist.php +++ b/app/Views/POlist.php @@ -151,9 +151,6 @@ "paging": true, "ordering": true, "scrollCollapse": true, - "aaSorting": [ - [3, "desc"] - ], "searching": true, //"columnDefs" : [{"targets":3, "type":"date"}],