protected void grDatos_RowCommand(object sender, GridViewCommandEventArgs e) { DataRow row = dt.Rows[int.Parse(e.CommandArgument.ToString())]; int id = int.Parse(row["idtitulo"].ToString()); if (e.CommandName.Equals("btnEditar")) { Titulo desc = new Titulo(id); if (DAOTitulo.sqlLeer(desc)) { btnCancelar.Visible = true; hdnId.Value = id.ToString(); hdnAccion.Value = "u"; btnAgregar.Text = "Editar"; btnAgregar.CssClass = "btn btn-success"; txtNombre.Text = desc.Nombre; } } if (e.CommandName.Equals("btnEliminar")) { if (DAOTitulo.sqlDelete(new Titulo(id))) { hdnAccion.Value = "d"; panelMensajesCorrectos.Visible = true; lblMensajes.Text = "Titulo <b>" + txtNombre.Text + "</b> eliminada con éxito."; hdnAccion.Value = "i"; btnAgregar.Text = "Agregar"; btnAgregar.CssClass = "btn btn-primary"; } else { panelMensajesErrores.Visible = true; lblErrores.Text = "No se ha podido eliminar el titulo. Intente de nuevo."; } cargarGrilla(); } }
internal ERespuestaTitulo OpeInsertar(Titulo titulo) { ERespuestaTitulo eRespuesta = new ERespuestaTitulo(); using (var tit = new cita_doctorContext()) { tit.Titulo.Add(titulo); try { tit.SaveChanges(); eRespuesta.Error.Codigo = "00"; eRespuesta.Error.Mensaje = "Ok"; } catch (Exception e) { eRespuesta.Error.Codigo = "01"; eRespuesta.Error.Mensaje = e.Message; return(eRespuesta); } } return(eRespuesta); }
public ActionResult AlterarSituacao(int id) { Titulo titulo = _bus.ObterSimplificado(id); List <Situacao> situacoes = new List <Situacao>(); switch ((eTituloSituacao)titulo.Situacao.Id) { case eTituloSituacao.EmCadastro: situacoes = ListaCredenciadoBus.TituloDeclaratorioSituacoes.Where(x => x.Id == Convert.ToInt32(eTituloSituacao.Valido)).ToList(); break; default: break; } AlterarSituacaoVM vm = new AlterarSituacaoVM(new List <Motivo>(), titulo, situacoes); if (Request.IsAjaxRequest()) { return(PartialView("AlterarSituacaoPartial", vm)); } return(View(vm)); }
static void Main(string[] args) { Titulo.Cabecalho(Assembly.GetCallingAssembly().GetName().Name); Usuario usuario = new Usuario { Nome = "Maria da Costa Silva", CPF = "222.222.222-22", Email = "*****@*****.**" }; string arquivo = "SerializarJSON.json"; StreamWriter stream = Arquivos.ArquivoEscrever(arquivo); JavaScriptSerializer serializador = new JavaScriptSerializer(); string usuarioSerializado = serializador.Serialize(usuario); stream.WriteLine(usuarioSerializado); stream.Close(); Console.WriteLine("Usuário adicionado."); Titulo.Rodape(); }
//Validacoes Basicas do título public bool Titulo(Titulo titulo) { Obrigatoriedades(titulo); if (!Validacao.EhValido) { return(false); } Modelo(titulo); Numero(titulo); Protocolo(titulo); EmpreendimentoProcDocAlterado(titulo); if (ValidarEspecificidade != null) { ValidarEspecificidade(); } Condicionantes(titulo); if (!titulo.Modelo.Regra(eRegra.PdfGeradoSistema)) { if (titulo.ArquivoPdf == null || titulo.ArquivoPdf.Id == null) { Validacao.Add(Mensagem.Titulo.ArquivoObrigatorio); } } Assinantes(titulo); DestinatariosEmail(titulo); return(Validacao.EhValido); }
/// <summary> /// Gerars the registro transacao400. /// </summary> /// <param name="titulo">The titulo.</param> /// <param name="aRemessa">A remessa.</param> public override void GerarRegistroTransacao400(Titulo titulo, List<string> aRemessa) { var DoMontaInstrucoes1 = new Func<string>(() => { if (titulo.Mensagem.Count < 1) return string.Empty; var Result = new StringBuilder(); Result.Append(Environment.NewLine); Result.Append("6"); // IDENTIFICAÇÃO DO REGISTRO Result.Append("2"); // IDENTIFICAÇÃO DO LAYOUT PARA O REGISTRO Result.Append(titulo.Mensagem[0].FillLeft(69)); // CONTEÚDO DA 1ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO if(titulo.Mensagem.Count >= 2) Result.Append(titulo.Mensagem[1].FillLeft(69)); // CONTEÚDO DA 2ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO else Result.Append("".FillLeft(69)); // CONTEÚDO DO RESTANTE DAS LINHAS if(titulo.Mensagem.Count >= 3) Result.Append(titulo.Mensagem[2].FillLeft(69)); // CONTEÚDO DA 3ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO else Result.Append("".FillLeft(69)); // CONTEÚDO DO RESTANTE DAS LINHAS if(titulo.Mensagem.Count >= 4) Result.Append(titulo.Mensagem[3].FillLeft(69)); // CONTEÚDO DA 4ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO else Result.Append("".FillLeft(69)); // CONTEÚDO DO RESTANTE DAS LINHAS if(titulo.Mensagem.Count >= 5) Result.Append(titulo.Mensagem[4].FillLeft(69)); // CONTEÚDO DA 5ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO else Result.Append("".FillLeft(69)); // CONTEÚDO DO RESTANTE DAS LINHAS Result.Append("".FillLeft(47)); // COMPLEMENTO DO REGISTRO Result.AppendFormat("{0:000000}", aRemessa.Count + 2); // Nº SEQÜENCIAL DO REGISTRO NO ARQUIVO return Result.ToString().ToUpper(); }); //Pegando o Tipo de Ocorrencia string ATipoOcorrencia; switch (titulo.OcorrenciaOriginal.Tipo) { case TipoOcorrencia.RemessaBaixar: ATipoOcorrencia = "02"; break; case TipoOcorrencia.RemessaConcederAbatimento: ATipoOcorrencia = "04"; break; case TipoOcorrencia.RemessaCancelarAbatimento: ATipoOcorrencia = "05"; break; case TipoOcorrencia.RemessaAlterarVencimento: ATipoOcorrencia = "06"; break; case TipoOcorrencia.RemessaAlterarUsoEmpresa: ATipoOcorrencia = "07"; break; case TipoOcorrencia.RemessaAlterarSeuNumero: ATipoOcorrencia = "08"; break; case TipoOcorrencia.RemessaProtestar: ATipoOcorrencia = "09"; break; case TipoOcorrencia.RemessaNaoProtestar: ATipoOcorrencia = "10"; break; case TipoOcorrencia.RemessaProtestoFinsFalimentares: ATipoOcorrencia = "11"; break; case TipoOcorrencia.RemessaSustarProtesto: ATipoOcorrencia = "18"; break; case TipoOcorrencia.RemessaOutrasAlteracoes: ATipoOcorrencia = "31"; break; case TipoOcorrencia.RemessaBaixaporPagtoDiretoCedente: ATipoOcorrencia = "34"; break; case TipoOcorrencia.RemessaCancelarInstrucao: ATipoOcorrencia = "35"; break; case TipoOcorrencia.RemessaAlterarVencSustarProtesto: ATipoOcorrencia = "37"; break; case TipoOcorrencia.RemessaCedenteDiscordaSacado: ATipoOcorrencia = "38"; break; case TipoOcorrencia.RemessaCedenteSolicitaDispensaJuros: ATipoOcorrencia = "47"; break; default: ATipoOcorrencia = "01"; break; } //Pegando o Aceite do Titulo string ATipoAceite; switch (titulo.Aceite) { case AceiteTitulo.Nao: ATipoAceite = "N"; break; default: ATipoAceite = "A"; break; } //Pegando o tipo de EspecieDoc string ATipoEspecieDoc = string.Empty; if (titulo.EspecieDoc.Trim() == "DM") ATipoEspecieDoc = "01"; else if (titulo.EspecieDoc.Trim() == "NP") ATipoEspecieDoc = "02"; else if (titulo.EspecieDoc.Trim() == "NS") ATipoEspecieDoc = "03"; else if (titulo.EspecieDoc.Trim() == "ME") ATipoEspecieDoc = "04"; else if (titulo.EspecieDoc.Trim() == "RC") ATipoEspecieDoc = "05"; else if (titulo.EspecieDoc.Trim() == "CT") ATipoEspecieDoc = "06"; else if (titulo.EspecieDoc.Trim() == "CS") ATipoEspecieDoc = "07"; else if (titulo.EspecieDoc.Trim() == "DS") ATipoEspecieDoc = "08"; else if (titulo.EspecieDoc.Trim() == "LC") ATipoEspecieDoc = "09"; else if (titulo.EspecieDoc.Trim() == "ND") ATipoEspecieDoc = "13"; else if (titulo.EspecieDoc.Trim() == "DD") ATipoEspecieDoc = "15"; else if (titulo.EspecieDoc.Trim() == "EC") ATipoEspecieDoc = "16"; else if (titulo.EspecieDoc.Trim() == "PS") ATipoEspecieDoc = "17"; else if (titulo.EspecieDoc.Trim() == "DV") ATipoEspecieDoc = "99"; //Mora Juros string ADataMoraJuros; if (titulo.ValorMoraJuros > 0) { if (titulo.DataMoraJuros.HasValue) ADataMoraJuros = string.Format("{0:ddMMyyyy}", titulo.DataMoraJuros); else ADataMoraJuros = "".ZeroFill(8); } else ADataMoraJuros = "".ZeroFill(8); //Descontos string ADataDesconto; if (titulo.ValorDesconto > 0) { if (titulo.DataDesconto.HasValue) ADataDesconto = string.Format("{0:ddMMyyyy}", titulo.DataDesconto); else ADataDesconto = "".ZeroFill(8); } else ADataDesconto = "".ZeroFill(8); //Pegando Tipo Cendete string ATipoCedente; switch(titulo.Parent.Cedente.TipoInscricao) { case PessoaCedente.Fisica: ATipoCedente = "01"; break; default: ATipoCedente = "02"; break; } //Pegando Tipo de Sacado string ATipoSacado; switch (titulo.Sacado.Pessoa) { case Pessoa.Fisica: ATipoSacado = "01"; break; case Pessoa.Juridica: ATipoSacado = "02"; break; default: ATipoSacado = "99"; break; } //endereco string end = string.Format("{0} {1} {2}", titulo.Sacado.Logradouro, titulo.Sacado.Numero, titulo.Sacado.Complemento).FillLeft(40); var wLinha = new StringBuilder(); //Cobrança sem registro com opção de envio de arquivo remessa if (titulo.Carteira.Trim().IsIn("102", "103", "107", "172", "173", "196")) { string ANossoNumero = Banco.MontarCampoNossoNumero(titulo); wLinha.Append("6"); // 6 - FIXO wLinha.Append("1"); // 1 - FIXO wLinha.Append(titulo.Parent.Cedente.Agencia.ZeroFill(4)); // AGÊNCIA MANTENEDORA DA CONTA wLinha.Append("00"); // COMPLEMENTO DE REGISTRO wLinha.Append(titulo.Parent.Cedente.Conta.ZeroFill(5)); // NÚMERO DA CONTA CORRENTE DA EMPRESA wLinha.Append(titulo.Parent.Cedente.ContaDigito.ZeroFill(1)); // DÍGITO DE AUTO CONFERÊNCIA AG/CONTA EMPRESA wLinha.Append(titulo.Carteira.Trim()); // NÚMERO DA CARTEIRA NO BANCO wLinha.Append(titulo.NossoNumero.ZeroFill(8)); // IDENTIFICAÇÃO DO TÍTULO NO BANCO wLinha.Append(ANossoNumero[ANossoNumero.Length-1]); // DAC DO NOSSO NÚMERO wLinha.Append("0"); // 0 - R$ wLinha.Append("R$".FillLeft(4)); // LITERAL DE MOEDA wLinha.Append(titulo.ValorDocumento.ToDecimalString(13)); // VALOR NOMINAL DO TÍTULO wLinha.Append(titulo.SeuNumero.FillLeft(10)); // IDENTIFICAÇÃO DO TÍTULO NA EMPRESA wLinha.AppendFormat("{0:ddMMyy}", titulo.Vencimento); // DATA DE VENCIMENTO DO TÍTULO wLinha.Append(ATipoEspecieDoc.ZeroFill(2)); // ESPÉCIE DO TÍTULO wLinha.Append(ATipoAceite); // IDENTIFICAÇÃO DE TITILO ACEITO OU NÃO ACEITO wLinha.AppendFormat("{0:ddMMyy}", titulo.DataDocumento); // DATA DE EMISSÃO //Dados do sacado wLinha.Append(ATipoSacado); // IDENTIFICAÇÃO DO TIPO DE INSCRIÇÃO/SACADO wLinha.Append(titulo.Sacado.CNPJCPF.ZeroFill(15)); // Nº DE INSCRIÇÃO DO SACADO (CPF/CGC) wLinha.Append(titulo.Sacado.NomeSacado.FillLeft(30)); // NOME DO SACADO wLinha.Append("".FillLeft(9)); // BRANCOS(COMPLEMENTO DE REGISTRO) wLinha.Append(end); // RUA, NÚMERO E COMPLEMENTO DO SACADO wLinha.Append(titulo.Sacado.Bairro.FillLeft(12)); // BAIRRO DO SACADO wLinha.Append(titulo.Sacado.CEP.OnlyNumbers().ZeroFill(8)); // CEP DO SACADO wLinha.Append(titulo.Sacado.Cidade.FillLeft(15)); // CIDADE DO SACADO wLinha.Append(titulo.Sacado.UF.FillLeft(2)); // UF DO SACADO //Dados do sacador/avalista} wLinha.Append("".FillLeft(30)); // NOME DO SACADOR/AVALISTA wLinha.Append("".FillLeft(4)); // COMPLEMENTO DO REGISTRO wLinha.Append(titulo.LocalPagamento.FillLeft(55)); // LOCAL PAGAMENTO wLinha.Append("".FillLeft(51)); // LOCAL PAGAMENTO 2 wLinha.Append("01"); // IDENTIF. TIPO DE INSCRIÇÃO DO SACADOR/AVALISTA wLinha.Append("".ZeroFill(15)); // NÚMERO DE INSCRIÇÃO DO SACADOR/AVALISTA wLinha.Append("".FillLeft(31)); // COMPLEMENTO DO REGISTRO wLinha.AppendFormat("{0:000000}", aRemessa.Count + 1); wLinha.Append(DoMontaInstrucoes1()); } else { //Carteira com registro wLinha.Append("1"); // 1 a 1 - IDENTIFICAÇÃO DO REGISTRO TRANSAÇÃO wLinha.Append(ATipoCedente); // TIPO DE INSCRIÇÃO DA EMPRESA wLinha.Append(titulo.Parent.Cedente.CNPJCPF.OnlyNumbers().ZeroFill(14)); // Nº DE INSCRIÇÃO DA EMPRESA (CPF/CGC) wLinha.Append(titulo.Parent.Cedente.Agencia.OnlyNumbers().ZeroFill(4)); // AGÊNCIA MANTENEDORA DA CONTA wLinha.Append("00"); // COMPLEMENTO DE REGISTRO wLinha.Append(titulo.Parent.Cedente.Conta.OnlyNumbers().ZeroFill(5)); // NÚMERO DA CONTA CORRENTE DA EMPRESA wLinha.Append(titulo.Parent.Cedente.ContaDigito.OnlyNumbers().ZeroFill(1)); // DÍGITO DE AUTO CONFERÊNCIA AG/CONTA EMPRESA wLinha.Append("".FillLeft(4)); // COMPLEMENTO DE REGISTRO wLinha.Append("0000"); // CÓD.INSTRUÇÃO/ALEGAÇÃO A SER CANCELADA wLinha.Append(titulo.SeuNumero.FillLeft(25)); // IDENTIFICAÇÃO DO TÍTULO NA EMPRESA wLinha.Append(titulo.NossoNumero.ZeroFill(8)); // IDENTIFICAÇÃO DO TÍTULO NO BANCO wLinha.Append("0000000000000"); // QUANTIDADE DE MOEDA VARIÁVEL wLinha.Append(titulo.Carteira); // NÚMERO DA CARTEIRA NO BANCO wLinha.Append("".FillLeft(21)); // IDENTIFICAÇÃO DA OPERAÇÃO NO BANCO wLinha.Append("I"); // CÓDIGO DA CARTEIRA wLinha.Append(ATipoOcorrencia); // IDENTIFICAÇÃO DA OCORRÊNCIA wLinha.Append(titulo.NumeroDocumento.FillLeft(10)); // Nº DO DOCUMENTO DE COBRANÇA (DUPL.,NP ETC.) wLinha.AppendFormat("{0:ddMMyy}", titulo.Vencimento); // DATA DE VENCIMENTO DO TÍTULO wLinha.Append(titulo.ValorDocumento.ToDecimalString()); // VALOR NOMINAL DO TÍTULO wLinha.AppendFormat("{0:000}", Banco.Numero); // Nº DO BANCO NA CÂMARA DE COMPENSAÇÃO wLinha.Append("00000"); // AGÊNCIA ONDE O TÍTULO SERÁ COBRADO wLinha.Append(ATipoEspecieDoc.ZeroFill(2)); // ESPÉCIE DO TÍTULO wLinha.Append(ATipoAceite); // IDENTIFICAÇÃO DE TITILO ACEITO OU NÃO ACEITO wLinha.AppendFormat("{0:ddMMyy}", titulo.DataDocumento); // DATA DA EMISSÃO DO TÍTULO wLinha.Append(titulo.Instrucao1.Trim().ZeroFill(2)); // 1ª INSTRUÇÃO wLinha.Append(titulo.Instrucao2.Trim().ZeroFill(2)); // 2ª INSTRUÇÃO wLinha.Append(titulo.ValorMoraJuros.ToDecimalString()); // VALOR DE MORA POR DIA DE ATRASO wLinha.Append(ADataDesconto); // DATA LIMITE PARA CONCESSÃO DE DESCONTO wLinha.Append(titulo.ValorDesconto > 0 ? titulo.ValorDesconto.ToDecimalString() : "".ZeroFill(13)); // VALOR DO DESCONTO A SER CONCEDIDO wLinha.Append(titulo.ValorIOF.ToDecimalString()); // VALOR DO I.O.F. RECOLHIDO P/ NOTAS SEGURO wLinha.Append(titulo.ValorAbatimento.ToDecimalString()); // VALOR DO ABATIMENTO A SER CONCEDIDO //Dados do sacado wLinha.Append(ATipoSacado); // IDENTIFICAÇÃO DO TIPO DE INSCRIÇÃO/SACADO wLinha.Append(titulo.Sacado.CNPJCPF.OnlyNumbers().ZeroFill(14)); // Nº DE INSCRIÇÃO DO SACADO (CPF/CGC) wLinha.Append(titulo.Sacado.NomeSacado.FillLeft(30)); // NOME DO SACADO wLinha.Append("".FillLeft(10)); // BRANCOS(COMPLEMENTO DE REGISTRO) wLinha.Append(end); // RUA, NÚMERO E COMPLEMENTO DO SACADO wLinha.Append(titulo.Sacado.Bairro.FillLeft(12)); // BAIRRO DO SACADO wLinha.Append(titulo.Sacado.CEP.OnlyNumbers().ZeroFill(8)); // CEP DO SACADO wLinha.Append(titulo.Sacado.Cidade.FillLeft(15)); // CIDADE DO SACADO wLinha.Append(titulo.Sacado.UF.FillLeft(2)); // UF DO SACADO //Dados do sacador/avalista wLinha.Append("".FillLeft(30)); // NOME DO SACADOR/AVALISTA wLinha.Append("".FillLeft(4)); // COMPLEMENTO DO REGISTRO wLinha.Append(ADataMoraJuros); // DATA DE MORA wLinha.Append(titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento ? titulo.DataProtesto.Value.Date.Subtract(titulo.Vencimento.Date).Days.ToString("00") : "00"); // PRAZO wLinha.Append("".FillLeft(1)); // BRANCOS wLinha.AppendFormat("{0:000000}", aRemessa.Count + 1); } aRemessa.Add(wLinha.ToString().ToUpper()); }
/// <summary> /// Montars the campo nosso numero. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCampoNossoNumero(Titulo titulo) { var NossoNr = titulo.Carteira + titulo.NossoNumero.FillRight(TamanhoMaximoNossoNum, '0'); NossoNr.Insert(3, "/"); NossoNr.Insert(12, "-"); return NossoNr + CalcularDigitoVerificador(titulo); }
/// <summary> /// Gerars the registro transacao240. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string GerarRegistroTransacao240(Titulo titulo) { //Pegando o Tipo de Ocorrencia string ATipoOcorrencia; switch (titulo.OcorrenciaOriginal.Tipo) { case TipoOcorrencia.RemessaBaixar: ATipoOcorrencia = "02"; break; case TipoOcorrencia.RemessaConcederAbatimento: ATipoOcorrencia = "04"; break; case TipoOcorrencia.RemessaCancelarAbatimento: ATipoOcorrencia = "05"; break; case TipoOcorrencia.RemessaAlterarVencimento: ATipoOcorrencia = "06"; break; case TipoOcorrencia.RemessaSustarProtesto: ATipoOcorrencia = "18"; break; case TipoOcorrencia.RemessaCancelarInstrucaoProtesto: ATipoOcorrencia = "10"; break; default: ATipoOcorrencia = "01"; break; } //Pegando o Aceite do Titulo string ATipoAceite; switch (titulo.Aceite) { case AceiteTitulo.Nao: ATipoAceite = "N"; break; default: ATipoAceite = "A"; break; } //Mora Juros string ADataMoraJuros; if (titulo.ValorMoraJuros > 0) { if (titulo.DataMoraJuros.HasValue) ADataMoraJuros = string.Format("{0:ddMMyyyy}", titulo.DataMoraJuros); else ADataMoraJuros = "".ZeroFill(8); } else ADataMoraJuros = "".ZeroFill(8); //Descontos string ADataDesconto; if (titulo.ValorDesconto > 0) { if (titulo.DataDesconto.HasValue) ADataDesconto = string.Format("{0:ddMMyyyy}", titulo.DataDesconto); else ADataDesconto = "".ZeroFill(8); } else ADataDesconto = "".ZeroFill(8); //Index boleto string AIndex = string.Format("{0:00000}", titulo.Parent.ListadeBoletos.IndexOf(titulo) + 1); //Data Protesto string ADataProtesto; if (titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento) ADataProtesto = string.Format("{0:dd}", titulo.DataProtesto.Value.Date.Subtract(titulo.Vencimento.Date)); else ADataProtesto = "00"; var Result = new StringBuilder(); Result.AppendFormat("{0:000}", Banco.Numero); //1 a 3 - Código do banco Result.Append("0001"); //4 a 7 - Lote de serviço Result.Append("3"); //8 - Tipo do registro: Registro detalhe Result.Append(AIndex); //9 a 13 - Número seqüencial do registro no lote - Cada registro possui dois segmentos Result.Append("P"); //14 - Código do segmento do registro detalhe Result.Append(" "); //15 - Uso exclusivo FEBRABAN/CNAB: Branco Result.Append(ATipoOcorrencia); //16 a 17 - Código de movimento Result.Append("0"); //18 Result.Append(titulo.Parent.Cedente.Agencia.ZeroFill(4)); //19 a 22 - Agência mantenedora da conta Result.Append(" "); //23 Result.Append("0000000"); //24 a 30 - Complemento de Registro Result.Append(titulo.Parent.Cedente.Conta.ZeroFill(5)); //31 a 35 - Número da Conta Corrente Result.Append(" "); //36 Result.Append(titulo.Parent.Cedente.ContaDigito); //37 - Dígito verificador da agência / conta Result.Append(titulo.Carteira); //38 a 40 - Carteira Result.Append(titulo.NossoNumero.ZeroFill(8)); //41 a 48 - Nosso número - identificação do título no banco Result.Append(CalcularDigitoVerificador(titulo)); //49 - Dígito verificador da agência / conta preencher somente em cobrança sem registro Result.Append("".FillLeft(8)); //50 a 57 - Brancos Result.Append("".ZeroFill(5)); //58 a 62 - Complemento Result.Append(titulo.NumeroDocumento.FillLeft(10)); //63 a 72 - Número que identifica o título na empresa [ Alterado conforme instruções da CSO Brasília ] {27-07-09} Result.Append("".FillLeft(5)); //73 a 77 - Brancos Result.AppendFormat("{0:ddMMyyyy}", titulo.Vencimento); //78 a 85 - Data de vencimento do título Result.Append(titulo.ValorDocumento.ToDecimalString(15)); //86 a 100 - Valor nominal do título Result.Append("00000"); //101 a 105 - Agência cobradora. // Ficando com Zeros o Itaú definirá a agência cobradora pelo CEP do sacado Result.Append(" "); //106 - Dígito da agência cobradora Result.Append(titulo.EspecieDoc.FillLeft(2)); // 107 a 108 - Espécie do documento Result.Append(ATipoAceite); //109 - Identificação de título Aceito / Não aceito Result.AppendFormat("{0:ddMMyyyy}", titulo.DataDocumento); //110 a 117 - Data da emissão do documento Result.Append("0"); //118 - Zeros Result.Append(ADataMoraJuros); //119 a 126 - Data a partir da qual serão cobrados juros Result.Append(titulo.ValorMoraJuros > 0 ? titulo.ValorMoraJuros.ToDecimalString(15) : "".ZeroFill(15)); //127 a 141 - Valor de juros de mora por dia Result.Append("0"); //142 - Zeros Result.Append(ADataDesconto); //143 a 150 - Data limite para desconto Result.Append(titulo.ValorDesconto > 0 ? titulo.ValorDesconto.ToDecimalString(15) : "".ZeroFill(15)); //151 a 165 - Valor do desconto por dia Result.Append(titulo.ValorIOF.ToDecimalString(15)); //166 a 180 - Valor do IOF a ser recolhido Result.Append(titulo.ValorAbatimento.ToDecimalString(15)); //181 a 195 - Valor do abatimento Result.Append(titulo.SeuNumero.FillLeft(25)); //196 a 220 - Identificação do título na empresa Result.Append(titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento ? "1" : "3"); //221 - Código de protesto: Protestar em XX dias corridos Result.Append(ADataProtesto); //222 a 223 - Prazo para protesto (em dias corridos) Result.Append("0"); //224 - Código de Baixa Result.Append("00"); //225 A 226 - Dias para baixa Result.Append("0000000000000 "); //SEGMENTO Q string ATipoInscricao; switch (titulo.Sacado.Pessoa) { case Pessoa.Fisica: ATipoInscricao = "1"; break; case Pessoa.Juridica: ATipoInscricao = "2"; break; default: ATipoInscricao = "9"; break; } //Endereco sacado string SEndereco = string.Format("{0} {1} {2}", titulo.Sacado.Logradouro, titulo.Sacado.Numero, titulo.Sacado.Complemento).FillLeft(40); Result.Append(Environment.NewLine); Result.AppendFormat("{0:000}", Banco.Numero); //1 a 3 - Código do banco Result.Append("0001"); //Número do lote Result.Append("3"); //Tipo do registro: Registro detalhe Result.Append(AIndex); //Número seqüencial do registro no lote - Cada registro possui dois segmentos Result.Append("Q"); //Código do segmento do registro detalhe Result.Append(" "); //Uso exclusivo FEBRABAN/CNAB: Branco Result.Append("01"); //16 a 17 //Dados do sacado} Result.Append(ATipoInscricao); //18 a 18 Tipo inscricao Result.Append(titulo.Sacado.CNPJCPF.ZeroFill(15)); //19 a 33 Result.Append(titulo.Sacado.NomeSacado.FillLeft(30)); //34 a 63 Result.Append("".FillLeft(10)); //64 a 73 Result.Append(SEndereco); // 74 a 113 Result.Append(titulo.Sacado.Bairro.FillLeft(15)); //114 a 128 Result.Append(titulo.Sacado.CEP.ZeroFill(8)); //129 a 136 Result.Append(titulo.Sacado.Cidade.FillLeft(15)); //137 a 151 Result.Append(titulo.Sacado.UF.FillLeft(2)); //152 a 153 //Dados do sacador/avalista} Result.Append("0"); //Tipo de inscrição: Não informado Result.Append("".ZeroFill(15)); //Número de inscrição Result.Append("".FillLeft(30)); //Nome do sacador/avalista Result.Append("".FillLeft(10)); //Uso exclusivo FEBRABAN/CNAB Result.Append("".ZeroFill(3)); //Uso exclusivo FEBRABAN/CNAB Result.Append("".FillLeft(28)); //Uso exclusivo FEBRABAN/CNAB return Result.ToString().ToUpper(); }
public bool Salvar(Documento documento) { try { documento.Emposse.Id = User.FuncionarioId; if (documento.Arquivo == null) { documento.Arquivo = new Arquivo(); } bool isEdicao = (documento.Id > 0); if (_validar.Salvar(documento)) { #region Arquivos/Diretorio if (documento.Arquivo.Id != null && documento.Arquivo.Id == 0) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); documento.Arquivo = _busArquivo.Copiar(documento.Arquivo); } #endregion #region Setar Valores ListaBus listaBus = new ListaBus(); ProtocoloTipo configuracao = listaBus.TiposDocumento.FirstOrDefault(x => x.Id == documento.Tipo.Id); documento.ProtocoloAssociado = (configuracao.PossuiProcesso || configuracao.ProcessoObrigatorio) ? documento.ProtocoloAssociado : new Protocolo(); documento.ChecagemPendencia = (configuracao.PossuiChecagemPendencia || configuracao.ChecagemPendenciaObrigatorio) ? documento.ChecagemPendencia : new ChecagemPendencia(); documento.ChecagemRoteiro = (configuracao.PossuiChecagemRoteiro || configuracao.ChecagemRoteiroObrigatorio) ? documento.ChecagemRoteiro : new ChecagemRoteiro(); documento.Requerimento = (configuracao.PossuiRequerimento || configuracao.RequerimentoObrigatorio) ? documento.Requerimento : new Requerimento(); #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivos/Banco if (documento.Arquivo.Id == 0) { ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(documento.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } #endregion ChecagemPendenciaBus _checagemPendenciaBus = new ChecagemPendenciaBus(); using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDadosCredenciado.IniciarTransacao(); #region Alterar Situacao Requerimento if (documento.Id.HasValue) { Documento docOriginal = _da.ObterSimplificado(documento.Id.Value) as Documento; docOriginal.Requerimento = _busRequerimento.ObterSimplificado(docOriginal.Requerimento.Id); if (docOriginal.Requerimento.Id != documento.Requerimento.Id) { AlterarRequerimentoSituacao(docOriginal, banco: bancoDeDados); if (docOriginal.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao() { Requerimento = docOriginal.Requerimento }, bancoDeDadosCredenciado); if (!_busProjetoDigital.AlterarSituacao(docOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } } #endregion Documento documentoOriginal = new Documento(); if (documento.Id != null && documento.Id.GetValueOrDefault() > 0) { documentoOriginal = ObterSimplificado(documento.Id.Value); } #region Titulo if (documento.ChecagemPendencia.Id > 0 && documento.Id.GetValueOrDefault() == 0) { documento.ChecagemPendencia = _checagemPendenciaBus.Obter(documento.ChecagemPendencia.Id); TituloBus tituloBus = new TituloBus(); Titulo titulo = tituloBus.Obter(documento.ChecagemPendencia.TituloId); if (titulo.Situacao.Id != 5) //5 - Encerrado { titulo.DataEncerramento.Data = DateTime.Now; titulo.MotivoEncerramentoId = 7; //Encerrado TituloSituacaoBus tituloSituacaoBus = new TituloSituacaoBus(); tituloSituacaoBus.AlterarSituacao(titulo, (int)eAlterarSituacaoAcao.Encerrar, bancoDeDados); if (Validacao.EhValido) { Validacao.Erros.Clear(); } } #region Itens da Analise AnaliseItensBus busAnalise = new AnaliseItensBus(new AnaliseItensValidar()); AnaliseItem analiseItem = busAnalise.ObterAnaliseTitulo(documento.ChecagemPendencia.TituloId); analiseItem = busAnalise.Obter(analiseItem.Id, bancoDeDados); //int setorId = _busProc.ObterSetor(analiseItem.Protocolo.Id); foreach (Item item in analiseItem.Itens) { if (documento.ChecagemPendencia.Itens.Exists(x => x.Id == item.Id)) { item.Analista = User.Name; item.Situacao = (int)eAnaliseItemSituacao.Recebido; item.Motivo = String.Empty; item.Recebido = true; item.Editado = true; //item.SetorId = setorId; item.DataAnalise = DateTime.Now.ToString(); } } AnaliseItensDa _daAnalise = new AnaliseItensDa(); _daAnalise.Salvar(analiseItem, bancoDeDados); #endregion } #endregion #region Atividade List <Atividade> lstAtividadesAtual = null; if ((documento.Id ?? 0) > 0) { lstAtividadesAtual = _da.ObterAtividades(documento.Id.GetValueOrDefault(), bancoDeDados).Atividades; } if (documento.Atividades != null && documento.Atividades.Count > 0) { documento.Atividades.ForEach(x => { x.Protocolo.Id = documento.Id.GetValueOrDefault(); x.Protocolo.IsProcesso = false; }); AtividadeBus atividadeBus = new AtividadeBus(); atividadeBus.AlterarSituacaoProcDoc(documento.Atividades, lstAtividadesAtual, bancoDeDados); atividadeBus.TituloAnteriores(documento.Atividades, lstAtividadesAtual, bancoDeDados); } #endregion _da.Salvar(documento, bancoDeDados); #region Checagens // cadastrando, seta situação da checagem de itens de roteiro/pendencia como protocolada if (documentoOriginal.Id.GetValueOrDefault() <= 0) { _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada documento.ChecagemPendencia.SituacaoId = 2; //protocolada _checagemPendenciaBus.AlterarSituacao(documento.ChecagemPendencia, bancoDeDados); } else // editando documento { // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada if (documento.ChecagemRoteiro.Id != documentoOriginal.ChecagemRoteiro.Id) { _busCheckList.AlterarSituacao(documentoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados); //finalizada _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada } } #endregion documento.Requerimento = _busRequerimento.ObterSimplificado(documento.Requerimento.Id); if (documento.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao() { Requerimento = documento.Requerimento }, bancoDeDadosCredenciado); if (documentoOriginal.Requerimento.Id != documento.Requerimento.Id) { if (!_busProjetoDigital.AlterarSituacao(documento.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } AlterarRequerimentoSituacao(documento, 3, bancoDeDados); // Protocolado #region Fiscalizacao if (isEdicao && documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id && documentoOriginal.Fiscalizacao.Id > 0) { documentoOriginal.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.CadastroConcluido; documentoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; documentoOriginal.Fiscalizacao.SituacaoAtualTipo = documento.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(documentoOriginal.Fiscalizacao, bancoDeDados); } if (documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id) { documento.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.Protocolado; documento.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; documento.Fiscalizacao.SituacaoAtualTipo = documento.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(documento.Fiscalizacao, bancoDeDados); } #endregion //sempre no final esse if if (!Validacao.EhValido) { bancoDeDadosCredenciado.Rollback(); bancoDeDados.Rollback(); return(false); } bancoDeDadosCredenciado.Commit(); } bancoDeDados.Commit(); } Mensagem msgSucesso = Mensagem.Documento.Salvar(documento.Numero); if (isEdicao) { msgSucesso = Mensagem.Documento.Editar; } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
/// <summary> /// Montars the codigo barras. /// </summary> /// <param name="Titulo">The titulo.</param> /// <returns>System.String.</returns> public string MontarCodigoBarras(Titulo Titulo) { return BancoClass.MontarCodigoBarras(Titulo); }
/// <summary> /// Gerars the registro transacao400. /// </summary> /// <param name="Titulo">The titulo.</param> /// <param name="ARemessa">A remessa.</param> public void GerarRegistroTransacao400(Titulo Titulo, List<string> ARemessa) { BancoClass.GerarRegistroTransacao400(Titulo, ARemessa); }
/// <summary> /// Gerars the registro transacao240. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string GerarRegistroTransacao240(Titulo titulo) { var aNossoNumero = FormataNossoNumero(titulo); var wTamConvenio = Banco.Parent.Cedente.Convenio.Length; var wTamNossoNum = CalcularTamMaximoNossoNumero(titulo.Carteira, titulo.NossoNumero); string aDv; if ((wTamConvenio == 7 || wTamConvenio == 6) && wTamNossoNum == 17) aDv = string.Empty; else aDv = CalcularDigitoVerificador(titulo); if (aNossoNumero == "0") { aNossoNumero = string.Empty; aDv = string.Empty; } var aAgencia = titulo.Parent.Cedente.Agencia.OnlyNumbers().ZeroFill(5); var aConta = titulo.Parent.Cedente.Conta.OnlyNumbers().ZeroFill(12); //SEGMENTO P //Pegando o Tipo de Ocorrencia var aTipoOcorrencia = string.Empty; switch (titulo.OcorrenciaOriginal.Tipo) { case TipoOcorrencia.RemessaBaixar: aTipoOcorrencia = "02"; break; case TipoOcorrencia.RemessaConcederAbatimento: aTipoOcorrencia = "04"; break; case TipoOcorrencia.RemessaCancelarAbatimento: aTipoOcorrencia = "05"; break; case TipoOcorrencia.RemessaAlterarVencimento: aTipoOcorrencia = "06"; break; case TipoOcorrencia.RemessaConcederDesconto: aTipoOcorrencia = "07"; break; case TipoOcorrencia.RemessaCancelarDesconto: aTipoOcorrencia = "08"; break; case TipoOcorrencia.RemessaProtestar: aTipoOcorrencia = "09"; break; case TipoOcorrencia.RemessaCancelarInstrucaoProtesto: aTipoOcorrencia = "10"; break; case TipoOcorrencia.RemessaAlterarNomeEnderecoSacado: aTipoOcorrencia = "12"; break; case TipoOcorrencia.RemessaDispensarJuros: aTipoOcorrencia = "31"; break; default: aTipoOcorrencia = "01"; break; } //Pegando o tipo de EspecieDoc var aTipoEspecieDoc = string.Empty; if (titulo.EspecieDoc == "DM") aTipoEspecieDoc = "02"; else if (titulo.EspecieDoc == "RC") aTipoEspecieDoc = "17"; else if (titulo.EspecieDoc == "NP") aTipoEspecieDoc = "12"; else if (titulo.EspecieDoc == "NS") aTipoEspecieDoc = "16"; else if (titulo.EspecieDoc == "ND") aTipoEspecieDoc = "19"; else if (titulo.EspecieDoc == "DS") aTipoEspecieDoc = "04"; //Pegando o Aceite do Titulo string aTipoAceite; switch (titulo.Aceite) { case AceiteTitulo.Sim: aTipoAceite = "A"; break; default: aTipoAceite = "N"; break; } //Pegando Tipo de Bancario //Quem emite e quem distribui o boleto? var aTipoBoleto = string.Empty; switch (titulo.Parent.Cedente.ResponEmissao) { case ResponEmissao.CliEmite: aTipoBoleto = "22"; break; case ResponEmissao.BancoEmite: aTipoBoleto = "11"; break; case ResponEmissao.BancoReemite: aTipoBoleto = "41"; break; case ResponEmissao.BancoNaoReemite: aTipoBoleto = "52"; break; } var aCaracTitulo = string.Empty; switch (titulo.Parent.Cedente.CaracTitulo) { case CaracTitulo.Simples: aCaracTitulo = "1"; break; case CaracTitulo.Vinculada: aCaracTitulo = "2"; break; case CaracTitulo.Caucionada: aCaracTitulo = "3"; break; case CaracTitulo.Descontada: aCaracTitulo = "4"; break; case CaracTitulo.Vendor: aCaracTitulo = "5"; break; } var wCarteira = titulo.Carteira.ToInt32(); string wTipoCarteira; if ((wCarteira == 11 || wCarteira == 12 || wCarteira == 17) && aCaracTitulo == "1") wTipoCarteira = "1"; else if (((wCarteira == 11 || wCarteira == 17) && (aCaracTitulo == "2" || aCaracTitulo == "3")) || wCarteira == 31) wTipoCarteira = aCaracTitulo; else if (((wCarteira == 11 || wCarteira == 17) && aCaracTitulo == "4") || wCarteira == 51) wTipoCarteira = aCaracTitulo; else wTipoCarteira = "7"; //Mora Juros string aDataMoraJuros; if (titulo.ValorMoraJuros > 0) { if (titulo.DataMoraJuros.HasValue && titulo.DataMoraJuros > DateTime.Now) aDataMoraJuros = string.Format("{0:ddMMyyyy}", titulo.DataMoraJuros); else aDataMoraJuros = "".FillLeft(8, '0'); } else aDataMoraJuros = "".FillLeft(8, '0'); //Descontos string aDataDesconto; if (titulo.ValorDesconto > 0) { if (titulo.DataDesconto.HasValue && titulo.DataDesconto > DateTime.Now) aDataDesconto = string.Format("{0:ddMMyyyy}", titulo.DataDesconto); else aDataDesconto = "".FillLeft(8, '0'); } else aDataDesconto = "".FillLeft(8, '0'); //Data Protesto string aDataProtesto; if (titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento) aDataProtesto = string.Format("{0:dd}", titulo.DataProtesto.Value.Date.Subtract(titulo.Vencimento.Date)); else aDataProtesto = "00"; //SEGMENTO P var result = new StringBuilder(); result.AppendFormat("{0:000}", Banco.Numero); //1 a 3 - Código do banco result.Append("0001"); //4 a 7 - Lote de serviço result.Append("3"); //8 - Tipo do registro: Registro detalhe result.AppendFormat("{0:00000}", (3 * titulo.Parent.ListadeBoletos.IndexOf(titulo) + 1)); //9 a 13 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q) result.Append("P"); //14 - Código do segmento do registro detalhe result.Append(" "); //15 - Uso exclusivo FEBRABAN/CNAB: Branco result.Append(aTipoOcorrencia); //16 a 17 - Código de movimento result.Append(aAgencia); //18 a 22 - Agência mantenedora da conta result.Append(titulo.Parent.Cedente.AgenciaDigito.FillLeft(1, '0')); //23 -Dígito verificador da agência result.Append(aConta); //24 a 35 - Número da conta corrente result.Append(titulo.Parent.Cedente.ContaDigito.FillLeft(1, '0')); //36 - Dígito verificador da conta result.Append(" "); //37 - Dígito verificador da agência / conta result.Append(aNossoNumero + aDv.FillLeft(20)); //38 a 57 - Nosso número - identificação do título no banco result.Append(wTipoCarteira); //58 - Cobrança Simples result.Append('1'); //59 - Forma de cadastramento do título no banco: com cadastramento result.Append(((int)titulo.Parent.Cedente.TipoDocumento).ToString()); //60 - Tipo de documento: Tradicional result.Append(aTipoBoleto); //61 a 62 - Quem emite e quem distribui o boleto? result.Append(titulo.NumeroDocumento.FillLeft(15)); //63 a 77 - Número que identifica o título na empresa [ Alterado conforme instruções da CSO Brasília ] {27-07-09} result.AppendFormat("{0:ddMMyyyy}", titulo.Vencimento); //78 a 85 - Data de vencimento do título result.Append(titulo.ValorDocumento.ToDecimalString(15)); //86 a 100 - Valor nominal do título result.Append("000000"); //101 a 106 - Agência cobradora + Digito. Se ficar em branco, a caixa determina automaticamente pelo CEP do sacado result.Append(aTipoEspecieDoc.FillLeft(2)); //107 a 108 - Espécie do documento result.Append(aTipoAceite); //109 - Identificação de título Aceito / Não aceito result.AppendFormat("{0:ddMMyyyy}", titulo.DataDocumento); //110 a 117 - Data da emissão do documento result.Append(titulo.ValorMoraJuros > 0 ? '1' : '3'); //118 - Código de juros de mora: Valor por dia result.Append(aDataMoraJuros); //119 a 126 - Data a partir da qual serão cobrados juros result.Append(titulo.ValorMoraJuros > 0 ? titulo.ValorMoraJuros.ToDecimalString(15) : "0".ZeroFill(15)); //127 a 141 - Valor de juros de mora por dia result.Append(titulo.ValorDesconto > 0 ? titulo.DataDesconto > DateTime.Now ? '1' : '3' : '0'); //142 - Código de desconto: 1 - Valor fixo até a data informada 4-Desconto por dia de antecipacao 0 - Sem desconto result.Append(titulo.ValorDesconto > 0 ? titulo.DataDesconto > DateTime.Now ? aDataDesconto : "00000000" : "00000000"); //143 a 150 - Data do desconto result.Append(titulo.ValorDesconto > 0 ? titulo.ValorDesconto.ToDecimalString(15) : "0".ZeroFill(15)); //151 a 165 - Valor do desconto por dia result.Append(titulo.ValorIOF.ToDecimalString(15)); //166 a 180 - Valor do IOF a ser recolhido result.Append(titulo.ValorAbatimento.ToDecimalString(15)); //181 a 195 - Valor do abatimento result.Append(titulo.SeuNumero.FillLeft(25)); //196 a 220 - Identificação do título na empresa result.Append(titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento ? titulo.DataProtesto.Value.Date.Subtract(titulo.Vencimento.Date).Days > 5 ? '1' : '2' : '3'); //221 - Código de protesto: Protestar em XX dias corridos result.Append(aDataProtesto); //222 a 223 - Prazo para protesto (em dias corridos) result.Append("0"); //224 - Campo não tratado pelo BB [ Alterado conforme instruções da CSO Brasília ] {27-07-09} result.Append("000"); //225 a 227 - Campo não tratado pelo BB [ Alterado conforme instruções da CSO Brasília ] {27-07-09} result.Append("09"); //228 a 229 - Código da moeda: Real result.Append("".FillLeft(10, '0')); //230 a 239 - Uso exclusivo FEBRABAN/CNAB result.Append(" "); //240 - Uso exclusivo FEBRABAN/CNAB //SEGMENTO Q result.Append(Environment.NewLine); result.AppendFormat("{0:000}", Banco.Numero); //1 a 3 - Código do banco result.Append("0001"); //Número do lote result.Append("3"); //Tipo do registro: Registro detalhe result.AppendFormat("{0:00000}", (3 * titulo.Parent.ListadeBoletos.IndexOf(titulo) + 1)); //9 a 13 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q) result.Append("Q"); //Código do segmento do registro detalhe result.Append(" "); //Uso exclusivo FEBRABAN/CNAB: Branco result.Append(aTipoOcorrencia); //Tipo Ocorrencia //Dados do sacado result.Append(titulo.Sacado.Pessoa == Pessoa.Juridica ? '2' : '1'); //Tipo inscricao result.Append(titulo.Sacado.CNPJCPF.OnlyNumbers().FillLeft(15, '0')); result.Append(titulo.Sacado.NomeSacado.FillLeft(40)); result.Append((string.Format("{0} {1} {2}", titulo.Sacado.Logradouro, titulo.Sacado.Numero, titulo.Sacado.Complemento)).FillLeft(40)); result.Append(titulo.Sacado.Bairro.FillLeft(15)); result.Append(titulo.Sacado.CEP.OnlyNumbers().FillRight(8, '0')); result.Append(titulo.Sacado.Cidade.FillLeft(15)); result.Append(titulo.Sacado.UF.FillLeft(2)); //Dados do sacador/avalista result.Append('0'); //Tipo de inscrição: Não informado result.Append("".FillLeft(15, '0')); //Número de inscrição result.Append("".FillLeft(40)); //Nome do sacador/avalista result.Append("".FillLeft(3, '0')); //Uso exclusivo FEBRABAN/CNAB result.Append("".FillLeft(20)); //Uso exclusivo FEBRABAN/CNAB result.Append("".FillLeft(8)); //Uso exclusivo FEBRABAN/CNAB //SEGMENTO R result.Append(Environment.NewLine); result.AppendFormat("{0:000}", Banco.Numero); //1 a 3 - Código do banco result.Append("0001"); //Número do lote result.Append("3"); //Tipo do registro: Registro detalhe result.AppendFormat("{0:00000}", (3 * titulo.Parent.ListadeBoletos.IndexOf(titulo) + 1)); //9 a 13 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q) result.Append('R'); // 14 - 14 Código do segmento do registro detalhe result.Append(" "); // 15 - 15 Uso exclusivo FEBRABAN/CNAB: Branco result.Append(aTipoOcorrencia); // 16 - 17 Tipo Ocorrencia result.Append("".FillRight(48, '0')); // 18 - 65 Brancos (Não definido pelo FEBRAN) result.Append(titulo.PercentualMulta > 0 ? titulo.CodigoMora : '0'); // 66 - 66 1-Valor Fixo / 2-Percentual result.Append(titulo.PercentualMulta > 0 ? string.Format("{0:ddMMyyyy}", titulo.DataMoraJuros) : "00000000"); // 67 - 74 Se cobrar informe a data para iniciar a cobrança ou informe zeros se não cobrar result.Append(titulo.PercentualMulta > 0 ? titulo.PercentualMulta.ToDecimalString(15) : "".FillLeft(15, '0')); // 75 - 89 Percentual de multa. Informar zeros se não cobrar result.Append("".FillLeft(110)); // 90 - 199 result.Append("".FillLeft(8, '0')); // 200 - 207 result.Append("".FillRight(33)); // 208 - 240 Brancos (Não definido pelo FEBRAN) return result.ToString(); }
/// <summary> /// Gerars the registro transacao240. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> /// <exception cref="System.NotImplementedException">Esta função não esta implementada para este banco</exception> public override string GerarRegistroTransacao240(Titulo titulo) { string aAceite; switch(titulo.Aceite) { case AceiteTitulo.Sim: aAceite = "S"; break; default: aAceite = "N"; break; } var diasProt = "00"; if (titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento) diasProt = string.Format("{0:00}", (titulo.DataProtesto.Value - titulo.Vencimento).TotalDays); if (diasProt == "00") diasProt = string.Format("0{0}", diasProt); else diasProt = string.Format("1{0}", diasProt); string juros; if (titulo.DataMoraJuros.HasValue) juros = string.Format("1{0:ddMMyyyy}{1}", titulo.DataMoraJuros, titulo.ValorMoraJuros.ToDecimalString(15)); else juros = "".ZeroFill(24); string tipoInscSacado; switch(titulo.Sacado.Pessoa) { case Pessoa.Fisica: tipoInscSacado = "1"; break; case Pessoa.Juridica: tipoInscSacado = "2"; break; default: tipoInscSacado = "1"; break; } string ocorrencia; switch(titulo.OcorrenciaOriginal.Tipo) { case TipoOcorrencia.RemessaBaixar: ocorrencia = "02"; break; //Pedido de Baixa case TipoOcorrencia.RemessaConcederAbatimento: ocorrencia = "04"; break; //Concessão de Abatimento case TipoOcorrencia.RemessaCancelarAbatimento: ocorrencia = "05"; break; //Cancelamento de Abatimento concedido case TipoOcorrencia.RemessaAlterarVencimento: ocorrencia = "06"; break; //Alteração de vencimento case TipoOcorrencia.RemessaProtestar: ocorrencia = "09"; break; //Pedido de protesto case TipoOcorrencia.RemessaCancelarInstrucaoProtestoBaixa: ocorrencia = "18"; break; //Sustar protesto e baixar case TipoOcorrencia.RemessaCancelarInstrucaoProtesto: ocorrencia = "19"; break; //Sustar protesto e manter na carteira case TipoOcorrencia.RemessaOutrasOcorrencias: ocorrencia = "31"; break; //Alteração de Outros Dados default: ocorrencia = "1"; break; } var wLinha = new StringBuilder(); wLinha.Append("04100013"); wLinha.Append("".FillRight(5, '*')); wLinha.Append("P "); wLinha.Append(ocorrencia); wLinha.Append("".FillRight(20)); wLinha.Append(MontarCampoNossoNumero(titulo).OnlyNumbers().FillRight(10, '0')); wLinha.Append("".FillRight(10)); wLinha.Append(titulo.Carteira); wLinha.Append("1020"); wLinha.Append(titulo.NumeroDocumento.FillLeft(15)); wLinha.AppendFormat("{0:ddMMyyyy}", titulo.Vencimento); wLinha.Append(titulo.ValorDocumento.ToDecimalString(15)); wLinha.Append("00000002"); wLinha.Append(aAceite); wLinha.AppendFormat("{0:ddMMyyyy}", titulo.DataProcessamento); wLinha.Append(juros); wLinha.Append("".ZeroFill(39)); wLinha.Append("".FillRight(15)); wLinha.Append(titulo.NumeroDocumento.FillLeft(15)); wLinha.Append("".FillRight(10)); wLinha.Append(diasProt); wLinha.Append(string.IsNullOrEmpty(titulo.Instrucao1.Trim()) ? "1" : titulo.Instrucao1); wLinha.Append(titulo.Instrucao2.FillRight(3, '0')); wLinha.Append("09"); wLinha.Append("".ZeroFill(10)); wLinha.Append(' '); wLinha.Append(Environment.NewLine); wLinha.Append("04100013"); wLinha.Append("".FillRight(5, '*')); wLinha.Append("Q "); wLinha.Append(ocorrencia); wLinha.Append(tipoInscSacado); wLinha.Append(titulo.Sacado.CNPJCPF.OnlyNumbers().FillRight(15, '0')); wLinha.Append(titulo.Sacado.NomeSacado.FillLeft(40)); wLinha.Append(titulo.Sacado.Logradouro.FillLeft(40)); wLinha.Append(titulo.Sacado.Bairro.FillLeft(15)); wLinha.Append(titulo.Sacado.CEP.OnlyNumbers().ZeroFill(8)); wLinha.Append(titulo.Sacado.Cidade.FillLeft(15)); wLinha.Append(titulo.Sacado.UF.FillLeft(2)); wLinha.Append("".ZeroFill(16)); wLinha.Append("".FillRight(40)); wLinha.Append("000"); wLinha.Append("".FillRight(28)); wLinha.Append(Environment.NewLine); wLinha.Append("04100013"); wLinha.Append("".FillRight(5, '*')); wLinha.Append("R "); wLinha.Append(ocorrencia); wLinha.Append("".FillRight(48)); wLinha.Append('1'); wLinha.AppendFormat("{0:ddMMyyyy}", titulo.Vencimento); wLinha.Append((titulo.PercentualMulta * titulo.ValorDocumento).ToDecimalString(15)); wLinha.Append("".ZeroFill(90)); wLinha.Append("".FillRight(28)); wLinha.Append("".ZeroFill(33)); return wLinha.ToString(); }
/// <summary> /// Montars the codigo barras. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCodigoBarras(Titulo titulo) { string modalidade; if(titulo.Parent.Cedente.ResponEmissao == ResponEmissao.CliEmite) modalidade = "2"; else modalidade = "1"; var campoLivre = string.Format("{0}1{1}{2}{3}40", modalidade, titulo.Parent.Cedente.Agencia.StringFill( 4, '0').Trim(), titulo.Parent.Cedente.CodigoCedente.OnlyNumbers().StringFill(7, '0'), titulo.NossoNumero.StringFill(8, '0')); campoLivre += CalculaDigitosChaveAsbace(campoLivre); var codigoBarras = string.Format("{0:000}9{1}{2}{3}", Numero, titulo.Vencimento.CalcularFatorVencimento(), titulo.ValorDocumento.ToDecimalString(10), campoLivre); var digitoCodBarras = CalcularDigitoCodigoBarras(codigoBarras); if (digitoCodBarras.ToInt32() == 0 || digitoCodBarras.ToInt32() > 9) digitoCodBarras = "1"; return codigoBarras.Insert(4, digitoCodBarras); }
/// <summary> /// Gerars the registro transacao400. /// </summary> /// <param name="titulo">The titulo.</param> /// <param name="aRemessa">A remessa.</param> /// <exception cref="System.NotImplementedException">Esta função não esta implementada para este banco</exception> public override void GerarRegistroTransacao400(Titulo titulo, List<string> aRemessa) { //Pegando Código da Ocorrencia string ocorrencia; switch (titulo.OcorrenciaOriginal.Tipo) { case TipoOcorrencia.RemessaBaixar: ocorrencia = "02"; break; //Pedido de Baixa case TipoOcorrencia.RemessaConcederAbatimento: ocorrencia = "04"; break;//Concessão de Abatimento case TipoOcorrencia.RemessaCancelarAbatimento: ocorrencia = "05"; break;//Cancelamento de Abatimento concedido case TipoOcorrencia.RemessaAlterarVencimento: ocorrencia = "06"; break;//Alteração de vencimento case TipoOcorrencia.RemessaProtestar: ocorrencia = "09"; break;//Pedido de protesto case TipoOcorrencia.RemessaSustarProtesto: ocorrencia = "10"; break;//Sustação de protesto default: ocorrencia = "01"; break; } //Pegando o tipo de boleto string tipoBoleto; switch (titulo.Parent.Cedente.ResponEmissao) { case ResponEmissao.BancoReemite: tipoBoleto = "04"; break; //Cobrança Direta default: tipoBoleto = "08"; break; //Cobrança credenciada Banrisul } //Pegando o Aceite do Titulo } var tipoAceite = string.Empty; switch (titulo.Aceite) { case AceiteTitulo.Sim: tipoAceite = "A"; break; case AceiteTitulo.Nao: tipoAceite = "N"; break; } //Pegando Tipo de Sacado string tipoSacado; switch (titulo.Sacado.Pessoa) { case Pessoa.Fisica: tipoSacado = "01"; break; case Pessoa.Juridica: tipoSacado = "02"; break; default: tipoSacado = "99"; break; } //Pegando Tipo de Cobrança - Tipo de Carteira string tipoCobranca; switch (titulo.Parent.Cedente.CaracTitulo) { case CaracTitulo.Vendor: tipoCobranca = "F"; break; case CaracTitulo.Vinculada: tipoCobranca = "C"; break; default: tipoCobranca = "1"; break; } if (string.IsNullOrEmpty(titulo.CodigoMora.ToString())) titulo.CodigoMora = '0'; //0-Valor Diario, 1-Taxa Mensal //Instruções //Se tiver protesto if (titulo.DataProtesto.HasValue && titulo.DataProtesto.Value > titulo.Vencimento) { if (string.IsNullOrEmpty(titulo.Instrucao1.Trim())) titulo.Instrucao1 = "09"; //Protestar caso não pago em NN dias após vencimento. } else titulo.Instrucao3 = "23"; //Não Protestar if(titulo.PercentualMulta > 0) if (string.IsNullOrEmpty(titulo.Instrucao2.Trim())) titulo.Instrucao2 = "18"; //Apos NN dias vencimento com percentual multa var cd = titulo.Parent.Cedente.CodigoCedente.OnlyNumbers(); var wLinha = new StringBuilder(); wLinha.Append('1'); // ID Registro(1-Constante) wLinha.Append("".FillRight(16)); // Brancos wLinha.Append((titulo.Parent.Cedente.Agencia.Substring(0, 4) + cd).FillRight(13, '0')); // Codigo da Agencia e Cedente AAAACCCCCCCCC wLinha.Append("".FillRight(7)); // Brancos wLinha.Append("".FillRight(25)); // Identificação do título para o cedente (usado no arquivo de retorno) wLinha.Append(titulo.NossoNumero.FillLeft(8, '0')); wLinha.Append(CalculaDigitosChaveAsbace(titulo.NossoNumero)); // Nosso Número wLinha.Append("".FillRight(32)); // Mensagem no bloqueto wLinha.Append("".FillRight(3)); // Brancos wLinha.Append(tipoCobranca); // Tipo de Carteira (Simples, Vinculada, Descontada, Vendor) wLinha.Append(ocorrencia); // Código de ocorrência wLinha.Append(titulo.NumeroDocumento.FillLeft(10)); // Seu Número wLinha.AppendFormat("{0:ddmmyy}", titulo.Vencimento); // Data de vencimento do título wLinha.Append(titulo.ValorDocumento.ToDecimalString()); // Valor do título wLinha.Append("041"); // Constante (041) wLinha.Append("".FillRight(5)); // Brancos wLinha.Append(tipoBoleto); // Tipo de Documento (04-Cobrança Direta, 06-Cobrança Escritural, 08-Cobrança credenciada Banrisul, 09-Títulos de terceiros) wLinha.Append(tipoAceite); // Código de aceite (A, N) wLinha.AppendFormat("{0:ddmmyy}", titulo.DataDocumento); // Data de Emissão do título wLinha.Append(titulo.Instrucao1.Trim().FillRight(2)); // 1ª Instrução wLinha.Append(titulo.Instrucao2.Trim().FillRight(2)); // 2ª Instrução wLinha.Append(titulo.CodigoMora); // Código de mora (0=Valor diário; 1=Taxa Mensal) wLinha.Append(titulo.ValorMoraJuros.ToDecimalString(12)); // Valor ao dia ou Taxa Mensal de juros wLinha.Append(titulo.DataDesconto.HasValue ? string.Format("{0:ddmmyy}", titulo.DataDesconto) : "000000"); // Data para concessão de desconto wLinha.Append(titulo.ValorDesconto.ToDecimalString()); // Valor do desconto a ser concedido wLinha.Append(titulo.ValorIOF.ToDecimalString()); // Valor IOF (para carteira "X" é: taxa juros + IOF + zeros) wLinha.Append(titulo.ValorAbatimento.ToDecimalString()); // Valor do abatimento wLinha.Append(tipoSacado); // Tipo do Sacado (01-CPF, 02-CNPJ, 03-Outros) wLinha.Append(titulo.Sacado.CNPJCPF.OnlyNumbers().FillRight(14, '0')); // Número da inscrição do Sacado (CPF, CNPJ) wLinha.Append(titulo.Sacado.NomeSacado.FillLeft(35)); // Nome do Sacado wLinha.Append("".FillRight(5)); // Brancos wLinha.Append((titulo.Sacado.Logradouro+' '+ titulo.Sacado.Numero+' '+ titulo.Sacado.Complemento).FillLeft(40)); // Endereço Sacado wLinha.Append("".FillRight(7)); // Brancos wLinha.Append(Math.Round(titulo.PercentualMulta * 10).ToString().ZeroFill(3)); // Taxa de multa após o Vencimento -- estava '000' é apenas uma casa decimal wLinha.Append("00"); // Nº dias para multa após o vencimento (00 considera-se Após Vencimento) wLinha.Append(titulo.Sacado.CEP.OnlyNumbers().FillLeft(8, '0')); // CEP wLinha.Append(titulo.Sacado.Cidade.FillLeft(15)); // Cidade do Sacado wLinha.Append(titulo.Sacado.UF.FillLeft(2)); // UF do Sacado wLinha.Append("0000"); // Taxa ao dia para pagamento antecipado wLinha.Append("".FillRight(1)); // Brancos wLinha.Append("0000000000000"); // Valor para cálculo de desconto wLinha.Append(titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento ? (titulo.DataProtesto.Value - titulo.Vencimento).Days.ToString().FillRight(2, '0') : "00"); // Dias para protesto/devolução automática wLinha.Append("".FillRight(23)); // Brancos wLinha.AppendFormat("{0:000000}", aRemessa.Count + 1); aRemessa.Add(wLinha.ToString().ToUpper()); }
/// <summary> /// Montars the campo nosso numero. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCampoNossoNumero(Titulo titulo) { var ret = titulo.NossoNumero.StringFill(8, '0'); return string.Format("{0}.{1}", ret, CalculaDigitosChaveAsbace(ret)); }
/// <summary> /// Montars the campo codigo cedente. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCampoCodigoCedente(Titulo titulo) { return string.Format("{0}-{1}/{2}.{3}.{4}", titulo.Parent.Cedente.Agencia.Substring(0, 4), titulo.Parent.Cedente.AgenciaDigito, titulo.Parent.Cedente.CodigoCedente.Substring(0, 6), titulo.Parent.Cedente.CodigoCedente.Substring( 6, 1), titulo.Parent.Cedente.CodigoCedente.Substring( 7, 2)); }
/// <summary> /// Gerars the registro transacao240. /// </summary> /// <param name="Titulo">The titulo.</param> /// <returns>System.String.</returns> public string GerarRegistroTransacaoDBT627(Titulo Titulo) { return BancoClass.GerarRegistroTransacaoDBT627(Titulo); }
public void AlterarSituacao(Titulo titulo, int acao, BancoDeDados banco, bool gerouPdf = true) { Titulo atualTitulo = _da.ObterSimplificado(titulo.Id); if (titulo.Modelo.Regras == null || titulo.Modelo.Regras.Count == 0) { titulo.Modelo = _busModelo.Obter(titulo.Modelo.Id); } titulo.Situacao = ObterNovaSituacao(titulo, acao); bool isLimparPdfENumero = false; bool isGerarNumero = false; bool isGerarPdf = false; int novaSituacaoCondicionante = 0; if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.CertificadoRegistroAtividadeFlorestal) { if (titulo.Atividades.Any(x => x.Codigo == (int)eAtividadeCodigo.FabricanteMotosserra) || titulo.Atividades.Any(x => x.Codigo == (int)eAtividadeCodigo.ComercianteMotosserra)) { titulo.Prazo = 365; } else { titulo.Prazo = new DateTime(DateTime.Now.Year, 12, 31).DayOfYear - titulo.DataEmissao.Data.Value.DayOfYear; } } if (!_validar.AlterarSituacao(titulo, acao, gerouPdf)) { return; } #region Configurar Nova Situacao //Situação Nova switch ((eTituloSituacao)titulo.Situacao.Id) { #region 1 - Cadastrado case eTituloSituacao.Cadastrado: if (atualTitulo.Situacao.Id == (int)eTituloSituacao.Emitido) { if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero.Inteiro = null; titulo.Numero.Ano = null; } } titulo.DataEmissao.Data = null; titulo.DataInicioPrazo.Data = null; titulo.DataAssinatura.Data = null; titulo.DataVencimento.Data = null; titulo.DataEncerramento.Data = null; titulo.Prazo = null; isLimparPdfENumero = true; break; #endregion #region 2 - Emitido case eTituloSituacao.Emitido: isGerarNumero = true; isGerarPdf = true; //titulo.DataEmissao info na tela if (titulo.Modelo.Regra(eRegra.Prazo)) { int prazoId = Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.TipoPrazo).Valor); titulo.PrazoUnidade = _busLista.TituloModeloTiposPrazos.Single(x => x.Id == prazoId).Texto; } break; #endregion #region 3 - Concluído case eTituloSituacao.Concluido: if (titulo.Modelo.Regra(eRegra.Condicionantes)) { novaSituacaoCondicionante = 2; } if (atualTitulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { isGerarNumero = true; isGerarPdf = true; } //titulo.DataAssinatura info na tela if (titulo.Modelo.Regra(eRegra.Prazo)) { int prazoId = Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.TipoPrazo).Valor); titulo.PrazoUnidade = _busLista.TituloModeloTiposPrazos.Single(x => x.Id == prazoId).Texto; switch ((eAlterarSituacaoAcao)acao) { case eAlterarSituacaoAcao.EmitirParaAssinatura: titulo.DataInicioPrazo.Data = titulo.DataEmissao.Data.GetValueOrDefault(); break; case eAlterarSituacaoAcao.Assinar: titulo.DataInicioPrazo.Data = titulo.DataAssinatura.Data.GetValueOrDefault(); break; case eAlterarSituacaoAcao.Entregar: case eAlterarSituacaoAcao.Concluir: if (titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor.ToString() == "2") //data da assinatura { titulo.DataInicioPrazo.Data = titulo.DataAssinatura.Data.GetValueOrDefault(); } else { titulo.DataInicioPrazo.Data = titulo.DataEmissao.Data.GetValueOrDefault(); } break; default: titulo.DataInicioPrazo.Data = DateTime.Now; break; } if (prazoId == 1) //Dias { titulo.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddDays(titulo.Prazo.GetValueOrDefault()); } else { titulo.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddYears(titulo.Prazo.GetValueOrDefault()); } } break; #endregion #region 4 - Assinado case eTituloSituacao.Assinado: //titulo.DataAssinatura info na tela break; #endregion #region 5 - Encerrado case eTituloSituacao.Encerrado: if (titulo.Modelo.Regra(eRegra.Condicionantes)) { novaSituacaoCondicionante = 5; } break; #endregion #region 6 - Prorrogado case eTituloSituacao.Prorrogado: if (titulo.Modelo.Regra(eRegra.Prazo)) { titulo.DataVencimento.Data = titulo.DataVencimento.Data.Value.AddDays(titulo.DiasProrrogados.GetValueOrDefault()); } break; #endregion } #endregion #region Numero de Titulo if (isGerarNumero) { titulo.Numero.ReiniciaPorAno = titulo.Modelo.Regra(eRegra.NumeracaoReiniciada); if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero.Automatico = true; TituloModeloResposta iniciarEm = titulo.Modelo.Resposta(eRegra.NumeracaoAutomatica, eResposta.InicioNumeracao); titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; if (iniciarEm != null) { if (iniciarEm.Valor == null || !ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(iniciarEm.Valor.ToString())) { Validacao.Add(Mensagem.Titulo.IniciarEmInvalido); return; } string[] iniciar = iniciarEm.Valor.ToString().Split('/'); titulo.Numero.IniciaEm = Convert.ToInt32(iniciar[0]); titulo.Numero.IniciaEmAno = Convert.ToInt32(iniciar[1]); if (titulo.Numero.IniciaEmAno.GetValueOrDefault() != DateTime.Now.Year) { titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; } } } if (titulo.DataEmissao.IsValido) { titulo.Numero.Ano = titulo.DataEmissao.Data.Value.Year; } } //Limpar numero if (isLimparPdfENumero) { if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero = null; } } #endregion if (isLimparPdfENumero) { titulo.ArquivoPdf.Id = null; } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); #region Condicionante if (novaSituacaoCondicionante > 0) { foreach (var item in titulo.Condicionantes) { TituloCondicionante condicionanteAtual = _daCondicionante.Obter(item.Id, bancoDeDados); //Filtro para não alterar as 4 - atendida if (novaSituacaoCondicionante == 5 && condicionanteAtual.Situacao.Id == 4) //5 - encerrada | 4 - atendida { continue; } //Ativa a condicionante if (novaSituacaoCondicionante == 2 && condicionanteAtual.Situacao.Id != 2) { if (condicionanteAtual.PossuiPrazo) { //Regras do Modelo Sem Prazo em Condicionantes com Prazo if (!titulo.Modelo.Regra(eRegra.Prazo)) { condicionanteAtual.DataInicioPrazo.Data = titulo.DataEmissao.Data; condicionanteAtual.DataVencimento.Data = titulo.DataEmissao.Data.Value.AddDays(condicionanteAtual.Prazo.GetValueOrDefault()); } else { condicionanteAtual.DataInicioPrazo = titulo.DataInicioPrazo; condicionanteAtual.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddDays(condicionanteAtual.Prazo.GetValueOrDefault()); } } //Periodicidade if (!item.PossuiPeriodicidade && item.Periodicidades != null) { item.Periodicidades.Clear(); } TituloCondicionantePeriodicidade periodicidade = null; if (item.PossuiPeriodicidade) { int diasTotais = item.PeriodicidadeValor.GetValueOrDefault(); switch (item.PeriodicidadeTipo.Id) { case 1: //dia break; case 2: //Mes diasTotais *= 30; break; case 3: //Ano diasTotais *= 365; break; default: break; } if (item.Prazo.GetValueOrDefault() > 0 && item.Prazo.GetValueOrDefault() <= diasTotais) { int qtdPeriodo = Math.Abs((diasTotais / (item.Prazo.GetValueOrDefault()))); for (int i = 0; i < qtdPeriodo; i++) { periodicidade = new TituloCondicionantePeriodicidade(); periodicidade.Situacao.Id = 2; //Ativa //Regras do Modelo Sem Prazo em Condicionantes com Prazo if (!titulo.Modelo.Regra(eRegra.Prazo)) { periodicidade.DataInicioPrazo.Data = titulo.DataEmissao.Data.Value.AddDays(i * item.Prazo.GetValueOrDefault()); periodicidade.DataVencimento.Data = titulo.DataEmissao.Data.Value.AddDays((i + 1) * item.Prazo.GetValueOrDefault()); } else { periodicidade.DataInicioPrazo.Data = titulo.DataInicioPrazo.Data.Value.AddDays(i * item.Prazo.GetValueOrDefault()); periodicidade.DataVencimento.Data = titulo.DataInicioPrazo.Data.Value.AddDays((i + 1) * item.Prazo.GetValueOrDefault()); } item.Periodicidades.Add(periodicidade); } } } condicionanteAtual.Periodicidades = item.Periodicidades; condicionanteAtual.Situacao.Id = novaSituacaoCondicionante; _daCondicionante.Ativar(condicionanteAtual, bancoDeDados); } else { condicionanteAtual.Situacao.Id = novaSituacaoCondicionante; _daCondicionante.AlterarSituacao(condicionanteAtual, banco: bancoDeDados); } } } #endregion _da.AlterarSituacao(titulo, bancoDeDados); #region Atividades TituloBus tituloBus = new TituloBus(); AtividadeBus atividadeBus = new AtividadeBus(); List <Atividade> lstTituloAtividades = null; #region Título Concluido if (titulo.Situacao.Id == (int)eTituloSituacao.Concluido) //3 - Concluido { lstTituloAtividades = tituloBus.ObterAtividades(titulo.Id); if (lstTituloAtividades != null && lstTituloAtividades.Count > 0) { int?situacao = null; if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.GetValueOrDefault())) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault()); situacao = busEsp.ObterSituacaoAtividade(titulo.Id); } if (situacao != null || LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault()) || LstModeloCodigoIndeferido.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault())) { eAtividadeSituacao atividadeSituacao = (LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault())) ? eAtividadeSituacao.ComPendencia : eAtividadeSituacao.Indeferida; if (situacao != null) { atividadeSituacao = (eAtividadeSituacao)situacao; } atividadeBus.AlterarSituacao(lstTituloAtividades, atividadeSituacao, bancoDeDados); } else { foreach (Atividade atividade in lstTituloAtividades) { if (atividadeBus.VerificarDeferir(atividade, bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Deferida; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } } #endregion #region Título Encerrado if (titulo.Situacao.Id == (int)eTituloSituacao.Encerrado) //Encerrado { lstTituloAtividades = tituloBus.ObterAtividades(titulo.Id); eAtividadeSituacao situacaoAtual = eAtividadeSituacao.EmAndamento; if (lstTituloAtividades != null && lstTituloAtividades.Count > 0) { foreach (Atividade atividade in lstTituloAtividades) { situacaoAtual = (eAtividadeSituacao)atividadeBus.ObterAtividadeSituacao(atividade, bancoDeDados).SituacaoId; if (situacaoAtual == eAtividadeSituacao.Indeferida || situacaoAtual == eAtividadeSituacao.ComPendencia) { atividade.SituacaoId = (int)eAtividadeSituacao.EmAndamento; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } else { if (titulo.MotivoEncerramentoId == 1 || titulo.MotivoEncerramentoId == 4) { atividade.SituacaoId = (int)eAtividadeSituacao.EmAndamento; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } else if (atividadeBus.VerificarEncerrar(atividade, bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Encerrada; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } } #endregion #region Título Prorrogado if (titulo.Situacao.Id == (int)eTituloSituacao.Prorrogado) //6 - Prorrogar { lstTituloAtividades = tituloBus.ObterAtividades(titulo.Id); if (lstTituloAtividades != null && lstTituloAtividades.Count > 0) { if (LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo) || LstModeloCodigoIndeferido.Any(x => x == titulo.Modelo.Codigo)) { eAtividadeSituacao atividadeSituacao = (LstModeloCodigoPendencia.Any(x => x == titulo.Modelo.Codigo)) ? eAtividadeSituacao.ComPendencia : eAtividadeSituacao.Indeferida; atividadeBus.AlterarSituacao(lstTituloAtividades, atividadeSituacao, bancoDeDados); } else { int finalidade = _da.VerificarEhTituloAnterior(titulo); if (finalidade > 0) { eAtividadeSituacao atividadeSituacao = (finalidade == 1) ? eAtividadeSituacao.NovaFase : eAtividadeSituacao.EmRenovacao; atividadeBus.AlterarSituacao(lstTituloAtividades, atividadeSituacao, bancoDeDados); } else { foreach (Atividade atividade in lstTituloAtividades) { if (atividadeBus.VerificarDeferir(atividade, bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Deferida; atividadeBus.AlterarSituacao(atividade, bancoDeDados); continue; } //Voltar a situação default de andamento atividade.SituacaoId = (int)eAtividadeSituacao.EmAndamento; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } } #endregion #endregion #region Gerar Pdf de Titulo ArquivoBus arqBus = new ArquivoBus(eExecutorTipo.Interno); if (isGerarPdf && titulo.Modelo.Regra(eRegra.PdfGeradoSistema)) { TituloBus bus = new TituloBus(); titulo.ArquivoPdf.Nome = "Titulo.pdf"; titulo.ArquivoPdf.Extensao = ".pdf"; titulo.ArquivoPdf.ContentType = "application/pdf"; titulo.ArquivoPdf.Buffer = bus.GerarPdf(titulo, bancoDeDados); if (titulo.ArquivoPdf.Buffer != null) { arqBus.Salvar(titulo.ArquivoPdf); ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(titulo.ArquivoPdf, User.EtramiteIdentity.FuncionarioId, User.EtramiteIdentity.Name, User.EtramiteIdentity.Login, (int)eExecutorTipo.Interno, User.EtramiteIdentity.FuncionarioTid, bancoDeDados); _da.SalvarPdfTitulo(titulo, bancoDeDados); } } #endregion #region Análise de Item //Trava a Análise de item de processo/documento caso o titulo que está sendo alterado seja um de pendência if (titulo.Atividades != null && titulo.Atividades.Count > 0) { Protocolo protocolo = titulo.Atividades.First().Protocolo; AnaliseItem analise = _busAnalise.Obter(protocolo); if (analise != null && analise.Id > 0) { if (_busTitulo.ExisteTituloPendencia(protocolo, bancoDeDados)) { if (analise.Situacao == 1) // 1 - Em andamento { analise.Situacao = 2; // 2 - Com Pendência _busAnalise.AlterarSituacao(analise, bancoDeDados); } } else if (analise.Situacao == 2) { analise.Situacao = 1; _busAnalise.AlterarSituacao(analise, bancoDeDados); } } } #endregion #region Gerar/Enviar Email #region Gerar Email Email email = null; if (titulo.Situacao.Id == (int)eTituloSituacao.Concluido && titulo.Modelo.Regra(eRegra.EnviarEmail)) //3 - Concluido { if (titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor != null) { string textoEmail = titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor.ToString(); if (!String.IsNullOrWhiteSpace(textoEmail)) { Dictionary <String, String> emailKeys = new Dictionary <string, string>(); emailKeys.Add("[orgão sigla]", _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla)); emailKeys.Add("[data da conclusão]", titulo.Modelo.Regra(eRegra.Prazo) ? titulo.DataInicioPrazo.DataTexto : titulo.DataEmissao.DataTexto); emailKeys.Add("[nome do modelo]", titulo.Modelo.Nome); emailKeys.Add("[nome do subtipo]", titulo.Modelo.SubTipo); emailKeys.Add("[nº do título]", titulo.Numero.Texto); emailKeys.Add("[nº processo/documento do título]", titulo.Protocolo.Numero); emailKeys.Add("[nome do empreendimento]", titulo.EmpreendimentoTexto); foreach (string key in emailKeys.Keys) { textoEmail = textoEmail.Replace(key, emailKeys[key]); } email = new Email(); email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla); email.Texto = textoEmail; email.Tipo = eEmailTipo.TituloConcluir; email.Codigo = titulo.Id; } } } #endregion if (email != null) { List <String> lstEmail = _da.ObterEmails(titulo.Id, bancoDeDados); if (lstEmail != null && lstEmail.Count > 0) { email.Destinatario = String.Join(", ", lstEmail.ToArray()); if (titulo.Modelo.Regra(eRegra.AnexarPDFTitulo)) { email.Anexos.Add(titulo.ArquivoPdf); } EmailBus emailBus = new EmailBus(); emailBus.Enviar(email, bancoDeDados); } } #endregion #region [ Solicitação CAR ] if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo)) { if (titulo.Situacao.Id == (int)eTituloSituacao.Concluido) { //Interno List <int> situacoes = new List <int>() { (int)eCARSolicitacaoSituacao.EmCadastro, (int)eCARSolicitacaoSituacao.Pendente, (int)eCARSolicitacaoSituacao.Valido, (int)eCARSolicitacaoSituacao.Suspenso }; CARSolicitacao solicitacao = _busCARSolicitacao.ObterPorEmpreendimento(titulo.EmpreendimentoId.GetValueOrDefault(0), situacoes, false, bancoDeDados) ?? new CARSolicitacao(); if (solicitacao != null && solicitacao.Id > 0) { solicitacao.SituacaoId = (int)eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR; solicitacao.DataSituacao.Data = DateTime.Now; _busCARSolicitacao.AlterarSituacao(solicitacao, bancoDeDados, mostrarMsg: false); } else { //Credenciado _busCARSolicitacao.SubstituirPorTituloCARCredenciado(titulo.EmpreendimentoId.GetValueOrDefault(0), bancoDeDados); } } if (titulo.Situacao.Id == (int)eTituloSituacao.Encerrado) { List <int> situacoes = new List <int>() { (int)eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR }; CARSolicitacao solicitacao = _busCARSolicitacao.ObterPorEmpreendimento(titulo.EmpreendimentoId.GetValueOrDefault(0), situacoes, false, bancoDeDados) ?? new CARSolicitacao(); if (solicitacao != null && solicitacao.Id > 0) { solicitacao.SituacaoAnteriorId = solicitacao.SituacaoId; solicitacao.DataSituacaoAnterior = solicitacao.DataSituacao; solicitacao.SituacaoId = (int)eCARSolicitacaoSituacao.Valido; solicitacao.DataSituacao.Data = DateTime.Now; _busCARSolicitacao.AlterarSituacao(solicitacao, bancoDeDados, mostrarMsg: false); } else { //Credenciado Empreendimento empreendimento = new EmpreendimentoBus().ObterSimplificado(titulo.EmpreendimentoId.GetValueOrDefault(0)); CARSolicitacaoCredenciadoBus carSolicitacaoCredBus = new CARSolicitacaoCredenciadoBus(); CARSolicitacao carSolicitacaoCred = new CARSolicitacao(); carSolicitacaoCred.Empreendimento.Codigo = empreendimento.Codigo; carSolicitacaoCredBus.AlterarSituacao(carSolicitacaoCred, new CARSolicitacao() { SituacaoId = (int)eCARSolicitacaoSituacao.Valido }); } } //SE situacao == Encerrado //TODO:Mudar Situação para Válido } #endregion if (!Validacao.EhValido) { bancoDeDados.Rollback(); return; } #region Salvar A especificidade if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.GetValueOrDefault())) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault()); titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade; titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Salvar(titulo.Especificidade, bancoDeDados); List <DependenciaLst> lstDependencias = busEsp.ObterDependencias(titulo.Especificidade); if (isGerarPdf && lstDependencias != null && lstDependencias.Count > 0) { if (!lstDependencias.Exists(x => x.TipoId == (int)eTituloDependenciaTipo.Caracterizacao && x.DependenciaTipo == (int)eCaracterizacao.Dominialidade)) { lstDependencias.Add(new DependenciaLst() { TipoId = (int)eTituloDependenciaTipo.Caracterizacao, DependenciaTipo = (int)eCaracterizacao.Dominialidade }); } _da.Dependencias(titulo.Id, titulo.Modelo.Id, titulo.EmpreendimentoId.GetValueOrDefault(), lstDependencias); } } #endregion #region Histórico eHistoricoAcao eAcao; switch ((eAlterarSituacaoAcao)acao) { case eAlterarSituacaoAcao.EmitirParaAssinatura: eAcao = eHistoricoAcao.emitir; break; case eAlterarSituacaoAcao.CancelarEmissao: eAcao = eHistoricoAcao.cancelaremissao; break; case eAlterarSituacaoAcao.Assinar: eAcao = eHistoricoAcao.assinar; break; case eAlterarSituacaoAcao.Prorrogar: eAcao = eHistoricoAcao.prorrogar; break; case eAlterarSituacaoAcao.Encerrar: eAcao = eHistoricoAcao.encerrar; break; case eAlterarSituacaoAcao.Entregar: eAcao = eHistoricoAcao.entregar; break; default: eAcao = eHistoricoAcao.emitir; break; } _da.Historico.Gerar(titulo.Id, eHistoricoArtefato.titulo, eAcao, bancoDeDados); _da.Consulta.Gerar(titulo.Id, eHistoricoArtefato.titulo, bancoDeDados); #region Solicitacao CAR if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo.GetValueOrDefault())) { if (titulo.Situacao.Id != (int)eTituloSituacao.Concluido) { _da.Consulta.Deletar(titulo.Id, eHistoricoArtefato.carsolicitacaotitulo, bancoDeDados); } else { _da.Consulta.Gerar(titulo.Id, eHistoricoArtefato.carsolicitacaotitulo, bancoDeDados); } } #endregion #endregion bancoDeDados.Commit(); Validacao.Add(Mensagem.TituloAlterarSituacao.TituloAltSituacaoSucesso); } }
/// <summary> /// Montars the campo codigo cedente. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCampoCodigoCedente(Titulo titulo) { return string.Format("{0}-{1}/{2}-{3}", titulo.Parent.Cedente.Agencia, titulo.Parent.Cedente.AgenciaDigito, titulo.Parent.Cedente.Conta, titulo.Parent.Cedente.ContaDigito); }
public Boleto(Convenio convenio, Pagador pagador, Titulo titulo) { Convenio = convenio; Pagador = pagador; Titulo = titulo; }
public ActionResult AutorizacaoExploracaoFlorestal(EspecificidadeVME especificidade) { AutorizacaoExploracaoFlorestalBus bus = new AutorizacaoExploracaoFlorestalBus(); List <Protocolos> lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId); List <AtividadeSolicitada> lstAtividades = new List <AtividadeSolicitada>(); List <PessoaLst> destinatarios = new List <PessoaLst>(); Titulo titulo = new Titulo(); TituloModelo modelo = _tituloModeloBus.Obter(especificidade.ModeloId ?? 0); AutorizacaoExploracaoFlorestal autorizacao = new AutorizacaoExploracaoFlorestal(); if (especificidade.TituloId > 0) { titulo = _busTitulo.Obter(especificidade.TituloId); titulo.Condicionantes = _busTitulo.ObterCondicionantes(especificidade.TituloId); autorizacao = bus.Obter(especificidade.TituloId) as AutorizacaoExploracaoFlorestal; if (autorizacao != null) { especificidade.AtividadeProcDocReq = autorizacao.ProtocoloReq; autorizacao.TitulosAssociado = (titulo.ToEspecificidade() ?? new Especificidade()).TitulosAssociado; } } if (especificidade.ProtocoloId > 0) { if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId)) { lstAtividades = new List <AtividadeSolicitada>(); titulo.Atividades = new List <Atividade>(); } else { lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo()); } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId); } else { destinatarios.Add(new PessoaLst() { Id = autorizacao.Destinatario, Texto = autorizacao.DestinatarioNomeRazao, IsAtivo = true }); } if (!especificidade.IsVisualizar) { _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId); } } if (!Validacao.EhValido) { return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet)); } AutorizacaoExploracaoFlorestalVM vm = new AutorizacaoExploracaoFlorestalVM( lstProcessosDocumentos, lstAtividades, destinatarios, titulo.Condicionantes, especificidade.AtividadeProcDocReqKey, especificidade.IsVisualizar); vm.Autorizacao = autorizacao; vm.TituloAssociado = autorizacao.TitulosAssociado.FirstOrDefault() ?? new TituloAssociadoEsp(); vm.ArquivoVM.Anexos = titulo.Anexos; if (especificidade.TituloId > 0) { vm.Atividades.Atividades = titulo.Atividades; } vm.IsCondicionantes = modelo.Regra(eRegra.Condicionantes) || (titulo.Condicionantes != null && titulo.Condicionantes.Count > 0); string htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Autorizacao/AutorizacaoExploracaoFlorestal.ascx", vm); return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Formata o campo nosso numero a partir do boleto informado /// </summary> /// <param name="titulo">boleto.</param> /// <returns>Nosso Numero.</returns> private string FormataNossoNumero(Titulo titulo) { var aConvenio = titulo.Parent.Cedente.Convenio; var aNossoNumero = titulo.NossoNumero.OnlyNumbers(); var wNossoNumero = titulo.NossoNumero.OnlyNumbers(); var wTamNossoNum = CalcularTamMaximoNossoNumero(titulo.Carteira, wNossoNumero); if ((titulo.Carteira == "16" || titulo.Carteira == "18") && aConvenio.Length == 6 && wTamNossoNum == 17) aNossoNumero = aNossoNumero.FillRight(17, '0'); else if (titulo.Carteira == "18" && aConvenio.Length == 7 && wTamNossoNum == 11) aNossoNumero = aNossoNumero.FillRight(11, '0'); else if (aConvenio.Length <= 4) aNossoNumero = aConvenio.FillRight(4, '0') + aNossoNumero.FillRight(7, '0'); else if (aConvenio.Length > 4 && aConvenio.Length <= 6) aNossoNumero = aConvenio.FillRight(6, '0') + aNossoNumero.FillRight(5, '0'); else if (aConvenio.Length == 7 && titulo.Carteira == "11") aNossoNumero = "0".FillRight(7, '0') + aNossoNumero.FillRight(10, '0'); else if (aConvenio.Length == 7 && titulo.Carteira != "11") aNossoNumero = aConvenio.FillRight(7, '0') + aNossoNumero.FillRight(10, '0'); return aNossoNumero; }
/// <summary> /// Montars the linha digitavel. /// </summary> /// <param name="CodigoBarras">The codigo barras.</param> /// <param name="Titulo">The titulo.</param> /// <returns>System.String.</returns> public string MontarLinhaDigitavel(string CodigoBarras, Titulo Titulo) { return BancoClass.MontarLinhaDigitavel(CodigoBarras, Titulo); }
/// <summary> /// Montars the codigo barras. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCodigoBarras(Titulo titulo) { var aConvenio = titulo.Parent.Cedente.Convenio.Trim(); var aNossoNumero = FormataNossoNumero(titulo); var wTamNossNum = CalcularTamMaximoNossoNumero(titulo.Carteira, titulo.NossoNumero.OnlyNumbers()); var codigoBarras = string.Empty; //Codigo de Barras var fatorVencimento = titulo.Vencimento.CalcularFatorVencimento(); if ((titulo.Carteira == "18" || titulo.Carteira == "16") && aConvenio.Length == 6 && wTamNossNum == 17) { codigoBarras = string.Format("{0:000}9{1}{2}{3}{4}21", Banco.Numero, fatorVencimento, titulo.ValorDocumento.ToDecimalString(10), aConvenio, aNossoNumero); } else { codigoBarras = string.Format("{0:000}9{1}{2}{3}{4}{5}{6}{7}", Banco.Numero, fatorVencimento, titulo.ValorDocumento.ToDecimalString(10), aConvenio.Length == 7 ? "000000" : "", aNossoNumero, aConvenio.Length < 7 ? titulo.Parent.Cedente.Agencia.FillRight(4, '0') : "", aConvenio.Length < 7 ? titulo.Parent.Cedente.Conta.OnlyNumbers().ZeroFill(8) : "", titulo.Carteira); } var digitoCodBarras = CalcularDigitoCodigoBarras(codigoBarras); return codigoBarras.Insert(4, digitoCodBarras); }
public int CompareTo(object obj) { Filme outro = obj as Filme; return(Titulo.CompareTo(outro.Titulo)); }
public void Executar() { Titulo.Exibir("CONVERSORES"); #region Listas string[] paises = { "EUA", "URU", "FRN", "BR", "JP", "AU", "AL", "CBA" }; List <Vendedor> lista = Vendedor.ObterTodos().ToList(); #endregion #region Array Titulo.ExibirSub("ARRAY"); for (int i = 0; i < paises.Length; i++) { Console.WriteLine(paises[i]); } #endregion #region ToList Titulo.ExibirSub("TO_LIST"); var result = paises.ToList(); foreach (var item in result) { Console.WriteLine(item); } #endregion #region Dictionary Titulo.ExibirSub("TO_DICTIONARY - TIPO PRIMITIVO"); Dictionary <int, string> vendedorPrimitivo = lista.ToDictionary(x => x.Id, x => x.PrimeiroNome); foreach (var item in vendedorPrimitivo) { Console.WriteLine($"{item.Key} : {item.Value}"); } Titulo.ExibirSub("TO_DICTIONARY - TIPO COMPLEXO"); Dictionary <int, Vendedor> vendedorComplexo = lista.ToDictionary(x => x.Id); foreach (var item in vendedorComplexo) { Console.WriteLine($"{item.Key} : {item.Value.PrimeiroNome} \t {item.Value.VendasSemestrais}"); } #endregion #region ToLookup Titulo.ExibirSub("TO_LOOKUP"); var resultLookup = lista.ToLookup(x => x.VendasSemestrais); foreach (var item in resultLookup) { Console.WriteLine(item.Key); foreach (var v in resultLookup[item.Key]) { Console.WriteLine($"\t {v.PrimeiroNome} {v.UltimoNome}"); } } #endregion #region ToArray Titulo.ExibirSub("TO_ARRAY"); string[] colec = lista.Select(x => x.UltimoNome).Distinct().ToArray(); for (int i = 0; i < colec.Length; i++) { Console.WriteLine(colec[i]); } #endregion }
/// <summary> /// Montars the campo nosso numero. /// </summary> /// <param name="Titulo">The titulo.</param> /// <returns>System.String.</returns> public string MontarCampoNossoNumero(Titulo Titulo) { return BancoClass.MontarCampoNossoNumero(Titulo); }
public ActionResult CertificadoRegistro(EspecificidadeVME especificidade) { CertificadoRegistroBus _certificadoRegistroBus = new CertificadoRegistroBus(); List <Protocolos> lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId); List <AtividadeSolicitada> lstAtividades = new List <AtividadeSolicitada>(); List <PessoaLst> destinatarios = new List <PessoaLst>(); Titulo titulo = new Titulo(); CertificadoRegistro certificado = new CertificadoRegistro(); string htmlEspecificidade = string.Empty; if (especificidade.TituloId > 0) { titulo = _busTitulo.ObterSimplificado(especificidade.TituloId); titulo.Atividades = _busTitulo.ObterAtividades(especificidade.TituloId); certificado = _certificadoRegistroBus.Obter(especificidade.TituloId) as CertificadoRegistro; if (certificado != null) { especificidade.AtividadeProcDocReq = certificado.ProtocoloReq; } } if (especificidade.ProtocoloId > 0) { if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId)) { lstAtividades = new List <AtividadeSolicitada>(); titulo.Atividades = new List <Atividade>(); } else { lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo()); } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId); } else { destinatarios.Add(new PessoaLst() { Id = certificado.Destinatario, Texto = certificado.DestinatarioNomeRazao, IsAtivo = true }); } if (!especificidade.IsVisualizar) { _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId); } } CertificadoRegistroVM vm = new CertificadoRegistroVM( lstProcessosDocumentos, lstAtividades, destinatarios, especificidade.AtividadeProcDocReqKey, especificidade.IsVisualizar); vm.Certificado = certificado; if (especificidade.TituloId > 0) { vm.Atividades.Atividades = titulo.Atividades; } htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Certificado/CertificadoRegistro.ascx", vm); return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet)); }
public void Novo(Titulo titulo) { bancoDadosService.Input(1, @$ "{titulo.Codigo};{titulo.Descricao};{titulo.Tipo};false;" + Environment.NewLine); }
public void Executar() { Titulo.Exibir("GROUP_BY2"); #region Linq Titulo.ExibirSub("LINQ"); var grupo = Vendedor.ObterTodos() .GroupBy(x => new { x.VendasSemestrais, x.Sexo }) .OrderBy(k => k.Key.VendasSemestrais) .ThenBy(s => s.Key.Sexo) .Select(v => new { Vendas = v.Key.VendasSemestrais, Sexo = v.Key.Sexo, Vendedor = v.OrderBy(x => x.PrimeiroNome) }); foreach (var item in grupo) { Console.WriteLine($"Os funcionários do sexo {item.Sexo} fizeram {item.Vendas} e são {item.Vendedor.Count()}:"); Console.WriteLine("--------------------------------------------------------"); foreach (var v in item.Vendedor) { Console.WriteLine($"{v.Id} : {v.PrimeiroNome} {v.UltimoNome}"); } Console.WriteLine(); } #endregion #region Sql Titulo.ExibirSub("SQL"); var grupoSql = from v in Vendedor.ObterTodos() group v by new { v.VendasSemestrais, v.Sexo } into vGrupo orderby vGrupo.Key.VendasSemestrais, vGrupo.Key.Sexo select new { Vendas = vGrupo.Key.VendasSemestrais, Sexo = vGrupo.Key.Sexo, Vendedor = vGrupo.OrderBy(x => x.PrimeiroNome) }; foreach (var item in grupoSql) { Console.WriteLine($"Os funcionários do sexo {item.Sexo} fizeram {item.Vendas} e são {item.Vendedor.Count()}:"); Console.WriteLine("--------------------------------------------------------"); foreach (var v in item.Vendedor) { Console.WriteLine($"{v.Id} : {v.PrimeiroNome} {v.UltimoNome}"); } Console.WriteLine(); } #endregion Console.ReadKey(); }
private bool Assinantes(Titulo titulo) { if (titulo == null) { return(false); } //Obrigatoriedade de assinante conforme configuração if (titulo.Modelo.Assinantes != null && titulo.Modelo.Assinantes.Count > 0) { // valida se título deve ter ao menos um assinante Dominio if (titulo.Assinantes != null && titulo.Assinantes.Count() <= 0) { Validacao.Add(Mensagem.Titulo.AssinanteObrigatorio); return(false); } } else { // valida se título deve ter ao menos um assinante Dominio if (titulo.Assinantes != null && titulo.Assinantes.Count() > 0) { Validacao.Add(Mensagem.Titulo.AssinanteDesmarcar); return(false); } //Não há mais validações de assinantes return(true); } List <FuncionarioLst> lstCnfFuncRespSetor = new List <FuncionarioLst>(); FuncionarioLst respSetor = null; foreach (Assinante configAssinante in titulo.Modelo.Assinantes.Where(x => x.TipoId == 1)) { respSetor = _funcionarioBus.ObterResponsavelSetor(configAssinante.SetorId); if (respSetor != null) { lstCnfFuncRespSetor.Add(_funcionarioBus.ObterResponsavelSetor(configAssinante.SetorId)); } } //Validar configuração de regras do modelo. if (lstCnfFuncRespSetor.Count == 0 && titulo.Modelo.Assinantes.Exists(x => x.TipoId == 1)) { Validacao.Add(Mensagem.Titulo.AssinanteSetorSemResponsavel); return(false); } foreach (TituloAssinante assinante in titulo.Assinantes) { //Assinante configurado como Responsavel no modelo if (lstCnfFuncRespSetor.Any(x => x.Id == assinante.FuncionarioId)) { continue; } //Assinante configurado como qualquer funcionario do setor using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bool noSetor = false; foreach (Assinante configAssinante in titulo.Modelo.Assinantes.Where(x => x.TipoId == 2)) { if (_funcionarioBus.VerificarFuncionarioContidoSetor(assinante.FuncionarioId, configAssinante.SetorId, bancoDeDados)) { noSetor = true; break; } } if (noSetor) { continue; } } Validacao.Add(Mensagem.Titulo.AssinanteInvalidoDesmarcar(_funcionarioBus.Obter(assinante.FuncionarioId).Nome)); } if (titulo.Assinantes != null && titulo.Assinantes.Count > 0) { // valida se há algum assinante sem cargo escolhido foreach (TituloAssinante assinante in titulo.Assinantes) { if (assinante.FuncionarioCargoId <= 0) { Validacao.Add(Mensagem.Titulo.AssinanteCargoObrigatorio); } } } return(Validacao.EhValido); }
// Use this for initialization void Start() { estado = new Teclado (); titulo = GameObject.Find ("titulo"); tituloScript = titulo.GetComponent<Titulo> (); }
public void AlterarSituacao(Titulo titulo, BancoDeDados banco = null, bool validar = true) { Titulo atualTitulo = _da.ObterSimplificado(titulo.Id); bool isGerarNumero = false; bool isGerarPdf = false; if (validar) { if (!_validar.AlterarSituacao(titulo, atualTitulo.Situacao.Id == (int)eTituloSituacao.EmCadastro) || atualTitulo.Situacao.Id == (int)eTituloSituacao.Valido) { return; } } #region Configurar Nova Situacao //Situação Nova switch ((eTituloSituacao)titulo.Situacao.Id) { #region 3 - Valido case eTituloSituacao.Valido: if (atualTitulo.Situacao.Id == (int)eTituloSituacao.EmCadastro) { isGerarNumero = true; isGerarPdf = true; } break; #endregion } #endregion #region Numero de Titulo if (isGerarNumero) { titulo.Numero.ReiniciaPorAno = titulo.Modelo.Regra(eRegra.NumeracaoReiniciada); if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero.Automatico = true; TituloModeloResposta iniciarEm = titulo.Modelo.Resposta(eRegra.NumeracaoAutomatica, eResposta.InicioNumeracao); titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; if (iniciarEm != null) { if (iniciarEm.Valor == null || !ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(iniciarEm.Valor.ToString())) { Validacao.Add(Mensagem.Titulo.IniciarEmInvalido); return; } string[] iniciar = iniciarEm.Valor.ToString().Split('/'); titulo.Numero.IniciaEm = Convert.ToInt32(iniciar[0]); titulo.Numero.IniciaEmAno = Convert.ToInt32(iniciar[1]); if (titulo.Numero.IniciaEmAno.GetValueOrDefault() != DateTime.Now.Year) { titulo.Numero.IniciaEm = null; titulo.Numero.IniciaEmAno = null; } } } titulo.Numero.Ano = DateTime.Today.Year; } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); _da.DeclaratorioAlterarSituacao(titulo, bancoDeDados); #region Atividades AtividadeInternoBus atividadeBus = new AtividadeInternoBus(); #region Título Valido if (titulo.Situacao.Id == (int)eTituloSituacao.Valido) { if (titulo.Atividades != null && titulo.Atividades.Count > 0) { foreach (Atividade atividade in titulo.Atividades) { if (VerificarDeclaratorioSituacao(atividade, eTituloSituacao.Valido, titulo.EmpreendimentoId.GetValueOrDefault(), bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Regular; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } #endregion #region Título Suspenso if (titulo.Situacao.Id == (int)eTituloSituacao.SuspensoDeclaratorio) { if (titulo.Atividades != null && titulo.Atividades.Count > 0) { foreach (Atividade atividade in titulo.Atividades) { if (VerificarDeclaratorioSituacao(atividade, eTituloSituacao.SuspensoDeclaratorio, titulo.EmpreendimentoId.GetValueOrDefault(), bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Suspensa; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } #endregion #region Título Encerrado if (titulo.Situacao.Id == (int)eTituloSituacao.EncerradoDeclaratorio) { if (titulo.Atividades != null && titulo.Atividades.Count > 0) { foreach (Atividade atividade in titulo.Atividades) { if (VerificarDeclaratorioSituacao(atividade, eTituloSituacao.EncerradoDeclaratorio, titulo.EmpreendimentoId.GetValueOrDefault(), bancoDeDados)) { atividade.SituacaoId = (int)eAtividadeSituacao.Irregular; atividadeBus.AlterarSituacao(atividade, bancoDeDados); } } } } #endregion #endregion #region Gerar Pdf de Titulo ArquivoBus arqBus = new ArquivoBus(eExecutorTipo.Interno); if (isGerarPdf && titulo.Modelo.Regra(eRegra.PdfGeradoSistema)) { TituloInternoBus bus = new TituloInternoBus(); titulo.ArquivoPdf.Nome = "Titulo.pdf"; titulo.ArquivoPdf.Extensao = ".pdf"; titulo.ArquivoPdf.ContentType = "application/pdf"; titulo.ArquivoPdf.Buffer = bus.GerarPdf(titulo, bancoDeDados); if (titulo.ArquivoPdf.Buffer != null) { arqBus.Salvar(titulo.ArquivoPdf); ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(titulo.ArquivoPdf, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); _da.SalvarPdfTitulo(titulo, bancoDeDados); } } #endregion #region Gerar/Enviar Email #region Gerar Email Email email = null; if (titulo.Situacao.Id == (int)eTituloSituacao.Valido && titulo.Modelo.Regra(eRegra.EnviarEmail)) { if (titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor != null) { string textoEmail = titulo.Modelo.Resposta(eRegra.EnviarEmail, eResposta.TextoEmail).Valor.ToString(); if (!String.IsNullOrWhiteSpace(textoEmail)) { Dictionary <String, String> emailKeys = new Dictionary <string, string>(); emailKeys.Add("[orgão sigla]", _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla)); emailKeys.Add("[data da conclusão]", titulo.Modelo.Regra(eRegra.Prazo) ? titulo.DataInicioPrazo.DataTexto : titulo.DataEmissao.DataTexto); emailKeys.Add("[nome do modelo]", titulo.Modelo.Nome); emailKeys.Add("[nome do subtipo]", titulo.Modelo.SubTipo); emailKeys.Add("[nº do título]", titulo.Numero.Texto); emailKeys.Add("[nº processo/documento do título]", titulo.Protocolo.Numero); emailKeys.Add("[nome do empreendimento]", titulo.EmpreendimentoTexto); foreach (string key in emailKeys.Keys) { textoEmail = textoEmail.Replace(key, emailKeys[key]); } email = new Email(); email.Assunto = _configSys.Obter <String>(ConfiguracaoSistema.KeyOrgaoSigla); email.Texto = textoEmail; email.Tipo = eEmailTipo.TituloConcluir; email.Codigo = titulo.Id; } } } #endregion if (email != null) { List <String> lstEmail = _da.ObterEmails(titulo.Id, bancoDeDados); if (lstEmail != null && lstEmail.Count > 0) { email.Destinatario = String.Join(", ", lstEmail.ToArray()); if (titulo.Modelo.Regra(eRegra.AnexarPDFTitulo)) { email.Anexos.Add(titulo.ArquivoPdf); } EmailBus emailBus = new EmailBus(); emailBus.Enviar(email, bancoDeDados); } } #endregion if (!Validacao.EhValido) { bancoDeDados.Rollback(); return; } #region Salvar A especificidade if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.GetValueOrDefault())) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault()); titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade; titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Salvar(titulo.Especificidade, bancoDeDados); List <DependenciaLst> lstDependencias = busEsp.ObterDependencias(titulo.Especificidade); if (isGerarPdf && lstDependencias != null && lstDependencias.Count > 0) { if (!lstDependencias.Exists(x => x.TipoId == (int)eTituloDependenciaTipo.Caracterizacao && x.DependenciaTipo == (int)eCaracterizacao.Dominialidade)) { lstDependencias.Add(new DependenciaLst() { TipoId = (int)eTituloDependenciaTipo.Caracterizacao, DependenciaTipo = (int)eCaracterizacao.Dominialidade }); } _da.Dependencias(titulo.Id, titulo.Modelo.Id, titulo.EmpreendimentoId.GetValueOrDefault(), lstDependencias); } } #endregion #region Histórico _da.Historico.Gerar(titulo.Id, eHistoricoArtefato.titulo, eHistoricoAcao.alterarsituacao, bancoDeDados); _da.Consulta.Gerar(titulo.Id, eHistoricoArtefato.titulo, bancoDeDados); #endregion bancoDeDados.Commit(); Validacao.Add(Mensagem.TituloAlterarSituacao.TituloAltSituacaoSucesso); } }
/// <summary> /// Calculars the digito verificador. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string CalcularDigitoVerificador(Titulo titulo) { string Docto; if (titulo.Carteira.IsIn("116", "117", "119", "134", "135", "136", "104", "147", "105", "112", "212", "166", "113", "126", "131", "145", "150", "168")) { Docto = string.Format("{0}{1}", titulo.Carteira, titulo.NossoNumero.FillRight(TamanhoMaximoNossoNum, '0')); } else { Docto = String.Format("{0}{1}{2}{3}", titulo.Parent.Cedente.Agencia, titulo.Parent.Cedente.Conta, titulo.Carteira, titulo.NossoNumero.FillRight(TamanhoMaximoNossoNum, '0')); } Modulo.MultiplicadorInicial = 1; Modulo.MultiplicadorFinal = 2; Modulo.MultiplicadorAtual = 2; Modulo.FormulaDigito = CalcDigFormula.Modulo10; Modulo.Documento = Docto; Modulo.Calcular(); return Modulo.DigitoFinal.ToString(); }
internal bool AlterarSituacao(Titulo titulo, bool validarTitulo) { if (titulo.Situacao.Id <= 0) { Validacao.Add(Mensagem.Titulo.SituacaoObrigatoria); } Titulo tituloAux = _da.ObterSimplificado(titulo.Id); if (tituloAux == null) { return(false); } switch ((eTituloSituacao)titulo.Situacao.Id) { #region Valido case eTituloSituacao.Valido: if (tituloAux.Situacao.Id != (int)eTituloSituacao.EmCadastro && tituloAux.Situacao.Id != (int)eTituloSituacao.Suspenso) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Válido", "Em cadastro ou Suspenso")); } break; #endregion #region Suspenso case eTituloSituacao.Suspenso: if (tituloAux.Situacao.Id != (int)eTituloSituacao.Valido) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Suspenso", "Válido")); } if (string.IsNullOrWhiteSpace(titulo.MotivoSuspensao)) { Validacao.Add(Mensagem.Titulo.MotivoObrigatorio); } break; #endregion #region Encerrado case eTituloSituacao.EncerradoDeclaratorio: if (tituloAux.Situacao.Id != (int)eTituloSituacao.Valido && tituloAux.Situacao.Id != (int)eTituloSituacao.Suspenso) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Encerrado", "Válido ou Suspenso")); } if (titulo.MotivoEncerramentoId <= 0) { Validacao.Add(Mensagem.Titulo.MotivoEncerramentoObrigatorio); } break; #endregion } if (!Validacao.EhValido) { return(false); } //Validar Titulo if (validarTitulo) { Titulo(titulo); if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.Value)) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.Value); titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade; titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Validar.Emitir(titulo.Especificidade); } } else if (titulo.Situacao.Id != (int)eTituloSituacao.EncerradoDeclaratorio) { if (titulo.Atividades != null) { foreach (var item in titulo.Atividades) { if (!item.Ativada) { Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade)); } } } } return(Validacao.EhValido); }
/// <summary> /// Monta o codigo de barras. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCodigoBarras(Titulo titulo) { var FatorVencimento = titulo.Vencimento.CalcularFatorVencimento(); var ANossoNumero = String.Format("{0}{1}{2}", titulo.Carteira, titulo.NossoNumero.FillRight(8, '0'), CalcularDigitoVerificador(titulo)); var aAgenciaCC = String.Format("{0}{1}{2}", titulo.Parent.Cedente.Agencia, titulo.Parent.Cedente.Conta, titulo.Parent.Cedente.ContaDigito); var CodigoBarras = string.Format("{0:000}9{1}{2}{3}{4}000", Numero, FatorVencimento, titulo.ValorDocumento.ToDecimalString(10), ANossoNumero, aAgenciaCC); var DigitoCodBarras = CalcularDigitoCodigoBarras(CodigoBarras); return CodigoBarras.Insert(4, DigitoCodBarras); }
public void ValidarProduto(int cfo, int empreendimento, IdentificacaoProduto item, List <IdentificacaoProduto> lista) { lista = lista ?? new List <IdentificacaoProduto>(); if (item.UnidadeProducao <= 0) { Validacao.Add(Mensagem.EmissaoCFO.ProdutoUnidadeProducaoObrigatorio); return; } TituloInternoBus tituloBus = new TituloInternoBus(); Titulo titulo = tituloBus.UnidadeProducaoPossuiAberturaConcluido(item.UnidadeProducao); if (titulo == null || titulo.Id <= 0) { Validacao.Add(Mensagem.EmissaoCFO.UPTituloConcluido); } if (item.Quantidade <= 0) { Validacao.Add(Mensagem.EmissaoCFO.ProdutoQuantidadeObrigatorio); } ValidacoesGenericasBus.DataMensagem(item.DataInicioColheita, "CFO_Produto_InicioColheita", "início da colheita", false); ValidacoesGenericasBus.DataMensagem(item.DataFimColheita, "CFO_Produto_FimColheita", "fim da colheita", false); if (!Validacao.EhValido) { return; } if (DateTime.Parse(item.DataFimColheita.DataTexto) < DateTime.Parse(item.DataInicioColheita.DataTexto)) { Validacao.Add(Mensagem.EmissaoCFO.DataFimColheitaNaoPodeSerMenorQueDataInicial); } TituloInternoDa tituloInternoDa = new TituloInternoDa(); var dependencia = tituloInternoDa.ObterDependencia(titulo.Id, eCaracterizacao.UnidadeProducao); UnidadeProducao UnidadeProducao = _da.ObterUnidadeProducao(dependencia.Id, dependencia.DependenciaTid); UnidadeProducaoItem unidade = UnidadeProducao.UnidadesProducao.FirstOrDefault(x => x.Id == item.UnidadeProducao); if (unidade == null || unidade.Id <= 0) { Validacao.Add(Mensagem.EmissaoCFO.UPDessassociada(item.CodigoUP)); } else { if (unidade.TipoProducao == (int)eUnidadeProducaoTipoProducao.MaterialPropagacao) { if (string.IsNullOrEmpty(unidade.DataValidadeRenasem) || DateTime.Parse(unidade.DataValidadeRenasem) < DateTime.Today) { Validacao.Add(Mensagem.EmissaoCFO.DataValidadeRENASEMMenorAtual(item.CodigoUP)); } } eUnidadeProducaoTipoProducao tipoProducao = ValidacoesGenericasBus.ObterTipoProducao(item.UnidadeMedidaId); DateTime dataSaldo = titulo.DataSituacao.Data.GetValueOrDefault(); if (titulo.DataSituacao.Data.GetValueOrDefault().Year < DateTime.Today.Year) { dataSaldo = new DateTime(DateTime.Today.Year - 1, dataSaldo.Month, dataSaldo.Day); } decimal totalTela = item.Quantidade + lista.Where(x => !x.Equals(item) && x.CultivarId == item.CultivarId && x.UnidadeMedidaId == item.UnidadeMedidaId).Sum(x => x.Quantidade); if (unidade.EstimativaProducaoQuantidadeAno < _da.ObterQuantidadeProduto(empreendimento, item.CultivarId, tipoProducao, item.UnidadeProducao, cfo, dataSaldo) + totalTela) { Validacao.Add(Mensagem.EmissaoCFO.QuantidadeMensalInvalida(unidade.CodigoUP.ToString())); } } if (lista.Count(x => !x.Equals(item)) >= 5) { Validacao.Add(Mensagem.EmissaoCFO.LimiteMaximo); } if (lista.Any(x => x.UnidadeProducao == item.UnidadeProducao && !x.Equals(item))) { Validacao.Add(Mensagem.EmissaoCFO.UnidadeProducaoJaAdicionado); } }
public ActionResult NotificacaoEmbargo(EspecificidadeVME especificidade) { NotificacaoEmbargoBus bus = new NotificacaoEmbargoBus(); List <Protocolos> lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId); List <AtividadeSolicitada> lstAtividades = new List <AtividadeSolicitada>(); List <AtividadeSolicitada> lstAtividadesEmbargo = new List <AtividadeSolicitada>(); List <PessoaLst> destinatarios = new List <PessoaLst>(); Titulo titulo = new Titulo(); TituloModelo modelo = _tituloModeloBus.Obter(especificidade.ModeloId ?? 0); NotificacaoEmbargo notificacao = new NotificacaoEmbargo(); int atividadeSelecionada = 0; if (especificidade.TituloId > 0) { titulo = _busTitulo.Obter(especificidade.TituloId); titulo.Atividades = _busTitulo.ObterAtividades(especificidade.TituloId); if (titulo.Atividades.Count > 0) { atividadeSelecionada = titulo.Atividades[0].Id; } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { notificacao = bus.Obter(especificidade.TituloId) as NotificacaoEmbargo; } else { notificacao = bus.ObterHistorico(especificidade.TituloId, 0) as NotificacaoEmbargo; } if (notificacao != null) { especificidade.AtividadeProcDocReq = notificacao.ProtocoloReq; } } if (especificidade.ProtocoloId > 0) { if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId)) { lstAtividades = new List <AtividadeSolicitada>(); titulo.Atividades = new List <Atividade>(); } else { lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo()); } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId); } else { notificacao.Destinatarios.ForEach(x => { destinatarios.Add(new PessoaLst() { Id = x.IdRelacionamento, Texto = x.Nome, IsAtivo = true }); }); } if (!especificidade.IsVisualizar) { _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId); } } if (!Validacao.EhValido) { return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet)); } NotificacaoEmbargoVM vm = new NotificacaoEmbargoVM( lstProcessosDocumentos, lstAtividades, destinatarios, notificacao, especificidade.AtividadeProcDocReqKey, especificidade.IsVisualizar, atividadeSelecionada); if (especificidade.TituloId > 0) { vm.Atividades.Atividades = titulo.Atividades; vm.AtividadesEmbargo = ViewModelHelper.CriarSelectList(_busAtividade.ObterAtividadesLista(new Protocolo { Id = titulo.Protocolo.Id }, true), true); } string htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Notificacao/NotificacaoEmbargo.ascx", vm); return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet)); }
public ActionResult LaudoVistoriaFlorestal(EspecificidadeVME especificidade) { LaudoVistoriaFlorestalBus _busLaudo = new LaudoVistoriaFlorestalBus(); List <Protocolos> lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId); List <AtividadeSolicitada> lstAtividades = new List <AtividadeSolicitada>(); List <PessoaLst> destinatarios = new List <PessoaLst>(); Titulo titulo = new Titulo(); TituloModelo modelo = _tituloModeloBus.Obter(especificidade.ModeloId ?? 0); LaudoVistoriaFlorestal laudo = new LaudoVistoriaFlorestal(); LaudoVistoriaFlorestalVM vm = null; string htmlEspecificidade = string.Empty; if (especificidade.TituloId > 0) { titulo = _busTitulo.ObterSimplificado(especificidade.TituloId); titulo.Anexos = _busTitulo.ObterAnexos(especificidade.TituloId); titulo.Atividades = _busTitulo.ObterAtividades(especificidade.TituloId); titulo.Condicionantes = _busTitulo.ObterCondicionantes(especificidade.TituloId); titulo.Exploracoes = _busTitulo.ObterExploracoes(especificidade.TituloId); laudo = _busLaudo.Obter(especificidade.TituloId) as LaudoVistoriaFlorestal; if (laudo != null) { especificidade.AtividadeProcDocReq = laudo.ProtocoloReq; laudo.Anexos = titulo.Anexos; } } if (especificidade.ProtocoloId > 0) { if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId)) { lstAtividades = new List <AtividadeSolicitada>(); titulo.Atividades = new List <Atividade>(); } else { lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo()); } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId); } else { destinatarios.Add(new PessoaLst() { Id = laudo.Destinatario, Texto = laudo.DestinatarioNomeRazao, IsAtivo = true }); } if (!especificidade.IsVisualizar) { _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId); } } if (!Validacao.EhValido) { return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet)); } var busExploracao = new ExploracaoFlorestalBus(); var exploracoesLst = busExploracao.ObterPorEmpreendimentoList(especificidade.EmpreendimentoId); var caracterizacaoLst = new List <CaracterizacaoLst>(); if (exploracoesLst.Count() > 0) { caracterizacaoLst = exploracoesLst.Select(x => new CaracterizacaoLst { Id = x.Id, Texto = x.CodigoExploracaoTexto ?? "", ParecerFavoravel = String.Join(", ", x.Exploracoes.Where(w => w.ParecerFavoravel == true).Select(y => y.Identificacao)?.ToList()), ParecerDesfavoravel = String.Join(", ", x.Exploracoes.Where(w => w.ParecerFavoravel == false).Select(y => y.Identificacao)?.ToList()), IsAtivo = true })?.ToList(); } vm = new LaudoVistoriaFlorestalVM( modelo.Codigo, laudo, lstProcessosDocumentos, lstAtividades, caracterizacaoLst, destinatarios, _protocoloBus.ObterResponsaveisTecnicosPorRequerimento(especificidade.AtividadeProcDocReq.RequerimentoId), _busLista.ObterEspecificidadeConclusoes, titulo.Condicionantes, especificidade.AtividadeProcDocReqKey, especificidade.IsVisualizar); if (especificidade.TituloId > 0) { vm.Atividades.Atividades = titulo.Atividades; vm.Exploracoes = titulo.Exploracoes; var parecerFavoravel = new ArrayList(); var parecerDesfavoravel = new ArrayList(); foreach (var exploracao in exploracoesLst) { if (exploracao.Exploracoes.Where(x => x.ParecerFavoravel == true)?.ToList().Count > 0) { parecerFavoravel.Add(String.Concat(exploracao.CodigoExploracaoTexto, " (", String.Join(", ", exploracao.Exploracoes.Where(x => x.ParecerFavoravel == true).Select(x => x.Identificacao)?.ToList()), ")")); } if (exploracao.Exploracoes.Where(x => x.ParecerFavoravel == false)?.ToList().Count > 0) { parecerDesfavoravel.Add(String.Concat(exploracao.CodigoExploracaoTexto, " (", String.Join(", ", exploracao.Exploracoes.Where(x => x.ParecerFavoravel == false).Select(x => x.Identificacao)?.ToList()), ")")); } } vm.ParecerFavoravelLabel = parecerFavoravel.Count > 0 ? String.Join(", ", parecerFavoravel?.ToArray()) : ""; vm.ParecerDesfavoravelLabel = parecerDesfavoravel.Count > 0 ? String.Join(", ", parecerDesfavoravel?.ToArray()) : ""; } vm.IsCondicionantes = modelo.Regra(eRegra.Condicionantes) || (titulo.Condicionantes != null && titulo.Condicionantes.Count > 0); htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Laudo/LaudoVistoriaFlorestal.ascx", vm); return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet)); }
public ActionResult Editar(int id, bool trocarAutor = false, int?setorTrocado = null) { Titulo titulo = _bus.Obter(id); titulo.Modelo = _busModelo.Obter(titulo.Modelo.Id); SalvarVM vm = null; #region Nao Encontrada if (titulo == null || titulo.Id == 0) { Validacao.Add(Mensagem.Titulo.NaoEncontrado); return(RedirectToAction("Index", Validacao.QueryParamSerializer())); } if (!_validar.ListarEditar(titulo)) { return(RedirectToAction("Index", Validacao.QueryParamSerializer())); } #endregion List <Setor> lstSetores = _bus.ObterFuncionarioSetores(); vm = new SalvarVM(lstSetores, _busModelo.ObterModelosDeclaratorios(), _bus.ObterLocais(), titulo.Setor.Id, titulo.Modelo.Id, titulo.LocalEmissao.Id); vm.SetoresEditar = lstSetores.Count > 1; vm.Titulo = titulo; vm.Modelo = _busModelo.Obter(titulo.Modelo.Id); vm.Titulo.Modelo = vm.Modelo; vm.AtividadeEspecificidadeCaracterizacaoJSON = ViewModelHelper.Json(_busEspBase.GetConfigAtivEspCaracterizacao(vm.Modelo.Codigo.Value)); vm.TemEmpreendimento = titulo.EmpreendimentoId.HasValue; vm.IsEditar = true; if (!vm.Modelo.Regra(eRegra.PdfGeradoSistema)) { ArquivoBus arqBus = new ArquivoBus(eExecutorTipo.Interno); titulo.ArquivoPdf = arqBus.ObterDados(titulo.ArquivoPdf.Id.GetValueOrDefault()); vm.ArquivoId = titulo.ArquivoPdf.Id; vm.ArquivoTexto = titulo.ArquivoPdf.Nome; vm.ArquivoJSon = ViewModelHelper.JsSerializer.Serialize(titulo.ArquivoPdf); } #region Assinantes vm.AssinantesVM.Assinantes = _busModelo.ObterAssinantes(vm.Modelo); if (titulo != null) { vm.AssinantesVM.MergeAssinantesCargos(titulo.Assinantes); } List <ListaValor> lista = null; if (vm.AssinantesVM.Assinantes != null && vm.AssinantesVM.Assinantes.Count > 0) { vm.AssinantesVM.Assinantes = _bus.ObterAssinantesCargos(vm.AssinantesVM.Assinantes).Where(x => x.Selecionado).ToList(); lista = vm.Modelo.Assinantes.Select(x => new ListaValor { Id = x.SetorId, Texto = x.SetorTexto }).OrderBy(x => x.Texto).ToList(); } vm.AssinantesVM.Setores = ViewModelHelper.CriarSelectList(lista); vm.AssinantesVM.Cargos = ViewModelHelper.CriarSelectList(new List <ListaValor>()); vm.AssinantesVM.Funcionarios = ViewModelHelper.CriarSelectList(new List <ListaValor>()); #endregion return(View(vm)); }
public ActionResult LaudoVistoriaFundiaria(EspecificidadeVME especificidade) { LaudoVistoriaFundiariaBus _busLaudo = new LaudoVistoriaFundiariaBus(); List <Protocolos> lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId); List <AtividadeSolicitada> lstAtividades = new List <AtividadeSolicitada>(); List <PessoaLst> destinatarios = new List <PessoaLst>(); Titulo titulo = new Titulo(); int atividadeSelecionada = 0; LaudoVistoriaFundiaria laudo = new LaudoVistoriaFundiaria(); string htmlEspecificidade = string.Empty; if (especificidade.TituloId > 0) { titulo = _busTitulo.ObterSimplificado(especificidade.TituloId); titulo.Atividades = _busTitulo.ObterAtividades(especificidade.TituloId); if (titulo.Atividades.Count > 0) { atividadeSelecionada = titulo.Atividades[0].Id; } laudo = _busLaudo.Obter(especificidade.TituloId) as LaudoVistoriaFundiaria; if (laudo != null) { especificidade.AtividadeProcDocReq = laudo.ProtocoloReq; } _busLaudo.EhHistorico = especificidade.IsVisualizar; if (especificidade.ProtocoloId > 0) { if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId)) { lstAtividades = new List <AtividadeSolicitada>(); titulo.Atividades = new List <Atividade>(); } else { lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo()); } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId); } else { destinatarios.Add(new PessoaLst() { Id = laudo.Destinatario, Texto = laudo.DestinatarioNomeRazao, IsAtivo = true }); } if (!especificidade.IsVisualizar) { _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId); } } } if (!Validacao.EhValido) { return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet)); } LaudoVistoriaFundiariaVM vm = new LaudoVistoriaFundiariaVM( lstProcessosDocumentos, lstAtividades, destinatarios, _busLaudo.ObterPossesRegularizacao(especificidade.EmpreendimentoId), especificidade.AtividadeProcDocReqKey, atividadeSelecionada, especificidade.IsVisualizar); vm.Laudo = laudo; if (especificidade.TituloId > 0) { vm.Atividades.Atividades = titulo.Atividades; } htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Laudo/LaudoVistoriaFundiaria.ascx", vm); return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet)); }
public bool AlterarSituacao(Titulo titulo, int acao, bool gerouPdf = true) { Titulo tituloAux = _da.ObterSimplificado(titulo.Id); if (tituloAux == null) { return(false); } #region ValidarPermissao List <ePermissao> acaoPermissao = new List <ePermissao>(); switch (titulo.Situacao.Id) { #region Cadastrado case 1: acaoPermissao.Add(ePermissao.TituloCriar); acaoPermissao.Add(ePermissao.TituloCancelarEmissao); break; #endregion #region Emitido para assinatura case 2: acaoPermissao.Add(ePermissao.TituloEmitir); break; #endregion #region Concluído case 3: acaoPermissao.Add(ePermissao.TituloEmitir); acaoPermissao.Add(ePermissao.TituloAssinar); break; #endregion #region Assinado case 4: acaoPermissao.Add(ePermissao.TituloAssinar); break; #endregion #region Cancelado case 5: acaoPermissao.Add(ePermissao.TituloEncerrar); acaoPermissao.Add(ePermissao.DocumentoEncerrarOficioPendencia); break; #endregion #region Suspenso case 11: acaoPermissao.Add(ePermissao.TituloEncerrar); acaoPermissao.Add(ePermissao.DocumentoEncerrarOficioPendencia); break; #endregion #region Prorrogado case 6: acaoPermissao.Add(ePermissao.TituloProrrogar); break; #endregion } if (!_permissaoValdiar.ValidarAny(acaoPermissao.ToArray())) { return(false); } #endregion //Validar Titulo if ((eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.EmitirParaAssinatura) { _validarTitulo.Titulo(titulo); if (EspecificiadadeBusFactory.Possui(titulo.Modelo.Codigo.Value)) { IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.Value); titulo.Especificidade = busEsp.Obter(titulo.Id) as Especificidade; titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Validar.Emitir(titulo.Especificidade); } } else if ( (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Assinar || (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Entregar || (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Prorrogar || (eAlterarSituacaoAcao)acao == eAlterarSituacaoAcao.Concluir) { if (titulo.Atividades != null) { foreach (var item in titulo.Atividades) { if (!item.Ativada) { Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade)); } } } } if (!Validacao.EhValido) { return(false); } switch (titulo.Situacao.Id) { #region Cadastrado case 1: if (tituloAux.Situacao.Id != 2) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Cadastrado", "Emitido para assinatura")); } break; #endregion #region Emitido para assinatura case 2: if (!gerouPdf) { Validacao.Add(Mensagem.TituloAlterarSituacao.GerarPdfObrigatorio); } if (tituloAux.Situacao.Id != 1) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Emitido para assinatura", "Cadastrado")); } if (ValidarDatas(titulo.DataEmissao, "DataEmissao", "emissão")) { if (!titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { if (titulo.Numero.Ano != titulo.DataEmissao.Data.Value.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.NumeroAnoEmissaoAno); } } } if (titulo.Modelo.Regra(eRegra.Prazo) && titulo.Prazo.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoObrigatorio); } if (titulo.Modelo.Regra(eRegra.Prazo) && (titulo.Prazo.GetValueOrDefault() + DateTime.Now.Year) > DateTime.MaxValue.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoInvalido); } break; #endregion #region Concluído case 3: if (tituloAux.Situacao.Id == 1 && !gerouPdf) { Validacao.Add(Mensagem.TituloAlterarSituacao.GerarPdfObrigatorio); } if (tituloAux.Situacao.Id != 1 && tituloAux.Situacao.Id != 2 && tituloAux.Situacao.Id != 4 && tituloAux.Situacao.Id != 11) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Concluído", "Cadastrado, Suspenso, Emitido para assinatura ou Assinado")); } if (tituloAux.Situacao.Id == 1 || tituloAux.Situacao.Id == 11) { if (ValidarDatas(titulo.DataEmissao, "DataEmissao", "emissão")) { if (Validacao.EhValido && !titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { if (titulo.Numero.Ano != titulo.DataEmissao.Data.Value.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.NumeroAnoEmissaoAno); } } } } if (titulo.Modelo.Regra(eRegra.Prazo) && titulo.Prazo.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoObrigatorio); } if (titulo.Modelo.Regra(eRegra.Prazo) && (titulo.Prazo.GetValueOrDefault() + DateTime.Now.Year) > DateTime.MaxValue.Year) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoInvalido); } if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.AutorizacaoExploracaoFlorestal) { var associados = _da.ObterAssociados(titulo.Id); if (associados.Exists(x => x.DataVencimento.Data < titulo.DataEmissao.Data.Value.AddDays(titulo.Prazo.Value))) { Validacao.Add(Mensagem.TituloAlterarSituacao.PrazoSuperiorAoLaudo); } } #region [ Cadastro Ambiental Rural ] if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo)) { var busCARSolicitacao = new CARSolicitacaoBus(); if (!busCARSolicitacao.VerificarSeEmpreendimentoPossuiSolicitacaoValidaEEnviada(titulo.EmpreendimentoId.GetValueOrDefault())) { Validacao.Add(Mensagem.TituloAlterarSituacao.TituloNaoPossuiSolicitacaoDeInscricao); } } #endregion break; #endregion #region Assinado case 4: if (tituloAux.Situacao.Id != 2) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Assinado", "Emitido para assinatura")); } if (ValidarDatas(titulo.DataAssinatura, "DataAssinatura", "assinatura")) { if (titulo.DataAssinatura.Data < tituloAux.DataEmissao.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataAssinatura", "assinatura", "emissão")); } } break; #endregion #region Encerrado case 5: if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Encerrado", "Concluído ou Prorrogado")); } if (ValidarDatas(titulo.DataEncerramento, "DataEncerramento", "encerramento")) { if (titulo.Modelo.Regra(eRegra.Prazo)) { switch (Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor)) { case 1: if (titulo.DataEncerramento.Data < tituloAux.DataEmissao.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "emissão")); } break; case 2: if (titulo.DataEncerramento.Data < tituloAux.DataAssinatura.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "assinatura")); } break; case 3: if (titulo.DataEncerramento.Data < tituloAux.DataEntrega.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "encerramento", "entrega")); } break; } } } if (titulo.MotivoEncerramentoId.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.MotivoEncerramentoObrigatorio); } if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal) { if (_da.ExistsTituloAssociadoNaoEncerrado(titulo.Id)) { Validacao.Add(Mensagem.TituloAlterarSituacao.TituloPossuiAssociadoNaoEncerrado("encerrado")); } } break; #endregion #region Suspenso case 11: if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Suspenso", "Concluído ou Prorrogado")); } if (ValidarDatas(titulo.DataEncerramento, "DataEncerramento", "suspensão")) { if (titulo.Modelo.Regra(eRegra.Prazo)) { switch (Convert.ToInt32(titulo.Modelo.Resposta(eRegra.Prazo, eResposta.InicioPrazo).Valor)) { case 1: if (titulo.DataEncerramento.Data < tituloAux.DataEmissao.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "emissão")); } break; case 2: if (titulo.DataEncerramento.Data < tituloAux.DataAssinatura.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "assinatura")); } break; case 3: if (titulo.DataEncerramento.Data < tituloAux.DataEntrega.Data) { Validacao.Add(Mensagem.TituloAlterarSituacao.DataDeveSerSuperior("DataEncerramento", "suspensão", "entrega")); } break; } } } if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal) { if (_da.ExistsTituloAssociadoNaoEncerrado(titulo.Id)) { Validacao.Add(Mensagem.TituloAlterarSituacao.TituloPossuiAssociadoNaoEncerrado("suspenso")); } } break; #endregion #region Prorrogado case 6: if (tituloAux.Situacao.Id != 3 && tituloAux.Situacao.Id != 6) { Validacao.Add(Mensagem.TituloAlterarSituacao.SituacaoInvalida("Prorrogado", "Concluído ou Prorrogado")); } if (titulo.DiasProrrogados.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.TituloAlterarSituacao.DiasProrrogadosObrigatorio); } break; #endregion } AtivarCondicionantes(titulo); return(Validacao.EhValido); }
public ActionResult LaudoVistoriaFomentoFlorestal(EspecificidadeVME especificidade) { LaudoVistoriaFomentoFlorestalBus _busLaudo = new LaudoVistoriaFomentoFlorestalBus(); List <Protocolos> lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId); List <AtividadeSolicitada> lstAtividades = new List <AtividadeSolicitada>(); List <PessoaLst> destinatarios = new List <PessoaLst>(); Titulo titulo = new Titulo(); TituloModelo modelo = _tituloModeloBus.Obter(especificidade.ModeloId ?? 0); LaudoVistoriaFomentoFlorestal laudo = new LaudoVistoriaFomentoFlorestal(); LaudoVistoriaFomentoFlorestalVM vm = null; string htmlEspecificidade = string.Empty; if (especificidade.TituloId > 0) { titulo = _busTitulo.ObterSimplificado(especificidade.TituloId); titulo.Anexos = _busTitulo.ObterAnexos(especificidade.TituloId); titulo.Atividades = _busTitulo.ObterAtividades(especificidade.TituloId); titulo.Condicionantes = _busTitulo.ObterCondicionantes(especificidade.TituloId); laudo = _busLaudo.Obter(especificidade.TituloId) as LaudoVistoriaFomentoFlorestal; if (laudo != null) { especificidade.AtividadeProcDocReq = laudo.ProtocoloReq; laudo.Anexos = titulo.Anexos; } } if (especificidade.ProtocoloId > 0) { if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId)) { lstAtividades = new List <AtividadeSolicitada>(); titulo.Atividades = new List <Atividade>(); } else { lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo()); } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId); } else { destinatarios.Add(new PessoaLst() { Id = laudo.Destinatario, Texto = laudo.DestinatarioNomeRazao, IsAtivo = true }); } if (!especificidade.IsVisualizar) { _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId); } } if (!Validacao.EhValido) { return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet)); } vm = new LaudoVistoriaFomentoFlorestalVM( laudo, lstProcessosDocumentos, lstAtividades, destinatarios, _protocoloBus.ObterResponsaveisTecnicos(especificidade.ProtocoloId), _busLista.ObterEspecificidadeConclusoes, titulo.Condicionantes, especificidade.AtividadeProcDocReqKey, especificidade.IsVisualizar); if (especificidade.TituloId > 0) { vm.Atividades.Atividades = titulo.Atividades; } vm.IsCondicionantes = modelo.Regra(eRegra.Condicionantes) || (titulo.Condicionantes != null && titulo.Condicionantes.Count > 0); htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Laudo/LaudoVistoriaFomentoFlorestal.ascx", vm); return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Gerars the registro transacaoDBT627. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string GerarRegistroTransacaoDBT627(Titulo titulo) { var retorno = new StringBuilder(); retorno.Append("E"); retorno.Append(titulo.NumeroDocumento.Trim().FillLeft(25)); retorno.Append(titulo.Sacado.Agencia.Trim().ZeroFill(4)); retorno.Append(titulo.Sacado.Conta.Trim().ZeroFill(14)); retorno.Append(titulo.Vencimento.ToString("yyyyMMdd")); retorno.Append(titulo.ValorDocumento.ToDecimalString(15)); retorno.Append("03"); retorno.Append(titulo.Sacado.NomeSacado.RemoveCe().FillLeft(60)); retorno.Append("".FillRight(20)); retorno.Append("0"); return retorno.ToString().ToUpper(); }
/// <summary> /// Calculars the digito verificador. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> /// <exception cref="System.NotImplementedException">Esta função não esta implementada para este banco</exception> public override string CalcularDigitoVerificador(Titulo titulo) { Modulo.CalculoPadrao(); Modulo.MultiplicadorFinal = 7; Modulo.Documento = titulo.Carteira + titulo.NossoNumero; Modulo.Calcular(); if(Modulo.ModuloFinal == 1) return "P"; return Modulo.DigitoFinal.ToString(); }
/// <summary> /// Calculars the digito verificador. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string CalcularDigitoVerificador(Titulo titulo) { Modulo.CalculoPadrao(); Modulo.MultiplicadorFinal = 2; Modulo.MultiplicadorInicial = 9; Modulo.Documento = FormataNossoNumero(titulo); Modulo.Calcular(); return Modulo.ModuloFinal >= 10 ? "X" : Modulo.ModuloFinal.ToString(); }
/// <summary> /// Montar o campo nosso numero. /// </summary> /// <param name="titulo">Boleto</param> /// <returns>NossoNumero</returns> public override string MontarCampoNossoNumero(Titulo titulo) { return String.Format("{0}/{1}-{2}", titulo.Carteira, titulo.NossoNumero, CalcularDigitoVerificador(titulo)); }
/// <summary> /// Montars the campo nosso numero. /// </summary> /// <param name="titulo">The titulo.</param> /// <returns>System.String.</returns> public override string MontarCampoNossoNumero(Titulo titulo) { var aNossoNumero = FormataNossoNumero(titulo); var wTamConvenio = Banco.Parent.Cedente.Convenio.Trim().Length; var wTamNossoNum = CalcularTamMaximoNossoNumero(titulo.Carteira, titulo.NossoNumero.OnlyNumbers()); if (wTamConvenio == 7 || (wTamConvenio == 6 && wTamNossoNum == 17)) return aNossoNumero; return string.Format("{0}-{1}", aNossoNumero, CalcularDigitoVerificador(titulo)); }
/// <summary> /// Montar o codigo barras do boleto. /// </summary> /// <param name="titulo">Boleto.</param> /// <returns>Codigo de barras</returns> public override string MontarCodigoBarras(Titulo titulo) { var fatorVencimento = titulo.Vencimento.CalcularFatorVencimento(); var codigoBarras = string.Format("{0}9{1}{2}{3}{4}{5}{6}0", Numero, fatorVencimento, titulo.ValorDocumento.ToDecimalString(10), titulo.Parent.Cedente.Agencia.OnlyNumbers().FillRight(TamanhoAgencia,'0'), titulo.Carteira, titulo.NossoNumero, titulo.Parent.Cedente.Conta.Right(7).FillRight(7,'0')); var digitoCodBarras = CalcularDigitoCodigoBarras(codigoBarras); return codigoBarras.Insert(4, digitoCodBarras); }
/// <summary> /// Gerars the registro transacao400. /// </summary> /// <param name="titulo">The titulo.</param> /// <param name="aRemessa">A remessa.</param> public override void GerarRegistroTransacao400(Titulo titulo, List<string> aRemessa) { var wCarteira = titulo.Carteira.ToInt32(); string aNossoNumero; string aDigitoNossoNumero; if ((wCarteira == 11 || wCarteira == 31 || wCarteira == 51) || ((wCarteira == 12 || wCarteira == 15 || wCarteira == 17) && titulo.Parent.Cedente.ResponEmissao != ResponEmissao.CliEmite)) { aNossoNumero = "00000000000000000000"; aDigitoNossoNumero = string.Empty; } else { aNossoNumero = FormataNossoNumero(titulo); aDigitoNossoNumero = CalcularDigitoVerificador(titulo); } var tamConvenioMaior6 = titulo.Parent.Cedente.Convenio.Trim().Length > 6; var aAgencia = titulo.Parent.Cedente.Agencia.OnlyNumbers().ZeroFill(4); var aConta = titulo.Parent.Cedente.Conta.OnlyNumbers().ZeroFill(8); var aModalidade = titulo.Parent.Cedente.Modalidade.Trim().ZeroFill(3); //Pegando Código da Ocorrencia} string aTipoOcorrencia; switch(titulo.OcorrenciaOriginal.Tipo) { case TipoOcorrencia.RemessaBaixar: aTipoOcorrencia = "02"; //Pedido de Baixa break; case TipoOcorrencia.RemessaConcederAbatimento: aTipoOcorrencia = "04"; //Concessão de Abatimento break; case TipoOcorrencia.RemessaCancelarAbatimento: aTipoOcorrencia = "05"; //Cancelamento de Abatimento concedido} break; case TipoOcorrencia.RemessaAlterarVencimento: aTipoOcorrencia = "06"; //Alteração de vencimento break; case TipoOcorrencia.RemessaAlterarControleParticipante: aTipoOcorrencia = "07"; //Alteração do número de controle do participante break; case TipoOcorrencia.RemessaAlterarNumeroControle: aTipoOcorrencia = "08"; //Alteração de seu número break; case TipoOcorrencia.RemessaProtestar: aTipoOcorrencia = "09"; //Pedido de protesto break; case TipoOcorrencia.RemessaCancelarInstrucaoProtestoBaixa: aTipoOcorrencia = "10"; //Sustar protesto e baixar break; case TipoOcorrencia.RemessaCancelarInstrucaoProtesto: aTipoOcorrencia = "10"; //Sustar protesto e manter na carteira break; case TipoOcorrencia.RemessaDispensarJuros: aTipoOcorrencia = "11"; //Instrução para dispensar juros break; case TipoOcorrencia.RemessaAlterarNomeEnderecoSacado: aTipoOcorrencia = "12"; //Alteração de nome e endereço do Sacado break; case TipoOcorrencia.RemessaConcederDesconto: aTipoOcorrencia = "31"; //Conceder desconto break; case TipoOcorrencia.RemessaCancelarDesconto: aTipoOcorrencia = "32"; //Não conceder desconto break; case TipoOcorrencia.RemessaAlterarModalidade: aTipoOcorrencia = "40"; break; default: aTipoOcorrencia = "01"; //Remessa break; } //Pegando o Aceite do Titulo string aTipoAceite; switch (titulo.Aceite) { case AceiteTitulo.Sim: aTipoAceite = "A"; break; default: aTipoAceite = "N"; break; } //Pegando o tipo de EspecieDoc var aTipoEspecieDoc = string.Empty; if (titulo.EspecieDoc == "DM") aTipoEspecieDoc = "01"; else if (titulo.EspecieDoc == "RC") aTipoEspecieDoc = "05"; else if (titulo.EspecieDoc == "NP") aTipoEspecieDoc = "02"; else if (titulo.EspecieDoc == "NS") aTipoEspecieDoc = "03"; else if (titulo.EspecieDoc == "ND") aTipoEspecieDoc = "13"; else if (titulo.EspecieDoc == "DS") aTipoEspecieDoc = "12"; else if (titulo.EspecieDoc == "LC") aTipoEspecieDoc = "08"; //Pegando Tipo de Cobrança string aTipoCobranca; switch(titulo.Carteira.ToInt32()) { case 11: case 17: switch(titulo.Parent.Cedente.CaracTitulo) { case CaracTitulo.Simples: aTipoCobranca =" "; break; case CaracTitulo.Descontada: aTipoCobranca = "04DSC"; break; case CaracTitulo.Vendor: aTipoCobranca = "08VDR"; break; case CaracTitulo.Vinculada: aTipoCobranca = "02VIN"; break; default: aTipoCobranca =" "; break; } break; default: aTipoCobranca =" "; break; } var aInstrucao = string.Empty; var diasProtesto = " "; if (titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento) { switch((int)(titulo.DataProtesto.Value - titulo.Vencimento).TotalDays) { case 3: // Protestar no 3º dia util após vencimento if (string.IsNullOrEmpty(titulo.Instrucao1.Trim()) || titulo.Instrucao1 == "03") aInstrucao = string.Format("03{0}", titulo.Instrucao2.FillRight(2,'0')); break; case 4: // Protestar no 3º dia util após vencimento if (string.IsNullOrEmpty(titulo.Instrucao1.Trim()) || titulo.Instrucao1 == "04") aInstrucao = string.Format("04{0}", titulo.Instrucao2.FillRight(2,'0')); break; case 5: // Protestar no 3º dia util após vencimento if (string.IsNullOrEmpty(titulo.Instrucao1.Trim()) || titulo.Instrucao1 == "05") aInstrucao = string.Format("05{0}", titulo.Instrucao2.FillRight(2,'0')); break; default: // Protestar no 3º dia util após vencimento if (string.IsNullOrEmpty(titulo.Instrucao1.Trim()) || titulo.Instrucao1 == "06") aInstrucao = string.Format("06{0}", titulo.Instrucao2.FillRight(2,'0')); break; } } else { titulo.Instrucao1 = "07"; //Não Protestar aInstrucao = string.Format("{0}{1}", titulo.Instrucao1.Trim().FillRight(2,'0'), titulo.Instrucao2.Trim().FillRight(2,'0')); diasProtesto = " "; } var aDataDesconto = "000000"; if(titulo.ValorDesconto > 0) { if(titulo.DataDesconto > new DateTime(2000,01,01)) aDataDesconto = string.Format("{0:ddMMyy}", titulo.DataDesconto); else aDataDesconto = "777777"; } //Pegando Tipo de Sacado} string aTipoSacado; switch(titulo.Sacado.Pessoa) { case Pessoa.Fisica: aTipoSacado = "01"; break; case Pessoa.Juridica: aTipoSacado = "02"; break; default: aTipoSacado = "00"; break; } //Pegando Tipo de Cedente} var aTipoCendente = string.Empty; switch(titulo.Parent.Cedente.TipoInscricao) { case PessoaCedente.Fisica: aTipoCendente = "01"; break; case PessoaCedente.Juridica: aTipoCendente = "02"; break; } var aMensagem = string.Empty; if(titulo.Mensagem.Count > 0) aMensagem = titulo.Mensagem[0]; var wLinha = new StringBuilder(); if(tamConvenioMaior6) wLinha.Append('7'); // ID Registro else wLinha.Append('1'); // ID Registro wLinha.Append(aTipoCendente); // Tipo de inscrição da empresa 01-CPF / 02-CNPJ wLinha.Append(titulo.Parent.Cedente.CNPJCPF.OnlyNumbers().ZeroFill(14)); //Inscrição da empresa wLinha.Append(aAgencia); // Prefixo da agencia wLinha.Append(titulo.Parent.Cedente.AgenciaDigito.FillLeft(1)); // DV-prefixo da agencia wLinha.Append(aConta); // Código do cendete/nr. conta corrente da empresa wLinha.Append(titulo.Parent.Cedente.ContaDigito.FillLeft(1)); // DV-código do cedente if(tamConvenioMaior6) wLinha.Append(titulo.Parent.Cedente.Convenio.Trim().FillRight(7)); // Número do convenio else wLinha.Append(titulo.Parent.Cedente.Convenio.Trim().FillRight(6)); // Número do convenio wLinha.Append(titulo.SeuNumero.FillLeft(25)); // Numero de Controle do Participante if(tamConvenioMaior6) wLinha.Append(aNossoNumero.ZeroFill(17)); // Nosso numero else wLinha.Append(aNossoNumero.FillRight(11) + aDigitoNossoNumero); wLinha.AppendFormat("0000{0}{1}", "".FillRight(7), aModalidade); // Zeros + Brancos + Prefixo do titulo + Variação da carteira if(tamConvenioMaior6) wLinha.Append("".ZeroFill(7)); // Zero + Zeros + Zero + Zeros else wLinha.Append("".ZeroFill(13)); wLinha.Append(aTipoCobranca); // Tipo de cobrança - 11, 17 (04DSC, 08VDR, 02VIN, BRANCOS) 12,31,51 (BRANCOS) wLinha.Append(titulo.Carteira); // Carteira wLinha.Append(aTipoOcorrencia); // Ocorrência "Comando" wLinha.Append(titulo.NumeroDocumento.FillLeft(10)); // Seu Numero - Nr. titulo dado pelo cedente wLinha.AppendFormat("{0:ddMMyy}", titulo.Vencimento); // Data de vencimento wLinha.Append(titulo.ValorDocumento.ToDecimalString()); // Valor do titulo wLinha.Append("0010000 "); // Numero do Banco - 001 + Prefixo da agencia cobradora + DV-pref. agencia cobradora wLinha.Append(aTipoEspecieDoc.FillRight(2, '0') + aTipoAceite); // Especie de titulo + Aceite wLinha.AppendFormat("{0:ddMMyy}", titulo.DataDocumento); // Data de Emissão wLinha.Append(aInstrucao); // 1ª e 2ª instrução codificada wLinha.Append(titulo.ValorMoraJuros.ToDecimalString()); // Juros de mora por dia wLinha.Append(aDataDesconto); // Data limite para concessao de desconto wLinha.Append(titulo.ValorDesconto.ToDecimalString()); // Valor do desconto wLinha.Append(titulo.ValorIOF.ToDecimalString()); // Valor do IOF wLinha.Append(titulo.ValorAbatimento.ToDecimalString()); // Valor do abatimento permitido wLinha.Append(aTipoSacado); wLinha.Append(titulo.Sacado.CNPJCPF.OnlyNumbers().FillRight(14,'0')); // Tipo de inscricao do sacado + CNPJ ou CPF do sacado wLinha.Append(titulo.Sacado.NomeSacado.FillLeft(37) + " "); // Nome do sacado + Brancos wLinha.Append(string.Format("{0}, {1} {2}", titulo.Sacado.Logradouro.Trim(), titulo.Sacado.Numero.Trim(), titulo.Sacado.Bairro.Trim()) .FillLeft(52)); // Endereço do sacado wLinha.Append(titulo.Sacado.CEP.OnlyNumbers().FillRight(8)); // CEP do endereço do sacado wLinha.Append(titulo.Sacado.Cidade.Trim().FillLeft(15)); // Cidade do sacado wLinha.Append(titulo.Sacado.UF.FillLeft(2)); // UF da cidade do sacado wLinha.Append(aMensagem.FillLeft(40)); // Observações wLinha.Append(diasProtesto.FillRight(2,'0') + ' '); // Número de dias para protesto + Branco wLinha.AppendFormat("{0:000000}", aRemessa.Count + 1); wLinha.Append(Environment.NewLine); wLinha.Append('5'); //Tipo Registro wLinha.Append("99"); //Tipo de Serviço (Cobrança de Multa) wLinha.Append(titulo.PercentualMulta > 0 ? '2' : '9'); //Cod. Multa 2- Percentual 9-Sem Multa wLinha.Append(titulo.PercentualMulta > 0 ? string.Format("{0:ddMMyy}", titulo.DataMoraJuros) : "000000"); //Data Multa wLinha.Append(titulo.PercentualMulta.ToDecimalString(12)); //Perc. Multa wLinha.Append("".FillRight(372)); //Brancos wLinha.AppendFormat("{0:000000}", aRemessa.Count + 2); aRemessa.Add(wLinha.ToString().ToUpper()); }
/// <summary> /// Montar a linha digitavel do boleto. /// </summary> /// <param name="codigoBarras">Codigo de barras.</param> /// <param name="titulo">Boleto.</param> /// <returns>Linha digitavel</returns> public override string MontarLinhaDigitavel(string codigoBarras, Titulo titulo) { Modulo.FormulaDigito = CalcDigFormula.Modulo10; Modulo.MultiplicadorInicial = 1; Modulo.MultiplicadorFinal = 2; Modulo.MultiplicadorAtual = 2; //Campo 1(Código Banco,Tipo de Moeda,5 primeiro digitos do Campo Livre) Modulo.Documento = string.Format("{0}9{1}", codigoBarras.Substring(1, 3), codigoBarras.Substring(19, 5)); Modulo.Calcular(); var campo1 = string.Format("{0}.{1}{2}", Modulo.Documento.Substring(0, 5), Modulo.Documento.Substring(5, 4), Modulo.DigitoFinal); //Campo 2(6ª a 15ª posições do campo Livre) Modulo.Documento = codigoBarras.Substring(24, 10); Modulo.Calcular(); var campo2 = string.Format("{0}.{1}{2}", Modulo.Documento.Substring(0, 5), Modulo.Documento.Substring(5, 5), Modulo.DigitoFinal); //Campo 3 (16ª a 25ª posições do campo Livre) Modulo.Documento = codigoBarras.Substring(34, 10); Modulo.Calcular(); var campo3 = string.Format("{0}.{1}{2}", Modulo.Documento.Substring(0, 5), Modulo.Documento.Substring(5, 5), Modulo.DigitoFinal); //Campo 4 (Digito Verificador Nosso Numero) var campo4 = codigoBarras.Substring(4, 1); //Campo 5 (Fator de Vencimento e Valor do Documento) var campo5 = codigoBarras.Substring(5, 14); return string.Format("{0} {1} {2} {3} {4}", campo1, campo2, campo3, campo4, campo5); }
public async Task <Response> PutTitulo([FromRoute] int id, [FromBody] Titulo Titulo) { try { if (!ModelState.IsValid) { return(new Response { IsSuccess = false, Message = Mensaje.ModeloInvalido }); } var existe = await db.Titulo .Where(w => w.IdEstudio == Titulo.IdEstudio && w.IdAreaConocimiento == Titulo.IdAreaConocimiento && w.Nombre == Titulo.Nombre ).FirstOrDefaultAsync(); if (existe != null && existe.IdTitulo != Titulo.IdTitulo) { return(new Response { IsSuccess = false, Message = "Existe una brigada de salud y seguridad ocupacional con igual rol", }); } var TituloActualizar = await db.Titulo.Where(x => x.IdTitulo == id).FirstOrDefaultAsync(); if (TituloActualizar != null) { try { TituloActualizar.Nombre = Titulo.Nombre.ToString().ToUpper(); TituloActualizar.IdAreaConocimiento = Titulo.IdAreaConocimiento; TituloActualizar.IdEstudio = Titulo.IdEstudio; db.Titulo.Update(TituloActualizar); await db.SaveChangesAsync(); return(new Response { IsSuccess = true, Message = Mensaje.Satisfactorio, }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = Mensaje.Error, }); } } return(new Response { IsSuccess = false, Message = "Existe una brigada de salud y seguridad ocupacional con igual rol", }); } catch (Exception) { return(new Response { IsSuccess = false, Message = Mensaje.Excepcion }); } }
/// <summary> /// Gerars the registro transacao400. /// </summary> /// <param name="titulo">The titulo.</param> /// <param name="aRemessa">A remessa.</param> public override void GerarRegistroTransacao400(Titulo titulo, List<string> aRemessa) { string aCarteira = string.Empty; string aAgencia = string.Empty; string aConta = string.Empty; string digitoNossoNumero = string.Empty; var doMontaInstrucoes = new Func<string>(() => { var result = new StringBuilder(); result.Append(""); //Primeira instrução vai no registro 1 if (titulo.Mensagem.Count <= 1) return string.Empty; result.Append(Environment.NewLine); result.Append('2'); // IDENTIFICAÇÃO DO LAYOUT PARA O REGISTRO result.Append(titulo.Mensagem[1].FillLeft(80)); // CONTEÚDO DA 1ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO if (titulo.Mensagem.Count == 3) result.Append(titulo.Mensagem[2].FillLeft(80)); // CONTEÚDO DA 2ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO else result.Append("".FillLeft(80)); // CONTEÚDO DO RESTANTE DAS LINHAS if (titulo.Mensagem.Count == 4) result.Append(titulo.Mensagem[3].FillLeft(80)); // CONTEÚDO DA 3ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO else result.Append("".FillLeft(80)); // CONTEÚDO DO RESTANTE DAS LINHAS if (titulo.Mensagem.Count == 5) result.Append(titulo.Mensagem[4].FillLeft(80)); // CONTEÚDO DA 4ª LINHA DE IMPRESSÃO DA ÁREA "INSTRUÇÕES” DO BOLETO else result.Append("".FillLeft(80)); // CONTEÚDO DO RESTANTE DAS LINHAS result.Append("".FillRight(45)); // COMPLEMENTO DO REGISTRO result.Append(aCarteira); result.Append(aAgencia); result.Append(aConta); result.Append(titulo.Parent.Cedente.ContaDigito); result.Append(titulo.NossoNumero); result.Append(digitoNossoNumero); result.AppendFormat("{0:000000}", aRemessa.Count + 2); return result.ToString(); }); digitoNossoNumero = CalcularDigitoVerificador(titulo); aAgencia = titulo.Parent.Cedente.Agencia.OnlyNumbers().ZeroFill(5); aConta = titulo.Parent.Cedente.Conta.OnlyNumbers().ZeroFill(7); aCarteira = titulo.Carteira.Trim().ZeroFill(3); //Pegando Código da Ocorrencia string ocorrencia; switch (titulo.OcorrenciaOriginal.Tipo) { case TipoOcorrencia.RemessaBaixar: ocorrencia = "02"; //Pedido de Baixa break; case TipoOcorrencia.RemessaConcederAbatimento: ocorrencia = "04"; //Concessão de Abatimento break; case TipoOcorrencia.RemessaCancelarAbatimento: ocorrencia = "05"; //Cancelamento de Abatimento concedido break; case TipoOcorrencia.RemessaAlterarVencimento: ocorrencia = "06"; //Alteração de vencimento break; case TipoOcorrencia.RemessaAlterarNumeroControle: ocorrencia = "08"; //Alteração de seu número break; case TipoOcorrencia.RemessaProtestar: ocorrencia = "09"; //Pedido de protesto break; case TipoOcorrencia.RemessaCancelarInstrucaoProtestoBaixa: ocorrencia = "18"; //Sustar protesto e baixar break; case TipoOcorrencia.RemessaCancelarInstrucaoProtesto: ocorrencia = "19"; //Sustar protesto e manter na carteira break; case TipoOcorrencia.RemessaOutrasOcorrencias: ocorrencia = "31"; //Alteração de Outros Dados break; default: ocorrencia = "01"; //Remessa break; } //Pegando Tipo de Boleto string tipoBoleto; switch (titulo.Parent.Cedente.ResponEmissao) { case ResponEmissao.CliEmite: tipoBoleto = "2"; break; default: tipoBoleto = "1"; if (string.IsNullOrEmpty(titulo.NossoNumero)) digitoNossoNumero = "0"; break; } string aEspecie; switch (titulo.EspecieDoc.Trim()) { case "DM": aEspecie = "01"; break; case "NP": aEspecie = "02"; break; case "NS": aEspecie = "03"; break; case "CS": aEspecie = "04"; break; case "ND": aEspecie = "11"; break; case "DS": aEspecie = "12"; break; case "OU": aEspecie = "99"; break; default: aEspecie = titulo.EspecieDoc; break; } //Pegando campo Intruções string protesto; if (titulo.DataProtesto.HasValue && titulo.DataProtesto > titulo.Vencimento) protesto = "06" + (titulo.DataProtesto.Value - titulo.Vencimento).TotalDays.ToString().ZeroFill(2); else if (ocorrencia == "31") protesto = "9999"; else protesto = titulo.Instrucao1.Trim().FillRight(2, '0') + titulo.Instrucao2.Trim().FillRight(2, '0'); //Pegando Tipo de Sacado string tipoSacado; switch (titulo.Sacado.Pessoa) { case Pessoa.Fisica: tipoSacado = "01"; break; case Pessoa.Juridica: tipoSacado = "02"; break; default: tipoSacado = "99"; break; } string mensagemCedente; if (titulo.Mensagem.Count > 0) mensagemCedente = titulo.Mensagem[0]; else mensagemCedente = string.Empty; var wLinha = new StringBuilder(); wLinha.Append('1'); // ID Registro wLinha.Append("".ZeroFill(19)); // Dados p/ Débito Automático wLinha.Append('0' + aCarteira); wLinha.Append(aAgencia); wLinha.Append(aConta); wLinha.Append(titulo.Parent.Cedente.ContaDigito); wLinha.Append(titulo.SeuNumero.FillLeft(25) + "000"); // Numero de Controle do Participante wLinha.Append(titulo.PercentualMulta > 0 ? '2' : '0'); // Indica se exite Multa ou não wLinha.Append(titulo.PercentualMulta.ToDecimalString(4)); // Percentual de Multa formatado com 2 casas decimais wLinha.Append(titulo.NossoNumero + digitoNossoNumero); wLinha.Append(titulo.ValorDescontoAntDia.ToDecimalString(10)); wLinha.AppendFormat("{0} {1}", tipoBoleto, "".FillRight(10)); // Tipo Boleto(Quem emite) + Identificação se emite boleto para débito automático. wLinha.AppendFormat(" 2 {0}", ocorrencia); // Ind. Rateio de Credito + Aviso de Debito Aut.: 2=Não emite aviso + Ocorrência wLinha.Append(titulo.NumeroDocumento.FillLeft(10)); wLinha.AppendFormat("{0:ddMMyy}", titulo.Vencimento); wLinha.Append(titulo.ValorDocumento.ToDecimalString()); wLinha.AppendFormat("{0}{1}N", "".ZeroFill(8), aEspecie.FillLeft(2)); // Zeros + Especie do documento + Idntificação(valor fixo N) wLinha.AppendFormat("{0:ddMMyy}", titulo.DataDocumento); // Data de Emissão wLinha.Append(protesto); wLinha.Append(titulo.ValorMoraJuros.ToDecimalString()); wLinha.Append(titulo.DataDesconto.HasValue && titulo.DataDesconto < new DateTime(2000, 01, 01) ? "000000" : string.Format("{0:ddMMyy}", titulo.DataDesconto.Value)); wLinha.Append(titulo.ValorDesconto.ToDecimalString()); wLinha.Append(titulo.ValorIOF.ToDecimalString()); wLinha.Append(titulo.ValorAbatimento.ToDecimalString()); wLinha.Append(tipoSacado + titulo.Sacado.CNPJCPF.OnlyNumbers().FillRight(14, '0')); wLinha.Append(titulo.Sacado.NomeSacado.FillLeft(40)); wLinha.Append((titulo.Sacado.Logradouro + ' ' + titulo.Sacado.Numero + ' ' + titulo.Sacado.Bairro + ' ' + titulo.Sacado.Cidade + ' ' + titulo.Sacado.UF).FillLeft(40)); wLinha.Append("".FillRight(12) + titulo.Sacado.CEP.FillLeft(8)); wLinha.Append(mensagemCedente.FillLeft(60)); wLinha.AppendFormat("{0:000000}", aRemessa.Count + 1); // Nº SEQÜENCIAL DO REGISTRO NO ARQUIVO wLinha.Append(doMontaInstrucoes()); aRemessa.Add(wLinha.ToString().ToUpper()); }
public override int GetHashCode() { return((GetType().GetHashCode() * 900) + Titulo.GetHashCode()); }
public void Salvar(Titulo titulo) { try { titulo.Autor = new Funcionario() { Id = User.FuncionarioId }; if (titulo.Id <= 0) { titulo.Situacao.Id = (int)eTituloSituacao.Cadastrado; titulo.DataCriacao.Data = DateTime.Now; } if (titulo.Modelo.Regra(eRegra.NumeracaoAutomatica)) { titulo.Numero.Inteiro = null; titulo.Numero.Ano = null; } //Carrega o Modelo e suas regras do modelo titulo.Modelo = _busModelo.Obter(titulo.Modelo.Id); if (titulo.Condicionantes != null && titulo.Condicionantes.Count > 0) { foreach (var cond in titulo.Condicionantes) { if (!cond.PossuiPrazo || !cond.PossuiPeriodicidade) { if (cond.Periodicidades != null) { cond.Periodicidades.Clear(); } continue; } TituloCondicionantePeriodicidade periodicidade = new TituloCondicionantePeriodicidade(); periodicidade.Situacao.Id = 1; } } IEspecificidadeBus busEsp = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.GetValueOrDefault()); string jsonEsp = (titulo.Especificidade != null) ? titulo.Especificidade.Json : null; titulo.Especificidade = (Especificidade)busEsp.Deserialize(jsonEsp); titulo.Especificidade = titulo.ToEspecificidade(); //Delega a validação de especificidade _validar.ValidarEspecificidade = () => { busEsp.Validar.Salvar(titulo.Especificidade); }; if (_validar.Salvar(titulo)) { #region Arquivos/Diretorio ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); if (!titulo.Modelo.Regra(eRegra.PdfGeradoSistema) && titulo.ArquivoPdf.Id == 0) { titulo.ArquivoPdf = _busArquivo.Copiar(titulo.ArquivoPdf); } if (titulo.Anexos != null && titulo.Anexos.Count > 0) { foreach (Anexo anexo in titulo.Anexos) { if (anexo.Arquivo.Id == 0) { anexo.Arquivo = _busArquivo.Copiar(anexo.Arquivo); } } } #endregion using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { GerenciadorTransacao.ObterIDAtual(); bancoDeDados.IniciarTransacao(); #region Arquivos/Banco ArquivoDa arquivoDa = new ArquivoDa(); if (!titulo.Modelo.Regra(eRegra.PdfGeradoSistema)) { arquivoDa.Salvar(titulo.ArquivoPdf, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } if (titulo.Anexos != null && titulo.Anexos.Count > 0) { foreach (Anexo anexo in titulo.Anexos) { if (anexo.Arquivo.Id == 0) { arquivoDa.Salvar(anexo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } } } #endregion _da.Salvar(titulo, bancoDeDados); //Atualiza os Ids em Especificidade titulo.Especificidade = titulo.ToEspecificidade(); busEsp.Salvar(titulo.Especificidade, bancoDeDados); //Trata quando o catch do busEsp.Salvar silencia o erro. if (!Validacao.EhValido) { return; } bancoDeDados.Commit(); } Validacao.Add(Mensagem.Titulo.Salvar); if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo)) { Validacao.Add(Mensagem.Retificacao.msgInst4()); } } } catch (Exception exc) { Validacao.AddErro(exc); } }
public Assunto(Titulo titulo, string resumo) { Titulo = titulo; Resumo = resumo; Posicao = Andamento.Intocado; }
public Arquivo GerarPdf(int id) { Titulo titulo = _da.ObterSimplificado(id); titulo.Modelo = ObterModelo(titulo.Modelo.Id); titulo.Anexos = _da.ObterAnexos(id); if (titulo.Modelo.Regra(eRegra.PdfGeradoSistema) && (titulo.Modelo.Arquivo.Id ?? 0) <= 0) { Validacao.Add(Mensagem.Titulo.ModeloNaoPossuiPdf); return(null); } if (titulo.ArquivoPdf.Id > 0) { ArquivoBus busArquivo = new ArquivoBus(eExecutorTipo.Interno); titulo.ArquivoPdf = busArquivo.Obter(titulo.ArquivoPdf.Id.Value); string auxiliar = string.Empty; switch (titulo.Situacao.Id) { case (int)eTituloSituacao.Encerrado: auxiliar = _busLista.MotivosEncerramento.Single(x => x.Id == titulo.MotivoEncerramentoId).Texto; titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaVermelha(titulo.ArquivoPdf.Buffer, auxiliar); break; case (int)eTituloSituacao.Prorrogado: auxiliar = String.Format("{0} até {1}", titulo.Situacao.Nome, titulo.DataVencimento.DataTexto); titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaVerde(titulo.ArquivoPdf.Buffer, auxiliar); break; case (int)eTituloSituacao.Suspenso: titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaLaranjaEscuro(titulo.ArquivoPdf.Buffer, "Consultado em " + DateTime.Now.ToShortDateString() + " às " + DateTime.Now.ToString(@"HH\hmm\min"), "Suspenso"); break; case (int)eTituloSituacao.SuspensoDeclaratorio: titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaLaranjaEscuro(titulo.ArquivoPdf.Buffer, "Consultado em " + DateTime.Now.ToShortDateString() + " às " + DateTime.Now.ToString(@"HH\hmm\min"), "Suspenso"); break; case (int)eTituloSituacao.EncerradoDeclaratorio: titulo.ArquivoPdf.Buffer = Tecnomapas.Blocos.Etx.ModuloRelatorio.ITextSharpEtx.PdfMetodosAuxiliares.TarjaVermelha(titulo.ArquivoPdf.Buffer, "Consultado em " + DateTime.Now.ToShortDateString() + " às " + DateTime.Now.ToString(@"HH\hmm\min"), "Encerrado"); break; default: break; } titulo.ArquivoPdf.Nome = String.Concat(titulo.Modelo.Nome, ""); return(titulo.ArquivoPdf); } if ((titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal || titulo.Modelo.Codigo == (int)eTituloModeloCodigo.AutorizacaoExploracaoFlorestal) && !titulo.Anexos.Exists(x => x.Croqui == true)) { this.AnexarCroqui(titulo); if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.LaudoVistoriaFlorestal) { titulo.Anexos = _da.ObterAnexos(id); if (!titulo.Anexos.Exists(x => x.Croqui == true)) { Validacao.Add(Mensagem.Titulo.CroquiNaoGerado); return(null); } } else { Validacao.Add(Mensagem.Titulo.CroquiNaoGerado); return(null); } } titulo.ArquivoPdf.Nome = String.Concat(titulo.Modelo.Nome, ""); titulo.ArquivoPdf.Extensao = ""; titulo.ArquivoPdf.ContentType = "application/pdf"; titulo.ArquivoPdf.Buffer = GerarPdf(titulo); return(titulo.ArquivoPdf); }
public ActionResult CertificadoCadastroProdutoAgrotoxico(EspecificidadeVME especificidade) { CertificadoCadastroProdutoAgrotoxicoBus bus = new CertificadoCadastroProdutoAgrotoxicoBus(); List <Protocolos> lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId); List <AtividadeSolicitada> lstAtividades = new List <AtividadeSolicitada>(); List <PessoaLst> destinatarios = new List <PessoaLst>(); List <Lista> unidadesProducoes = new List <Lista>(); Titulo titulo = new Titulo(); CertificadoCadastroProdutoAgrotoxico termo = new CertificadoCadastroProdutoAgrotoxico(); int atividadeSelecionada = 0; if (especificidade.TituloId > 0) { titulo = _busTitulo.Obter(especificidade.TituloId); titulo.Atividades = _busTitulo.ObterAtividades(especificidade.TituloId); titulo.Condicionantes = _busTitulo.ObterCondicionantes(especificidade.TituloId); titulo.Anexos = _busTitulo.ObterAnexos(especificidade.TituloId); if (titulo.Atividades.Count > 0) { atividadeSelecionada = titulo.Atividades[0].Id; } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { termo = bus.Obter(especificidade.TituloId) as CertificadoCadastroProdutoAgrotoxico; } else { termo = bus.ObterHistorico(especificidade.TituloId, titulo.Situacao.Id) as CertificadoCadastroProdutoAgrotoxico; } especificidade.AtividadeProcDocReq = _busTitulo.ObterProcDocReqEspecificidade(especificidade.TituloId); } if (especificidade.ProtocoloId > 0) { if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId)) { lstAtividades = new List <AtividadeSolicitada>(); titulo.Atividades = new List <Atividade>(); } else { lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo()); } if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) { destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId); } else { destinatarios.Add(new PessoaLst() { Id = termo.DestinatarioId, Texto = termo.DestinatarioNomeRazao, IsAtivo = true }); } if (!especificidade.IsVisualizar) { _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId); } } if (!Validacao.EhValido) { return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet)); } CertificadoCadastroProdutoAgrotoxicoVM vm = new CertificadoCadastroProdutoAgrotoxicoVM( lstProcessosDocumentos, lstAtividades, destinatarios, termo, especificidade.AtividadeProcDocReqKey, especificidade.IsVisualizar, atividadeSelecionada); if (especificidade.TituloId > 0) { vm.Atividades.Atividades = titulo.Atividades; } string htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Certificado/CertificadoCadastroProdutoAgrotoxico.ascx", vm); return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet)); }
public MemoryStream GerarPdf(Titulo titulo, BancoDeDados banco = null) { if ((titulo.Modelo.Arquivo.Id ?? 0) <= 0) { return(null); } ArquivoBus busArquivo = new ArquivoBus(eExecutorTipo.Interno); Arquivo templatePdf = busArquivo.Obter(titulo.Modelo.Arquivo.Id.Value); //Carrega as atividades para o ObterDadosPdf; if (titulo.Atividades == null || titulo.Atividades.Count == 0) { titulo.Atividades = _da.ObterAtividades(titulo.Id); } IEspecificidadeBus busEspecificiade = EspecificiadadeBusFactory.Criar(titulo.Modelo.Codigo.Value); titulo.Especificidade = busEspecificiade.Obter(titulo.Id) as Especificidade; titulo.ToEspecificidade(); IConfiguradorPdf configurador = busEspecificiade.ObterConfiguradorPdf(titulo.Especificidade) ?? new ConfiguracaoDefault(); configurador.ExibirSimplesConferencia = (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado) || (titulo.Situacao.Id == (int)eTituloSituacao.EmCadastro) || (titulo.Situacao.Id == (int)eTituloSituacao.AguardandoPagamento); Object dataSource = busEspecificiade.ObterDadosPdf(titulo.Especificidade, banco); #region Condicionantes var dataSourceTitulo = (((dynamic)dataSource).Titulo as DataSourceBase); if (titulo.Modelo.Regra(eRegra.Condicionantes)) { if (dataSourceTitulo.Condicionantes == null || dataSourceTitulo.Condicionantes.Count == 0) { EspecificidadeDa daEsp = new EspecificidadeDa(); dataSourceTitulo.Condicionantes = daEsp.ObterCondicionantes(titulo.Id); } } IConfiguracaoEvent cnfEvent = configurador as IConfiguracaoEvent; if (cnfEvent != null) { if (!titulo.Modelo.Regra(eRegra.Condicionantes) || dataSourceTitulo.Condicionantes == null || dataSourceTitulo.Condicionantes.Count == 0) { cnfEvent.AddLoadAcao((doc, dataSourceCnf) => { Table tabela = doc.FindTable("«TableStart:Titulo.Condicionantes»"); if (tabela != null) { if (configurador.CondicionanteRemovePageBreakAnterior) { tabela.RemovePageBreakAnterior(); } AsposeExtensoes.RemoveTables(new List <Table>() { tabela }); } }); } else { cnfEvent.AddExecutedAcao((doc, dataSourceCnf) => { Table tabela = doc.LastTable("«remover»"); while (tabela != null) { AsposeExtensoes.RemoveTables(new List <Table> { tabela }); tabela = doc.LastTable("«remover»"); } }); } } #endregion GeradorAspose gerador = new GeradorAspose(configurador); #region Assinantes List <TituloAssinante> assinantes = _da.ObterAssinantes(titulo.Id); if (busEspecificiade.CargosOrdenar != null && busEspecificiade.CargosOrdenar.Count > 0) { assinantes = assinantes.OrderByDescending(assinante => busEspecificiade.CargosOrdenar.IndexOf((eCargo)assinante.FuncionarioCargoCodigo)).ToList(); } configurador.Assinantes = assinantes.Select(x => (IAssinante) new AssinanteDefault() { Nome = x.FuncionarioNome, Cargo = x.FuncionarioCargoNome } ).ToList(); //Adiciona os assinantes da Especificidade configurador.Assinantes.AddRange((((dynamic)dataSource).Titulo as IAssinanteDataSource).AssinanteSource); #endregion MemoryStream msPdf = gerador.Pdf(templatePdf, dataSource); if (dataSource is Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf) { Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf dataAnexos = dataSource as Tecnomapas.Blocos.Entities.Etx.ModuloRelatorio.IAnexoPdf; msPdf = GeradorAspose.AnexarPdf(msPdf, dataAnexos.AnexosPdfs); } return(msPdf); }