diff --git a/app/Controllers/Invoice.php b/app/Controllers/Invoice.php index 9a4f73d..9503c95 100644 --- a/app/Controllers/Invoice.php +++ b/app/Controllers/Invoice.php @@ -124,14 +124,22 @@ class Invoice extends BaseController $bmodel = new BooksModel(); $setting_model = new SettingsModel(); $where = ['business_id' => (int)get_business_id()]; - $receipt = $model->getData('receipt', $where); - $count_receipt_no = (count($receipt) > 0) ? count($receipt) + 1 : 1; + $rec_where = ['business_id' => (int)get_business_id(), 'YEAR(created_on)' => date('Y')]; + $receipt = $model->getData('receipt', $rec_where); + + // receipt number + $settingData = $setting_model->select('*')->where($where)->findAll(); + $count_receipt_no = (count($receipt) > 0) ? count($receipt) + $settingData[0]['start_no'] + 1 : $settingData[0]['start_no'] + 1; + $pad = ''; + for ($i=0; $i < $settingData[0]['left_pad']; $i++) { + $pad .= '0'; + } + $data['count_receipt_no'] = $settingData[0]['prefix_format'].'/'.$pad.''.$count_receipt_no; // Get customer names for the dropdown, events details, and books details $data['currency'] = $setting_model->select('currency')->where($where)->findAll(); $data['customers'] = $model->getData('donor', $where); // $data['causes'] = $model->getData('causes', $where); $data['causes'] = $bmodel->select('*')->where('business_id', (int)get_business_id() )->get()->getResult(); - $data['count_receipt_no'] = $count_receipt_no; $data['campaign'] = $model->getData('campaign', $where); $data['invoice_number_formatting'] = $model->getData('settings', $where); @@ -294,6 +302,7 @@ class Invoice extends BaseController 'payment_mode' => $this->request->getPost('payment_mode'), 'payment_ref_no' => $this->request->getPost('payment_ref_no'), 'causes_id' => (int)$this->request->getPost('causes_id'), + 'currency' => $this->request->getPost('currency'), 'business_id' => (int)get_business_id(), 'isactive' => 1 ]; @@ -637,8 +646,10 @@ class Invoice extends BaseController $model = new InvoiceModel(); $usermodel = new UsersModel(); $setting_model = new SettingsModel(); + $business_model = new BusinessModel(); $where = ['business_id' => (int)get_business_id()]; $currency_data = $setting_model->select('currency')->where($where)->findAll(); + $terms_data = $business_model->select('terms,signature')->where($where)->findAll(); $data = $model->getInvoiceData($id); // Check if data is empty if (!$data || !$currency_data) { @@ -648,15 +659,34 @@ class Invoice extends BaseController $options = new Options(); $options->set('isHtml5ParserEnabled', true); $options->set('isPhpEnabled', true); - // $options->set('isRemoteEnabled', true); + $options->set('isRemoteEnabled', true); $options->set('font_subsetting', true); + $options->set('tempDir', sys_get_temp_dir()); + $options->set('defaultFont', 'Arial'); + $options->set('chroot', base_url()."public/uploads"); $dompdf = new Dompdf($options); define("DOMPDF_UNICODE_ENABLED", true); $user = $usermodel->select('first_name')->where('user_id',$data[0]->created_by)->findAll(); - $baseurl = base_url()."public/uploads/".$data[0]->business_logo; - $html = view('invoice_pdf_template', ['data' => $data[0],'currency' => $currency_data[0]['currency'], 'currency_in_words' => $this->convertNumberToWords($data[0]->amount) ,'baseurl' => $baseurl, 'staff_name' => $user[0]['first_name'] ]); + $logoPath = base_url()."public/uploads/".$data[0]->business_logo; + + if ($data[0]->business_logo && file_exists($logoPath)) { + $baseurl = $logoPath; + } else { + // Logo does not exist, handle this case accordingly + $baseurl = base_url()."public/uploads/default.png"; + } + + $html = view('invoice_pdf_template', [ + 'data' => $data[0], + 'currency' => $data[0]->currency, + 'currency_in_words' => $this->convertNumberToWords($data[0]->amount) , + 'baseurl' => $baseurl, + 'signature' => $terms_data[0]['signature'], + 'staff_name' => $user[0]['first_name'], + 'Notes' => $terms_data[0]['terms'] + ]); // echo $html;die; $dompdf->loadHtml($html); diff --git a/app/Models/InvoiceModel.php b/app/Models/InvoiceModel.php index 7b9db78..8f7976e 100644 --- a/app/Models/InvoiceModel.php +++ b/app/Models/InvoiceModel.php @@ -8,7 +8,7 @@ class InvoiceModel extends Model protected $table = 'receipt'; protected $primaryKey = 'receipt_id'; // protected $allowedFields = ['invoice_id','invoice_number','donor_id','invoice_date','event_id','business_id','created_on','business_id']; -protected $allowedFields = ['receipt_id', 'receipt_number', 'donor_id','notes','amount', 'payment_mode', 'business_id', 'created_on', 'created_by', 'updated_on', 'updated_by','isactive', 'payment_ref_no', 'receipt_date','causes_id','campaign_id','receipt_header','reason']; +protected $allowedFields = ['receipt_id', 'receipt_number', 'donor_id','notes','amount', 'payment_mode', 'business_id', 'created_on', 'created_by', 'updated_on', 'updated_by','isactive', 'payment_ref_no', 'receipt_date','causes_id','campaign_id','receipt_header','reason','currency']; public function saveInvoiceItemDetails($data){ $i = 0; diff --git a/app/Views/business_form.php b/app/Views/business_form.php index 9480155..df9630c 100644 --- a/app/Views/business_form.php +++ b/app/Views/business_form.php @@ -17,6 +17,10 @@ margin-top: 10px; /* Add a top margin for spacing */ } + .toggle-icon { + cursor: pointer; + margin-left: 5px; + } @@ -28,7 +32,14 @@