diff --git a/.travis.yml b/.travis.yml index dde3669..fd1b1aa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,11 +9,12 @@ before_script: - composer install --prefer-source --no-interaction install: - - composer require satooshi/php-coveralls - | if [ $(phpenv version-name) = "7.1" ]; then + composer require php-coveralls/php-coveralls; composer require --dev phpstan/phpstan; fi + script: - mkdir -p build/logs - | @@ -23,4 +24,7 @@ script: - vendor/bin/phpunit --configuration phpunit.xml --coverage-clover build/logs/clover.xml after_success: - - travis_retry php vendor/bin/coveralls -v \ No newline at end of file + - | + if [ $(phpenv version-name) = "7.1" ]; then + travis_retry php vendor/bin/php-coveralls -v; + fi \ No newline at end of file diff --git a/src/Ws/Services/BaseSunat.php b/src/Ws/Services/BaseSunat.php index ccc36a5..187f02b 100644 --- a/src/Ws/Services/BaseSunat.php +++ b/src/Ws/Services/BaseSunat.php @@ -8,6 +8,7 @@ namespace Greenter\Ws\Services; +use Greenter\Model\Response\BillResult; use Greenter\Model\Response\Error; use Greenter\Validator\ErrorCodeProviderInterface; use Greenter\Ws\Reader\CdrReaderInterface; @@ -167,6 +168,26 @@ protected function getMessageError($code) return $this->codeProvider->getValue($code); } + protected function isExceptionCode($code) + { + $value = intval($code); + + return $value >= 100 && $value <= 1999; + } + + protected function loadErrorByCode(BillResult $result, $code) + { + $error = $this->getErrorByCode($code); + + if (empty($error->getMessage()) && $result->getCdrResponse()) { + $error->setMessage($result->getCdrResponse()->getDescription()); + } + + $result + ->setSuccess(false) + ->setError($error); + } + private function getXmlResponse($content) { $filter = function ($filename) { @@ -186,4 +207,5 @@ private function getFileExtension($filename) return substr($filename, $lastDotPos + 1); } + } diff --git a/src/Ws/Services/ConsultCdrService.php b/src/Ws/Services/ConsultCdrService.php index b65e8a8..5cbabf0 100644 --- a/src/Ws/Services/ConsultCdrService.php +++ b/src/Ws/Services/ConsultCdrService.php @@ -81,24 +81,4 @@ private function getStatusResult($method, $resultName, $ruc, $tipo, $serie, $num return $result; } - - private function isExceptionCode($code) - { - $value = intval($code); - - return $value >= 100 && $value <= 1999; - } - - private function loadErrorByCode(StatusCdrResult $result, $code) - { - $error = $this->getErrorByCode($code); - - if (empty($error->getMessage()) && $result->getCdrResponse()) { - $error->setMessage($result->getCdrResponse()->getDescription()); - } - - $result - ->setSuccess(false) - ->setError($error); - } } diff --git a/src/Ws/Services/ExtService.php b/src/Ws/Services/ExtService.php index 904f1d6..0d0db94 100644 --- a/src/Ws/Services/ExtService.php +++ b/src/Ws/Services/ExtService.php @@ -43,47 +43,14 @@ public function getStatus($ticket) $result ->setCdrResponse($this->extractResponse($cdrZip)) ->setCdrZip($cdrZip); - } - } catch (\SoapFault $e) { - $result->setError($this->getErrorFromFault($e)); - } - return $result; - } - - /** - * @deprecated Use instead \Greenter\Ws\Services\ConsultCdrService - * - * @param string $ruc - * @param string $tipo - * @param string $serie - * @param int $numero - * - * @return StatusCdrResult - */ - public function getCdrStatus($ruc, $tipo, $serie, $numero) - { - $client = $this->getClient(); - $result = new StatusCdrResult(); - - try { - $params = [ - 'rucComprobante' => $ruc, - 'tipoComprobante' => $tipo, - 'serieComprobante' => $serie, - 'numeroComprobante' => $numero, - ]; - $response = $client->call('getStatusCdr', ['parameters' => $params]); - $statusCdr = $response->statusCdr; - - $result->setCode($statusCdr->statusCode) - ->setMessage($statusCdr->statusMessage) - ->setCdrZip($statusCdr->content) - ->setSuccess(true); + $code = $result->getCdrResponse()->getCode(); + } - if ($statusCdr->content) { - $result->setCdrResponse($this->extractResponse($statusCdr->content)); + if ($this->isExceptionCode($code)) { + $this->loadErrorByCode($result, $code); } + } catch (\SoapFault $e) { $result->setError($this->getErrorFromFault($e)); } diff --git a/tests/Ws/Services/FeSunatTest.php b/tests/Ws/Services/FeSunatTest.php index da615f8..9d8fc52 100644 --- a/tests/Ws/Services/FeSunatTest.php +++ b/tests/Ws/Services/FeSunatTest.php @@ -133,26 +133,6 @@ public function testGetStatus() $this->assertContains('aceptada', $result->getCdrResponse()->getDescription()); } - public function testGetCdrStatus() - { - $wss = $this->getExtSender(); - $result = $wss->getCdrStatus('20000000001', '01', 'F001', '1'); - - $this->assertTrue($result->isSuccess()); - $this->assertEquals('0', $result->getCode()); - $this->assertNotEmpty($result->getMessage()); - $this->assertNotNull($result->getCdrResponse()); - $this->assertContains('aceptada', $result->getCdrResponse()->getDescription()); - } - - public function testInvalidCdrStatus() - { - $wss = $this->getExtSunat(); - $result = $wss->getCdrStatus('20000000001', '01', 'F001', '1'); - - $this->assertFalse($result->isSuccess()); - } - /** * @dataProvider codeProvider * @param $code