Passed
Push — master ( 18fc83...7dcdd4 )
by Giancarlos
06:09
created

ExtService::getCdrStatus()   B

Complexity

Conditions 3
Paths 5

Size

Total Lines 30
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 20
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 30
ccs 20
cts 20
cp 1
rs 8.8571
c 0
b 0
f 0
cc 3
eloc 20
nc 5
nop 4
crap 3
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Administrador
5
 * Date: 02/10/2017
6
 * Time: 10:10 AM
7
 */
8
9
namespace Greenter\Ws\Services;
10
11
use Greenter\Model\Response\StatusCdrResult;
12
use Greenter\Model\Response\StatusResult;
13
14
/**
15
 * Class ExtService
16
 * @package Greenter\Ws\Services
17
 */
18
class ExtService extends BaseSunat
19
{
20
    /**
21
     * @param string $ticket
22
     * @return StatusResult
23
     */
24 12
    public function getStatus($ticket)
25
    {
26 12
        $client = $this->getClient();
27 12
        $result = new StatusResult();
28
29
        try {
30
            $params = [
31 12
                'ticket' => $ticket,
32 12
            ];
33 12
            $response = $client->call('getStatus', [ 'parameters' => $params ]);
34 4
            $status = $response->status;
35 4
            $cdrZip = $status->content;
36
37
            $result
38 4
                ->setCode($status->statusCode)
39 4
                ->setCdrResponse($this->extractResponse($cdrZip))
40 4
                ->setCdrZip($cdrZip)
41 4
                ->setSuccess(true);
42
        }
43 12
        catch (\SoapFault $e) {
44 8
            $result->setError($this->getErrorFromFault($e));
45
        }
46
47 12
        return $result;
48
    }
49
50
    /**
51
     * @param string $ruc
52
     * @param string $tipo
53
     * @param string $serie
54
     * @param string $numero
55
     * @return StatusCdrResult
56
     */
57 4
    public function getCdrStatus($ruc, $tipo, $serie, $numero)
58
    {
59 4
        $client = $this->getClient();
60 4
        $result = new StatusCdrResult();
61
62
        try {
63
            $params = [
64 4
                'rucComprobante' => $ruc,
65 4
                'tipoComprobante' => $tipo,
66 4
                'serieComprobante' => $serie,
67 4
                'numeroComprobante' => $numero,
68 4
            ];
69 4
            $response = $client->call('getStatusCdr', [ 'parameters' => $params ]);
70 2
            $statusCdr =$response->statusCdr;
71
72 2
            $result->setCode($statusCdr->statusCode)
73 2
                ->setMessage($statusCdr->statusMessage)
74 2
                ->setCdrZip($statusCdr->content)
75 2
                ->setSuccess(true);
76
77 2
            if ($statusCdr->content) {
78 2
                $result->setCdrResponse($this->extractResponse($statusCdr->content));
79 2
            }
80
        }
81 4
        catch (\SoapFault $e) {
82 2
            $result->setError($this->getErrorFromFault($e));
83
        }
84
85 4
        return $result;
86
    }
87
88
}