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

BancoDoBrasil::channels()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 4
rs 10
c 1
b 0
f 0
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 BancoDoBrasil support class.
9
 */
10
class BancoDoBrasil extends Bank
11
{
12
    /**
13
     * Constants for returning occurrences statuses.
14
     */
15
    const OCCURRENCES_DISCHARGED = [9];
16
    const OCCURRENCES_ENTRY = [2];
17
    const OCCURRENCES_PAID = [5, 6, 7, 8, 15];
18
    const OCCURRENCES_PROTESTED = [19];
19
20
    /**
21
     * Channels codes.
22
     *
23
     * @var array
24
     */
25
    protected static $billing = [
26
        '04DSC' => 'Solicitação de registro na Modalidade Descontada',
27
        '08VDR' => 'Solicitação de registro na Modalidade BBVendor',
28
        '02VIN' => 'Solicitação de registro na Modalidade Vinculada',
29
    ];
30
31
    /**
32
     * Channels codes.
33
     *
34
     * @var array
35
     */
36
    protected static $channels = [
37
        '00' => 'Não é sacado eletrônico no DDA',
38
        '01' => 'Terminal de auto-atendimento',
39
        '02' => 'Internet',
40
        '03' => 'Central de atendimento (URA)',
41
        '04' => 'Gerenciador financeiro',
42
        '05' => 'Central de atendimento',
43
        '06' => 'Outro canal de auto-atendimento',
44
        '07' => 'Correspondente bancário',
45
        '08' => 'Guichê de caixa',
46
        '09' => 'Arquivo-eletrônico',
47
        '10' => 'Compensação',
48
        '11' => 'Outro canal eletrônico',
49
        '50' => 'Sacado eletrônico no DDA',
50
    ];
51
52
    /**
53
     * Especies codes.
54
     *
55
     * @var array
56
     */
57
    protected static $especies = [
58
        '01' => 'Duplicata mercantil',
59
        '02' => 'Nota promissória',
60
        '03' => 'Nota de seguro',
61
        '05' => 'Recibo',
62
        '08' => 'Letra de câmbio',
63
        '09' => 'Warrant',
64
        '10' => 'Cheque',
65
        '12' => 'Duplicata de serviço',
66
        '13' => 'Nota de débito',
67
        '15' => 'Apólice de seguro',
68
        '25' => 'Dívida ativa da união',
69
        '26' => 'Dívida ativa de estado',
70
        '27' => 'Dívida ativa de município',
71
    ];
72
73
    /**
74
     * Billing instruction.
75
     *
76
     * @var array
77
     */
78
    protected static $instructions = [
79
        '00' => 'Ausência de instruções',
80
        '01' => 'Cobrar juros (dispensável se informado o valor a ser cobrado por dia de atraso)',
81
        '03' => 'Protestar no 3o dia útil após vencido',
82
        '04' => 'Protestar no 4o dia útil após vencido',
83
        '05' => 'Protestar no 5o dia útil após vencido',
84
        '06' => 'Indica protesto em dias corridos, com prazo de 6 a 29, 35 ou 40 dias corridos',
85
        '07' => 'Não protestar',
86
        '10' => 'Protestar no 10o dia corrido após vencido',
87
        '15' => 'Protestar no 15o dia corrido após vencido',
88
        '20' => 'Protestar no 20o dia corrido após vencido',
89
        '22' => 'Conceder desconto só até a data estipulada',
90
        '25' => 'Protestar no 25o dia corrido após vencido',
91
        '30' => 'Protestar no 30o dia corrido após vencido',
92
        '35' => 'Protestar no 35o dia corrido após vencido',
93
        '40' => 'Protestar no 40o dia corrido após vencido',
94
        '45' => 'Protestar no 45o dia corrido após vencido',
95
        '42' => 'Devolver',
96
        '44' => 'Baixar',
97
        '46' => 'Entregar ao sacado franco de pagamento',
98
    ];
99
100
    /**
101
     * Motives codes.
102
     *
103
     * @var array
104
     */
105
    protected static $motives = [
106
        '05, 06, 07, 08, 15, 46' => [
107
            '01' => 'Liquidação normal',
108
            '02' => 'Liquidação parcial',
109
            '03' => 'Liquidação por saldo',
110
            '04' => 'Liquidação com cheque a compensar',
111
            '05' => 'Liquidação de título sem registro',
112
            '07' => 'Liquidação na apresentação',
113
            '09' => 'Liquidação em cartório',
114
            '10' => 'Liquidação parcial com cheque a compensar',
115
            '11' => 'Liquidação por saldo com cheque a compensar',
116
        ],
117
        '02' => [
118
            '00' => 'Por meio magnético',
119
            '11' => 'Por via convencional',
120
            '16' => 'Por alteração do código do cedente',
121
            '17' => 'Por alteração da variação',
122
            '18' => 'Por alteração da carteira',
123
        ],
124
        '09, 10, 20' => [
125
            '00' => 'Solicitada pelo cliente',
126
            '15' => 'Protestado',
127
            '18' => 'Por alteração da carteira',
128
            '19' => 'Débito automático',
129
            '31' => 'Liquidado anteriormente',
130
            '32' => 'Habilitado em processo',
131
            '33' => 'Incobrável por nosso intermédio',
132
            '34' => 'Transferido para créditos em liquidação',
133
            '46' => 'Por alteração da variação',
134
            '47' => 'Por alteração da variação',
135
            '51' => 'Acerto',
136
            '90' => 'Baixa automática',
137
        ],
138
        '03' => [
139
            '01' => 'Identificação inválida',
140
            '02' => 'Variação da carteira inválida',
141
            '03' => 'Valor dos juros por um dia inválido',
142
            '04' => 'Valor do desconto inválido',
143
            '05' => 'Espécie de título inválida para carteira/variação',
144
            '06' => 'Espécie de valor invariável inválido',
145
            '07' => 'Prefixo da agência usuária inválido',
146
            '08' => 'Valor do título/apólice inválido',
147
            '09' => 'Data de vencimento inválida',
148
            '10' => 'Fora do prazo/só admissível na carteira',
149
            '11' => 'Inexistência de margem para desconto',
150
            '12' => 'O banco não tem agência na praça do sacado',
151
            '13' => 'Razões cadastrais',
152
            '14' => 'Sacado interligado com o sacador',
153
            '15' => 'Titulo sacado contra órgão do poder público',
154
            '16' => 'Titulo preenchido de forma irregular',
155
            '17' => 'Titulo rasurado',
156
            '18' => 'Endereço do sacado não localizado ou incompleto',
157
            '19' => 'Código do cedente inválido',
158
            '20' => 'Nome/endereço do cliente não informado (ECT)',
159
            '21' => 'Carteira inválida',
160
            '22' => 'Quantidade de valor variável inválida',
161
            '23' => 'Faixa nosso-numero excedida',
162
            '24' => 'Valor do abatimento inválido',
163
            '25' => 'Novo número do título dado pelo cedente inválido (seu número)',
164
            '26' => 'Valor do iof de seguro inválido',
165
            '27' => 'Nome do sacado/cedente inválido',
166
            '28' => 'Data do novo vencimento inválida',
167
            '29' => 'Endereço não informado',
168
            '30' => 'Registro de título já liquidado',
169
            '31' => 'Numero do borderô inválido',
170
            '32' => 'Nome da pessoa autorizada inválido',
171
            '33' => 'Nosso número já existente',
172
            '34' => 'Numero da prestação do contrato inválido',
173
            '35' => 'Percentual de desconto inválido',
174
            '36' => 'Dias para fichamento de protesto inválido',
175
            '37' => 'Data de emissão do título inválida',
176
            '38' => 'Data do vencimento anterior à data da emissão do título',
177
            '39' => 'Comando de alteração indevido para a carteira',
178
            '40' => 'Tipo de moeda inválido',
179
            '41' => 'Abatimento não permitido',
180
            '42' => 'CEP/UF inválido/não compatíveis (ECT)',
181
            '43' => 'Código de unidade variável incompatível com a data de emissão do título',
182
            '44' => 'Dados para débito ao sacado inválidos',
183
            '45' => 'Carteira/variação encerrada',
184
            '46' => 'Convenio encerrado',
185
            '47' => 'Titulo tem valor diverso do informado',
186
            '48' => 'Motivo de baixa invalido para a carteira',
187
            '49' => 'Abatimento a cancelar não consta do título',
188
            '50' => 'Comando incompatível com a carteira',
189
            '51' => 'Código do convenente invalido',
190
            '52' => 'Abatimento igual ou maior que o valor do titulo',
191
            '53' => 'Titulo já se encontra na situação pretendida',
192
            '54' => 'Titulo fora do prazo admitido para a conta 1',
193
            '55' => 'Novo vencimento fora dos limites da carteira',
194
            '56' => 'Titulo não pertence ao convenente',
195
            '57' => 'Variação incompatível com a carteira',
196
            '58' => 'Impossível a variação única para a carteira indicada',
197
            '59' => 'Titulo vencido em transferência para a carteira 51',
198
            '60' => 'Titulo com prazo superior a 179 dias em variação única para carteira 51',
199
            '61' => 'Titulo já foi fichado para protesto',
200
            '62' => 'Alteração da situação de débito inválida para o código de responsabilidade',
201
            '63' => 'DV do nosso número inválido',
202
            '64' => 'Titulo não passível de débito/baixa - situação anormal',
203
            '65' => 'Titulo com ordem de não protestar - não pode ser encaminhado a cartório',
204
            '66' => 'Número do documento do sacado (CNPJ/CPF) inválido',
205
            '67' => 'Titulo/carne rejeitado',
206
            '69' => 'Valor/percentual de juros inválido',
207
            '70' => 'Título já se encontra isento de juros',
208
            '71' => 'Código de juros inválido',
209
            '72' => 'Prefixo da ag. cobradora inválido',
210
            '73' => 'Numero do controle do participante inválido',
211
            '74' => 'Cliente não cadastrado no ciope (desconto/vendor)',
212
            '75' => 'Quantidade de dias do prazo limite para recebimento de título vencido inválido',
213
            '76' => 'Titulo excluído automaticamente por decurso de prazo ciope (desconto/vendor)',
214
            '77' => 'Titulo vencido transferido para a conta 1 - carteira vinculada',
215
            '84' => 'Título não localizado na existência/baixado por protesto',
216
            '80' => 'Nosso numero inválido',
217
            '81' => 'Data para concessão do desconto inválida. gerada nos seguintes casos',
218
            '82' => 'CEP do sacado inválido',
219
            '83' => 'Carteira/variação não localizada no cedente',
220
            '84' => 'Titulo não localizado na existência',
221
            '85' => 'Recusa do comando 41 - parâmetro de liquidação parcial',
222
            '99' => 'Outros motivos',
223
        ],
224
        '72' => [
225
            '00' => 'Transferência de título de cobrança simples para descontada ou vice-versa',
226
            '52' => 'Reembolso de título vendor ou descontado',
227
        ],
228
    ];
229
230
    /**
231
     * Remittance occurrences codes.
232
     *
233
     * @var array
234
     */
235
    protected static $remittanceOccurrences = [
236
        '01' => 'Registro de títulos',
237
        '02' => 'Solicitação de baixa',
238
        '03' => 'Pedido de débito em conta',
239
        '04' => 'Concessão de abatimento',
240
        '05' => 'Cancelamento de abatimento',
241
        '06' => 'Alteração de vencimento de título',
242
        '07' => 'Alteração do número de controle do participante',
243
        '08' => 'Alteração do número do titulo dado pelo cedente',
244
        '09' => 'Instrução para protestar',
245
        '10' => 'Instrução para sustar protesto',
246
        '11' => 'Instrução para dispensar juros',
247
        '12' => 'Alteração de nome e endereço do sacado',
248
        '16' => 'Alterar juros de mora',
249
        '31' => 'Conceder desconto',
250
        '32' => 'Não conceder desconto',
251
        '33' => 'Retificar dados da concessão de desconto',
252
        '34' => 'Alterar data para concessão de desconto',
253
        '35' => 'Cobrar multa',
254
        '36' => 'Dispensar multa',
255
        '37' => 'Dispensar indexador',
256
        '38' => 'Dispensar prazo limite de recebimento',
257
        '39' => 'Alterar prazo limite de recebimento',
258
        '40' => 'Alterar modalidade',
259
    ];
260
261
    /**
262
     * Return occurrences codes.
263
     *
264
     * @var array
265
     */
266
    protected static $returnOccurrences = [
267
        '02' => 'Confirmação de entrada de título',
268
        '03' => 'Comando recusado',
269
        '05' => 'Liquidado sem registro',
270
        '06' => 'Liquidação normal',
271
        '07' => 'Liquidação por conta/parcial',
272
        '08' => 'Liquidação por saldo',
273
        '09' => 'Baixa de titulo',
274
        '10' => 'Baixa solicitada',
275
        '11' => 'Títulos em ser',
276
        '12' => 'Abatimento concedido',
277
        '13' => 'Abatimento cancelado',
278
        '14' => 'Alteração de vencimento do título',
279
        '15' => 'Liquidação em cartório',
280
        '16' => 'Confirmação de alteração de juros de mora',
281
        '19' => 'Confirmação de recebimento de instruções para protesto',
282
        '20' => 'Débito em conta',
283
        '21' => 'Alteração do nome do sacado',
284
        '22' => 'Alteração do endereço do sacado',
285
        '23' => 'Indicação de encaminhamento a cartório',
286
        '24' => 'Sustar protesto',
287
        '25' => 'Dispensar juros de mora',
288
        '26' => 'Alteração do número do título dado pelo cedente (seu número)',
289
        '28' => 'Manutenção de titulo vencido',
290
        '31' => 'Conceder desconto',
291
        '32' => 'Não conceder desconto',
292
        '33' => 'Retificar desconto',
293
        '34' => 'Alterar data para desconto',
294
        '35' => 'Cobrar multa',
295
        '36' => 'Dispensar multa',
296
        '37' => 'Dispensar indexador',
297
        '38' => 'Dispensar prazo limite para recebimento',
298
        '39' => 'Alterar prazo limite para recebimento',
299
        '41' => 'Alteração do número do controle do participante',
300
        '42' => 'Alteração do número do documento do sacado (CNPJ/CPF)',
301
        '44' => 'Título pago com cheque devolvido',
302
        '46' => 'Título pago com cheque, aguardando compensação',
303
        '72' => 'Alteração de tipo de cobrança',
304
        '73' => 'Confirmação de instrução de parâmetro de pagamento parcial',
305
        '96' => 'Despesas de protesto',
306
        '97' => 'Despesas de sustação de protesto',
307
        '98' => 'Débito de custas antecipadas',
308
    ];
309
310
    /**
311
     * Return the default state of itau infos.
312
     *
313
     * @return array
314
     */
315
    public function defaults()
316
    {
317
        return [
318
            'especie' => '01',
319
            'instruction1' => '00',
320
            'instruction2' => '00',
321
        ];
322
    }
323
}
324