logger->info("Invoice: Listing In Admin BID = " . $session_bid); $where = ['I.business_id' => (int)$session_bid, 'I.isactive' => 1]; } else { $this->logger->info("Invoice: Listing In the Super-Admin "); $where = ['I.business_id != ' => NULL, 'I.isactive != ' => NULL]; } $model = new InvoiceModel(); $data['page_name'] = 'Subscription Invoice Details'; $data['invoice'] = $model->getSubscriptionInvoiceDetail($where); $this->logger->info("Invoice: Listing Count ." . count($data['invoice'])); // $data['subscriber'] = $SubscriptionModel->where($where)->findAll();; $SubscriptionModel = new SubscriptionModel(); $swhere = ['subscription.business_id' => (int)$session_bid]; $data['subscriber'] = $SubscriptionModel->getAllSubscribersWithNames($swhere); $this->render_page('subscribers_list', $data); }else { return redirect()->to('login'); } } public function new_subscription() { helper('session'); helper('session'); $session_bid = get_business_id(); $data['page_name'] = 'Subscription Details'; $customerModel = new CustomerModel(); $schemeModel = new SchemeModel(); $business_id = get_business_id(); // Get scheme names and durations from the SchemeModel $data['customers'] = $customerModel->getCustomerNamesByBusiness($business_id); $data['scheme_names'] = $schemeModel->getSchemeNamesAndDurationsByBusiness($business_id); //print_r($data);die(); $this->render_page('subscription_form', $data); } // Subscription Controller (Subscription.php) public function add_subscription() { helper('session'); $session_bid = get_business_id(); $session_uid = get_logged_user_id(); $SubscriptionModel = new SubscriptionModel(); $data = [ 'scheme_id' =>$this->request->getPost('scheme'), 'customer_id' =>$this->request->getPost('customer'), 'from_subscription' => $this->request->getPost('from_date'), 'to_subscription' => $this->request->getPost('to_date'), // 'type' => "subscribed customer", 'type' => "customer", 'mode' => $this->request->getPost('mode'), 'business_id'=>$session_bid ]; $SubscriptionModel->insert($data); // $data['subscriber'] = $subscriberModel->getAllSubscribersWithNames(); // print_r($data);die(); return redirect()->to('subscribers_list')->with('data', $data); } // Subscription.php (Controller) // public function download_details() // { // $selectedScheme = $this->request->getPost('selected_scheme'); // // Call the model method to get customer details for the selected scheme // $subscriptionModel = new SubscriptionModel(); // $business = $subscriptionModel->getCustomerAddressesBySchemeName($selectedScheme); // $shippingInfo = $subscriptionModel->getCustomerAddressesBySchemeName($selectedScheme, 2); // $customerName = $subscriptionModel->getCustomerNameBySchemeName($selectedScheme); // // Create an HTML content string using the view file (similar to print_addresses.php) // if ($customerName !== 'Customer not found') { // $html = view('print_addresses_form', ['customerName' => $customerName, 'shippingInfo' => $shippingInfo, 'business' => $business]); // // Generate a PDF from the HTML content // $pdf = new Mpdf(); // $pdf->WriteHTML($html); // // Set the PDF filename // $filename = 'CustomerDetails_' . date('YmdHis') . '.pdf'; // // Output the PDF for download // $pdf->Output($filename, 'D'); // } else { // // Handle the case where the customer is not found // echo 'Customer not found'; // } // } public function download_details() { $selectedSchemes = $this->request->getPost('selected_schemes'); $action = $this->request->getPost('action'); // Initialize an empty PDF with custom paper size (4x6 inches) $config = [ 'mode' => 'utf-8', 'format' => [101.6, 152.4], 'default_font_size' => 12, 'default_font' => 'Arial', 'margin_left' => 0, 'margin_right' => 0, 'margin_top' => 0, 'margin_bottom' => 0, 'margin_header' => 0, 'margin_footer' => 0, 'orientation' => 'P', // Portrait ]; $configA4 = [ 'mode' => 'utf-8', 'format' => [101.6 * 2, 152.4 * 4], // 2x4 inches for each label 'default_font_size' => 12, 'default_font' => 'Arial', 'margin_left' => 0, 'margin_right' => 0, 'margin_top' => 0, 'margin_bottom' => 0, 'margin_header' => 0, 'margin_footer' => 0, 'orientation' => 'P', // Portrait ]; if($action == 1) $pdf = new Mpdf($config); else $pdf = new Mpdf(); $customerDetails = []; // Iterate through selected schemes if (!empty($selectedSchemes)) { foreach ($selectedSchemes as $selectedScheme) { // Call the model method to get customer details for each selected scheme $subscriptionModel = new SubscriptionModel(); $details = $subscriptionModel->getAllCustomerDetailsBySchemeName($selectedScheme); $customerDetails = array_merge($customerDetails, $details); } if (!empty($customerDetails)) { $html = view('print_addresses_form', ['customerDetails' => $customerDetails , 'action' => $action , 'pdf' => $pdf]); // Add the current scheme's details to the PDF // echo $html;die; // $pdf->AddPage(); $pdf->WriteHTML($html); // Set the PDF filename $filename = 'CustomerDetails_' . date('YmdHis') . '.pdf'; // Output the PDF for download $pdf->Output($filename, 'D'); $this->logger->info("Print Addresses (Scheme) : Downloaded = ".$filename); } else { echo ""; $this->logger->info("Print Addresses (Scheme) : Details Not Available "); } } else { echo ""; $this->logger->info("Print Addresses (Scheme) : Schemes Not Choosen "); } } } // public function generate_pdf() // { // $schemeName = $this->request->getGet('scheme_name'); // // Call the model method to get the customer's name and address (billing or shipping) // $subscriptionModel = new SubscriptionModel(); // // For billing address // $billingInfo = $subscriptionModel->getCustomerAddressesBySchemeName($schemeName, 1); // // For shipping address // $shippingInfo = $subscriptionModel->getCustomerAddressesBySchemeName($schemeName, 2); // print_r($billingInfo); // print_r($shippingInfo); // // Handle the PDF generation using $billingInfo['customer_name'], $billingInfo['address'] (for billing address) // // and $shippingInfo['customer_name'], $shippingInfo['address'] (for shipping address) // }