-
Notifications
You must be signed in to change notification settings - Fork 10
/
MetodosUteis.cs
349 lines (271 loc) · 17.9 KB
/
MetodosUteis.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using BoletoOnline.Class.Objetos;
using Newtonsoft.Json;
namespace BoletoOnline.Class.Uteis
{
public class MetodosUteis
{
public bool EhValido(EnvioRemessaCobrancaBradescoJson entidade)
{
return !Criticas(entidade).Any();
}
public IEnumerable<string> Criticas(EnvioRemessaCobrancaBradescoJson entidade)
{
//Campos Obrigatórios e condicionalmente obrigatórios
if (EstaVazio(entidade.nuCpfcnpjPagador) || entidade.nuCpfcnpjPagador.Length > 9)
yield return "Campo nuCpfcnpjPagador não pode ser vazio e precisa ter tamanho máximo de 9";
if (EstaVazio(entidade.filialCPFCNPJ) || entidade.filialCPFCNPJ.Length > 4)
yield return "Campo filialCPFCNPJ não pode ser vazio e precisa ter tamanho máximo de 4";
if (EstaVazio(entidade.ctrlCPFCNPJ) || entidade.ctrlCPFCNPJ.Length > 2)
yield return "Campo ctrlCPFCNPJ não pode ser vazio e precisa ter tamanho máximo de 2";
if (EstaVazio(entidade.cdTipoAcesso) || entidade.cdTipoAcesso.Length > 1)
yield return "Campo cdTipoAcesso não pode ser vazio e precisa ter tamanho máximo de 1";
if (EstaVazio(entidade.idProduto) || entidade.idProduto.Length > 2)
yield return "Campo idProduto não pode ser vazio e precisa ter tamanho máximo de 2";
if (EstaVazio(entidade.nuNegociacao) || entidade.nuNegociacao.Length > 18)
yield return "Campo nuNegociacao não pode ser vazio e precisa ter tamanho máximo de 18";
if (EstaVazio(entidade.cdBanco) || entidade.cdBanco.Length > 3)
yield return "Campo cdBanco não pode ser vazio e precisa ter tamanho máximo de 3";
if (EstaVazio(entidade.tpRegistro) || entidade.tpRegistro.Length > 3)
yield return "Campo tpRegistro não pode ser vazio e precisa ter tamanho máximo de 3";
if (EstaVazio(entidade.nuCliente) || entidade.nuCliente.Length > 10)
yield return "Campo nuCliente não pode ser vazio e precisa ter tamanho máximo de 10";
if (EstaVazio(entidade.dtEmissaoTitulo) || entidade.dtEmissaoTitulo.Length > 10)
yield return "Campo dtEmissaoTitulo não pode ser vazio e precisa ter tamanho máximo de 10";
if (EstaVazio(entidade.dtVencimentoTitulo) || entidade.dtVencimentoTitulo.Length > 10)
yield return "Campo dtVencimentoTitulo não pode ser vazio e precisa ter tamanho máximo de 10";
if (EstaVazio(entidade.tpVencimento) || entidade.tpVencimento.Length > 1)
yield return "Campo tpVencimento não pode ser vazio e precisa ter tamanho máximo de 1";
if (EstaVazio(entidade.vlNominalTitulo) || entidade.vlNominalTitulo.Length > 17)
yield return "Campo vlNominalTitulo não pode ser vazio e precisa ter tamanho máximo de 17";
if (EstaVazio(entidade.cdEspecieTitulo) || entidade.cdEspecieTitulo.Length > 2)
yield return "Campo cdEspecieTitulo não pode ser vazio e precisa ter tamanho máximo de 2";
if (EstaVazio(entidade.cdEspecieTitulo) || entidade.cdEspecieTitulo.Length > 2)
yield return "Campo cdEspecieTitulo não pode ser vazio e precisa ter tamanho máximo de 2";
if (!EstaVazio(entidade.tpProtestoAutomaticoNegativacao))
{
if (EstaVazio(entidade.prazoProtestoAutomaticoNegativacao) || entidade.prazoProtestoAutomaticoNegativacao.Length > 2)
yield return "Campo prazoProtestoAutomaticoNegativacao não pode ser vazio e precisa ter tamanho máximo de 2, pois tpProtestoAutomaticoNegativacao não está vazio";
}
if (!(EstaVazio(entidade.vlDesconto1) || EstaVazio(entidade.percentualDesconto1)))
{
if (EstaVazio(entidade.dataLimiteDesconto1) || entidade.dataLimiteDesconto1.Length > 10)
yield return "Campo dataLimiteDesconto1 não pode ser vazio e precisa ter tamanho máximo de 10, pois vlDesconto1 ou percentualDesconto1 foi informado";
}
if (!(EstaVazio(entidade.vlDesconto2) || EstaVazio(entidade.percentualDesconto2)))
{
if (EstaVazio(entidade.dataLimiteDesconto2) || entidade.dataLimiteDesconto2.Length > 10)
yield return "Campo dataLimiteDesconto2 não pode ser vazio e precisa ter tamanho máximo de 10, pois vlDesconto2 ou percentualDesconto2 foi informado";
}
if (!(EstaVazio(entidade.vlDesconto3) || EstaVazio(entidade.percentualDesconto3)))
{
if (EstaVazio(entidade.dataLimiteDesconto3) || entidade.dataLimiteDesconto3.Length > 10)
yield return "Campo dataLimiteDesconto3 não pode ser vazio e precisa ter tamanho máximo de 10, pois vlDesconto3 ou percentualDesconto3 foi informado";
}
if (!(EstaVazio(entidade.percentualBonificacao) || EstaVazio(entidade.vlBonificacao)))
{
if (EstaVazio(entidade.prazoBonificacao) || entidade.prazoBonificacao.Length > 2)
yield return "Campo prazoBonificacao não pode ser vazio e precisa ter tamanho máximo de 2, pois percentualBonificacao ou vlBonificacao foi informado";
if (EstaVazio(entidade.dtLimiteBonificacao) || entidade.dtLimiteBonificacao.Length > 10)
yield return "Campo dtLimiteBonificacao não pode ser vazio e precisa ter tamanho máximo de 10, pois percentualBonificacao ou vlBonificacao foi informado";
}
if (!(EstaVazio(entidade.cdPagamentoParcial) && entidade.cdPagamentoParcial == "S"))
{
if (EstaVazio(entidade.qtdePagamentoParcial) || entidade.qtdePagamentoParcial.Length > 3)
yield return "Campo qtdePagamentoParcial não pode ser vazio e precisa ter tamanho máximo de 3, pois cdPagamentoParcial foi informado";
}
//Somente para cobrança carteira de seguros (????)
if (EstaVazio(entidade.vlIOF) || entidade.vlIOF.Length > 17)
yield return "Campo vlIOF não pode ser vazio e precisa ter tamanho máximo de 17";
if (EstaVazio(entidade.nomePagador) || entidade.nomePagador.Length > 70)
yield return "Campo nomePagador não pode ser vazio e precisa ter tamanho máximo de 70";
if (EstaVazio(entidade.logradouroPagador) || entidade.logradouroPagador.Length > 40)
yield return "Campo logradouroPagador não pode ser vazio e precisa ter tamanho máximo de 40";
if (EstaVazio(entidade.nuLogradouroPagador) || entidade.nuLogradouroPagador.Length > 10)
yield return "Campo nuLogradouroPagador não pode ser vazio e precisa ter tamanho máximo de 10";
if (EstaVazio(entidade.cepPagador) || entidade.cepPagador.Length > 5)
yield return "Campo cepPagador não pode ser vazio e precisa ter tamanho máximo de 5";
if (EstaVazio(entidade.complementoCepPagador) || entidade.complementoCepPagador.Length > 3)
yield return "Campo complementoCepPagador não pode ser vazio e precisa ter tamanho máximo de 3";
if (EstaVazio(entidade.bairroPagador) || entidade.bairroPagador.Length > 40)
yield return "Campo bairroPagador não pode ser vazio e precisa ter tamanho máximo de 40";
if (EstaVazio(entidade.municipioPagador) || entidade.municipioPagador.Length > 30)
yield return "Campo municipioPagador não pode ser vazio e precisa ter tamanho máximo de 30";
if (EstaVazio(entidade.ufPagador) || entidade.ufPagador.Length > 2)
yield return "Campo ufPagador não pode ser vazio e precisa ter tamanho máximo de 2";
if (EstaVazio(entidade.cdIndCpfcnpjPagador) || entidade.cdIndCpfcnpjPagador.Length > 1)
yield return "Campo cdIndCpfcnpjPagador não pode ser vazio e precisa ter tamanho máximo de 1";
if (EstaVazio(entidade.nuCpfcnpjPagador) || entidade.nuCpfcnpjPagador.Length > 14)
yield return "Campo nuCpfcnpjPagador não pode ser vazio e precisa ter tamanho máximo de 14";
if (!EstaVazio(entidade.nomeSacadorAvalista))
{
if (EstaVazio(entidade.logradouroSacadorAvalista) || entidade.logradouroSacadorAvalista.Length > 40)
yield return "Campo logradouroSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 40, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.nuLogradouroSacadorAvalista) || entidade.nuLogradouroSacadorAvalista.Length > 10)
yield return "Campo nuLogradouroSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 10, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.cepSacadorAvalista) || entidade.cepSacadorAvalista.Length > 5)
yield return "Campo cepSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 5, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.complementoCepSacadorAvalista) || entidade.complementoCepSacadorAvalista.Length > 3)
yield return "Campo complementoCepSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 3, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.bairroSacadorAvalista) || entidade.bairroSacadorAvalista.Length > 40)
yield return "Campo bairroSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 40, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.municipioSacadorAvalista) || entidade.municipioSacadorAvalista.Length > 40)
yield return "Campo municipioSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 40, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.ufSacadorAvalista) || entidade.ufSacadorAvalista.Length > 2)
yield return "Campo ufSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 2, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.cdIndCpfcnpjSacadorAvalista) || entidade.cdIndCpfcnpjSacadorAvalista.Length > 1)
yield return "Campo cdIndCpfcnpjSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 1, pois nomeSacadorAvalista foi informado";
if (EstaVazio(entidade.nuCpfcnpjSacadorAvalista) || entidade.nuCpfcnpjSacadorAvalista.Length > 14)
yield return "Campo nuCpfcnpjSacadorAvalista não pode ser vazio e precisa ter tamanho máximo de 14, pois nomeSacadorAvalista foi informado";
}
//Campos não obrigatórios
if (!EstaVazio(entidade.clubBanco) && entidade.clubBanco.Length > 10)
{
yield return "Campo clubBanco precisa ter tamanho máximo de 10";
}
if (!EstaVazio(entidade.cdTipoContrato) && entidade.cdTipoContrato.Length > 3)
{
yield return "Campo cdTipoContrato precisa ter tamanho máximo de 3";
}
if (!EstaVazio(entidade.nuSequenciaContrato) && entidade.nuSequenciaContrato.Length > 10)
{
yield return "Campo nuSequenciaContrato precisa ter tamanho máximo de 10";
}
if (!EstaVazio(entidade.eNuSequenciaContrato) && entidade.eNuSequenciaContrato.Length > 10)
{
yield return "Campo eNuSequenciaContrato precisa ter tamanho máximo de 10";
}
if (!EstaVazio(entidade.cdProduto) && entidade.cdProduto.Length > 8)
{
yield return "Campo cdProduto precisa ter tamanho máximo de 8";
}
if (!EstaVazio(entidade.nuTitulo) && entidade.nuTitulo.Length > 11)
{
yield return "Campo nuTitulo precisa ter tamanho máximo de 11";
}
if (!EstaVazio(entidade.tpProtestoAutomaticoNegativacao) && entidade.tpProtestoAutomaticoNegativacao.Length > 11)
{
yield return "Campo tpProtestoAutomaticoNegativacao precisa ter tamanho máximo de 2";
}
if (!EstaVazio(entidade.controleParticipante) && entidade.controleParticipante.Length > 25)
{
yield return "Campo controleParticipante precisa ter tamanho máximo de 25";
}
if (!EstaVazio(entidade.cdPagamentoParcial) && entidade.cdPagamentoParcial.Length > 1)
{
yield return "Campo cdPagamentoParcial precisa ter tamanho máximo de 1";
}
if (!EstaVazio(entidade.percentualJuros) && entidade.percentualJuros.Length > 8)
{
yield return "Campo percentualJuros precisa ter tamanho máximo de 8";
}
if (!EstaVazio(entidade.vlJuros) && entidade.vlJuros.Length > 17)
{
yield return "Campo vlJuros precisa ter tamanho máximo de 17";
}
if (!EstaVazio(entidade.qtdeDiasJuros) && entidade.qtdeDiasJuros.Length > 2)
{
yield return "Campo qtdeDiasJuros precisa ter tamanho máximo de 2";
}
if (!EstaVazio(entidade.percentualMulta) && entidade.percentualMulta.Length > 8)
{
yield return "Campo percentualMulta precisa ter tamanho máximo de 8";
}
if (!EstaVazio(entidade.vlMulta) && entidade.vlMulta.Length > 17)
{
yield return "Campo vlMulta precisa ter tamanho máximo de 17";
}
if (!EstaVazio(entidade.qtdeDiasMulta) && entidade.qtdeDiasMulta.Length > 3)
{
yield return "Campo qtdeDiasMulta precisa ter tamanho máximo de 3";
}
if (!EstaVazio(entidade.percentualDesconto1) && entidade.percentualDesconto1.Length > 8)
{
yield return "Campo percentualDesconto1 precisa ter tamanho máximo de 8";
}
if (!EstaVazio(entidade.vlDesconto1) && entidade.vlDesconto1.Length > 17)
{
yield return "Campo vlDesconto1 precisa ter tamanho máximo de 17";
}
if (!EstaVazio(entidade.percentualDesconto2) && entidade.percentualDesconto2.Length > 8)
{
yield return "Campo percentualDesconto2 precisa ter tamanho máximo de 8";
}
if (!EstaVazio(entidade.vlDesconto2) && entidade.vlDesconto2.Length > 17)
{
yield return "Campo vlDesconto2 precisa ter tamanho máximo de 17";
}
if (!EstaVazio(entidade.percentualDesconto3) && entidade.percentualDesconto3.Length > 8)
{
yield return "Campo percentualDesconto3 precisa ter tamanho máximo de 8";
}
if (!EstaVazio(entidade.vlDesconto3) && entidade.vlDesconto3.Length > 17)
{
yield return "Campo vlDesconto3 precisa ter tamanho máximo de 17";
}
if (!EstaVazio(entidade.percentualBonificacao) && entidade.percentualBonificacao.Length > 8)
{
yield return "Campo percentualBonificacao precisa ter tamanho máximo de 8";
}
if (!EstaVazio(entidade.vlBonificacao) && entidade.vlBonificacao.Length > 17)
{
yield return "Campo vlBonificacao precisa ter tamanho máximo de 17";
}
if (!EstaVazio(entidade.vlAbatimento) && entidade.vlAbatimento.Length > 17)
{
yield return "Campo vlAbatimento precisa ter tamanho máximo de 17";
}
if (!EstaVazio(entidade.complementoLogradouroPagador) && entidade.complementoLogradouroPagador.Length > 15)
{
yield return "Campo complementoLogradouroPagador precisa ter tamanho máximo de 15";
}
if (!EstaVazio(entidade.endEletronicoPagador) && entidade.endEletronicoPagador.Length > 70)
{
yield return "Campo endEletronicoPagador precisa ter tamanho máximo de 70";
}
if (!EstaVazio(entidade.nomeSacadorAvalista) && entidade.nomeSacadorAvalista.Length > 40)
{
yield return "Campo nomeSacadorAvalista precisa ter tamanho máximo de 40";
}
if (!EstaVazio(entidade.complementoLogradouroSacadorAvalista) && entidade.complementoLogradouroSacadorAvalista.Length > 15)
{
yield return "Campo complementoLogradouroSacadorAvalista precisa ter tamanho máximo de 15";
}
if (!EstaVazio(entidade.endEletronicoSacadorAvalista) && entidade.endEletronicoSacadorAvalista.Length > 70)
{
yield return "Campo endEletronicoSacadorAvalista precisa ter tamanho máximo de 70";
}
}
private bool EstaVazio(string param)
{
if (string.IsNullOrWhiteSpace(param))
return true;
var converteu = long.TryParse(param, out long resultado);
return converteu && resultado == 0;
}
private bool EstaVazioSemZero(string param)
{
if (string.IsNullOrWhiteSpace(param))
return true;
var converteu = long.TryParse(param, out long resultado);
return converteu && resultado > 0;
}
public string ConverterParaJsonAspasSimples(EnvioRemessaCobrancaBradescoJson data)
{
var sb = new StringBuilder();
using (var sw = new StringWriter(sb))
{
using (var writer = new JsonTextWriter(sw))
{
writer.QuoteChar = '\"';
var ser = new JsonSerializer();
ser.Serialize(writer, data);
}
}
return sb?.ToString().Replace("null", "\"0\""); ;
}
}
}