/// <summary>
        /// Pesquisa notas fiscais de saída
        /// </summary>
        /// <param name="codigoCliente">Código do Cliente</param>
        /// <param name="codigoMotorista">Código Motorista</param>
        /// <param name="codPlaca">Placa</param>
        /// <param name="tipoAtendimento">Tipo de Atendimento</param>
        /// <param name="codUsuarioLogado">Código Usuário Logado</param>
        /// <returns>listaNotas</returns>
        public List <E140NFVModel> PesquisarNotasFiscaisSaida(int codigoCliente, int codigoMotorista, string codPlaca, Enums.TipoAtendimento tipoAtendimento, long codUsuarioLogado)
        {
            try
            {
                long qtdeDiasDev, qtdeDiasTroca = 0;
                using (Context contexto = new Context())
                {
                    // Prazo padrão
                    var padrao = contexto.N0204PPU.Where(c => !c.CODUSU.HasValue).FirstOrDefault();
                    if (padrao != null)
                    {
                        qtdeDiasDev   = padrao.QTDDEV;
                        qtdeDiasTroca = padrao.QTDTRC;
                    }
                    else
                    {
                        qtdeDiasDev   = 90;
                        qtdeDiasTroca = 180;
                    }

                    var exclusivo = contexto.N0204PPU.Where(c => c.CODUSU == codUsuarioLogado).FirstOrDefault();
                    if (exclusivo != null)
                    {
                        qtdeDiasDev   = exclusivo.QTDDEV;
                        qtdeDiasTroca = exclusivo.QTDTRC;
                    }
                }

                var data = DateTime.Now.ToShortDateString();
                if (tipoAtendimento == Enums.TipoAtendimento.DevolucaoMercadorias)
                {
                    data = DateTime.Now.AddDays(-qtdeDiasDev).ToShortDateString();
                }
                else
                {
                    data = DateTime.Now.AddDays(-qtdeDiasTroca).ToShortDateString();
                }

                string sql = "Select A.CodEmp as CodigoEmpresa,                                " +
                             "       A.CodFil as CodigoFilial,                                 " +
                             "       A.CodSnf as SerieNota,                                    " +
                             "       A.NumNfv as NumeroNota,                                   " +
                             "       A.DatEmi as DataEmissao,                                  " +
                             "       TO_CHAR(A.VlrLiq, '999999990D99') as ValorLiquido,        " +
                             "       'Fechada'as SituacaoNota,                                 " +
                             "       A.TipNfs as TipoNota,                                     " +
                             "       A.CodCli as CodigoCliente,                                " +
                             "       C.NOMCLI as NomeCliente,                                  " +
                             "       A.TnsPro as TipoTransacao,                                " +
                             "       B.DesTns as DescricaoTipoTransacao,                       " +
                             "       A.CodTra as CodigoTransportadora,                         " +
                             "       ' '      as IndicativoConferencia,                        " +
                             " round((to_date(current_date) - A.DatEmi)) as DiasFaturamento    " +
                             "  From SAPIENS.E140NFV A, SAPIENS.E001TNS B, SAPIENS.E085CLI C   " +
                             " Where A.CodEmp = B.CodEmp                                       " +
                             "   And A.TnsPro = B.CodTns                                       " +
                             "   And A.SitNfv = 2                                              " +
                             "   And A.CodTra = 1                                              " +
                             "   And A.DatEmi >= " + "'" + data + "'" +
                             "   And A.CodMtr = " + codigoMotorista +
                             "   And A.CodCli = " + codigoCliente +
                             "   And A.PLAVEI = " + "'" + codPlaca + "'" +
                             "   And A.CODFIL <> 101                                           " +
                             "   and A.CodCli = C.codCli order by A.DatEmi desc";


                // Transportadora
                if (codigoMotorista == 0)
                {
                    sql = "Select A.CodEmp as CodigoEmpresa,                                " +
                          "       A.CodFil as CodigoFilial,                                 " +
                          "       A.CodSnf as SerieNota,                                    " +
                          "       A.NumNfv as NumeroNota,                                   " +
                          "       A.DatEmi as DataEmissao,                                  " +
                          "       TO_CHAR(A.VlrLiq, '999999990D99') as ValorLiquido,        " +
                          "       'Fechada'as SituacaoNota,                                 " +
                          "       A.TipNfs as TipoNota,                                     " +
                          "       A.CodCli as CodigoCliente,                                " +
                          "       C.NOMCLI as NomeCliente,                                  " +
                          "       A.TnsPro as TipoTransacao,                                " +
                          "       B.DesTns as DescricaoTipoTransacao,                       " +
                          "       A.CodTra as CodigoTransportadora,                         " +
                          "       ' '      as IndicativoConferencia,                        " +
                          " round((to_date(current_date) - A.DatEmi)) as DiasFaturamento    " +
                          "  From SAPIENS.E140NFV A, SAPIENS.E001TNS B, SAPIENS.E085CLI C   " +
                          " Where A.CodEmp = B.CodEmp                                       " +
                          "   And A.TnsPro = B.CodTns                                       " +
                          "   And A.SitNfv = 2                                              " +
                          "   And A.Tipnfs in(1,10)                                         " +
                          "   And A.CodTra <> 1                                             " +
                          "   And A.CODFIL <> 101                                           " +
                          "   And A.DatEmi >= " + "'" + data + "'" +
                          "   And A.CodCli = " + codigoCliente +
                          "   and A.CodCli = C.codCli order by A.DatEmi desc";
                }


                OracleConnection conn = new OracleConnection(OracleStringConnection);
                OracleCommand    cmd  = new OracleCommand(sql, conn);
                cmd.CommandType = CommandType.Text;
                conn.Open();

                OracleDataReader dr = cmd.ExecuteReader();

                List <E140NFVModel> listaNotas = new List <E140NFVModel>();
                E140NFVModel        itemNota   = new E140NFVModel();

                while (dr.Read())
                {
                    itemNota = new E140NFVModel();
                    itemNota.CodigoEmpresa          = dr.GetInt32(0);
                    itemNota.CodigoFilial           = dr.GetInt32(1);
                    itemNota.SerieNota              = dr.GetString(2);
                    itemNota.NumeroNota             = dr.GetInt64(3);
                    itemNota.DataEmissao            = dr.GetDateTime(4).ToShortDateString();
                    itemNota.ValorLiquido           = dr.GetString(5);
                    itemNota.SituacaoNota           = dr.GetString(6);
                    itemNota.TipoNota               = dr.GetInt32(7);
                    itemNota.CodigoCliente          = dr.GetInt32(8);
                    itemNota.NomeCliente            = dr.GetString(9);
                    itemNota.TipoTransacao          = dr.GetString(10);
                    itemNota.DescricaoTipoTransacao = dr.GetString(11);
                    itemNota.CodigoTransportadora   = dr.GetInt32(12);
                    itemNota.IndicativoConferencia  = dr.GetString(13);
                    itemNota.DiasFaturamento        = dr.GetInt32(14);
                    listaNotas.Add(itemNota);
                }

                dr.Close();
                conn.Close();
                return(listaNotas);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #2
0
        /// <summary>
        /// Busca o usuário aprovador x Origem de ocorrência
        /// </summary>
        /// <param name="codUsuarioAprovador">Código do Usuário Aprovador</param>
        /// <param name="tipoAtendimento">Tipo de Atendimento</param>
        /// <returns>listaOrigensUsuario</returns>
        public List <RelUsuAprovadorOrigemOcorrencia> PesquisaUsuarioAprovadorXOrigemOcorrencia(long codUsuarioAprovador, Enums.TipoAtendimento tipoAtendimento)
        {
            try
            {
                using (Context contexto = new Context())
                {
                    List <RelUsuAprovadorOrigemOcorrencia> listaOrigensUsuario = new List <RelUsuAprovadorOrigemOcorrencia>();
                    RelUsuAprovadorOrigemOcorrencia        itemOrigemUsuario   = new RelUsuAprovadorOrigemOcorrencia();
                    string situacao = ((char)Enums.SituacaoRegistro.Ativo).ToString();

                    var listaOrigens = contexto.N0204ORI.Where(c => c.SITORI == situacao).OrderBy(c => c.CODORI).ToList();
                    var listaOriUsu  = contexto.N0203UAP.Where(c => c.CODUSU == codUsuarioAprovador && c.CODATD == (long)tipoAtendimento).OrderBy(c => c.CODORI).ToList();

                    if (listaOrigens != null)
                    {
                        foreach (N0204ORI itemOrigem in listaOrigens)
                        {
                            itemOrigemUsuario = new RelUsuAprovadorOrigemOcorrencia();
                            itemOrigemUsuario.CodigoOrigem    = itemOrigem.CODORI;
                            itemOrigemUsuario.DescricaoOrigem = itemOrigem.DESCORI;

                            var marcarOrigem = listaOriUsu.Where(c => c.CODORI == itemOrigem.CODORI).FirstOrDefault();
                            if (marcarOrigem != null)
                            {
                                itemOrigemUsuario.Marcar = true;
                            }

                            listaOrigensUsuario.Add(itemOrigemUsuario);
                        }
                    }

                    return(listaOrigensUsuario);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #3
0
        /// <summary>
        /// Grava usuário aprovador por origem de ocorrência
        /// </summary>
        /// <param name="codUsuarioAprovador">Código do Usuário Aprovador</param>
        /// <param name="listaUsuarioOrigens">Lista de Usuários por origem</param>
        /// <param name="tipoAtendimento">Tipo de Atendimento</param>
        /// <returns>true/false</returns>
        public bool GravarUsuarioAprovadorXOrigemOcorrencia(long codUsuarioAprovador, List <N0203UAP> listaUsuarioOrigens, Enums.TipoAtendimento tipoAtendimento)
        {
            try
            {
                using (Context contexto = new Context())
                {
                    var listaOriUsu = contexto.N0203UAP.Where(c => c.CODUSU == codUsuarioAprovador && c.CODATD == (long)tipoAtendimento).OrderBy(c => c.CODORI).ToList();

                    foreach (var itemUsuOri in listaOriUsu)
                    {
                        contexto.N0203UAP.Remove(itemUsuOri);
                        contexto.SaveChanges();
                    }

                    if (listaUsuarioOrigens != null && listaUsuarioOrigens.Count > 0)
                    {
                        foreach (var itemCad in listaUsuarioOrigens)
                        {
                            contexto.N0203UAP.Add(itemCad);
                            contexto.SaveChanges();
                        }
                    }

                    return(true);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #4
0
        protected void MontarEmailErroIntegracaoSapiens(string numeroProtocolo, string observacao, Enums.TipoAtendimento tipoAtendimento)
        {
            string EmailDestino = "*****@*****.**";
            string CopiarEmails = "*****@*****.**";

            string Assunto = "REGISTRO DE DEVOLUÇÃO - ERRO DE INTEGRAÇÃO SAPIENS";
            string tipoAtd = "Devolução";

            if (tipoAtendimento == Enums.TipoAtendimento.TrocaMercadorias)
            {
                Assunto = "REGISTRO DE TROCA - ERRO DE INTEGRAÇÃO SAPIENS";
                tipoAtd = "Troca";
            }


            var           emailCabecalho = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Cabecalho).GetValue <string>();
            var           emailCorpo     = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Corpo).GetValue <string>();
            var           emailRodape    = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Rodape).GetValue <string>();
            StringBuilder Mensagem       = new StringBuilder();

            Mensagem.AppendLine(emailCabecalho);
            Mensagem.AppendLine(emailCorpo);
            Mensagem.AppendLine(@"<div class='panel panel-success'>
                                    <div class='panel-heading'>
                                        <h3 class='panel-title'>Protocolo de " + tipoAtd + @" Nº " + numeroProtocolo + @"</h3>
                                    </div>
                                    <div class='panel-body'>
                                        <strong>Olá,<br/><br/>
                                        Ocorreu um erro de integração do Protocolo de " + tipoAtd + @" Nº " + numeroProtocolo + @" com o sistema SAPIENS.<br/><br/>Retorno SAPIENS: " + observacao + @"<br/>");
            Mensagem.AppendLine(emailRodape);

            String destino = EmailDestino + CopiarEmails;

            var Email = new Email();

            Email.EnviarEmail(EmailDestino, CopiarEmails, Assunto, Mensagem.ToString());
        }
Exemple #5
0
 /// <summary>
 /// Pesquisa usuários aprovadores por origem
 /// </summary>
 /// <param name="listaOrigens">Lista de Origens</param>
 /// <param name="tipoAtendimento">Tipo de Atendimento</param>
 /// <returns></returns>
 public List <long> PesquisaUsuariosAprovadoresPorOrigens(List <long> listaOrigens, Enums.TipoAtendimento tipoAtendimento)
 {
     try
     {
         using (Context contexto = new Context())
         {
             return(contexto.N0203UAP.Where(c => listaOrigens.Contains(c.CODORI) && c.CODATD == (long)tipoAtendimento).GroupBy(c => c.CODUSU).Select(c => c.Key).ToList());
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #6
0
        protected void MontarEmailFinanceiroNotasBoleto(string numeroProtocolo, string notas, string cliente, Enums.TipoAtendimento tipoAtendimento)
        {
            string EmailDestino = "*****@*****.**";
            string CopiarEmails = "[email protected]&";
//#if DEBUG
//            EmailDestino = "*****@*****.**";
//            CopiarEmails = string.Empty;
//#endif
            string Assunto = "REGISTRO DE DEVOLUÇÃO - BOLETO";
            string tipoAtd = "Devolução";

            if (tipoAtendimento == Enums.TipoAtendimento.TrocaMercadorias)
            {
                Assunto = "REGISTRO DE TROCA - BOLETO";
                tipoAtd = "Troca";
            }

            string[] formatNotas     = notas.Split('&');
            string   notasFormatadas = string.Empty;

            for (int i = 0; i < formatNotas.Length - 1; i++)
            {
                notasFormatadas = notasFormatadas + formatNotas[i] + ".<br/>";
            }

            N0203REGBusiness N0203REGBusiness = new N0203REGBusiness();

            var obsreg = N0203REGBusiness.PesquisarObservacaoSAC(Convert.ToInt64(numeroProtocolo));

            var emailCabecalho = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Cabecalho).GetValue <string>();
            var emailCorpo     = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Corpo).GetValue <string>();
            var emailRodape    = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Rodape).GetValue <string>();

            StringBuilder Mensagem = new StringBuilder();

            Mensagem.AppendLine(emailCabecalho);
            Mensagem.AppendLine(emailCorpo);
            Mensagem.AppendLine(@"<div class='panel panel-success'>
                                    <div class='panel-heading'>
                                        <h3 class='panel-title'>Registro de " + tipoAtd + @" Nº " + numeroProtocolo + @"</h3>
                                    </div>
                                    <div class='panel-body'>
                                        <strong>Olá,<br/><br/>
                                        O Registro de " + tipoAtd + @" Nº " + numeroProtocolo + @" contém notas fiscais de boleto.<br/><br/>" + cliente + @".<br/><br/>" + notasFormatadas + @" Observações SAC: " + obsreg + "</strong><br/> ");
            Mensagem.AppendLine(emailRodape);

            String destino = EmailDestino + CopiarEmails;

            var Email = new Email();

            Email.EnviarEmail(EmailDestino, CopiarEmails, Assunto, Mensagem.ToString());
        }
Exemple #7
0
        protected void MontarEmailProtocoloAprovado(string numeroProtocolo, string observacao, Enums.TipoAtendimento tipoAtendimento, string emailDestino)
        {
            string EmailDestino = emailDestino;
            string CopiarEmails = string.Empty;

//#if DEBUG
//            EmailDestino = "*****@*****.**";
//#endif
            string Assunto = "REGISTRO DE DEVOLUÇÃO APROVADO";
            string tipoAtd = "Devolução";

            if (tipoAtendimento == Enums.TipoAtendimento.TrocaMercadorias)
            {
                Assunto = "REGISTRO DE TROCA APROVADO";
                tipoAtd = "Troca";
            }
            var           emailCabecalho = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Cabecalho).GetValue <string>();
            var           emailCorpo     = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Corpo).GetValue <string>();
            var           emailRodape    = Attributes.KeyValueAttribute.GetFirst("Descricao", Enums.Email.Rodape).GetValue <string>();
            StringBuilder Mensagem       = new StringBuilder();

            Mensagem.AppendLine(emailCabecalho);
            Mensagem.AppendLine(emailCorpo);
            Mensagem.AppendLine(@"<div class='panel panel-success'>
                                    <div class='panel-heading'>
                                        <h3 class='panel-title'>Protocolo de " + tipoAtd + @" Nº " + numeroProtocolo + @"</h3>
                                    </div>
                                    <div class='panel-body'>
                                        <strong>Olá,<br/><br/>
                                        O Protocolo de " + tipoAtd + @" Nº " + numeroProtocolo + @" foi aprovado.<br/><br/>" + observacao + @"<br/><br/>
                                        </strong><br/><br/>");
            Mensagem.AppendLine(emailRodape);
            String destino = EmailDestino + CopiarEmails;

            var Email = new Email();

            Email.EnviarEmail(EmailDestino, CopiarEmails, Assunto, Mensagem.ToString());
        }
Exemple #8
0
 /// <summary>
 /// Pesquisa notas fiscais de saida
 /// </summary>
 /// <param name="codigoCliente">Código do Cliente</param>
 /// <param name="codigoMotorista">Código do Motorista</param>
 /// <param name="codPlaca">Código da Placa</param>
 /// <param name="tipoAtendimento">Tipo de Atendimento</param>
 /// <param name="codUsuarioLogado">Código do Usuário Logado</param>
 /// <returns>Lista de notas fiscais</returns>
 public List <E140NFVModel> PesquisarNotasFiscaisSaida(int codigoCliente, int codigoMotorista, string codPlaca, Enums.TipoAtendimento tipoAtendimento, long codUsuarioLogado)
 {
     try
     {
         E140NFVDataAccess E140NFVDataAccess = new E140NFVDataAccess();
         return(E140NFVDataAccess.PesquisarNotasFiscaisSaida(codigoCliente, codigoMotorista, codPlaca, tipoAtendimento, codUsuarioLogado));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #9
0
        /// <summary>
        /// Chama a classe para pesquisar o usuário aprovador por origem de ocorrência
        /// </summary>
        /// <param name="listaOrigens">Lista de origens</param>
        /// <param name="tipoAtendimento">Tipo de Atendimento</param>
        /// <returns></returns>
        public string PesquisaUsuariosAprovadoresPorOrigens(List <long> listaOrigens, Enums.TipoAtendimento tipoAtendimento)
        {
            try
            {
                N0203UAPDataAccess N0203UAPDataAccess = new N0203UAPDataAccess();
                var usuarios = N0203UAPDataAccess.PesquisaUsuariosAprovadoresPorOrigens(listaOrigens, tipoAtendimento);

                // Busca emails dos usuários aprovadores
                string emails = string.Empty;

                var N9999USUDataAccess        = new N9999USUDataAccess();
                var ActiveDirectoryDataAccess = new ActiveDirectoryDataAccess();

                foreach (var codUsu in usuarios)
                {
                    // Busca código do usuário
                    var loginUsuario = N9999USUDataAccess.ListaDadosUsuarioPorCodigo(codUsu).LOGIN;
                    var email        = ActiveDirectoryDataAccess.ListaDadosUsuarioAD(loginUsuario).Email;

                    emails = emails + email + "&";
                }

                return(emails);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #10
0
 /// <summary>
 /// Chama a classe para gravar o usuário aprovador por origem de ocorrência
 /// </summary>
 /// <param name="codUsuarioAprovador">Código de Usuário Aprovador</param>
 /// <param name="listaUsuarioOrigens">Lista de origens de usuários</param>
 /// <param name="tipoAtendimento">Tipo de Atendimento</param>
 /// <returns></returns>
 public bool GravarUsuarioAprovadorXOrigemOcorrencia(long codUsuarioAprovador, List <N0203UAP> listaUsuarioOrigens, Enums.TipoAtendimento tipoAtendimento)
 {
     try
     {
         N0203UAPDataAccess N0203UAPDataAccess = new N0203UAPDataAccess();
         return(N0203UAPDataAccess.GravarUsuarioAprovadorXOrigemOcorrencia(codUsuarioAprovador, listaUsuarioOrigens, tipoAtendimento));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #11
0
 /// <summary>
 /// Chama a classe de Pesquisa de usuário aprovador por origem de ocorrência
 /// </summary>
 /// <param name="codUsuarioAprovador">Código do Usuário Aprovador</param>
 /// <param name="tipoAtendimento">Tipo de Atendimento</param>
 /// <returns></returns>
 public List <RelUsuAprovadorOrigemOcorrencia> PesquisaUsuarioAprovadorXOrigemOcorrencia(long codUsuarioAprovador, Enums.TipoAtendimento tipoAtendimento)
 {
     try
     {
         N0203UAPDataAccess N0203UAPDataAccess = new N0203UAPDataAccess();
         return(N0203UAPDataAccess.PesquisaUsuarioAprovadorXOrigemOcorrencia(codUsuarioAprovador, tipoAtendimento));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
        /// <summary>
        /// Pesquisa notas fiscais de saida
        /// </summary>
        /// <param name="codigoCliente">Código do Cliente</param>
        /// <param name="codigoMotorista">Código do Motorista</param>
        /// <param name="codPlaca">Código da Placa</param>
        /// <param name="tipoAtendimento">Tipo de Atendimento</param>
        /// <param name="codUsuarioLogado">Código do Usuário Logado</param>
        /// <returns>Lista de notas fiscais</returns>
        public List <E140NFVModel> PesquisarNotasFiscaisSaida(int codigoCliente, int codigoMotorista, string codPlaca, Enums.TipoAtendimento tipoAtendimento, long codUsuarioLogado)
        {
            try
            {
                System.Diagnostics.Debug.WriteLine("Alert message");

                ///MessageBox.Show("teste");
                E140NFVDataAccess E140NFVDataAccess = new E140NFVDataAccess();
                return(E140NFVDataAccess.PesquisarNotasFiscaisSaida(codigoCliente, codigoMotorista, codPlaca, tipoAtendimento, codUsuarioLogado));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }