Test Failed
Push — master ( 22db96...000286 )
by Giancarlos
04:11
created

ExtService::getCdrStatus()   B

Complexity

Conditions 3
Paths 5

Size

Total Lines 30
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
dl 0
loc 30
ccs 0
cts 20
cp 0
rs 8.8571
c 0
b 0
f 0
cc 3
eloc 20
nc 5
nop 4
crap 12
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
    public function getStatus($ticket)
25
    {
26
        $client = $this->getClient();
27
        $result = new StatusResult();
28
29
        try {
30
            $params = [
31
                'ticket' => $ticket,
32
            ];
33
            $response = $client->call('getStatus', [ 'parameters' => $params ]);
34
            $status = $response->status;
35
            $cdrZip = $status->content;
36
37
            $result
38
                ->setCode($status->statusCode)
39
                ->setCdrResponse($this->extractResponse($cdrZip))
40
                ->setCdrZip($cdrZip)
41
                ->setSuccess(true);
42
        }
43
        catch (\SoapFault $e) {
44
            $result->setError($this->getErrorFromFault($e));
45
        }
46
47
        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
    public function getCdrStatus($ruc, $tipo, $serie, $numero)
58
    {
59
        $client = $this->getClient();
60
        $result = new StatusCdrResult();
61
62
        try {
63
            $params = [
64
                'rucComprobante' => $ruc,
65
                'tipoComprobante' => $tipo,
66
                'serieComprobante' => $serie,
67
                'numeroComprobante' => $numero,
68
            ];
69
            $response = $client->call('getStatusCdr', [ 'parameters' => $params ]);
70
            $statusCdr =$response->statusCdr;
71
72
            $result->setCode($statusCdr->statusCode)
73
                ->setMessage($statusCdr->statusMessage)
74
                ->setCdrZip($statusCdr->content)
75
                ->setSuccess(true);
76
77
            if ($statusCdr->content) {
78
                $result->setCdrResponse($this->extractResponse($statusCdr->content));
79
            }
80
        }
81
        catch (\SoapFault $e) {
82
            $result->setError($this->getErrorFromFault($e));
83
        }
84
85
        return $result;
86
    }
87
88
}