<?php
error_reporting('E_ALL');
ini_set('display_errors', '1');
try {

    if (!isset($_REQUEST['id'])) {
        header('location: ../../index.php');
        exit;
    } else {
        $id = $_GET['id'];
    }

    include_once('../../../classes/manager.class.php');
    include_once('../../../classes/PHPMailer/PHPMailerAutoload.php');
    include_once('../../../fpdf/fpdf1New.php');


    $m = new Manager();

    $param_data = ControlConfifguration::GetConfiguration();
    define('PROJECT_NAME', $param_data->name);
    define('PROJECT_ADDRESS', $param_data->address);
    define('PROJECT_TEL', $param_data->contact);
    define('PROJECT_EMAIL', $param_data->email);
    define('PROJECT_WEBSITE', $param_data->website);
    define('PROJECT_COLOR', $param_data->color);
    define('PROJECT_DISCOUNT', $param_data->is_discount);
    define('PROJECT_TAX', $param_data->is_tax);
    define('PROJECT_NTN', $param_data->ntn);
    define('PROJECT_STRN', $param_data->strn);

    $invoice = Invoice::GetInvoiceSetupById($id);
    if (!empty($invoice)) {
        $invoice_id = $invoice->id;
        $create_date = $invoice->create_date;
        $code = $invoice->code;
        $customer_id = $invoice->customer_id;
        $discount = $invoice->discount;
        $discount_price = $invoice->discount_price;
        $tax = $invoice->tax;
        $tax_price = $invoice->tax_price;

        $customer = CustomerSetup::GetCustomerSetupById($customer_id);
        $customer_name = $customer->name;
        $customer_address = $customer->location;
        $customer_ntn = $customer->ntn;
        $customer_strn = $customer->strn;
        $customer_no = $customer->code."-".$customer->id;

        $font = 10;
        $picx = 100;
        $setx = 10;
        $multi = 180;
        $picsetx = 150;
        $w = array(30, 60, 30, 60);
        $path = "../../../";

        //$pdf = new FPDF('P', 'mm', array('8.5','11'));

        $pdf = new FPDF('P', 'mm', 'legal');
        $pdf->SetMargins(0, 15, 0);

        $pdf->SetTitle('Invoice ' . $code . ' / Cash Memo');
        $pdf->AddPage();
        $pdf->Ln();
        $pdf->SetFont('Arial', 'B', 12);
        $pdf->Cell(50, 5, '', '');
        $pdf->Cell(153, 5, PROJECT_NAME, '', 0, 'L');

        $pdf->Ln();
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(50, 5, '', '');
        $pdf->Cell(10, 5, 'NTN: '.PROJECT_NTN, '', 0, 'L');

        $pdf->Ln();
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(50, 5, '', '');
        $pdf->Cell(10, 5, "STRN: ".PROJECT_STRN, '', 0, 'L');

        $pdf->Ln();
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(50, 5, '', '');
        $pdf->Cell(92, 5, 'Contact Person : MUHAMMAD ASIF HUSSAIN - 0300-2219949' , '', 0, 'L');

        $pdf->Ln();
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(50, 5, '', '');
        $pdf->Cell(63, 5, 'Alternate Number : ' . PROJECT_TEL, '', 0, 'L');

        $pdf->Ln();
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(50, 5, '', '');
        $pdf->Cell(58, 5, PROJECT_EMAIL . " / " . PROJECT_WEBSITE, '', 0, 'L');

        $pdf->Ln();
        $pdf->SetX($setx);
        $pdf->SetFont('Arial', 'B', 8);
        $pdf->Cell(45, 5, '', 'B', '');
        $pdf->Cell(105, 5, '', 'B', 0, 'L');
        $pdf->Cell(45, 5, 'SALES TAX INVOICE', 'BTLR', 0, 'C');

        $pdf->Ln();
        $pdf->SetX($setx);
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(23, 4, 'Name', 0, 0, '');
        $pdf->Cell(32, 4, $customer_name, '', 0, '');
        $pdf->Cell(105, 4, '', '');
        $pdf->Cell(15, 4, 'Invoice No.', 0, 0, '');
        $pdf->Cell(20, 4, $code, '', 0, '');

        $pdf->Ln();
        $pdf->SetX($setx);
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(82, 4, 'NTN#:    '.$customer_ntn, 0, 0, '');
        $pdf->Cell(78, 4, '', '');
        $pdf->Cell(15, 4, 'Dated', 0, 0, '');
        $pdf->Cell(20, 4, date('d-m-Y', strtotime($create_date)), '', 0, '');

        $pdf->Ln();
        $pdf->SetX($setx);
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(82, 4, 'STRN#:    '.$customer_strn, 0, 0, '');
        $pdf->Cell(78, 4, '', '');
        $pdf->Cell(15, 4, '', 0, 0, '');
        $pdf->Cell(20, 4, '', '', 0, '');

        $pdf->Ln();
        $pdf->SetX($setx);
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(23, 4, 'Customer no. : ', 0, 0, '');
        $pdf->Cell(172, 4, $customer_no, '', 0, '');

        $pdf->Ln();
        $pdf->SetX($setx);
        $pdf->SetFont('Arial', '', 8);
        $pdf->Cell(23, 4, 'Address : ', 0, 0, '');
        $pdf->Cell(172, 4, $customer_address, '', 0, '');

        $pdf->Ln();
        $pdf->Ln();
        $pdf->SetX($setx);
        if(!empty($discount)){
            $header = array('S.No.', 'PARTICULARS', 'WEIGHT', 'CARTON', 'QTY', 'TP RATE', 'AMOUNT');
        }else{
            $header = array('S.No.', 'PARTICULARS', 'WEIGHT', 'CARTON', 'QTY', 'NET RATE', 'AMOUNT');
        }

        $filterProductInvoice = " WHERE invoice_id = '$invoice_id'";
        $productData = Invoice::GetInvoiceProducts($filterProductInvoice);

        function FancyTable($header, $data, $discount, $setx, $tax, $tax_add)
        {
            global $pdf;
            // Colors, line width and bold font
            $pdf->SetFillColor(224, 235, 255);
            $pdf->SetTextColor(0);
            $pdf->SetDrawColor(128, 0, 0);
            $pdf->SetLineWidth(.3);
            $pdf->SetFont('', 'B');
            // Header
            $wr = array(13, 60, 20, 21, 25, 28, 28);
            for ($i = 0; $i < count($header); $i++)
                $pdf->Cell($wr[$i], 7, $header[$i], 1, 0, 'C', true);
            $pdf->Ln();
            // Color and font restoration
            $pdf->SetFillColor(224, 235, 255);
            $pdf->SetTextColor(0);
            $pdf->SetFont('');
            // Data
            $fill = false;

            $count = 1;
            $totalAmount = 0;
            $totalCarton = 0;
            if($data){
                $totalQty = 0;
                foreach ($data AS $row) {
                    $productSetup = ProductSetup::GetProductSetupById($row->product_id);

                    $pdf->SetX($setx);
                    $pdf->SetFont('Arial', '', 11);
                    $pdf->Cell($wr[0], 7, $count, 'LRB', 0, 'C', $fill);
                    $pdf->Cell($wr[1], 7, $productSetup->name, 'LRB', 0, 'L', $fill);
                    $pdf->Cell($wr[2], 7, $productSetup->weight . " " . $productSetup->unit, 'LRB', 0, 'R', $fill);
                    $totalCarton += ($row->carton_piece != 0?(number_format(($row->product_qty / $row->carton_piece),0)):0);
                    $pdf->Cell($wr[3], 7, ($row->carton_piece != 0?(number_format(($row->product_qty / $row->carton_piece),0)):"-"), 'LRB', 0, 'R', $fill);
                    $pdf->Cell($wr[4], 7, $row->product_qty, 'LRB', 0, 'R', $fill);
                    $pdf->Cell($wr[5], 7, $row->unit_sale_price, 'LRB', 0, 'R', $fill);

                    $subTotal = ($row->product_qty * $row->unit_sale_price);

                    $pdf->Cell($wr[6], 7, number_format($subTotal, 2), 'LRB', 0, 'R', $fill);
                    $pdf->Ln();
                    $fill = !$fill;
                    $count++;
                    if($count==35){

                        $pdf->SetX($setx);
                        $pdf->SetFont('Arial', '', 9);
                        $pdf->Cell($wr[1], 7, "Goods once sold will not be back or exchanged", '', 0, 'L');
                        $pdf->Cell($wr[2], 7, "", '', 0, 'C');
                        $pdf->Cell($wr[3], 7, "", '', 0, 'C');
                        $pdf->Cell($wr[4], 7, '', '', 0, 'R');
                        $pdf->Cell($wr[5], 7, '', '', 0, 'R', "");
                        $pdf->Cell($wr[6], 7, '', '', 0, 'R', "");

                        $pdf->Ln();
                        $pdf->Ln();
                        $pdf->Ln();
                        $pdf->SetX($setx);
                        $pdf->SetFont('Arial', '', 9);
                        $pdf->Cell($wr[1], 7, "Signature's", 'T', 0, 'C');
                        $pdf->Cell($wr[2], 7, "", '', 0, 'C');
                        $pdf->Cell($wr[3], 7, "", '', 0, 'C');
                        $pdf->Cell($wr[4], 7, '', '', 0, 'R');
                        $pdf->Cell($wr[5], 7, '', '', 0, 'R', "");
                        $pdf->Cell($wr[6], 7, '', '', 0, 'R', "");

                        $pdf->AddPage();
                        $pdf->SetFont('Arial', 'B', 18);
                        $pdf->Cell(0, 8, 'CASH MEMO', 0, 0, 'C');
                        $pdf->Ln();
                        $pdf->SetFont('Arial', '', 16);
                        $pdf->Cell(0, 6, PROJECT_NAME, 0, 0, 'C');

                        $pdf->Ln();
                        $pdf->SetFont('Arial', 'B', 10);
                        $pdf->Cell(55, 8, '', '');
                        $pdf->Cell(105, 8, 'Contact Person : MUHAMMAD ASIF HUSSAIN - 0300-2219949' , 'TLR', 0, 'C');
                        $pdf->Cell(50, 8, '', '');

                        $pdf->Ln();
                        $pdf->SetFont('Arial', '', 10);
                        $pdf->Cell(55, 8, '', '');
                        $pdf->Cell(105, 8, 'Alternate Number : ' . PROJECT_TEL, 'TLR', 0, 'C');
                        $pdf->Cell(50, 8, '', '');

                        $pdf->Ln();
                        $pdf->SetFont('Arial', '', 10);
                        $pdf->Cell(55, 8, '', '');
                        $pdf->Cell(105, 6, PROJECT_EMAIL . " / " . PROJECT_WEBSITE, 'BLR', 0, 'C');
                        $pdf->Cell(50, 8, '', '');

                        $pdf->Ln();
                        $pdf->Ln();

                        $pdf->SetX($setx);
                        $pdf->SetFont('Arial', 'B', 10);
                        for ($i = 0; $i < count($header); $i++)
                            $pdf->Cell($wr[$i], 7, $header[$i], 1, 0, 'C', true);
                        $pdf->Ln();
                    }
                    $totalAmount += $subTotal;
                    $totalQty += $row->product_qty;
                }
            }

            if (PROJECT_DISCOUNT == 1 && !empty($discount)) {
                $pdf->SetX($setx);
                $pdf->SetFont('Arial', '', 11);
                $pdf->Cell($wr[0], 7, 'Goods once sold will not be back or exchanged', '', 0, 'L');
                $pdf->Cell($wr[1], 7, '', '', 0, 'L');
                $pdf->Cell($wr[2], 7, '', '', 0, 'R');
                $pdf->Cell($wr[3], 7, 'Total: '.$totalCarton, 'LRB', 0, 'R');
                $pdf->Cell($wr[4], 7, 'Total: '.$totalQty, 'LRB', 0, 'R');
                $pdf->Cell($wr[5], 7, 'Sub Total', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[6], 7, number_format($totalAmount, 2), 'LRB', 0, 'R', "");

                $pdf->Ln();


//                $pdf->SetX($setx);
//                $pdf->SetFont('Arial', '', 11);
//                $pdf->Cell($wr[0], 7, '', '', 0, 'L');
//                $pdf->Cell($wr[1], 7, '', '', 0, 'L');
//                $pdf->Cell($wr[2], 7, '', '', 0, 'R');
//                $pdf->Cell($wr[3], 7, '', '', 0, 'R');
//                $pdf->Cell($wr[4], 7, '', '', 0, 'R');
//                $pdf->Cell($wr[5], 7, 'Discount (%)', 'LRB', 0, 'R', "");
//                $pdf->Cell($wr[6], 7, number_format($discount, 2), 'LRB', 0, 'R', "");

                $discountAmount = ($totalAmount *($discount/100));

//                $pdf->Ln();

                $pdf->SetX($setx);
                $pdf->SetFont('Arial', '', 11);
                $pdf->Cell($wr[0], 7, '', '', 0, 'L');
                $pdf->Cell($wr[1], 7, '', '', 0, 'L');
                $pdf->Cell($wr[2], 7, '', '', 0, 'R');
                $pdf->Cell($wr[3], 7, '', '', 0, 'R');
                $pdf->Cell($wr[4], 7, '', 'LB', 0, 'R');
                $pdf->Cell($wr[5], 7, 'Total Discount '.number_format($discount, 2).'%', 'RB', 0, 'R', "");
                $pdf->Cell($wr[6], 7, number_format($discountAmount, 2), 'LRB', 0, 'R', "");

                $pdf->Ln();
                $totalAmount -= $discountAmount;

                if (PROJECT_TAX == 1 && !empty($tax)) {
                    $pdf->SetX($setx);
                    $pdf->SetFont('Arial', '', 11);

                    $pdf->Cell($wr[0], 7, '', '', 0, 'L');
                    $pdf->Cell($wr[1], 7, '', '', 0, 'L');
                    $pdf->Cell($wr[2], 7, '', '', 0, 'R');
                    $pdf->Cell($wr[3], 7, '', '', 0, 'R');
                    $pdf->Cell($wr[4], 7, '', 'LB', 0, 'R');
                    $pdf->Cell($wr[5], 7, 'Total Exc. Sales Tax ', 'RB', 0, 'R', "");
                    $pdf->Cell($wr[6], 7, number_format($totalAmount, 2), 'LRB', 0, 'R', "");

                    $taxAmount = ($totalAmount *($tax/100));
                    if($tax_add == 1){
                        $totaltaxAmount = $totalAmount + $taxAmount;
                        $taxaddsign = "(+)";
                    }else{
                        $totaltaxAmount = $totalAmount - $taxAmount;
                        $taxaddsign = "(-)";
                    }

                    $pdf->Ln();

                    $pdf->SetX($setx);
                    $pdf->SetFont('Arial', '', 11);
                    $pdf->Cell($wr[0], 7, '', '', 0, 'L');
                    $pdf->Cell($wr[1], 7, '', '', 0, 'L');
                    $pdf->Cell($wr[2], 7, '', '', 0, 'R');
                    $pdf->Cell($wr[3], 7, '', '', 0, 'R');
                    $pdf->Cell($wr[4], 7, '', 'LB', 0, 'R');
                    $pdf->Cell($wr[5], 7, 'Total Sales Tax '.number_format($tax, 2).'% '.$taxaddsign, 'RB', 0, 'R', "");
                    $pdf->Cell($wr[6], 7, number_format($taxAmount, 2), 'LRB', 0, 'R', "");

                    $pdf->Ln();

                    $pdf->SetX($setx);
                    $pdf->SetFont('Arial', '', 11);
                    $pdf->Cell($wr[0], 7, '', '', 0, 'L');
                    $pdf->Cell($wr[1], 7, '', '', 0, 'L');
                    $pdf->Cell($wr[2], 7, '', '', 0, 'R');
                    $pdf->Cell($wr[3], 7, '', '', 0, 'R');
                    $pdf->Cell($wr[4], 7, '', 'LB', 0, 'R');
                    $pdf->Cell($wr[5], 7, 'Total Amount', 'RB', 0, 'R', "");
                    $pdf->Cell($wr[6], 7, number_format($totaltaxAmount, 2), 'LRB', 0, 'R', "");

                    $pdf->Ln();
                }

                if (PROJECT_TAX != 1 && empty($tax)) {

                    $pdf->SetX($setx);
                    $pdf->SetFont('Arial', '', 11);
                    $pdf->Cell(($wr[1]+13), 7, "", '', 0, 'C');
                    $pdf->Cell($wr[2], 7, "", '', 0, 'C');
                    $pdf->Cell($wr[3], 7, '', '', 0, 'R');
                    $pdf->Cell($wr[4], 7, '', 'LB', 0, 'R');
                    $pdf->Cell($wr[5], 7, 'Total Amount', 'RB', 0, 'R', "");
                    $pdf->Cell($wr[6], 7, number_format($totalAmount, 2), 'LRB', 0, 'R', "");
                }

                $pdf->Ln();
                $pdf->SetX($setx);
                $pdf->SetFont('Arial', '', 9);
                $pdf->Cell($wr[1], 7, "Signature's", 'T', 0, 'C');
                $pdf->Cell($wr[2], 7, "", '', 0, 'C');
                $pdf->Cell($wr[3], 7, '', '', 0, 'R');
                $pdf->Cell($wr[4], 7, '', '', 0, 'R');
                $pdf->Cell($wr[5], 7, '', '', 0, 'R', "");
                $pdf->Cell($wr[6], 7, '', '', 0, 'R', "");


            } else {
                //$pdf->SetFillColor(255, 204, 0);
                $pdf->SetX($setx);
                $pdf->SetFont('Arial', '', 11);
                $pdf->Cell($wr[0], 7, 'Goods once sold will not be back or exchanged', '', 0, 'L');
                $pdf->Cell($wr[1], 7, '', '', 0, 'L');
                $pdf->Cell($wr[2], 7, "", '', 0, 'R');
                $pdf->Cell($wr[3], 7, 'Total: '.$totalCarton, 'LRB', 0, 'R');
                $pdf->Cell($wr[4], 7, 'Total: '.$totalQty, 'LRB', 0, 'R');
                $pdf->Cell($wr[5], 7, 'Total Amount', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[6], 7, number_format($totalAmount, 2), 'LRB', 0, 'R', "");

                $pdf->Ln();
                $pdf->Ln();
                $pdf->Ln();
                $pdf->Ln();
                $pdf->SetX($setx);
                $pdf->SetFont('Arial', '', 9);
                $pdf->Cell($wr[1], 7, "Signature's", 'T', 0, 'C');
                $pdf->Cell($wr[2], 7, "", '', 0, 'C');
                $pdf->Cell($wr[3], 7, '', '', 0, 'R');
                $pdf->Cell($wr[4], 7, '', '', 0, 'R');
                $pdf->Cell($wr[5], 7, '', '', 0, 'R', "");
                $pdf->Cell($wr[6], 7, '', '', 0, 'R', "");
            }
        }

        FancyTable($header, $productData, $discount, $setx, $tax, $tax_add);
    } else {
        header('location: ' . PROJECT_ADMIN_URL);
        exit;
    }

    $pdf->Output();
    ob_end_flush();
    exit;
} catch (Exception $e) {
    echo $e->getMessage();
}
?>