Test Failed
Push — master ( 1f5d45...b072a0 )
by JAIME ELMER
04:15
created

SunatSoapClient   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 19
dl 0
loc 34
rs 10
c 0
b 0
f 0
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 20 3
A getService() 0 5 2
A getCdrService() 0 3 1
1
<?php
2
3
/**
4
 * MÓDULO DE EMISIÓN ELECTRÓNICA F72X
5
 * UBL 2.1
6
 * Version 1.1
7
 * 
8
 * Copyright 2018, Jaime Cruz
9
 */
10
11
namespace F72X\Sunat;
12
13
use F72X\F72X;
14
use F72X\Company;
15
use SoapClient;
16
use SoapHeader;
17
use SoapVar;
18
19
class SunatSoapClient extends SoapClient {
20
21
    public function __construct($wsdl, $options) {
22
        $prodMode = F72X::isProductionMode();
23
        $ruc = Company::getRUC();
24
        $solUser = $prodMode ? Company::getSolUser() : SunatVars::SUNAT_SOL_USER_BETA;
25
        $solKey = $prodMode ? Company::getSolKey() : SunatVars::SUNAT_SOL_KEY_BETA;
26
27
        $nsWsse = 'http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd';
28
        $WSHeader = <<<SEC
29
<wsse:Security xmlns:wsse="$nsWsse">
30
    <wsse:UsernameToken>
31
        <wsse:Username>$ruc$solUser</wsse:Username>
32
        <wsse:Password>$solKey</wsse:Password>
33
    </wsse:UsernameToken>
34
</wsse:Security>
35
SEC;
36
37
        $headers = new SoapHeader($nsWsse, 'Security', new SoapVar($WSHeader, XSD_ANYXML));
38
        //set the Headers of Soap Client. 
39
        $this->__setSoapHeaders($headers);
40
        parent::__construct($wsdl, $options);
41
    }
42
43
    public static function getService() {
44
        $serviceUrl = F72X::isProductionMode() ?
45
                SunatVars::SUNAT_SERVICE_URL_PROD : SunatVars::SUNAT_SERVICE_URL_BETA;
46
47
        return new SunatSoapClient("$serviceUrl?wsdl", ['trace' => true]);
48
    }
49
50
    public static function getCdrService() {
51
        $serviceUrl = SunatVars::SUNAT_CDR_SERVICE_URL;
52
        return new SunatSoapClient("$serviceUrl?wsdl", ['trace' => true]);
53
    }
54
55
}
56