private void VerificarGrade() { if (!string.IsNullOrEmpty(pId_caracteristica)) { using (Proc_Commoditties.TFGradeProduto fGrade = new Proc_Commoditties.TFGradeProduto()) { fGrade.pId_caracteristica = pId_caracteristica; fGrade.pCd_empresa = cbEmpresa.SelectedValue.ToString();; fGrade.pCd_produto = CD_Produto.Text; fGrade.pDs_produto = ds_produto.Text; fGrade.pTp_movimento = "E"; fGrade.pQuantidade = Quantidade.Value; if (fGrade.ShowDialog() == DialogResult.OK) { fGrade.lGrade.ForEach(p => GerarCodBarra(p)); panelDados3.LimparRegistro(); bsCodBarra.ResetCurrentItem(); pId_caracteristica = string.Empty; CD_Produto.Focus(); } else { MessageBox.Show("Obrigatório informar grade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } }
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 BB_Gravar_Click(object sender, EventArgs e) { if (Qtd_Saida.Focused) { Qtd_Saida_Leave(this, new EventArgs()); } if (Qtd_Entrada.Focused) { Qtd_Entrada_Leave(this, new EventArgs()); } if (VL_Unitario.Focused) { VL_Unitario_Leave(this, new EventArgs()); } if (vl_subtotal.Focused) { vl_subtotal_Leave(this, new EventArgs()); } if (pnl_Lan_Estoque.validarCampoObrigatorio()) { if (!string.IsNullOrEmpty(pId_caracteristica)) { using (Proc_Commoditties.TFGradeProduto fGrade = new Proc_Commoditties.TFGradeProduto()) { fGrade.pId_caracteristica = pId_caracteristica; fGrade.pCd_empresa = CD_Empresa.Text; fGrade.pCd_produto = CD_Produto.Text; fGrade.pDs_produto = DS_Produto.Text; fGrade.pTp_movimento = tp_movimento.SelectedValue.ToString(); fGrade.pQuantidade = tp_movimento.SelectedValue.ToString().Trim().ToUpper().Equals("E") ? Qtd_Entrada.Value : Qtd_Saida.Value; if (fGrade.ShowDialog() == DialogResult.OK) { fGrade.lGrade.ForEach(p => (BS_Lan_Estoque.Current as TRegistro_LanEstoque).lGrade.Add(p)); } else { MessageBox.Show("Obrigatório informar grade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } DialogResult = DialogResult.OK; } }
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 bbAjustarGrade_Click(object sender, EventArgs e) { if (bsSintetico.Current != null) { if (new CamadaDados.Estoque.Cadastros.TCD_CadProduto().BuscarEscalar( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + (bsSintetico.Current as DataRowView)["cd_produto"].ToString().Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_caracteristicaH", vOperador = "is not", vVL_Busca = "null" } }, "1") != null) { //Buscar lançamentos de estoque que não estejam amarrados a grade TList_RegLanEstoque lEst = new TCD_LanEstoque().Select( new TpBusca[] { new TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new TpBusca() { vNM_Campo = "a.cd_produto", vOperador = "=", vVL_Busca = "'" + (bsSintetico.Current as DataRowView)["cd_produto"].ToString().Trim() + "'" }, new TpBusca() { vOperador = " not Exists", vVL_Busca = "( select 1 from TB_EST_GradeEstoque x where x.Id_LanctoEstoque = a.Id_LanctoEstoque )" } }, 0, string.Empty, string.Empty, string.Empty); if (lEst.Count > 0) { lEst.ForEach(x => { using (Proc_Commoditties.TFGradeProduto fGrade = new Proc_Commoditties.TFGradeProduto()) { CamadaDados.Estoque.Cadastros.TRegistro_CadProduto prod = new CamadaDados.Estoque.Cadastros.TRegistro_CadProduto(); prod = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Busca_Produto_Codigo((bsSintetico.Current as DataRowView)["cd_produto"].ToString(), null); fGrade.pId_caracteristica = prod.Id_caracteristicaH.ToString(); fGrade.pCd_empresa = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString(); fGrade.pCd_produto = (bsSintetico.Current as DataRowView)["cd_produto"].ToString(); fGrade.pDs_produto = (bsSintetico.Current as DataRowView)["ds_produto"].ToString(); fGrade.pTp_movimento = x.Tp_movimento; fGrade.pQuantidade = x.Tp_movimento.ToString().Trim().ToUpper().Equals("E") ? x.Qtd_entrada : x.Qtd_saida; if (fGrade.ShowDialog() == DialogResult.OK) { fGrade.lGrade.ForEach(p => { TCN_GradeEstoque.Gravar(new TRegistro_GradeEstoque() { Cd_empresa = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString(), Cd_produto = (bsSintetico.Current as DataRowView)["cd_produto"].ToString(), Id_lanctoestoque = x.Id_lanctoestoque, Id_item = p.Id_item, Id_caracteristica = p.Id_caracteristica, quantidade = p.Vl_mov }, null); }); bsSintetico_PositionChanged(this, new EventArgs()); } else { MessageBox.Show("Obrigatório informar grade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } }); } } } }