示例#1
0
 public function invoice($invoice_id)
 {
     if (!$this->mailer_configured) {
         return;
     }
     $this->load->model('invoices/mdl_templates');
     $this->load->model('invoices/mdl_invoices');
     $this->load->model('email_templates/mdl_email_templates');
     $this->load->helper('template');
     $invoice = $this->mdl_invoices->where('ip_invoices.invoice_id', $invoice_id)->get()->row();
     $email_template_id = select_email_invoice_template($invoice);
     if ($email_template_id) {
         $email_template = $this->mdl_email_templates->where('email_template_id', $email_template_id)->get();
         $this->layout->set('email_template', json_encode($email_template->row()));
     } else {
         $this->layout->set('email_template', '{}');
     }
     $this->layout->set('selected_pdf_template', select_pdf_invoice_template($invoice));
     $this->layout->set('selected_email_template', $email_template_id);
     $this->layout->set('email_templates', $this->mdl_email_templates->where('email_template_type', 'invoice')->get()->result());
     $this->layout->set('invoice', $invoice);
     $this->layout->set('pdf_templates', $this->mdl_templates->get_invoice_templates());
     $this->layout->buffer('content', 'mailer/invoice');
     $this->layout->render();
 }
示例#2
0
function generate_invoice_pdf($invoice_id, $stream = TRUE, $invoice_template = NULL,$isGuest = NULL)
{
    $CI = &get_instance();

    $CI->load->model('invoices/mdl_invoices');
    $CI->load->model('invoices/mdl_items');
    $CI->load->model('invoices/mdl_invoice_tax_rates');
    $CI->load->model('payment_methods/mdl_payment_methods');
    $CI->load->library('encrypt');

    $invoice = $CI->mdl_invoices->get_by_id($invoice_id);
    if (!$invoice_template) {
        $CI->load->helper('template');
        $invoice_template = select_pdf_invoice_template($invoice);
    }

    $payment_method = $CI->mdl_payment_methods->where('payment_method_id', $invoice->payment_method)->get()->row();
    if ($invoice->payment_method == 0) $payment_method = NULL;

    $data = array(
        'invoice' => $invoice,
        'invoice_tax_rates' => $CI->mdl_invoice_tax_rates->where('invoice_id', $invoice_id)->get()->result(),
        'items' => $CI->mdl_items->where('invoice_id', $invoice_id)->get()->result(),
        'payment_method' => $payment_method,
        'output_type' => 'pdf'
    );

    $html = $CI->load->view('invoice_templates/pdf/' . $invoice_template, $data, TRUE);

    $CI->load->helper('mpdf');
    return pdf_create($html, lang('invoice') . '_' . str_replace(array('\\', '/'), '_', $invoice->invoice_number), $stream, $invoice->invoice_password,1,$isGuest);
}
示例#3
0
function generate_invoice_pdf($invoice_id, $stream = TRUE, $invoice_template = NULL, $isGuest = NULL)
{
    $CI =& get_instance();
    $CI->load->model('invoices/mdl_invoices');
    $CI->load->model('invoices/mdl_items');
    $CI->load->model('invoices/mdl_invoice_tax_rates');
    $CI->load->model('payment_methods/mdl_payment_methods');
    $CI->load->helper('country');
    $invoice = $CI->mdl_invoices->get_by_id($invoice_id);
    if (!$invoice_template) {
        $CI->load->helper('template');
        $invoice_template = select_pdf_invoice_template($invoice);
    }
    $payment_method = $CI->mdl_payment_methods->where('payment_method_id', $invoice->payment_method)->get()->row();
    if ($invoice->payment_method == 0) {
        $payment_method = false;
    }
    // Determine if discounts should be displayed
    $items = $CI->mdl_items->where('invoice_id', $invoice_id)->get()->result();
    $show_discounts = false;
    foreach ($items as $item) {
        if ($item->item_discount != '0.00') {
            $show_discounts = true;
        }
    }
    $data = array('invoice' => $invoice, 'invoice_tax_rates' => $CI->mdl_invoice_tax_rates->where('invoice_id', $invoice_id)->get()->result(), 'items' => $items, 'payment_method' => $payment_method, 'output_type' => 'pdf', 'show_discounts' => $show_discounts);
    $html = $CI->load->view('invoice_templates/pdf/' . $invoice_template, $data, TRUE);
    $CI->load->helper('mpdf');
    return pdf_create($html, lang('invoice') . '_' . str_replace(array('\\', '/'), '_', $invoice->invoice_number), $stream, $invoice->invoice_password, 1, $isGuest);
}
示例#4
0
 public function invoice($invoice_id)
 {
     if ($this->mailer_configured == TRUE) {
         if ($this->input->post('btn_send')) {
             $from = $this->input->post('from_name') ? array($this->input->post('from_email'), $this->input->post('from_name')) : $this->input->post('from_email');
             $invoice_template = $this->input->post('invoice_template');
             $to = $this->input->post('to_email');
             $subject = $this->input->post('subject');
             $body = $this->input->post('body') ?: ' ';
             $cc = $this->input->post('to_cc');
             $bcc = $this->input->post('to_bcc');
             if (email_invoice($invoice_id, $invoice_template, $from, $to, $subject, $body, $cc, $bcc)) {
                 $this->mdl_invoices->mark_sent($invoice_id);
                 $this->session->set_flashdata('alert_success', lang('email_successfully_sent'));
                 redirect('dashboard');
             } else {
                 redirect('mailer/invoice/' . $invoice_id);
             }
         }
         $this->load->model('invoices/mdl_templates');
         $this->load->model('invoices/mdl_invoices');
         $this->load->model('email_templates/mdl_email_templates');
         $invoice = $this->mdl_invoices->where('fi_invoices.invoice_id', $invoice_id)->get()->row();
         $this->load->helper('template');
         $selected_pdf_template = select_pdf_invoice_template($invoice);
         $selected_email_template = select_email_invoice_template($invoice);
         if ($selected_email_template) {
             $email_template = $this->mdl_email_templates->where('email_template_id', $selected_email_template)->get();
             if ($email_template->num_rows()) {
                 $this->layout->set('body', $email_template->row()->email_template_body);
             } else {
                 $this->layout->set('body', '');
             }
         } else {
             $this->layout->set('body', '');
         }
         $this->layout->set('selected_pdf_template', $selected_pdf_template);
         $this->layout->set('selected_email_template', $selected_email_template);
         $this->layout->set('email_templates', $this->mdl_email_templates->get()->result());
         $this->layout->set('invoice', $invoice);
         $this->layout->set('invoice_templates', $this->mdl_templates->get_invoice_templates());
         $this->layout->buffer('content', 'mailer/invoice');
         $this->layout->render();
     } else {
         $this->layout->buffer('content', 'mailer/not_configured');
         $this->layout->render();
     }
 }
