Przeglądaj źródła

Merge branch 'master' of bn.git:plabudda/se

Piotr Labudda 8 lat temu
rodzic
commit
7c2cc21e8f
1 zmienionych plików z 21 dodań i 21 usunięć
  1. 21 21
      SE/se-lib/Route/UrlAction/JPK.php

+ 21 - 21
SE/se-lib/Route/UrlAction/JPK.php

@@ -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;