private void PreencherFicha(string pCd_produto) { //Buscar Ficha Formula CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFichaTec = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(pCd_produto, string.Empty, null); if (lFichaTec.Exists(p => string.IsNullOrEmpty(p.Cd_local))) { string vColunas = "a.ds_local|Local Armazenagem|150;" + "a.cd_local|Código|50"; string vParam = "|exists|(select 1 from tb_est_empresa_x_localarm x " + " where x.cd_local = a.cd_local and x.cd_empresa = '" + (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa.Trim() + "')"; DataRowView linha = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null, new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm(), vParam); try { if (linha != null) { lFichaTec.ForEach(p => { p.Cd_local = string.IsNullOrEmpty(p.Cd_local) ? linha["cd_local"].ToString() : p.Cd_local; CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Gravar(p, null); }); } else { PreencherFicha(pCd_produto); } } catch { } } lFichaTec.ForEach(p => { (bsItensOrcamento.Current as TRegistro_Orcamento_Item).lFichaTec.Add( new TRegistro_FichaTecOrcItem() { Nr_orcamento = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Nr_orcamento, Id_item = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Id_item, Cd_item = p.Cd_item, Ds_item = p.Ds_item, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Sg_unditem = p.Sg_unditem, Cd_unditem = p.Cd_unditem, Ds_unditem = p.Ds_unditem, Quantidade = p.Quantidade, SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_item, p.Cd_local, null), Vl_custo = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_produto, null), Vl_ultimacompra = TCN_LanEstoque.BuscarVlUltimaCompra((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, p.Cd_produto, null) }); }); bsItensOrcamento.ResetCurrentItem(); }
private void bbCorrigirFicha_Click(object sender, EventArgs e) { if (bsFichaTec.Current != null) { using (TFFichaTec fFicha = new TFFichaTec()) { if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Count <= 0) { if ((bsFichaTec.Current as TRegistro_FichaTec).st_composto.Equals("S")) { if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Count <= 0) { (bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Clear(); if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens != null) { (bsFichaTec.Current as TRegistro_FichaTec).lfichaItens = TCN_FichaItens.Buscar((bsFichaTec.Current as TRegistro_FichaTec).Cd_empresa, (bsFichaTec.Current as TRegistro_FichaTec).Id_orcamentostr, (bsFichaTec.Current as TRegistro_FichaTec).Nr_versaostr, (bsFichaTec.Current as TRegistro_FichaTec).Id_projetostr, (bsFichaTec.Current as TRegistro_FichaTec).Id_fichastr, string.Empty, null); } } if ((bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Count <= 0) { CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFichaitens = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar((bsFichaTec.Current as TRegistro_FichaTec).Cd_produto, string.Empty, null); lFichaitens.ForEach(iten => { TRegistro_FichaItens item = new TRegistro_FichaItens(); item.Cd_itemstr = iten.Cd_item; item.ds_item = iten.Ds_item; item.quantidade = iten.Quantidade; item.vl_unitario = iten.Vl_custoservico; item.vl_subtotal = iten.Vl_subtotalservico; (bsFichaTec.Current as TRegistro_FichaTec).lfichaItens.Add(item); }); } } } fFicha.rFicha = bsFichaTec.Current as TRegistro_FichaTec; fFicha.pCd_empresa = (bsOrcamento.Current as TRegistro_Orcamento).Cd_empresa; if (fFicha.ShowDialog() == DialogResult.OK) { int position = bsFichaTec.Position; bsFichaTec.RemoveCurrent(); bsFichaTec.Insert(position, fFicha.rFicha); MessageBox.Show("Ficha técinica adicionada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } }
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 bool BuscarItens() { if (!string.IsNullOrEmpty(cd_produto.Text)) { string pCd_codbarra = cd_produto.Text; //Buscar lengt cd_produto CamadaDados.Diversos.TList_CadParamSys lParam = CamadaNegocio.Diversos.TCN_CadParamSys.Busca("CD_PRODUTO", string.Empty, decimal.Zero, null); if (lParam.Count > 0) { if (cd_produto.Text.Trim().Length < lParam[0].Tamanho) { cd_produto.Text = cd_produto.Text.Trim().PadLeft(Convert.ToInt32(lParam[0].Tamanho), '0'); } } //Buscar produto CamadaDados.Estoque.Cadastros.TList_CadProduto lProduto = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.BuscarProdutoVendaRapida(cd_produto.Text, pCd_codbarra, null); if (lProduto.Count > 0) { if (lCfg[0].St_movestoquebool) { if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico(lProduto[0].CD_Produto)) && (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno(lProduto[0].CD_Produto))) { if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto(lProduto[0].CD_Produto)) { decimal saldo = BuscarSaldoLocal(lProduto[0].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.........: " + lProduto[0].CD_Produto.Trim() + "-" + lProduto[0].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); return(false); } } else { //Buscar ficha tecnica produto composto CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(lProduto[0].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); return(false); } } } } //Cria novo item bsItens.AddNew(); (bsItens.Current as TRegistro_ItensCondicional).Cd_produto = lProduto[0].CD_Produto; (bsItens.Current as TRegistro_ItensCondicional).Ds_produto = lProduto[0].DS_Produto; (bsItens.Current as TRegistro_ItensCondicional).Cd_condfiscal_produto = lProduto[0].CD_CondFiscal_Produto; (bsItens.Current as TRegistro_ItensCondicional).Cd_unidade = lProduto[0].CD_Unidade; (bsItens.Current as TRegistro_ItensCondicional).Sigla_unidade = lProduto[0].Sigla_unidade; (bsItens.Current as TRegistro_ItensCondicional).Cd_local = lCfg[0].Cd_local; (bsItens.Current as TRegistro_ItensCondicional).Quantidade = Quantidade.Value; (bsItens.Current as TRegistro_ItensCondicional).Vl_unitario = ConsultaPreco(lProduto[0].CD_Produto); vl_unit.Enabled = vl_unit.Value.Equals(decimal.Zero) || CamadaNegocio.Diversos.TCN_Usuario_RegraEspecial.ValidaRegra(Utils.Parametros.pubLogin, "PERMITIR INFORMAR PREÇO VENDA", null); bsItens.ResetCurrentItem(); bsItens_PositionChanged(this, new EventArgs()); TotalizarVenda(); return(true); } else { return(false); } } else { return(false); } }
private void gAssistente_CellClick(object sender, DataGridViewCellEventArgs e) { if ((e.ColumnIndex == 0) && (bsAssistente.Current != null)) { try { if ((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar != true) { //Informar Quantidade using (Componentes.TFQuantidade fQtde = new Componentes.TFQuantidade()) { fQtde.Ds_label = "QTD.Venda"; fQtde.Casas_decimais = 2; fQtde.Vl_default = 1; if (fQtde.ShowDialog() == DialogResult.OK) { (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = true; //Verificar saldo estoque do produto if (lCfg[0].St_movestoquebool) { if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda)) && (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda))) { if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda) && !new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoPatrimonio((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda)) { decimal saldo = this.BuscarSaldoLocal(Cd_empresa, (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda); if (saldo < fQtde.Quantidade) { MessageBox.Show("Não existe saldo disponível no estoque, porém será processado na locação.\r\n" + "Empresa.........: " + Cd_empresa.Trim() + "-" + Nm_empresa.Trim() + "\r\n" + "Produto.........: " + (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda.Trim() + "-" + (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).DS_ProdVenda.Trim() + "\r\n" + "Local Arm.......: " + lCfg[0].Cd_local.Trim() + "-" + lCfg[0].Ds_local + "\r\n" + "Saldo Disponível: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)), "Informativo", MessageBoxButtons.OK, MessageBoxIcon.Information); //(bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = false; //return; } } else { //Buscar ficha tecnica produto composto CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar((bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).CD_ProdVenda, string.Empty, null); lFicha.ForEach(p => p.Quantidade = p.Quantidade * fQtde.Quantidade); 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, 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); (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = false; return; } } } } (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).Quantidade = fQtde.Quantidade; } bsAssistente.ResetCurrentItem(); } } else { (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).St_processar = false; (bsAssistente.Current as CamadaDados.Estoque.Cadastros.TRegistro_CadAssistenteVenda).Quantidade = decimal.Zero; bsAssistente.ResetCurrentItem(); } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
private void PreencherFicha() { //Buscar Ficha do Cadastro de Produto CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha = TCN_FichaTecProduto.Buscar(cd_produto.Text, string.Empty, null); if (lFicha.Count > 0) { if (lFicha.Exists(p => string.IsNullOrEmpty(p.Cd_local))) { string vColunas = "a.ds_local|Local Armazenagem|150;" + "a.cd_local|Código|50"; string vParam = "|exists|(select 1 from tb_est_empresa_x_localarm x " + " where x.cd_local = a.cd_local and x.cd_empresa = '" + CD_Empresa.Text.Trim() + "')"; DataRowView linha = FormBusca.UtilPesquisa.BTN_BUSCA(vColunas, null, new CamadaDados.Estoque.Cadastros.TCD_CadLocalArm(), vParam); try { if (linha != null) { lFicha.ForEach(p => { p.Cd_local = string.IsNullOrEmpty(p.Cd_local) ? linha["cd_local"].ToString() : p.Cd_local; TCN_FichaTecProduto.Gravar(p, null); }); } else { PreencherFicha(); } } catch { } } lFicha.ForEach(p => { (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add( new TRegistro_Ordem_MPrima { Cd_produto = p.Cd_item, Ds_produto = p.Ds_item, Cd_unidade = p.Cd_unditem, Ds_unidade = p.Ds_unditem, Sigla_unidade = p.Sg_unditem, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Qtd_produto = p.Quantidade, Qtd_produto_calc = p.Quantidade, SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, p.Cd_item, p.Cd_local, null) }); }); } else { //Verificar ficha tecnica produção TList_FormulaApontamento lFormula = CamadaNegocio.Producao.Producao.TCN_FormulaApontamento.Buscar(CD_Empresa.Text, string.Empty, string.Empty, string.Empty, string.Empty, cd_produto.Text, string.Empty, 0, string.Empty, null); TRegistro_FormulaApontamento rFormula = null; if (lFormula.Count > 1) { using (TFListFormula fList = new TFListFormula()) { fList.lFormula = lFormula; if (fList.ShowDialog() == DialogResult.OK) { rFormula = fList.rFormula; (bsOrdemProducao.Current as TRegistro_OrdemProducao).Qt_produto = rFormula.Qt_produto; } else { MessageBox.Show("Obrigatório selecionar formula.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } else if (lFormula.Count.Equals(1)) { rFormula = lFormula[0]; } if (rFormula != null) { (bsOrdemProducao.Current as TRegistro_OrdemProducao).Qt_produto = rFormula.Qt_produto; (bsOrdemProducao.Current as TRegistro_OrdemProducao).Cd_local = rFormula.Cd_local; (bsOrdemProducao.Current as TRegistro_OrdemProducao).Ds_local = rFormula.Ds_local; //Buscar ficha tecnica da formula selecionada TList_FichaTec_MPrima lFichaP = CamadaNegocio.Producao.Producao.TCN_FichaTec_MPrima.Buscar(rFormula.Cd_empresa, rFormula.Id_formulacaostr, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); lFichaP.ForEach(p => { (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add( new TRegistro_Ordem_MPrima { CD_Empresa = p.Cd_empresa, ID_Formulacao_MPrima = p.Id_formulacao_mprima, Cd_produto = p.Cd_produto, Ds_produto = p.Ds_produto, Cd_unidade = p.Cd_unidade, Ds_unidade = p.Ds_unidade, Sigla_unidade = p.Sigla_unidade, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Qtd_produto = p.Qtd_produto, Qtd_produto_calc = p.Qtd_produto, SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, p.Cd_produto, p.Cd_local, null) }); }); (bsOrdemProducao.Current as TRegistro_OrdemProducao).Id_formulacao = rFormula.Id_formulacao; } } bsOrdemMP.ResetCurrentItem(); bsOrdemProducao.ResetCurrentItem(); }
private void bbImportar_Click(object sender, EventArgs e) { if (bsOrcamento.Current != null) { string id_orcamento = string.Empty; using (TFConsultaProjetos cProjetos = new TFConsultaProjetos()) { if (cProjetos.ShowDialog() == DialogResult.OK) { TList_Orcamento lorcamento = new TList_Orcamento(); TList_Orcamento lprojeto2 = new TList_Orcamento(); lorcamento = cProjetos.lOrc; lorcamento.ForEach(o => { o.lDespesas.Where(p => p.st_importar).ToList().ForEach(p => { p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr; p.Nr_versaostr = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr; p.Id_RegDesp = (bsDespesas.Count) + 1; bsDespesas.Add(p); }); o.lOEncargo.Where(p => p.st_importar).ToList().ForEach(p => { p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr; p.Nr_versaostr = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr; p.vl_encargo = decimal.Zero; bsEncargo.Add(p); }); o.lMaoObra.Where(p => p.st_importar).ToList().ForEach(p => { p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr; p.Nr_versaostr = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr; p.Id_MaoObra = (bsMaoObra).Count + 1; bsMaoObra.Add(p); }); o.lOrcProjeto.Where(p => p.st_importar).ToList().ForEach(p => { TList_FichaTec lista = new TList_FichaTec(); p.lFicha.Where(i => i.st_agregar).ToList().ForEach(i => { i.Quantidade = i.quantidade_agregar; i.quantidade_agregar = decimal.Zero; i.Id_ficha = decimal.Zero; i.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr; i.Id_projetostr = string.Empty; i.Nr_versaostr = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr; i.Vl_subtotal = i.Vl_unitario * i.Quantidade; if (i.st_composto.Equals("S")) { CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFichaitens = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(i.Cd_produto, string.Empty, null); lFichaitens.ForEach(iten => { TRegistro_FichaItens item = new TRegistro_FichaItens(); item.Cd_itemstr = iten.Cd_item; item.ds_item = iten.Ds_item; item.quantidade = iten.Quantidade; item.vl_unitario = iten.Vl_custoservico; item.vl_subtotal = iten.Vl_subtotalservico; i.lfichaItens.Add(item); }); } lista.Add(i); }); p.Id_orcamentostr = (bsOrcamento.Current as TRegistro_Orcamento).Id_orcamentostr; p.Id_projeto = (bsAtividade).Count + 1; p.Nr_versaostr = (bsOrcamento.Current as TRegistro_Orcamento).Nr_versaostr; p.lFicha = lista; bsAtividade.Add(p); bsAtividade.ResetCurrentItem(); }); }); bsAtividade.Position = bsAtividade.Count - 1; MessageBox.Show("Importado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } else { MessageBox.Show("Selecione um Orcamento.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } }
private void BuscarItens() { if (!string.IsNullOrEmpty(cd_produto.Text)) { if (Quantidade.Value.Equals(decimal.Zero)) { MessageBox.Show("Obrigatorio informar quantidade.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } string pCd_codbarra = cd_produto.Text; //Buscar lengt cd_produto CamadaDados.Diversos.TList_CadParamSys lParam = CamadaNegocio.Diversos.TCN_CadParamSys.Busca("CD_PRODUTO", string.Empty, decimal.Zero, null); if (lParam.Count > 0) { if (cd_produto.Text.Trim().Length < lParam[0].Tamanho) { cd_produto.Text = cd_produto.Text.Trim().PadLeft(Convert.ToInt32(lParam[0].Tamanho), '0'); } } //Buscar produto CamadaDados.Estoque.Cadastros.TList_CadProduto lProduto = CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.BuscarProdutoVendaRapida(cd_produto.Text, pCd_codbarra, null); if (lProduto.Count > 0) { if (new CamadaDados.Faturamento.Cadastros.TCD_CFGCupomFiscal().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_movestoque, 'N')", vOperador = "=", vVL_Busca = "'S'" } }, "1") != null) { if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ItemServico(lProduto[0].CD_Produto)) && (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoConsumoInterno(lProduto[0].CD_Produto))) { if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoComposto(lProduto[0].CD_Produto)) { decimal saldo = this.BuscarSaldoLocal(lProduto[0].CD_Produto); if (saldo < 1) { MessageBox.Show("Não existe saldo disponivel no estoque.\r\n" + "Empresa.........: " + Cd_empresa.Trim() + "\r\n" + "Produto.........: " + lProduto[0].CD_Produto.Trim() + "-" + lProduto[0].DS_Produto.Trim() + "\r\n" + "Local Arm.......: " + Cd_local + "\r\n" + "Saldo Disponivel: " + saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)), "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else { //Buscar ficha tecnica produto composto CamadaDados.Estoque.Cadastros.TList_FichaTecProduto lFicha = CamadaNegocio.Estoque.Cadastros.TCN_FichaTecProduto.Buscar(lProduto[0].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.Trim(), p.Cd_item, Cd_local.Trim(), 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); return; } } } } //Buscar preco venda produto decimal vl_unit = this.ConsultaPreco(lProduto[0].CD_Produto); if (vl_unit <= decimal.Zero) { using (Componentes.TFQuantidade fValor = new Componentes.TFQuantidade()) { fValor.Casas_decimais = 2; fValor.Ds_label = "Valor Unitario"; if (fValor.ShowDialog() == DialogResult.OK) { vl_unit = fValor.Quantidade; } } } if (vl_unit > decimal.Zero) { try { CamadaNegocio.PostoCombustivel.TCN_ItensVendaMesaConv.Gravar( new CamadaDados.PostoCombustivel.TRegistro_ItensVendaMesaConv() { Cd_empresa = Cd_empresa, Cd_local = Cd_local, Cd_produto = lProduto[0].CD_Produto, Id_vendastr = Id_venda, Quantidade = Quantidade.Value, Vl_unitario = vl_unit }, null); //Buscar Itens Venda bsItensVenda.DataSource = CamadaNegocio.PostoCombustivel.TCN_ItensVendaMesaConv.Buscar(Id_venda, Cd_empresa, string.Empty, string.Empty, false, null); //Totalizar Venda this.TotalizarVenda(); //Quantidade Padrao Quantidade.Value = 1; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); cd_produto.Clear(); cd_produto.Focus(); } } else { MessageBox.Show("Obrigatorio informar preço venda item.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_produto.Clear(); cd_produto.Focus(); } } } }