<?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/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 = 20;
        $multi = 210;
        $picsetx = 150;
        $w = array(50, 80, 50, 80);
        $path = "../../../";

        $pdf = new FPDF('L', 'mm', 'A4');
        $pdf->SetMargins(0, 2, 0);

        $pdf->SetTitle('Invoice ' . $code . ' / Cash Memo');
        $pdf->AddPage();
        $pdf->Ln();
        $pdf->SetFont('Arial', 'B', 16);
        $pdf->Cell(0, 8, 'CASH MEMO', 0, 0, 'C');
        $pdf->Ln();
        $pdf->SetFont('Arial', '', 14);
        $pdf->Cell(0, 6, PROJECT_NAME, 0, 0, 'C');

        $pdf->Ln();
        $pdf->SetFont('Arial', 'B', 12);
        $pdf->Cell(100, 8, '', '');
        $pdf->Cell(100, 8, 'Contact us : ' . PROJECT_TEL, 'T', 0, 'C');
        $pdf->Cell(100, 8, '', '');
        $pdf->Ln();
        $pdf->SetFont('Arial', '', 12);
        $pdf->Cell(100, 8, '', '');
        $pdf->Cell(100, 6, PROJECT_EMAIL . " / " . PROJECT_WEBSITE, 'B', 0, 'C');
        $pdf->Cell(100, 8, '', '');

        $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(170, 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(225, 5, $customer_name . " " . $customer_address, 'B', 0, '');

        $pdf->Ln();
        $pdf->Ln();
        $pdf->SetX($setx);
        $header = array('S.No.', 'PARTICULARS', 'WEIGHT', 'QTY', 'RATE', 'AMOUNT');

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

        function FancyTable($header, $data, $discount)
        {
            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, 100, 35, 27, 30, 50);
            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;
            foreach ($data AS $row) {
                $productSetup = ProductSetup::GetProductSetupById($row->product_id);

                $pdf->SetX(20);
                $pdf->SetFont('Arial', '', 9);
                $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);
                $pdf->Cell($wr[3], 7, $row->product_qty, 'LRB', 0, 'R', $fill);
                $pdf->Cell($wr[4], 7, $row->unit_sale_price, 'LRB', 0, 'R', $fill);

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

                $pdf->Cell($wr[5], 7, number_format($subTotal, 2), 'LRB', 0, 'R', $fill);
                $pdf->Ln();
                $fill = !$fill;
                $count++;
				if($count==15){
					
					$pdf->SetX(20);
					$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, 'R');
					$pdf->Cell($wr[4], 7, '', '', 0, 'R', "");
					$pdf->Cell($wr[5], 7, '', '', 0, 'R', "");
					
					$pdf->Ln();
					$pdf->Ln();
					$pdf->Ln();
					$pdf->SetX(20);
					$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->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->Ln();
					$pdf->SetFont('Arial', 'B', 14);
					$pdf->Cell(100, 8, '', '');
					$pdf->Cell(100, 8, 'Contact us : ' . PROJECT_TEL, 'T', 0, 'C');
					$pdf->Cell(100, 8, '', '');
					$pdf->Ln();
					$pdf->SetFont('Arial', '', 14);
					$pdf->Cell(100, 8, '', '');
					$pdf->Cell(100, 6, PROJECT_EMAIL . " / " . PROJECT_WEBSITE, 'B', 0, 'C');
					$pdf->Cell(100, 8, '', '');
					$pdf->Ln();
					$pdf->Ln();
					
					$pdf->SetX(20);
					$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(20);
                $pdf->SetFont('Arial', '', 9);
                $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: '.$totalQty, 'LRB', 0, 'R');
                $pdf->Cell($wr[4], 7, 'Sub Total', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[5], 7, number_format($totalAmount, 2), 'LRB', 0, 'R', "");

                $pdf->Ln();

                $pdf->SetX(20);
                $pdf->SetFont('Arial', '', 9);
                $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, 'Discount (%)', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[5], 7, number_format($discount, 2), 'LRB', 0, 'R', "");

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

                $pdf->Ln();

                $pdf->SetX(20);
                $pdf->SetFont('Arial', '', 9);
                $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, 'Discount (price)', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[5], 7, number_format($discountAmount, 2), 'LRB', 0, 'R', "");

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

                $pdf->SetX(20);
                $pdf->SetFont('Arial', '', 9);
                $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, 'Total Amount', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[5], 7, number_format($totalAmount, 2), 'LRB', 0, 'R', "");
				
				$pdf->Ln();
				$pdf->SetX(20);
				$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', "");

                
            } else {
                //$pdf->SetFillColor(255, 204, 0);
                $pdf->SetX(20);
                $pdf->SetFont('Arial', '', 9);
                $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: '.$totalQty, 'LRB', 0, 'R');
                $pdf->Cell($wr[4], 7, 'Total Amount', 'LRB', 0, 'R', "");
                $pdf->Cell($wr[5], 7, number_format($totalAmount, 2), 'LRB', 0, 'R', "");

                $pdf->Ln();
                $pdf->Ln();
                $pdf->SetX(20);
                $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', "");
            }
        }

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

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