LAST_REFERER = $_SERVER['HTTP_REFERER'];
if (($this->REFERER=V::get('REFERER','',$_POST))=='') $this->REFERER = $_SERVER['HTTP_REFERER'];
try {
if (!($ID_JPK = V::get('ID_JPK',0,$_GET,'int'))) throw new Exception("Błąd parametru");
if ($result = DB::getPDO()->fetchall("select * from JPK where ID='{$ID_JPK}'")) $this->JPK = $result[0];
else throw new Exception("Dostęp zabroniony");
if ($result = DB::getPDO()->fetchall("select * from BILLING_OWNER where ID='{$this->JPK['ID_BILLING_OWNER']}'")) $this->BO = $result[0];
else throw new Exception("Błąd spójności danych");
} catch (Exception $e) {
SE_Layout::gora();
SE_Layout::menu();
SE_Layout::alert('danger',$e->getMessage());
?>
fetchValue("select max(MONTH) from JPK where ID_BILLING_OWNER='{$this->JPK['ID_BILLING_OWNER']}' and TYPE='{$this->JPK['TYPE']}' and PURPOSE='1'");
if (strtotime($month) <= strtotime($lastMonth)) throw new Exception("błędny miesiąc (deklaracja z tego okresu lub późniejszego już istnieje)");
break;
case "2":
$JPKexists = DB::getPDO()->fetchValue("select ID from JPK where ID_BILLING_OWNER='{$this->JPK['ID_BILLING_OWNER']}' and TYPE='{$this->JPK['TYPE']}' and MONTH='{$month}' and PURPOSE='1'");
if (!$JPKexists) throw new Exception("brak deklaracji z tego okresu - nie ma czego korygować");
break;
default:
throw new Exception("błędne określenie celu złożenia deklaracji");
}
$sqlObj = new stdClass();
$sqlObj->ID = $this->JPK['ID'];
$sqlObj->A_STATUS = 'NORMAL';
$sqlObj->A_STATUS_INFO = 'W trakcie tworzenia';
$sqlObj->MONTH = $month;
$sqlObj->PURPOSE = $purpose;
$affected = DB::getDB()->UPDATE_OBJ('JPK', $sqlObj);
if ($affected) {
SE_Layout::alert('success','Pomyślnie zainicjalizowano deklarację JPK.');
?>
getMessage());
?>
"Kod formularza",
"WariantFormularza" => "Wariant formularza",
"CelZlozenia" => "Cel złożenia",
"DataWytworzeniaJPK" => "Data wytworzenia JPK",
"DataOd" => "Data od",
"DataDo" => "Data do",
"DomyslnyKodWaluty" => "Waluta",
"KodUrzedu" => "Kod urzędu skarbowego",
"PelnaNazwa" => "Nazwa podmiotu",
"NIP" => "NIP",
"REGON" => "Regon",
"KodKraju" => "Kod kraju",
"Wojewodztwo" => "Województwo",
"Powiat" => "Powiat",
"Gmina" => "Gmina",
"Miejscowosc" => "Miejscowość",
"Ulica" => "Ulica",
"NrDomu" => "Nr domu",
"NrLokalu" => "Nr lokalu",
"KodPocztowy" => "Kod pocztowy",
"Poczta" => "Poczta",
"LiczbaWierszySprzedazy" => "Liczba dokumentów sprzedaży",
"PodatekNalezny" => "Podatek należny",
"LiczbaWierszyZakupow" => "Liczba dokumentów zakupu",
"PodatekNaliczony" => "Podatek naliczony"
);
private function showJPK_VAT($xml) {
$ns = $xml->getNamespaces(true);
$summaryJPK_VAT = $this->getSummaryJPK_VAT($xml);
$result['KodFormularza'] = $xml->Naglowek->KodFormularza;
$result['WariantFormularza'] = $xml->Naglowek->WariantFormularza;
$result['CelZlozenia'] = $xml->Naglowek->CelZlozenia;
$result['DataWytworzeniaJPK'] = date("Y-m-d H:i:s", strtotime($xml->Naglowek->DataWytworzeniaJPK));
$result['DataOd'] = $xml->Naglowek->DataOd;
$result['DataDo'] = $xml->Naglowek->DataDo;
$result['DomyslnyKodWaluty'] = $xml->Naglowek->DomyslnyKodWaluty;
$result['KodUrzedu'] = $xml->Naglowek->KodUrzedu;
$result['NIP'] = $xml->Podmiot1->IdentyfikatorPodmiotu->children($ns['etd'])->NIP;
$result['PelnaNazwa'] = $xml->Podmiot1->IdentyfikatorPodmiotu->children($ns['etd'])->PelnaNazwa;
$result['REGON'] = $xml->Podmiot1->IdentyfikatorPodmiotu->children($ns['etd'])->REGON;
$result['KodKraju'] = $xml->Podmiot1->AdresPodmiotu->KodKraju;
$result['Wojewodztwo'] = $xml->Podmiot1->AdresPodmiotu->Wojewodztwo;
$result['Powiat'] = $xml->Podmiot1->AdresPodmiotu->Powiat;
$result['Gmina'] = $xml->Podmiot1->AdresPodmiotu->Gmina;
$result['Ulica'] = $xml->Podmiot1->AdresPodmiotu->Ulica;
$result['NrDomu'] = $xml->Podmiot1->AdresPodmiotu->NrDomu;
$result['NrLokalu'] = $xml->Podmiot1->AdresPodmiotu->NrLokalu;
$result['Miejscowosc'] = $xml->Podmiot1->AdresPodmiotu->Miejscowosc;
$result['KodPocztowy'] = $xml->Podmiot1->AdresPodmiotu->KodPocztowy;
$result['Poczta'] = $xml->Podmiot1->AdresPodmiotu->Poczta;
$result['LiczbaWierszySprzedazy'] = $summaryJPK_VAT['LiczbaWierszySprzedazy'] ? $summaryJPK_VAT['LiczbaWierszySprzedazy'] : "";
$result['PodatekNalezny'] = $summaryJPK_VAT['LiczbaWierszySprzedazy'] ? number_format($summaryJPK_VAT['PodatekNalezny'], 2, ',', '.'): "";
$result['LiczbaWierszyZakupow'] = $summaryJPK_VAT['LiczbaWierszyZakupow'] ? $summaryJPK_VAT['LiczbaWierszyZakupow'] : "";
$result['PodatekNaliczony'] = $summaryJPK_VAT['LiczbaWierszyZakupow'] ? number_format($summaryJPK_VAT['PodatekNaliczony'], 2, ',', '.'): "";
return $result;
}
private function showTable() {
?>
JPK['OUT_MERGED']) throw new Exception("Błąd danych - nie wygenerowano wynikowego pliku JPK");
$xml = simplexml_load_string($this->JPK['OUT_MERGED']);
$ns = $xml->getNamespaces(true);
$this->validateJPK_VAT($xml);
$fileName = preg_replace("/[: \.]/", "_", "JPK_VAT_{$this->JPK['MONTH']}_" . str_replace('"', '', $xml->Podmiot1->IdentyfikatorPodmiotu->children($ns['etd'])->PelnaNazwa));
$output = $xml->asXml();
header("Content-Type: application/xml");
header("Content-Disposition: attachment; filename={$fileName};");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . strlen($output));
echo $output;
} catch (Exception $e) {
SE_Layout::gora();
SE_Layout::menu();
SE_Layout::alert('danger', $e->getMessage());
?>