Files
crm.twinpol.com/modules/EcmInvoiceOuts/PDFTemplate/content_end.php
2025-05-12 15:44:39 +00:00

594 lines
22 KiB
PHP
Executable File

<?php
$w = "90"; // first column width
$w3 = "90";
$w2 = "20"; // second column width
if($focus->type=='normal')$text='Faktura nr ';
if($focus->type=='correct')$text='FAKTURA KOREKTA nr';
$content = '<p style="text-align: center;"><b>'.$text.' '.$focus->document_no.'</b></p>
<table style="width: 100%; font-size: 14pt;">
<tr>
<td style="width: ' . $w . '%">
<b>'.$labels['LBL_PDF_CONTENT_INVOICE_FOR'].'</b>
</td>
<td style="width: ' . $w3 . '%">';
if($focus->parent_shipping_address_name!=''){
$content.= '<b>'.$labels['LBL_PDF_CONTENT_DELIVERY'].'</b>';
}
$content.= '</td>
<td style="width: ' . $w2 . '%"></td>
<td style="text-align: right"></td>
</tr>
<tr>
<td style="width: ' . $w . '%">
' . $focus->parent_name . '
</td>
<td style="width: ' . $w3 . '%">
'.$focus->parent_shipping_address_name.'
</td>
<td style="width: ' . $w2 . '%"></td>
<td style="text-align: right"></td>
</tr>
<tr>
<td style="width: ' . $w . '%">
' . $focus->parent_address_street . '
</td>
<td style="width: ' . $w3 . '%">
' . $focus->parent_shipping_address_street . '
</td>
<td style="width: ' . $w2 . '%">';
$content.= '</td>
<td style="text-align: right">
</td>
</tr>
<tr>
<td style="width: ' . $w . '%">
'. $focus->parent_address_postalcode . ' ' . $focus->parent_address_city;
if (!is_null($focus->parent_address_country) & $focus->parent_address_country!='')
$content.=', '.$focus->parent_address_country;
$content.='
</td>
<td style="width: ' . $w3 . '%">
'. $focus->parent_shipping_address_postalcode . ' ' . $focus->parent_shipping_address_city;
if (!is_null($focus->parent_shipping_address_country) & $focus->parent_shipping_address_country!='')
$content.=', '.$focus->parent_shipping_address_country;
$content.='
</td>
<td style="width: ' . $w2 . '%">
</td>
<td style="text-align: right">
</td>
</tr>';
$content.='
<tr>
<td valign="top" style="width: ' . $w . '%">';
if (!is_null($focus->parent_nip) && $focus->parent_nip) {
$content.=$labels['LBL_PDF_CONTENT_NIP'].' '.$focus->parent_nip;
$nip = true;
}
if (!is_null($focus->parent_iln) && $focus->parent_iln) {
if ($nip) $content.'<br>'; $nip = false;
$content.=$labels['LBL_PDF_CONTENT_ILN'].' '.$focus->parent_iln;
}
$content.='
</td>';
$content.='
<td valign="top" style="width: ' . $w3 . '%">';
if (!is_null($focus->parent_shipping_nip) && $focus->parent_shipping_nip) {
$content.=$labels['LBL_PDF_CONTENT_NIP'].' '.$focus->parent_shipping_nip;
$nip = true;
}
if (!is_null($focus->parent_shipping_iln) && $focus->parent_shipping_iln) {
if ($nip) $content.'<br>'; $nip = false;
$content.=$labels['LBL_PDF_CONTENT_ILN'].' '.$focus->parent_shipping_iln;
}
$content.='
</td>
<td valign="top" style="width: ' . $w2 . '%"></td>
<td colspan="0" valign="top" style="text-align: right">
</td>
</tr>';
$content.='
</table>
';
if ($focus->name && $focus->name != '') {
$content .= '
<table style="width: 100%; text-align: center">
<tr><td>
<b>' . $focus->name . '</b>
</td></tr>
</table>
';
}
$sale=new EcmSale();
$sale->retrieve($focus->so_id);
$content .= '<br><table width="100%" style="font-size: 7pt;text-align:left;vertical-align:top;">
<tr><td width="28%">'.$labels['LBL_PDF_CONTENT_REGISTER_DATE'].'</td><td width="25%"><b>'.$focus->register_date.'</b></td>
<td width="22%" style="text-align:right;">'.$labels['LBL_PDF_SALE_LABEL'].'</td><td style="text-align:right;" width="25%"><b>'.$sale->document_no.'</b></td></tr>
<tr><td width="29%">'.$labels['LBL_PDF_CONTENT_SELL_DATE_OTHER'].'</td><td width="25%"><b>'.$focus->register_date.'</b>
<td width="21%" style="text-align:right;"></td><td style="text-align:right;" width="25%"><b></b></td></td>';
$content.='</tr></table>';
// start items table
$columns = array ();
$columns ['position'] = array (
'field' => array (
'position'
),
'label' => 'Lp.',
'align' => 'center'
);
$columns ['name'] = array (
'field' => array (
'name',
'product_code'
),
'label' => 'Nazwa<br>Indeks',
'align' => 'left'
);
$columns ['qty'] = array (
'field' => array (
'quantity',
'unit_name'
),
'label' => 'Ilość<br>J.m.',
'align' => 'right'
);
/*
$columns ['price_start'] = array (
'field' => array (
'price_start'
),
'label' => 'Cena<br>Upust',
'align' => 'right'
);
*/
$columns ['price_netto'] = array (
'field' => array (
'price_netto'
),
'label' => 'Cena netto',
'align' => 'right'
);
$columns ['total_netto'] = array (
'field' => array (
'total_netto'
),
'label' => 'Wartość<br>netto',
'align' => 'right'
);
$columns ['ecmvat_name'] = array (
'field' => array (
'ecmvat_name'
),
'label' => 'VAT<br>(%)',
'align' => 'center'
);
$columns ['total_vat'] = array (
'field' => array (
'total_vat'
),
'label' => 'Wartość<br>VAT',
'align' => 'right'
);
$columns ['total_brutto'] = array (
'field' => array (
'total_brutto'
),
'label' => 'Wartość<br>brutto',
'align' => 'right'
);
// set widths
$totals = array ();
$columns ['position'] ['width'] = '5';
$columns ['name'] ['width'] = '41';
$columns ['qty'] ['width'] = '10';
$columns ['price_netto'] ['width'] = '10';
$columns ['total_netto'] ['width'] = '10';
$columns ['ecmvat_name'] ['width'] = '4';
$columns ['total_vat'] ['width'] = '10';
$columns ['total_brutto'] ['width'] = '10';
// rysujemy :)
$content .= '
<table style="width: 100%; font-size: 7pt; border: 0.5 solid black; border-collapse: collapse;"><thead>
<tr>
';
foreach ( $columns as $col ) {
$content .= '
<th style="border: 0.5 solid black; width: ' . $col ['width'] . '%;background-color: #E9E9E9;">' . $col ['label'] . '</th>
';
}
$content .= '
</tr></thead><tbody>
';
$counter=1;
if($focus->type=='normal'){
foreach ( $positions as $pos ) {
$content .= '<tr>';
foreach ( $columns as $col) {
$content .= '<td style="border: 0.5 solid black; text-align: ' . $col ['align'] . ';">';
foreach ( $col ['field'] as $f ) {
if ($f == 'price_start') $pos[$f] = '&nbsp;&nbsp;'.format_number($pos['price_start'],2).'&nbsp;&nbsp;<br>'.$pos['discount'].'%&nbsp;&nbsp;';
else
if (! $pos [$f] || $pos [$f] == '')
$pos [$f] = '-';
$content .= $pos [$f] . '<br>';
}
$content .= '</td>';
}
$content .= '</tr>';
}
} else {
foreach ( $positions as $pos ) {
$content .= '<tr>';
foreach ( $columns as $col ) {
$content .= '<td style="border: 0.5 solid black; text-align: ' . $col ['align'] . ';">';
foreach ( $col ['field'] as $f ) {
if ((! $pos [$f] || $pos [$f] == '') && $f!='quantity')
$pos [$f] = '-';
$content .= $pos [$f] . '<br>';
}
$content .= '</td>';
}
$content .= '</tr><tr>';
// old correct item
$pos['name'] = 'było';
$pos['total_netto'] =format_number( $pos['old_total_netto']);
$pos['total_brutto'] = format_number($pos['old_total_brutto']);
$pos['total_vat'] = format_number($pos['old_total_vat']);
$pos['price_netto'] = format_number($pos['old_price_netto']);
$pos['quantity'] = $pos['old_quantity'];
$pos['position']='';
$pos['product_code']=' ';
foreach ( $columns as $col ) {
$content .= '<td style="border: 0.5 solid black; text-align: ' . $col ['align'] . ';">';
foreach ( $col ['field'] as $f ) {
if (! $pos [$f] || $pos [$f] == '')
$pos [$f] = '-';
$content .= $pos [$f] . '<br>';
}
$content .= '</td>';
}
$content .= '</tr>';
}
}
$content .= '
</tbody></table>
';
// summary table
// get currency symbol
$c = new Currency ();
$c->retrieve ( $focus->currency_id );
$symbol = $c->symbol;
unset ( $c );
$content .= '
<table style="width:100%"><tr><td width="60%"></td><td>
<table style="font-size: 9pt; border: 0.5 solid black; border-collapse: collapse; width: 290px;">
';
$content .= '
<tr>
<td style="font-size: 7pt; border: 0.5 solid black; width: 23%;text-align: center;">
<b>VAT (%)</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: center;">
<b>Wartość netto</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: center;">
<b>Wartość VAT</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 27%;text-align: center;">
<b>Wartość brutto</b>
</td>';
$content.='</tr>
';
$vats = explode(",", $focus->vats_summary);
foreach ($vats as $v){
if($v=='')continue;
$v2 = explode(":", $v);
$content .= '
<tr>
<td style="font-size: 7pt; border: 0.5 solid black; width: 23%;text-align: center;">
'.$v2[0].'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
'.format_number($v2[1]).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
'.format_number($v2[2]).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 27%;text-align: right;">
'.format_number($v2[3]).'
</td></tr>';
}
if($focus->id=='c2d7473a-c0b8-6718-0947-54993423de20'){
$content .= '
<tr>
<td style="font-size: 7pt; border: 0.5 solid black; width: 23%;text-align: center;">
'.$v2[0].'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
-'.format_number($v2[1]).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
-'.format_number($v2[2]).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 27%;text-align: right;">
-'.format_number($v2[3]).'
</td></tr>';
}
// totals
$content .= '
<tr>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 23%;text-align: center;background-color: #E9E9E9;">
<b>Razem</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 25%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number($focus->id=='c2d7473a-c0b8-6718-0947-54993423de20' ? 0 : $focus->total_netto).'</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 25%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number($focus->id=='c2d7473a-c0b8-6718-0947-54993423de20' ? 0 : $focus->total_vat).'</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 27%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number($focus->id=='c2d7473a-c0b8-6718-0947-54993423de20' ? 0 : $focus->total_brutto).'</b>
</td></tr></table></td></tr></table>';
if($focus->id!='3c4482f1-6b7e-e9db-8606-58887512be46'){
$content.='<table style="width:100%;">
<tr><td width="62%" style="text-align:top;vertical-align: text-top;">
<span style="font-size: 7pt;"><b>'.$labels['LBL_PDF_PREPAID_BEFORE'].'</b></span>
<table style="width: 380px; font-size: 7pt; border: 0.5 solid black; border-collapse: collapse;">
<tr>
<th style="font-size: 6.5pt; border: 0.5 solid black; width: 15%;text-align: center;background-color: #E9E9E9;">'.$labels['LBL_PDF_PREPAID_NO'].'</th>
<th style="font-size: 6.5pt; border: 0.5 solid black; width: 30%;text-align: center;background-color: #E9E9E9;">'.$labels['LBL_PDF_PREPAID_NUMBER'].'</th>
<th style="font-size: 6.5pt; border: 0.5 solid black; width: 18%;text-align: center;background-color: #E9E9E9;">'.$labels['LBL_PDF_PREPAID_DATE'].'</th>
<th style="font-size: 6.5pt; border: 0.5 solid black; width: 18%;text-align: center;background-color: #E9E9E9;">'.$labels['LBL_PDF_PREPAID_NETTO'].'</th>
<th style="font-size: 6.5pt; border: 0.5 solid black; width: 18%;text-align: center;background-color: #E9E9E9;">'.$labels['LBL_PDF_PREPAID_BRUTTO'].'</th>
</tr>';
$z=$GLOBALS['db']->query('select document_no,register_date,prepaid_amount,total_vat from ecmprepaymentinvoices where ecmsale_id="'.$focus->so_id.'"');
$nr=1;
$t1=0;
$t2=0;
while($dd=$GLOBALS['db']->fetchByAssoc($z)){
$content.='<tr>
<td style="text-align:center;border: 0.5 solid black;">'.$nr.'</td>
<td style="text-align:left;border: 0.5 solid black;">'.$dd['document_no'].'</td>
<td style="text-align:left;border: 0.5 solid black;">'.date("d.m.Y",strtotime($dd['register_date'])).'</td>
<td style="text-align:right;border: 0.5 solid black;">'.format_number($dd['prepaid_amount']-$dd['total_vat']).'</td>
<td style="text-align:right;border: 0.5 solid black;">'.format_number($dd['prepaid_amount']).'</td>
</tr>';
$nr++;
$t1+=$dd['prepaid_amount']-$dd['total_vat'];
$t2+=$dd['prepaid_amount'];
}
$content.='<tr><td colspan="3" style="text-align:right;"><b>Razem:<b></td><td style="text-align:right;border: 0.5 solid black;">'.format_number($t1).'</td><td style="text-align:right;border: 0.5 solid black;
">'.format_number($t2).'</td></tr></table>';
} else {
$content.='<table style="width:100%;">
<tr><td width="62%" style="text-align:top;vertical-align: text-top;font-size: 7pt;">&nbsp;Faktura zaliczkowa nr: <b>3/2016</b>';
}
$content .= '<br>
<table style="font-size: 7pt;">
<tr><td>'.$labels['LBL_PDF_TO_PAY'].'</td><td style="text-align: right;"><b>'.format_number($focus->total_brutto).' '.$symbol.'</b></td><td></td></tr></table>';
$content .= '
<table style="font-size: 7pt;">
<tr><td>Przedpłata:</td><td style="text-align: right;"><b>'.format_number($focus->prepaid).' '.$symbol.'</b></td><td></td></tr></table>';
if($focus->paid_val!='0'){
$content .= '
<table style="font-size: 7pt;">
<tr><td>'.$labels['LBL_PDF_PAID'].'</td><td style="text-align: right;"><b>'.format_number(abs($focus->paid_val)).' '.$symbol.'</b></td><td></td></tr></table>';
}
$paid_text='w Terminie <b>'.$focus->payment_date_days.' dni</b> do <b>'.date('d.m.Y',strtotime($focus->payment_date)).'</b> '.$GLOBALS['app_list_strings']['payment_method_dom'][$focus->payment_method];
if($focus->id!='3c4482f1-6b7e-e9db-8606-58887512be46'){
$content .= '
<table style="font-size: 7pt;">
<tr><td>'.$labels['LBL_PDF_LEFT_TO_PAID'].'</td><td style="text-align: right;"><b>'.format_number($focus->total_brutto-abs($focus->paid_val)-$focus->prepaid).' '.$symbol.'</b></td><td>'.$paid_text.'</td></tr></table>';
} else {
$content .= '
<table style="font-size: 7pt;">
<tr><td>'.$labels['LBL_PDF_LEFT_TO_PAID'].'</td><td style="text-align: right;"><b>'.format_number($focus->total_brutto-abs($focus->paid_val)-$focus->prepaid).' '.$symbol.'</b></td><td></td></tr></table>';
}
$content .= ' </td>
<td width="38%" style="text-align:top;vertical-align: text-top;">
<div style="height: 20px;"> </div>';
$content .= '
<table style="font-size: 9pt; border: 0.5 solid black; border-collapse: collapse; width: 300px;">
';
$content .= '
<tr>
<td style="font-size: 7pt; border: 0.5 solid black; width: 23%;text-align: center;">
<b>VAT (%)</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: center;">
<b>Wartość netto</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: center;">
<b>Wartość VAT</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 27%;text-align: center;">
<b>Wartość brutto</b>
</td>';
$content.='</tr>
';
$vats = explode(",", $focus->vats_summary);
$t1=0;
$t2=0;
$t3=0;
foreach ($vats as $v){
if($v=='')continue;
$v2 = explode(":", $v);
$vat=$GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select id from ecmvats where name like '".$v2[0]."' and deleted='0'"));
if($focus->id!='3c4482f1-6b7e-e9db-8606-58887512be46'){
$z=$GLOBALS['db']->fetchByAssoc(
$GLOBALS['db']->query('select sum(total_vat) as vat,sum(prepaid_amount) as brutto,sum(prepaid_amount-total_vat) as netto from ecmprepaymentinvoices where ecmsale_id="'.$focus->so_id.'" and vat_id="'.$vat['id'].'"'));
} else {
$v2[0]='23%';
$z['netto']='1624';
$z['vat']='373.52';
$z['brutto']='1997.52';
}
$content .= '
<tr>
<td style="font-size: 7pt; border: 0.5 solid black; width: 23%;text-align: center;">
'.$v2[0].'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
'.format_number($z['netto']*-1).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
'.format_number($z['vat']*-1).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 27%;text-align: right;">
'.format_number($z['brutto']*-1).'
</td></tr>';
$t1+=$z['netto']*-1;
$t2+=$z['vat']*-1;
$t3+=$z['brutto']*-1;
}
// totals
$content .= '
<tr>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 23%;text-align: center;background-color: #E9E9E9;">
<b>Razem</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 25%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number($t1).'</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 25%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number($t2).'</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 27%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number($t3).'</b>
</td></tr></table>';
$content .= '<p style="font-size: 5px;">&nbsp;</p>
<table style="font-size: 9pt; border: 0.5 solid black; border-collapse: collapse; width: 300px;">
';
$content .= '
<tr>
<td style="font-size: 7pt; border: 0.5 solid black; width: 23%;text-align: center;">
<b>VAT (%)</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: center;">
<b>Wartość netto</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: center;">
<b>Wartość VAT</b>
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 27%;text-align: center;">
<b>Wartość brutto</b>
</td>';
$content.='</tr>
';
$vats = explode(",", $focus->vats_summary);
$t1=0;
$t2=0;
$t3=0;
foreach ($vats as $v){
if($v=='')continue;
$v2 = explode(":", $v);
$vat=$GLOBALS['db']->fetchByAssoc($GLOBALS['db']->query("select id from ecmvats where name like '".$v2[0]."' and deleted='0'"));
if($focus->id!='3c4482f1-6b7e-e9db-8606-58887512be46'){
$z=$GLOBALS['db']->fetchByAssoc(
$GLOBALS['db']->query('select sum(total_vat) as vat,sum(prepaid_amount) as brutto,sum(prepaid_amount-total_vat) as netto from ecmprepaymentinvoices where ecmsale_id="'.$focus->so_id.'" and vat_id="'.$vat['id'].'"'));
} else {
$v2[0]='23%';
$z['netto']='1624';
$z['vat']='373.52';
$z['brutto']='1997.52';
}
$content .= '
<tr>
<td style="font-size: 7pt; border: 0.5 solid black; width: 23%;text-align: center;">
'.$v2[0].'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
'.format_number(abs($z['netto']-$v2[1])).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 25%;text-align: right;">
'.format_number(abs($z['vat']-$v2[2])).'
</td>
<td style="font-size: 7pt; border: 0.5 solid black; width: 27%;text-align: right;">
'.format_number(abs($z['brutto']-$v2[3])).'
</td></tr>';
$t1+=$z['netto']-$v2[1];
$t2+=$z['vat']-$v2[2];
$t3+=$z['brutto']-$v2[3];
}
// totals
$content .= '
<tr>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 23%;text-align: center;background-color: #E9E9E9;">
<b>Razem</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 25%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number(abs($t1)).'</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 25%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number(abs($t2)).'</b>
</td>
<td style="font-size: 6.5pt; border: 0.5 solid black; width: 27%;text-align: right;background-color: #E9E9E9;">
<b>'.format_number(abs($t3)).'</b>
</td></tr></table>';
$content .= '
</table>';
$content .= '
</table>';
$content .= ' </td></tr>
</table>';
$content .= '<br><p style="font-size: 7pt;">'.$labels['LBL_PDF_CONTENT_ISSUED_BY'].' <b>'.$user->full_name.'</b></p>
<br><br>';