ria/app/Controllers/Emergencypurchaseorder.php
2024-09-24 11:41:21 +05:30

1584 lines
70 KiB
PHP
Executable File

<?php
namespace App\Controllers;
use App\Controllers\BaseController;
use CodeIgniter\Validation\Exceptions\ValidationException;
use App\Models\Inwardgateregister_model;
use App\Models\Mrir_model;
use App\Models\Purchaseorder_model;
use App\Models\Requistion_model;
/**
* Module : PO-Purchaseorder
* Emergencypurchaseorder Class to control all Emergency po's related operations.
* @author : Venba
* @version : 1.1
* @since : 15 Feb 2016
* @example : Revised at 15th april 2024
*/
class Emergencypurchaseorder extends BaseController
{
protected $purchaseorder_model;
protected $requistion_model;
protected $inwardgateregister_model;
protected $mrir_model;
protected $session;
/**
* This is default constructor of the class
*/
public function __construct()
{
parent::__construct();
$this->purchaseorder_model = new purchaseorder_model();
$this->requistion_model = new requistion_model();
$this->inwardgateregister_model = new inwardgateregister_model();
$this->mrir_model = new mrir_model();
$this->session = session();
helper('form'); //$this->load->library('form_validation');
$this->isLoggedIn();
}
/**
* This function used to load the first screen of the user
*/
public function index()
{
$this->global['pageTitle'] = 'AddPO';
$this->loadViews("addPO", $this->global, NULL, NULL);
}
function requisition()
{
$data['DeptList'] = $this->purchaseorder_model->getDepartmentListForAllReq();
$data['stList'] = $this->purchaseorder_model->getStatusListforAllReq();
$data['ReqList'] = $this->purchaseorder_model->getRequistionListbySearch();
$this->global['pageTitle'] = 'Create PO from Requisition List';
$this->loadViews("createPOfromRequistion", $this->global, $data, Null);
}
function CreateEmergencyPO()
{
$RequestedBy = $this->session->get('EmpID');
$this->global['pageTitle'] = 'Create Emergency Purchase Order';
$data['RequestType'] = $this->requistion_model->getConfigValue('C004');
$data['Suplist'] = $this->purchaseorder_model->getSupplierName();
$data['INRSYMBOL'] = $this->purchaseorder_model->GetINRCurrencytype('INR');
$data['DeptList'] = $this->purchaseorder_model->getDepartmentAllList();
$data['CompanyDetails'] = $this->purchaseorder_model->getCompanyInformation();
$data['MaxPODate'] = $this->purchaseorder_model->getLastCreatedPODate();
$data['TaxType'] = $this->purchaseorder_model->getConfigValue('C006');
$data['FreightType'] = $this->purchaseorder_model->getConfigValue('C018');
//$data['Payment']=$this->purchaseorder_model->getSupplierPayment('C009');
$data['Payment'] = $this->purchaseorder_model->getPaymentTermsDetails();
//$data['WorkStatus']=$this->purchaseorder_model->GetWorkStatus('C019');
$data['WorkStatus'] = $this->purchaseorder_model->getStatus(7);
$data['ServiceOption'] = $this->requistion_model->getConfigValue('C022');
$data['PoTypeOptions'] = $this->purchaseorder_model->getConfigValue('C026');
$this->loadViews("alterpurchaseorder", $this->global, $data, Null);
}
/**
* this function used for get all material code using request type
*/
function getMaterialCode()
{
$reqType = $this->request->getPost('input');
$materialList = $this->requistion_model->GetMaterialCode($reqType);
echo json_encode($materialList);
}
/*This function is used for get cost center list using department code*/
function getCostCenterName()
{
$CostList = '';
$DeptCode = $this->request->getPost('id');
$CostList = $this->requistion_model->GetCostCenterByDept($DeptCode);
// print_r($CostList);
echo json_encode($CostList);
}
//This used to Create Service Purchase Order
function addNewServicePurchaseOrder()
{
// print_r($this->request->getPost());die;
$txtRowCount = $this->request->getPost('txtRowCount');
$POdt = $this->request->getPost('PODate');
$PODate = get_date_time_format($POdt);
$SupplierID = $this->request->getPost('drpSupplier');
$DeliveryAddr = $this->request->getPost('DeliveryAddr');
$CostCenterName = $this->request->getPost('CostCenterName');
$DeliveryOption = $this->request->getPost('DateRange');
$DeliverySchedule = $this->request->getPost('Scheduleby');
$Deliverydt = get_date_time_format($POdt);
$txtsplservice = $this->request->getPost('txtSpecialservice');
$POStatus = ($txtsplservice == '1') ? SPECIAL_PO : REQITEM_Emergency_PO_CREATED;
$POType = $this->request->getPost('POType');
$SpcialInstruction = $this->request->getPost('ScopeOfWork');
$RequistionComments = "Created Emergency Service PO";
$TotalOrderValueSummary = $this->request->getPost('TextTotalOrderValueSummaryService');
// $TotalOrderValueSummary = $this->request->getPost('txtTotalOrderValueSummaryService');
//$POStatus = $this->request->getPost('TextStatus');
$CreateBy = $this->session->get('userId');
$RequestedBy = $this->request->getPost('drpDepartment');
$ReqStatus = REQITEM_Emergency_PO_CREATED;
// $RowCount = $this->request->getPost('TextRowCount');
$RowCount = $this->request->getPost('txtRowCount');
//$DeletedRow = $this->request->getPost('TextDeletedRowCount');
$DeletedRow = $this->request->getPost('txtDeletedRow1');
$comma_separated = explode(':', (string)$DeletedRow);
$BudgetType = $this->request->getPost('BudgetType');
$createddt = get_current_date_time();
//$PaymentTerms=$this->request->getPost('PaymentMethod');
$PaymentTerms = $this->request->getPost('PaymentMethod');
$OtherPayment = $this->request->getPost('Otherpayment');
$ServiceWorkStatus = ($POStatus == SPECIAL_PO) ? SERVICE_COMPLETED : $this->request->getPost('txtworkstatus');
//$ServiceWorkStatus=$this->request->getPost('workstatusValue');
//echo $ServiceWorkStatus;
// echo "fveg";
//die();
$ServiceScheduleType = $this->request->getPost('ScheduleType');
$ServiceScheduleOptions = $this->request->getPost('ScheduleType');
//$ServiceServiceNo = $this->request->getPost('ServiceNo');
$ServiceServiceNo = 1;
$ModeOfShipment = $this->request->getPost('emergmodeofshipment');
$SupplierReference = $this->request->getPost('emergsupplierreference');
$SuppliersOfferNo = $this->request->getPost('emergsupplierofferno');
$OtherReferences = $this->request->getPost('emergotherreference');
$Fincap = "";//$this->request->getPost('emergfincap');
$InsuranceOptions = $this->request->getPost('insuranceStatus');
$InsuranceNumber = $this->request->getPost('InsuranceNumber');
$ServiceTypeOptions = $this->request->getPost('PoTypeOptions');
$DescriptionOfPo = $this->request->getPost('emergdescofpo');
//create t_requestion_master
$Request = array('ReqType' => $POType, 'RequestedDept' => $RequestedBy, 'CostCenterCode' => $CostCenterName, 'Status' => $ReqStatus, 'Comments' => $RequistionComments, 'ReqDate' => $createddt, 'CreatedDate' => $createddt, 'CreatedBy' => $CreateBy, 'Schedule_Type' => $ServiceScheduleType, 'NumberOfService' => $ServiceServiceNo, 'Service_Period' => $ServiceScheduleOptions);
$Req = $this->requistion_model->addRequisition($Request);
$RegNo = '';
if (count($Req) > 0) {
$RegNo = $Req[0]['ReqNo'];
}
$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, 'Status' => $POStatus, 'DeliverySchedule' => $DeliverySchedule, 'DeliveryOption' => $DeliveryOption, 'ServiceDescription' => $SpcialInstruction, 'CreatedBy' => $CreateBy, 'DeliveryAddress' => $DeliveryAddr, 'DeliveryDate' => $Deliverydt, 'CreatedDate' => $createddt, 'PaymentTerms' => $PaymentTerms, 'ServiceWorkStatus' => $ServiceWorkStatus, 'POType' => $POType, 'PaymentOtherDescription' => $OtherPayment, 'Supplier_Reference' => $SupplierReference, 'Mode_Of_Shipment' => $ModeOfShipment, 'Supplier_Offer_No' => $SuppliersOfferNo, 'Other_Reference' => $OtherReferences, 'Fincap' => $Fincap, 'Description_Of_Service' => $DescriptionOfPo, 'InsuranceStatus' => $InsuranceOptions, 'InsuranceNumber' => $InsuranceNumber, 'POSubType' => $ServiceTypeOptions, 'BudgetType' => $BudgetType,'IsOpenOrder'=>$IsOpenOrder);
$file = $this->request->getFile('POFile');
if($file !== null){
$requestfilename = $file->getName();
if (!empty($requestfilename)) {
if ($file->isValid() && !$file->hasMoved()) {
$path = ROOTPATH.'public/uploads/POfiles/';
if(!is_dir($path)) { mkdir($path, 0777, true); }
if (!empty($this->purchaseorder_model->isFileExists($requestfilename))) {
log_message('error', 'File already exists in the database'.$requestfilename);
$POList['POFile'] = NULL;
}else{
$file->move($path, $requestfilename);
$POList['POFile'] = $requestfilename;
}
}else{
$POList['POFile'] = NULL;
}
}
}
$POMaster = $this->purchaseorder_model->addPOMaster($POList, $POType, $ServiceTypeOptions);
$PONO = $POMaster ? $newPONO : "";
// if (count($POMaster) > 0) {
// $PONO = $POMaster[0]['PONO'];
// }
$RegDetailsStatus = REQITEM_POCREATED;
// PO Line Items
$LineItemStatus = REQITEM_NEW;
for ($i = 1; $i <= $RowCount; $i++) {
$Per = $this->request->getPost('Serviceper' . $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);
$Cgst = $this->request->getPost('Cgst' . $i);
$Sgst = $this->request->getPost('Sgst' . $i);
$Igst = $this->request->getPost('Igst' . $i);
$AfterCgst = $this->request->getPost('AfterCgst' . $i);
$AfterSgst = $this->request->getPost('AfterSgst' . $i);
$AfterIgst = $this->request->getPost('AfterIgst' . $i);
$OtherAmt = $this->request->getPost('OtherAmt' . $i);
$CostCenter = $this->request->getPost('costCode' . $i);
$TotalOrderValue = $this->request->getPost('TotalOrderValue' . $i);
$ServiceFrequency = $this->request->getPost('Frequency' . $i) . ' - ' . $this->request->getPost('FrequencyValue' . $i);
$ServiceMaterialDescription = $this->request->getPost('ItemServiceDescription' . $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") {
//add requistion details
$ReqDetails = array('ReqNo' => $RegNo, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Status' => $RegDetailsStatus, 'UpdatedBy' => $CreateBy, 'UpdatedOn' => $createddt);
$ReqDetQuery = $this->requistion_model->addRequistionDetails($ReqDetails, $RegNo);
$ItemNo = '';
if (count($ReqDetQuery) > 0) {
$ItemNo = $ReqDetQuery[0]['ItemNo'];
}
$POLineItemList = array('PONO' => $PONO, 'ReqNo' => $RegNo, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Rate' => $itemRate, 'Status' => $LineItemStatus, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'CostCenterCode' => $CostCenter, 'ServiceMaterialDescription' => $ServiceMaterialDescription, 'ServiceFrequency' => $ServiceFrequency, 'Per' => $Per, 'ItemNo' => $ItemNo);
$POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList);
$LineItemNo = '';
if (count($POLineItem) > 0) {
$LineItemNo = $POLineItem[0]['LineItemNo'];
}
if (trim((string)$POType) == SERVICE) {
$ServiceTaxList = array('LineItemNo' => $LineItemNo, 'CGST' => $Cgst, 'After_CGST' => $AfterCgst, 'SGST' => $Sgst, 'After_SGST' => $AfterSgst, 'IGST' => $Igst, 'After_IGST' => $AfterIgst, 'otherallowance' => $OtherAmt, 'TotalValue' => $TotalOrderValue, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt);
$ServiceTax = $this->purchaseorder_model->addServiceTax($ServiceTaxList);
}
}
}
if ($POStatus == SPECIAL_PO) {
$count = $this->request->getPost('hidecounters');
$constant = $this->request->getPost('hideconstants');
$arr = [];
$prefile = array();
for ($i = 1; $i <= $constant; $i++) {
$file = $this->request->getFile('browseFiles' . $i);
$requestfilename = $file->getName();
if (!empty($requestfilename)) {
$files = str_replace(" ", "", $requestfilename);
$fcount = 0;
foreach ($prefile as $value) {
if ($value == $files) {
$fcount++;
}
}
if ($fcount == 0) {
if ($file->isValid() && !$file->hasMoved()) {
$path = ROOTPATH.'public/uploads/BillFiles/';
if(!is_dir($path)) { mkdir($path, 0777, true); }
$Picture = $file->getName();
$file->move($path,$Picture);
}
//echo $Picture;
$arr[] = array($Picture);
}
$prefile[] = $files;
}
}
//print_r($arr);
if (!empty($arr)) {
foreach ($arr as $ma) {
$index = 0;
foreach ($ma as $key => $value) {
$index++;
if ($index == 1) {
$filename = $value;
}
}
if (!empty($filename)) {
$myfile = array('FilePath' => $filename, 'PONO' => $PONO);
$this->purchaseorder_model->fileupload($myfile);
}
}
}
}
// if ($POStatus == REQ_DRAFT) {
// // echo 'Emergency Service Purchase Order Saved Successfully!The PO NO Is: '.$PONO;
// echo "<script>alert('You Have Successfully Saved the Purchase order! $PONO');</script>";
// redirect('purchaseorder/PurchaseOrderList', 'refresh');
// } else {
// // echo 'Emergency Service Purchase Order Created Successfully!The PO NO Is: '.$PONO;
// echo "<script>alert('You Have Successfully created the Purchase order! $PONO');</script>";
// redirect('purchaseorder/PurchaseOrderList', 'refresh');
// }
if ($POStatus == REQ_DRAFT) {
echo "<script>alert('You Have Successfully Saved the Purchase order! $PONO');</script>";
$this->session->setFlashdata('success', 'You Have Successfully Saved the Purchase order! '.$PONO);
} else {
$this->session->setFlashdata('success', 'You Have Successfully Created the Purchase order! '.$PONO);
}
return true;
// return redirect()->route('purchaseorderListing');
}
//This used to Create Revenue Emergency Purchase Order
function addNewRevenuePurchaseOrder()
{
// print_r($this->request->getPost());die;
$txtspl = $this->request->getPost('txtSpecial');
$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');
$DeliveryOption = $this->request->getPost('DateRange');
if ($DeliveryOption == 1) {
$Deliverydt = '';
$DeliverySchedule = $this->request->getPost('Scheduleby');
} else {
$Deliverydt = get_date_time_format($dt);
$DeliverySchedule = '';
}
$Modeofshipment = $this->request->getPost('emergmodeofshipment');
$supplierreference = $this->request->getPost('emergsupplierreference');
$supplieroffno = $this->request->getPost('emergsupplierofferno');
$otherreference = $this->request->getPost('emergotherreference');
$fincap = "";//$this->request->getPost('emergfincap');
$revenuetype = $this->request->getPost('PoTypeOptions');
$insurancestatus = $this->request->getPost('insuranceStatus');
if ($insurancestatus == 1) {
$InsuranceNumber = $this->request->getPost('InsuranceNumber');
} else {
$InsuranceNumber = "";
}
$CostCenterName = $this->request->getPost('CostCenterName');
$POType = $this->request->getPost('POType');
$PoRange = $this->request->getPost('txtPoRange');
$SpcialInstruction = $this->request->getPost('txtSpcialInstruction');
$RequistionComments = "Created Emergency Revenue PO";
$TotalOrderValueSummary = $this->request->getPost('TextTotalOrderValueSummaryService');
if ($txtspl == 0) {
$POStatus = REQITEM_Emergency_PO_CREATED;
} else {
$POStatus = SPECIAL_PO;
}
//$POStatus = $this->request->getPost('TextStatus');
$RequestedBy = $this->request->getPost('drpDepartment');
$CreateBy = $this->session->get('userId');
// $RowCount = $this->request->getPost('TextRowCount');
$RowCount = $this->request->getPost('txtRowCount1');
$BudgetType = $this->request->getPost('BudgetType');
//echo $RowCount;
// $DeletedRow = $this->request->getPost('TextDeletedRowCount');
$DeletedRow = $this->request->getPost('txtDeletedRow1');
$splRow = $this->request->getPost('splrow');
// echo $DeletedRow;
$ReqStatus = REQITEM_Emergency_PO_CREATED;
$Local_Interstate = $this->request->getPost('Range');
$comma_separated = explode(':', (string)$DeletedRow);
$createddt = get_current_date_time();
$PaymentTerms = $this->request->getPost('PaymentMethod');
$OtherPayment = $this->request->getPost('Otherpayment');
if ($POStatus == SPECIAL_PO) {
$Qualitycheck = $this->request->getPost('txtQuality');
} else {
$Qualitycheck = 1;
}
//add requistion
$Request = array('ReqType' => $POType, 'RequestedDept' => $RequestedBy, 'CostCenterCode' => $CostCenterName, 'Status' => $ReqStatus, 'Comments' => $RequistionComments, 'ReqDate' => $createddt, 'CreatedDate' => $createddt, 'CreatedBy' => $CreateBy);
$Req = $this->requistion_model->addRequisition($Request);
$RegNo = '';
if (count($Req) > 0) {
$RegNo = $Req[0]['ReqNo'];
}
// PO Master
$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' => $TotalOrderValueSummary, 'PODate' => $PODate, 'Status' => $POStatus, 'DeliverySchedule' => $DeliverySchedule, 'DeliveryOption' => $DeliveryOption, 'PORange' => $Local_Interstate, 'ServiceDescription' => $SpcialInstruction, 'CreatedBy' => $CreateBy, 'DeliveryAddress' => $DeliveryAddr, 'DeliveryDate' => $Deliverydt, 'CreatedDate' => $createddt, 'PaymentTerms' => $PaymentTerms, 'POType' => $POType, 'CapitalRange' => $Local_Interstate, 'PaymentOtherDescription' => $OtherPayment, 'Mode_Of_Shipment' => $Modeofshipment, 'Supplier_Offer_No' => $supplieroffno, 'Supplier_Reference' => $supplierreference, 'Other_Reference' => $otherreference, 'InsuranceNumber' => $InsuranceNumber, 'InsuranceStatus' => $insurancestatus, 'Fincap' => $fincap, 'POSubType' => $revenuetype, 'IsQualityChkReqired' => $Qualitycheck, 'BudgetType' => $BudgetType,'IsOpenOrder'=>$IsOpenOrder);
$file = $this->request->getFile('POFiles');
if($file !== null){
$requestfilename = $file->getName();
if (!empty($requestfilename)) {
if ($file->isValid() && !$file->hasMoved()) {
$path = ROOTPATH.'public/uploads/POfiles/';
if(!is_dir($path)) { mkdir($path, 0777, true); }
if (!empty($this->purchaseorder_model->isFileExists($requestfilename))) {
log_message('error', 'File already exists in the database'.$requestfilename);
$POList['POFile'] = NULL;
}else{
$file->move($path, $requestfilename);
$POList['POFile'] = $requestfilename;
}
}else{
$POList['POFile'] = NULL;
}
}
}else{
}
// print_r($POList);die;
$POMaster = $this->purchaseorder_model->addPOMaster($POList, $POType, $revenuetype);
$PONO = $POMaster ? $newPONO : "";
// $PONO = '';
// if (count($POMaster) > 0) {
// $PONO = $POMaster[0]['PONO'];
// }
//echo $PONO;
// PO Line Items
$RegDetailsStatus = REQITEM_POCREATED;
$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") {
//add requistion details
$ReqDetails = array('ReqNo' => $RegNo, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Status' => $RegDetailsStatus, 'UpdatedBy' => $CreateBy, 'UpdatedOn' => $createddt);
$ReqDetQuery = $this->requistion_model->addRequistionDetails($ReqDetails);
$POLineItemList = array('PONO' => $PONO, 'ReqNo' => $RegNo, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Rate' => $itemRate, 'Status' => $LineItemStatus, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt, 'CostCenterCode' => $CostCenter, 'Per' => $per, 'ServiceMaterialDescription' => $revenuedescription);
//print_r($POLineItemList);
$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);
// $logaddpo = $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);
//print_r($RevenueTaxList);
$RevenueList = $this->purchaseorder_model->addRevenueTax($RevenueTaxList);
//echo 'Revenue tax Success';
}
}
}
if ($txtspl == 1 || $txtspl == 2) {
//secho "cwwe";
//die();
$PONOigr = $PONO;
//echo $PONOigr;
//die();
//IGR Data Entry
//$DeliveryChellanOrInvoiceNo = $this->request->getPost('ChallanInvNo');
$DeliveryChellanInvoiceNo = $this->request->getPost('ChallanInvNo');
$DeliveryChellan = $this->request->getPost('ChallanInvDate');
$DeliveryChellanDate = get_date_time_format($DeliveryChellan);
$MaterialReceive = $this->request->getPost('MRC');
$MaterialReceivedate = get_date_time_format($MaterialReceive);
$Vehicle = $this->request->getPost('VehicleNo');
$Courier = $this->request->getPost('CourierNo');
$CreatedBy = $this->session->get('userId');
$Remarksmrir = 'Emergency PO without Quality Check';
//$Remarks = $this->request->getPost('Remarks');
//$RowCount = $this->request->getPost('TextRowCount');
//echo $RowCount;
$createddt = get_current_date_time();
$IGRStatus = IGR_CREATED;
$igr = array();
$paymentstatus = NO_PAIDIGR;
$igr = array('PONO' => $PONO, 'VehicleNo' => $Vehicle, 'DeliveryChellanOrInvoiceNo' => $DeliveryChellanInvoiceNo, 'DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $DeliveryChellanDate, 'CourierNo' => $Courier, 'IGRStatus' => $IGRStatus, 'CreatedBy' => $CreatedBy, 'CreatedDate' => $createddt, 'MaterialRcvdDate' => $MaterialReceivedate, 'Paymentstatus' => $paymentstatus);
//print_r($igr);
$igrM = $this->inwardgateregister_model->addigrM($igr);
$IGRNO = !empty($igrM) ? $igrM : '';
if ($Qualitycheck == 0) {
$mrirmastervalues = array('MRIRStatus' => MRIR_APPROVED, 'IGRNO' => $IGRNO, 'PONO' => $PONO, 'CreatedBy' => $CreatedBy, 'Createdon' => $createddt, 'Remarks' => $Remarksmrir);
$mrirmaster = $this->mrir_model->master_mrir($mrirmastervalues);
$MRIRNO = '';
if (count($mrirmaster) > 0) {
foreach ($mrirmaster as $key) {
$MRIRNO = $key->MRIRNo;
}
}
for ($i = 1; $i <= $RowCount; $i++) {
$MaterialCode = $this->request->getPost('materialCode' . $i);
$Quantity = $this->request->getPost('quantity' . $i);
$Remarked = "Special PO Without Quality Check";
$MRIRStatus = MRIR_APPROVED;
//this array to store the value in child table..
$mrirdetailvalues = array('MRIRNO' => $MRIRNO, 'MaterialCode' => $MaterialCode, 'ActualQuantityReceived' => $Quantity, 'Remarks' => $Remarked, 'MRIRStatus' => $MRIRStatus);
//print_r($mrirdetailvalues);
//die();
$mrirdetails = $this->mrir_model->detail_mrir($mrirdetailvalues);
$getAvailableqty = $this->mrir_model->getItemQuantityFromStock(trim((string)$MaterialCode));
if (count($getAvailableqty) > 0) {
$avlQty = $getAvailableqty[0]['Quantity'];
}
$updatStock = array('Quantity' => ($Quantity + $avlQty), 'Status' => '0', 'UpdatedOn' => $createddt, 'UpdatedBy' => $CreatedBy, 'Remarks' => 'Stock added for ' . $MRIRNO);
$this->mrir_model->UpdateStock($updatStock, trim((string)$MaterialCode));
}
}
$IGRItemStatus = REQITEM_NEW;
for ($i = 1; $i <= $RowCount; $i++) {
$MaterialCode = trim((string)$this->request->getPost('materialCode' . $i));
$QuantityAsPerInvoice = $this->request->getPost('quantity' . $i);
$OrderedQuantity = $this->request->getPost('quantity' . $i);
$ReceivedQty = $this->request->getPost('AQuantity' . $i);
$emergencyitemcode = $this->request->getPost('emergencyitemcode');
$PendingQty = 0;
//echo $QuantityAsPerInvoice;
//echo $PendingQty.'ReceivedQty'.$ReceivedQty;
//echo ' ';
if (strlen((string)$QuantityAsPerInvoice) > 0 && $QuantityAsPerInvoice != '0') {
$Remarks = "Special PO Created";
$ItemStatus = '';
//if($QuantityAsPerInvoice == $OrderedQuantity)
if ($PendingQty == 0.00) {
$ItemStatus = IGR_CREATED;
} else {
$ItemStatus = POLINEITEM_IGRPARTIAL_CREATED;
}
$CreatedBy = $this->session->get('userId');
$igrDetails = array('IGRNO' => $IGRNO, 'MaterialCode' => $MaterialCode, 'QuantityAsPerInvoice' => $QuantityAsPerInvoice, 'Remarks' => $Remarks, 'IGRItemStatus' => $IGRItemStatus, 'CreatedBy' => $CreatedBy, 'CreatedDate' => $createddt);
//print_r($igrDetails);
$igrD = $this->inwardgateregister_model->addigrD($igrDetails);
$IGRItemNo = !empty($igrD) ? $igrD : '';
//echo $IGRItemNo;
$MaterialstockHistoryadd = array('Ref_No' => $IGRItemNo, 'MaterialCode' => $MaterialCode, 'Transaction_type' => 'Add', 'Ref_Type' => 'IGR', 'SupplierID' => $SupplierID, 'Quantity' => $QuantityAsPerInvoice, 'ItemValue' => $itemRate, 'CreatedBy' => $CreatedBy, 'CreatedOn' => $createddt);
$this->inwardgateregister_model->addMaterialStockHistory($MaterialstockHistoryadd);
//*=====================================================*/
//*===================================================*/
$get_pre_qty = $this->inwardgateregister_model->get_CurrentQty($MaterialCode);
$av_qty = 0;
if (!empty($get_pre_qty)) {
foreach ($get_pre_qty as $gt) {
$av_qty = $gt->Current_stock;
}
}
$currentav_qty = $QuantityAsPerInvoice + $av_qty;
$current_qty = array('Current_stock' => $currentav_qty);
$this->inwardgateregister_model->addmaterialmaster($current_qty, $MaterialCode);
//*==================================================*/
$Recqty = $this->inwardgateregister_model->getPOLineItemReceivedQty($PONO, $MaterialCode);
$ReceivedQuantity = 0.00;
if (count($Recqty) > 0) {
foreach ($Recqty as $key) {
$ReceivedQuantity = $key->ReceivedQuantity;
}
}
$totalReceivedqty = $ReceivedQuantity + $QuantityAsPerInvoice;
//echo '';
$POLineItem = array('ReceivedQuantity' => $totalReceivedqty, 'Status' => $ItemStatus, 'UpdateBY' => $CreatedBy, 'UpdatedOn' => $createddt);
$this->inwardgateregister_model->UpdatePOLineItem($POLineItem, $PONO, $MaterialCode);
}
//$myfile = array('FilePath'=>$filename);
// $emergencyitemcode = $this->request->getPost('emergencyitemcode'.$i);
// ($this->request->getPost('materialCode'.$i));
}
$counts = $this->request->getPost('hidecounter');
$constants = $this->request->getPost('hideconstant');
$arr = [];
$prefile = array();
for ($i = 1; $i <= $constants; $i++) {
$file = $this->request->getFile('browseFiles' . $i);
$requestfilename = $file->getName();
if (!empty($requestfilename)) {
$files = str_replace(" ", "", $requestfilename);
$fcount = 0;
foreach ($prefile as $value) {
if ($value == $files) {
$fcount++;
}
}
if ($fcount == 0) {
if ($file->isValid() && !$file->hasMoved()) {
$path = ROOTPATH.'public/uploads/BillFiles/';
if(!is_dir($path)) { mkdir($path, 0777, true); }
$Picture = $file->getName();
$file->move($path,$Picture);
}
//echo $Picture;
$arr[] = array($Picture);
}
$prefile[] = $files;
}
}
if (!empty($arr)) {
foreach ($arr as $ma) {
$index = 0;
$filename = null;
foreach ($ma as $key => $value) {
$index++;
if ($index == 1) {
$filename = $value;
}
}
if (!empty($filename)) {
$myfile = array('FilePath' => $filename, 'PONO' => $PONO, 'IGRNO' => $IGRNO);
$this->purchaseorder_model->fileupload($myfile);
}
}
}
}
$this->session->setFlashdata('success', 'You Have Successfully Created the Purchase order! '.$PONO);
// return redirect()->route('purchaseorderListing');
return json_encode("111111111");
// echo "<script>alert('You Have Successfully created the Purchase order! $PONO');</script>";
// redirect('purchaseorder/PurchaseOrderList', 'refresh');
}
/**
* This function is used to load the purchaseorder list
*/
function PurchaseOrderList()
{
// $this->load->library('pagination');
$count = $this->purchaseorder_model->purchaseorderListingCount('');
// $returns = $this->paginationCompress("purchaseorderListing/", $count, 5);
//$this->purchaseorder_model->UpdateRequistItemStatus();
$this->purchaseorder_model->UpdateRequistionStatus();
$data['POData'] = $this->purchaseorder_model->purchaseorderListing();
print_r($data['POData']);die;
$this->global['pageTitle'] = 'Purchase Orders';
$this->loadViews("POlist", $this->global, $data, NULL);
}
function Req_validate($selectValue)
{
//echo 'select_validate method called';
// 'none' is the first option and the text says something like "-Choose one-"
if (strlen($selectValue) == 0) {
// $this->validator->setMessage('Req_validate', 'Please Select Requisition Number to Create PO.');
return false;
} else // user picked something
{
return true;
}
}
/**
* This function used to show the Purchase Order Screen
*/
function CreatePurchaseOrder()
{
$this->validator->setRules([
'txtReqNo' => 'callback_Req_validate'
]);
if ($this->validator->run() == FALSE) {
$this->requisition();
//echo 'Validate method called';
} else {
$this->global['pageTitle'] = 'Purchase order form';
$data['TaxType'] = $this->purchaseorder_model->getConfigValue('C006');
$data['FreightType'] = $this->purchaseorder_model->getConfigValue('C018');
$data['Suplist'] = $this->purchaseorder_model->getSupplierName();
$txtReqNo = $this->request->getPost('txtReqNo');
$data['ReqList'] = array();
$Req = array();
$ReqArray = array();
$ReqType = '';
$result = array();
if ($txtReqNo) {
$SelectedReq = json_decode((string)$txtReqNo);
if ($SelectedReq && isset($SelectedReq->Req)) {
$Req = $SelectedReq->Req;
$data['ReqList'] = $Req;
}
}
foreach ($Req as $SID) :
$ReqArray[] = $SID->ReqNo;
$result[] = $this->purchaseorder_model->getRawPOMaterialList($SID->ReqNo);
$ReqType = $SID->ReqType;
//echo $SID->ReqNo;
endforeach;
//print_r ($result);
$Year = get_current_date_time();
$data['CostList'] = $this->purchaseorder_model->getCostCenterbyRequist('', $Year, $ReqType);
$data['MaterialList'] = $result; //$this->purchaseorder_model->getRawMaterialList($ReqType,$ReqArray);
//print_r ($data['MaterialList']);
$data['RequistionDetails'] = $this->purchaseorder_model->getRequistDetails($ReqArray);
$data['CompanyDetails'] = $this->purchaseorder_model->getCompanyInformation();
$data['MaxPODate'] = $this->purchaseorder_model->getLastCreatedPODate();
$ViewName = '';
if ($ReqType == REVENUE) {
$ViewName = 'Purchaseorder';
} else if ($ReqType == SERVICE) {
$ViewName = 'servicePurchaseorder';
}
$this->loadViews($ViewName, $this->global, $data, NULL);
}
}
function CreatePOPrint()
{
$PONO = $_GET['PONO'];
$ReqType = $_GET['ReqType'];
if ($ReqType == SERVICE) {
$this->servicepoprint($PONO);
} else if ($ReqType == REVENUE) {
$this->revenuepoprint($PONO);
}
}
//To View/Update Purchase Order
function EditPurchaseOrder()
{
$PONO = $_GET['PONO'];
$ReqType = $_GET['ReqType'];
$Year = get_current_date('Y');
$data['CostList'] = $this->purchaseorder_model->getCostCenterbyRequist('', $Year, $ReqType);
$Req = $this->purchaseorder_model->getRequistionNoFromPO($PONO);
$data['ReqList'] = $Req;
$result = array();
$ReqArray = array();
foreach ($Req as $SID) :
$ReqArray[] = $SID->ReqNo;
$result[] = $this->purchaseorder_model->getRawPOMaterialList($SID->ReqNo);
endforeach;
$data['MaterialList'] = $result; //$this->purchaseorder_model->getRawMaterialList($ReqType,$ReqArray);
$data['Suplist'] = $this->purchaseorder_model->getSupplierName();
$data['RequistionDetails'] = $this->purchaseorder_model->getRequistDetails($ReqArray);
$data['POMaster'] = $this->purchaseorder_model->GetServicePurchaseOrder($PONO);
$data['MaxPODate'] = $this->purchaseorder_model->getLastCreatedPODate();
$data['TaxType'] = $this->purchaseorder_model->getConfigValue('C006');
$data['FreightType'] = $this->purchaseorder_model->getConfigValue('C018');
if ($ReqType == SERVICE) {
$data['POItem'] = $this->purchaseorder_model->GetServicePurchaseOrderDetails($PONO);
$this->global['pageTitle'] = 'Edit Service Purchase order form';
$this->loadViews("EditservicePurchaseorder", $this->global, $data, NULL);
} else if ($ReqType == REVENUE) {
$data['POItem'] = $this->purchaseorder_model->GetRevenuePurchaseOrderDetails($PONO);
$this->global['pageTitle'] = 'Edit Revenue Purchase order form';
$this->loadViews("editRevenuepurchaseorder", $this->global, $data, NULL);
}
}
// To get the Material value based on the MaterialCode
function getDetailsforReq()
{
$SearchFilter = $this->request->getPost('id');
// $reqDate= $this->request->getPost('ReqDate');
$DeptCode = $SearchFilter[0];
$MatType = $SearchFilter[1];
$ReqNo = $SearchFilter[2];
// $ReqDetai = $this->purchaseorder_model->getRequistDetails( $EmpID );
$CostList = $this->requistion_model->GetCostCenterByDept($DeptCode);
$HTML = "<option value='-1'>Select Cost center</option>";
$BudAmount = "";
if (count($CostList) > 0) {
for ($j = 0; $j < count($CostList); $j++) {
$Code = $CostList[$j]['CostCenterCode'];
$Name = $CostList[$j]['CostCenterName'];
$HTML .= "<option value='" . $Code . "'>" . $Code . "-" . $Name . "</option>";
}
}
$MaterialDetails = $this->purchaseorder_model->getRawMaterialListForPO($MatType, $ReqNo);
$HTML1 = "<option value='-1'>Select Material Type</option>";
if (count($MaterialDetails) > 0) {
for ($j = 0; $j < count($MaterialDetails); $j++) {
$Code = $MaterialDetails[$j]['MaterialCode'];
$Name = $MaterialDetails[$j]['MaterialName'];
$HTML1 .= "<option value='" . $Code . "'>" . $Code . "-" . $Name . "</option>";
}
}
// print_r($HTML1);
die(json_encode(array('MatDetail' => $HTML1, 'Cost' => $HTML)));
}
/* This method to get the status based on the Department selection in th
*/
function getStatusByDepartment()
{
$DepId = $this->request->getPost('id');
$data = $this->purchaseorder_model->getStatusByDepartment($DepId);
$HTML = "<option value='0'>Select Requistion Status</option>";
if (count($data) > 0) {
for ($j = 0; $j < count($data); $j++) {
$Code = $data[$j]['StatusCode'];
$Name = $data[$j]['StatusName'];
$HTML .= "<option value='" . $Code . "'>" . $Code . "-" . $Name . "</option>";
}
}
//echo $HTML;
die(json_encode(array('depStaus' => $HTML)));
}
// To get the available Budget Amount
function AvilBudgetAmount()
{
$SearchFilter = $this->request->getPost('id');
// $reqDate= $this->request->getPost('ReqDate');
$CostCode = $SearchFilter[0];
$ReqType = $SearchFilter[1];
print_r($SearchFilter);
$CostCode = $this->request->getPost('id');
$Year = get_current_date('Y');
$this->purchaseorder_model = new purchaseorder_model();
$result = $this->purchaseorder_model->GetAvailableBudgetAmount($CostCode, $Year, $ReqType);
//print_r($result);
$AvilBudAmt = '';
if (count($result) > 0) {
$AvilBudAmt = $result[0]['BudgetAmount'] - $result[0]['Totalvalue'];
}
// echo 'Test';
print_r($AvilBudAmt);
//die(json_encode(array('Cost' => $AvilBudAmt)));
}
/* Method to get the Requistion list based on the search filter*/
function SearchListofRequistion()
{
$SearchFilter = $this->request->getPost('id');
// $reqDate= $this->request->getPost('ReqDate');
$DEPCode = $SearchFilter[0];
$Status = $SearchFilter[1];
$rng = $SearchFilter[2];
// $ToDate = $SearchFilter[3];
$FromDate = '';
$ToDate = '';
// echo $rng;
$Dt = explode("-", $rng);
// print_r( $Dt);
if (count($Dt) > 1) {
$FDate = $Dt[0];
$TDate = $Dt[1];
$FromDate = get_date_time_format($FDate);
$ToDate = get_date_time_format($TDate);
}
//echo $FromDate;
// print_r($Dt);
$result = $this->purchaseorder_model->getRequistionListbySearch($DEPCode, $Status, $FromDate, $ToDate);
$HTML = "";
for ($i = 0; $i < count($result); $i++) {
$SNo = $i + 1;
$ReqNo = $result[$i]['ReqNo'];
$ReqType = $result[$i]['ReqType'];
$Reqedby = $result[$i]['FirstName'];
$ReqDate = $result[$i]['ReqDate'];
$Status = $result[$i]['StatusName'];
$Department = $result[$i]['DepartmentName'];
$Designation = $result[$i]['Designation'];
$HTML .= "<tr id='" . $i . "'>
<td align='left'><input type='checkbox' name='chk'" . $i . " id='chk'" . $i . "/></td>
<td align='left'><a data-toggle='modal' data-target='#myModal'><u>" . $ReqNo . "</u></a></td>
<td align='left'>" . $ReqType . "</td>
<td align='left'>" . $Reqedby . "</td>
<td align='left'>" . $ReqDate . "</td>
<td align='left'>" . $Status . "</td>
<td align='left'>" . $Department . "</td>
<td align='left'>" . $Designation . "</td>
</tr>";
}
//print_r( $HTML);
die(json_encode(array('ReqList' => $HTML)));
}
/* To View the request details*/
function ListPORequistion()
{
$ReqNo = $this->request->getPost('id');
$result = $this->requistion_model->getRequistItemList($ReqNo);
$ReqList = $this->requistion_model->getRequistDetails($ReqNo);
$DepNo = $ReqList[0]['DEPCode'];
$CostList = $this->requistion_model->GetCostCenterByDept($DepNo);
$HTML = "";
for ($i = 0; $i < count($result); $i++) {
$SNo = $i + 1;
$MaterialCode = $result[$i]['MaterialCode'];
$MaterialName = $result[$i]['MaterialName'];
$UOM = $result[$i]['UOM'];
$Quantity = $result[$i]['Quantity'];
$HTML .= "<tr id='" . $i . "'>
<td align='left'>" . $SNo . "</td>
<td align='left'>" . $MaterialCode . "</td>
<td align='left'>" . $MaterialName . "</td>
<td align='left'>" . $UOM . "</td>
<td align='left'>" . $Quantity . "</td>
</tr>";
//$index = $index + 1;
}
$CostCenter = "<option value='-1'>Select Cost center</option>";
if (count($CostList) > 0) {
for ($j = 0; $j < count($CostList); $j++) {
$Code = $CostList[$j]['CostCenterCode'];
$Name = $CostList[$j]['CostCenterName'];
$CostCenter .= "<option value='" . $Code . "'>" . $Code . "-" . $Name . "</option>";
}
}
//echo $HTML;
//echo $CostCenter;
die(json_encode(array('Items' => $HTML, 'Requist' => $ReqList, 'Cost' => $CostCenter)));
}
//This used to Create Revenue Purchase Order
function addNewPurchaseOrder()
{
$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');
$Deliverydt = get_date_time_format($dt);
$POType = $this->request->getPost('POType');
$PoRange = $this->request->getPost('txtPoRange');
$SpcialInstruction = $this->request->getPost('txtSpcialInstruction');
$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 = explode(':', (string)$DeletedRow);
$createddt = get_current_date_time();
$Local_Interstate = $this->request->getPost('Range');
$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, 'Status' => $POStatus, 'PORange' => $PoRange, 'ServiceDescription' => $SpcialInstruction, 'CreatedBy' => $CreateBy, 'DeliveryAddress' => $DeliveryAddr, 'DeliveryDate' => $Deliverydt, 'CreatedDate' => $createddt, 'CapitalRange' => $Local_Interstate,'IsOpenOrder'=>$IsOpenOrder);
$POMaster = $this->purchaseorder_model->addPOMaster($POList,$POType,'advance');
$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++) {
$MaterialCode = $this->request->getPost('materialCode' . $i);
$Quantity = $this->request->getPost('quantity' . $i);
$Reqnumber = $this->request->getPost('Reqnumber' . $i);
$itemRate = $this->request->getPost('itemRate' . $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);
$ExciseOption = $this->request->getPost('ExciseOption' . $i);
$ExciseValue = $this->request->getPost('ExciseVal' . $i);
$AfterExciseValue = $this->request->getPost('AfterExciseVal' . $i);
$VatOption = $this->request->getPost('VatOption' . $i);
$VatValue = $this->request->getPost('VatVal' . $i);
$AfterVatValue = $this->request->getPost('AfterVatVal' . $i);
$CSTOption = $this->request->getPost('CSTOption' . $i);
$CSTValue = $this->request->getPost('CSTVal' . $i);
$AfterCSTValue = $this->request->getPost('AfterCSTVal' . $i);
$GSTValue = $this->request->getPost('GSTVal' . $i);
$AfterGSTValue = $this->request->getPost('AfterGSTVal' . $i);
$OtherTaxValue = $this->request->getPost('OtherTaxVal' . $i);
$AfterOtherTaxValue = $this->request->getPost('AfterOtherTaxVal' . $i);
$FreightType = $this->request->getPost('FreightType' . $i);
$FreightValue = $this->request->getPost('FreightVal' . $i);
$AfterFreightValue = $this->request->getPost('AfterFreightVal' . $i);
$InsuranceValue = $this->request->getPost('Insval' . $i);
$TotalOrderValue = $this->request->getPost('TotalOrderValue' . $i);
$CostCenter = $this->request->getPost('costCode' . $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);
$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'=>$Rate,'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, 'ExciseDuty' => $ExciseValue, 'ExciseDutyCalulatedOn' => $ExciseOption, 'AfterExciseDuty' => $AfterExciseValue, 'Vat' => $VatValue, 'AfterVAT' => $AfterVatValue, 'VatCalulatedOn' => $VatOption, 'CST' => $CSTValue, 'AfterCST' => $AfterCSTValue, 'CSTCalulatedOn' => $CSTOption, 'GST' => $GSTValue, 'AfterGST' => $AfterGSTValue, 'OtherTaxes' => $OtherTaxValue, 'AfterOtherTaxes' => $AfterOtherTaxValue, 'Insurance' => $InsuranceValue, 'TotalValue' => $TotalOrderValue, 'CreatedBy' => $CreateBy, 'CreatedDate' => $createddt);
$RevenueList = $this->purchaseorder_model->addRevenueTax($RevenueTaxList);
//echo 'Revenue tax Success';
}
}
}
echo 'Purchase Order Created Successfully! PO Number Is: ' . $PONO;
}
//This used to Edit the Revenue Purchase Order
function EditRevenuePurchaseOrder()
{
// echo "hi"; die;
$PONO = $this->request->getPost('txtPONO');
$POdt = $this->request->getPost('PODate');
$PODate = get_date_time_format($POdt);
$SupplierID = $this->request->getPost('drpSupplier');
$newsup = (string)$this->request->getPost('newsup');
// echo $newsup;die;
// $newSupId = split("[ - ]+", $newsup);
$newSupId = preg_split('/[ - ]+/', $newsup);
/*-----------------------------------*/
$b4supplier = $this->request->getPost('b4supplier');
$b4date = $this->request->getPost('b4podate');
$b4podate = get_date_time_format($b4date);
/*-----------------------------------*/
$DeliveryAddr = $this->request->getPost('txtDeliveryAddress');
$dt = $this->request->getPost('Deliverydt');
$Deliverydt = get_date_time_format($dt);
$POType = $this->request->getPost('POType');
$PoRange = $this->request->getPost('txtPoRange');
$SpcialInstruction = $this->request->getPost('SpcialInstruction');
$TotalOrderValueSummary = $this->request->getPost('txtTotalOrderValueSummary');
$POStatus = $this->request->getPost('txtStatus');
$updatedBy = $this->session->get('userId');
$RowCount = $this->request->getPost('txtRowCount');
$DeletedRow = $this->request->getPost('txtDeletedRow');
$comma_separated = explode(':', (string)$DeletedRow);
$updateddt = get_current_date_time();
$Local_Interstate = $this->request->getPost('Range');
// PO Master
// PO Master
$POList = array('SupplierID' => $SupplierID, 'TotalOrderValue' => $TotalOrderValueSummary, 'PODate' => $PODate, 'Status' => $POStatus, 'ServiceDescription' => $SpcialInstruction, 'UpdateBY' => $updatedBy, 'DeliveryAddress' => $DeliveryAddr, 'DeliveryDate' => $Deliverydt, 'UpdatedOn' => $updateddt, 'CapitalRange' => $Local_Interstate);
$POMaster = $this->purchaseorder_model->updatePOMaster($PONO, $POList);
$LineItemStatus = REQITEM_NEW;
if ($PODate != $b4podate) {
$logpo = array('PONO' => $PONO, 'LineItemNos' => '-', 'UpdateBy' => $updatedBy, 'UpdatedOn' => $updateddt, 'oldValue' => $b4podate, 'newValue' => $PODate, 'entity' => 'PO DateChanged');
$this->purchaseorder_model->insertlogpo($logpo);
}
if (!empty($newSupId[0])) {
if ($newSupId[0] != $b4supplier) {
$logpo = array('PONO' => $PONO, 'LineItemNos' => '-', 'UpdateBy' => $updatedBy, 'UpdatedOn' => $updateddt, 'oldValue' => $b4supplier, 'newValue' => $newsup, 'entity' => 'Supplier Changed');
$this->purchaseorder_model->insertlogpo($logpo);
}
}
//echo $RowCount;
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);
/*-----------------------------------*/
$b4qty = $this->request->getPost('b4qty' . $i);
$b4rate = $this->request->getPost('b4rate' . $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);
$ExciseOption = $this->request->getPost('ExciseOption' . $i);
$ExciseValue = $this->request->getPost('ExciseVal' . $i);
$AfterExciseValue = $this->request->getPost('AfterExciseVal' . $i);
$VatOption = $this->request->getPost('VatOption' . $i);
$VatValue = $this->request->getPost('VatVal' . $i);
$AfterVatValue = $this->request->getPost('AfterVatVal' . $i);
$CSTOption = $this->request->getPost('CSTOption' . $i);
$CSTValue = $this->request->getPost('CSTVal' . $i);
$AfterCSTValue = $this->request->getPost('AfterCSTVal' . $i);
$GSTValue = $this->request->getPost('GSTVal' . $i);
$AfterGSTValue = $this->request->getPost('AfterGSTVal' . $i);
$OtherTaxValue = $this->request->getPost('OtherTaxVal' . $i);
$AfterOtherTaxValue = $this->request->getPost('AfterOtherTaxVal' . $i);
$FreightType = $this->request->getPost('FreightType' . $i);
$FreightValue = $this->request->getPost('FreightVal' . $i);
$AfterFreightValue = $this->request->getPost('AfterFreightVal' . $i);
$InsuranceValue = $this->request->getPost('Insval' . $i);
$TotalOrderValue = $this->request->getPost('TotalOrderValue' . $i);
$POLineItemNo = $this->request->getPost('LineItemNo' . $i);
$CostCenter = $this->request->getPost('costCode' . $i);
$LineItemNo = '';
if ($Quantity != $b4qty) {
$logpo = array('PONO' => $PONO, 'LineItemNos' => $POLineItemNo, 'UpdateBy' => $updatedBy, 'UpdatedOn' => $updateddt, 'oldValue' => $b4qty, 'newValue' => $Quantity, 'entity' => 'Quantity Changed');
$this->purchaseorder_model->insertlogpo($logpo);
}
if ($itemRate != $b4rate) {
$logpo = array('PONO' => $PONO, 'LineItemNos' => $POLineItemNo, 'UpdateBy' => $updatedBy, 'UpdatedOn' => $updateddt, 'oldValue' => $b4rate, 'newValue' => $itemRate, 'entity' => 'Rate Changed');
$this->purchaseorder_model->insertlogpo($logpo);
}
/*---------start---------------------*/
// if(($PODate != $b4podate )||( $SupplierID != $b4supplier) || ($itemRate !=$b4rate) ||
// ($Quantity != $b4qty ))
// {
// $logpo =array('UpdateBy'=>$updatedBy,'UpdatedOn'=>$updateddt);
// $this->purchaseorder_model->updatelogpo($MaterialCode,$POLineItemNo,$logpo);
// }
/*----------end--------------------*/
$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") {
if (strlen((string)$POLineItemNo) == 0) {
$POLineItemList = array('PONO' => $PONO, 'ReqNo' => $Reqnumber, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Rate' => $itemRate, 'Status' => $LineItemStatus, 'CreatedBy' => $updatedBy, 'CreatedDate' => $updateddt, 'CostCenterCode' => $CostCenter);
$POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList);
if (count($POLineItem) > 0) {
$LineItemNo = $POLineItem[0]['LineItemNo'];
}
} else {
$LineItemNo = $POLineItemNo;
$POLineItemList = array('PONO' => $PONO, 'ReqNo' => $Reqnumber, 'MaterialCode' => $MaterialCode, 'Quantity' => $Quantity, 'Rate' => $itemRate, 'Status' => $LineItemStatus, 'UpdateBY' => $updatedBy, 'UpdatedOn' => $updateddt, 'CostCenterCode' => $CostCenter);
$POLineItem = $this->purchaseorder_model->updatePOLineItem($PONO, $POLineItemNo, $POLineItemList);
}
$isExists = $this->purchaseorder_model->LineItemExistsinRevenueTax($LineItemNo);
if (count($isExists) == 0) {
$RevenueTaxList = array('LineItemNo' => $LineItemNo, 'DiscountType' => $DiscountType, 'DiscountValue' => $DiscountValue, 'AfterDiscount' => $AfterDiscount, 'PackagingType' => $PackagingType, 'PackagingValue' => $PackagingValue, 'PackagingCalulatedOn' => $PackagingOption, 'AfterPackagingValue' => $AfterPackagingValue, 'FreightType' => $FreightType, 'FreightValue' => $FreightValue, 'AfterFreightValue' => $AfterFreightValue, 'ExciseDuty' => $ExciseValue, 'ExciseDutyCalulatedOn' => $ExciseOption, 'AfterExciseDuty' => $AfterExciseValue, 'Vat' => $VatValue, 'AfterVAT' => $AfterVatValue, 'VatCalulatedOn' => $VatOption, 'CST' => $CSTValue, 'AfterCST' => $AfterCSTValue, 'CSTCalulatedOn' => $CSTOption, 'GST' => $GSTValue, 'AfterGST' => $AfterGSTValue, 'OtherTaxes' => $OtherTaxValue, 'AfterOtherTaxes' => $AfterOtherTaxValue, 'Insurance' => $InsuranceValue, 'TotalValue' => $TotalOrderValue, 'CreatedBy' => $updatedBy, 'CreatedDate' => $updateddt);
$RevenueList = $this->purchaseorder_model->addRevenueTax($RevenueTaxList);
} else {
$RevenueTaxList = array('DiscountType' => $DiscountType, 'DiscountValue' => $DiscountValue, 'AfterDiscount' => $AfterDiscount, 'PackagingType' => $PackagingType, 'PackagingValue' => $PackagingValue, 'PackagingCalulatedOn' => $PackagingOption, 'AfterPackagingValue' => $AfterPackagingValue, 'FreightType' => $FreightType, 'FreightValue' => $FreightValue, 'AfterFreightValue' => $AfterFreightValue, 'ExciseDuty' => $ExciseValue, 'ExciseDutyCalulatedOn' => $ExciseOption, 'AfterExciseDuty' => $AfterExciseValue, 'Vat' => $VatValue, 'AfterVAT' => $AfterVatValue, 'VatCalulatedOn' => $VatOption, 'CST' => $CSTValue, 'AfterCST' => $AfterCSTValue, 'CSTCalulatedOn' => $CSTOption, 'GST' => $GSTValue, 'AfterGST' => $AfterGSTValue, 'OtherTaxes' => $OtherTaxValue, 'AfterOtherTaxes' => $AfterOtherTaxValue, 'Insurance' => $InsuranceValue, 'TotalValue' => $TotalOrderValue, 'UpdateBY' => $updatedBy, 'UpdatedOn' => $updateddt);
$this->purchaseorder_model->updateRevenueTax($LineItemNo, $RevenueTaxList);
}
}
}
echo 'Purchase Order Updated Successfully! PO Number Is: ' . $PONO;
}
public function revenuepoprint($PONO)
{
// Load all views as normal
//$PONO = $_GET['PO'];
$data['CompanyDetails'] = $this->purchaseorder_model->getCompanyInformation();
$data['POItem'] = $this->purchaseorder_model->GetRevenuePurchaseOrderDetailsForPDF($PONO);
// Add header to pdf
//view('includes/pdfheader');
// Load the pdf page with multiviews
view("revenuepopdf", $data);
// Add header to pdf
//view('includes/pdffooter');
// Get output html
$php = $this->output->get_output();
// Load library
$this->load->library('dompdf_gen');
// Convert to PDF
$this->dompdf->load_html($php);
$this->dompdf->render();
$data['Attachment'] = FALSE;
$this->dompdf->stream("RevenuePOReport.pdf", $data, $php);
}
public function servicepoprint($PONO)
{
// view('includes/pdfheader');
// Load the pdf page with multiviews
$data['CompanyDetails'] = $this->purchaseorder_model->getCompanyInformation();
$data['POItem'] = $this->purchaseorder_model->GetServicePurchaseOrderDetailsForPrint($PONO);
view("servicepopdf", $data);
// Add header to pdf
//view('includes/pdffooter');
// Get output html
$php = $this->output->get_output();
// Load library
$this->load->library('dompdf_gen');
// Convert to PDF
$this->dompdf->load_html($php);
$this->dompdf->render();
$data['Attachment'] = FALSE;
$this->dompdf->stream("ServicePOReport.pdf", $data, $php);
}
/**
* This function used to load the Delete the Requistion Items
*/
function DeletePODetails()
{
$ReqList = $this->request->getPost('id');
$LineItemNo = '';
$ReqNo = '';
$MaterialCode = '';
$POType = '';
if (count($ReqList) > 0) {
$LineItemNo = $ReqList[0];
$ReqNo = $ReqList[1];
$MaterialCode = $ReqList[2];
$POType = $ReqList[3];
}
// print_r($ReqList);
if ($POType == REVENUE) {
$this->purchaseorder_model->DeletePORevenueTax($LineItemNo);
} else if ($POType == SERVICE) {
$this->purchaseorder_model->DeletePOServiceTax($LineItemNo);
}
$this->purchaseorder_model->DeletePOLineItem($LineItemNo, $ReqNo, $MaterialCode);
echo "Successfully Deleted the Line item" . $LineItemNo;
}
}