/// <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; } }
/// <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; } }
/// <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; } }
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()); }
/// <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; } }
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()); }
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()); }
/// <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; } }
/// <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; } }
/// <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; } }
/// <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; } }