Merge branch '515-cmb-create-new-pdf-file' into '488-cmb-live'
Resolve "CMB - create new pdf file" See merge request jankstudio/resq!595
BIN
public/assets/images/pdf_images/100x100.png
Normal file
|
After Width: | Height: | Size: 255 B |
|
After Width: | Height: | Size: 279 B |
BIN
public/assets/images/pdf_images/120x120-qr-codes.png
Normal file
|
After Width: | Height: | Size: 301 B |
|
After Width: | Height: | Size: 499 B |
|
After Width: | Height: | Size: 429 B |
|
After Width: | Height: | Size: 492 B |
|
After Width: | Height: | Size: 495 B |
BIN
public/assets/images/pdf_images/90.png
Normal file
|
After Width: | Height: | Size: 276 B |
BIN
public/assets/images/pdf_images/95.png
Normal file
|
After Width: | Height: | Size: 258 B |
BIN
public/assets/images/pdf_images/heart_logo.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
public/assets/images/pdf_images/heart_qr.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
public/assets/images/pdf_images/pdf_cmb_logo.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
public/assets/images/pdf_images/touchngo_logo.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
public/assets/images/pdf_images/touchngo_qr.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
|
|
@ -2150,7 +2150,8 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
|
||||
// translate the title and the logo for the pdf
|
||||
$translated_title = $translator->trans('jo_title_pdf');
|
||||
$translated_logo = $translator->trans('image_jo_pdf');
|
||||
// TODO: change the image file in messages.en.yaml to the correct logo
|
||||
$translated_logo = $translator->trans('image_jo_pdf_century_logo');
|
||||
$translated_delivery_instructions_label = $translator->trans('delivery_instructions_label');
|
||||
|
||||
// generate the pdf
|
||||
|
|
@ -2171,222 +2172,186 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$header_font_size = 9;
|
||||
$jo_font_size = 16;
|
||||
$col1_x = $margin;
|
||||
$col_extra_x = 85;
|
||||
$col2_x = 120;
|
||||
$label_width = 40;
|
||||
$val_width = 60;
|
||||
$col_qr_code = 150;
|
||||
|
||||
// insert the logo
|
||||
$image_path = $proj_path . $translated_logo;
|
||||
$pdf->Image($image_path, $col1_x, 10);
|
||||
|
||||
$y = $pdf->GetY();
|
||||
|
||||
// insert number
|
||||
$pdf->Ln($line_height);
|
||||
$pdf->SetFont($font_face, 'B', $body_font_size);
|
||||
$pdf->SetX($col_extra_x);
|
||||
$pdf->Cell($label_width, $jo_line_height, '1800-22-8837');
|
||||
|
||||
// insert JO number
|
||||
$pdf->SetFont($font_face, 'B', $jo_font_size);
|
||||
$pdf->SetX($col2_x);
|
||||
$pdf->Cell($label_width, $jo_line_height, 'JO Number:');
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $jo_line_height, 'JO NO:');
|
||||
$pdf->SetTextColor(9, 65, 150);
|
||||
$pdf->Cell(0, $jo_line_height, $obj->getID());
|
||||
|
||||
$pdf->Ln();
|
||||
|
||||
// insert date
|
||||
$pdf->SetX($col2_x);
|
||||
$str_date_create = $obj->getDateCreate()->format('d/m/y');
|
||||
$pdf->SetFont($font_face, 'B', $jo_font_size);
|
||||
$pdf->SetTextColor(0, 0, 0);
|
||||
$pdf->Cell($label_width, $jo_line_height, 'JO Date:');
|
||||
$pdf->SetTextColor(9, 65, 150);
|
||||
$pdf->Cell(0, $jo_line_height, $str_date_create);
|
||||
|
||||
// insert company name
|
||||
$pdf->Ln($line_height * 2);
|
||||
$pdf->SetFont($font_face, 'B', $body_font_size);
|
||||
$pdf->SetTextColor(0, 0, 0);
|
||||
$pdf->SetX($col1_x);
|
||||
$pdf->Cell(0, $jo_line_height, $translator->trans('pdf_company_name'));
|
||||
|
||||
// insert company address
|
||||
$pdf->Ln($line_height);
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
$pdf->SetTextColor(0, 0, 0);
|
||||
$pdf->SetX($col1_x);
|
||||
$pdf->Cell(0, $jo_line_height, $translator->trans('pdf_company_address'));
|
||||
|
||||
// insert company numbers and email
|
||||
$pdf->Ln($line_height);
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
$pdf->SetTextColor(0, 0, 0);
|
||||
$pdf->SetX($col1_x);
|
||||
$pdf->Cell(0, $jo_line_height, $translator->trans('pdf_company_number_email'));
|
||||
|
||||
// insert INVOICE header
|
||||
$pdf->Ln($line_height * 2);
|
||||
$pdf->SetFont($font_face, 'BU', $jo_font_size);
|
||||
$pdf->MultiCell(0 , $jo_line_height, 'INVOICE', 0, 'C');
|
||||
|
||||
// insert customer details header
|
||||
$pdf->SetFont($font_face, 'B', $header_font_size);
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_customer_details_header'));
|
||||
$pdf->Ln($line_height);
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
|
||||
// insert customer info
|
||||
$customer = $obj->getCustomer();
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
$pdf->SetTextColor(0, 0, 0);
|
||||
|
||||
$pdf->Ln($line_height * 7);
|
||||
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Customer Name:');
|
||||
$pdf->MultiCell($val_width, $line_height, $customer ? $customer->getFirstName() . ' ' . $customer->getLastName() : '', 0, 'L');
|
||||
$pdf->MultiCell($val_width, $line_height, $customer ? strtoupper($customer->getFirstName()) . ' ' . strtoupper($customer->getLastName()) : '', 0, 'L');
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Mobile Phone:');
|
||||
$pdf->MultiCell(0, $line_height, $customer && $customer->getPhoneMobile() ? $this->country_code . $customer->getPhoneMobile() : '', 0, 'L');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Delivery Date:');
|
||||
$pdf->MultiCell($val_width, $line_height, $obj->getDateSchedule() ? $obj->getDateSchedule()->format("m/d/Y") : '', 0, 'left');
|
||||
$pdf->Cell($label_width, $line_height, 'Second Number:');
|
||||
$pdf->MultiCell(0, $line_height, $customer && $customer->getPhoneMobile() ? $this->country_code . $customer->getPhoneLandline() : '', 0, 'L');
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Landline:');
|
||||
$pdf->MultiCell(0, $line_height, $customer && $customer->getPhoneLandline() ? $this->country_code . $customer->getPhoneLandline() : '', 0, 'L');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Office Phone:');
|
||||
$pdf->MultiCell(0, $line_height, $customer && $customer->getPhoneOffice() ? $this->country_code . $customer->getPhoneOffice() : '', 0, 'L');
|
||||
|
||||
$pdf->SetX($col2_x);
|
||||
$pdf->Cell($label_width, $line_height, 'Fax:');
|
||||
$pdf->MultiCell($val_width, $line_height, $customer && $customer->getPhoneFax() ? $this->country_code . $customer->getPhoneFax() : '', 0, 'L');
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
// insert vehicle info
|
||||
$cv = $obj->getCustomerVehicle();
|
||||
$vehicle = $cv->getVehicle();
|
||||
$pdf->Ln();
|
||||
$pdf->SetFont($font_face, 'B', $header_font_size);
|
||||
$pdf->Cell($label_width, $line_height, 'Vehicle Details');
|
||||
$pdf->Ln($line_height * 2);
|
||||
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Plate Number:');
|
||||
$pdf->MultiCell($val_width, $line_height, $cv ? $cv->getPlateNumber() : '', 0, 'L');
|
||||
$pdf->MultiCell(0, $line_height, $cv ? $cv->getPlateNumber() : '', 0, 'L');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Brand:');
|
||||
$pdf->MultiCell($val_width, $line_height, $vehicle && $vehicle->getManufacturer() ? $vehicle->getManufacturer()->getName() : '', 0, 'L');
|
||||
$pdf->MultiCell($val_width, $line_height, $vehicle && $vehicle->getManufacturer() ? strtoupper($vehicle->getManufacturer()->getName()) : '', 0, 'L');
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Model / Year:');
|
||||
$pdf->MultiCell(0, $line_height, $cv ? $cv->getModelYear() : '', 0, 'L');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Make:');
|
||||
$pdf->MultiCell($val_width, $line_height, $vehicle ? $vehicle->getMake() : '', 0, 'L');
|
||||
$pdf->MultiCell($val_width, $line_height, $vehicle ? strtoupper($vehicle->getMake()) : '', 0, 'L');
|
||||
|
||||
// insert battery info
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Model / Year:');
|
||||
$pdf->MultiCell(0, $line_height, $cv ? $cv->getModelYear() : '', 0, 'L');
|
||||
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Delivery Address:');
|
||||
$pdf->MultiCell($val_width, $line_height, strtoupper($obj->getDeliveryAddress()), 0, 'L');
|
||||
|
||||
|
||||
// insert Other Details
|
||||
$battery = $cv->getCurrentBattery();
|
||||
$pdf->Ln();
|
||||
$pdf->SetFont($font_face, 'B', $header_font_size);
|
||||
$pdf->Cell($label_width, $line_height, 'Battery Details');
|
||||
$pdf->Ln($line_height * 2);
|
||||
|
||||
$pdf->Cell($label_width, $line_height, 'Other Details');
|
||||
$pdf->Ln($line_height);
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->Cell($label_width, $line_height, 'Current Battery:');
|
||||
$pdf->MultiCell($val_width, $line_height, $battery && $battery->getManufacturer() && $battery->getModel() && $battery->getSize() ? $battery->getManufacturer()->getName() . ' ' . $battery->getModel()->getName() . ' ' . $battery->getSize()->getName() . ' (' . $battery->getProductCode() . ')' : '', 0, 'L');
|
||||
$pdf->setXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, strtoupper($obj->getDeliveryInstructions()));
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
// insert invoice details
|
||||
$pdf->Ln($line_height * 2);
|
||||
$pdf->SetFont($font_face, 'B', $header_font_size);
|
||||
$pdf->Cell($label_width, $line_height, 'Invoice Details');
|
||||
$pdf->Ln($line_height);
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Serial Number:');
|
||||
$pdf->MultiCell(0, $line_height, $cv ? $cv->getWarrantyCode() : '', 0, 'L');
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
$pdf->Cell($label_width, $line_height, 'Transaction Type:');
|
||||
$pdf->MultiCell($val_width, $line_height, CMBServiceType::getName($obj->getServiceType()), 0, 'L');
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->Cell($label_width, $line_height, 'OR Name:');
|
||||
$pdf->MultiCell($val_width, $line_height, $obj->getORName(), 0, 'L');
|
||||
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Wty. Exp. Date:');
|
||||
$pdf->MultiCell($val_width, $line_height, $cv && $cv->getWarrantyExpiration() ? $cv->getWarrantyExpiration()->format("d/m/Y") : '', 0, 'L');
|
||||
|
||||
// insert transaction details
|
||||
$pdf->Ln();
|
||||
$pdf->SetFont($font_face, 'B', $header_font_size);
|
||||
$pdf->Cell($label_width, $line_height, 'Transaction Details');
|
||||
$pdf->Ln($line_height * 2);
|
||||
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->Cell($label_width, $line_height, 'Warranty Class:');
|
||||
$pdf->MultiCell($val_width, $line_height, CMBWarrantyClass::getName($obj->getWarrantyClass()), 0, 'L');
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Mode of Payment:');
|
||||
$pdf->MultiCell(0, $line_height, CMBModeOfPayment::getName($obj->getModeOfPayment()), 0, 'L');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
|
||||
$pdf->Cell($label_width, $line_height, 'Delivery Address:');
|
||||
$pdf->MultiCell($val_width, $line_height, $obj->getDeliveryAddress(), 0, 'L');
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Landmark:');
|
||||
$pdf->MultiCell(0, $line_height, $obj->getLandMark(), 0, 'L');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Dispatch Time:');
|
||||
$pdf->MultiCell($val_width, $line_height, $obj->getDateSchedule() ? $obj->getDateSchedule()->format("g:i A") : '', 0, 'L');
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Dispatched By:');
|
||||
$pdf->MultiCell(0, $line_height, $obj->getProcessedBy() ? $obj->getProcessedBy()->getFullName() : '', 0, 'L');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
|
||||
// insert delivery instructions
|
||||
$pdf->SetY($y);
|
||||
$pdf->Ln();
|
||||
$pdf->SetFont($font_face, 'B', $header_font_size);
|
||||
$pdf->Cell(0, $line_height, $translated_delivery_instructions_label);
|
||||
$pdf->Ln();
|
||||
|
||||
$pdf->SetFont($font_face, '', $body_font_size);
|
||||
$pdf->MultiCell(0, $line_height, $obj->getDeliveryInstructions(), 1, 'L');
|
||||
|
||||
// insert invoice details
|
||||
$pdf->Ln();
|
||||
$pdf->SetFont($font_face, 'B', $header_font_size);
|
||||
$pdf->Cell($label_width, $line_height, 'Invoice Details');
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, 'Credit Card No:');
|
||||
// TODO: insert boxes here
|
||||
$pdf->MultiCell($val_width, $line_height, 'INSERT BOXES HERE', 0, 'L');
|
||||
|
||||
// invoice table headers
|
||||
$invoice = $obj->getInvoice();
|
||||
|
|
@ -2407,83 +2372,101 @@ class CMBJobOrderHandler implements JobOrderHandlerInterface
|
|||
$pdf->Cell($table_col_width * 2, $table_line_height, number_format($item->getPrice(), 2), 1, 0, 'R');
|
||||
$pdf->Cell($table_col_width * 2, $table_line_height, number_format($item->getPrice() * $item->getQuantity(), 2), 1, 1, 'R');
|
||||
}
|
||||
$pdf->Cell($table_col_width * 6, $table_line_height, 'SubTotal', 1);
|
||||
$pdf->Cell($table_col_width * 2, $table_line_height, '', 1, 0, 'R');
|
||||
$pdf->Cell($table_col_width * 2, $table_line_height, '', 1, 0, 'R');
|
||||
$pdf->Cell($table_col_width * 2, $table_line_height, number_format($invoice->getTotalPrice(), 2), 1, 1, 'R');
|
||||
}
|
||||
else
|
||||
{
|
||||
$pdf->Cell($table_col_width * 12, 7, 'No items', 1, 1);
|
||||
}
|
||||
|
||||
$pdf->Ln($line_height * 2);
|
||||
$pdf->Ln($line_height);
|
||||
|
||||
// insert invoice footer details
|
||||
$pdf->Cell($label_width, $line_height, 'Dispatched by:');
|
||||
$pdf->MultiCell(0, $line_height, $obj->getProcessedBy() ? $obj->getProcessedBy()->getFullName() : '', 0, 'L');
|
||||
|
||||
// get current Y
|
||||
$y = $pdf->GetY();
|
||||
|
||||
// insert invoice footer details
|
||||
$pdf->Cell($label_width, $line_height, 'Transaction Type:');
|
||||
$pdf->MultiCell($val_width, $line_height, CMBServiceType::getName($obj->getServiceType()), 0, 'L');
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'JO Done by:');
|
||||
$pdf->MultiCell(0, $line_height, $obj->getRider() ? $obj->getRider()->getFullName() : '', 0, 'L');
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
$y = max($y1, $y2);
|
||||
|
||||
// insert the scan to pay
|
||||
$pdf->SetXY($col_qr_code, $y);
|
||||
$pdf->SetFont($font_face, 'B');
|
||||
$pdf->Cell($label_width, $line_height, 'SUBTOTAL:');
|
||||
$pdf->SetFont($font_face, '');
|
||||
$pdf->MultiCell(0, $line_height, $invoice ? number_format($invoice->getVATExclusivePrice(), 2) : '', 0, 'R');
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_scan_to_pay'));
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
|
||||
// insert space here
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'OR Name:');
|
||||
$pdf->MultiCell($val_width, $line_height, $obj->getORName(), 0, 'L');
|
||||
$pdf->Ln($line_height);
|
||||
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->SetFont($font_face, 'B');
|
||||
$pdf->Cell($label_width, $line_height, 'TAX:');
|
||||
$pdf->SetFont($font_face, '');
|
||||
$pdf->MultiCell(0, $line_height, $invoice ? number_format($invoice->getVAT(), 2) : '', 0, 'R');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Emp. ID/Card No./Ref. By:');
|
||||
$pdf->MultiCell($val_width, $line_height, $obj->getPromoDetail(), 0, 'L');
|
||||
// insert qr logos
|
||||
$qr_logo_image_path_1 = $proj_path . $translator->trans('image_jo_pdf_qr_logo_1');;
|
||||
$pdf->Image($qr_logo_image_path_1, $col_qr_code, $y, 25);
|
||||
|
||||
$qr_logo_image_path_2 = $proj_path . $translator->trans('image_jo_pdf_qr_logo_2');;
|
||||
$pdf->Image($qr_logo_image_path_2, $col_qr_code + 30, $y, 25);
|
||||
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// insert qr codes
|
||||
$qr_code_image_path_1 = $proj_path . $translator->trans('image_jo_pdf_qr_code_1');;
|
||||
$pdf->Image($qr_code_image_path_1, $col_qr_code, $y + 30);
|
||||
|
||||
$qr_code_image_path_2 = $proj_path . $translator->trans('image_jo_pdf_qr_code_2');;
|
||||
$pdf->Image($qr_code_image_path_2, $col_qr_code + 30, $y + 30);
|
||||
|
||||
// get Y after left cell
|
||||
$y1 = $pdf->GetY();
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->SetFont($font_face, 'B');
|
||||
$pdf->Cell($label_width, $line_height, 'DISCOUNT:');
|
||||
$pdf->SetFont($font_face, '');
|
||||
$pdf->MultiCell(0, $line_height, $invoice ? number_format($invoice->getDiscount(), 2) : '', 0, 'R');
|
||||
|
||||
// get Y after right cell
|
||||
$y2 = $pdf->GetY();
|
||||
|
||||
// get row height
|
||||
$y = max($y1, $y2);
|
||||
|
||||
// insert the footer text
|
||||
$pdf->SetXY($col1_x, $y);
|
||||
$pdf->Cell($label_width, $line_height, 'Discount Type:');
|
||||
$pdf->MultiCell($val_width, $line_height, $invoice && $invoice->getPromo() ? $invoice->getPromo()->getName() : '', 0, 'L');
|
||||
|
||||
$pdf->SetXY($col2_x, $y);
|
||||
$pdf->SetFont($font_face, 'B');
|
||||
$pdf->Cell($label_width, $line_height, 'FINAL AMOUNT:');
|
||||
$pdf->MultiCell(0, $line_height, $invoice ? number_format($invoice->getTotalPrice(), 2) : '', 0, 'R');
|
||||
$pdf->SetFont($font_face, '');
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_payments'));
|
||||
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_company_name'));
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_bank'));
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_return_policy'));
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_warranty_private_label'));
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_warranty_private_text_1'));
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_warranty_private_text_2'));
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_warranty_commercial_label'));
|
||||
$pdf->Ln();
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_warranty_commercial_text'));
|
||||
$pdf->Ln($line_height * 2);
|
||||
$pdf->Cell($label_width, $line_height, $translator->trans('pdf_footer_document'));
|
||||
|
||||
$params['obj'] = $pdf;
|
||||
$params['filename'] = $filename;
|
||||
|
|
|
|||
|
|
@ -12,6 +12,21 @@ add_cust_vehicle_battery_info: This vehicle is using a Motolite battery
|
|||
jo_title_pdf: Res-Q for CMB Job Order
|
||||
country_code_prefix: '+60'
|
||||
delivery_instructions_label: 'Other Details'
|
||||
pdf_company_name: ENTITY LOGISTICS SDN BHD(1045869-H)
|
||||
pdf_company_address: 26/1 Lebuh Persekutuan 47301 Petaling Jaya Selangor
|
||||
pdf_company_number_email: 'Tel: 03-7872 9072 E-Mail: enquiry@entitylogistic.com.my'
|
||||
pdf_customer_details_header: Customers Details
|
||||
pdf_footer_scan_to_pay: Scan To Pay
|
||||
pdf_footer_payments: 'Note: All payments are made payable to'
|
||||
pdf_footer_company_name: Entity Logistic Sdn Bhd
|
||||
pdf_footer_bank: 'Malayan Banking: 512307611410'
|
||||
pdf_footer_return_policy: Goods Sold are not returnable or exchangeable
|
||||
pdf_footer_warranty_private_label: 'Petrol vehicles / private use : -'
|
||||
pdf_footer_warranty_private_text_1: 'Warranty 12 months + 6 months extended or 25,000 km (whichever'
|
||||
pdf_footer_warranty_private_text_2: 'comes first) and on selected models'
|
||||
pdf_footer_warranty_commercial_label: 'Diesel vehicles / commercial use : -'
|
||||
pdf_footer_warranty_commercial_text: 'Warranty 6 months extended or 20,000 km (whichever comes first)'
|
||||
pdf_footer_document: 'THIS IS A COMPUTER GENERATED DOCUMENT - NO SIGNATURE REQUIRED'
|
||||
|
||||
# images
|
||||
image_logo_login: /assets/images/black-text-logo-01.png
|
||||
|
|
@ -19,7 +34,11 @@ icon_login: /assets/images/battery-assist-bm-logo-32x32.png
|
|||
icon_base_32x32: /assets/images/black-text-logo-01-32x32.png
|
||||
icon_base_16x16: /assets/images/black-text-logo-01-16x16.png
|
||||
image_dashboard: /assets/images/century_logo.png
|
||||
image_jo_pdf: /public/assets/images/black-text-logo-01-115x115.png
|
||||
image_jo_pdf_century_logo: /public/assets/images/pdf_images/275x75-century-logo-placeholder.png
|
||||
image_jo_pdf_qr_logo_1: /public/assets/images/pdf_images/110x110-qr-codes-logo-placeholder.png
|
||||
image_jo_pdf_qr_logo_2: /public/assets/images/pdf_images/110x110-qr-codes-logo-placeholder.png
|
||||
image_jo_pdf_qr_code_1: /public/assets/images/pdf_images/120x120-qr-codes.png
|
||||
image_jo_pdf_qr_code_2: /public/assets/images/pdf_images/120x120-qr-codes.png
|
||||
|
||||
# default point for maps
|
||||
default_lat: 3.084216
|
||||
|
|
|
|||
|
|
@ -12,6 +12,21 @@ add_cust_vehicle_battery_info: This vehicle is using a Motolite battery
|
|||
jo_title_pdf: Res-Q for CMB Job Order
|
||||
country_code_prefix: '+60'
|
||||
delivery_instructions_label: 'Other Details'
|
||||
pdf_company_name: ENTITY LOGISTICS SDN BHD(1045869-H)
|
||||
pdf_company_address: 26/1 Lebuh Persekutuan 47301 Petaling Jaya Selangor
|
||||
pdf_company_number_email: 'Tel: 03-7872 9072 E-Mail: enquiry@entitylogistic.com.my'
|
||||
pdf_customer_details_header: Customers Details
|
||||
pdf_footer_scan_to_pay: Scan To Pay
|
||||
pdf_footer_payments: 'Note: All payments are made payable to'
|
||||
pdf_footer_company_name: Entity Logistic Sdn Bhd
|
||||
pdf_footer_bank: 'Malayan Banking: 512307611410'
|
||||
pdf_footer_return_policy: Goods Sold are not returnable or exchangeable
|
||||
pdf_footer_warranty_private_label: 'Petrol vehicles / private use : -'
|
||||
pdf_footer_warranty_private_text_1: 'Warranty 12 months + 6 months extended or 25,000 km (whichever'
|
||||
pdf_footer_warranty_private_text_2: 'comes first) and on selected models'
|
||||
pdf_footer_warranty_commercial_label: 'Diesel vehicles / commercial use : -'
|
||||
pdf_footer_warranty_commercial_text: 'Warranty 6 months extended or 20,000 km (whichever comes first)'
|
||||
pdf_footer_document: 'THIS IS A COMPUTER GENERATED DOCUMENT - NO SIGNATURE REQUIRED'
|
||||
|
||||
# images
|
||||
image_logo_login: /assets/images/black-text-logo-01.png
|
||||
|
|
@ -19,7 +34,11 @@ icon_login: /assets/images/battery-assist-bm-logo-32x32.png
|
|||
icon_base_32x32: /assets/images/black-text-logo-01-32x32.png
|
||||
icon_base_16x16: /assets/images/black-text-logo-01-16x16.png
|
||||
image_dashboard: /assets/images/century_logo.png
|
||||
image_jo_pdf: /public/assets/images/black-text-logo-01-115x115.png
|
||||
image_jo_pdf_century_logo: /public/assets/images/pdf_images/pdf_cmb_logo.png
|
||||
image_jo_pdf_qr_logo_1: /public/assets/images/pdf_images/touchngo_logo.png
|
||||
image_jo_pdf_qr_logo_2: /public/assets/images/pdf_images/heart_logo.png
|
||||
image_jo_pdf_qr_code_1: /public/assets/images/pdf_images/touchngo_qr.png
|
||||
image_jo_pdf_qr_code_2: /public/assets/images/pdf_images/heart_qr.png
|
||||
|
||||
# default point for maps
|
||||
default_lat: 3.084216
|
||||
|
|
|
|||