load->model('purchaseorder_model'); $this->load->library('session'); $this->load->library('form_validation'); $this->isLoggedIn(); } /** * This function used to load the first screen of the user */ public function index() { $this->global['pageTitle'] = 'Siddharth : 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'] = 'Siddharth : Create PO from Requisition List'; $this->loadViews("createPOfromRequistion", $this->global, $data,Null); } /* This method to get the status based on the Department selection in th */ function getStatusByDepartment() { $DepId = $this->input->post('id'); $data = $this->purchaseorder_model->getStatusByDepartment($DepId); $HTML = ""; if(count($data) > 0) { for ($j = 0; $j < count($data); $j++) { $Code = $data[$j]['StatusCode']; $Name = $data[$j]['StatusName']; $HTML .=""; } } //echo $HTML; die(json_encode(array('depStaus' => $HTML))); } function getDateformat($Val) { $date = new DateTime($Val,new DateTimeZone('Asia/Kolkata')); // print_r($date); $retDate = $date->format('Y-m-d H:i:s'); return $retDate; } /* Method to get the Requistion list based on the search filter*/ function SearchListofRequistion() { $SearchFilter= $this->input->post('id'); // $reqDate= $this->input->post('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 = $this->getDateformat($FDate); $ToDate = $this->getDateformat($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.=" ". $ReqNo." ".$ReqType." ".$Reqedby." ".$ReqDate." ".$Status." ".$Department." ".$Designation." "; } //print_r( $HTML); die(json_encode(array('ReqList' =>$HTML))); } /* To View the request details*/ function ViewRequest() { $ReqNo= $this->input->post('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.=" ".$SNo." ". $MaterialCode." ".$MaterialName." ".$UOM." ".$Quantity." "; //$index = $index + 1; } $CostCenter = ""; if(count($CostList) > 0) { for ($j = 0; $j < count($CostList); $j++) { $Code = $CostList[$j]['CostCenterCode']; $Name = $CostList[$j]['CostCenterName']; $CostCenter .=""; } } //echo $HTML; //echo $CostCenter; die(json_encode(array('Items' =>$HTML,'Requist'=>$ReqList,'Cost'=>$CostCenter))); } function addNewPurchaseOrder() { $POdt =$this->input->post('PODate'); $PODate = $this->getDateformat($POdt); $SupplierID = $this->input->post('drpSupplier'); $DeliveryAddr = $this->input->post('DeliveryAddr'); $dt = $this->input->post('Deliverydt'); $Deliverydt = $this->getDateformat($dt); $POType = $this->input->post('POType'); $PoRange = $this->input->post('txtPoRange'); $SpcialInstruction = $this->input->post('txtSpcialInstruction'); $TotalOrderValueSummary = $this->input->post('txtTotalOrderValueSummary'); $POStatus = $this->input->post('txtStatus'); $CreateBy = $this->session->userdata ( 'userId' ); $RowCount = $this->input->post('txtRowCount'); $dt = new DateTime('now', new DateTimeZone('Asia/Kolkata')); $createddt = $dt->format('Y-m-d H:i:s'); // PO Master $POList = array('SupplierID'=>$SupplierID, 'TotalOrderValue'=>$TotalOrderValueSummary,'PODate'=>$PODate,'Status'=>$POStatus,'PORange'=>$PoRange,'ServiceDescription'=>$SpcialInstruction,'CreatedBy'=>$CreateBy,'DeliveryAddress'=>$DeliveryAddr,'DeliveryDate'=>$Deliverydt,'CreatedDate'=>$createddt ); $POMaster = $this->purchaseorder_model->addPOMaster($POList); $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->input->post('materialCode'.$i); $Quantity = $this->input->post('quantity'.$i); $Reqnumber = $this->input->post('Reqnumber'.$i); $itemRate = $this->input->post('itemRate'.$i); $DiscountType = $this->input->post('DisType'.$i); $DiscountValue = $this->input->post('DisVal'.$i); $AfterDiscount = $this->input->post('AfterDisVal'.$i); $PackagingOption = $this->input->post('PackOption'.$i); $PackagingType = $this->input->post('PackType'.$i); $PackagingValue = $this->input->post('PackVal'.$i); $AfterPackagingValue = $this->input->post('AfterPackVal'.$i); $ExciseOption = $this->input->post('ExciseOption'.$i); $ExciseValue = $this->input->post('ExciseVal'.$i); $AfterExciseValue = $this->input->post('AfterExciseVal'.$i); $VatOption = $this->input->post('VatOption'.$i); $VatValue = $this->input->post('VatVal'.$i); $AfterVatValue = $this->input->post('AfterVatVal'.$i); $CSTOption = $this->input->post('CSTOption'.$i); $CSTValue = $this->input->post('CSTVal'.$i); $AfterCSTValue = $this->input->post('AfterCSTVal'.$i); $GSTValue = $this->input->post('GSTVal'.$i); $AfterGSTValue = $this->input->post('AfterGSTVal'.$i); $OtherTaxValue = $this->input->post('OtherTaxVal'.$i); $AfterOtherTaxValue = $this->input->post('AfterOtherTaxVal'.$i); $FreightType = $this->input->post('FreightType'.$i); $FreightValue = $this->input->post('FreightVal'.$i); $AfterFreightValue = $this->input->post('AfterFreightVal'.$i); $InsuranceValue = $this->input->post('Insval'.$i); $TotalOrderValue = $this->input->post('TotalOrderValue'.$i); $POLineItemList = array('PONO'=>$PONO, 'ReqNo'=>$Reqnumber,'MaterialCode'=>$MaterialCode,'Quantity'=>$Quantity,'Rate'=>$itemRate,'Status'=>$LineItemStatus,'CreatedBy'=>$CreateBy,'CreatedDate'=>$createddt); $POLineItem = $this->purchaseorder_model->addPOLineItem($POLineItemList); $LineItemNo = ''; if(count($POLineItem)>0) { $LineItemNo = $POLineItem[0]['LineItemNo']; } //echo $LineItemNo; if(trim($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 'Successfully updated the Record'; } } /** * This function is used to load the purchaseorder list */ function purchaseorderListing() { if($this->isAdmin() == TRUE) { $this->loadThis(); } else { $this->load->model('purchaseorder_model'); $searchText = $this->input->post('searchText'); $data['searchText'] = $searchText; $this->load->library('pagination'); $count = $this->purchaseorder_model->purchaseorderListingCount($searchText); $returns = $this->paginationCompress ( "purchaseorderListing/", $count, 5 ); $data['userRecords'] = $this->purchaseorder_model->purchaseorderListing($searchText, $returns["page"], $returns["segment"]); $this->global['pageTitle'] = 'Siddharth : PO Listing'; $this->loadViews("POlist", $this->global, $data, NULL); } } function ViewPurchaseOrder() { if($this->isAdmin() == TRUE) { $this->loadThis(); } else { $data = $_GET['PONO']; $this->load->model('purchaseorder_model'); $result['PODetail'] = $this->purchaseorder_model->getPurchaseOrder($data); $result['POLineItem'] = $this->purchaseorder_model->getPOLineItem($data); $this->loadViews("EditPurchaseOrder", $this->global, $result, NULL); } } /** * This function used to show the Purchase Order Screen */ function CreatePurchaseOrder() { $this->global['pageTitle'] = 'Siddharth : Purchase order form'; $data['TaxType'] = $this->purchaseorder_model->getConfigValue('C006'); $data['FreightType'] = $this->purchaseorder_model->getConfigValue('C018'); $data['Suplist'] = $this->purchaseorder_model->getSupplierName(); $SelectedReq = json_decode($this->input->post('txtReqNo')); $Req = $SelectedReq->Req; $data['ReqList'] = $Req ; $ReqArray = array(); $ReqType = ''; foreach ($Req as $SID): $ReqArray[] = $SID->ReqNo ; $ReqType = $SID->ReqType; endforeach; $dt = new DateTime('now', new DateTimeZone('Asia/Kolkata')); $Year = $dt->format('Y'); $data['CostList'] = $this->purchaseorder_model->getCostCenterbyRequist('',$Year,$ReqType); $data['MaterialList'] = $this->purchaseorder_model->getRawMaterialList($ReqType,$ReqArray); $data['RequistionDetails'] = $this->purchaseorder_model->getRequistDetails($ReqArray); //$data['FormulaList'] = $this->purchaseorder_model->getFormula(); $this->loadViews("Purchaseorder", $this->global,$data, NULL); } /** * This function is used to load the add new PO */ function addPO() { if($this->isAdmin() == TRUE) { $this->loadThis(); } else { $this->load->helper('form'); $this->load->model('purchaseorder_model'); $data['users'] = $this->purchaseorder_model->getusers(); $data['SupplierName'] = $this->purchaseorder_model->getSupplierName(); $data['RawMaterials'] = $this->purchaseorder_model->getRawMaterialList(); $data['UOM'] = $this->purchaseorder_model->getUOM(); $data['POType'] = $this->purchaseorder_model->getPOType(); $data['PurchasingCategory'] = $this->purchaseorder_model->getPurchasingCategory(); $data['EmpList'] = $this->purchaseorder_model->getEmployeeList(); $this->global['pageTitle'] = 'siddharth : AddNew PO'; $this->loadViews("addPO", $this->global, $data, NULL); } } function UpdatePO() { $PONO = $this->session->userdata('PONO'); $DiscountType = $this->input->post('DiscountType'); $DiscountValue = $this->input->post('txtDiscount'); $PackagingType = $this->input->post('PackagingType'); $PackagingValue = $this->input->post('txtPackaging'); $Exciseduty = $this->input->post('Exciseduty'); $Vat = $this->input->post('txtVat'); $Freight = $this->input->post('txtFreight'); $TotalOrderValue = $this->input->post('txtOrderValue'); echo $PONO ; echo $DiscountType; echo $PackagingType; $this->load->model('purchaseorder_model'); } /** * This function is used to add new user to the system */ function addNewPO() { if($this->isAdmin() == TRUE) { $this->loadThis(); } else { $POType = $this->input->post('PO_Type'); $PODate = $this->input->post('PO_Date'); $SupplierID = $this->input->post('SupplierID'); $SpecialOrder = $this->input->post('SpecialOrder'); $role = $this->input->post('role'); $re_email = $this->input->post('re_email'); $re_phone = $this->input->post('re_phone'); $re_Date = $this->input->post('re_Date'); $bud_manager =$this->input->post('bud_manager'); $bud_manager_de = $this->input->post('BudgetManagerDepartment'); $Pur_category = $this->input->post('Pur_category'); $Justification = $this->input->post('Justification'); $SupplierAddress = $this->input->post('SupplierAddress'); $CreatedBy= $this->session->userdata('role'); $DiscountType = $this->input->post('DiscountType'); $txtDiscount = $this->input->post('txtDiscount'); $PackagingType = $this->input->post('PackagingType'); $txtPackaging = $this->input->post('txtPackaging'); $Exciseduty = $this->input->post('Exciseduty'); $txtVat = $this->input->post('txtVat'); $txtFreight = $this->input->post('txtFreight'); $txtOrderValue = $this->input->post('txtOrderValue'); $BasicValue = $this->input->post('BasicValue'); $AfterDiscount = $this->input->post('AfterDiscount'); $AfterPackaging = $this->input->post('AfterPackaging'); $AferExciseduty = $this->input->post('AferExciseduty'); $txtAfterVat = $this->input->post('txtAfterVat'); $PODate = date('m-d-Y H:i:s', strtotime(str_replace('/', '-', $PODate))); $re_Date = date('m-d-Y H:i:s', strtotime(str_replace('/', '-', $re_Date))); $this->load->model('purchaseorder_model'); $data['PONO'] = $this->purchaseorder_model->addNewPO($POType,$PODate, $SupplierID,$SpecialOrder,$role,$re_email,$re_phone, $re_Date,$bud_manager,$bud_manager_de,$Pur_category, $Justification,$CreatedBy,$BasicValue,$DiscountType,$txtDiscount,$PackagingType,$txtPackaging,$Exciseduty,$txtVat,$txtFreight,$AfterDiscount,$AfterPackaging,$AferExciseduty,$txtAfterVat,$txtOrderValue); $data = array_shift($data); $PO = $data[0]['PONO']; $RowCount = $this->input->post('txtRowCount'); // Inserting PO Line item for ($i = 1; $i <= $RowCount; $i++) { $Material_ID = $this->input->post('ProductDescription'.$i); $UOM = $this->input->post('UOM'.$i); $Quantity = $this->input->post('Quantity'.$i); $UnitPrice = $this->input->post('UnitPrice'.$i); $data['POLineItem']= $this->purchaseorder_model-> addNewPOLineItem($PO,$Material_ID,$UOM,$Quantity,$UnitPrice); } Print_r($PO); return $PO; } } /** * This function is used load user edit information * @param number $userId : Optional : This is user id */ function editOldPO($PO = NULL) { if($this->isAdmin() == TRUE || $PO == 1) { $this->loadThis(); } else { if($PO == null) { redirect('purchaseorderListing'); } $data['SupplierName'] = $this->purchaseorder_model->getSupplierName(); $data['users'] = $this->purchaseorder_model->getusers(); $this->global['pageTitle'] = 'Siddharth : Edit User'; $this->loadViews("editOldPO", $this->global, $data, NULL); } } /** * This function is used to edit the user information */ function editPO() { if($this->isAdmin() == TRUE) { $this->loadThis(); } else { $this->load->library('form_validation'); $PO = $this->input->post('PO'); $this->form_validation->set_rules('POType','PO Type','trim|required|'); $this->form_validation->set_rules('PODate','PO Date','trim|required|'); $this->form_validation->set_rules('SupplierID','SupplierID','trim|required|'); $this->form_validation->set_rules('SpecialOrder','Special Requirement of order','|max_length[20]'); $this->form_validation->set_rules('role','UserID','trim||numeric'); $this->form_validation->set_rules('reemail','Requester email','trim|valid_email|xss_clean|max_length[128]'); $this->form_validation->set_rules('rephone','Requester ph','required|min_length[10]|xss_clean'); $this->form_validation->set_rules('reDate','Requested Date','required'); $this->form_validation->set_rules('budmanager','Budget Manager'); $this->form_validation->set_rules('budmanagerde','Budget Manager Department','trim'); $this->form_validation->set_rules('PurchasingCategory','Purchasing Category','trim'); if($this->form_validation->run() == FALSE) { $this->editPO(); } else { $POType = ucwords(strtolower($this->input->post('POType'))); $PODate = $this->input->post('PODate'); $SupplierID = $this->input->post('SupplierID'); $SpecialOrder = $this->input->post('SpecialOrder'); $role = $this->input->post('role'); $reemail = $this->input->post('reemail'); $rephone = $this->input->post('rephone'); $reDate = $this->input->post('reDate'); $budmanager = $this->input->post('budmanager'); $budmanagerde = $this->input->post('budmanagerde'); $Purcategory = $this->input->post('PurchasingCategory'); $POInfo = array('POType'=>$POType, 'PODate'=>$PODate, 'SupplierID'=>$SupplierID, 'SpecialOrder'=> $SpecialOrder,'UserID'=>$role,'RequestedDate'=>$reDate,'RequesterEmail'=>$reemail,'RequesterPh'=>$rephone, 'PurchasingCategory'=>$Purcategory,'BudgetManager'=>$budmanager,'BudgetManagerDepartment'=>$budmanagerde,'createdBy'=>$this->vendorId, 'createdDtm'=>date('Y-m-d H:i:sa')); $POInfo = array(); $result = $this->purchaseorder_model->editPO($POInfo, $PO); if($result == true) { $this->session->set_flashdata('success', 'PO updated successfully'); } else { $this->session->set_flashdata('error', 'PO updation failed'); } redirect('purchaseorderListing'); } } } function GetSupplier() { $id = $this->input->post('id'); $this->load->model('supplier_model'); $result['Address'] = $this->supplier_model->GetSupplierAddress($id ); $result = array_shift($result); $Address = $result[0]['Address']; print $Address; return $Address; } function GetBudgetManagerDepartment() { $id = $this->input->post('id'); $this->load->model('Employeedetails_model'); $result['DepartmentName'] = $this->Employeedetails_model->GetEmployeeDepartment($id ); $result = array_shift($result); $DepartmentName = $result[0]['DepartmentName']; print $DepartmentName; return $DepartmentName; } function pageNotFound() { $this->global['pageTitle'] = 'CodeInsect : 404 - Page Not Found'; $this->loadViews("404", $this->global, NULL, NULL); } } ?>