public void Exportar(InfoPedido[] pedidos) { Email[] emails = null; try { using (var scope = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 0, 55))) { emails = PedidoDAL.Atualiza(pedidos); scope.Complete(); } } catch (Exception exception) { DAL.LogErro.Registrar(exception.Message); //throw; } if (emails != null) { foreach (var email in emails) { EmailDAL.Enviar(email); } } Atualizacao a = new Atualizacao(); //a.Executa(); }
public static Email[] Atualiza(InfoPedido[] pedidos) { try { using (SqlConnection conexao = FabricaSql.NovaConexao()) { using (SqlCommand comando = FabricaSql.NovoComandoTexto(conexao)) { foreach (var pedido in pedidos) { if (pedido.Situacao == "1") //Novo pedido { InserirDados(comando, pedido); } else if (pedido.Situacao == "2") //Pedido alterado { //VerificaSePedidoAindaNaoImportado(); //AlterarDados(comando, cliente); } else { throw new Exception("Campo situação não encontrado."); } } return GeraEmail(pedidos); } } } catch (Exception exception) { LogErro.Registrar(exception.Message); throw; } }
private static void InserirDados(SqlCommand comando, InfoPedido infoPedido) { var query = new StringBuilder(); query.AppendLine("insert into ImportacaoPedido (ip.tipoRegistro, ip.numPedidoAndroid, ip.codigoCliente, ip.controleCgc, ip.cpfCgc, ip.dataPedido, ip.dataEntrega, ip.frete, ip.codigoVendedor, "); query.AppendLine("ip.numPedidoCliente, ip.operacao, ip.entregaImediata, ip.prazo, ip.tabelaPreco, ip.percDesconto, ip.observacao, ip.codigoMensagem, ip.codigoFilial, ip.dataEnvio, ip.situacao)"); query.AppendLine("values (@tipoRegistro, @numPedidoAndroid, @codigoCliente, @controleCgc, @cpfCgc, @dataPedido, @dataEntrega, @frete, @codigoVendedor, "); query.AppendLine("@numPedidoCliente, @operacao, @entregaImediata, @prazo, @tabelaPreco, @percDesconto, @observacao, @codigoMensagem, @codigoFilial, @dataEnvio , @situacao); "); comando.Parameters.Add("@tipoRegistro", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.TipoRegistro; comando.Parameters.Add("@numPedidoAndroid", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.NumPedidoAndroid; comando.Parameters.Add("@codigoCliente", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.CodigoCliente; comando.Parameters.Add("@controleCgc", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.ControleCgc; comando.Parameters.Add("@cpfCgc", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.CpfCgc; comando.Parameters.Add("@dataPedido", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.DtPedido; comando.Parameters.Add("@dataEntrega", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.DtEntrega; comando.Parameters.Add("@frete", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.Frete; comando.Parameters.Add("@codigoVendedor", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.CodigoVendedor; comando.Parameters.Add("@numPedidoCliente", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.NumPedidoCliente; comando.Parameters.Add("@operacao", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.Operacao; comando.Parameters.Add("@entregaImediata", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.EntregaImediata; comando.Parameters.Add("@prazo", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.Prazo; comando.Parameters.Add("@tabelaPreco", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.TabelaPreco; comando.Parameters.Add("@percDesconto", SqlDbType.Real).Value = infoPedido.InfoPrincipal.PercDesconto; comando.Parameters.Add("@observacao", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.Observacao; comando.Parameters.Add("@codigoMensagem", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.CodigoMensagem; comando.Parameters.Add("@codigoFilial", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.CodigoFilial; comando.Parameters.Add("@dataEnvio", SqlDbType.VarChar).Value = infoPedido.InfoPrincipal.DtEnvio; comando.Parameters.Add("@situacao", SqlDbType.VarChar).Value = infoPedido.Situacao; comando.Parameters.Clear(); for (int i = 0; i < infoPedido.InfoItens.Length; i++) { query.AppendLine("insert into ImportacaoItens (ii.tipoRegistro, ii.numPedidoAndroid, ii.codigoProduto, ii.quantidade, ii.valorUnitario, ii.percComissao, ii.valorUnitarioTabelaPreco, ii.situacao) "); query.AppendLine("values (@tipoRegistro, @numPedidoAndroid, @codigoProduto, @quantidade, @valorUnitario, @percComissao, @valorUnitarioTabelaPreco, @situacao); "); comando.Parameters.Add("@tipoRegistro", SqlDbType.VarChar).Value = infoPedido.InfoItens[i].TipoRegistro; comando.Parameters.Add("@numPedidoAndroid", SqlDbType.VarChar).Value = infoPedido.InfoItens[i].NumPedidoAndroid; comando.Parameters.Add("@codigoProduto", SqlDbType.VarChar).Value = infoPedido.InfoItens[i].CodigoProduto; comando.Parameters.Add("@quantidade", SqlDbType.Real).Value = infoPedido.InfoItens[i].Quantidade; comando.Parameters.Add("@valorUnitario", SqlDbType.Real).Value = infoPedido.InfoItens[i].ValorUnitario; comando.Parameters.Add("@percComissao", SqlDbType.Real).Value = infoPedido.InfoItens[i].PercComissao; comando.Parameters.Add("@valorUnitarioTabelaPreco", SqlDbType.Real).Value = infoPedido.InfoItens[i].ValorUnitarioTabelaPreco; comando.Parameters.Add("@situacao", SqlDbType.VarChar).Value = infoPedido.Situacao; } comando.Parameters.Clear(); for (int i = 0; i < infoPedido.InfoCondicoesPagamento.Length; i++) { query.AppendLine("insert into ImportacaoVencimentos (iv.tipoRegistro, iv.numPedidoAndroid, iv.prazo, iv.dtVencimentoParc, iv.valorParcela, iv.formaPagamento, iv.situacao) "); query.AppendLine("values (@tipoRegistro, @numPedidoAndroid, @prazo, @dtVencimentoParc, @valorParcela, @formaPagamento, @situacao); "); comando.Parameters.Add("@tipoRegistro", SqlDbType.VarChar).Value = infoPedido.InfoCondicoesPagamento[i].TipoRegistro; comando.Parameters.Add("@numPedidoAndroid", SqlDbType.VarChar).Value = infoPedido.InfoCondicoesPagamento[i].NumPedidoAndroid; comando.Parameters.Add("@prazo", SqlDbType.VarChar).Value = infoPedido.InfoCondicoesPagamento[i].PrazoDiasParcela; comando.Parameters.Add("@dtVencimentoParc", SqlDbType.VarChar).Value = infoPedido.InfoCondicoesPagamento[i].DtVencimentoParcela; comando.Parameters.Add("@valorParcela", SqlDbType.Real).Value = infoPedido.InfoCondicoesPagamento[i].ValorParcela; comando.Parameters.Add("@formaPagamento", SqlDbType.VarChar).Value = infoPedido.InfoCondicoesPagamento[i].FormaPagamento; comando.Parameters.Add("@situacao", SqlDbType.VarChar).Value = infoPedido.Situacao; } comando.CommandText = query.ToString(); comando.ExecuteNonQuery(); }
private static Email[] GeraEmail(InfoPedido[] pedidos) { List<Email> list = new List<Email>(); foreach (var pedido in pedidos) { var nomeVendedor = GeralDAL.BuscaNomeVendedor(pedido.InfoPrincipal.CodigoVendedor); InfoCliente cliente = GeralDAL.BuscaNomeCliente(pedido.InfoPrincipal.CodigoCliente); var nomeCidade = GeralDAL.BuscaNomeCidade(cliente.CodigoMunicipio); var valorTotalPedido = 0; var mensagem = String.Format("<b>Pedido realizado por {0} em {1}.</b>", nomeVendedor, pedido.InfoPrincipal.DtPedido); mensagem += "<br /><br /><b>Solicitação de: </b><br />" + cliente.NomeCliente; mensagem += "Endereço: <br />" + cliente.Endereco + ", " + cliente.NumeroEndereco + ", " + cliente.Bairro + ", " + nomeCidade; mensagem += "<br /><br />Itens do pedidos: "; for (int i = 0; i < pedido.InfoItens.Length; i++) { var nomeProduto = GeralDAL.BuscaNomeProduto(pedido.InfoItens[i].CodigoProduto); var valorTotalProduto = Convert.ToInt32(pedido.InfoItens[i].Quantidade) * Convert.ToInt32(pedido.InfoItens[i].ValorUnitario); mensagem += String.Format("<br />Produto: {0} - {1} ", pedido.InfoItens[i].CodigoProduto, nomeProduto); mensagem += "<br />Quantidade: " + pedido.InfoItens[i].Quantidade; mensagem += "<br />Valor unitário: R$" + pedido.InfoItens[i].ValorUnitario; mensagem += "<br />Total: R$" + valorTotalProduto; mensagem += "<br /><br />;"; valorTotalPedido += valorTotalProduto; } mensagem += "<b>Total pedido:</b> R$" + valorTotalPedido; //var email = new Email(String.Format("Pedido nº - {0}", pedido.InfoPrincipal.NumPedidoAndroid), mensagem, cliente.Email); var email = new Email(String.Format("Pedido nº - {0}", pedido.InfoPrincipal.NumPedidoAndroid), mensagem, "*****@*****.**"); list.Add(email); } return list.ToArray(); }