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();
        }
    }
示例#2
0
        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);
        }
示例#3
0
        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));
        }
示例#4
0
        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);
        }
示例#6
0
        /// <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());

        }
示例#7
0
 /// <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);
 }
示例#8
0
        /// <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();
		}
示例#9
0
        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);
        }
示例#10
0
 /// <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);
 }
示例#11
0
 /// <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);
 }
示例#12
0
        /// <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();
        }
示例#13
0
        /// <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();
        }
示例#14
0
        /// <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);
        }
示例#15
0
        /// <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()); 
        }
示例#16
0
 /// <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));
 }
示例#17
0
 /// <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));
 }
示例#18
0
		/// <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);
            }
        }
示例#20
0
 /// <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);
 }
示例#21
0
 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));
        }
示例#23
0
        /// <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;
        }
示例#24
0
 /// <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);
 }
示例#25
0
        /// <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);
        }
示例#26
0
            public int CompareTo(object obj)
            {
                Filme outro = obj as Filme;

                return(Titulo.CompareTo(outro.Titulo));
            }
示例#27
0
        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
        }
示例#28
0
 /// <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);
 }
示例#29
0
        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));
        }
示例#30
0
 public void Novo(Titulo titulo)
 {
     bancoDadosService.Input(1, @$ "{titulo.Codigo};{titulo.Descricao};{titulo.Tipo};false;" + Environment.NewLine);
 }
示例#31
0
        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();
        }
示例#32
0
        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);
            }
        }
示例#35
0
        /// <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);
        }
示例#37
0
        /// <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);
        }
示例#38
0
        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);
            }
        }
示例#39
0
        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));
        }
示例#40
0
        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));
        }
示例#42
0
        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);
        }
示例#44
0
        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));
        }
示例#45
0
        /// <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();
        }
示例#46
0
        /// <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();
        }
示例#47
0
        /// <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();
		}
示例#48
0
 /// <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));
 }
示例#49
0
        /// <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));
        }
示例#50
0
 /// <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);
 }
示例#51
0
        /// <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());
        }
示例#52
0
        /// <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);
        }
示例#53
0
        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
                });
            }
        }
示例#54
0
        /// <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());
        }
示例#55
0
 public override int GetHashCode()
 {
     return((GetType().GetHashCode() * 900) + Titulo.GetHashCode());
 }
示例#56
0
        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);
            }
        }
示例#57
0
 public Assunto(Titulo titulo, string resumo)
 {
     Titulo  = titulo;
     Resumo  = resumo;
     Posicao = Andamento.Intocado;
 }
示例#58
0
        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);
        }
示例#59
0
        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));
        }
示例#60
0
        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);
        }