예제 #1
0
 private void limparCampos()
 {
     _LanPedido_Item  = null;
     qtdProduto.Value = 1;
     codBarras.Text   = "";
     codBarras.Select();
 }
예제 #2
0
        /// <summary>
        /// Método valida se item informado já existe na listagem,
        /// caso existe deve apenas incrementar na quantidade, e
        /// não deve adicionar novo produto. Ticket 8510
        /// </summary>
        /// <param name="lanPedido_Item"> Novo item informado</param>
        /// <returns>
        /// True, já existe na listagem
        /// False, ainda não existe na listagem
        /// </returns>
        private bool validarExistencia(TRegistro_LanPedido_Item lanPedido_Item)
        {
            bool ret = false;

            (bsProdutos.List as IEnumerable <TRegistro_LanPedido_Item>).ToList().ForEach(r =>
            {
                if (r.Cd_produto.Equals(lanPedido_Item.Cd_produto))
                {
                    r.Quantidade += lanPedido_Item.Quantidade;
                    r.Vl_subtotal = r.Quantidade * r.Vl_unitario;
                    ret           = true;
                }
            });

            return(ret);
        }
예제 #3
0
        private void buscarProduto()
        {
            TpBusca[] tps = new TpBusca[0];
            Estruturas.CriarParametro(ref tps, "", "(select 1 " +
                                      "from TB_EST_CodBarra xxx " +
                                      "where xxx.CD_Produto = a.cd_produto " +
                                      "and xxx.CD_CodBarra = '" + codBarras.Text.Trim() + "')", "exists");
            TList_CadProduto lProd = new TCD_CadProduto().Select(tps, 0, string.Empty, string.Empty, string.Empty);

            if (lProd.Count.Equals(0))
            {
                MessageBox.Show("Nenhum produto foi encontrado pelo código de barras: " + codBarras.Text.Trim() + " informado. " +
                                "Verifique o valor e acione ENTER novamente.", "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                _LanPedido_Item = new TRegistro_LanPedido_Item();

                //Buscar local de armazenagem do produto
                TList_CadLocalArm_X_Produto List_Local_x_Produto = new TList_CadLocalArm_X_Produto();
                if (!string.IsNullOrEmpty(lProd[0].CD_Produto))
                {
                    List_Local_x_Produto = TCN_CadLocalArm_X_Produto.Busca(string.Empty, lProd[0].CD_Produto);
                }

                Componentes.EditDefault CD_Local = new Componentes.EditDefault();
                Componentes.EditDefault DS_Local = new Componentes.EditDefault();

                if (List_Local_x_Produto.Count.Equals(1))
                {
                    CD_Local.Text = List_Local_x_Produto[0].CD_Local;
                    DS_Local.Text = List_Local_x_Produto[0].DS_Local;
                }
                else if (List_Local_x_Produto.Count > 1)
                {
                    string vParam = "isnull(a.st_registro, 'A')|<>|'C';" +
                                    "a.cd_produto|=|" + lProd[0].CD_Produto;
                    UtilPesquisa.BTN_BUSCA("c.DS_Local|Local|300",
                                           new Componentes.EditDefault[] { CD_Local, DS_Local },
                                           new TCD_CadLocalArm_X_Produto(),
                                           vParam);
                }
                else
                {
                    TList_CadLocalArm_X_Empresa _CadLocalArm_X_Empresas = TCN_CadLocalArm_X_Empresa.Busca(string.Empty, CdEmpresa, "A", string.Empty, null);
                    if (_CadLocalArm_X_Empresas.Count.Equals(0))
                    {
                        closeWithMessage("Não existe pré-cadastrado no sistema local de armazenagem para a empresa informada. " +
                                         "Não será possível finalizar a operação.", false);
                        return;
                    }
                    else if (_CadLocalArm_X_Empresas.Count > 1)
                    {
                        string vParam = "isnull(a.st_registro, 'A')|<>|'C';" +
                                        "a.cd_empresa|=|" + CdEmpresa;
                        UtilPesquisa.BTN_BUSCA("c.DS_Local|Local|300",
                                               new Componentes.EditDefault[] { CD_Local, DS_Local },
                                               new TCD_CadLocalArm_X_Empresa(),
                                               vParam);
                    }
                    else
                    {
                        CD_Local.Text = _CadLocalArm_X_Empresas[0].CD_Local;
                        DS_Local.Text = _CadLocalArm_X_Empresas[0].DS_Local;
                    }
                }

                if (string.IsNullOrEmpty(CD_Local.Text.Trim()))
                {
                    closeWithMessage("É obrigatório informar local de armazenagem.", false);
                    return;
                }

                _LanPedido_Item.Cd_produto       = lProd[0].CD_Produto;
                _LanPedido_Item.Ds_produto       = lProd[0].DS_Produto;
                _LanPedido_Item.Cd_local         = CD_Local.Text.Trim();
                _LanPedido_Item.Ds_local         = DS_Local.Text.Trim();
                _LanPedido_Item.Cd_unidade_valor = lProd[0].CD_Unidade;
                _LanPedido_Item.Ds_unidade_valor = lProd[0].DS_Unidade.Trim();
                _LanPedido_Item.Sg_unidade_valor = lProd[0].Sigla_unidade.Trim();
                _LanPedido_Item.St_registro      = "A";

                adicionarProduto();
            }
        }
예제 #4
0
        private void bbImportar_Click(object sender, EventArgs e)
        {
            //071.548.686-19
            if (bsPedLoja.Current != null)
            {
                if ((bsPedLoja.Current as TRegistro_Pedido).Nr_pedido.ToString().Trim() != "0")
                {
                    MessageBox.Show("Não é permitido IMPORTAR pedido novamente.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                if ((bsPedLoja.Current as TRegistro_Pedido).StatusMagento.Trim().ToUpper().Equals("CANCELADO"))
                {
                    MessageBox.Show("Não é permitido IMPORTAR pedido CANCELADO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                if (rCfg == null)
                {
                    MessageBox.Show("Não existe configuração E-commerce para loja selecionada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                MagentoService api    = new MagentoService();
                string         sessao = string.Empty;
                try
                {
                    sessao = api.login((cbLoja.SelectedItem as TRegistro_LojaVirtual).UserName, (cbLoja.SelectedItem as TRegistro_LojaVirtual).ApiKey);
                    salesOrderEntity ePed = api.salesOrderInfo(sessao, (bsPedLoja.Current as TRegistro_Pedido).Nr_PedidoOrigem);
                    if (ePed != null)
                    {
                        TRegistro_Pedido rPedido = new TRegistro_Pedido();
                        //Buscar Cliente
                        customerCustomerEntity eCliente = api.customerCustomerInfo(sessao, int.Parse(ePed.customer_id), null);
                        //Verificar se cliente existe no Aliance
                        TList_CadClifor lCliente = new TCD_CadClifor().Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = string.Empty,
                                vVL_Busca = "dbo.FVALIDA_NUMEROS(a.nr_cgc) = '" + eCliente.taxvat.Trim() + "' " +
                                            "or dbo.FVALIDA_NUMEROS(a.nr_cpf) = '" + eCliente.taxvat.Trim() + "'"
                            }
                        }, 1, string.Empty);
                        if (lCliente.Count > 0)
                        {
                            rPedido.CD_Clifor = lCliente[0].Cd_clifor;
                            rPedido.NM_Clifor = lCliente[0].Nm_clifor;
                            //Buscar endereco cliente
                            TList_CadEndereco lEnd =
                                new TCD_CadEndereco().Select(
                                    new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_clifor",
                                    vOperador = "=",
                                    vVL_Busca = "'" + lCliente[0].Cd_clifor.Trim() + "'"
                                }
                            }, 1, string.Empty);
                            if (lEnd.Count > 0)
                            {
                                rPedido.CD_Endereco = lEnd[0].Cd_endereco;
                                rPedido.DS_Endereco = lEnd[0].Ds_endereco;
                                numero.Text         = lEnd[0].Numero;
                                bairro.Text         = lEnd[0].Bairro;
                                ds_cidade.Text      = lEnd[0].DS_Cidade;
                                uf.Text             = lEnd[0].UF;
                            }
                        }
                        else
                        {
                            TRegistro_CadClifor rClifor = new TRegistro_CadClifor();
                            rClifor.Nm_clifor            = eCliente.firstname.Trim().ToUpper() + " " + eCliente.lastname.Trim().ToUpper();
                            rClifor.Email                = eCliente.email.Trim();
                            rClifor.Tp_pessoa            = eCliente.taxvat.Trim().Length.Equals(14) ? "J" : "F";
                            rClifor.Nr_cgc               = eCliente.taxvat.Trim().Length.Equals(14) ? eCliente.taxvat.Trim() : string.Empty;
                            rClifor.Nr_cpf               = !eCliente.taxvat.Trim().Length.Equals(14) ? eCliente.taxvat.Trim() : string.Empty;
                            rClifor.Id_categoriaclifor   = rCfg.Id_categoriaclifor;
                            rClifor.Cd_condfiscal_clifor = rCfg.Cd_condfiscal_clifor;
                            TRegistro_CadEndereco rEndereco = new TRegistro_CadEndereco();
                            rEndereco.Cep = ePed.billing_address.postcode;
                            //Buscar Endereco Rest
                            TEndereco_CEPRest eRest = ServiceRest.DataService.BuscarEndCEPRest(rEndereco.Cep);
                            if (eRest != null)
                            {
                                rEndereco.Ds_endereco    = eRest.logradouro;
                                rEndereco.Ds_complemento = eRest.complemento;
                                rEndereco.Bairro         = eRest.bairro;
                                rEndereco.Cd_cidade      = eRest.ibge;
                                string[] str = ePed.billing_address.street.Split(new char[] { '\n' });
                                if (str.Length >= 2)
                                {
                                    rEndereco.Numero = str[1];
                                }
                            }
                            else
                            {
                                string[] str = ePed.billing_address.street.Split(new char[] { '\n' });
                                if (str.Length >= 4)
                                {
                                    rEndereco.Ds_endereco = str[0];
                                    rEndereco.Bairro      = str[3];
                                    rEndereco.Numero      = str[1];
                                }
                            }
                            rClifor.lEndereco.Add(rEndereco);
                            using (Financeiro.Cadastros.TFCadCliforResumido fClifor = new Financeiro.Cadastros.TFCadCliforResumido())
                            {
                                fClifor.rClifor = rClifor;
                                if (fClifor.ShowDialog() == DialogResult.OK)
                                {
                                    try
                                    {
                                        TCN_CadClifor.Gravar(fClifor.rClifor, null);
                                        MessageBox.Show("Cliente cadastrado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                        rPedido.CD_Clifor   = fClifor.rClifor.Cd_clifor;
                                        rPedido.NM_Clifor   = fClifor.rClifor.Nm_clifor;
                                        rPedido.CD_Endereco = fClifor.rClifor.lEndereco[0].Cd_endereco;
                                        rPedido.DS_Endereco = fClifor.rClifor.lEndereco[0].Ds_endereco;
                                        numero.Text         = fClifor.rClifor.lEndereco[0].Numero;
                                        bairro.Text         = fClifor.rClifor.lEndereco[0].Bairro;
                                        ds_cidade.Text      = fClifor.rClifor.lEndereco[0].DS_Cidade;
                                        uf.Text             = fClifor.rClifor.lEndereco[0].UF;
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        return;
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Obrigatório cadastrar cliente para importar pedido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                        }
                        rPedido.cd_empresa      = (cbLoja.SelectedItem as TRegistro_LojaVirtual).Cd_empresa;
                        rPedido.Nm_Empresa      = (cbLoja.SelectedItem as TRegistro_LojaVirtual).Nm_empresa;
                        rPedido.Nr_PedidoOrigem = (bsPedLoja.Current as TRegistro_Pedido).Nr_PedidoOrigem;
                        rPedido.CFG_Pedido      = rCfg.Cfg_pedido;
                        rPedido.TP_Movimento    = "S";//Venda
                        rPedido.DT_Pedido       = CamadaDados.UtilData.Data_Servidor();
                        rPedido.ST_Pedido       = "F";
                        rPedido.St_registro     = "F";
                        rPedido.Cd_moeda        = rCfg.Cd_moeda;
                        rPedido.Tp_frete        = decimal.Divide(decimal.Parse(ePed.shipping_amount.SoNumero()), 10000) > 0 ? "1" : "9";
                        rPedido.QUANTIDADENF    = decimal.Divide(decimal.Parse(ePed.total_qty_ordered.SoNumero()), 10000);
                        //Endereco Entrega
                        TEndereco_CEPRest endRest = ServiceRest.DataService.BuscarEndCEPRest(ePed.shipping_address.postcode.Trim());
                        if (endRest != null)
                        {
                            rPedido.Logradouroent  = endRest.logradouro;
                            rPedido.Complementoent = endRest.complemento;
                            rPedido.Bairroent      = endRest.bairro;
                            rPedido.Cd_cidadeent   = endRest.ibge;
                        }
                        string[] eEnt = ePed.shipping_address.street.Split(new char[] { '\n' });
                        if (eEnt.Length >= 4)
                        {
                            rPedido.Logradouroent  = eEnt[0];
                            rPedido.Numeroent      = eEnt[1];
                            rPedido.Complementoent = eEnt[2];
                            rPedido.Bairroent      = eEnt[3];
                        }
                        //Itens do pedido
                        foreach (salesOrderItemEntity item in ePed.items)
                        {
                            foreach (salesOrderItemEntity nitem in ePed.items)
                            {
                                if (item.sku.ToString().Equals(nitem.sku.ToString()) &&
                                    decimal.Divide(decimal.Parse(nitem.price.SoNumero()), 10000) == decimal.Zero)
                                {
                                    item.name       = nitem.name;
                                    item.product_id = nitem.product_id;
                                    break;
                                }
                            }

                            if (decimal.Divide(decimal.Parse(item.price.SoNumero()), 10000) > decimal.Zero)
                            {
                                TRegistro_LanPedido_Item rItem = new TRegistro_LanPedido_Item();
                                rItem.Cd_referencia = item.product_id;
                                //Buscar Produto
                                CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                                    new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                                        new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.codigo_alternativo",
                                        vOperador = "=",
                                        vVL_Busca = "'" + item.product_id.Trim() + "'"
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "isnull(a.st_registro, 'A')",
                                        vOperador = "<>",
                                        vVL_Busca = "'C'"
                                    }
                                }, 1, string.Empty, string.Empty, string.Empty);
                                if (lProd.Count > 0)
                                {
                                    rItem.Cd_produto       = lProd[0].CD_Produto;
                                    rItem.Ds_produto       = lProd[0].DS_Produto;
                                    rItem.Cd_unidade_est   = lProd[0].CD_Unidade;
                                    rItem.Ds_unidade_est   = lProd[0].DS_Unidade;
                                    rItem.Sg_unidade_est   = lProd[0].Sigla_unidade;
                                    rItem.Cd_unidade_valor = lProd[0].CD_Unidade;
                                    rItem.Ds_unidade_valor = lProd[0].DS_Unidade;
                                    rItem.Sg_unidade_valor = lProd[0].Sigla_unidade;
                                }
                                else
                                {
                                    rItem.Ds_produto = item.name.Trim().ToUpper();
                                }
                                rItem.Quantidade  = decimal.Divide(decimal.Parse(item.qty_ordered.SoNumero()), 10000);
                                rItem.Vl_unitario = decimal.Divide(decimal.Parse(item.price.SoNumero()), 10000);
                                rItem.Vl_subtotal = decimal.Divide(decimal.Parse(item.row_total.SoNumero()), 10000);
                                rItem.Vl_desc     = decimal.Divide(decimal.Parse(item.discount_amount.SoNumero()), 10000);
                                rItem.Cd_local    = rCfg.Cd_local;
                                rPedido.Pedido_Itens.Add(rItem);
                            }
                            //Ratear Frete
                            rPedido.Vl_frete = decimal.Divide(decimal.Parse(ePed.shipping_amount.SoNumero()), 10000);
                            if (rPedido.Vl_frete > decimal.Zero)
                            {
                                CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Rateia_Frete(rPedido);
                            }
                            bsPedido.DataSource = new TList_Pedido {
                                rPedido
                            };
                        }
                    }
                    gPedido.Enabled    = false;
                    bbImportar.Enabled = false;
                    tlpPedido.ColumnStyles[1].Width = 623;
                }
                catch (Exception ex)
                { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                finally
                { api.endSession(sessao); }
            }
        }