Example #1
0
 private void BuscarProduto()
 {
     if (cbEmpresa.SelectedItem == null)
     {
         MessageBox.Show("Obrigatório informar empresa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         return;
     }
     TpBusca[] filtro = new TpBusca[1];
     //Descartar produtos cancelados
     filtro[0].vNM_Campo = "isnull(a.st_registro, 'A')";
     filtro[0].vOperador = "<>";
     filtro[0].vVL_Busca = "'C'";
     CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;
     if (string.IsNullOrEmpty(cd_produto.Text))
     {
         rProd = UtilPesquisa.BuscarProduto(string.Empty,
                                            cbEmpresa.SelectedValue.ToString(),
                                            string.Empty,
                                            string.Empty,
                                            null,
                                            filtro);
     }
     else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length)
     {
         rProd = UtilPesquisa.BuscarProduto(cd_produto.Text,
                                            cbEmpresa.SelectedValue.ToString(),
                                            string.Empty,
                                            string.Empty,
                                            null,
                                            filtro);
     }
     else
     {
         //Buscar Produto
         Estruturas.CriarParametro(ref filtro,
                                   string.Empty,
                                   "(a.cd_produto like '%" + cd_produto.Text.Trim() + "') or " +
                                   "(a.Codigo_Alternativo = '" + (cd_produto.TextOld != null ? cd_produto.TextOld.ToString() : cd_produto.Text.Trim()) + "') or " +
                                   "(exists(select 1 from tb_est_codbarra x " +
                                   "           where x.cd_produto = a.cd_produto " +
                                   "           and x.cd_codbarra = '" + cd_produto.Text.Trim() + "'))", string.Empty);
         CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
             new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(filtro, 0, string.Empty, string.Empty, string.Empty);
         if (lProd.Count > 0)
         {
             rProd = lProd[0];
         }
     }
     if (rProd != null)
     {
         CdProduto.Text = rProd.CD_Produto;
         dsProduto.Text = rProd.DS_Produto;
         dtAbast.Focus();
     }
     else
     {
         cd_produto.Focus();
     }
     cd_produto.Clear();
 }
Example #2
0
 private void BuscarProduto()
 {
     CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;
     if (string.IsNullOrEmpty(CD_Produto.Text))
     {
         rProd = FormBusca.UtilPesquisa.BuscarProduto(string.Empty,
                                                      string.Empty,
                                                      string.Empty,
                                                      string.Empty,
                                                      new Componentes.EditDefault[] { CD_Produto, DS_Produto },
                                                      null);
     }
     else if (CD_Produto.Text.SoNumero().Trim().Length != CD_Produto.Text.Trim().Length)
     {
         rProd = FormBusca.UtilPesquisa.BuscarProduto(CD_Produto.Text,
                                                      string.Empty,
                                                      string.Empty,
                                                      string.Empty,
                                                      new Componentes.EditDefault[] { CD_Produto, DS_Produto },
                                                      null);
     }
     else
     {
         CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
             new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                 new Utils.TpBusca[]
         {
             new Utils.TpBusca()
             {
                 vNM_Campo = "isnull(a.st_registro, 'A')",
                 vOperador = "<>",
                 vVL_Busca = "'C'"
             },
             new Utils.TpBusca()
             {
                 vNM_Campo = string.Empty,
                 vOperador = string.Empty,
                 vVL_Busca = "(a.cd_produto like '%" + CD_Produto.Text.Trim() + "') or " +
                             "(a.Codigo_Alternativo = '" + (CD_Produto.TextOld != null ? CD_Produto.TextOld.ToString() : CD_Produto.Text.Trim()) + "') or " +
                             "(exists(select 1 from tb_est_codbarra x " +
                             "           where x.cd_produto = a.cd_produto " +
                             "           and x.cd_codbarra = '" + CD_Produto.Text.Trim() + "'))"
             }
         }, 0, string.Empty, string.Empty, string.Empty);
         if (lProd.Count > 0)
         {
             rProd = lProd[0];
         }
     }
     if (rProd != null)
     {
         CD_Produto.Text = rProd.CD_Produto;
         DS_Produto.Text = rProd.DS_Produto;
     }
     else
     {
         CD_Produto.Clear();
         CD_Produto.Focus();
     }
 }
Example #3
0
 private void bbAltCondfiscal_Click(object sender, EventArgs e)
 {
     if (bsProdutoSimular.Current != null)
     {
         try
         {
             DataRowView linha = UtilPesquisa.BTN_BUSCA("a.DS_CondFiscal_Produto|Condição Fiscal|200;a.CD_CondFiscal_Produto|Código|50",
                                                        null, new CamadaDados.Fiscal.TCD_CadCondFiscalProduto(), string.Empty);
             if (linha != null)
             {
                 CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd =
                     new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                         new Utils.TpBusca[]
                 {
                     new Utils.TpBusca()
                     {
                         vNM_Campo = "a.cd_produto",
                         vOperador = "=",
                         vVL_Busca = "'" + (bsProdutoSimular.Current as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Cd_produto.Trim() + "'"
                     }
                 }, 1, string.Empty, string.Empty, string.Empty)[0];
                 rProd.CD_CondFiscal_Produto = linha["cd_condfiscal_produto"].ToString();
                 CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Gravar(rProd, null);
                 (bsProdutoSimular.Current as CamadaDados.Fiscal.TRegistro_ProdutoSimular).Cd_condfiscal_produto = rProd.CD_CondFiscal_Produto;
                 bsProdutoSimular.ResetCurrentItem();
             }
         }
         catch (Exception ex)
         { MessageBox.Show("Erro alterar produto: " + ex.Message.Trim(), "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); }
     }
 }
Example #4
0
        private void BuscarProduto()
        {
            Utils.TpBusca[] filtro = new Utils.TpBusca[1];
            filtro[0].vNM_Campo = "isnull(e.ST_Servico, 'N')";
            filtro[0].vOperador = "=";
            filtro[0].vVL_Busca = "'S'";

            CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;

            if (string.IsNullOrEmpty(CD_Produto.Text))
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(string.Empty,
                                                             CD_Empresa,
                                                             Nm_empresa,
                                                             CD_TabelaPreco,
                                                             new Componentes.EditDefault[] { CD_Produto, DS_Produto },
                                                             filtro);
            }
            else if (CD_Produto.Text.SoNumero().Trim().Length != CD_Produto.Text.Trim().Length)
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(CD_Produto.Text,
                                                             CD_Empresa,
                                                             Nm_empresa,
                                                             CD_TabelaPreco,
                                                             new Componentes.EditDefault[] { CD_Produto, DS_Produto },
                                                             filtro);
            }
            else
            {
                Array.Resize(ref filtro, filtro.Length + 2);
                filtro[filtro.Length - 2].vNM_Campo = "isnull(a.st_registro, 'A')";
                filtro[filtro.Length - 2].vOperador = "<>";
                filtro[filtro.Length - 2].vVL_Busca = "'C'";
                filtro[filtro.Length - 1].vNM_Campo = string.Empty;
                filtro[filtro.Length - 1].vOperador = string.Empty;
                filtro[filtro.Length - 1].vVL_Busca = "(a.cd_produto like '%" + CD_Produto.Text.Trim() + "') or " +
                                                      "(a.Codigo_Alternativo = '" + (CD_Produto.TextOld != null ? CD_Produto.TextOld.ToString() : CD_Produto.Text.Trim()) + "') or " +
                                                      "(exists(select 1 from tb_est_codbarra x " +
                                                      "           where x.cd_produto = a.cd_produto " +
                                                      "           and x.cd_codbarra = '" + CD_Produto.Text.Trim() + "'))";
                CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                    new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(filtro, 0, string.Empty, string.Empty, string.Empty);
                if (lProd.Count > 0)
                {
                    rProd = lProd[0];
                }
            }

            if (rProd != null)
            {
                CD_Produto.Text    = rProd.CD_Produto;
                DS_Produto.Text    = rProd.DS_Produto;
                DS_Observacao.Text = rProd.DS_Tecnica;
            }
            this.ConsultaPreco();
        }
Example #5
0
        private void BuscarProduto()
        {
            Utils.TpBusca[] filtro = new Utils.TpBusca[1];
            filtro[0].vNM_Campo = "isnull(e.ST_ConsumoInterno, 'N')";
            filtro[0].vOperador = "=";
            filtro[0].vVL_Busca = "'S'";

            CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;

            if (string.IsNullOrEmpty(CD_Produto.Text))
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(string.Empty,
                                                             Cd_empresa,
                                                             string.Empty,
                                                             string.Empty,
                                                             new Componentes.EditDefault[] { CD_Produto, DS_Produto },
                                                             filtro);
            }
            else if (CD_Produto.Text.SoNumero().Trim().Length != CD_Produto.Text.Trim().Length)
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(CD_Produto.Text,
                                                             Cd_empresa,
                                                             string.Empty,
                                                             string.Empty,
                                                             new Componentes.EditDefault[] { CD_Produto, DS_Produto },
                                                             filtro);
            }
            else
            {
                Array.Resize(ref filtro, filtro.Length + 2);
                filtro[filtro.Length - 2].vNM_Campo = "isnull(a.st_registro, 'A')";
                filtro[filtro.Length - 2].vOperador = "<>";
                filtro[filtro.Length - 2].vVL_Busca = "'C'";
                filtro[filtro.Length - 1].vNM_Campo = string.Empty;
                filtro[filtro.Length - 1].vOperador = string.Empty;
                filtro[filtro.Length - 1].vVL_Busca = "(a.cd_produto like '%" + CD_Produto.Text.Trim() + "')";
                CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                    new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(filtro, 0, string.Empty, string.Empty, string.Empty);
                if (lProd.Count > 0)
                {
                    rProd = lProd[0];
                }
            }

            if (rProd != null)
            {
                CD_Produto.Text    = rProd.CD_Produto;
                DS_Produto.Text    = rProd.DS_Produto;
                sigla_unidade.Text = rProd.Sigla_unidade;
            }
            this.ConsultaSaldo_CustoAlmox();
        }
