/** * Write the extensions into the GPX. * * @param \XMLWriter $xmlWriter The XMLWriter. * @param ExtensionInterface[] $extensions The extensions to write. */ protected function writeExtensions(\XMLWriter $xmlWriter, array $extensions) { $xmlWriter->startElement('extensions'); foreach ($extensions as $extension) { switch ($extension::ID()) { case HR::ID(): $xmlWriter->startElementNs('gpxtpx', 'TrackPointExtension', null); $xmlWriter->writeElementNs('gpxtpx', 'hr', null, (string) $extension->value()); $xmlWriter->endElement(); break; } } $xmlWriter->endElement(); }
function fiskalsve() { $zahtjev = $this->input->post('request'); $msg = ''; $uspjelo = 0; $nijeuspjelo = 0; //$firma = $this->fiskal->getById('firma', 'fi_id', $this->session->userdata('firmaID')); $firma = $this->fiskal->getFirma(); //dohvati podatke za sve nefiskalizirane $nefiskalizirani = $this->fiskal->getNefiskalizirane(); //foreach ID if ($nefiskalizirani) { foreach ($nefiskalizirani as $dokument) { //dohvati pojedinacno $prikaziStavke = $this->fiskal->getstavke($dokument->do_id); $zaglavlje = $this->fiskal->getDokumentZag($dokument->do_id); $rekapitualcijaporeza = $this->fiskal->rekapitulacijaporeza($dokument->do_id); //Init XML $doc = new DOMDocument(); $doc->formatOutput = true; //XML $ns = 'tns'; $writer = new XMLWriter(); $writer->openMemory(); $writer->startDocument('1.0', 'UTF-8'); $writer->setIndent(True); $writer->startElementNs($ns, 'RacunZahtjev', null); $writer->writeAttributeNS("xmlns", "tns", null, "http://www.apis-it.hr/fin/2012/types/f73"); $writer->writeAttributeNS("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance"); $writer->startElementNs($ns, 'Racun', null); $writer->writeElementNs($ns, 'Oib', null, $firma->fi_oib); $writer->writeElementNs($ns, 'USustPdv', null, $firma->fi_usustavuPDV); $writer->writeElementNs($ns, 'DatVrijeme', null, date("d.m.Y", strtotime($zaglavlje->do_datum)) . date("\\Th:i:s", strtotime($zaglavlje->do_vrijeme))); // date('d.m.Y\Th:i:s')); $writer->writeElementNs($ns, 'OznSlijed', null, 'N'); /* P ili N => P na nivou Poslovnog prostora, N na nivou naplatnog uredaja */ $writer->startElementNs($ns, 'BrRac', null); $writer->writeElementNs($ns, 'BrOznRac', null, $zaglavlje->do_broj); $writer->writeElementNs($ns, 'OznPosPr', null, $zaglavlje->PP); $writer->writeElementNs($ns, 'OznNapUr', null, $zaglavlje->NU); $writer->endElement(); /* #BrRac */ $writer->startElementNs($ns, 'Pdv', null); if (!empty($rekapitualcijaporeza)) { $rank = 0; foreach ($rekapitualcijaporeza as $porez) { $writer->startElementNs($ns, 'Porez', null); $writer->writeElementNs($ns, 'Stopa', null, $porez->porez_pz_posto); $writer->writeElementNs($ns, 'Osnovica', null, $porez->sumaIznosa); $writer->writeElementNs($ns, 'Iznos', null, number_format($porez->sumaPorez, 2, '.', '')); $writer->endElement(); /* #Porez */ } } $writer->endElement(); /* #Pdv */ if (!empty($rekapitualcijaporeza)) { $rank = 0; foreach ($rekapitualcijaporeza as $porez) { if ($porez->porez_pz_posto == "0") { $writer->writeElementNs($ns, 'IznosOslobPdv', null, number_format($porez->sumaIznosa + $porez->sumaPorez, 2, '.', '')); } } } //$writer->writeElementNs($ns, 'IznosNePodlOpor', null, number_format($zaglavlje->do_iznos + $zaglavlje->do_iznosPDV, 2,'.','')); $writer->writeElementNs($ns, 'IznosUkupno', null, number_format($zaglavlje->do_iznos + $zaglavlje->do_iznosPDV, 2, '.', '')); $writer->writeElementNs($ns, 'NacinPlac', null, $zaglavlje->sp_oznaka); $writer->writeElementNs($ns, 'OibOper', null, $zaglavlje->op_oib); $writer->writeElementNs($ns, 'NakDost', null, '1'); $writer->endElement(); /* #Racun */ $writer->endElement(); /* #RacunZahtjev */ $writer->endDocument(); $XMLRequest = $writer->outputMemory(); $doc->loadXML($XMLRequest); //file_put_contents("racun".$dokument->do_id.".xml",$XMLRequest); //fiskaliziraj if ($firma != FALSE) { try { $fis = new Fiskalizator($firma->fi_certifikat, $this->decrypt($firma->fi_pass)); //Produkcijski mode //$fis->setProductionMode(); $fis->doRequest($doc); #custom timeout and number of retries on network error, default is 3 retries and 5 seconds timeout tolerance #$fis->doRequest($doc, 10, 5.2); if ($fis->getRequestType() == 'RacunZahtjev') { //echo 'JIR: '.$fis->getJIR().'<br>'; //echo 'ZKI: '.$fis->getZKI().'<br>'; $msg = '<pre class="bg-success">Uspješno fiskalizirani svi dokument!</pre>'; $uspjelo = $uspjelo + 1; //update raèun $dok['do_zki'] = $fis->getZKI(); $dok['do_jir'] = $fis->getJIR(); $this->fiskal->update("dokument", "do_id", $zaglavlje->do_id, $dok); } } catch (Exception $e) { if ($zahtjev == 'RacunZahtjev') { //update raèun $dok['do_zki'] = $fis->getZKI(); $dok['do_sifragreske'] = $e->getMessage(); $this->fiskal->update("dokument", "do_id", $zaglavlje->do_id, $dok); } $msg = '<pre class="bg-danger">Greška </br>' . $e->getMessage() . '</pre>'; $nijeuspjelo = $nijeuspjelo + 1; } } } } if ($nijeuspjelo == 0) { echo json_encode(array('uspjelo' => $uspjelo, 'poruka' => '<div class="alert alert-success">Uspješno fiskaliziranih računa: <b>' . $uspjelo . '!</b></div>')); } else { echo json_encode(array('uspjelo' => $uspjelo, 'poruka' => '<div class="alert alert-danger">Nespješno fiskaliziranih računa: <b>' . $nijeuspjelo . '</b> , uspješno fiskalizirano <b>' . $uspjelo . '</b></div>')); } }