Completed
Push — master ( f4f5ad...3e60e2 )
by Naylon Kessler de
02:45
created

Itau::billing()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
namespace SmartCNAB\Support\Bank;
4
5
use SmartCNAB\Support\Bank\Bank;
6
7
/**
8
 * Bank Itau support class.
9
 */
10
class Itau extends Bank
11
{
12
    /**
13
     * Constants for returning occurrences statuses.
14
     */
15
    const OCCURRENCES_DISCHARGED = [2, 64];
16
    const OCCURRENCES_ENTRY = [9, 47, 59, 72];
17
    const OCCURRENCES_PAID = [6, 7, 8, 10];
18
    const OCCURRENCES_PROTESTED = [32];
19
20
    /**
21
     * Especies codes.
22
     *
23
     * @var array
24
     */
25
    protected static $especies = [
26
        '01' => 'Duplicata mercantil',
27
        '02' => 'Nota promissória',
28
        '03' => 'Nota de seguro',
29
        '04' => 'Mensalidade escolar',
30
        '05' => 'Recibo',
31
        '06' => 'Contrato',
32
        '07' => 'Cosseguros',
33
        '08' => 'Duplicata de serviço',
34
        '09' => 'Letra de câmbio',
35
        '13' => 'Nota de débitos',
36
        '15' => 'Documento de dívida',
37
        '16' => 'Encargos condominiais',
38
        '17' => 'Conta de prestação de serviços',
39
        // '18' => 'Boleto de proposta', // Not implemented yet
0 ignored issues
show
Unused Code Comprehensibility introduced by
50% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
40
        '99' => 'Diversos',
41
    ];
42
43
    /**
44
     * Billing instruction.
45
     *
46
     * @var array
47
     */
48
    protected static $instructions = [
49
        '02' => 'Devolver após 05 dias do vencimento',
50
        '03' => 'Devolver após 30 dias do vencimento',
51
        '05' => 'Receber conforme instruções no próprio título',
52
        '06' => 'Devolver após 10 dias do vencimento',
53
        '07' => 'Devolver após 15 dias do vencimento',
54
        '08' => 'Devolver após 20 dias do vencimento',
55
        '09' => 'Protestar',
56
        '10' => 'Não protestar (inibe protesto, quando houver instrução permanente na conta corrente)',
57
        '11' => 'Devolver após 25 dias do vencimento',
58
        '12' => 'Devolver após 35 dias do vencimento',
59
        '13' => 'Devolver após 40 dias do vencimento',
60
        '14' => 'Devolver após 45 dias do vencimento',
61
        '15' => 'Devolver após 50 dias do vencimento',
62
        '16' => 'Devolver após 55 dias do vencimento',
63
        '17' => 'Devolver após 60 dias do vencimento',
64
        '18' => 'Devolver após 90 dias do vencimento',
65
        '19' => 'Não receber após 05 dias do vencimento',
66
        '20' => 'Não receber após 10 dias do vencimento',
67
        '21' => 'Não receber após 15 dias do vencimento',
68
        '22' => 'Não receber após 20 dias do vencimento',
69
        '23' => 'Não receber após 25 dias do vencimento',
70
        '24' => 'Não receber após 30 dias do vencimento',
71
        '25' => 'Não receber após 35 dias do vencimento',
72
        '26' => 'Não receber após 40 dias do vencimento',
73
        '27' => 'Não receber após 45 dias do vencimento',
74
        '28' => 'Não receber após 50 dias do vencimento',
75
        '29' => 'Não receber após 55 dias do vencimento',
76
        '30' => 'Importância de desconto por dia',
77
        '31' => 'Não receber após 60 dias do vencimento',
78
        '32' => 'Não receber após 90 dias do vencimento',
79
        '33' => 'Conceder abatimento ref. à PIS-PASEP/COFIN/CSSL, mesmo após vencimento',
80
        '34' => 'Protestar após xx dias corridos do vencimento',
81
        '35' => 'Protestar após xx dias úteis do vencimento',
82
        '37' => 'Receber até o último dia do mês de vencimento',
83
        '38' => 'Conceder desconto mesmo após vencimento',
84
        '39' => 'Não receber após o vencimento',
85
        '40' => 'Conceder desconto conforme nota de crédito',
86
        '42' => 'Protesto para fins falimentares',
87
        '43' => 'Sujeito a protesto se não for pago no vencimento',
88
        '44' => 'Importância por dia de atraso a partir de ddmmaa',
89
        '45' => 'Tem dia da graça',
90
        '47' => 'Dispensar juros/comissão de permanência',
91
        '51' => 'Receber somente com a parcela anterior quitada',
92
        '52' => 'Efetuar o pagamento somente através deste boleto e na rede bancária',
93
        '54' => 'Após vencimento pagável somente na empresa',
94
        '57' => 'Somar valor do título ao valor do campo mora/multa caso exista',
95
        '58' => 'Devolver após 365 dias de vencido',
96
        '59' => 'Cobrança negociada. pagável somente por este boleto na rede bancária',
97
        '61' => 'Título entregue em penhor em favor do beneficiário acima',
98
        '62' => 'Título transferido a favor do beneficiário',
99
        '66' => 'Entrada em negativação expressa (imprime: sujeito a negativação após o vencimento)',
100
        '67' => 'Não negativar (inibe a entrada em negativação expressa)',
101
        '78' => 'Valor da ida engloba multa de 10% pro rata',
102
        '79' => 'Cobrar juros após 15 dias da emissão (para títulos com vencimento à vista)',
103
        '80' => 'Pagamento em cheque: somente receber com cheque de emissão do pagador',
104
        '83' => 'Operação ref a vendor',
105
        '84' => 'Após vencimento consultar a agência beneficiário',
106
        '86' => 'Antes do vencimento ou após 15 dias, pagável somente em nossa sede',
107
        '88' => 'Não receber antes do vencimento',
108
        '90' => 'No vencimento pagável em qualquer agência bancária',
109
        '91' => 'Não receber após xx dias do vencimento',
110
        '92' => 'Devolver após xx dias do vencimento',
111
        '93' => 'Mensagens nos boletos com 30 posições',
112
        '94' => 'Mensagens nos boletos com 40 posições',
113
        '98' => 'Duplicata / Número fatura',
114
    ];
115
116
    /**
117
     * Remittance occurrences codes.
118
     *
119
     * @var array
120
     */
121
    protected static $remittanceOccurrences = [
122
        '01' => 'Remessa',
123
        '02' => 'Pedido de baixa',
124
        '04' => 'Concessão de abatimento (indicador 12.5)',
125
        '05' => 'Cancelamento de abatimento',
126
        '06' => 'Alteração do vencimento',
127
        '07' => 'Alteração do uso da empresa',
128
        '08' => 'Alteração do seu número',
129
        '09' => 'Protestar',
130
        '10' => 'Não protestar',
131
        '11' => 'Protesto para fins falimentares',
132
        '18' => 'Sustar o protesto',
133
        '30' => 'Exclusão de sacador avalista',
134
        '31' => 'Alteração de outros dados',
135
        '34' => 'Baixa por ter sido pago diretamente ao beneficiário',
136
        '35' => 'Cancelamento de instrução',
137
        '37' => 'Alteração do vencimento e sustar protesto',
138
        '38' => 'Beneficiário não concorda com alegação do pagador',
139
        '47' => 'Beneficiário solicita dispensa de juros',
140
        '49' => 'Alteração de dados extras (registro de multa)',
141
        '66' => 'Entrada em negativação expressa',
142
        '67' => 'Não negativar (inibe a entrada em negativação expressa)',
143
        '68' => 'Excluir negativação expressa (até 15 dias corridos após a entrada em negativação expressa)',
144
        '69' => 'Cancelar negativação expressa (após título ter sido negativado)',
145
        '93' => 'Descontar títulos encaminhados no dia',
146
    ];
147
148
    /**
149
     * Return occurrences codes.
150
     *
151
     * @var array
152
     */
153
    protected static $returnOccurrences = [
154
        '02' => 'Entrada confirmada com possibilidade de mensagem',
155
        '03' => 'Entrada rejeitada',
156
        '04' => 'Alteração de dados – nova entrada ou alteração/exclusão de dados acatada',
157
        '05' => 'Alteração de dados – baixa',
158
        '06' => 'Liquidação normal',
159
        '07' => 'Liquidação parcial – cobrança inteligente (b2b)',
160
        '08' => 'Liquidação em cartório',
161
        '09' => 'Baixa simples',
162
        '10' => 'Baixa por ter sido liquidado',
163
        '11' => 'Em ser (só no retorno mensal)',
164
        '12' => 'Abatimento concedido',
165
        '13' => 'Abatimento cancelado',
166
        '14' => 'Vencimento alterado',
167
        '15' => 'Baixas rejeitadas',
168
        '16' => 'Instruções rejeitadas',
169
        '17' => 'Alteração/exclusão de dados rejeitados',
170
        '18' => 'Cobrança contratual – instruções/alterações rejeitadas/pendentes',
171
        '19' => 'Confirma recebimento de instrução de protesto',
172
        '20' => 'Confirma recebimento de instrução de sustação de protesto /tarifa',
173
        '21' => 'Confirma recebimento de instrução de não protestar',
174
        '23' => 'Título enviado a cartório/tarifa',
175
        '24' => 'Instrução de protesto rejeitada/sustada/pendente',
176
        '25' => 'Alegações do pagador',
177
        '26' => 'Tarifa de aviso de cobrança',
178
        '27' => 'Tarifa de extrato posição (b40x)',
179
        '28' => 'Tarifa de relação das liquidações',
180
        '29' => 'Tarifa de manutenção de títulos vencidos',
181
        '30' => 'Débito mensal de tarifas (para entradas e baixas)',
182
        '32' => 'Baixa por ter sido protestado',
183
        '33' => 'Custas de protesto',
184
        '34' => 'Custas de sustação',
185
        '35' => 'Custas de cartório distribuidor',
186
        '36' => 'Custas de edital',
187
        '37' => 'Tarifa de emissão de boleto/tarifa de envio de duplicata',
188
        '38' => 'Tarifa de instrução',
189
        '39' => 'Tarifa de ocorrências',
190
        '40' => 'Tarifa mensal de emissão de boleto/tarifa mensal de envio de duplicata',
191
        '41' => 'Débito mensal de tarifas – extrato de posição (b4ep/b4ox)',
192
        '42' => 'Débito mensal de tarifas – outras instruções',
193
        '43' => 'Débito mensal de tarifas – manutenção de títulos vencidos',
194
        '44' => 'Débito mensal de tarifas – outras ocorrências',
195
        '45' => 'Débito mensal de tarifas – protesto',
196
        '46' => 'Débito mensal de tarifas – sustação de protesto',
197
        '47' => 'Baixa com transferência para desconto',
198
        '48' => 'Custas de sustação judicial',
199
        '51' => 'Tarifa mensal ref a entradas bancos correspondentes na carteira',
200
        '52' => 'Tarifa mensal baixas na carteira',
201
        '53' => 'Tarifa mensal baixas em bancos correspondentes na carteira',
202
        '54' => 'Tarifa mensal de liquidações na carteira',
203
        '55' => 'Tarifa mensal de liquidações em bancos correspondentes na carteira',
204
        '56' => 'Custas de irregularidade',
205
        '57' => 'Instrução cancelada',
206
        '59' => 'Baixa por crédito em c/c através do sispag',
207
        '60' => 'Entrada rejeitada carnê',
208
        '61' => 'Tarifa emissão aviso de movimentação de títulos (2154)',
209
        '62' => 'Débito mensal de tarifa – aviso de movimentação de títulos (2154)',
210
        '63' => 'Título sustado judicialmente',
211
        '64' => 'Entrada confirmada com rateio de crédito',
212
        '65' => 'Pagamento com cheque – aguardando compensação',
213
        '69' => 'Cheque devolvido',
214
        '71' => 'Entrada registrada, aguardando avaliação',
215
        '72' => 'Baixa por crédito em c/c através do sispag sem título correspondente',
216
        '73' => 'Confirmação de entrada na cobrança simples – entrada não aceita na cobrança contratual',
217
        '74' => 'Instrução de negativação expressa rejeitada',
218
        '75' => 'Confirmação de recebimento de instrução de entrada em negativação expressa',
219
        '76' => 'Cheque compensado',
220
        '77' => 'Confirmação de recebimento de instrução de exclusão de entrada em negativação expressa',
221
        '78' => 'Confirmação de recebimento de instrução de cancelamento de negativação expressa',
222
        '79' => 'Negativação expressa informacional',
223
        '80' => 'Confirmação de entrada em negativação expressa – tarifa',
224
        '82' => 'Confirmação do cancelamento de negativação expressa – tarifa',
225
        '83' => 'Confirmação de exclusão de entrada em negativação expressa por liquidação – tarifa',
226
        '85' => 'Tarifa por boleto (até 03 envios) cobrança ativa eletrônica',
227
        '86' => 'Tarifa email cobrança ativa eletrônica',
228
        '87' => 'Tarifa sms cobrança ativa eletrônica',
229
        '88' => 'Tarifa mensal por boleto (até 03 envios) cobrança ativa eletrônica',
230
        '89' => 'Tarifa mensal email cobrança ativa eletrônica',
231
        '90' => 'Tarifa mensal sms cobrança ativa eletrônica',
232
        '91' => 'Tarifa mensal de exclusão de entrada de negativação expressa',
233
        '92' => 'Tarifa mensal de cancelamento de negativação expressa',
234
        '93' => 'Tarifa mensal de exclusão de negativação expressa por liquidação',
235
    ];
236
237
    /**
238
     * Return the default state of itau infos.
239
     *
240
     * @return array
241
     */
242
    public function defaults()
243
    {
244
        return [
245
            'especie' => '01',
246
            'instruction1' => '02',
247
            'instruction2' => '00',
248
        ];
249
    }
250
}
251