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