From 5c6a9c87231c1db696c0773553f9e64d6a5f1248 Mon Sep 17 00:00:00 2001 From: Date: Sat, 11 Mar 2017 21:25:19 +0100 Subject: [PATCH] Opraveny a zdokumentovany statusy Opraveno odesilani souboru EET --- Makefile | 4 +-- bin/eetcli | Bin 3040578 -> 3052115 bytes composer.lock | 75 ++++++++++++++++++++++-------------------- doc/EETFile.md | 15 +++++++-- eetcli.php | 31 ++++++++++------- inc/EETFile.class.php | 16 ++++----- inc/Util.class.php | 2 ++ 7 files changed, 81 insertions(+), 62 deletions(-) diff --git a/Makefile b/Makefile index aa6be47..b61627a 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ key-info: @echo "key: $(KEY)" @echo "crt: $(CRT)" -dist-clean: clean +distclean: clean rm -rf vendor prepare: vendor/ondrejnov/eet/README.md @@ -62,7 +62,7 @@ eetcli.phar: info: eetcli.phar phar list -f eetcli.phar -i '\.(ini|p12|pem|crt|dist)$$' -distphar: bin/eetcli.phar +distphar: key crt bin/eetcli.phar bin/eetcli.phar: mkdir -p bin php -dphar.readonly=0 vendor/bin/box build -c box-dist.json diff --git a/bin/eetcli b/bin/eetcli index 7ad0306bf14670544c536c9455c3463fc9dacf19..928692484d1e01d2e9c64be4f3b9c558e3725e76 100755 GIT binary patch delta 17114 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 DN@6o) delta 11856 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 SW9`>Oqkk~qjUSUa=6?bHNSnF< diff --git a/composer.lock b/composer.lock index 917af44..904c658 100644 --- a/composer.lock +++ b/composer.lock @@ -47,16 +47,16 @@ }, { "name": "robrichards/wse-php", - "version": "2.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/robrichards/wse-php.git", - "reference": "45e8efd82ac0a873735b2158e44917d699db6740" + "reference": "5dde350ec77930f2ff6c1bb15c4d9e257b1d2496" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robrichards/wse-php/zipball/45e8efd82ac0a873735b2158e44917d699db6740", - "reference": "45e8efd82ac0a873735b2158e44917d699db6740", + "url": "https://api.github.com/repos/robrichards/wse-php/zipball/5dde350ec77930f2ff6c1bb15c4d9e257b1d2496", + "reference": "5dde350ec77930f2ff6c1bb15c4d9e257b1d2496", "shasum": "" }, "require": { @@ -87,7 +87,7 @@ "soap", "ws-addressing" ], - "time": "2016-10-21T21:28:31+00:00" + "time": "2017-03-09T16:42:34+00:00" }, { "name": "robrichards/xmlseclibs", @@ -174,16 +174,16 @@ "packages-dev": [ { "name": "doctrine/annotations", - "version": "v1.3.1", + "version": "v1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "bd4461328621bde0ae6b1b2675fbc6aca4ceb558" + "reference": "54cacc9b81758b14e3ce750f205a393d52339e97" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/bd4461328621bde0ae6b1b2675fbc6aca4ceb558", - "reference": "bd4461328621bde0ae6b1b2675fbc6aca4ceb558", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97", + "reference": "54cacc9b81758b14e3ce750f205a393d52339e97", "shasum": "" }, "require": { @@ -192,7 +192,7 @@ }, "require-dev": { "doctrine/cache": "1.*", - "phpunit/phpunit": "^5.6.1" + "phpunit/phpunit": "^5.7" }, "type": "library", "extra": { @@ -238,7 +238,7 @@ "docblock", "parser" ], - "time": "2016-12-30T15:59:45+00:00" + "time": "2017-02-24T16:22:25+00:00" }, { "name": "doctrine/lexer", @@ -1011,21 +1011,24 @@ }, { "name": "seld/jsonlint", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/Seldaek/jsonlint.git", - "reference": "19495c181d6d53a0a13414154e52817e3b504189" + "reference": "791f8c594f300d246cdf01c6b3e1e19611e301d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/19495c181d6d53a0a13414154e52817e3b504189", - "reference": "19495c181d6d53a0a13414154e52817e3b504189", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/791f8c594f300d246cdf01c6b3e1e19611e301d8", + "reference": "791f8c594f300d246cdf01c6b3e1e19611e301d8", "shasum": "" }, "require": { "php": "^5.3 || ^7.0" }, + "require-dev": { + "phpunit/phpunit": "^4.5" + }, "bin": [ "bin/jsonlint" ], @@ -1053,20 +1056,20 @@ "parser", "validator" ], - "time": "2016-11-14T17:59:58+00:00" + "time": "2017-03-06T16:42:24+00:00" }, { "name": "symfony/console", - "version": "v3.2.4", + "version": "v3.2.5", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0e5e6899f82230fcb1153bcaf0e106ffaa44b870" + "reference": "28fb243a2b5727774ca309ec2d92da240f1af0dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0e5e6899f82230fcb1153bcaf0e106ffaa44b870", - "reference": "0e5e6899f82230fcb1153bcaf0e106ffaa44b870", + "url": "https://api.github.com/repos/symfony/console/zipball/28fb243a2b5727774ca309ec2d92da240f1af0dd", + "reference": "28fb243a2b5727774ca309ec2d92da240f1af0dd", "shasum": "" }, "require": { @@ -1116,20 +1119,20 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-02-16T14:07:22+00:00" + "time": "2017-03-06T19:30:27+00:00" }, { "name": "symfony/debug", - "version": "v3.2.4", + "version": "v3.2.5", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "9b98854cb45bc59d100b7d4cc4cf9e05f21026b9" + "reference": "b90c9f91ad8ac37d9f114e369042d3226b34dc1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/9b98854cb45bc59d100b7d4cc4cf9e05f21026b9", - "reference": "9b98854cb45bc59d100b7d4cc4cf9e05f21026b9", + "url": "https://api.github.com/repos/symfony/debug/zipball/b90c9f91ad8ac37d9f114e369042d3226b34dc1a", + "reference": "b90c9f91ad8ac37d9f114e369042d3226b34dc1a", "shasum": "" }, "require": { @@ -1173,20 +1176,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2017-02-16T16:34:18+00:00" + "time": "2017-02-18T17:28:00+00:00" }, { "name": "symfony/finder", - "version": "v3.2.4", + "version": "v3.2.5", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "8c71141cae8e2957946b403cc71a67213c0380d6" + "reference": "92d7476d2df60cd851a3e13e078664b1deb8ce10" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/8c71141cae8e2957946b403cc71a67213c0380d6", - "reference": "8c71141cae8e2957946b403cc71a67213c0380d6", + "url": "https://api.github.com/repos/symfony/finder/zipball/92d7476d2df60cd851a3e13e078664b1deb8ce10", + "reference": "92d7476d2df60cd851a3e13e078664b1deb8ce10", "shasum": "" }, "require": { @@ -1222,7 +1225,7 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2017-01-02T20:32:22+00:00" + "time": "2017-02-21T09:12:04+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -1285,16 +1288,16 @@ }, { "name": "symfony/process", - "version": "v3.2.4", + "version": "v3.2.5", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "0ab87c1e7570b3534a6e51eb4ca8e9f6d7327856" + "reference": "68bfa8c83f24c0ac04ea7193bcdcda4519f41892" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/0ab87c1e7570b3534a6e51eb4ca8e9f6d7327856", - "reference": "0ab87c1e7570b3534a6e51eb4ca8e9f6d7327856", + "url": "https://api.github.com/repos/symfony/process/zipball/68bfa8c83f24c0ac04ea7193bcdcda4519f41892", + "reference": "68bfa8c83f24c0ac04ea7193bcdcda4519f41892", "shasum": "" }, "require": { @@ -1330,7 +1333,7 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-02-16T14:07:22+00:00" + "time": "2017-03-04T12:23:14+00:00" }, { "name": "tedivm/jshrink", diff --git a/doc/EETFile.md b/doc/EETFile.md index 8bc5ebd..2c64026 100644 --- a/doc/EETFile.md +++ b/doc/EETFile.md @@ -19,6 +19,15 @@ EET soubor je v podstatě ini soubor. Dá se editovat jakýmkoliv textovým edit u nových EET souborů, které mohou být vytvářeny externím programem, například účetním. EET soubory obsahující další údaje jsou sice stále textové soubory, ale jejich modifikací se mohou stát neplatnými díky porušení bezpečnostních kodů. +### Status +Status účtenky: + + * 0 - nová účtenka + * 1 - odeslaná + * 2 - neodeslaná kvůli chybě + * 3 - odeslaná pouze v ověřovacím režimu bez FIK + + ### Příklad EET souboru ve stavu připraveném k odeslání (vytvořený např. externím programem) ``` [eetfile] @@ -45,7 +54,7 @@ celk_trzba=10 ``` [eetfile] version=1.0 -status=1 +status=2 lasterror=4 lasterrorcode=Neplatny podpis SOAP zpravy prostredi=produkcni @@ -69,8 +78,8 @@ bkp=31383964343362382d38393936633730332d31663832316662612d39323939643061662d6536 [eetfile] version=1.0 status=1 -lasterror=4 -lasterrorcode=Neplatny podpis SOAP zpravy +lasterror= +lasterrorcode= prostredi=produkcni [eet] diff --git a/eetcli.php b/eetcli.php index aec4963..5443fa2 100755 --- a/eetcli.php +++ b/eetcli.php @@ -114,6 +114,8 @@ . "25\t Uctenka je nova (vysledek testu)" . PHP_EOL . "26\t Uctenka jiz byla zaslana (vysledek testu)" . PHP_EOL . "27\t Kontrolni soucty v EET souboru nesedi" . PHP_EOL + . "29\t EET uctenka neodeslana kvuli chybe" . PHP_EOL + . "30\t EET soubor odeslan v overovacim rezimu" . PHP_EOL . PHP_EOL); Config::addOpt(null, "key", Config::C_REQUIRED, "Certificate private key (pem format)", __DIR__ . "/keys/EET_CA1_Playground-CZ1212121218.pem"); @@ -167,7 +169,7 @@ Console::debug("Posilam EET soubor na etrzby: " . Config::getOpt("send-eet") . PHP_EOL); $dispatcher = Util::initDispatcher($eet->playground, $eet->overovaci); $r = $eet->toReceipt($dispatcher); - if ($eet->status != 2) { + if ($eet->status != EETFile::STATUS_SENT) { try { $fik = $dispatcher->send($r, $eet->overovaci); $codes = Util::getCheckCodes($dispatcher, $r, $eet->playground, $eet->overovaci); @@ -178,6 +180,7 @@ $r->bkp = $bkp; $r->pkp = $pkp; $eet->fromReceipt($r); + $eet->setStatus(EETFile::STATUS_SENT); $eet->save(); Console::out(Util::expandMacros(Config::getOpt("format"), $r)); } catch (Exception $e) { @@ -188,7 +191,7 @@ $r->bkp = $bkp; $r->pkp = $pkp; $eet->fromReceipt($r); - $eet->setStatus(1); + $eet->setStatus(EETFile::STATUS_ERR); $eet->setErrorCode($e->getCode()); $eet->setError($e->getMessage()); $eet->save(); @@ -262,17 +265,21 @@ Console::error($e->getCode(), $e->getMessage() . "\n"); } switch ($eet->status) { - case 0: + case EETFile::STATUS_NEW: Console::out("Nova\n"); $status = Util::E_NEW; break; - case 1: - Console::out("Neodeslana\n"); + case EETFile::STATUS_SENT: + Console::out("Odeslana\n"); $status = Util::E_ALREADYSENT; break; - case 2: - Console::out("Odeslana\n"); - $status = Util::E_SENT; + case EETFile::STATUS_ERR: + Console::out("Neodeslana (chyba)\n"); + $status = Util::E_SENTERR; + break; + case EETFile::STATUS_OVEROVACI: + Console::out("Odeslana pouze v overovacim rezimu\n"); + $status = Util::E_SENTOVEROVACI; break; } if ($status == 2) { @@ -306,7 +313,7 @@ try { $eet = New EETFile($file, EETFile::MODE_W, Config::getOpt("neprodukcni"), Config::getOpt("overovaci")); $eet->fromReceipt($r); - $eet->setStatus(0); + $eet->setStatus(EETFile::STATUS_NEW); } catch (Exception $e) { Console::error(Util::eetCodeToError($e->getCode()), $e->getMessage() . PHP_EOL); } @@ -363,7 +370,7 @@ $r->bkp = $bkp; $r->pkp = $pkp; $eet->fromReceipt($r); - $eet->setStatus(1); + $eet->setStatus(EETFile::STATUS_ERR); $eet->setErrorCode($e->getCode()); $eet->setError($e->getMessage()); $eet->save(); @@ -380,11 +387,11 @@ if ($file) { $eet->fromReceipt($r); if (Config::getOpt("overovaci")) { - $eet->setStatus(1); + $eet->setStatus(EETFile::STATUS_OVEROVACI); $eet->setErrorCode(0); $eet->setError("Overovaci"); } else { - $eet->setStatus(2); + $eet->setStatus(EETFile::STATUS_SENT); } $eet->save(); } diff --git a/inc/EETFile.class.php b/inc/EETFile.class.php index 4ef80a7..7cea78f 100644 --- a/inc/EETFile.class.php +++ b/inc/EETFile.class.php @@ -38,6 +38,11 @@ class EETFile { const MODE_W = 2; // Write only (create) const MODE_RW = 3; // RW const MODE_D = 4; // Dry (create object only) + + const STATUS_NEW = 0; // Nova uctenka + const STATUS_SENT = 1; // Uspesne odeslana uctenka + const STATUS_ERR = 2; // Neuspesne odeslana uctenka + const STATUS_OVEROVACI = 3; // Zaslana pouze jako overovaci rezim (bez fiku) /* * Typy polozek k odeslani @@ -114,13 +119,6 @@ public function __construct($filename, $mode = self::MODE_D, $playground = false switch ($mode) { case self::MODE_R: self::load(); - if (array_key_exists("fik", $this->items)) { - $this->status = 2; - } elseif (array_key_exists("pkp", $this->items)) { - $this->status = 1; - } else { - $this->status = 0; - } break; case self::MODE_W: if (file_exists($this->filename)) { @@ -181,10 +179,10 @@ public function save() { ); foreach ($this->ITEMS as $key => $options) { if ($options & self::I_REQUIRED) { - self::puts($f, $key . "=" . $this->items[$key] . PHP_EOL); + self::puts($f, $key . '="' . $this->items[$key] . '"' . PHP_EOL); } elseif ($options & self::I_OPTIONAL) { if (array_key_exists($key, $this->items)) { - self::puts($f, $key . "=" . $this->items[$key] . PHP_EOL); + self::puts($f, $key . '="' . $this->items[$key] . '"' . PHP_EOL); } } } diff --git a/inc/Util.class.php b/inc/Util.class.php index 0ec88a3..79365b5 100644 --- a/inc/Util.class.php +++ b/inc/Util.class.php @@ -40,6 +40,8 @@ class Util { const E_LOCK = 24; const E_NEW = 25; const E_SENT = 26; + const E_SENTERR = 29; + const E_SENTOVEROVACI = 30; const E_CHECKCODES = 27; private static $tmpfiles;