Example #6
0
 private void BuscarProduto()
 {
     if (string.IsNullOrEmpty(cd_produto.Text))
     {
         rProd = UtilPesquisa.BuscarProduto(string.Empty,
                                            string.Empty,
                                            string.Empty,
                                            string.Empty,
                                            null,
                                            null);
     }
     else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length)
     {
         rProd = UtilPesquisa.BuscarProduto(cd_produto.Text,
                                            string.Empty,
                                            string.Empty,
                                            string.Empty,
                                            null,
                                            null);
     }
     else
     {
         TpBusca[] filtro = new TpBusca[0];
         //Buscar Produto
         Estruturas.CriarParametro(ref filtro,
                                   string.Empty,
                                   "(a.cd_produto like '%" + cd_produto.Text.Trim() + "') or " +
                                   "(a.Codigo_Alternativo = '" + (cd_produto.TextOld != null ? cd_produto.TextOld.ToString() : cd_produto.Text.Trim()) + "') or " +
                                   "(exists(select 1 from tb_est_codbarra x " +
                                   "           where x.cd_produto = a.cd_produto " +
                                   "           and x.cd_codbarra = '" + cd_produto.Text.Trim() + "'))", string.Empty);
         CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
             new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(filtro, 0, string.Empty, string.Empty, string.Empty);
         if (lProd.Count > 0)
         {
             rProd = lProd[0];
         }
     }
     if (rProd != null)
     {
         pDsProduto.Text = rProd.DS_Produto;
     }
     cd_produto.Clear();
     cd_produto.Focus();
     bsProdutos.ResetCurrentItem();
     txtEndereco.Focus();
 }
Example #7
0
 private void qtd_devolver_ValueChanged(object sender, EventArgs e)
 {
     if (bsItens.Current != null)
     {
         object obj = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(
             new Utils.TpBusca[]
         {
             new  Utils.TpBusca()
             {
                 vNM_Campo = "a.cd_produto",
                 vOperador = "=",
                 vVL_Busca = "'" + (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_ItensCondicional).Cd_produto.Trim() + "'"
             }
         }, "a.id_caracteristicaH");
         if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString()))
         {
             using (Proc_Commoditties.TFGradeProduto fGrade = new Proc_Commoditties.TFGradeProduto())
             {
                 fGrade.pId_caracteristica = obj.ToString();
                 fGrade.pCd_empresa        = (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_ItensCondicional).Cd_empresa;
                 fGrade.pCd_produto        = (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_ItensCondicional).Cd_produto;
                 fGrade.pDs_produto        = (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_ItensCondicional).Ds_produto;
                 fGrade.pQuantidade        = (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_ItensCondicional).Quantidade;
                 fGrade.pTp_movimento      = "E";
                 if (fGrade.ShowDialog() == DialogResult.OK)
                 {
                     fGrade.lGrade.ForEach(p => (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_ItensCondicional).lGrade.Add(p));
                     qtd_devolver.Value = fGrade.lGrade.Sum(p => p.Vl_mov);
                     //   Quantidade.Enabled = false;
                     //if (vl_unitario.Enabled)
                     //    vl_unitario.Focus();
                     //else if (pc_desconto.Enabled)
                     //    pc_desconto.Focus();
                     //else pc_acrescimo.Focus();
                 }
                 else
                 {
                     MessageBox.Show("Obrigatório informar grade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     bsItens.RemoveCurrent();
                 }
             }
         }
         //AddCarrinho();
         //LoginDesconto = string.Empty;
     }
 }
Example #8
0
        private void TFMateriais_Load(object sender, EventArgs e)
        {
            vFicha = lFicha;
            TList_CadCFGEmpreendimento registro_CadCFG = TCN_CadCFGEmpreendimento.Busca(string.Empty, string.Empty, null);

            if (registro_CadCFG.Count.Equals(0))
            {
                MessageBox.Show("Necessário ter pré-cadastrado configuração empreendimento", "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DialogResult = DialogResult.Abort;
            }
            else if (registro_CadCFG[0].Cd_tabelapreco == null || string.IsNullOrEmpty(registro_CadCFG[0].Cd_tabelapreco))
            {
                MessageBox.Show("Necessário ter pré-cadastrado tabela de preço na configuração do empreendimento", "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DialogResult = DialogResult.Abort;
            }

            vFicha.ForEach(r =>
            {
                object d           = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarPrecoVenda(registro_CadCFG[0].cd_empresa, r.Cd_produto, registro_CadCFG[0].Cd_tabelapreco);
                r.Vl_unitarioAtual = d == null ? 0 : Convert.ToDecimal(d);
            });
            bsMateriais.DataSource = vFicha;
            bsMateriais.ResetBindings(true);
        }
Example #9
0
        public static TList_TaxaDeposito CalcularTaxasExpedicaoPendentes(string Cd_empresa,
                                                                         string Nr_contrato,
                                                                         string Cd_produto,
                                                                         DateTime Dt_calctaxa,
                                                                         string Id_taxa)
        {
            //Buscar lista de taxas de expedicao configurada para o contrato
            TList_CadContratoTaxaDeposito lTaxasContrato = new TCD_CadContratoTaxaDeposito().Select(
                new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.nr_contrato",
                    vOperador = "=",
                    vVL_Busca = Nr_contrato
                },
                new TpBusca()
                {
                    vNM_Campo = "a.st_gerartxsomente",
                    vOperador = "=",
                    vVL_Busca = "'E'"
                },
                new TpBusca()
                {
                    vNM_Campo = "a.id_taxa",
                    vOperador = "=",
                    vVL_Busca = string.IsNullOrEmpty(Id_taxa) ? "a.id_taxa" : Id_taxa
                }
            }, 0, string.Empty);
            TList_TaxaDeposito lTaxaDeposito = new TList_TaxaDeposito();

            lTaxasContrato.ForEach(p =>
            {
                //Para cada taxa buscar saldo carencia
                List <TRegistro_ViewSaldoCarencia> SaldoCarencia =
                    new TCD_SaldoCarenciaTaxa().BuscarSaldoCarencia(Cd_empresa,
                                                                    p.Id_taxastr,
                                                                    p.Nr_contratostr,
                                                                    Cd_produto);
                decimal tmpTotDiasExpirado = decimal.Zero;
                SaldoCarencia.ForEach(v =>
                {
                    tmpTotDiasExpirado = Dt_calctaxa.Subtract(v.DT_Saldo.Date).Subtract(TimeSpan.FromDays(Convert.ToDouble(p.Periodocarencia.ToString()))).Days;
                    if (tmpTotDiasExpirado > 0)
                    {
                        //Buscar unidade do estoque
                        object obj = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.cd_produto",
                                vOperador = "=",
                                vVL_Busca = "'" + Cd_produto.Trim() + "'"
                            }
                        }, "a.cd_unidade");
                        if (obj == null)
                        {
                            throw new Exception("Produto " + Cd_produto.Trim() + " sem unidade cadastrada.");
                        }
                        decimal QTD_Convertida = TCN_CadConvUnidade.ConvertUnid(obj.ToString(), p.Cd_unidadetaxa, v.Tot_Saldo, 3, null);
                        decimal m = ((tmpTotDiasExpirado % p.Frequencia) > 0 ? 1 : 0);
                        decimal t = (Math.Floor(tmpTotDiasExpirado / p.Frequencia) + m);
                        decimal k = (p.Frequencia > 0 ? t : 1);

                        lTaxaDeposito.Add(new TRegistro_TaxaDeposito()
                        {
                            Id_LanTaxa    = 0,
                            Nr_Contrato   = p.Nr_contrato.Value,
                            Cd_produto    = Cd_produto,
                            Id_Reg        = p.Id_reg,
                            Id_Taxa       = p.Id_taxa.Value,
                            Ds_taxa       = p.Ds_taxa,
                            Sigla_produto = p.Sg_unidadetaxa,
                            DT_Lancto     = v.DT_Saldo,
                            Ps_Taxa       = (p.Tp_taxa.Trim().ToUpper().Equals("P") ? Math.Round(v.Tot_Saldo * p.Valortaxa * k / 100, 0) : 0),
                            Vl_Taxa       = (p.Tp_taxa.Trim().ToUpper().Equals("V") ? QTD_Convertida * p.Valortaxa * k : 0),
                            Tp_Lancto     = "A",
                            D_c           = "D"
                        });
                    }
                });
            });
            List <TRegistro_TaxaDeposito> lTaxa = lTaxaDeposito.OrderBy(p => p.DT_Lancto).ToList();

            lTaxaDeposito.Clear();
            lTaxa.ForEach(p => lTaxaDeposito.Add(p));
            return(lTaxaDeposito);
        }
Example #10
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); }
            }
        }
Example #11
0
 private void BuscarProduto()
 {
     if (bsItens.Current != null)
     {
         Utils.TpBusca[] filtro = new Utils.TpBusca[1];
         //Valor
         filtro[0].vNM_Campo = "dbo.F_PRECO_VENDA('" +
                               (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_empresa.Trim() + "'," +
                               "a.cd_produto, '" + (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_tabelapreco.Trim() + "')";
         filtro[0].vOperador = "=";
         filtro[0].vVL_Busca = (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida_Item).Vl_unitario.ToString().Replace(',', '.');
         CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;
         if (string.IsNullOrEmpty(cd_produtobusca.Text))
         {
             rProd = FormBusca.UtilPesquisa.BuscarProduto(string.Empty,
                                                          (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_empresa,
                                                          (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Nm_empresa,
                                                          (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_tabelapreco,
                                                          new Componentes.EditDefault[] { cd_produtobusca, ds_produtobusca },
                                                          filtro);
         }
         else if (cd_produtobusca.Text.SoNumero().Trim().Length != cd_produtobusca.Text.Trim().Length)
         {
             rProd = FormBusca.UtilPesquisa.BuscarProduto(cd_produtobusca.Text,
                                                          (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_empresa,
                                                          (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Nm_empresa,
                                                          (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_tabelapreco,
                                                          new Componentes.EditDefault[] { cd_produtobusca, ds_produtobusca },
                                                          filtro);
         }
         else
         {
             System.Collections.Hashtable vParametros = new System.Collections.Hashtable();
             vParametros.Add("@CD_EMPRESA", string.IsNullOrEmpty((bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_empresa) ?
                             "null" : (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_empresa);
             vParametros.Add("@CD_TABELAPRECO", string.IsNullOrEmpty((bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_tabelapreco) ?
                             "null" : (bsVenda.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida).Cd_tabelapreco);
             CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                 new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                     new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = "isnull(a.st_registro, 'A')",
                     vOperador = "<>",
                     vVL_Busca = "'C'"
                 },
                 new TpBusca()
                 {
                     vNM_Campo = string.Empty,
                     vOperador = string.Empty,
                     vVL_Busca = "(a.cd_produto like '%" + cd_produtobusca.Text.Trim() + "') or " +
                                 "(a.Codigo_Alternativo = '" + (cd_produtobusca.TextOld != null ? cd_produtobusca.TextOld.ToString() : cd_produtobusca.Text.Trim()) + "') or " +
                                 "(exists(select 1 from tb_est_codbarra x " +
                                 "           where x.cd_produto = a.cd_produto " +
                                 "           and x.cd_codbarra = '" + cd_produtobusca.Text.Trim() + "'))"
                 }
             }, 0, string.Empty, string.Empty, string.Empty, vParametros);
             if (lProd.Count > 0)
             {
                 rProd = lProd[0];
             }
         }
         if (rProd != null)
         {
             cd_produtobusca.Text = rProd.CD_Produto;
             ds_produtobusca.Text = rProd.DS_Produto;
             Id_caracteristica    = rProd.Id_caracteristicaH;
             vl_venda.Text        = rProd.Vl_precovenda.ToString("N2", new System.Globalization.CultureInfo("pt-BR"));
             if (rProd.Vl_precovenda != (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida_Item).Vl_unitario)
             {
                 MessageBox.Show("Produto não pode ser trocado!\r\n" +
                                 "Selecione um item com valor de venda igual!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                 cd_produtobusca.Text = string.Empty;
                 ds_produtobusca.Text = string.Empty;
                 vl_venda.Text        = string.Empty;
                 Id_caracteristica    = null;
                 return;
             }
             if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico(rProd.CD_Produto)) &&
                 (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno(rProd.CD_Produto)))
             {
                 if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto(rProd.CD_Produto) &&
                     !new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoPatrimonio(rProd.CD_Produto))
                 {
                     decimal saldo = BuscarSaldoLocal(lCfg[0].Cd_empresa, rProd.CD_Produto);
                     if (saldo < (bsItens.Current as CamadaDados.Faturamento.PDV.TRegistro_VendaRapida_Item).Quantidade)
                     {
                         MessageBox.Show("Não existe saldo disponivel no estoque.\r\n" +
                                         "Empresa.........: " + lCfg[0].Cd_empresa.Trim() + "-" + lCfg[0].Nm_empresa.Trim() + "\r\n" +
                                         "Produto.........: " + rProd.CD_Produto.Trim() + "-" + rProd.DS_Produto.Trim() + "\r\n" +
                                         "Local Arm.......: " + lCfg[0].Cd_local.Trim() + "-" + lCfg[0].Ds_local + "\r\n" +
                                         "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)),
                                         "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         cd_produtobusca.Text = string.Empty;
                         ds_produtobusca.Text = string.Empty;
                         vl_venda.Text        = string.Empty;
                         Id_caracteristica    = null;
                         return;
                     }
                 }
                 else
                 {
                     cd_produtobusca.Text = string.Empty;
                     ds_produtobusca.Text = string.Empty;
                     vl_venda.Text        = string.Empty;
                     Id_caracteristica    = null;
                 }
             }
         }
         else
         {
             cd_produtobusca.Clear();
             cd_produtobusca.Focus();
         }
     }
     else
     {
         cd_produtobusca.Clear();
         cd_produtobusca.Focus();
     }
 }
Example #12
0
        private void BuscarProduto()
        {
            Utils.TpBusca[] filtro = new Utils.TpBusca[3];
            //Retirar Patrimônios
            filtro[0].vNM_Campo = string.Empty;
            filtro[0].vOperador = "not exists";
            filtro[0].vVL_Busca = "(select 1 from TB_EST_Patrimonio x " +
                                  "where a.cd_produto = x.cd_patrimonio " +
                                  "and x.cd_empresa = '" + pCd_empresa + "') ";
            //Retirar Serviço
            filtro[1].vNM_Campo = "isnull(e.st_servico, 'N')";
            filtro[1].vOperador = "<>";
            filtro[1].vVL_Busca = "'S'";
            //Retirar Consumo Interno
            filtro[2].vNM_Campo = "isnull(e.st_consumointerno, 'N')";
            filtro[2].vOperador = "<>";
            filtro[2].vVL_Busca = "'S'";

            CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;
            if (string.IsNullOrEmpty(cd_produto.Text.Trim()))
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(string.Empty,
                                                             pCd_empresa,
                                                             string.Empty,
                                                             string.Empty,
                                                             null,
                                                             filtro);
            }
            else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length)
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(cd_produto.Text,
                                                             pCd_empresa,
                                                             string.Empty,
                                                             string.Empty,
                                                             null,
                                                             filtro);
            }
            else
            {
                CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                    new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                        new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_registro, 'A')",
                        vOperador = "<>",
                        vVL_Busca = "'C'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = string.Empty,
                        vVL_Busca = "(a.cd_produto like '%" + cd_produto.Text.Trim() + "') or " +
                                    "(a.Codigo_Alternativo = '" + (cd_produto.TextOld != null ? cd_produto.TextOld.ToString() : cd_produto.Text.Trim()) + "') or " +
                                    "(exists(select 1 from tb_est_codbarra x " +
                                    "           where x.cd_produto = a.cd_produto " +
                                    "           and x.cd_codbarra = '" + cd_produto.Text.Trim() + "'))"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "not exists",
                        vVL_Busca = "(select 1 from TB_EST_Patrimonio x " +
                                    "where a.cd_produto = x.cd_patrimonio " +
                                    "and x.cd_empresa = '" + pCd_empresa.Trim() + "') "
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(e.st_servico, 'N')",
                        vOperador = "<>",
                        vVL_Busca = "'S'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(e.st_consumointerno, 'N')",
                        vOperador = "<>",
                        vVL_Busca = "'S'"
                    }
                }, 0, string.Empty, string.Empty, string.Empty);
                if (lProd.Count > 0)
                {
                    rProd = lProd[0];
                }
            }
            if (rProd != null)
            {
                try
                {
                    DataGridViewRow linha = gItensCarga.Rows.Cast <DataGridViewRow>().Where(p => p.Cells["pCd_produto"].Value.ToString().Contains(rProd.CD_Produto)).First();
                    if (linha != null)
                    {
                        gItensCarga.Rows[linha.Index].Selected = true;
                        bsItensCarga.Position = linha.Index;
                    }
                    else
                    {
                        MessageBox.Show("Item não encontrado nos Itens presentes na carga!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                }
                catch
                {
                    MessageBox.Show("Item não encontrado nos Itens presentes na carga!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                (bsItensCarga.Current as TRegistro_ItensCargaAvulsa).Qtd_devolvida = 1;
            }
            cd_produto.Clear();
            Quantidade.Value = 1;
            Quantidade.Focus();
            bsItensCarga.ResetCurrentItem();
        }
Example #13
0
        private void ImportNfe(string path)
        {
            if (string.IsNullOrEmpty(path))
            {
                return;
            }
            using (TFImportarNFeCTe fImport = new TFImportarNFeCTe())
            {
                //Leitura do arquivo XML
                XmlDocument xml = new XmlDocument();
                xml.Load(path);
                XmlNodeList lNo = xml.GetElementsByTagName("infNFe");
                if (lNo.Count.Equals(0))
                {
                    MessageBox.Show("XML Invalido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                #region Identificação NFe
                lNo = xml.GetElementsByTagName("ide");
                if (lNo.Count > 0)
                {
                    string tp_mov = string.Empty;
                    foreach (XmlNode no in lNo[0].ChildNodes)
                    {
                        if (no.LocalName.Equals("nNF"))
                        {
                            nr_notafiscal.Text = no.InnerText;
                        }
                        else if (no.LocalName.Equals("dhEmi"))
                        {
                            dt_requisicao.Text = DateTime.Parse(no.InnerText).ToString("dd/MM/yyyy");
                        }
                    }
                }
                #endregion
                #region Emitente NFe
                lNo = xml.GetElementsByTagName("emit");
                //Criar classe Clifor
                rCliforEmit =
                    new CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor();
                //Criar classe Endereco
                CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEndCliforEmit =
                    new CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco();
                if (lNo.Count > 0)
                {
                    foreach (XmlNode no in lNo[0].ChildNodes)
                    {
                        if (no.LocalName.Equals("CNPJ"))
                        {
                            rCliforEmit.Nr_cgc    = no.InnerText;
                            rCliforEmit.Tp_pessoa = "J";
                        }
                        else if (no.LocalName.Equals("CPF"))
                        {
                            rCliforEmit.Nr_cpf    = no.InnerText;
                            rCliforEmit.Tp_pessoa = "F";
                        }
                        else if (no.LocalName.Equals("xNome"))
                        {
                            rCliforEmit.Nm_clifor = no.InnerText;
                        }
                        else if (no.LocalName.Equals("xFant"))
                        {
                            rCliforEmit.Nm_fantasia = no.InnerText;
                        }
                        else if (no.LocalName.Equals("IE"))
                        {
                            rEndCliforEmit.Insc_estadual = no.InnerText;
                        }
                    }
                    //Buscar fornecedor
                    lFornec =
                        CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor(string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.IsNullOrEmpty(rCliforEmit.Nr_cgc.SoNumero()) ? string.Empty : Convert.ToUInt64(rCliforEmit.Nr_cgc).ToString(@"00\.000\.000\/0000\-00"),
                                                                                      string.IsNullOrEmpty(rCliforEmit.Nr_cpf.SoNumero()) ? string.Empty : Convert.ToUInt64(rCliforEmit.Nr_cpf).ToString(@"000\.000\.000\-00"),
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      false,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      1,
                                                                                      null);
                }
                #endregion

                #region Endereco Emitente NFe
                lNo = xml.GetElementsByTagName("enderEmit");
                if (lNo.Count > 0)
                {
                    foreach (XmlNode no in lNo[0].ChildNodes)
                    {
                        if (no.LocalName.Equals("xLgr"))
                        {
                            rEndCliforEmit.Ds_endereco = no.InnerText;
                        }
                        else if (no.LocalName.Equals("nro"))
                        {
                            rEndCliforEmit.Numero = no.InnerText;
                        }
                        else if (no.LocalName.Equals("xCpl"))
                        {
                            rEndCliforEmit.Ds_complemento = no.InnerText;
                        }
                        else if (no.LocalName.Equals("xBairro"))
                        {
                            rEndCliforEmit.Bairro = no.InnerText;
                        }
                        else if (no.LocalName.Equals("cMun"))
                        {
                            rEndCliforEmit.Cd_cidade = no.InnerText;
                        }
                        else if (no.LocalName.Equals("xMun"))
                        {
                            rEndCliforEmit.DS_Cidade = no.InnerText;
                        }
                        else if (no.LocalName.Equals("CEP"))
                        {
                            rEndCliforEmit.Cep = no.InnerText;
                        }
                        else if (no.LocalName.Equals("fone"))
                        {
                            rEndCliforEmit.Fone = no.InnerText;
                        }
                        else if (no.LocalName.Equals("UF"))
                        {
                            rEndCliforEmit.UF = no.InnerText;
                        }
                    }
                    //Buscar endereco fornecedor
                    if (lFornec.Count > 0)
                    {
                        CamadaDados.Financeiro.Cadastros.TList_CadEndereco lEnd =
                            CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(lFornec[0].Cd_clifor,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.IsNullOrEmpty(rEndCliforEmit.Cep.SoNumero()) ? string.Empty : rEndCliforEmit.Cep,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      string.Empty,
                                                                                      1,
                                                                                      null);
                    }
                }
                #endregion

                #region Destinatario NFe
                lNo = xml.GetElementsByTagName("dest");
                if (lNo.Count > 0)
                {
                    string cnpj_dest = string.Empty;
                    foreach (XmlNode no in lNo[0].ChildNodes)
                    {
                        if (no.LocalName.Equals("CNPJ"))
                        {
                            cnpj_dest = no.InnerText;
                        }
                    }
                    if (new CamadaDados.Diversos.TCD_CadEmpresa().BuscarEscalar(
                            new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from VTB_FIN_Clifor x " +
                                        "where a.cd_clifor = x.cd_clifor " +
                                        "and x.nr_cgc = '" + rCliforEmit.Nr_cgc.Trim() + "')"
                        }
                    }, "1") == null)
                    {
                        MessageBox.Show("Destinatário do XML não se encontra cadastrado como empresa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    rCliforEmit.lEndereco.Add(rEndCliforEmit);
                    if (lFornec.Count > 0)
                    {
                        (bsAbastecimento.Current as CamadaDados.Frota.TRegistro_AbastVeiculo).Cd_fornecedor = lFornec[0].Cd_clifor;
                        nm_fornecedor.Text = lFornec[0].Nm_clifor;
                    }
                }
                #endregion

                #region Itens da NFe
                //Buscar Combustivel
                lNo = xml.GetElementsByTagName("det");
                if (lNo.Count == 1)
                {
                    foreach (XmlNode no in lNo)
                    {
                        rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_ItensXMLNFe();
                        foreach (XmlNode noF in no.ChildNodes)
                        {
                            if (noF.LocalName.Equals("prod"))
                            {
                                foreach (XmlNode noP in noF.ChildNodes)
                                {
                                    if (noP.LocalName.Equals("cProd"))
                                    {
                                        rItem.Cd_produto_xml = noP.InnerText;
                                    }
                                    else if (noP.LocalName.Equals("xProd"))
                                    {
                                        rItem.Ds_produto_xml = noP.InnerText;
                                    }
                                    else if (noP.LocalName.Equals("qCom"))
                                    {
                                        volume_requisicao.Value = decimal.Parse(noP.InnerText, new System.Globalization.CultureInfo("en-US"));
                                        rItem.Quantidade_xml    = volume_requisicao.Value;
                                    }
                                    else if (noP.LocalName.Equals("vUnCom"))
                                    {
                                        vl_unitario.Value = decimal.Parse(noP.InnerText, new System.Globalization.CultureInfo("en-US"));
                                    }
                                    else if (noP.LocalName.Equals("vProd"))
                                    {
                                        vl_subtotal.Value = decimal.Parse(noP.InnerText, new System.Globalization.CultureInfo("en-US"));
                                    }
                                }
                            }
                        }
                        //Buscar produto no sistema
                        if (rCliforEmit != null)
                        {
                            CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                                new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                                    new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "isnull(a.st_registro, 'A')",
                                    vOperador = "<>",
                                    vVL_Busca = "'C'"
                                },
                                new TpBusca()
                                {
                                    vNM_Campo = string.Empty,
                                    vOperador = "exists",
                                    vVL_Busca = "(select 1 from TB_EST_Produto_X_Fornecedor x " +
                                                "where x.cd_produto = a.cd_produto " +
                                                "and x.codigo_fornecedor = '" + rItem.Cd_produto_xml.Trim() + "' " +
                                                "and x.cd_fornecedor = '" + lFornec[0].Cd_clifor.Trim() + "')"
                                }
                            }, 1, string.Empty, string.Empty, string.Empty);
                            if (lProd.Count.Equals(1))
                            {
                                rItem.rProd      = lProd[0];
                                rItem.Cd_produto = lProd[0].CD_Produto;
                                rItem.Ds_produto = lProd[0].DS_Produto;
                                cd_produto.Text  = rItem.Cd_produto;
                                ds_produto.Text  = rItem.Ds_produto;
                            }
                            (bsAbastecimento.Current as CamadaDados.Frota.TRegistro_AbastVeiculo).rProdForn = rItem;
                        }
                        #endregion
                        if (!System.IO.Directory.Exists(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp"))
                        {
                            System.IO.Directory.CreateDirectory(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp");
                        }
                        if (!System.IO.File.Exists(Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" +
                                                   System.IO.Path.DirectorySeparatorChar.ToString() + path.Substring(path.LastIndexOf("\\"), path.Trim().Length - path.LastIndexOf("\\"))))
                        {
                            System.IO.File.Move(path,
                                                Utils.SettingsUtils.Default.Path_XML_NFe_CTe + System.IO.Path.DirectorySeparatorChar.ToString() + "bkp" +
                                                System.IO.Path.DirectorySeparatorChar.ToString() + path.Substring(path.LastIndexOf("\\"), path.Trim().Length - path.LastIndexOf("\\")));
                        }
                    }
                }
            }
        }
Example #14
0
 private void Quantidade_Leave(object sender, EventArgs e)
 {
     if (bsItens.Current != null)
     {
         (bsItens.Current as TRegistro_ItensCondicional).Quantidade = Quantidade.Value;
         if (lCfg[0].St_movestoquebool)
         {
             if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico((bsItens.Current as TRegistro_ItensCondicional).Cd_produto)) &&
                 (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno((bsItens.Current as TRegistro_ItensCondicional).Cd_produto)))
             {
                 if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto((bsItens.Current as TRegistro_ItensCondicional).Cd_produto))
                 {
                     decimal saldo = BuscarSaldoLocal((bsItens.Current as TRegistro_ItensCondicional).Cd_produto);
                     if (saldo < Quantidade.Value)
                     {
                         MessageBox.Show("Não existe saldo disponivel no estoque.\r\n" +
                                         "Empresa.........: " + cd_empresa.Text.Trim() + "-" + nm_empresa.Text.Trim() + "\r\n" +
                                         "Produto.........: " + (bsItens.Current as TRegistro_ItensCondicional).Cd_produto.Trim() + "-" +
                                         (bsItens.Current as TRegistro_ItensCondicional).Ds_produto.Trim() + "\r\n" +
                                         "Local Arm.......: " + lCfg[0].Cd_local.Trim() + "-" + lCfg[0].Ds_local + "\r\n" +
                                         "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)),
                                         "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         Quantidade.Focus();
                         Quantidade.Value = decimal.Zero;
                         (bsItens.Current as TRegistro_ItensCondicional).Quantidade = Quantidade.Value;
                         return;
                     }
                 }
                 else
                 {
                     //Buscar ficha tecnica produto composto
                     CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha =
                         CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar((bsItens.Current as TRegistro_ItensCondicional).Cd_produto, string.Empty, null);
                     lFicha.ForEach(p => p.Quantidade = p.Quantidade * Quantidade.Value);
                     CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.MontarFichaTec(string.Empty, string.Empty, lFicha, null);
                     //Buscar saldo itens da ficha tecnica
                     string msg = string.Empty;
                     lFicha.ForEach(p =>
                     {
                         //Buscar saldo estoque do item
                         decimal saldo = decimal.Zero;
                         CamadaNegocio.Estoque.TCN_LanEstoque.SaldoEstoqueLocal(cd_empresa.Text, p.Cd_item, lCfg[0].Cd_local, ref saldo, null);
                         if (saldo < p.Quantidade)
                         {
                             msg += "Produto.........: " + p.Cd_item.Trim() + "-" + p.Ds_item.Trim() + "\r\n" +
                                    "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)) + "\r\n";
                         }
                     });
                     if (!string.IsNullOrEmpty(msg))
                     {
                         msg = "Produto Composto contem itens da ficha tecnica sem saldo em estoque para concretizar a venda.\r\n" + msg.Trim();
                         MessageBox.Show(msg, "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         Quantidade.Focus();
                         Quantidade.Value = decimal.Zero;
                         (bsItens.Current as TRegistro_ItensCondicional).Quantidade = Quantidade.Value;
                         return;
                     }
                 }
             }
         }
         bsItens.ResetCurrentItem();
         if (bsItens.Current != null)
         {
             object obj = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(
                 new TpBusca[]
             {
                 new TpBusca()
                 {
                     vNM_Campo = "a.cd_produto",
                     vOperador = "=",
                     vVL_Busca = "'" + (bsItens.Current as TRegistro_ItensCondicional).Cd_produto.Trim() + "'"
                 }
             }, "a.id_caracteristicaH");
             if (obj == null ? false : !string.IsNullOrEmpty(obj.ToString()))
             {
                 using (Proc_Commoditties.TFGradeProduto fGrade = new Proc_Commoditties.TFGradeProduto())
                 {
                     fGrade.pId_caracteristica = obj.ToString();
                     fGrade.pCd_empresa        = cd_empresa.Text;
                     fGrade.pCd_produto        = (bsItens.Current as TRegistro_ItensCondicional).Cd_produto;
                     fGrade.pDs_produto        = (bsItens.Current as TRegistro_ItensCondicional).Ds_produto;
                     fGrade.pQuantidade        = (bsItens.Current as TRegistro_ItensCondicional).Quantidade;
                     fGrade.pTp_movimento      = "S";
                     if (fGrade.ShowDialog() == DialogResult.OK)
                     {
                         fGrade.lGrade.ForEach(p => (bsItens.Current as TRegistro_ItensCondicional).lGrade.Add(p));
                         Quantidade.Value   = fGrade.lGrade.Sum(p => p.Vl_mov);
                         Quantidade.Enabled = false;
                     }
                     else
                     {
                         MessageBox.Show("Obrigatório informar grade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                         bsItens.RemoveCurrent();
                     }
                 }
             }
         }
         TotalizarVenda();
         if (!cd_produto.Focused)
         {
             vl_unit.Focus();
         }
         bsItens_PositionChanged(this, new EventArgs());
     }
 }
Example #15
0
 private void BuscarProduto()
 {
     if (cbEmpresa.SelectedValue == null)
     {
         MessageBox.Show("Obrigatório informar empresa!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
         return;
     }
     TpBusca[] filtro = new TpBusca[3];
     //Buscar somente produto que possuem Patrimônio cadastrado
     filtro[0].vNM_Campo = string.Empty;
     filtro[0].vOperador = "exists";
     filtro[0].vVL_Busca = "(select 1 from TB_EST_Patrimonio x " +
                           "where a.cd_produto = x.cd_patrimonio " +
                           "and x.cd_empresa = '" + cbEmpresa.SelectedValue.ToString().Trim() + "') ";
     //Descartar produtos que já estão cadastrados
     filtro[1].vNM_Campo = string.Empty;
     filtro[1].vOperador = "not exists";
     filtro[1].vVL_Busca = "(select 1 from TB_LOC_ItensLocTerceiro x " +
                           "inner join TB_LOC_LocTerceiro y " +
                           "on x.CD_Empresa = y.CD_Empresa " +
                           "and x.ID_Loc = y.ID_Loc " +
                           "and isnull(y.ST_Registro, 'A') = 'A' " +
                           "and isnull(x.st_registro, 'A') <> 'C' " +
                           "and x.cd_patrimonio = a.cd_produto)";
     //Descartar produtos cancelados
     filtro[2].vNM_Campo = "isnull(a.st_registro, 'A')";
     filtro[2].vOperador = "<>";
     filtro[2].vVL_Busca = "'C'";
     //Descartar itens correntes já lançados na tela atual.
     for (int i = 0; (bsLocTerceiro.Current as TRegistro_LocTerceiro).lItens.Count > i; i++)
     {
         Estruturas.CriarParametro(ref filtro,
                                   "a.cd_produto",
                                   "'" + (bsLocTerceiro.Current as TRegistro_LocTerceiro).lItens[i].Cd_patrimonio.Trim() + "'",
                                   "<>");
     }
     CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;
     if (string.IsNullOrEmpty(cd_produto.Text))
     {
         rProd = UtilPesquisa.BuscarProduto(string.Empty,
                                            cbEmpresa.SelectedValue.ToString(),
                                            string.Empty,
                                            string.Empty,
                                            null,
                                            filtro);
     }
     else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length)
     {
         rProd = UtilPesquisa.BuscarProduto(cd_produto.Text,
                                            cbEmpresa.SelectedValue.ToString(),
                                            string.Empty,
                                            string.Empty,
                                            null,
                                            filtro);
     }
     else
     {
         //Buscar Produto
         Estruturas.CriarParametro(ref filtro,
                                   string.Empty,
                                   "(a.cd_produto like '%" + cd_produto.Text.Trim() + "') or " +
                                   "(a.Codigo_Alternativo = '" + (cd_produto.TextOld != null ? cd_produto.TextOld.ToString() : cd_produto.Text.Trim()) + "') or " +
                                   "(exists(select 1 from tb_est_codbarra x " +
                                   "           where x.cd_produto = a.cd_produto " +
                                   "           and x.cd_codbarra = '" + cd_produto.Text.Trim() + "'))", string.Empty);
         CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
             new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(filtro, 0, string.Empty, string.Empty, string.Empty);
         if (lProd.Count > 0)
         {
             rProd = lProd[0];
         }
     }
     if (rProd != null)
     {
         bsItens.AddNew();
         (bsItens.Current as TRegistro_ItensLocTerceiro).Cd_patrimonio = rProd.CD_Produto;
         (bsItens.Current as TRegistro_ItensLocTerceiro).Ds_patrimonio = rProd.DS_Produto;
         (bsItens.Current as TRegistro_ItensLocTerceiro).Dt_ini        = CamadaDados.UtilData.Data_Servidor();
         (bsItens.Current as TRegistro_ItensLocTerceiro).Obs           = ObsItem.Text;
         if (new CamadaDados.Estoque.Cadastros.TCD_CadPatrimonio().BuscarEscalar(
                 new TpBusca[]
         {
             new TpBusca {
                 vNM_Campo = "a.CD_Patrimonio", vOperador = "=", vVL_Busca = "'" + rProd.CD_Produto.Trim() + "'"
             },
             new TpBusca {
                 vNM_Campo = "isnull(a.st_controlehora, 'N')", vOperador = "=", vVL_Busca = "'S'"
             }
         }, "1") != null)
         {
             using (TFListaProdutoItem fLista = new TFListaProdutoItem())
             {
                 if (fLista.ShowDialog() == DialogResult.OK)
                 {
                     if (fLista.lProd != null)
                     {
                         fLista.lProd.ForEach(x => (bsItens.Current as TRegistro_ItensLocTerceiro).ProdutoItens.Add(x));
                     }
                     fLista.lProdDel.ForEach(x => (bsItens.Current as TRegistro_ItensLocTerceiro).ProdutoItensDel.Add(x));
                 }
             }
         }
         bsItens_PositionChanged(this, new EventArgs());
     }
     cd_produto.Clear();
     cd_produto.Focus();
     bsItens.ResetCurrentItem();
 }
Example #16
0
        private void BuscarProduto()
        {
            if (!CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin,
                                                                              "PERMITIR INFORMAR PREÇO VENDA",
                                                                              null))
            {
                if (string.IsNullOrEmpty(rOrc.Cd_empresa))
                {
                    MessageBox.Show("Informe a Empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                if (string.IsNullOrEmpty(rOrc.Cd_tabelapreco))
                {
                    MessageBox.Show("Informe a Tabela de Preço.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }
            if (string.IsNullOrEmpty(rOrc.Cd_vendedor))
            {
                MessageBox.Show("Informe o Vendedor!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                cd_produto.Clear();
                cd_produto.Focus();
                return;
            }
            CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;
            if (string.IsNullOrEmpty(cd_produto.Text))
            {
                rProd = UtilPesquisa.BuscarProduto(string.Empty,
                                                   rOrc.Cd_empresa,
                                                   string.Empty,
                                                   rOrc.Cd_tabelapreco,
                                                   new Componentes.EditDefault[] { cd_produto },
                                                   null);
            }
            else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length)
            {
                rProd = UtilPesquisa.BuscarProduto(cd_produto.Text,
                                                   rOrc.Cd_empresa,
                                                   string.Empty,
                                                   rOrc.Cd_tabelapreco,
                                                   new Componentes.EditDefault[] { cd_produto },
                                                   null);
            }
            else
            {
                CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                    new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                        new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_registro, 'A')",
                        vOperador = "<>",
                        vVL_Busca = "'C'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = string.Empty,
                        vVL_Busca = "(a.cd_produto like '%" + cd_produto.Text.Trim() + "') or " +
                                    "(a.Codigo_Alternativo = '" + (cd_produto.TextOld != null ? cd_produto.TextOld.ToString() : cd_produto.Text.Trim()) + "') or " +
                                    "(exists(select 1 from tb_est_codbarra x " +
                                    "           where x.cd_produto = a.cd_produto " +
                                    "           and x.cd_codbarra = '" + cd_produto.Text.Trim() + "'))"
                    }
                }, 0, string.Empty, string.Empty, string.Empty);
                if (lProd.Count > 0)
                {
                    rProd = lProd[0];
                }
            }
            if (rProd != null)
            {
                cd_produto.Text = rProd.CD_Produto;
                //Cria novo item
                bsItens.Clear();
                bsItens.AddNew();
                St_insert = true;
                (bsItens.Current as TRegistro_Orcamento_Item).Cd_produto            = rProd.CD_Produto;
                (bsItens.Current as TRegistro_Orcamento_Item).Ds_produto            = rProd.DS_Produto;
                (bsItens.Current as TRegistro_Orcamento_Item).Cd_grupo              = rProd.CD_Grupo;
                (bsItens.Current as TRegistro_Orcamento_Item).Cd_condfiscal_produto = rProd.CD_CondFiscal_Produto;
                (bsItens.Current as TRegistro_Orcamento_Item).Cd_unid_produto       = rProd.CD_Unidade;
                (bsItens.Current as TRegistro_Orcamento_Item).Sigla_unid_produto    = rProd.Sigla_unidade;
                (bsItens.Current as TRegistro_Orcamento_Item).Quantidade            = Quantidade.Value;

                Ds_fichaTec = rProd.DS_TecnicaAssistencia;
                if (bsItens.Current != null)
                {
                    (bsItens.Current as TRegistro_Orcamento_Item).Cd_grupo = rProd.CD_Grupo;
                    (bsItens.Current as TRegistro_Orcamento_Item).Cd_condfiscal_produto = rProd.CD_CondFiscal_Produto;
                    (bsItens.Current as TRegistro_Orcamento_Item).Ds_condfiscal_produto = rProd.DS_CondFiscal_Produto;
                }
                ConsultaPreco();
                BuscarFichaTecItem();
                bsItens_PositionChanged(this, new EventArgs());
                Quantidade.Focus();
            }
            else
            {
                cd_produto.Clear();
                cd_produto.Focus();
            }
            //LoginDesconto = string.Empty;
        }
Example #17
0
        private void BuscarProduto()
        {
            Utils.TpBusca[] filtro = new Utils.TpBusca[3];
            //Retirar Patrimônios
            filtro[0].vNM_Campo = string.Empty;
            filtro[0].vOperador = "not exists";
            filtro[0].vVL_Busca = "(select 1 from TB_EST_Patrimonio x " +
                                  "where a.cd_produto = x.cd_patrimonio " +
                                  "and x.cd_empresa = '" + cbEmpresa.SelectedValue.ToString().Trim() + "') ";
            //Retirar Serviço
            filtro[1].vNM_Campo = "isnull(e.st_servico, 'N')";
            filtro[1].vOperador = "<>";
            filtro[1].vVL_Busca = "'S'";
            //Retirar Consumo Interno
            filtro[2].vNM_Campo = "isnull(e.st_consumointerno, 'N')";
            filtro[2].vOperador = "<>";
            filtro[2].vVL_Busca = "'S'";

            CamadaDados.Estoque.Cadastros.TRegistro_CadProduto rProd = null;
            if (string.IsNullOrEmpty(cd_produto.Text.Trim()))
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(string.Empty,
                                                             cbEmpresa.SelectedValue.ToString(),
                                                             string.Empty,
                                                             string.Empty,
                                                             null,
                                                             filtro);
            }
            else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length)
            {
                rProd = FormBusca.UtilPesquisa.BuscarProduto(cd_produto.Text,
                                                             cbEmpresa.SelectedValue.ToString(),
                                                             string.Empty,
                                                             string.Empty,
                                                             null,
                                                             filtro);
            }
            else
            {
                CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                    new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                        new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_registro, 'A')",
                        vOperador = "<>",
                        vVL_Busca = "'C'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = string.Empty,
                        vVL_Busca = "(a.cd_produto like '%" + cd_produto.Text.Trim() + "') or " +
                                    "(a.Codigo_Alternativo = '" + (cd_produto.TextOld != null ? cd_produto.TextOld.ToString() : cd_produto.Text.Trim()) + "') or " +
                                    "(exists(select 1 from tb_est_codbarra x " +
                                    "           where x.cd_produto = a.cd_produto " +
                                    "           and x.cd_codbarra = '" + cd_produto.Text.Trim() + "'))"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "not exists",
                        vVL_Busca = "(select 1 from TB_EST_Patrimonio x " +
                                    "where a.cd_produto = x.cd_patrimonio " +
                                    "and x.cd_empresa = '" + cbEmpresa.SelectedValue.ToString().Trim() + "') "
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(e.st_servico, 'N')",
                        vOperador = "<>",
                        vVL_Busca = "'S'"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "isnull(e.st_consumointerno, 'N')",
                        vOperador = "<>",
                        vVL_Busca = "'S'"
                    }
                }, 0, string.Empty, string.Empty, string.Empty);
                if (lProd.Count > 0)
                {
                    rProd = lProd[0];
                }
            }
            if (rProd != null)
            {
                bsItens.AddNew();
                (bsItens.Current as TRegistro_ItensCargaAvulsa).Cd_produto = rProd.CD_Produto;
                (bsItens.Current as TRegistro_ItensCargaAvulsa).Ds_produto = rProd.DS_Produto;
                (bsItens.Current as TRegistro_ItensCargaAvulsa).Quantidade = 1;
                if (!BuscarSaldoLocal(cbEmpresa.SelectedValue.ToString(),
                                      (bsItens.Current as TRegistro_ItensCargaAvulsa).Cd_produto,
                                      false))
                {
                    cd_produto.Clear();
                    bsItens.ResetCurrentItem();
                    cd_produto.Focus();
                    return;
                }
            }
            cd_produto.Clear();
            Quantidade.Value = 1;
            Quantidade.Focus();
            bsItens.ResetCurrentItem();
        }
Example #18
0
        private void InserirLote()
        {
            if (bsLoteSemente.Current != null)
            {
                if (quantidade.Value > 0)
                {
                    //Montar observacao
                    string obs       = string.Empty;
                    bool   st_folhar = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoFolhares((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_produto);
                    if (!string.IsNullOrEmpty((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Renasem))
                    {
                        obs += (st_folhar ? "Registro: " : "Renasem:") + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Renasem.Trim() + " ";
                    }
                    //Formulação
                    if (!string.IsNullOrEmpty((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Ds_formulacao))
                    {
                        obs += "Formulação: " + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Ds_formulacao.Trim() + " ";
                    }
                    //Lote
                    if (!string.IsNullOrEmpty((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Nr_lote))
                    {
                        obs += "Lote:" + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Nr_lote.Trim() + " ";
                    }
                    //Atestado
                    if (!string.IsNullOrEmpty((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_atestado))
                    {
                        obs += "Atest.:" + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_atestado.Trim() + " ";
                    }
                    //Certificado
                    if (!string.IsNullOrEmpty((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_certificado))
                    {
                        obs += "Cert.:" + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Cd_certificado.Trim() + " ";
                    }
                    //% Germinação
                    if ((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Pc_germinacao > decimal.Zero)
                    {
                        obs += "%Germ.:" + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Pc_germinacao.ToString("N2", new System.Globalization.CultureInfo("pt-BR", true));
                    }
                    //% Pureza
                    if ((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Pc_pureza > decimal.Zero)
                    {
                        obs += "%Pureza:" + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Pc_pureza.ToString("N2", new System.Globalization.CultureInfo("pt-BR", true));
                    }
                    //Nº Conformidade
                    if (!string.IsNullOrEmpty((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Conformidade))
                    {
                        obs += "Conformidade:" + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Conformidade.Trim() + " ";
                    }
                    //Val.Germ
                    if ((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Dt_valgerminacao.HasValue)
                    {
                        obs += "Val.Germ:" + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Dt_valgerminacaostr + " ";
                    }
                    //Quantidade
                    obs += "Qtde " + (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Sigla_unidade.Trim() + ":" + quantidade.Value.ToString("N0", new System.Globalization.CultureInfo("pt-BR", true));

                    //Verificar se o item ja existe na lista
                    int index = ItenExiste();
                    if (index >= 0)
                    {
                        //Excluir registro atual
                        bsLoteNf.RemoveAt(index);
                    }
                    decimal?id_formula = null;
                    if ((bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Tp_lote.Trim().ToUpper().Equals("P"))
                    {
                        if (CamadaNegocio.ConfigGer.TCN_CadParamGer.BuscaVL_Bool("APONT_PRODUCAO_SEMENTE", Cd_empresa.Trim(), null).Trim().ToUpper().Equals("S"))
                        {
                            if (Tp_mov.Trim().ToUpper().Equals("E"))
                            {
                                using (TFFormulaEstornoSemente fFormula = new TFFormulaEstornoSemente())
                                {
                                    fFormula.rSemente = (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente);
                                    if (fFormula.ShowDialog() == DialogResult.OK)
                                    {
                                        id_formula = fFormula.rSemente.Id_formestorno;
                                    }
                                }
                            }
                        }
                        if (!BuscarNfOrigemLote())
                        {
                            MessageBox.Show("Obrigatorio informar origem do produto.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                    }
                    bsLoteNf.Add(
                        new CamadaDados.Sementes.TRegistro_LoteSemente_X_NFItem()
                    {
                        Cd_empresa     = Cd_empresa,
                        Cd_produto     = Cd_produto,
                        Ds_produto     = Ds_produto,
                        Id_lote        = (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Id_lote,
                        Quantidade     = quantidade.Value,
                        Sigla_unidade  = (bsLoteSemente.Current as CamadaDados.Sementes.TRegistro_LoteSemente).Sigla_unidade,
                        Tp_movimento   = St_devolucao ?  "D" : "V",
                        Ds_obsNfItem   = obs,
                        Id_formestorno = id_formula
                    });
                    qtd_totallote.Value = SomarLote();
                }
                else
                {
                    MessageBox.Show("Necessario informar quantidade para adicionar a lista.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Necessario selecionar lote para adicionar a lista.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            qtd_totallote.Value = SomarLote();
            bsLoteSemente.MoveNext();
        }
Example #19
0
        public static CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento ProcessarEmpreendimento(string tp_nota, string Cd_clifor,
                                                                                                          TRegistro_Orcamento rOrcamento, List <TRegistro_FichaTec> rFicha)
        {
            // TP_NOTA S SERVICO N NORMAL
            if (new TCD_CadCFGEmpreendimento().BuscarEscalar(
                    new TpBusca[]
            {
                new TpBusca()
                {
                    vNM_Campo = "a.cd_empresa",
                    vOperador = "=",
                    vVL_Busca = "'" + rOrcamento.Cd_empresa.Trim() + "'"
                }
            }, "a.cfg_remessa", string.Empty, string.Empty, null) == null)
            {
                throw new Exception("Não existe configuração para emitir NF peças para a empresa " + rOrcamento.Cd_empresa.Trim());
            }
            //Buscar configuracao fiscal do pedido
            CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal lCfgPed = new CamadaDados.Faturamento.Cadastros.TList_CadCFGPedidoFiscal();
            if (tp_nota.Equals("N"))
            {
                lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "exists",
                        vVL_Busca = "(select 1 from TB_EMP_CFGEmpreendimento x " +
                                    "where a.cfg_pedido = x.cfg_remessa " +
                                    "and x.cd_empresa = '" + rOrcamento.Cd_empresa.Trim() + "')"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.tp_fiscal",
                        vOperador = "=",
                        vVL_Busca = "'NO'"
                    }
                }, 1, string.Empty);
            }
            if (tp_nota.Equals("S"))
            {
                lCfgPed = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedidoFiscal().Select(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "exists",
                        vVL_Busca = "(select 1 from TB_EMP_CFGEmpreendimento x " +
                                    "where a.cfg_pedido = x.cfg_servico " +
                                    "and x.cd_empresa = '" + rOrcamento.Cd_empresa.Trim() + "')"
                    },
                    new TpBusca()
                    {
                        vNM_Campo = "a.tp_fiscal",
                        vOperador = "=",
                        vVL_Busca = "'SE'"
                    }
                }, 1, string.Empty);
            }

            if (lCfgPed.Count.Equals(0))
            {
                throw new Exception("Não existe configuração fiscal do pedido para o tipo pedido!");
            }
            //Objeto Nota Fiscal
            CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rNf = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento();
            //Buscar registro empresa
            CamadaDados.Diversos.TRegistro_CadEmpresa rEmpresa =
                CamadaNegocio.Diversos.TCN_CadEmpresa.Busca(rOrcamento.Cd_empresa, string.Empty, string.Empty, null)[0];
            rNf.Cd_empresa    = rEmpresa.Cd_empresa;
            rNf.Cd_uf_empresa = rEmpresa.rEndereco.Cd_uf;
            rNf.Uf_empresa    = rEmpresa.rEndereco.UF;
            //Buscar registro clifor
            CamadaDados.Financeiro.Cadastros.TRegistro_CadClifor rCliente =
                CamadaNegocio.Financeiro.Cadastros.TCN_CadClifor.Busca_Clifor_Codigo(Cd_clifor, null);
            rNf.Cd_clifor            = rCliente.Cd_clifor;
            rNf.Cd_condfiscal_clifor = rCliente.Cd_condfiscal_clifor;
            //Buscar endereco cliente
            CamadaDados.Financeiro.Cadastros.TRegistro_CadEndereco rEndereco =
                CamadaNegocio.Financeiro.Cadastros.TCN_CadEndereco.Buscar(Cd_clifor,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          string.Empty,
                                                                          1,
                                                                          null)[0];
            rNf.Cd_endereco      = rEndereco.Cd_endereco;
            rNf.Cd_uf_clifor     = rEndereco.Cd_uf;
            rNf.Uf_clifor        = rEndereco.UF;
            rNf.Cd_cmi           = lCfgPed[0].Cd_cmi;
            rNf.Cd_movimentacao  = lCfgPed[0].Cd_movto;
            rNf.lCFGFiscal       = lCfgPed;
            rNf.Tp_duplicata     = lCfgPed[0].Tp_duplicata;
            rNf.Ds_tpduplicata   = lCfgPed[0].Ds_tpduplicata;
            rNf.Cd_condpgto      = lCfgPed[0].CD_CondPgto;
            rNf.Tp_movimento     = "S";
            rNf.Tp_pessoa        = rCliente.Tp_pessoa;
            rNf.Tp_nota          = (rNf.Tp_pessoa.Trim().ToUpper().Equals("J") && rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? "T" : "P");
            rNf.Nr_serie         = lCfgPed[0].Nr_serie;
            rNf.Cd_modelo        = lCfgPed[0].Cd_modelo;
            rNf.St_sequenciaauto = lCfgPed[0].ST_SequenciaAuto.Trim().ToUpper().Equals("S");
            rNf.Dt_emissao       = CamadaDados.UtilData.Data_Servidor();
            rNf.Dt_saient        = rNf.Dt_emissao;
            rNf.Dadosadicionais  = ProcessaAplicacao.BuscarObsMov("D",
                                                                  rNf.Cd_movimentacaostring,
                                                                  rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim()));
            rNf.Obsfiscal = ProcessaAplicacao.BuscarObsMov("F",
                                                           rNf.Cd_movimentacaostring,
                                                           rEndereco.UF.Trim().Equals(rEmpresa.rEndereco.UF.Trim()));
            //Abrir tela para capturar dados da nota fiscal
            using (NumeroNota.TFNumero_Nota fNumero = new NumeroNota.TFNumero_Nota())
            {
                fNumero.pCd_empresa              = rNf.Cd_empresa;
                fNumero.pNm_empresa              = rNf.Nm_empresa;
                fNumero.pCd_clifor               = rNf.Cd_clifor;
                fNumero.pNm_clifor               = rNf.Nm_clifor;
                fNumero.pTp_pessoa               = rNf.Tp_pessoa;
                fNumero.pTp_movimento            = rNf.Tp_movimento;
                fNumero.pCd_municipioexecservico = rOrcamento.Cd_cidadeemp;
                fNumero.pNm_municipioexecservico = rOrcamento.Ds_cidadeemp;
                fNumero.pTp_nota          = rNf.Tp_nota;
                fNumero.pChave_Acesso_NFe = rNf.Chave_acesso_nfe;
                fNumero.pNr_serie         = rNf.Nr_serie;
                fNumero.pDs_serie         = rNf.Ds_serienf;
                fNumero.pCd_modelo        = rNf.Cd_modelo;
                fNumero.pDt_emissao       = rNf.Dt_emissao;
                fNumero.pST_NotaUnica     = false;
                fNumero.pNr_notafiscal    = rNf.Nr_notafiscal.HasValue ? rNf.Nr_notafiscal.Value.ToString() : string.Empty;
                fNumero.pDt_saient        = rNf.Dt_saient;
                fNumero.pDs_dadosadic     = rNf.Dadosadicionais;
                fNumero.pDs_obsfiscal     = rNf.Obsfiscal;
                fNumero.pSt_sequenciaauto = rNf.St_sequenciaauto;
                fNumero.pCd_movto         = rNf.Cd_movimentacaostring;
                fNumero.pCd_cmi           = rNf.Cd_cmistring;
                if (rNf.Tp_nota.Trim().ToUpper().Equals("T"))
                {
                    fNumero.pInsc_estadual = rEndereco.Insc_estadual;
                }
                if (fNumero.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    rNf.Chave_acesso_nfe = fNumero.pChave_Acesso_NFe;
                    if (!string.IsNullOrEmpty(fNumero.pNr_notafiscal))
                    {
                        rNf.Nr_notafiscal = decimal.Parse(fNumero.pNr_notafiscal);
                    }
                    else
                    {
                        rNf.Nr_notafiscal = null;
                    }
                    rNf.Nr_serie             = fNumero.pNr_serie;
                    rNf.Cd_modelo            = fNumero.pCd_modelo;
                    rNf.Dt_emissao           = fNumero.pDt_emissao;
                    rNf.Dt_saient            = fNumero.pDt_saient;
                    rNf.Obsfiscal            = fNumero.pDs_obsfiscal;
                    rNf.Dadosadicionais      = fNumero.pDs_dadosadic;
                    rNf.Cd_transportadora    = fNumero.pCd_transportadora;
                    rNf.Nm_razaosocialtransp = fNumero.pNm_transportadora;
                    rNf.Cpf_transp           = fNumero.pCnpjCpfTransp;
                    rNf.Placaveiculo         = fNumero.pPlacaVeiculo;
                    rNf.Tp_frete             = fNumero.pTp_frete;
                    rNf.Especie     = fNumero.pEspecie;
                    rNf.Quantidade  = fNumero.pQuantidade;
                    rNf.Pesobruto   = fNumero.pPsbruto;
                    rNf.Pesoliquido = fNumero.pPsliquido;
                    rNf.Vl_frete    = fNumero.pVl_frete;

                    CamadaDados.Fiscal.TRegistro_CadCMI rCmi =
                        CamadaNegocio.Fiscal.TCN_CadCMI.Busca(fNumero.pCd_cmi,
                                                              string.Empty,
                                                              string.Empty,
                                                              string.Empty,
                                                              string.Empty,
                                                              string.Empty,
                                                              false,
                                                              false,
                                                              false,
                                                              false,
                                                              false,
                                                              false,
                                                              false,
                                                              null)[0];
                    rNf.Cminf.Add(new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_CMI()
                    {
                        St_compdevimposto = rCmi.St_compdevimposto,
                        St_complementar   = rCmi.St_complementar,
                        St_devolucao      = rCmi.St_devolucao,
                        St_geraestoque    = rCmi.St_geraestoque,
                        St_mestra         = rCmi.St_mestra,
                        St_simplesremessa = rCmi.St_simplesremessa,
                        St_retorno        = rCmi.St_retorno
                    });
                    rNf.Cd_cmistring   = fNumero.pCd_cmi;
                    rNf.Ds_cmi         = rCmi.Ds_cmi;
                    rNf.Tp_duplicata   = rCmi.Tp_duplicata;
                    rNf.Ds_tpduplicata = rCmi.ds_tpduplicata;
                }
                else
                {
                    throw new Exception("Obrigatorio informar numero da nota fiscal.");
                }
            }
            if (rNf.Nr_notafiscal.HasValue)
            {
                CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento rFat =
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento.existeNumeroNota(rNf.Nr_notafiscal.ToString(),
                                                                                             rNf.Nr_serie,
                                                                                             rNf.Cd_empresa,
                                                                                             rNf.Cd_clifor,
                                                                                             string.Empty,
                                                                                             rNf.Tp_nota,
                                                                                             null);
                if (rFat != null)
                {
                    if (rFat.St_registro.Trim().ToUpper().Equals("C"))
                    {
                        throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra cancelada.\r\n" +
                                            "Para poder utilizar o mesmo numero e necessario excluir a nota fiscal cancelada.\r\n" +
                                            "Dica: Menu FATURAMENTO->Emissão de Notas Fiscais / NFe, localize a nota fiscal cancelada e exclua a mesma.\r\n" +
                                            "Obs.: Para excluir a nota fiscal cancelada é necessario que o usuario tenha permissão.");
                    }
                    else
                    {
                        throw new Exception("Nota Fiscal Nº " + rFat.Nr_notafiscal.ToString() + " ja existe no sistema e se encontra ativa.\r\n" +
                                            "Não é permitido gerar nota fiscal com mesmo numero.");
                    }
                }
            }
            //Itens da Nota

            rFicha.ForEach(item =>
            {
                CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item rItem = new CamadaDados.Faturamento.NotaFiscal.TRegistro_LanFaturamento_Item();

                rItem.Cd_empresa = item.Cd_empresa;

                rItem.Cd_produto = item.Cd_produto;
                //pega cd condfiscal do produto
                object cd_cfiscal = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(new TpBusca[] {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_produto",
                        vOperador = "=",
                        vVL_Busca = item.Cd_produto
                    }
                }, "d.cd_condfiscal_produto");

                TList_CadCFGEmpreendimento cfg = TCN_CadCFGEmpreendimento.Busca(item.Cd_empresa, string.Empty, null);

                object ncmm = new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.cd_produto",
                        vOperador = "=",
                        vVL_Busca = "'" + item.Cd_produto.Trim() + "'"
                    }
                }, "isnull(a.ncm, 0)");
                if (ncmm != null)
                {
                    if (!string.IsNullOrEmpty(ncmm.ToString()))
                    {
                        object obj_imp = new CamadaDados.Fiscal.TCD_CadNCM().BuscarEscalar(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = "a.ncm",
                                vOperador = "=",
                                vVL_Busca = "'" + ncmm.ToString().Trim() + "'"
                            }
                        }, "isnull(a.Pc_Aliquota, 0)");
                        if (obj_imp != null)
                        {
                            if (!string.IsNullOrEmpty(obj_imp.ToString()))
                            {
                                rItem.Pc_imposto_Aprox = Convert.ToDecimal(obj_imp.ToString());
                            }
                        }
                    }
                }

                //buscar cdunidade
                rItem.Cd_condfiscal_produto = cd_cfiscal != null ?cd_cfiscal.ToString() : string.Empty;
                rItem.Cd_unidade            = item.Cd_unidade;
                rItem.Cd_local            = cfg[0].cd_local;
                rItem.Cd_unidEst          = item.Cd_unidade;
                rItem.Quantidade          = item.quantidade_agregar;
                rItem.Quantidade_estoque  = item.quantidade_agregar;
                rItem.Vl_subtotal         = item.quantidade_agregar * item.Vl_unitario;
                rItem.Vl_subtotal_estoque = item.quantidade_agregar * item.Vl_unitario;
                rItem.Vl_unitario         = item.Vl_unitario;

                //Buscar cfop do item
                CamadaDados.Fiscal.TRegistro_CadCFOP rCfop = null;
                bool st_dentroestado = rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim());
                if (CamadaNegocio.Fiscal.TCN_Mov_X_CFOP.BuscarCFOP(rNf.Cd_movimentacaostring,
                                                                   rItem.Cd_condfiscal_produto,
                                                                   rEndereco.Cd_uf.Trim().Equals("99") ? "I" :
                                                                   rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()) ? "D" : "F",
                                                                   (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa),
                                                                   (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor),
                                                                   rNf.Tp_movimento,
                                                                   rNf.Cd_condfiscal_clifor,
                                                                   rNf.Cd_empresa,
                                                                   ref rCfop,
                                                                   null))
                {
                    rItem.Cd_cfop        = rCfop.CD_CFOP;
                    rItem.Ds_cfop        = rCfop.DS_CFOP;
                    rItem.St_bonificacao = rCfop.St_bonificacaobool;
                }
                else
                {
                    throw new Exception("Não existe CFOP " + (rEndereco.Cd_uf.Trim().Equals("99") ? "internacional" : rEndereco.Cd_uf.Trim().Equals(rEmpresa.rEndereco.Cd_uf.Trim()) ? "dentro estado" : "fora estado") + " configurado para a Movimentação " + rNf.Cd_movimentacaostring + " condição fiscal do produto ");    //+ item.Cd_condfiscal_produto
                }
                //Procurar Impostos Estaduais para o Item
                string vObsFiscal = string.Empty;
                CamadaDados.Faturamento.NotaFiscal.TList_ImpostosNF lImpUf =
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraImpostosPorUf(rNf.Cd_empresa,
                                                                                                      (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_clifor : rNf.Cd_uf_empresa),
                                                                                                      (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Cd_uf_empresa : rNf.Cd_uf_clifor),
                                                                                                      rNf.Cd_movimentacaostring,
                                                                                                      rNf.Tp_movimento,
                                                                                                      rNf.Cd_condfiscal_clifor,
                                                                                                      rItem.Cd_condfiscal_produto,
                                                                                                      rItem.Vl_subtotal,
                                                                                                      rItem.Quantidade,
                                                                                                      ref vObsFiscal,
                                                                                                      rNf.Dt_emissao,
                                                                                                      rItem.Cd_produto,
                                                                                                      rNf.Tp_nota,
                                                                                                      rNf.Nr_serie,
                                                                                                      null);
                if (lImpUf.Exists(v => v.Imposto.St_ICMS))
                {
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherICMS(lImpUf.Find(v => v.Imposto.St_ICMS), rItem);
                    rNf.Obsfiscal += vObsFiscal.Trim();
                }
                else if (CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.ObrigImformarICMS(rItem.Cd_produto, rNf.Nr_serie, null))
                {
                    throw new Exception("Erro: Não existe condição fiscal do ICMS.\r\n" +
                                        "Tipo Movimento: " + rNf.Tipo_movimento.Trim() + "\r\n" +
                                        "Movimentação: " + rNf.Cd_movimentacao.ToString() + "\r\n" +
                                        "Cond. Fiscal Clifor: " + rNf.Cd_condfiscal_clifor.Trim() + "\r\n" +
                                        "Cond. Fiscal Produto: " + rItem.Cd_condfiscal_produto.Trim() + "\r\n" +
                                        "UF Origem: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_clifor.Trim() : rNf.Uf_empresa.Trim()) + "\r\n" +
                                        "UF Destino: " + (rNf.Tp_movimento.Trim().ToUpper().Equals("E") ? rNf.Uf_empresa.Trim() : rNf.Uf_clifor.Trim()));
                }

                //Procurar impostos sobre os itens da nota fiscal de destino
                CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.PreencherOutrosImpostos(
                    CamadaNegocio.Faturamento.NotaFiscal.TCN_LanFaturamento_Item.procuraCondicaoFiscalImpostos(rNf.Cd_condfiscal_clifor,
                                                                                                               rItem.Cd_condfiscal_produto,
                                                                                                               rNf.Cd_movimentacaostring,
                                                                                                               rNf.Tp_movimento,
                                                                                                               rNf.Tp_pessoa,
                                                                                                               rNf.Cd_empresa,
                                                                                                               rNf.Nr_serie,
                                                                                                               rNf.Cd_clifor,
                                                                                                               rItem.Cd_unidEst,
                                                                                                               rNf.Dt_emissao,
                                                                                                               rItem.Quantidade,
                                                                                                               rItem.Vl_subtotal,
                                                                                                               rNf.Tp_nota,
                                                                                                               rNf.Cd_municipioexecservico,
                                                                                                               null), rItem, rNf.Tp_movimento);
                rItem.rItemFichaTec = item;
                rNf.ItensNota.Add(rItem);
            });
            return(rNf);
        }
Example #20
0
        public static void ProcessarPedido(List <TRegistro_OrdemCompra> val,
                                           string Cfg_pedido,
                                           CamadaDados.Financeiro.Duplicata.TRegistro_LanDuplicata rDup,
                                           byte[] anexo_pedido,
                                           BancoDados.TObjetoBanco banco)
        {
            bool            st_transacao = false;
            TCD_OrdemCompra qtb_oc       = new TCD_OrdemCompra();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_oc.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_oc.Banco_Dados = banco;
                }
                //Verificar se existe configuracao para gerar pedido
                TRegistro_Requisicao rReq = TCN_Requisicao.Buscar(val[0].Id_requisicaostr,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  string.Empty,
                                                                  false,
                                                                  false,
                                                                  false,
                                                                  "'E'",
                                                                  false,
                                                                  qtb_oc.Banco_Dados)[0];
                CamadaDados.Compra.TList_CFGCompra lCfg =
                    TCN_CFGCompra.Buscar(rReq.Cd_empresa,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         string.Empty,
                                         0,
                                         string.Empty,
                                         qtb_oc.Banco_Dados);
                if (lCfg.Count < 1)
                {
                    throw new Exception("Não existe configuração do modulo de compras para a empresa " + rReq.Cd_empresa.Trim());
                }
                if ((!lCfg[0].St_utilizarmoedaocbool) && lCfg[0].Cd_moeda.Trim().Equals(string.Empty))
                {
                    throw new Exception("Não existe moeda configurada para gerar o pedido.");
                }
                //Gravar pedido
                string retorno = CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Grava_Pedido(
                    new CamadaDados.Faturamento.Pedido.TRegistro_Pedido()
                {
                    CD_Empresa          = rReq.Cd_empresa,
                    CD_CondPGTO         = val[0].Cd_condpgto,
                    DT_Pedido           = DateTime.Now,
                    TP_Movimento        = "E",
                    CFG_Pedido          = string.IsNullOrEmpty(Cfg_pedido) ? lCfg[0].Cfg_pedidocompra : Cfg_pedido,
                    CD_Clifor           = val[0].Cd_fornecedor,
                    CD_Endereco         = val[0].Cd_endfornecedor,
                    ST_Pedido           = "F",
                    ST_Registro         = "A",
                    Cd_moeda            = lCfg[0].St_utilizarmoedaocbool ? val[0].Cd_moeda : lCfg[0].Cd_moeda,
                    CD_TRANSPORTADORA   = val[0].Cd_transportadora,
                    CD_ENDERECOTRANSP   = val[0].Cd_endtransportadora,
                    Tp_frete            = val[0].Tp_frete,
                    Vl_frete            = val.Sum(p => p.Vl_frete),
                    Cd_clifor_comprador = rReq.Cd_clifor_comprador,
                    Anexo_compra        = anexo_pedido
                }, qtb_oc.Banco_Dados);
                //grava duplicata
                object st_dup = new CamadaDados.Faturamento.Cadastros.TCD_CadCFGPedido().BuscarEscalar(
                    null, "a.st_gerarfin");
                if (st_dup != null && rDup != null)
                {
                    if (st_dup.Equals("S"))
                    {
                        rDup.Nr_pedido = Convert.ToDecimal(retorno.ToString());

                        rDup.Nr_docto = rDup.Nr_pedido.ToString();
                        string rtn = CamadaNegocio.Financeiro.Duplicata.TCN_LanDuplicata.GravarDuplicata(rDup, false, qtb_oc.Banco_Dados);

                        CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_X_Duplicata reg = new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_X_Duplicata();
                        reg.Cd_empresa = lCfg[0].Cd_empresa;
                        reg.Nr_pedido  = rDup.Nr_pedido;
                        reg.Nr_lancto  = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(rtn, "@P_NR_LANCTO"));
                        CamadaNegocio.Faturamento.Pedido.TCN_LanPedido_X_Duplicata.Gravar(reg, qtb_oc.Banco_Dados);
                    }
                }

                //Gravar itens do pedido
                val.ForEach(p =>
                {
                    //Buscar unidade do produto para gravar no pedido
                    object obj = new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_oc.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_produto",
                            vOperador = "=",
                            vVL_Busca = "'" + p.Cd_produto.Trim() + "'"
                        }
                    }, "a.cd_unidade");
                    if (obj == null)
                    {
                        throw new Exception("Não foi possivel localizar produto " + p.Cd_produto.Trim() + " no cadastro de produto.");
                    }
                    if (obj.ToString().Trim().Equals(string.Empty))
                    {
                        throw new Exception("Não existe unidade cadastrada para o produto " + p.Cd_produto.Trim() + ".");
                    }
                    string ret_item = CamadaNegocio.Faturamento.Pedido.TCN_LanPedido_Item.GravaPedido_Item(
                        new CamadaDados.Faturamento.Pedido.TRegistro_LanPedido_Item()
                    {
                        Cd_Empresa        = rReq.Cd_empresa,
                        Cd_local          = !string.IsNullOrEmpty(rReq.Cd_local) ? rReq.Cd_local : lCfg[0].Cd_local,
                        Cd_produto        = p.Cd_produto,
                        Nr_pedido         = Convert.ToDecimal(retorno),
                        Cd_unidade_est    = obj.ToString(),
                        Cd_unidade_valor  = obj.ToString(),
                        Quantidade        = p.Quantidade,
                        Vl_unitario       = p.Vl_unitConvertido,
                        Vl_subtotal       = p.Vl_Convertido,
                        Ds_observacaoitem = p.ObsRequisicao
                    }, qtb_oc.Banco_Dados);
                    //Alterar status da OC para F - Faturada
                    p.St_registro = "F";
                    TCN_OrdemCompra.Gravar(p, qtb_oc.Banco_Dados);
                    //Gravar OC X Pedido
                    TCN_OrdemCompra_X_PedItem.GravarOC_X_PedItem(
                        new TRegistro_OrdemCompra_X_PedItem()
                    {
                        Cd_produto    = p.Cd_produto,
                        Id_oc         = p.Id_oc,
                        Id_pedidoitem = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_item, "@P_ID_PEDIDOITEM")),
                        Nr_pedido     = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_item, "@P_NR_PEDIDO"))
                    }, qtb_oc.Banco_Dados);
                    p.Nr_pedido = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_item, "@P_NR_PEDIDO"));
                });
                if (st_transacao)
                {
                    qtb_oc.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_oc.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro processar pedido: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_oc.deletarBanco_Dados();
                }
            }
        }