<?php
error_reporting(E_ALL);
ini_set('display_errors', '0');
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/fpdf1.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);

    $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;

        $customer = CustomerSetup::GetCustomerSetupById($customer_id);
        $customer_name = $customer->name;
        $customer_address = $customer->location;

        $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 . ' / INVOICE');
        $pdf->AddPage();
        $pdf->Ln();
        $pdf->SetFont('Arial', 'B', 16);
        $pdf->Cell(0, 8, 'INVOICE', 0, 0, 'C');
        $pdf->Ln();
        $pdf->SetFont('Arial', '', 14);
        $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', '', 10);
        $pdf->Cell(10, 4, 'No. : ', 0, 0, '');
        $pdf->Cell(30, 4, $code, 'B', 0, '');
        $pdf->Cell(110, 4, '', '');
        $pdf->Cell(15, 4, 'Dated : ', 0, 0, '');
        $pdf->Cell(30, 4, date('d-m-Y', strtotime($create_date)), 'B', 0, 'R');

        $pdf->Ln();
        $pdf->Ln();
        $pdf->SetX($setx);
        $pdf->SetFont('Arial', '', 10);
        $pdf->Cell(30, 5, 'Name & Address : ', 0, 0, '');
        $pdf->Cell(165, 5, $customer_name . " " . $customer_address, 'B', 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)
        {
            global $pdf;
            // Colors, line width and bold font
            $pdf->SetFillColor(224, 235, 255);
            $pdf->SetTextColor(0);
            $pdf->SetDrawColor(0, 0, 0);
            $pdf->SetLineWidth(.2);
            $pdf->SetFont('', 'B');
            // Header
            $wr = array(13, 65, 20, 21, 20, 28, 28);
            for ($i = 0; $i < count($header); $i++)
                $pdf->Cell($wr[$i], 9, $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', '', 12);
                    $pdf->Cell($wr[0], 9, $count, 'LRB', 0, 'C', $fill);
                    $pdf->Cell($wr[1], 9, $productSetup->name, 'LRB', 0, 'L', $fill);
                    $pdf->Cell($wr[2], 9, $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], 9, ($row->carton_piece != 0?(number_format(($row->product_qty / $row->carton_piece),0)):"-"), 'LRB', 0, 'R', $fill);
                    $pdf->Cell($wr[4], 9, $row->product_qty, 'LRB', 0, 'R', $fill);
                    $pdf->Cell($wr[5], 9, $row->unit_sale_price, 'LRB', 0, 'R', $fill);

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

                    $pdf->Cell($wr[6], 9, 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], 9, "Goods once sold will not be back or exchanged", '', 0, 'L');
                        $pdf->Cell($wr[2], 9, "", '', 0, 'C');
                        $pdf->Cell($wr[3], 9, "", '', 0, 'C');
                        $pdf->Cell($wr[4], 9, '', '', 0, 'R');
                        $pdf->Cell($wr[5], 9, '', '', 0, 'R', "");
                        $pdf->Cell($wr[6], 9, '', '', 0, 'R', "");

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

                        $pdf->AddPage();
                        $pdf->SetFont('Arial', 'B', 18);
                        $pdf->Cell(0, 8, 'INVOICE', 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], 9, $header[$i], 1, 0, 'C', true);
                        $pdf->Ln();
                    }
                    $totalAmount += $subTotal;
                    $totalQty += $row->product_qty;
                }
            }

            if (PROJECT_DISCOUNT == 1 && !empty($discount)) {
//                $pdf->Ln();
                $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, $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', '', 10.5);
                $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 (price)', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[6], 7, number_format($discountAmount, 2), 'LRB', 0, 'R', "");

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

                $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, '', '', 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->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->Ln();
                $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, $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);
    } else {
        header('location: ' . PROJECT_ADMIN_URL);
        exit;
    }

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