function handle_document_generation($cart_order_id, $invoice, $url, $document_type) { $connection_parameters = get_api_connection_parameters("./config.ini"); $nazwaUsera = $connection_parameters['API_LOGIN']; //login do ifirma $klucz_hex = $connection_parameters['API_KEY_FAKTURA']; //klucz wygenerowany w ifirmie //$typ_faktury = 'orygkopia'; //typ faktury w pdfie: np.dup, kopia, oryg, orygkopia $nazwaKlucza = "faktura"; $typ_pliku = "json"; //rodzaj pliku, ktory wysylamy $typ_pobierz = "pdf"; //oczekiwana odpowiedz $url_get = "https://www.ifirma.pl/iapi/fakturakraj/"; $klucz = hexToStr($klucz_hex); $exception = false; $bledy = array(); $content = $invoice->toJson(); $curlWysylanieHandle = curl_init($url); $faktura_do_poprawki = false; ustaw_odpowiedni_miesiac_ksiegowy($invoice, $connection_parameters); $rsp = wyslij_jedna($typ_pliku, $content, $klucz, $url, $nazwaUsera, $nazwaKlucza, $curlWysylanieHandle); $tab = json_decode($rsp, true); if (is_response_status_ok($tab['response']['Kod'])) { $url_pliku = ''; $invoice_number = $tab['response']['Identyfikator']; if (isset($typ_faktury)) { $url_pliku = $url_get . $invoice_number . '.' . $typ_pobierz . '.' . $typ_faktury; } else { $url_pliku = $url_get . $invoice_number . '.' . $typ_pobierz; } $curlHandle = curl_init($url_pliku); curl_close($curlHandle); unset($curlHandle); add_info_about_generated_document($document_type, $cart_order_id, $invoice_number, get_class($invoice)); //------- $generated_invoice_array = handle_invoice_download($cart_order_id, "json"); $invdetails = $invoice->getZaplacono(); $invpozycje = $invoice->getPozycje(); if ($generated_invoice_array['response']['Zaplacono'] != $invdetails) { $faktura_do_poprawki = true; } $l = 0; foreach ($generated_invoice_array['response']['Pozycje'] as $pozycja) { $vatDwa = (double) $invpozycje[$l]['StawkaVat']; //->getStawkaVat(); $cenaDwa = (double) $invpozycje[$l]['CenaJednostkowa']; //->getCenaJednostkowa(); $vatRaz = (double) $pozycja['StawkaVat']; $cenaRaz = (double) $pozycja['CenaJednostkowa']; ++$l; if ($vatRaz != $vatDwa || $cenaRaz != $cenaDwa) { $faktura_do_poprawki = true; } } if ($faktura_do_poprawki == true) { add_info_about_invoice_fault($cart_order_id); echo "Wykryto drobne nieprawidlowosci.<br/> Możliwa przyczyna: -różnica w sposobie zaokrąglania kwoty podatku.<br />"; echo "Proszę dokonać weryfikacji poprawności wystawionej faktury z poziomu serwisu www.ifirma.pl"; } //----------- } else { $bledy = przechwyc_bledy($content, $tab, $bledy); } curl_close($curlWysylanieHandle); unset($curlWysylanieHandle); if (count($bledy) > 0) { display_errors($bledy); } else { redirect_to_order_page($cart_order_id); } }
<?php //na serwerze produkcyjnym usunac [/opencart] require_once realpath(getcwd() . '/../../../../config.php'); require_once DIR_SYSTEM . 'startup.php'; require_once "ifirma/BuilderClasses.php"; require_once "ifirma/ifirma_functions.php"; $cart_order_id = $_GET['cart_order_id']; $registry = new Registry(); $db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); $registry->set('session', new Session()); if ($registry->get('session')->data['token'] != $_GET['token']) { echo "Wystąpił problem. Zaloguj się ponownie."; } else { handle_invoice_download($cart_order_id); }