|
|
@@ -673,14 +673,15 @@ and bu.BILLING_OWNER='{$this->BO['ID']}'
|
|
|
order by bk.BILL_DATE,bn.ID
|
|
|
EOT;
|
|
|
|
|
|
- $xmlVAT = array(
|
|
|
- 'ZW' => array('netto' => 'K_10', 'vat' => ''),
|
|
|
- '0' => array('netto' => 'K_13', 'vat' => ''),
|
|
|
- '7' => array('netto' => 'K_17', 'vat' => 'K_18'),
|
|
|
- '8' => array('netto' => 'K_17', 'vat' => 'K_18'),
|
|
|
- '22' => array('netto' => 'K_19', 'vat' => 'K_20'),
|
|
|
- '23' => array('netto' => 'K_19', 'vat' => 'K_20')
|
|
|
- );
|
|
|
+ $xmlVAT = [
|
|
|
+ 'ZW' => ['netto' => ['K_10']],
|
|
|
+ '0' => ['netto' => ['K_13']],
|
|
|
+ '7' => ['netto' => ['K_17'], 'vat' => 'K_18'],
|
|
|
+ '8' => ['netto' => ['K_17'], 'vat' => 'K_18'],
|
|
|
+ '22' => ['netto' => ['K_19'], 'vat' => 'K_20'],
|
|
|
+ '23' => ['netto' => ['K_19'], 'vat' => 'K_20'],
|
|
|
+ 'OO UE' => ['netto' => ['K_11', 'K_12']],
|
|
|
+ ];
|
|
|
|
|
|
try {
|
|
|
if (DB::getPDO(931)->fetchValue("select sum(c) from (select count(*) as c from BILLS_FVAT where OPEN='y' union select count(*) as c from BILLS_KORV where OPEN='y') as c;")) {
|
|
|
@@ -720,10 +721,10 @@ EOT;
|
|
|
$data[$row['BN_ID']][0]['AdresKontrahenta'] = $row['AdresKontrahenta'];
|
|
|
$data[$row['BN_ID']][0]['DowodSprzedazy'] = $row['DowodSprzedazy'];
|
|
|
$data[$row['BN_ID']][0]['DataWystawienia'] = $row['DataWystawienia'];
|
|
|
- if (!in_array($row['VAT_NAME'],array_keys($xmlVAT))) throw new Exception("Problem ze stawką VAT (1)");
|
|
|
- $data[$row['BN_ID']][1][$xmlVAT[$row['VAT_NAME']]['netto']] += $row['Netto'];
|
|
|
- if ($row['VAT']) {
|
|
|
- if (!$xmlVAT[$row['VAT_NAME']]['vat']) throw new Exception("Problem ze stawką VAT (2)");
|
|
|
+ if (!in_array($row['VAT_NAME'],array_keys($xmlVAT))) throw new Exception("Problem ze stawką VAT (1) - {$row['VAT_NAME']}");
|
|
|
+ foreach ($xmlVAT[$row['VAT_NAME']]['netto'] as $netto) $data[$row['BN_ID']][1][$netto] += $row['Netto'];
|
|
|
+ if ($row['VAT'] > 0) {
|
|
|
+ if (!isset($xmlVAT[$row['VAT_NAME']]['vat'])) throw new Exception("Problem ze stawką VAT (2) - {$row['VAT_NAME']}");
|
|
|
$data[$row['BN_ID']][1][$xmlVAT[$row['VAT_NAME']]['vat']] += $row['VAT'];
|
|
|
$allVAT += $row['VAT'];
|
|
|
}
|
|
|
@@ -737,23 +738,23 @@ EOT;
|
|
|
$data[$row['BN_ID']][0]['DowodSprzedazy'] = $row['DowodSprzedazy'];
|
|
|
$data[$row['BN_ID']][0]['DataWystawienia'] = $row['DataWystawienia'];
|
|
|
$data[$row['BN_ID']][0]['DataSprzedazy'] = $row['DataSprzedazy'];
|
|
|
- if (!(in_array($row['VAT_NAME'], array_keys($xmlVAT)) && in_array($row['N_VAT_NAME'], array_keys($xmlVAT)))) throw new Exception("Problem ze stawką VAT (1)");
|
|
|
- if (($row['VAT'] && !($xmlVAT[$row['VAT_NAME']]['vat'])) || ($row['N_VAT'] && !($xmlVAT[$row['N_VAT_NAME']]['vat']))) throw new Exception("Problem ze stawką VAT (2)");
|
|
|
+ if (!(in_array($row['VAT_NAME'], array_keys($xmlVAT)) && in_array($row['N_VAT_NAME'], array_keys($xmlVAT)))) throw new Exception("Problem ze stawką VAT (3) - {$row['VAT_NAME']}");
|
|
|
+ if ((($row['VAT'] > 0) && !(isset($xmlVAT[$row['VAT_NAME']]['vat']))) || (($row['N_VAT'] > 0) && !(isset($xmlVAT[$row['N_VAT_NAME']]['vat'])))) throw new Exception("Problem ze stawką VAT (4) - {$row['VAT_NAME']}");
|
|
|
if ($row['VAT_NAME'] == $row['N_VAT_NAME']) {
|
|
|
- $data[$row['BN_ID']][1][$xmlVAT[$row['VAT_NAME']]['netto']] += round($row['AMMOUNT']*$row['PRICE'],2);
|
|
|
- if ($row['VAT']) {
|
|
|
+ foreach ($xmlVAT[$row['VAT_NAME']]['netto'] as $netto) $data[$row['BN_ID']][1][$netto] += round($row['AMMOUNT']*$row['PRICE'],2);
|
|
|
+ if ($row['VAT'] > 0) {
|
|
|
$data[$row['BN_ID']][1][$xmlVAT[$row['VAT_NAME']]['vat']] += round(round($row['AMMOUNT']*$row['PRICE'],2)*$row['VAT']/100,2);
|
|
|
$allVAT += round(round($row['AMMOUNT']*$row['PRICE'],2)*$row['VAT']/100,2);
|
|
|
}
|
|
|
} else {
|
|
|
- $data[$row['BN_ID']][1][$xmlVAT[$row['VAT_NAME']]['netto']] += round($row['N_AMMOUNT']*$row['N_PRICE'],2) + round($row['AMMOUNT']*$row['PRICE'],2);
|
|
|
- $data[$row['BN_ID']][1][$xmlVAT[$row['N_VAT_NAME']]['netto']] -= round($row['N_AMMOUNT']*$row['N_PRICE'],2);
|
|
|
- if ($row['VAT']) {
|
|
|
+ foreach ($xmlVAT[$row['VAT_NAME']]['netto'] as $netto) $data[$row['BN_ID']][1][$netto] += round($row['N_AMMOUNT']*$row['N_PRICE'],2) + round($row['AMMOUNT']*$row['PRICE'],2);
|
|
|
+ foreach ($xmlVAT[$row['N_VAT_NAME']]['netto'] as $netto) $data[$row['BN_ID']][1][$netto] -= round($row['N_AMMOUNT']*$row['N_PRICE'],2);
|
|
|
+ if ($row['VAT'] > 0) {
|
|
|
$data[$row['BN_ID']][1][$xmlVAT[$row['VAT_NAME']]['vat']] += round(round($row['N_AMMOUNT']*$row['N_PRICE'],2)*$row['VAT']/100,2)
|
|
|
+ round(round($row['AMMOUNT']*$row['PRICE'],2)*$row['VAT']/100,2);
|
|
|
$allVAT += round(round($row['N_AMMOUNT']*$row['N_PRICE'],2)*$row['VAT']/100,2) + round(round($row['AMMOUNT']*$row['PRICE'],2)*$row['VAT']/100,2);
|
|
|
}
|
|
|
- if ($row['N_VAT']) {
|
|
|
+ if ($row['N_VAT'] > 0) {
|
|
|
$data[$row['BN_ID']][1][$xmlVAT[$row['N_VAT_NAME']]['vat']] -= round(round($row['N_AMMOUNT']*$row['N_PRICE'],2)*$row['N_VAT']/100,2);
|
|
|
$allVAT -= round(round($row['N_AMMOUNT']*$row['N_PRICE'],2)*$row['N_VAT']/100,2);
|
|
|
}
|
|
|
@@ -762,7 +763,6 @@ EOT;
|
|
|
|
|
|
ksort($data);
|
|
|
|
|
|
-
|
|
|
function addCdata(&$node, $value) {
|
|
|
$dom_node = dom_import_simplexml($node);
|
|
|
$dom_owner = $dom_node->ownerDocument;
|