示例#5
0
function generate_invoice_pdf($invoice_id, $stream = TRUE, $invoice_template = NULL)
{
    $CI =& get_instance();
    $CI->load->model('invoices/mdl_invoices');
    $CI->load->model('invoices/mdl_items');
    $CI->load->model('invoices/mdl_invoice_tax_rates');
    $invoice = $CI->mdl_invoices->get_by_id($invoice_id);
    if (!$invoice_template) {
        $CI->load->helper('template');
        $invoice_template = select_pdf_invoice_template($invoice);
    }
    $data = array('invoice' => $invoice, 'invoice_tax_rates' => $CI->mdl_invoice_tax_rates->where('invoice_id', $invoice_id)->get()->result(), 'items' => $CI->mdl_items->where('invoice_id', $invoice_id)->get()->result(), 'output_type' => 'pdf');
    $html = $CI->load->view('invoice_templates/pdf/' . $invoice_template, $data, TRUE);
    $CI->load->helper('mpdf');
    return pdf_create($html, lang('invoice') . '_' . str_replace(array('\\', '/'), '_', $invoice->invoice_number), $stream);
}
function generate_invoice_pdf($invoice_id, $stream = TRUE, $invoice_template = NULL, $isGuest = NULL)
{
    $CI =& get_instance();
    $CI->load->model('invoices/mdl_invoices');
    $CI->load->model('invoices/mdl_items');
    $CI->load->model('invoices/mdl_invoice_tax_rates');
    $CI->load->model('payment_methods/mdl_payment_methods');
    $CI->load->model('tax_rates/mdl_tax_rates');
    $CI->load->library('encrypt');
    $invoice = $CI->mdl_invoices->get_by_id($invoice_id);
    if (!$invoice_template) {
        $CI->load->helper('template');
        $invoice_template = select_pdf_invoice_template($invoice);
    }
    $payment_method = $CI->mdl_payment_methods->where('payment_method_id', $invoice->payment_method)->get()->row();
    if ($invoice->payment_method == 0) {
        $payment_method = NULL;
    }
    if ($CI->mdl_settings->setting('default_language') == 'polish') {
        $grosze = substr($invoice->invoice_balance, strrpos($invoice->invoice_balance, '.') + 1);
        $balance_in_words = 'Słownie: ' . DeskdooUtils::slownie(floor($invoice->invoice_balance)) . ' ' . (int) $grosze . '/100';
    } else {
        $balance_in_words = '';
    }
    $items = $CI->mdl_items->get_items_and_replace_vars($invoice_id, $invoice->invoice_date_created);
    foreach ($items as $item) {
        if (empty($taxes_subtotal['total'][$item->item_tax_rate_id])) {
            $taxes_subtotal['total'][$item->item_tax_rate_id] = 0;
            $taxes_subtotal['netto'][$item->item_tax_rate_id] = 0;
            $taxes_subtotal['brutto'][$item->item_tax_rate_id] = 0;
        }
        $taxes_subtotal['total'][$item->item_tax_rate_id] += $item->item_tax_total;
        $taxes_subtotal['netto'][$item->item_tax_rate_id] += $item->item_subtotal - $item->item_discount;
        $taxes_subtotal['brutto'][$item->item_tax_rate_id] += $item->item_total;
    }
    $data = array('balance_in_words' => $balance_in_words, 'invoice' => $invoice, 'invoice_tax_rates' => $CI->mdl_invoice_tax_rates->where('invoice_id', $invoice_id)->get()->result(), 'tax_rates' => $CI->mdl_tax_rates->get_tax_rates(), 'tax_subtotal' => $taxes_subtotal, 'items' => $items, 'payment_method' => $payment_method, 'output_type' => 'pdf');
    $html = $CI->load->view('invoice_templates/pdf/' . $invoice_template, $data, TRUE);
    $CI->load->helper('mpdf');
    return pdf_create($html, lang('invoice') . '_' . str_replace(array('\\', '/'), '_', $invoice->invoice_number), $stream, $invoice->invoice_password, 1, $isGuest);
}
function generate_invoice_pdf($invoice_id, $stream = true, $invoice_template = null, $isGuest = null)
{
    $CI =& get_instance();
    $CI->load->model('invoices/mdl_invoices');
    $CI->load->model('invoices/mdl_items');
    $CI->load->model('invoices/mdl_invoice_tax_rates');
    $CI->load->model('payment_methods/mdl_payment_methods');
    $CI->load->helper('country');
    $invoice = $CI->mdl_invoices->get_by_id($invoice_id);
    if (!$invoice_template) {
        $CI->load->helper('template');
        $invoice_template = select_pdf_invoice_template($invoice);
    }
    $payment_method = $CI->mdl_payment_methods->where('payment_method_id', $invoice->payment_method)->get()->row();
    if ($invoice->payment_method == 0) {
        $payment_method = false;
    }
    // Determine if discounts should be displayed
    $items = $CI->mdl_items->where('invoice_id', $invoice_id)->get()->result();
    $show_discounts = false;
    foreach ($items as $item) {
        if ($item->item_discount != '0.00') {
            $show_discounts = true;
        }
    }
    // PDF associated files
    $include_zugferd = $CI->mdl_settings->setting('include_zugferd');
    if ($include_zugferd) {
        $CI->load->helper('zugferd');
        $associatedFiles = array(array('name' => 'ZUGFeRD-invoice.xml', 'description' => 'ZUGFeRD Invoice', 'AFRelationship' => 'Alternative', 'mime' => 'text/xml', 'path' => generate_invoice_zugferd_xml_temp_file($invoice, $items)));
    } else {
        $associatedFiles = null;
    }
    $data = array('invoice' => $invoice, 'invoice_tax_rates' => $CI->mdl_invoice_tax_rates->where('invoice_id', $invoice_id)->get()->result(), 'items' => $items, 'payment_method' => $payment_method, 'output_type' => 'pdf', 'show_discounts' => $show_discounts);
    $html = $CI->load->view('invoice_templates/pdf/' . $invoice_template, $data, true);
    $CI->load->helper('mpdf');
    return pdf_create($html, trans('invoice') . '_' . str_replace(array('\\', '/'), '_', $invoice->invoice_number), $stream, $invoice->invoice_password, 1, $isGuest, $include_zugferd, $associatedFiles);
}