1536 lines
67 KiB
PHP
1536 lines
67 KiB
PHP
<?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()
|
|
{
|
|
|
|
$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 = '';
|
|
$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('Budget');
|
|
|
|
$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);
|
|
|
|
|
|
$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) {
|
|
$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 redirect()->route('purchaseorderListing');
|
|
}
|
|
|
|
|
|
|
|
//This used to Create Revenue Emergency Purchase Order
|
|
function addNewRevenuePurchaseOrder()
|
|
{
|
|
|
|
|
|
$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('txtTotalOrderValueSummary');
|
|
|
|
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('Budget');
|
|
|
|
//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);
|
|
//print_r($POList);
|
|
$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');
|
|
|
|
// 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();
|
|
|
|
$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');
|
|
$newSupId = 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;
|
|
}
|
|
}
|