diff --git a/app/Controllers/Inwardgateregister.php b/app/Controllers/Inwardgateregister.php index 7521095c..2103066c 100755 --- a/app/Controllers/Inwardgateregister.php +++ b/app/Controllers/Inwardgateregister.php @@ -400,15 +400,16 @@ class Inwardgateregister extends BaseController $IsThisOpenOrderPO = $this->request->getPost('hiddenIsOpenOrder'); $DeliveryChellanOrInvoiceNo = $this->request->getPost('InvoiceNo'); $DeliveryChellan = (string)$this->request->getPost('InvoiceDate'); - $DeliveryChellanDate = get_date_time_format_new($DeliveryChellan); + $DeliveryChellanDate = get_date_time_dynamical_format('d-m-Y',$DeliveryChellan); $Mat_Rcvd_Dt = (string)$this->request->getPost('MaterialRcvdDate'); - $MaterialRcvdDt = get_date_time_format_new($Mat_Rcvd_Dt); + $MaterialRcvdDt = get_date_time_dynamical_format('d-m-Y',$Mat_Rcvd_Dt); $VehicleNo = $this->request->getPost('VehicleNo'); $TransporterId = $this->request->getPost('TransporterId'); $DriverName = $this->request->getPost('DriverName'); $DriverMobileNumber = $this->request->getPost('DriverMobileNumber'); $CreatedBy = $this->session->get('userId'); $RowCount = $this->request->getPost('txtRowCount'); + $MasterRemarks = $this->request->getPost('MasterRemarks'); $createddt = get_current_date_time(); //$IGRStatus = IGR_CREATED;//old $PreIGRStatus = (int)$this->request->getPost('hideIGRStatus') == 1 ? IGR_CREATED : IGR_DRAFT; @@ -441,13 +442,11 @@ class Inwardgateregister extends BaseController } } #Step 3 Master Details Gathering to Save In DB - $igr = array('PONO' => $PONO, 'VehicleNo' => $VehicleNo, 'TransporterId'=>$TransporterId,'DeliveryChellanOrInvoiceNo' => $DeliveryChellanOrInvoiceNo, 'DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt, 'DriverName' => $DriverName, 'DriverMobileNumber' => $DriverMobileNumber,'IGRStatus' => $IGRStatus, 'CreatedBy' => $CreatedBy, 'CreatedDate' => $createddt, 'PaymentStatus' => $paymentstatus); + $igr = array('PONO' => $PONO, 'VehicleNo' => $VehicleNo, 'TransporterId'=>$TransporterId,'DeliveryChellanOrInvoiceNo' => $DeliveryChellanOrInvoiceNo, 'DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt, 'DriverName' => $DriverName, 'DriverMobileNumber' => $DriverMobileNumber,'IGRStatus' => $IGRStatus, 'CreatedBy' => $CreatedBy, 'CreatedDate' => $createddt, 'PaymentStatus' => $paymentstatus, 'Remarks'=>$MasterRemarks); $igr['MasterFile'] = $requestMasterFileName; #Step 4 Calling DB to Save IGR Master $IGRNO = $this->inwardgateregister_model->addigrM($igr); - // echo "master - no problem"; - // $IGRNO = "IGRNO02767"; - // print_r($this->request->getPost());die; + if($IGRNO){ $files = $this->request->getFiles(); $fileNames = $this->request->getPost('file_name'); // Get user-entered file names @@ -720,10 +719,42 @@ function viewIGRDetails() $IGRNO = $this->request->getPost('id'); $data['details'] = $this->inwardgateregister_model->viewigr($IGRNO); - $data['files'] = $this->inwardgateregister_model->viewIGRFile($IGRNO); + $TaxInPercentage = 0; + for ($i = 0; $i < count($data['details']); $i++) { + $details = $data['details'][$i]; - // echo $IGRNO; - // print_r($data);die; + if ($details->POType == 'IMPORT') { + $TaxInPercentage = isset($details->import_igst) ? $details->import_igst : 0; + } + + if ($details->POType == 'CAPITAL' && $details->CapitalRange == 0) { + $TaxInPercentage = isset($details->import_igst) ? $details->import_igst : 0; + } + + if ($details->POType == 'CAPITAL' && $details->CapitalRange == 1) { + $TaxInPercentage = + (isset($details->service_cgst) ? $details->service_cgst : 0) + + (isset($details->service_sgst) ? $details->service_sgst : 0) + + (isset($details->service_igst) ? $details->service_igst : 0); + } + + if ($details->POType == 'REVENUE') { + $TaxInPercentage = + (isset($details->revenue_cgst) ? $details->revenue_cgst : 0) + + (isset($details->revenue_sgst) ? $details->revenue_sgst : 0) + + (isset($details->revenue_igst) ? $details->revenue_igst : 0); + } + + if ($details->POType == 'SERVICE') { + $TaxInPercentage = + (isset($details->service_cgst) ? $details->service_cgst : 0) + + (isset($details->service_sgst) ? $details->service_sgst : 0) + + (isset($details->service_igst) ? $details->service_igst : 0); + } + + $data['details'][$i]->TaxInPercentage = $TaxInPercentage; + } + $data['files'] = $this->inwardgateregister_model->viewIGRFile($IGRNO); echo json_encode($data); } @@ -768,7 +799,7 @@ function viewIGRDetails() $TransporterId = $this->request->getPost('Transporter_Id'); $DriverName = $this->request->getPost('driver'); $DriverMobileNumber = $this->request->getPost('driver_mobile'); - + $IGRStatus = (int)$this->request->getPost('status') == 1 ? IGR_CREATED : IGR_DRAFT; $tableData = $this->request->getPost('tableData'); @@ -780,7 +811,8 @@ function viewIGRDetails() $path = ROOTPATH.'public/uploads/Igrfiles/'; if(!is_dir($path)) { mkdir($path, 0777, true); } - $igrarr = array('DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt,'VehicleNo'=>$VehicleNo,'TransporterId'=>$TransporterId,'DriverMobileNumber'=>$DriverMobileNumber,'DriverName'=>$DriverName, 'IGRStatus' => $IGRStatus,'UpdateBY' => $updateby,'DeliveryChellanOrInvoiceNo'=>$DeliveryChellanOrInvoiceNo); + $MasterRemarks = $this->request->getPost('MasterRemarks'); + $igrarr = array('DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt,'VehicleNo'=>$VehicleNo,'TransporterId'=>$TransporterId,'DriverMobileNumber'=>$DriverMobileNumber,'DriverName'=>$DriverName, 'IGRStatus' => $IGRStatus,'UpdateBY' => $updateby,'DeliveryChellanOrInvoiceNo'=>$DeliveryChellanOrInvoiceNo,'Remarks'=>$MasterRemarks); $MasterFile = $this->request->getfile('MasterFile'); @@ -830,6 +862,8 @@ function viewIGRDetails() } log_message('error', 'UpdateIGR igrarr: ' . json_encode($igrarr)); + $getigrstatus = $this->inwardgateregister_model->getigrstatus($IGRNo); + $getigrstatus = $getigrstatus->IGRStatus; $updateigrmaster = $this->inwardgateregister_model->updateigr($igrarr, $IGRNo); log_message('error', "Master updated successfully: " . $updateigrmaster); if(!empty($tableData )){ @@ -1083,7 +1117,8 @@ function viewIGRDetails() if ($updateigrmaster > 0 || $updateigrlineitem > 0) { - if ($IGRStatus == IGR_CREATED || $IGRStatus == MRIR_CREATED || $IGRStatus == MRIR_APPROVED ) { + + if ($getigrstatus == 'ST027') { $result_for_email = $this->inwardgateregister_model->getDetailsforEmail($this->session->get('userId')); $notification = new Notification(); @@ -1091,7 +1126,7 @@ function viewIGRDetails() for ($i = 0; $i < count($result_for_email['emails']); $i++) { $email_response = $notification->sendEmail([ 'recipient_email' => $result_for_email['emails'][$i]->email, - 'subject' => 'Resico Industries - IGR Notification', + 'subject' => $result_for_email['company'].' - IGR Notification', 'description' => 'IGR Number : '.$IGRNo.' is Edited By '.($result_for_email['full_name'] ?? $this->session->get('name')), 'company' => $result_for_email['company'], 'from_mail'=> $result_for_email['from_mail'] diff --git a/app/Controllers/Payslip.php b/app/Controllers/Payslip.php index b77051e1..da5d75ab 100755 --- a/app/Controllers/Payslip.php +++ b/app/Controllers/Payslip.php @@ -612,7 +612,13 @@ class Payslip extends BaseController $Sunday = $value->sunday_count; // Sunday count $LOP_Days = $value->NoofDays - ($Days_worked + $Sunday); // not working day $Paid_leave = $value->Paid_leave; // leave day - $OT_Hrs_Worked = $value->OT_Hrs_Worked; //OT hours + if ($value->is_management_team == 1) + { + $OT_Hrs_Worked = 0; //OT hours + $value->OT_Hrs_Worked = 0; + } else { + $OT_Hrs_Worked = $value->OT_Hrs_Worked; //OT hours + } $Monthly_Due = $value->Monthly_Due; // AUTO LOAN DUE $Loan_Recovered = $value->Loan_Recovered; //MANUAL LOAN DUE $due_start_date = $value->DueDate; @@ -743,7 +749,13 @@ class Payslip extends BaseController $Sunday = $value->sunday_count; // Sunday count $LOP_Days = $value->NoofDays - ($Days_worked + $Sunday); // not working day $Paid_leave = $value->Paid_leave; // leave day - $OT_Hrs_Worked = $value->OT_Hrs_Worked; //OT hours + if ($value->is_management_team == 1) + { + $OT_Hrs_Worked = 0; //OT hours + $value->OT_Hrs_Worked = 0; + } else { + $OT_Hrs_Worked = $value->OT_Hrs_Worked; //OT hours + } $Monthly_Due = $value->Monthly_Due; // AUTO LOAN DUE $Loan_Recovered = $value->Loan_Recovered; //MANUAL LOAN DUE $due_start_date = $value->DueDate; diff --git a/app/Controllers/Supplier.php b/app/Controllers/Supplier.php index f85b4d3b..3cc7562b 100755 --- a/app/Controllers/Supplier.php +++ b/app/Controllers/Supplier.php @@ -87,19 +87,28 @@ class Supplier extends BaseController 'Address' => [ 'label' => 'Address', 'rules' => 'trim|required' - ], - 'ContactNumber' => [ - 'label' => 'Contact Number', - 'rules' => 'trim|required|max_length[13]' - ], - 'AlternateContactNumber' => [ - 'label' => 'Alternate Contact Number', - 'rules' => 'trim|max_length[13]' - ], - 'emailid' => [ - 'label' => 'Email', - 'rules' => 'valid_email|max_length[128]|required' + ],'accno' => [ + 'label' => 'accno', + 'rules' => 'trim|required' + ],'ifsc' => [ + 'label' => 'ifsc', + 'rules' => 'trim|required' + ],'Payment' => [ + 'label' => 'Payment', + 'rules' => 'trim|required' ] + // 'ContactNumber' => [ + // 'label' => 'Contact Number', + // 'rules' => 'trim|required|max_length[13]' + // ], + // 'AlternateContactNumber' => [ + // 'label' => 'Alternate Contact Number', + // 'rules' => 'trim|max_length[13]' + // ], + // 'emailid' => [ + // 'label' => 'Email', + // 'rules' => 'valid_email|max_length[128]|required' + // ] ]; $messages = [ @@ -109,18 +118,27 @@ class Supplier extends BaseController 'Address' => [ 'required' => 'Please enter an address.' ], - 'ContactNumber' => [ - 'required' => 'Please enter a contact number.', - 'max_length' => 'The contact number cannot exceed {param} characters.' + 'accno' => [ + 'required' => 'Please enter an Account Number.' ], - 'AlternateContactNumber' => [ - 'max_length' => 'The alternate contact number cannot exceed {param} characters.' + 'ifsc' => [ + 'required' => 'Please enter a Bank IFSC Code.' ], - 'emailid' => [ - 'required' => 'Please enter an email address.', - 'valid_email' => 'Please enter a valid email address.', - 'max_length' => 'The email address cannot exceed {param} characters.' - ] + 'Payment' => [ + 'required' => 'Please Select the Payment option.' + ], + // 'ContactNumber' => [ + // 'required' => 'Please enter a contact number.', + // 'max_length' => 'The contact number cannot exceed {param} characters.' + // ], + // 'AlternateContactNumber' => [ + // 'max_length' => 'The alternate contact number cannot exceed {param} characters.' + // ], + // 'emailid' => [ + // 'required' => 'Please enter an email address.', + // 'valid_email' => 'Please enter a valid email address.', + // 'max_length' => 'The email address cannot exceed {param} characters.' + // ] // 'panno' => [ // 'required' => 'Please enter an panno address.', // 'max_length' => 'The panno cannot exceed {param} characters.' @@ -253,6 +271,7 @@ class Supplier extends BaseController $file1 = $this->request->getFile('Cert_MSME'); $file2 = $this->request->getFile('Cert_GST'); $file3 = $this->request->getFile('Cert_BANK'); + $file4 = $this->request->getFile('Cert_PAN'); $path = ROOTPATH.'public/uploads/images/'; if($PAN){ $supplier['PAN'] = $PAN;} @@ -287,6 +306,16 @@ class Supplier extends BaseController $supplier['Cert_BANK'] = $this->request->getPost('hidden_Cert_BANK') ? $this->request->getPost('hidden_Cert_BANK') : NULL; } + if ($file4 && $file4->isValid() && !$file4->hasMoved()) { + if(!is_dir($path)) { mkdir($path, 0777, true); } + $PAN_DOC = $file4->getName(); + $file4->move($path,$PAN_DOC); + $supplier['Cert_PAN'] = $PAN_DOC; + } + else{ + $supplier['Cert_PAN'] = $this->request->getPost('hidden_Cert_PAN') ? $this->request->getPost('hidden_Cert_PAN') : NULL; + } + $result = $this->supplier_model->UpdateSupplier($supplier, $SupplierID); if ($result == True) { diff --git a/app/Helpers/Notification.php b/app/Helpers/Notification.php index 337ea132..accbacf8 100755 --- a/app/Helpers/Notification.php +++ b/app/Helpers/Notification.php @@ -40,9 +40,10 @@ class Notification if (!empty($ccRecipients)) { $this->email->setCC($ccRecipients); } - } else { - $this->email->setCC('vadivel.j@venbainfotech.com'); - } + } + // else { + // $this->email->setCC('vadivel.j@venbainfotech.com'); + // } if ($bcc !== '') { $bccRecipients = explode(',', trim($bcc)); @@ -50,9 +51,10 @@ class Notification if(!empty($bccRecipients)) { $this->email->setBCC($bccRecipients); } - }else{ - $this->email->setCC('gowtham.m@venbainfotech.com'); } + // else{ + // $this->email->setCC('gowtham.m@venbainfotech.com'); + // } if ($this->email->send()) { $message['success'] = 'Email sent successfully'; diff --git a/app/Helpers/datetime_helper.php b/app/Helpers/datetime_helper.php index 6b5e8772..e3638ecb 100755 --- a/app/Helpers/datetime_helper.php +++ b/app/Helpers/datetime_helper.php @@ -32,10 +32,10 @@ if (!function_exists('get_date_time_format')) { } } -if (!function_exists('get_date_time_format_new')) { - function get_date_time_format_new($val) +if (!function_exists('get_date_time_dynamical_format')) { + function get_date_time_dynamical_format($format,$val) { - $date = \DateTime::createFromFormat('d/m/Y', $val, new \DateTimeZone('Asia/Kolkata')); + $date = \DateTime::createFromFormat($format, $val, new \DateTimeZone('Asia/Kolkata')); return $date->format('Y-m-d H:i:s'); } } diff --git a/app/Models/Inwardgateregister_model.php b/app/Models/Inwardgateregister_model.php index 66c32171..15551512 100755 --- a/app/Models/Inwardgateregister_model.php +++ b/app/Models/Inwardgateregister_model.php @@ -379,23 +379,31 @@ class Inwardgateregister_model extends Model // Build subQuery2 dynamically for rate and tax based on POType $subQuery2 = "(CASE - WHEN PO.POType = 'revenue' THEN ( - SELECT JSON_OBJECT('total_rate', SUM(POL.Rate), 'total_tax', AVG(tax.CGST + tax.SGST + tax.IGST)) - FROM t_igr_details IGRD - LEFT JOIN t_purchaseorder_lineitem POL ON PONO = POL.PONO AND IGRD.MaterialCode = POL.MaterialCode - LEFT JOIN t_revenue_tax tax ON tax.LineItemNo = POL.LineItemNo - WHERE IGRD.IGRNO = igr.IGRNO - ) - WHEN PO.POType = 'service' THEN ( - SELECT JSON_OBJECT('total_rate', SUM(POL.Rate), 'total_tax', AVG(tax.CGST + tax.SGST + tax.IGST)) - FROM t_igr_details IGRD - LEFT JOIN t_purchaseorder_lineitem POL ON PONO = POL.PONO AND IGRD.MaterialCode = POL.MaterialCode - LEFT JOIN t_service_tax tax ON tax.LineItemNo = POL.LineItemNo - WHERE IGRD.IGRNO = igr.IGRNO - ) - - ELSE NULL - END)"; + WHEN PO.POType = 'revenue' THEN ( + SELECT JSON_OBJECT( + 'total_rate', SUM(POL.Rate * IGRD.QuantityAsPerInvoice), + 'total_tax', SUM((POL.Rate * IGRD.QuantityAsPerInvoice) * (tax.CGST + tax.SGST + tax.IGST) / 100) + ) + FROM t_igr_details IGRD + LEFT JOIN t_purchaseorder_lineitem POL ON PONO = POL.PONO AND IGRD.MaterialCode = POL.MaterialCode + LEFT JOIN t_revenue_tax tax ON tax.LineItemNo = POL.LineItemNo + WHERE IGRD.IGRNO = igr.IGRNO AND IGRD.QuantityAsPerInvoice != 0 + LIMIT 1 + ) + WHEN (PO.POType = 'service' OR (PO.POType = 'capital' AND PO.CapitalRange = '1')) THEN ( + SELECT JSON_OBJECT( + 'total_rate', SUM(POL.Rate * IGRD.QuantityAsPerInvoice), + 'total_tax', SUM((POL.Rate * IGRD.QuantityAsPerInvoice) * (tax.CGST + tax.SGST + tax.IGST) / 100) + ) + FROM t_igr_details IGRD + LEFT JOIN t_purchaseorder_lineitem POL ON PONO = POL.PONO AND IGRD.MaterialCode = POL.MaterialCode + LEFT JOIN t_service_tax tax ON tax.LineItemNo = POL.LineItemNo + WHERE IGRD.IGRNO = igr.IGRNO AND IGRD.QuantityAsPerInvoice != 0 + LIMIT 1 + ) + + ELSE NULL + END)"; // Main query @@ -406,8 +414,8 @@ class Inwardgateregister_model extends Model SUM(IGRD.NetWeight) as NetWeight, COUNT(IGRD.IGRNo) as itemCount, COALESCE(($subQuery1), 0) as remark_count, - JSON_EXTRACT(($subQuery2), '$.total_rate') as total_rate, - JSON_EXTRACT(($subQuery2), '$.total_tax') as total_tax") + JSON_EXTRACT(($subQuery2), '$.total_rate') as taxable_value, + JSON_EXTRACT(($subQuery2), '$.total_tax') as gst_amount") ->join('t_purchaseorder_master PO', 'igr.PONO = PO.PONO') ->join('t_supplierdetailsn sup', 'PO.SupplierID = sup.SupplierID') ->join('t_transporter trans', 'igr.TransporterId = trans.id', 'left') @@ -512,21 +520,7 @@ class Inwardgateregister_model extends Model $builder = $this->db->table('t_igr_master igr') ->distinct() ->select("igr.IGRNO,igr.*,igrd.*,MM.MaterialName,MM.UOM,sup.Address,sup.SupplierName,POM.ServiceDescription,POL.Quantity,POL.Rate,POM.POType,POM.IsOpenOrder, - SUM( - CASE - WHEN POM.POType = 'IMPORT' - THEN COALESCE(it.IGST, 0) - WHEN POM.POType = 'CAPITAL' AND POM.CapitalRange = 0 - THEN COALESCE(it.IGST, 0) - WHEN POM.POType = 'CAPITAL' AND POM.CapitalRange = 1 - THEN COALESCE(st.CGST, 0) + COALESCE(st.SGST, 0) + COALESCE(st.IGST, 0) - WHEN POM.POType = 'REVENUE' - THEN COALESCE(rt.CGST, 0) + COALESCE(rt.SGST, 0) + COALESCE(rt.IGST, 0) - WHEN POM.POType = 'SERVICE' - THEN COALESCE(st.CGST, 0) + COALESCE(st.SGST, 0) + COALESCE(st.IGST, 0) - ELSE 0 - END - ) AS TaxInPercentage", false) + POM.CapitalRange,POM.CapitalRange,st.CGST as service_cgst,st.SGST as service_sgst,st.IGST as service_igst,it.IGST as import_igst,rt.CGST as revenue_cgst,rt.SGST as revenue_sgst,rt.IGST as revenue_igst") ->join('t_igr_details igrd', 'igrd.IGRNO = igr.IGRNO') ->join('t_purchaseorder_master POM', 'igr.PONO = POM.PONO') ->join('t_purchaseorder_lineitem POL', 'igr.PONO = POL.PONO and POL.MaterialCode=igrd.MaterialCode ') @@ -1226,5 +1220,15 @@ class Inwardgateregister_model extends Model return $result; } + public function getigrstatus($IGRNo){ + + $builder = $this->db->table('t_igr_master') + ->select('IGRStatus') + ->where('IGRNO',$IGRNo) + ->get(); + $result = $builder->getRow(); + return $result; + } + } \ No newline at end of file diff --git a/app/Models/Monthlypay_model.php b/app/Models/Monthlypay_model.php index 8e380491..569790f8 100755 --- a/app/Models/Monthlypay_model.php +++ b/app/Models/Monthlypay_model.php @@ -218,8 +218,7 @@ class Monthlypay_model extends Model return $i; } elseif ($count == 1) { $this->db->table('t_monthly_pay_inputs') - // ->where('H_date', $data['H_Date']) // ask velmurugan H_Date public hoilday table la irukku - ->where('EmpID', $data['EmpID']) // temp solution + ->where('EmpID', $data['EmpID']) ->where('Month_Year', $data['Month_Year']) ->update($data); diff --git a/app/Views/addSupplier.php b/app/Views/addSupplier.php index 956bf962..54439736 100755 --- a/app/Views/addSupplier.php +++ b/app/Views/addSupplier.php @@ -64,16 +64,16 @@