Ejemplo n.º 1
0
        public void savePedido(string increment_id, IntegracaoConfig integracaoConfig)
        {
            SqlConnection sqlConn = new SqlConnection(connectionStr);

            sqlConn.Open();
            SqlTransaction transacao;

            transacao = sqlConn.BeginTransaction();
            try
            {
                Magento magento = new Magento();

                MagentoService.salesOrderEntity salesOrderEntity = magento.GetInfoPedido(increment_id);
                //propertyGrid1.SelectedObject = salesOrderEntity;

                MagentoService.salesOrderAddressEntity billingAddress = salesOrderEntity.billing_address;
                MagentoService.customerCustomerEntity  customerEntity = magento.GetCustomerInfo(salesOrderEntity.customer_id);

                Cliente cliente = new Cliente();

                cliente.Codigo       = getNextClienteId(); //"W" + Convert.ToString(customerEntity.customer_id);
                cliente.Nome         = customerEntity.firstname.Trim() + " " + customerEntity.lastname.Trim();
                cliente.NomeReduzido = customerEntity.firstname.Trim();
                cliente.Cnpj         = customerEntity.taxvat;
                cliente.Pessoa       = "F";
                cliente.Estatus      = "A";
                cliente.Email        = customerEntity.email.Trim();
                string strDate = customerEntity.created_at.ToString();
                // cliente.Datta = Convert.ToDateTime(DateTime.Now.ToString("yyyyMMddHHmmss")).ToString("yyyyMMddHHmmss");
                cliente.DattaInclusao = DateTime.Now.ToString();

                cliente.Endereco = billingAddress.street;
                cliente.Bairro   = "?";
                cliente.Cidade   = billingAddress.city;
                cliente.Cep      = billingAddress.postcode;
                cliente.Cidade   = billingAddress.city;
                cliente.Pais     = "Brasil";

                cliente.Telefone = "?";
                cliente.Celular  = "?";


                cliente.InscEst             = "ISENTO";
                cliente.Doc                 = " ";
                cliente.Tipo                = integracaoConfig.Tipo;
                cliente.RegiaoVendas        = integracaoConfig.RegiaoVendas;
                cliente.RegiaoFiscal        = integracaoConfig.RegiaoFiscal;
                cliente.GrupoImpostos       = integracaoConfig.GrupoImpostos;
                cliente.GrupoPrecos         = integracaoConfig.GrupoPrecos;
                cliente.CategCredito        = integracaoConfig.CategCredito;
                cliente.Vendedor            = integracaoConfig.Vendedor;
                cliente.Portador            = integracaoConfig.Portador;
                cliente.Holding             = cliente.Codigo;
                cliente.Renda               = 0;
                cliente.Compras             = 0;
                cliente.DiasAtraso          = 0;
                cliente.MoraAtraso          = 0;
                cliente.Contato             = " ";
                cliente.DattaNascimento     = cliente.Datta;
                cliente.Xcomissao           = 1;
                cliente.Texto               = "Magento";
                cliente.Arquivo             = " ";
                cliente.Filiacao            = " ";
                cliente.Edicao              = cliente.Datta;
                cliente.Operador            = integracaoConfig.Operador;
                cliente.Ficha               = " ";
                cliente.Xcusto              = 1;
                cliente.Bairro35            = cliente.Bairro;
                cliente.Cidade35            = cliente.Cidade;
                cliente.PontoReferencia     = " ";
                cliente.Distrito            = " ";
                cliente.HorarioEntrega      = " ";
                cliente.EnderecoComplemento = " ";
                cliente.InscMunicipal       = " ";
                cliente.HabilitacaoSituacao = "S";
                cliente.HabilitacaoDatta    = DateTime.Now;
                cliente.HabilitacaoCodigo   = " ";
                cliente.EmailNFE            = cliente.Email;
                cliente.EmailFinanceiro     = " ";
                cliente.CContabil           = cliente.Codigo;



                bool error = false;
                if (InsertCliente(cliente, sqlConn, transacao))
                {
                    Pedido pedido = new Pedido();
                    pedido.Seq              = getNextPedidoId();
                    pedido.Fato             = "SC";
                    pedido.Filial           = integracaoConfig.Filial;
                    pedido.Codigo           = salesOrderEntity.increment_id;
                    pedido.Tipo             = "N";
                    pedido.Datta            = Convert.ToDateTime(salesOrderEntity.created_at.ToString());
                    pedido.Dattapreventrega = DateTime.Now;
                    pedido.Estatus          = "A";
                    pedido.Percentrega      = 0;
                    pedido.Valor            = Convert.ToDecimal(salesOrderEntity.grand_total.Replace('.', ','));
                    pedido.Liberacao        = integracaoConfig.Liberacao;
                    pedido.DescontoValor    = Convert.ToDecimal(salesOrderEntity.discount_amount.Replace('.', ','));
                    pedido.Razao            = 1;
                    pedido.RazaoPositiva    = 1;
                    pedido.RazaoNegativa    = 1;
                    pedido.NumeroExterno    = salesOrderEntity.order_id;
                    pedido.Edicao           = DateTime.Now.ToString("yyyyMMddHHmmss");
                    pedido.Operador         = "1313";
                    pedido.Origem           = integracaoConfig.Origem;

                    pedido.Ccusto = integracaoConfig.Ccusto;

                    pedido.Formanegociacao      = integracaoConfig.FormaNegociacao;
                    pedido.Cpg                  = integracaoConfig.CPG;
                    pedido.Transportadora       = integracaoConfig.Transportadora;
                    pedido.Cfop                 = integracaoConfig.Cfop;
                    pedido.Cfopdescricao        = "Venda";
                    pedido.Destinacao           = "C";
                    pedido.Natureza             = integracaoConfig.Natureza;
                    pedido.DescontoPerc         = 0;
                    pedido.DescontoCalc         = 0;
                    pedido.Deducoes             = 0;
                    pedido.DespesaDentro        = 0;
                    pedido.DespesaFora          = 0;
                    pedido.Ipi                  = 0;
                    pedido.Icms                 = 0;
                    pedido.Icmr                 = 0;
                    pedido.Iss                  = 0;
                    pedido.Padrao               = "X";
                    pedido.Tic                  = integracaoConfig.Tic;
                    pedido.HorarioEntrega       = DateTime.Now.ToString("yyyyMMddHHmm");
                    pedido.SubstitutoTributario = "";
                    pedido.Posicao              = "1";



                    if (insertPedido(pedido, sqlConn, transacao))
                    {
                        PedidoCliente pedidoCliente = new PedidoCliente();
                        pedidoCliente.SeqPedido       = pedido.Seq;
                        pedidoCliente.Cliente         = cliente.Codigo;
                        pedidoCliente.Empresa         = "001";
                        pedidoCliente.Edicao          = DateTime.Now.ToString("yyyyMMddHHmmss");
                        pedidoCliente.Operador        = "1313";
                        pedidoCliente.ClienteGenerico = "N";
                        pedidoCliente.Nome            = cliente.Nome;
                        pedidoCliente.Endereco        = cliente.Endereco;
                        pedidoCliente.Bairro          = cliente.Bairro;
                        pedidoCliente.Cidade          = cliente.Cidade;
                        pedidoCliente.Cep             = cliente.Cep;
                        pedidoCliente.Estado          = cliente.Estado;
                        pedidoCliente.Telefone        = cliente.Telefone;

                        pedidoCliente.Vendedor = integracaoConfig.Vendedor;
                        pedidoCliente.Equipe   = integracaoConfig.Equipe;

                        if (insertPedidoCliente(pedidoCliente, sqlConn, transacao))
                        {
                            PedidosParc pedidosParc = new PedidosParc();
                            pedidosParc.SeqPedido       = pedido.Seq;
                            pedidosParc.Parcela         = "001";
                            pedidosParc.Valor           = pedido.Valor;
                            pedidosParc.Dattavenc       = DateTime.Now.AddDays(30);
                            pedidosParc.Natureza        = integracaoConfig.Natureza;
                            pedidosParc.Portador        = integracaoConfig.Portador;
                            pedidosParc.Especie         = integracaoConfig.Especie;
                            pedidosParc.Descincond      = 0;
                            pedidosParc.Flagpaga        = "N";
                            pedidosParc.Xcomissao       = 0;
                            pedidosParc.TaxaPermanencia = 0;
                            pedidosParc.DiasPermanencia = 0;
                            pedidosParc.TaxaAdminist    = 0;
                            pedidosParc.VrVariacao      = 0;
                            pedidosParc.Empresa         = "001";
                            pedidosParc.Edicao          = "Edicao";
                            pedidosParc.Operador        = integracaoConfig.Operador;
                            pedidosParc.FormaReajuste   = " ";
                            pedidosParc.Indice          = "0";
                            pedidosParc.VrIndexado      = 0;
                            pedidosParc.VrIndexado      = 0;
                            pedidosParc.VrDespesas      = 0;
                            pedidosParc.PercMulta       = 0;

                            if (insertPedidoParc(pedidosParc, sqlConn, transacao))
                            {
                                int i = 1;
                                foreach (MagentoService.salesOrderItemEntity item in salesOrderEntity.items)
                                {
                                    DataTable dtProduto = getProduto(item.sku);
                                    if (dtProduto.Rows.Count > 0)
                                    {
                                        PedidoItens pedidoItens = new PedidoItens();
                                        pedidoItens.Seq                = getNextPedidoItemId();
                                        pedidoItens.SeqPedido          = pedido.Seq;
                                        pedidoItens.Item               = i;
                                        pedidoItens.SeqProduto         = Convert.ToString(dtProduto.Rows[0]["SEQ"]);
                                        pedidoItens.Alternativo        = item.sku;
                                        pedidoItens.Nome               = item.name.Length > 40 ? item.name.Substring(0, 39) : item.name;
                                        pedidoItens.Unidade            = "UN";
                                        pedidoItens.Proporcao          = 1;
                                        pedidoItens.DattaPrevEntrega   = DateTime.Now;
                                        pedidoItens.DattaUltEntrega    = DateTime.Now;
                                        pedidoItens.Estatus            = "A";
                                        pedidoItens.QPedida            = Convert.ToDecimal(item.qty_ordered.Replace('.', ','));
                                        pedidoItens.QExpedida          = 0;
                                        pedidoItens.QFaturada          = 0;
                                        pedidoItens.QCancelada         = Convert.ToDecimal(item.qty_canceled.Replace('.', ','));
                                        pedidoItens.MotivoCancelamento = "";
                                        pedidoItens.PrecoUnit          = Convert.ToDecimal(item.price.Replace('.', ','));
                                        pedidoItens.Precounittab       = Convert.ToDecimal(item.price.Replace('.', ','));;
                                        pedidoItens.Precounittabmin    = Convert.ToDecimal(item.price.Replace('.', ','));;
                                        pedidoItens.Precounittabmax    = Convert.ToDecimal(item.price.Replace('.', ','));;
                                        pedidoItens.Cst                = "010";
                                        pedidoItens.Bonificacao        = "N";
                                        pedidoItens.Texto              = "";
                                        pedidoItens.Valor              = Convert.ToDecimal(item.row_total.Replace('.', ','));
                                        pedidoItens.Peso               = Convert.ToDecimal(item.row_weight.Replace('.', ','));
                                        pedidoItens.Liberacao          = "N";
                                        pedidoItens.LiberacaoOperador  = "";
                                        pedidoItens.LiberacaoDatta     = DateTime.Now;
                                        pedidoItens.Destinacao         = "R";
                                        pedidoItens.Propriedade        = "P";
                                        pedidoItens.Descontovalor      = Convert.ToDecimal(item.discount_amount.Replace('.', ','));
                                        pedidoItens.Descontoperc       = Convert.ToDecimal(item.discount_percent.Replace('.', ','));
                                        pedidoItens.Descontocalc       = 0;
                                        pedidoItens.Descontocred       = 0;
                                        pedidoItens.Ipi                = 0;
                                        pedidoItens.Icms               = 0;
                                        pedidoItens.Iss                = 0;
                                        pedidoItens.Ordem              = i;
                                        pedidoItens.Empresa            = "001";
                                        pedidoItens.Edicao             = DateTime.Now.ToString("yyyyMMddHHmmss");
                                        pedidoItens.Operador           = "1313";
                                        //pedidoItens.Rrimposto = "";
                                        pedidoItens.Qualidade            = 0;
                                        pedidoItens.Tipo                 = "Normal";
                                        pedidoItens.CodigoExternoProduto = item.sku;
                                        pedidoItens.Cest                 = integracaoConfig.Cest;

                                        pedidoItens.Cfop     = integracaoConfig.CfopDentroEstado;
                                        pedidoItens.Vendedor = integracaoConfig.Vendedor;

                                        if (!insertPedidoItem(pedidoItens, sqlConn, transacao))
                                        {
                                            transacao.Rollback();
                                            error = true;
                                            break;
                                        }
                                        i++;
                                    }
                                    else
                                    {
                                        string mensagem = "Produto nao encontrado - " + item.sku;
                                        Log.Set("ERRO GravarPedidos: " + pedido.Seq + " - " + mensagem);
                                        transacao.Rollback();
                                        error = true;
                                    }
                                }
                            }
                            else
                            {
                                transacao.Rollback();
                                error = true;
                            }
                        }
                        else
                        {
                            transacao.Rollback();
                            error = true;
                        }
                    }
                    else
                    {
                        transacao.Rollback();
                        error = true;
                    }
                }
                else
                {
                    transacao.Rollback();
                    error = true;
                }
                if (!error)
                {
                    Log.Set("Sucesso Salvar Pedido: " + increment_id);

                    transacao.Commit();
                    MessageBox.Show("Pedido Importado com sucesso");
                }
                else
                {
                    MessageBox.Show("Não foi possivel importar o pedido");
                }


                sqlConn.Close();
            }
            catch (Exception ex)
            {
                transacao.Rollback();
                string message = ex.Message;
                Log.Set("ERRO savePedido: " + message + " - " + message);
            }
        }
