From 86529db325d47d1e71c1a9b023eae1c7372dd861 Mon Sep 17 00:00:00 2001 From: VE10-Sanjeev Date: Mon, 6 Jan 2025 11:13:19 +0000 Subject: [PATCH] purchase PDF --- app/Config/Routes.php | 2 + app/Controllers/Purchase.php | 48 +++++++++++++++ app/Models/PurchaseOrderModel.php | 2 +- app/Views/purchase_list.php | 92 +++++++++++++++++++++++++++++ app/Views/purchase_pdf_template.php | 91 ++++++++++++++++++++++++++++ 5 files changed, 234 insertions(+), 1 deletion(-) create mode 100755 app/Views/purchase_pdf_template.php diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 1af1be4..9b39123 100755 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -201,6 +201,8 @@ $routes->get('dashboard', 'Users::dashboard'); $routes->post("delete_purchase_product", "Purchase::delete_purchase_product"); $routes->get("download_purchase_invoice/(:any)", "Purchase::download_purchase_invoice/$1"); $routes->get("reorder_purchase/(:any)", "Purchase::reorder_purchase/$1"); + $routes->get("preview_purchase/(:any)", "Purchase::preview_purchase/$1"); + $routes->get("download_purchase/(:any)", "Purchase::download_purchase/$1"); // Purchase End's// diff --git a/app/Controllers/Purchase.php b/app/Controllers/Purchase.php index a78f307..c880564 100755 --- a/app/Controllers/Purchase.php +++ b/app/Controllers/Purchase.php @@ -10,6 +10,7 @@ use App\Models\BusinessModel; use App\Models\PurchaseOrderChildModel; use Mpdf\Mpdf; use App\Helpers\MailHelper; +use CodeIgniter\API\ResponseTrait; class Purchase extends BaseController @@ -21,6 +22,8 @@ class Purchase extends BaseController protected $BranchModel; protected $BusinessModel; protected $PurchaseOrderChildModel; + use ResponseTrait; + public function __construct() { $this->session = session(); @@ -490,5 +493,50 @@ public function download_purchase_invoice($purchase_order_id, $mail = null) } } + public function preview_purchase($purchase_order_id) + { + + $data['purchase'] = $this->PurchaseOrderModel->getPurchasePdf($purchase_order_id); + $data['items'] = $this->PurchaseOrderModel->getPurchaseOrderProductsForPdf($purchase_order_id); + + $html = view('purchase_pdf_template', $data); + return $this->respond(['status' => 'success','code' => 200,'data' => $html],200); + } + + public function download_purchase($purchase_order_id) + { + if(!$this->session->has('logged_user')) { return redirect()->to(base_url()); } + + + $data['purchase'] = $this->PurchaseOrderModel->getPurchasePdf($purchase_order_id); + $data['items'] = $this->PurchaseOrderModel->getPurchaseOrderProductsForPdf($purchase_order_id); + + $mpdf = new Mpdf([ + 'mode' => '', + 'format' => 'A4', + 'default_font_size' => 0, + 'default_font' => '', + // 'margin_right' => 1, + 'margin_top' => 6, + 'margin_bottom' => 6, + 'margin_header' => 6, + 'margin_footer' =>-30, + 'orientation' => 'P', + ]); + + $mpdf->autoLangToFont = true; $mpdf->autoScriptToLang = true; + // Set PDF properties + $mpdf->SetTitle('Purchase Order'); + $mpdf->SetAuthor($data['purchase'][0]->order_number); + $mpdf->SetCreator(''); + + + // Generate the PDF content (HTML) with data + $html = view('purchase_pdf_template', $data); + $mpdf->WriteHTML($html); + date_default_timezone_set('Asia/Kolkata'); + $mpdf->Output($data['purchase'][0]->order_number .'_' . date('Y-m-d H-i-s') . '.pdf', 'D'); + + } } \ No newline at end of file diff --git a/app/Models/PurchaseOrderModel.php b/app/Models/PurchaseOrderModel.php index a617990..0095295 100755 --- a/app/Models/PurchaseOrderModel.php +++ b/app/Models/PurchaseOrderModel.php @@ -36,7 +36,7 @@ class PurchaseOrderModel extends Model ->join('branches as B','B.branch_id = purchase_order.branch_id','left') ->join('vendor as V','V.vendor_id = purchase_order.vendor_id','left') ->select('purchase_order.*') - ->select('V.vendor_name,V.contact_person_mobile1,V.address as vendor_address,V.city as vendor_city,V.state,V.postal_code as vendor_postal,B.branch_name ,B.address as company_address,B.city as company_city,B.state as company_state,B.postal_code as company_postal_code,B.contact_1 as company_mobile_no') + ->select('V.vendor_name,V.contact_person_mobile1,V.address as vendor_address,V.city as vendor_city,V.state,V.postal_code as vendor_postal,B.branch_name ,B.address as company_address,B.city as company_city,B.state as company_state,B.postal_code as company_postal_code,B.contact_1 as company_mobile_no,B.gstno as company_gstno') ->get() ->getResult(); diff --git a/app/Views/purchase_list.php b/app/Views/purchase_list.php index b374e7b..7b6bab2 100755 --- a/app/Views/purchase_list.php +++ b/app/Views/purchase_list.php @@ -102,6 +102,7 @@ " class="dropdown-item" onclick="datatablePurchaseOrder('purchase_tr_')">Pending Reorder " class="edit-button dropdown-item" onclick="datatablePurchaseOrder('purchase_tr_')">Download + Preview PO @@ -120,6 +121,24 @@ +