Files
crm.e5.pl/modules/templates/EcmSales/e5/proforma_subheader.php
2024-04-27 09:23:34 +02:00

1547 lines
45 KiB
PHP

<?php
global $app_list_strings, $mod_strings, $db, $sugar_config;
$pdf->focus = $this;
//$mod_strings = return_module_language($sugar_config['default_language'], 'EcmInvoiceOuts', true);
$mod_strings = return_module_language('pl_pl', 'EcmInvoiceOuts', true);
//$mod_strings2 = return_module_language('en_us', 'EcmInvoiceOuts', true);
$mod_strings['LBL_PDF_FOOTER_DOCUMENT_NAME'] = 'Proforma';
/* BOF: Seller, buyer. */
$address = htmlspecialchars_decode($this->parent_name);//str_replace(array('&lt;', '&gt;'), array('<', '>'), $this->parent_name);
if ($this->parent_contact_name) {
$address .= PHP_EOL . $this->parent_contact_name;
if ($this->parent_contact_title) {
$address .= PHP_EOL . $this->parent_contact_title;
}
$personplus = 5;
} else {
$personplus = 0;
}
if ($this->parent_address_street) {
$address .= PHP_EOL . $this->parent_address_street;
}
if ($this->parent_address_postalcode) {
$address .= PHP_EOL . $this->parent_address_postalcode;
}
if ($this->parent_address_city) {
$address .= " " . $this->parent_address_city;
}
//if($this->to_vatid) {
// $address .= PHP_EOL.$mod_strings['LBL_PDF_VATID']." ".$this->to_vatid;
//}
//if ($this->to_nip) {
// $address .= PHP_EOL . $mod_strings['LBL_PDF_NIP'] . ": " . $this->to_nip;
//} elseif (!$this->to_nip && $this->to_vatid) {
// $address .= PHP_EOL . $mod_strings['LBL_PDF_NIP'] . ": " . $this->to_vatid;
//}
$qr = 'SELECT iln, to_nip FROM accounts WHERE id = \'' . $this->parent_id . '\'';
$r = $db->fetchByAssoc($db->query($qr));
if ($r['iln']) {
$address .= "\nILN: " . $r['iln'];
}
//to address
$old_x = $pdf->GetX();
$old_y = $pdf->GetY();
$pdf->SetXY(10, 53);
$pdf->SetFont('arialpl', 'B', 8);
$pdf->Cell(35, 1, strtoupper($mod_strings['LBL_PDF_SELLER']), 0, 0, 'L', 1);
$pdf->Ln(3);
$pdf->SetX(10);
$pdf->SetFont('arialpl', '', 8);
$qr = 'SELECT nip FROM accounts WHERE id = \'' . $pdf->edt->account_id . '\'';
$r = $db->fetchByAssoc($db->query($qr));
$wys = $pdf->edt->name . PHP_EOL;
if ($pdf->edt->footer_address) {
$wys .= $pdf->edt->footer_address . PHP_EOL;
}
if ($r['nip']) {
$wys.= $mod_strings['LBL_PDF_NIP'] . ': ' . $r['nip'];
}
$qr = 'SELECT index_dbf FROM accounts WHERE id = \'' . $this->parent_id . '\'';
$r = $db->fetchByAssoc($db->query($qr));
if ($r['index_dbf']) {
$address .= PHP_EOL . $mod_strings['LBL_PDF_INDEX_DBF'] . ": " . $r['index_dbf'];
}
$pdf->MultiCell(60, 4, $wys, 0, 'L');
$pdf->SetXY(76, 53);
$pdf->SetFont('arialpl', 'B', 8);
$pdf->Cell(35, 1, strtoupper($mod_strings['LBL_PDF_BUYER']), 0, 0, 'L', 1);
$pdf->Ln(3);
$pdf->SetX(76);
$pdf->SetFont('arialpl', '', 8);
$pdf->MultiCell(60, 4, $address, 0, 'L');
/* EOF: Seller, buyer. */
//if ($this->type == "correct") {
// $qr = "SELECT wz_id FROM ecminvoiceouts WHERE id = '" . $this->ecminvoiceout_id . "'";
// $r = $db->fetchByAssoc($db->query($qr));
// $wz_id = $r['wz_id'];
//} else {
// $wz_id = $this->wz_id;
//}
$qr = "SELECT * FROM ecmstockdocouts WHERE id='" . $wz_id . "'";
$r = $db->fetchByAssoc($db->query($qr));
if ($r['parent_id'] == $this->parent_id) {
$qr = "SELECT name as parent_name,shipping_address_street as parent_address_street,shipping_address_city as parent_address_city,shipping_address_postalcode as parent_address_postalcode,shipping_address_country as parent_address_country FROM accounts WHERE id='" . $this->parent_id . "'";
$r = $db->fetchByAssoc($db->query($qr));
}
/* BOF: Delivery. */
$address = str_replace(array('&lt;', '&gt;'), array('<', '>'), $this->parent_shipping_address_name);
if ($this->parent_shipping_address_street) {
$address .= PHP_EOL . $this->parent_shipping_address_street;
}
if ($this->parent_shipping_address_postalcode) {
$address .= PHP_EOL . $this->parent_shipping_address_postalcode;
}
if ($this->parent_shipping_address_city) {
$address .= ' ' . $this->parent_shipping_address_city;
}
//if ($r['to_nip']) {
// $address .= PHP_EOL . $mod_strings['LBL_PDF_NIP'] . ": " . $r['to_nip'];
//} elseif (!$r['to_nip'] && $r['to_vatid']) {
// $address .= PHP_EOL . $mod_strings['LBL_PDF_NIP'] . ": " . $r['to_vatid'];
//}
//
//$rr = $db->fetchByAssoc($db->query("SELECT iln FROM accounts WHERE id='" . $r['parent_id'] . "'"));
//
//if ($rr['iln']) {
// $address .= "\nILN: " . $rr['iln'];
//}
if ($address) {
$pdf->SetXY(143, 53);
$pdf->SetFont('arialpl', 'B', 8);
$pdf->Cell(35, 1, strtoupper($mod_strings['LBL_PDF_DELIVERY']), 0, 0, 'L', 1);
$pdf->Ln(3);
$pdf->SetX(143);
$pdf->SetFont('arialpl', '', 8);
$pdf->MultiCell(60, 4, $address, 0, 'L');
}
/* EOF: Delivery. */
$ynew = 53 + 12;
$pc = null;
if ($this->ecmpaymentcondition_id) {
require_once("modules/EcmPaymentConditions/EcmPaymentCondition.php");
$pc = new EcmPaymentCondition();
$pc->retrieve($this->ecmpaymentcondition_id);
}
$pdf->SetXY(160, $old_y + 15 + $personplus);
$table = array();
//$table[0]['place_of_register'] = array(
// 'width' => 20,
// 'value' => $mod_strings['LBL_PDF_PLACE_OF_REGISTER'],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 8,
//);
//
//$table[0]['place_of_register_value'] = array(
// 'width' => 25,
// 'value' => $this->template->place_of_register,
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
//);
$table[1]['date_reg'] = array(
'width' => 16,
'value' => $mod_strings['LBL_PDF_DATE_REGISTER'],
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-size' => 8,
);
$table[1]['date_reg_value'] = array(
'width' => 36 + 4,
'value' => date('d.m.Y'),//$this->register_date,
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-style' => 'b',
'font-size' => 8,
);
//$table[2]['date_sell'] = array(
// 'width' => 20,
// 'value' => $mod_strings['LBL_PDF_DATE_SELL'],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 8,
//);
//$table[2]['date_sell_value'] = array(
// 'width' => 36,
// 'value' => date('Y-m-d', time()),//$this->sell_date,
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// 'valign' => 'C',
//);
/*
$q = 'select s.`document_no` as `number`, s.`parent_document_no` as `doc_number`, s.`date_entered` as `date` from `ecminvoiceoutitems` as ii join `ecmsales` as s on s.`id` = ii.`parent_doc_id` where ii.`ecminvoiceout_id` = \''. $this->id . '\' and ii.`parent_doc_type` = \'EcmSales\' group by s.`document_no`;';
echo $q;exit;
$result = $db->query($q);
$results = $db->fetchByAssoc($result);
*/
// echo '<pre>' . var_export($results['doc_number'], true);
// echo '<pre>' . var_export(preg_split ('/( )/', $results['doc_number']), true);
// exit;
if(true) {
/*
$table[3]['date_sell'] = array(
'width' => 16,
'value' => 'Zamówienie klienta',
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-size' => 8,
);
$table[3]['date_sell_value'] = array(
// 'width' => 36 + 16 + 4,
'width' => 36 + 4,
'value' => chunk_split($this->parent_document_no, 15),
// 'value' => chunk_split('Zamówienie: ' . $results['doc_number'], 35), //chunk_split($results['doc_number'], 15),
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-style' => 'b',
'font-size' => 8,
'valign' => 'C',
);
*/
//echo '<pre>' . var_dump($results['doc_number'], chunk_split($results['doc_number'], 9), true); exit;
$table[4]['date_sell'] = array(
'width' => 16,
'value' => 'Nr ZS',
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-size' => 8,
);
$table[4]['date_sell_value'] = array(
'width' => 36 + 4,
'value' => $this->document_no,
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-style' => 'b',
'font-size' => 8,
'valign' => 'C',
);
$table[5]['date_sell'] = array(
'width' => 16,
'value' => 'Data ZS',
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-size' => 8,
);
$table[5]['date_sell_value'] = array(
'width' => 36 + 4,
'value' => date('d.m.Y', strtotime($this->date_entered)),
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-style' => 'b',
'font-size' => 8,
'valign' => 'C',
);
}
//if ($this->ecmpaymentcondition_id) {
// $table[4]['payment_termin'] = array(
// 'width' => 20,
// 'value' => $mod_strings['LBL_PDF_PAYMENT_TERMIN'],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 8,
// );
//
// $r = $db->fetchByAssoc($db->query("SELECT paid FROM ecminvoiceouts WHERE id='" . $_REQUEST['record'] . "'"));
//
// if ($r['paid'] == 1) {
// $paid = "zaplacono";
// } else {
// $paid = $pc->days . " " . $mod_strings['LBL_PDF_DAYS'];
// }
//
// if ($this->document_no == "FV 1421/10") {
// $table[4]['payment_termin_value'] = array(
// 'width' => 36,
// 'value' => "prepayment",
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// );
// } else {
// $table[4]['payment_termin_value'] = array(
// 'width' => 36,
// 'value' => $paid,
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// );
// }
//}
//
//if ($this->ecmpaymentcondition_id) {
// $table[5]['payment_method'] = array(
// 'width' => 20,
// 'value' => $mod_strings['LBL_PDF_PAYMENT_METHOD'],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 8,
// );
//
// if ($this->document_no == "FV 1421/10") {
// $table[5]['payment_method_value'] = array(
// 'width' => 25,
// 'value' => "money transfer",
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// );
// } else {
// $table[5]['payment_method_value'] = array(
// 'width' => 25,
// 'value' => $app_list_strings['ecmpaymentconditions_payment_method_dom'][$pc->payment_method],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// );
// }
//}
//if ($this->supplier_code) {
// $table[6]['cr'] = array(
// 'width' => 20,
// 'value' => $mod_strings['LBL_PDF_SUPPLIER_CODE'],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 8,
// );
// $table[6]['cr_value'] = array(
// 'width' => 25,
// 'value' => $this->supplier_code,
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// );
//}
//if ($this->type == "normal") {
// if (file_exists("modules/EcmStockDocOuts/EcmStockDocOut.php")) {
// require_once("modules/EcmStockDocOuts/EcmStockDocOut.php");
// $wz = new EcmStockDocOut();
// $wz->retrieve($this->wz_id);
// }
// $table[7]['wz'] = array(
// 'width' => 20,
// 'value' => $mod_strings['LBL_PDF_TO_WZ'],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 8,
// );
//
// $table[7]['wz_value'] = array(
// 'width' => 25,
// 'value' => $wz->document_no,
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// );
//} else {
// $this->loadEcmInvoiceOut();
// $this->ecminvoiceout->format_all_fields();
// $table[7]['wz'] = array(
// 'width' => 20,
// 'value' => $mod_strings['LBL_PDF_DOCUMENT_NAME_CORRECT_TO'],
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 8,
// );
//
// $table[7]['wz_value'] = array(
// 'width' => 25,
// 'value' => $this->ecminvoiceout->document_no,
// 'border' => 0,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-style' => 'b',
// 'font-size' => 8,
// );
//}
$r = $db->fetchByAssoc($db->query("SELECT so_id FROM ecminvoiceouts WHERE id='" . $this->id . "'"));
$this->so_id = $r['so_id'];
if (!$this->so_id) {
$this->so_id = $_SESSION['invoice_so_id'];
}
$qr = "SELECT wz_id FROM ecminvoiceouts WHERE id = '" . $this->id . "'";
$r = $db->fetchByAssoc($db->query($qr));
$qr = "SELECT so_id FROM ecmstockdocouts WHERE id = '" . $r['wz_id'] . "'";
$r = $db->fetchByAssoc($db->query($qr));
$qr = "SELECT order_no FROM ecmsales WHERE id = '" . $r['so_id'] . "'";
$r = $db->fetchByAssoc($db->query($qr));
if ($r['order_no'] && $this->type != "correct") {
$table[8]['order_no'] = array(
'width' => 20,
'value' => $mod_strings['LBL_PDF_ORDER_NO'],
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-size' => 8,
);
$table[8]['order_no_value'] = array(
'width' => 25,
'value' => $r['order_no'],
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-style' => 'b',
'font-size' => 8,
);
}
//if ($this->type != "normal") {
if (!$this->so_id) {
$this->so_id = $_SESSION['invoice_so_id'];
}
$qr_so = "SELECT * FROM ecmsales WHERE id='" . $this->so_id . "'";
$r_so = $db->fetchByAssoc($db->query($qr_so));
$table[9]['cr'] = array(
'width' => 20,
'value' => $mod_strings['LBL_PDF_CORRECT_REASON'],
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-size' => 8,
);
$table[9]['cr_value'] = array(
'width' => 25,
'value' => $this->order_no,
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-style' => 'b',
'font-size' => 8,
);
//}
$pdf->SetXY(143, $pdf->tMargin + 20);
$pdf->DrawTable($table, null, 0.5, 0.5, 3);
$pdf->Ln(9);
$pdf->SetFont('arialpl', '', '18');
$pdf->SetXY(60, $pdf->tMargin + 25);
//if ($this->type == "normal") {
$pdf->MultiCell(80, 7, "Proforma nr " . $this->document_no, 0, 'C');
$pdf->SetFont('arialpl', 'B', 7);
$pdf->Ln(3);
$pdf->SetX(60);
//} else if ($this->type == "correct") {
// $pdf->MultiCell(80, 7, $mod_strings['LBL_PDF_DOCUMENT_NAME_CORRECT'] . " " . $this->document_no, 0, 'C');
// $pdf->SetFont('arialpl', 'B', 7);
// $pdf->Ln(3);
// $pdf->SetX(60);
// $pdf->Cell(80, 1, $mod_strings['LBL_PDF_ORIGINAL_COPY'], 0, 0, 'C', 1);
//}
$this->loadParser();
$this->header_text = $this->template->mfp->parseText($this->header_text);
$this->footer_text = $this->template->mfp->parseText($this->footer_text);
$this->ads_text = $this->template->mfp->parseText($this->ads_text);
$pdf->SetY($ynew);
$pdf->SetFont('arialpl', '', '7');
$currency = new Currency();
$currency->retrieve($this->currency_id);
$this->currency_symbol = $currency->iso4217;
$this->currency_value = $currency->conversion_rate;
// echo $this->currency_symbol ;
//if($this->currency_symbol == 'PLN') {
// $this->currency_symbol = 'zł';
//}
//echo '<pre>' . var_export($this->currency_value, true) . '</pre>'; exit;
//$this->currency_value = $currency->conversion_rate;
if (!isset($this->position_list) || !is_array($this->position_list)) {
$this->position_list = $this->getPositionList(true);
}
$calc = $this->calculate_currency($this->position_list, $this->currency_id, $this->currency_value);
//$calc = $this->calculate($this->position_list, false);
$this->position_list = $this->formatPositions($this->position_list, $this->currency_id, $this->currency_value);
//$this->position_list = $this->getPositionList(true);
//echo '<pre>'. var_export($calc, true); exit;
//echo '<pre>'. var_export($this->position_list, true);
//echo '<pre>'. var_export($this->currency_symbol, true);
//exit;
$calc['total'] .= ' ' . $this->currency_symbol;
$calc['subtotal'] .= ' ' . $this->currency_symbol;
if ($calc['discount']) {
$calc['total2'] .= ' ' . $this->currency_symbol;
$calc['discount']['value'] .= ' ' . $this->currency_symbol;
}
if (isset($calc['vats']) && is_array($calc['vats']) && count($calc['vats']) > 0) {
foreach ($calc['vats'] as $key => $value) {
$calc['vats'][$key] .= ' ' . $this->currency_symbol;
}
}
$summary_offset = 118;
//$calc['discount'] = 0;
$widths = array(
// List.
'position' => 4,
'description' => 50,
'quantity' => 8,// 7 + 5,
//'unit' => 5,
'draw_discount' => 11,
'unit_price' => 11,
'unit_price_total' => 11,
'vat_id' => 5,
'vat_value' => 11,
'total' => 11,
// Summary.
'fix' => 61 - 8 - 11,
'vat_rate' => 10,
'netto_total' => 11 + 8,
'vat_total' => 16,
'brutto_total' => 11 + 11,
);
$pdf->Ln(7);
//$calc['draw_discount'] = false;
if ($calc['draw_discount']) {
$widths['description'] -= $widths['draw_discount'] - 1;
$widths['quantity'] -= 1;
$widths['vat_rate'] -= 3;
$widths['netto_total'] += 3;
}
/* BOF: Position list. */
$list = array();
$list[0]['position'] = array(
'background' => array(233, 233, 233),
'width' => $widths['position'],
'value' => $mod_strings['LBL_PDF_LIST_POSITION'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 8,
);
$list[0]['description'] = array(
'background' => array(233, 233, 233),
'width' => $widths['description'],
'value' => $mod_strings['LBL_PDF_LIST_DESCRIPTION'] . PHP_EOL . $mod_strings['LBL_PDF_LIST_INDEX'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
//$list[0]['tax_code'] = array(
// 'background' => array(233, 233, 233),
// 'width' => $widths['tax_code'],
// 'value' => $mod_strings['LBL_PDF_LIST_TAX_CODE'],
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'C',
// 'font-style' => 'b',
// 'font-size' => 7,
//);
//
//$list[0]['recipient_code'] = array(
// 'background' => array(233, 233, 233),
// 'width' => $widths['recipient_code'],
// 'value' => $mod_strings['LBL_PDF_LIST_TAX_CODE'],
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'C',
// 'font-style' => 'b',
// 'font-size' => 7,
//);
$list[0]['quantity'] = array(
'background' => array(233, 233, 233),
'width' => $widths['quantity'],
'value' => $mod_strings['LBL_PDF_LIST_QUANTITY'] . PHP_EOL . $mod_strings['LBL_PDF_LIST_UNIT'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
/*
$list[0]['unit'] = array(
'background' => array(233, 233, 233),
'width' => $widths['unit'],
'value' => $mod_strings['LBL_PDF_LIST_UNIT'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 8,
);
*/
if ($calc['draw_discount']) {
$list[0]['draw_discount'] = array(
'background' => array(233, 233, 233),
'width' => $widths['draw_discount'],
'value' => 'Cena' . PHP_EOL . $mod_strings['LBL_PDF_LIST_DISCOUNT'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
}
$list[0]['unit_price'] = array(
'background' => array(233, 233, 233),
'width' => $widths['unit_price'],
'value' => $mod_strings['LBL_PDF_LIST_UNIT_PRICE'] . PHP_EOL . 'Waluta',
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$list[0]['unit_price_total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['unit_price_total'],
'value' => $mod_strings['LBL_PDF_LIST_UNIT_PRICE_TOTAL'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
//if($calc['draw_vat']) {
//if ($this->currency_symbol != "USD") {
$list[0]['vat_id'] = array(
'background' => array(233, 233, 233),
'width' => $widths['vat_id'],
'value' => $mod_strings['LBL_PDF_LIST_VAT_ID'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$list[0]['vat_value'] = array(
'background' => array(233, 233, 233),
'width' => $widths['vat_value'],
'value' => $mod_strings['LBL_PDF_LIST_VAT_VALUE'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
//}
//}
//
//if ($this->currency_symbol == "USD") {
// $list[0]['nw'] = array(
// 'background' => array(233, 233, 233),
// 'width' => 9,
// 'value' => "Netto weight",
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'C',
// 'font-style' => 'b',
// 'font-size' => 7,
// );
//
// $list[0]['bw'] = array(
// 'background' => array(233, 233, 233),
// 'width' => 9,
// 'value' => "Brutto weight",
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'C',
// 'font-style' => 'b',
// 'font-size' => 7,
// );
//}
$list[0]['total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['total'],
'value' => $mod_strings['LBL_PDF_LIST_TOTAL'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
if ($this->type != "normal") {
$pdf->SetY(76);
}
//$pdf->SetY($pdf->GetY() - $calc['draw_discount'] ? $widths['draw_discount'] : 0);
/* EOF: Positions list. */
//$pdf->Ln(0);
//$table = array();
$lv = return_app_list_strings_language($this->ecmlanguage);
$i = 1;
$netto_weight = $brutto_weight = 0;
if ($this->position_list != '') {
//$p = array_pop($this->position_list);
//$this->position_list = array_fill(0, 100, $p);
//echo '<pre>' . var_export($this->position_list);exit;
foreach ($this->position_list as $key => $position) {
// if($key == 1) {
// echo '<pre>' . var_export($position, true) . '</pre>';
// exit;
// }
// $position['price'] = unformat_number(substr($position['price'], 0, -4));
// $position['total'] = unformat_number(substr($position['total'], 0, -4));
//echo '<pre>' . var_export($position, true); exit;
if ($this->type == "correct") {
$qrrrr = "SELECT quantity, price FROM ecminvoiceoutitems WHERE id = '" . $position['iid'] . "'";
$qrrr = "SELECT quantity, price FROM ecminvoiceoutitems WHERE id = '" . $position['item_id'] . "'";
$rrrr = $db->fetchByAssoc($db->query($qrrrr));
$rrr = $db->fetchByAssoc($db->query($qrrr));
if ((float) $rrrr['quantity'] == (float) $rrr['quantity'] && (float) $rrrr['price'] == (float) $rrr['price']) {
continue;
}
}
$list[$i]['position'] = array(
'width' => $widths['position'],
'value' => $i,
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$code = $position['code'];
// Hardcoded. Trust that temporary indexes are in "%s_%s" format.
if($cnt = strpos($code, '_', 1) && ($cnt < (strlen($code) - 1)))
$code = '0000';
$list[$i]['description'] = array(
'width' => $widths['description'],
'value' => htmlspecialchars_decode($position['name']) . PHP_EOL . $code, //$position['product_code'],
'border' => 1,
'align' => 'L',
'font-size' => 7,
);
$netto_weight += $position['netto_weight'];
//$brutto_weight += $position['brutto_weight'];
$brutto_weight += ($position['quantity'] * $position['netto_weight']);
// $list[$i]['recipient_code'] = array(
// 'width' => 10,
// 'value' => $p['recipient_code'], 'border' => 1,
// 'align' => 'C',
// 'font-size' => 7,
// );
$list[$i]['quantity'] = array(
'width' => $widths['quantity'],
'value' => format_number($position['quantity']) . PHP_EOL . $position['unit_name'],
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
/*
$list[$i]['unit'] = array(
'width' => $widths['unit'],
'value' => $position['unit_id'],
'border' => 1,
'align' => 'C',
'font-size' => 7,
);
*/
$price_total = 0.0;
if ($calc['draw_discount']) {
$tmp = ($position['price']) * (1 - $position['discount'] / 100);
$price_total = $tmp * $position['quantity'];
$list[$i]['draw_discount'] = array(
'width' => $widths['draw_discount'],
//'value' => format_number(unformat_number($position['price']) * (1 - $position['discount'] / 100)) . PHP_EOL . format_number($position['discount']),
'value' => format_number( ($position['price'])) . PHP_EOL . format_number($position['discount']),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$list[$i]['unit_price'] = array(
'width' => $widths['unit_price'],
'value' => format_number($tmp) . PHP_EOL . $this->currency_symbol,
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
} else {
$price_total = ($position['price']) * $position['quantity'];
$list[$i]['unit_price'] = array(
'width' => $widths['unit_price'],
'value' => format_number(($position['price'])) . PHP_EOL . $this->currency_symbol,
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
}
$list[$i]['unit_price_total'] = array(
'width' => $widths['unit_price_total'],
'value' => format_number($price_total),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$list[$i]['vat_id'] = array(
'width' => $widths['vat_id'],
'value' => format_number($position['vat_value']),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$vat_value = round($price_total * ($position['vat_value'] / 100), 2);
// $vat_value = round($position['total'] - $position['subtotal'], 2);
$list[$i]['vat_value'] = array(
'width' => $widths['vat_value'],
'value' => format_number($vat_value),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
// if ($this->currency_symbol == "USD") {
// $list[$i]['nw'] = array(
// 'width' => 9,
// 'value' => format_number(floatval(str_replace(",", ".", $p['netto_weight']))),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'C',
// 'font-size' => 7,
// );
// $list[$i]['bw'] = array(
// 'width' => 9,
// 'value' => format_number(floatval(str_replace(",", ".", $p['brutto_weight']))),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'C',
// 'font-size' => 7,
// );
//
// $nw += floatval(str_replace(",", ".", $p['netto_weight']));
// $bw += floatval(str_replace(",", ".", $p['brutto_weight']));
// }
$list[$i]['total'] = array(
'width' => $widths['total'],
'value' => format_number($price_total + $vat_value),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$totals[$position['vat_id']]['price'] += $price_total;// * (($this->currency_symbol != $position['currency_name']) ? $this->currency_value : 1);
$totals[$position['vat_id']]['total'] += ($price_total + $vat_value);// * (($this->currency_symbol != $position['currency_name']) ? $this->currency_value : 1);
$totals[$position['vat_id']]['vat'] += $vat_value;// * (($this->currency_symbol != $position['currency_name']) ? $this->currency_value : 1);
/*
echo '<pre>' . var_export($this->currency_symbol != $position['currency_name'], true);
echo '<pre>' . var_export($this->currency_symbol, true);
echo '<pre>' . var_export($position['currency_name'], true);
*/
//echo '<pre>' . var_export($position, true);
//echo '<pre>' . var_export($totals, true);
//continue;
$sum_total += ($price_total + $vat_value);// * (($this->currency_symbol != $position['currency_name']) ? $this->currency_value : 1);;
$sum_netto += $price_total ;//* (($this->currency_symbol != $position['currency_name']) ? $this->currency_value : 1);
/*
if ($this->type == "correct") {
$i++;
$qr = 'SELECT * FROM ecminvoiceoutitems WHERE id = \'' . $position['item_id'] . '\';';
$r = $db->fetchByAssoc($db->query($qr));
if ($position['id'] == $position['item_id']) {
$ssss = "t";
}
$list[$i]['position'] = array(
'width' => $widths['position'],
'value' => '',
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$list[$i]['description'] = array(
'width' => $widths['description'],
'value' => "bylo" . $ssss,
'border' => 1,
'align' => 'L',
'font-size' => 7,
);
// $list[$i]['recipient_code'] = array(
// 'width' => 10,
// 'value' => "",
// 'border' => 1,
// 'align' => 'C',
// 'font-size' => 7,
// );
$list[$i]['quantity'] = array(
'width' => $widths['quantity'],
'value' => (int) $r['quantity'] . PHP_EOL . $lv['ecmproducts_unit_dom'][$r['dd_unit_id']],
'border' => 1,
'align' => 'C',
'font-size' => 7,
);
//$list[$i]['unit'] = array(
// 'width' => $widths['unit'],
// 'value' => $lv['ecmproducts_unit_dom'][$r['dd_unit_id']],
// 'border' => 1,
// 'align' => 'C',
// 'font-size' => 7,
//);
$list[$i]['unit_price'] = array(
'width' => $widths['unit_price'],
'value' => format_number($r['price']),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$price_total = ($r['price']) * $r['quantity']; // - ($r['price'] * $r['discount'] / 100)
$list[$i]['unit_price_total'] = array(
'width' => $widths['unit_price_total'],
'value' => format_number($price_total),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$list[$i]['vat_id'] = array(
'width' => $widths['vat_id'],
'value' => format_number($r['ecmvat_value']),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$vat_value = round($price_total * ($r['ecmvat_value'] / 100), 2);
$list[$i]['vat_value'] = array(
'width' => $widths['vat_value'],
'value' => format_number($vat_value),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$list[$i]['total'] = array(
'width' => $widths['total'],
'value' => format_number($price_total + $vat_value),
'border' => 1,
'align' => 'R',
'font-size' => 7,
);
$totals[$position['vat_id']]['price'] -= $price_total;
$totals[$position['vat_id']]['total'] -= ($price_total + $vat_value);
$totals[$position['vat_id']]['vat'] -= $vat_value;
$sum_total -= $price_total + $vat_value;
$sum_netto -= $price_total;
}
*/
$i++;
}
}
//echo '<pre>' . var_export($totals, true);
//exit;
$pdf->Ln(8);
$pdf->setX(10);
if($this->parent_document_no) {
$pdf->SetFont('arialpl', '', 8);
$pdf->Cell(85, 1, "Zamówienie klienta: " . $this->parent_document_no, 0, 0, 'L', 1);
$pdf->Ln(3);
}
$pdf->DrawTable($list, array(0));
/* EOF: Position list. */
$pdf->Ln(1);
$pdf->setX(10);
$pdf->SetFont('arialpl', '', 7);
$pdf->Cell(25, 4, 'Waga całkowita netto: ', 0, 0, 'L', 1);
$pdf->SetFont('arialpl', 'B', 7);
$pdf->Cell(10, 4, format_number($brutto_weight) . ' KG', 0, 0, 'L', 1);
$pdf->Ln(4);
$pr = ($pdf->fw - $pdf->lMargin - $pdf->rMargin) / 100;
//$pdf->SetX($pdf->fw-$pdf->rMargin-$pr*34);
//$q = 'SELECT i.`document_no` FROM `ecmprepaymentinvoices` AS i WHERE i.`ecmsale_id` IN (SELECT DISTINCT(ii.`parent_doc_id`) FROM `ecminvoiceoutitems` AS ii JOIN `ecminvoiceouts` AS i ON ii.`ecminvoiceout_id` = i.`id` WHERE i.`id` = \'' . $this->id . '\' AND ii.`parent_doc_type` = \'EcmSales\');';
//$rr_prepayment = $db->fetchByAssoc($db->query($q));
$summary = array();
$i = 0;
if ($calc['vats']) {
// $summary[] = array(
// 'subtotal1' => array(
// 'width' => 42,
// 'value' => $mod_strings['LBL_PDF_TOTAL'],
// 'background' => array(255, 255, 255),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 7,
// ),
// 'subtotal2' => array(
// 'width' => 14,
// 'value' => $calc['subtotal'],
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'R',
// 'font-size' => 7,
// ),
// );
$summary[$i]['fix'] = array(
'width' => $widths['fix'],
'value' => '',
'border' => 0,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$summary[$i]['vat_rate'] = array(
'width' => $widths['vat_rate'],
'value' => $mod_strings['LBL_PDF_LIST_VAT_RATE'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$summary[$i]['netto_total'] = array(
'width' => $widths['netto_total'],
'value' => $mod_strings['LBL_PDF_LIST_NETTO_TOTAL'], //$mod_strings['LBL_PDF_LIST_TOTAL_PRICE'],
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$summary[$i]['vat_total'] = array(
'width' => $widths['vat_total'],
'value' => $mod_strings['LBL_PDF_LIST_VAT_TOTAL'],
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$summary[$i]['brutto_total'] = array(
'width' => $widths['brutto_total'],
'value' => $mod_strings['LBL_PDF_LIST_BRUTTO_TOTAL'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
foreach ($calc['vats'] as $key => $value) {
$i++;
$qr = 'SELECT id, name, value FROM ecmvats WHERE id = \'' . $key . '\';';
$r = $db->fetchByAssoc($db->query($qr));
//echo '<pre>' . var_export($totals, true);exit;
$summary[$i]['fix'] = array(
'width' => $widths['fix'],
'value' => '',
'border' => 0,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$summary[$i]['vat_rate'] = array(
'width' => $widths['vat_rate'],
'value' => format_number($r['value']),
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
$summary[$i]['netto_total'] = array(
'width' => $widths['netto_total'],
'value' => format_number($totals[$r['id']]['price']). ' ' . $this->currency_symbol,
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
$summary[$i]['vat_total'] = array(
'width' => $widths['vat_total'],
'value' => format_number($totals[$r['id']]['vat']). ' ' . $this->currency_symbol,
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
$summary[$i]['brutto_total'] = array(
'width' => $widths['brutto_total'],
'value' => format_number($totals[$r['id']]['total']). ' ' . $this->currency_symbol,
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
}
}
if ($calc['discount']) {
$disc = floatval(str_replace(",", ".", str_replace(".", "", $this->discount)));
//
//// $summary[]['total21'] = array(
//// 'width' => 35,
//// 'value' => 'RAZEM',
//// 'background' => array(255, 255, 255),
//// 'border' => 1,
//// 'overflow' => 1,
//// 'align' => 'C',
//// 'font-size' => 7,
//// 'font-style' => 'b',
//// );
////
//// $summary[]['total22'] = array(
//// 'width' => 14,
//// 'value' => $calc['total2'],
//// 'border' => 1,
//// 'overflow' => 1,
//// 'align' => 'R',
//// 'font-size' => 7,
//// );
//
// $summary[] = array(
// 'discount1' => array(
// 'width' => 10,
// 'value' => $mod_strings['LBL_PDF_DISCOUNT'],
// 'background' => array(255, 255, 255),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'L',
// 'font-size' => 7,
// 'font-style' => 'b',
// ),
// 'discount2' => array(
// 'width' => 41,
// 'value' => format_number($disc),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'R',
// 'font-size' => 7,
// ),
// );
}
//if ($this->currency_symbol == "USD") {
// $summary[] = array(
// 'total1' => array(
// 'width' => 10,
// 'value' => $mod_strings['LBL_PDF_END_TOTAL'],
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'C',
// 'font-size' => 7,
// 'font-style' => 'b',
// ),
// 'total2' => array(
// 'width' => 12,
// 'value' => format_number($sum_netto - floatval(str_replace(",", ".", str_replace(".", "", str_replace("PLN", "", $calc['discount']['value']))))),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'R',
// 'font-size' => 7,
// 'font-style' => 'b',
// ),
// 'total3' => array(
// 'width' => 9,
// 'value' => format_number($nw),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'R',
// 'font-size' => 7,
// 'font-style' => 'b',
// ),
// 'total4' => array(
// 'width' => 9,
// 'value' => format_number($bw),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'R',
// 'font-size' => 7,
// 'font-style' => 'b',
// ),
// 'total5' => array(
// 'width' => 14,
// 'value' => format_number($sum_total - floatval(str_replace(",", ".", str_replace(".", "", str_replace("PLN", "", $calc['discount']['value']))))),
// 'border' => 1,
// 'overflow' => 1,
// 'align' => 'R',
// 'font-size' => 7,
// 'font-style' => 'b',
// ),
// );
//} else {
//echo '<pre>' . var_export($sum_total, true);
//exit;
$brutto = $sum_total - $disc;
$netto = $sum_netto;
$vvat = $brutto - $netto;
$i++;
$summary[$i]['fix'] = array(
'width' => $widths['fix'],
'value' => '',
'border' => 0,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$summary[$i]['vat_rate'] = array(
'background' => array(233, 233, 233),
'width' => $widths['vat_rate'],
'value' => $mod_strings['LBL_PDF_LIST_SUMMARY_TOTAL'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-size' => 7,
'font-style' => 'b',
);
$summary[$i]['netto_total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['netto_total'],
'value' => format_number($netto). ' ' . $this->currency_symbol,
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
'font-style' => 'b',
);
$summary[$i]['vat_total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['vat_total'],
'value' => format_number($vvat). ' ' . $this->currency_symbol,
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
'font-style' => 'b',
);
$summary[$i]['brutto_total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['brutto_total'],
'value' => format_number($brutto). ' ' . $this->currency_symbol,
'border' => 1,
'align' => 'R',
'font-size' => 7,
'font-style' => 'b',
);
/*
if($this->prepaid_nr && $this->prepaid) {
$i++;
$summary[$i]['fix'] = array(
'width' => $widths['fix'],
'value' => $this->prepaid_nr ? ($mod_strings['LBL_PDF_PREPAID_DOCUMENTS'] . ': ' . $this->prepaid_nr) : '',
'border' => 0,
'overflow' => 1,
'align' => 'L',
'font-style' => '',
'font-size' => 7,
);
$summary[$i]['vat_rate'] = array(
'width' => $widths['vat_rate'],
'value' => format_number(23),
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
$summary[$i]['netto_total'] = array(
'width' => $widths['netto_total'],
'value' => format_number(-($this->prepaid * 0.77)). ' ' . $this->currency_symbol,
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
$summary[$i]['vat_total'] = array(
'width' => $widths['vat_total'],
'value' => format_number(-($this->prepaid * 0.23)). ' ' . $this->currency_symbol,
'background' => array(255, 255, 255),
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
$summary[$i]['brutto_total'] = array(
'width' => $widths['brutto_total'],
'value' => format_number(-$this->prepaid ) . ' ' . $this->currency_symbol,
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
);
$i++;
$summary[$i]['fix'] = array(
'width' => $widths['fix'],
'value' => '',
'border' => 0,
'overflow' => 1,
'align' => 'C',
'font-style' => 'b',
'font-size' => 7,
);
$summary[$i]['vat_rate'] = array(
'background' => array(233, 233, 233),
'width' => $widths['vat_rate'],
'value' => $mod_strings['LBL_PDF_LIST_SUMMARY_TOTAL'],
'border' => 1,
'overflow' => 1,
'align' => 'C',
'font-size' => 7,
'font-style' => 'b',
);
$summary[$i]['netto_total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['netto_total'],
'value' => format_number($netto - $this->prepaid * 0.77). ' ' . $this->currency_symbol,
'border' => 1,
'overflow' => 1,
'align' => 'R',
'font-size' => 7,
'font-style' => 'b',
);
$summary[$i]['vat_total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['vat_total'],
'value' => format_number($vvat - $this->prepaid * 0.23). ' ' . $this->currency_symbol,
'border' => 1, 'overflow' => 1,
'align' => 'R',
'font-size' => 7,
'font-style' => 'b',
);
$summary[$i]['brutto_total'] = array(
'background' => array(233, 233, 233),
'width' => $widths['brutto_total'],
'value' => format_number($brutto - $this->prepaid) . ' ' . $this->currency_symbol,
'border' => 1,
'align' => 'R',
'font-size' => 7,
'font-style' => 'b',
);
}
*/
// ~~~~~~~~~~~~~~
$pdf->SetX(10);
$pdf->DrawTable($summary);