Ejemplo n.º 2
0
        public bool insertPedidoItem(PedidoItens pedidoItens, SqlConnection sqlConn, SqlTransaction transacao)
        {
            bool   retorno  = true;
            string strQuery = $@"insert into pedidosItens (
                Seq,                 
                SeqPedido,           
                Item,                
                SeqProduto,          
                Alternativo,         
                Nome,                
                Unidade,             
                Proporcao,           
                DattaPrevEntrega,    
                DattaUltEntrega,     
                Estatus,             
                QPedida,             
                QExpedida,           
                QFaturada,           
                QCancelada,          
                PrecoUnit,           
                Precounittab,        
                Precounittabmin,     
                Precounittabmax,     
                Cst,                 
                Bonificacao,         
                Texto,               
                Valor,                    
                Liberacao,           
                LiberacaoOperador,   
                LiberacaoDatta,      
                Cfop,                
                Destinacao,          
                Propriedade,         
                Descontovalor,       
                Descontoperc,        
                Descontocalc,        
                Descontocred,        
                Ipi,                 
                Icms,                
                Icmr,                
                Iss,                 
                Ordem,               
                Vendedor,            
                Empresa,             
                Edicao,              
                Operador,            
                NomeExtra,          
                Custo,               
                CustoVenda,          
                CustoMedio,          
                Qualidade,           
                Tipo,                
                CodigoExternoProduto,
                Cest                 
            ) values (
                '{pedidoItens.Seq}',
                '{pedidoItens.SeqPedido}',           
                {pedidoItens.Item},                
                '{pedidoItens.SeqProduto}',          
                '{pedidoItens.Alternativo}',         
                '{pedidoItens.Nome}',                
                '{pedidoItens.Unidade}',             
                {pedidoItens.Proporcao},           
                '{pedidoItens.DattaPrevEntrega}',    
                '{pedidoItens.DattaUltEntrega}',     
                '{pedidoItens.Estatus}',             
                {pedidoItens.QPedida.ToString().Replace(',', '.')},             
                {pedidoItens.QExpedida.ToString().Replace(',', '.')},           
                {pedidoItens.QFaturada.ToString().Replace(',', '.')},           
                {pedidoItens.QCancelada.ToString().Replace(',', '.')},          
                {pedidoItens.PrecoUnit.ToString().Replace(',', '.')},           
                {pedidoItens.Precounittab.ToString().Replace(',', '.')},        
                {pedidoItens.Precounittabmin.ToString().Replace(',', '.')},     
                {pedidoItens.Precounittabmax.ToString().Replace(',', '.')},     
                '{pedidoItens.Cst}',                 
                '{pedidoItens.Bonificacao}',         
                '{pedidoItens.Texto}',               
                {pedidoItens.Valor.ToString().Replace(',', '.')},                      
                '{pedidoItens.Liberacao}',           
                '{pedidoItens.LiberacaoOperador}',   
                '{pedidoItens.LiberacaoDatta}',      
                '{pedidoItens.Cfop}',                
                '{pedidoItens.Destinacao}',          
                '{pedidoItens.Propriedade}',         
                {pedidoItens.Descontovalor.ToString().Replace(',', '.')},       
                {pedidoItens.Descontoperc.ToString().Replace(',', '.')},        
                {pedidoItens.Descontocalc.ToString().Replace(',', '.')},        
                {pedidoItens.Descontocred.ToString().Replace(',', '.')},        
                {pedidoItens.Ipi},                 
                {pedidoItens.Icms},                
                {pedidoItens.Icmr},                
                {pedidoItens.Iss},                 
                {pedidoItens.Ordem},               
                '{pedidoItens.Vendedor}',            
                '{pedidoItens.Empresa}',             
                '{pedidoItens.Edicao}',              
                '{pedidoItens.Operador}',            
                '{pedidoItens.NomeExtra}',                      
                {pedidoItens.Custo},               
                {pedidoItens.CustoVenda},          
                {pedidoItens.CustoMedio},          
                {pedidoItens.Qualidade},           
                '{pedidoItens.Tipo}',                
                '{pedidoItens.CodigoExternoProduto}',
                '{pedidoItens.Cest}'                 
            )";

            try
            {
                SqlCommand cmd = new SqlCommand(strQuery, sqlConn, transacao);
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                string message = ex.Message;
                Log.Set("ERRO insertPedidoItem: " + pedidoItens.SeqProduto + " - " + message);
                retorno = false;
            }

            return(retorno);
        }