private void bsItem_PositionChanged(object sender, EventArgs e) { if (bsItem.Current != null) { //Buscar saldo decimal saldo = 0; TCN_LanEstoque.SaldoEstoqueLocal((bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_empresa, (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_produto, (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_local, ref saldo, null); (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Qtd_saldo = saldo; //Buscar Vl Medio decimal vl_medio = 0; TCN_LanEstoque.VlMedioEstoque((bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_empresa, (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Cd_produto, ref vl_medio); (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).Vl_unitario = vl_medio; cd_local.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A"); bb_local.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A"); qtd_contadaEditFloat.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A"); BB_GravarItem.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A"); BB_Excluir.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A"); vl_unitarioEditFloat.Enabled = (bsItem.Current as TRegistro_Inventario_Item_X_Saldo).St_registro.Trim().ToUpper().Equals("A"); } }
private void BB_Excluir_Click(object sender, EventArgs e) { if (BS_Estoque.Current != null) { if ((BS_Estoque.Current as TRegistro_LanEstoque).St_registro_Bool != true) { if (!(BS_Estoque.Current as TRegistro_LanEstoque).Tp_lancto.Trim().ToUpper().Equals("M")) { MessageBox.Show("Permitido cancelar somente lançamento de estoque MANUAL.\r\n" + "Os outros tipo de movimentação de estoque deve ser cancelado no processo que os gerou.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (MessageBox.Show("Deseja Cancelar o Estoque?", "Mensagem", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == System.Windows.Forms.DialogResult.Yes) { TCN_LanEstoque.DeletarEstoque((BS_Estoque.Current as TRegistro_LanEstoque), null); Busca(); } } else { MessageBox.Show("Este Registro já foi Cancelado!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); } } }
public void busca_Valor_Unitario() { if (BS_Lan_Estoque.Current != null) { if (((BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa != "") && ((BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto != "")) { decimal Tot_Entrada = decimal.Zero; decimal Tot_Saida = decimal.Zero; decimal Tot_Saldo = decimal.Zero; decimal VL_Estoque_ent = decimal.Zero; decimal VL_Estoque_sai = decimal.Zero; decimal VL_SaldoEstoque = decimal.Zero; decimal VL_Medio = decimal.Zero; TCN_LanEstoque.Valores_EstoqueLocal((BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa, (BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto, (BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_local, ref Tot_Entrada, ref Tot_Saida, ref Tot_Saldo, ref VL_Estoque_ent, ref VL_Estoque_sai, ref VL_SaldoEstoque, ref VL_Medio, null); TOT_SALDO.Text = Tot_Saldo.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)); VL_SALDO.Text = VL_SaldoEstoque.ToString("N2", new System.Globalization.CultureInfo("pt-BR", true)); VL_MEDIO.Text = VL_Medio.ToString("N7", new System.Globalization.CultureInfo("pt-BR", true)); } } }
private void PreencherFicha(TRegistro_FormulaApontamento rFormula) { //Buscar Ficha Formula TList_FichaTec_MPrima lFicha = CamadaNegocio.Producao.Producao.TCN_FichaTec_MPrima.Buscar(rFormula.Cd_empresa, rFormula.Id_formulacaostr, string.Empty, string.Empty, string.Empty, 0, string.Empty, null); lFicha.ForEach(p => { lficha.Add( new TRegistro_FichaTecOrcItem() { Nr_orcamento = pNr_orcamento, Id_item = pId_item, Cd_item = p.Cd_produto, Ds_item = p.Ds_produto, Cd_local = p.Cd_local, Ds_local = p.Ds_local, Sg_unditem = p.Sigla_unidade, Cd_unditem = p.Cd_unidade, Ds_unditem = p.Ds_unidade, Quantidade = p.Qtd_produto, SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(pCd_empresa, p.Cd_produto, p.Cd_local, null), }); }); bsFichaTec.DataSource = lficha; bsFichaTec.ResetBindings(true); }
private static decimal CalcularCustoMPD(TList_FichaTec_MPrima val, string Dt_apontamento, decimal Qtd_batch, BancoDados.TObjetoBanco banco) { val.ForEach(p => { if (p.Id_formulacao_mprima != null) { //Buscar lista de materia-prima TList_FichaTec_MPrima lMPrima = TCN_FichaTec_MPrima.Buscar(p.Cd_empresa, p.Id_formulacao_mprimastr, string.Empty, string.Empty, string.Empty, 0, string.Empty, banco); //Chamar o metodo CalcularCustoMPD recursivamente p.Vl_custo = CalcularCustoMPD(lMPrima, Dt_apontamento, Qtd_batch, banco); p.Vl_customedio = Math.Round(p.Vl_custo / p.Qtd_produto / Qtd_batch, 2); } else { p.Vl_customedio = TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade, p.Cd_unid_produto, TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(p.Cd_empresa, p.Cd_produto, banco), 5, banco); p.Vl_custo = Math.Round(p.Vl_customedio * p.Qtd_produto * Qtd_batch, 2); } }); return(val.Sum(p => p.Vl_custo)); }
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 BB_Novo_Click(object sender, EventArgs e) { using (TFLanEstoque Lan_Estoque = new TFLanEstoque()) { Lan_Estoque.BS_Lan_Estoque.AddNew(); (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_lancto = "M"; if (Lan_Estoque.ShowDialog() == DialogResult.OK) { if (new CamadaDados.Estoque.Cadastros.TCD_CadProduto().ProdutoRegAnvisa((Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto)) { using (Proc_Commoditties.TFLoteAnvisa fLote = new Proc_Commoditties.TFLoteAnvisa()) { fLote.pCd_empresa = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa; fLote.pNm_empresa = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Nm_empresa; fLote.pCd_produto = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto; fLote.pDs_produto = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Ds_produto; fLote.pQtd_movimentar = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_movimento.Trim().ToUpper().Equals("E") ? (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Qtd_entrada : (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Qtd_saida; fLote.pTp_mov = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_movimento; if (fLote.ShowDialog() == DialogResult.OK) { if (fLote.lMov != null) { fLote.lMov.ForEach(p => (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).lMovLoteAnvisa.Add(p)); } } } } try { if (!string.IsNullOrEmpty(TCN_LanEstoque.GravarEstoque((Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque), null))) { MessageBox.Show("Lançamento estoque gravado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); LimpaCampos(); id_lanctoestoque.Text = (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Id_lanctoestoque.ToString(); if (tcConsulta.SelectedTab.Equals(tpSintetico)) { tcConsulta.SelectedTab = tpAnalitico; } Busca(); } else { MessageBox.Show("Lançamento de estoque não foi gravado.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } Busca(); }
private decimal BuscarSaldoLocal() { if ((!string.IsNullOrEmpty(cd_empresa.Text)) && (!string.IsNullOrEmpty(cd_produto.Text)) && (!string.IsNullOrEmpty(cd_local.Text))) { decimal saldo = decimal.Zero; TCN_LanEstoque.SaldoEstoqueLocal(cd_empresa.Text, cd_produto.Text, cd_local.Text, ref saldo, null); return(saldo); } else { return(decimal.Zero); } }
private void bbAdd_Click(object sender, EventArgs e) { using (TFItensFichaTec fItens = new TFItensFichaTec()) { if (fItens.ShowDialog() == DialogResult.OK) { if (fItens.rFicha != null) { fItens.rFicha.Nr_orcamento = pNr_orcamento; fItens.rFicha.Id_item = pId_item; fItens.rFicha.SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(pCd_empresa, fItens.rFicha.Cd_item, fItens.rFicha.Cd_local, null); lficha.Add(fItens.rFicha); AtualizarFicha(); } } } }
private void bbAdd_Click(object sender, EventArgs e) { if (bsItensOrcamento.Current != null) { using (TFItensFichaTec fItens = new TFItensFichaTec()) { if (fItens.ShowDialog() == DialogResult.OK) { if (fItens.rFicha != null) { fItens.rFicha.Nr_orcamento = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Nr_orcamento; fItens.rFicha.Id_item = (bsItensOrcamento.Current as TRegistro_Orcamento_Item).Id_item; fItens.rFicha.SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local((bsItensOrcamento.Current as TRegistro_Orcamento_Item).Cd_empresa, fItens.rFicha.Cd_item, fItens.rFicha.Cd_local, null); (bsFichaTec.List as TList_FichaTecOrcItem).Add(fItens.rFicha); bsFichaTec.ResetBindings(true); } } } } }
private void AcertarVlMedio() { using (TFLanAcertarVlMedio fVlMedio = new TFLanAcertarVlMedio()) { if (fVlMedio.ShowDialog() == DialogResult.OK) { if (fVlMedio.rEstoque != null) { try { TCN_LanEstoque.AcertarVlMedio(fVlMedio.rEstoque, null); MessageBox.Show("Valor Médio de estoque acertado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim()); } } } } }
private void bbAdd_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(CD_Empresa.Text)) { MessageBox.Show("Obrigatório informar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (TFOrdem_MPrima fOrdem = new TFOrdem_MPrima()) { fOrdem.pCd_empresa = CD_Empresa.Text; if (fOrdem.ShowDialog() == DialogResult.OK) { if (fOrdem.ROrdem_MPrima != null) { fOrdem.ROrdem_MPrima.SaldoEstoque = TCN_LanEstoque.Busca_Saldo_Local(CD_Empresa.Text, fOrdem.ROrdem_MPrima.Cd_produto, fOrdem.ROrdem_MPrima.Cd_local, null); fOrdem.ROrdem_MPrima.Qtd_produto_calc = fOrdem.ROrdem_MPrima.Qtd_produto; (bsOrdemProducao.Current as TRegistro_OrdemProducao).lOrdem_MPrima.Add(fOrdem.ROrdem_MPrima); bsOrdemProducao.ResetCurrentItem(); } } } }
public static string GravaLanInsumos(TRegistro_LanInsumos val, TObjetoBanco banco) { bool pode_liberar = false; TCD_LanInsumos lanInsumo = new TCD_LanInsumos(); try { if (banco == null) { lanInsumo.CriarBanco_Dados(true); pode_liberar = true; banco = lanInsumo.Banco_Dados; } else { lanInsumo.Banco_Dados = banco; } string retorno = ""; TRegistro_LanInsumos_X_Estoque InsumoEstoque = new TRegistro_LanInsumos_X_Estoque(); if (val.ID_Requisicao <= 0 || val.ID_Requisicao == null) { decimal saldo = 0; TCN_LanEstoque.SaldoEstoqueLocal(val.CD_Empresa, val.CD_Produto, val.CD_Local, ref saldo, banco); if (val.Quantidade > saldo) { throw new Exception("Atenção, não há SALDO suficiente desse PRODUTO no LOCAL DE ARMAZENAGEM!"); } //GRAVA O LANÇAMENTO EM ESTOQUE TRegistro_LanEstoque reg_estoque = new TRegistro_LanEstoque(); reg_estoque.Cd_produto = val.CD_Produto; reg_estoque.Cd_local = val.CD_Local; reg_estoque.Qtd_entrada = 0; reg_estoque.Qtd_saida = val.Quantidade; reg_estoque.Cd_empresa = val.CD_Empresa; reg_estoque.St_registro = "A"; reg_estoque.Vl_unitario = val.VL_Unitario; reg_estoque.Vl_subtotal = val.VL_Total; reg_estoque.Tp_movimento = "S"; reg_estoque.Ds_observacao = "LANÇAMENTO DE INSUMO CÓDIGO DO INSUMO - " + val.CD_Produto; reg_estoque.Tp_lancto = "N"; TCD_LanEstoque TCD_Estoque = new TCD_LanEstoque(); TCD_Estoque.Banco_Dados = banco; string ret_estoque = TCD_Estoque.GravaEstoque(reg_estoque); InsumoEstoque.Id_LanctoEstoque = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_estoque, "@@P_ID_LANCTOESTOQUE")); } else { TpBusca[] filtro = new TpBusca[0]; Array.Resize(ref filtro, filtro.Length + 1); filtro[0].vNM_Campo = "d.cd_EMPRESA"; filtro[0].vOperador = "="; filtro[0].vVL_Busca = "'" + val.CD_Empresa + "'"; Array.Resize(ref filtro, filtro.Length + 1); filtro[1].vNM_Campo = "a.cd_produto"; filtro[1].vOperador = "="; filtro[1].vVL_Busca = "'" + val.CD_Produto + "'"; Array.Resize(ref filtro, filtro.Length + 1); filtro[2].vNM_Campo = "E.ST_REGISTRO"; filtro[2].vOperador = "="; filtro[2].vVL_Busca = "'A'"; DataTable TB_Local_Amx = null;//new TCD_Movimentacao().BuscarSaldo(filtro); if ((TB_Local_Amx == null) || (TB_Local_Amx.Rows.Count == 0)) { throw new Exception("O Almoxarifado não possui SALDO suficiente!"); } else { if (val.Quantidade > Convert.ToDecimal(TB_Local_Amx.Rows[0]["Tot_Saldo"].ToString())) { throw new Exception("O Almoxarifado não possui SALDO suficiente!"); } } //BUSCA OS DADOS DE ENTREGA TpBusca[] vBusca = new TpBusca[0]; Array.Resize(ref vBusca, vBusca.Length + 1); vBusca[vBusca.Length - 1].vNM_Campo = "a.ID_Requisicao"; vBusca[vBusca.Length - 1].vOperador = "="; vBusca[vBusca.Length - 1].vVL_Busca = val.ID_Requisicao.ToString(); Array.Resize(ref vBusca, vBusca.Length + 1); vBusca[vBusca.Length - 1].vNM_Campo = "b.cd_produto"; vBusca[vBusca.Length - 1].vOperador = "="; vBusca[vBusca.Length - 1].vVL_Busca = "'" + val.CD_Produto + "'"; //InsumoEstoque.Id_LanctoEstoque = Convert.ToDecimal(new TCD_LanEntregaRequisicao().BuscarEscalar(vBusca, "b.Id_LanctoEstoque").ToString()); //InsumoEstoque.Id_Entrega = Convert.ToDecimal(new TCD_LanEntregaRequisicao().BuscarEscalar(vBusca, "a.Id_Entrega").ToString()); } if (InsumoEstoque.Id_LanctoEstoque > 0) { //MANDA GRAVAR A INSUMO val.ID_Lancto = 0; retorno = lanInsumo.GravaLanInsumos(val); InsumoEstoque.Id_Lancto = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_LANCTO")); InsumoEstoque.ID_LanctoAtiv = Convert.ToDecimal(val.ID_LanctoAtiv); //GRAVA O LANÇAMENTO INSUMO X ESTOQUE InsumoEstoque.Cd_Produto = val.CD_Produto; InsumoEstoque.Cd_Empresa = val.CD_Empresa; TCD_LanInsumos_X_Estoque TCD_InsumoEstoque = new TCD_LanInsumos_X_Estoque(); TCD_InsumoEstoque.Banco_Dados = banco; TCD_InsumoEstoque.GravaLanInsumos_X_Estoque(InsumoEstoque); } else { throw new Exception("Não foi possível lançar o estoque, por favor tente novamente!"); } if (pode_liberar) { lanInsumo.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception erro) { if (pode_liberar) { lanInsumo.Banco_Dados.RollBack_Tran(); } throw new Exception(erro.Message); } finally { if (pode_liberar) { lanInsumo.deletarBanco_Dados(); } } }
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 bb_incluir_Click(object sender, EventArgs e) { if (cd_empresa.Text.Trim().Equals(string.Empty)) { MessageBox.Show("Obrigatorio informar empresa.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_empresa.Focus(); return; } if (dt_inicial.Text.Trim().Equals(string.Empty) || dt_inicial.Text.Trim().Equals("/ /")) { MessageBox.Show("Obrigatorio informar data inicial.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); dt_inicial.Focus(); return; } if (dt_final.Text.Trim().Equals(string.Empty) || dt_final.Text.Trim().Equals("/ /")) { MessageBox.Show("Obrigatorio informar data final.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); dt_final.Focus(); return; } //Buscar lista de itens movimentados dentro do periodo TList_RegLanEstoque lEstoque = TCN_LanEstoque.Busca(cd_empresa.Text, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, dt_inicial.Text, dt_final.Text, "A", string.Empty, string.Empty, false, false, false, false, false, false, 0, string.Empty, "c.cd_grupo, a.cd_produto"); foreach (TRegistro_LanEstoque rEstoque in lEstoque) { TRegistro_Inventario_Item reg = new TRegistro_Inventario_Item() { Id_inventario = (bsInventario.Current as Tregistro_Inventario).Id_inventario, Cd_produto = rEstoque.Cd_produto, Ds_produto = rEstoque.Ds_produto, Cd_grupo = rEstoque.Cd_grupo, Ds_grupo = rEstoque.Ds_grupo }; if (!(bsInventario.Current as Tregistro_Inventario).lItensInventario.Exists(p => p.Id_inventario.Equals(reg.Id_inventario) && p.Cd_produto.Trim().Equals(reg.Cd_produto.Trim()) && p.Cd_grupo.Trim().Equals(reg.Cd_grupo.Trim()))) { //Incluir o produto (bsInventario.Current as Tregistro_Inventario).lItensInventario.Add(reg); } } MontarArvoreItensInventario(); }
public static string Gravar(TRegistro_Devolucao val, CamadaDados.Financeiro.Duplicata.TList_RegLanParcela lParc, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_Devolucao qtb_dev = new TCD_Devolucao(); try { if (banco == null) { st_transacao = qtb_dev.CriarBanco_Dados(true); } else { qtb_dev.Banco_Dados = banco; } decimal tot_devolver = Math.Round(val.lItens.Sum(p => p.Qtd_devolver * (p.Vl_subtotalliquido / p.Quantidade)), 2); TList_DevolucaoFIN lDevFin = new TList_DevolucaoFIN(); if (lParc?.Count > 0) { foreach (CamadaDados.Financeiro.Duplicata.TRegistro_LanParcela p in lParc) { if (tot_devolver > decimal.Zero) { lDevFin.Add(new TRegistro_DevolucaoFIN() { Nr_lancto = p.Nr_lancto, Cd_parcela = p.Cd_parcela, Vl_devolvido = tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual }); tot_devolver -= tot_devolver < p.cVl_atual ? tot_devolver : p.cVl_atual; } else { break; } } } if (tot_devolver > decimal.Zero) { //Buscar Config Adto CamadaDados.Financeiro.Cadastros.TList_ConfigAdto lCfgAdto = CamadaNegocio.Financeiro.Cadastros.TCN_CadConfigAdto.Buscar(val.Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, 1, string.Empty, qtb_dev.Banco_Dados); if (lCfgAdto.Count.Equals(0)) { throw new Exception("Não existe configuração adiantamento para gerar credito."); } //Gerar Credito do valor devolvido CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento rAdto = new CamadaDados.Financeiro.Adiantamento.TRegistro_LanAdiantamento(); rAdto.Cd_clifor = val.Cd_clifor; rAdto.Cd_empresa = val.Cd_empresa; //Buscar endereco object obj = new CamadaDados.Financeiro.Cadastros.TCD_CadEndereco().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_clifor", vOperador = "=", vVL_Busca = "'" + val.Cd_clifor.Trim() + "'" } }, "a.cd_endereco"); rAdto.CD_Endereco = obj == null ? string.Empty : obj.ToString(); rAdto.Ds_adto = "CREDITO RECEBIDO DEVOLUÇÃO VENDA"; rAdto.Tp_movimento = "R"; rAdto.Dt_lancto = val.Dt_devolucao; rAdto.Vl_adto = tot_devolver; rAdto.ST_ADTO = "A"; rAdto.TP_Lancto = "T";//Frente Caixa CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamento.Gravar(rAdto, qtb_dev.Banco_Dados); //Quitar adiantamento rAdto.List_Caixa.Add(new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = lCfgAdto[0].Cd_contagerDEV_CV, Cd_Empresa = val.Cd_empresa, Cd_Historico = lCfgAdto[0].Cd_historico_ADTO_R, Cd_LanctoCaixa = decimal.Zero, ComplHistorico = "CREDITO RECEBIDO DEVOLUÇÃO VENDA", Dt_lancto = val.Dt_devolucao, Login = Utils.Parametros.pubLogin, Nr_Docto = "DEVPDV", St_Estorno = "N", St_Titulo = "N", Vl_PAGAR = decimal.Zero, Vl_RECEBER = rAdto.Vl_adto, NM_Clifor = val.Nm_clifor }); CamadaNegocio.Financeiro.Adiantamento.TCN_LanAdiantamentoXCaixa.Quitar_Adiantamento(rAdto, qtb_dev.Banco_Dados); val.Id_adto = rAdto.Id_adto; //Dar saida do valor do credito para não duplicar o valor string ret = CamadaNegocio.Financeiro.Caixa.TCN_LanCaixa.GravaLanCaixa( new CamadaDados.Financeiro.Caixa.TRegistro_LanCaixa() { Cd_ContaGer = lCfgAdto[0].Cd_contagerDEV_CV, Cd_Empresa = val.Cd_empresa, Cd_Historico = lCfgAdto[0].Cd_historicoDEV_Venda, Cd_LanctoCaixa = decimal.Zero, ComplHistorico = "DEVOLUÇÃO VENDA", Dt_lancto = val.Dt_devolucao, Login = Utils.Parametros.pubLogin, Nr_Docto = "DEVPDV", St_Estorno = "N", St_Titulo = "N", Vl_PAGAR = rAdto.Vl_adto, Vl_RECEBER = decimal.Zero, NM_Clifor = val.Nm_clifor }, qtb_dev.Banco_Dados); val.Cd_contager = lCfgAdto[0].Cd_contagerDEV_CV; val.Cd_lanctocaixastr = CamadaDados.TDataQuery.getPubVariavel(ret, "@P_CD_LANCTOCAIXA"); } //Gravar devolucao val.Id_devolucaostr = CamadaDados.TDataQuery.getPubVariavel(qtb_dev.Gravar(val), "@P_ID_DEVOLUCAO"); lDevFin.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_devolucao = val.Id_devolucao; TCN_DevolucaoFIN.Gravar(p, qtb_dev.Banco_Dados); }); //Gravar Itens Devolvidos val.lItens.ForEach(p => { decimal vl_unit = decimal.Zero; //Buscar Vl.Unitario object objVl_unit = new TCD_LanEstoque(qtb_dev.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from TB_PDV_CupomFiscal_Item_X_Estoque x " + "where a.Id_LanctoEstoque = x.Id_LanctoEstoque " + "and a.cd_empresa = x.cd_empresa " + "and a.cd_produto = x.cd_produto " + "and x.id_lancto = " + p.Id_lanctovenda.ToString() + " " + "and x.id_cupom = " + p.Id_vendarapida.ToString() + " " + "and x.cd_empresa = '" + p.Cd_empresa.Trim() + "' " + "and x.cd_produto = '" + p.Cd_produto.Trim() + "')" } }, "a.vl_unitario"); if (objVl_unit == null || string.IsNullOrEmpty(objVl_unit.ToString())) { vl_unit = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(val.Cd_empresa, p.Cd_produto, qtb_dev.Banco_Dados); } else { vl_unit = decimal.Parse(objVl_unit.ToString()); } //dar entrada novamente no estoque string id_lanctoestoque = CamadaDados.TDataQuery.getPubVariavel( TCN_LanEstoque.GravarEstoque( new TRegistro_LanEstoque() { Cd_empresa = val.Cd_empresa, Cd_produto = p.Cd_produto, Cd_local = p.Cd_local, Dt_lancto = val.Dt_devolucao, Tp_movimento = "E", Qtd_entrada = p.Qtd_devolver, Qtd_saida = decimal.Zero, Vl_unitario = vl_unit, Vl_subtotal = vl_unit, Tp_lancto = "L", St_registro = "A", Ds_observacao = "DEVOLUCAO VENDA FRENTE CAIXA Nº" + p.Id_vendarapida.Value.ToString() }, qtb_dev.Banco_Dados), "@@P_ID_LANCTOESTOQUE"); //gravar itens devolvidos TCN_ItensDevolvidos.Gravar(new TRegistro_ItensDevolvidos() { Cd_empresa = val.Cd_empresa, Id_devolucao = val.Id_devolucao, Id_lancto = p.Id_lanctovenda, Id_cupom = p.Id_vendarapida, Cd_produto = p.Cd_produto, Id_lanctoestoquestr = id_lanctoestoque }, qtb_dev.Banco_Dados); //Grade Produto p.lGrade.ForEach(v => { if (v.Vl_mov > decimal.Zero) { TCN_GradeEstoque.Gravar( new TRegistro_GradeEstoque { Cd_empresa = p.Cd_empresa, Cd_produto = p.Cd_produto, Id_lanctoestoque = decimal.Parse(id_lanctoestoque), Id_caracteristica = v.Id_caracteristica, Id_item = v.Id_item, quantidade = v.Vl_mov }, qtb_dev.Banco_Dados); } }); }); //Reprocessar Comissão new TCD_VendaRapida_Item(qtb_dev.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_vendarapida", vOperador = "=", vVL_Busca = val.lItens[0].Id_vendarapida.ToString() }, new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, 0, string.Empty, string.Empty).ForEach(p => PDV.TCN_VendaRapida_Item.ProcessarComissao(p, qtb_dev.Banco_Dados)); if (val.lItens.Count > 0) { //Recalcular Pontos Fidelidade new CamadaDados.Faturamento.Fidelizacao.TCD_PontosFidelidade(qtb_dev.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.id_cupom", vOperador = "=", vVL_Busca = val.lItens[0].Id_vendarapida.ToString() } }, 0, string.Empty, string.Empty).ForEach(x => { System.Collections.Hashtable hs = new System.Collections.Hashtable(3); hs.Add("@P_CD_EMPRESA", x.Cd_empresa); hs.Add("@P_ID_CUPOM", x.Id_cupomstr); hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade))); qtb_dev.executarSql("update TB_FAT_PontosFidelidade set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" + " where cd_empresa = @P_CD_EMPRESA" + " and id_cupom = @P_ID_CUPOM", hs); }); //Recalcular Resgate new CamadaDados.Faturamento.Fidelizacao.TCD_ResgatePontos(qtb_dev.Banco_Dados).Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.id_cupom", vOperador = "=", vVL_Busca = val.lItens[0].Id_vendarapida.ToString() } }, 0, string.Empty).ForEach(x => { System.Collections.Hashtable hs = new System.Collections.Hashtable(4); hs.Add("@P_CD_EMPRESA", x.Cd_empresa); hs.Add("@P_ID_CUPOM", x.Id_cupomstr); hs.Add("@P_ID_PONTO", x.Id_pontostr); hs.Add("@P_QTD_DEVOLVER", val.lItens.Sum(p => p.Qtd_devolver * (x.Qt_pontos / p.Quantidade))); qtb_dev.executarSql("update TB_FAT_ResgatePontos set QT_Pontos = QT_Pontos - @P_QTD_DEVOLVER" + " where cd_empresa = @P_CD_EMPRESA" + " and id_cupom = @P_ID_CUPOM" + " and id_ponto = @P_ID_PONTO", hs); }); } if (st_transacao) { qtb_dev.Banco_Dados.Commit_Tran(); } return(val.Id_devolucaostr); } catch (Exception ex) { if (st_transacao) { qtb_dev.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar devolução:" + ex.Message.Trim()); } finally { if (st_transacao) { qtb_dev.deletarBanco_Dados(); } } }
private void BuscarProduto() { if (!string.IsNullOrEmpty(cd_empresa.Text)) { //Prencher variavel codigo de barra codigoBarra = cd_produto.Text; TpBusca[] filtro = new TpBusca[0]; if (string.IsNullOrEmpty(cd_produto.Text)) { rProd = UtilPesquisa.BuscarProduto(string.Empty, cd_empresa.Text, nm_empresa.Text, cd_tabelapreco.Text, new Componentes.EditDefault[] { cd_produto, DS_Produto }, null); } else if (cd_produto.Text.SoNumero().Trim().Length != cd_produto.Text.Trim().Length) { rProd = UtilPesquisa.BuscarProduto(cd_produto.Text, cd_empresa.Text, nm_empresa.Text, cd_tabelapreco.Text, new Componentes.EditDefault[] { cd_produto, DS_Produto }, null); } 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 = '" + (!string.IsNullOrWhiteSpace(cd_produto.TextOld) ? cd_produto.TextOld : 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() + "'))"; TList_CadProduto lProd = new 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; cd_local.Enabled = !rProd.St_composto; bb_local.Enabled = !rProd.St_composto; qtd_entrada.Enabled = !rProd.St_composto; vl_entrada.Enabled = !rProd.St_composto; codBarra.Text = BuscarCodBarra(); //Buscar Preço Venda if (!string.IsNullOrEmpty(cd_produto.Text) && !string.IsNullOrEmpty(cd_tabelapreco.Text)) { vl_precovenda.Value = TCN_LanPrecoItem.Busca_ConsultaPreco(cd_empresa.Text, cd_produto.Text, cd_tabelapreco.Text, null); } if (!rProd.St_composto) { //Buscar Preço Custo if (!string.IsNullOrEmpty(cd_produto.Text) && !string.IsNullOrEmpty(cd_local.Text)) { vl_custo.Value = TCN_LanEstoque.Vl_MedioLocal(cd_empresa.Text, cd_produto.Text, cd_local.Text, null); vl_entrada.Value = vl_custo.Value; } //Buscar Saldo quantidade.Value = BuscarSaldoLocal(); //Total Custo Estoque if (quantidade.Value > 0 && vl_custo.Value > 0) { vl_subtotal.Value = quantidade.Value * vl_custo.Value; } } } else { cd_produto.Clear(); cd_produto.Focus(); //se o produto nao existir com o codigo add ao campo para cadastrar if (!string.IsNullOrEmpty(codigoBarra)) { codBarra.Text = codigoBarra; if (InputBox("Pergunta", "Produto não encontrado com o código de barras!\r\n" + "Deseja incluir código ao novo produto ou relacionar ao existente?") == DialogResult.Yes) { bb_novoProd_Click(this, new EventArgs()); } else { BuscarProduto(); } } } if (!string.IsNullOrEmpty(cd_local.Text)) { qtd_entrada.Focus(); } } else { MessageBox.Show("Obrigatório selecionar empresa para Buscar o Produto!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_empresa.Focus(); } }
public static string Gravar2(TRegistro_ApontamentoProducao val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ApontamentoProducao qtb_ap = new TCD_ApontamentoProducao(); try { if (banco == null) { st_transacao = qtb_ap.CriarBanco_Dados(true); } else { qtb_ap.Banco_Dados = banco; } //Gravar apontamento val.St_registro = "1"; val.Id_apontamento = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_ap.Gravar(val), "@P_ID_APONTAMENTO")); decimal custo = decimal.Zero; //Baixar estoque ficha tecnica TCN_Ordem_MPrima.Buscar(val.Id_ordemstr, qtb_ap.Banco_Dados) .ForEach(v => { //Incluir apontamento TCN_Apontamento_MPrima.Gravar( new TRegistro_Apontamento_MPrima { Id_apontamento = val.Id_apontamento.Value, Cd_produto = v.Cd_produto, Cd_unidade = v.Cd_unidade, Cd_local = v.Cd_local, Qtd_produto = v.Qtd_produto, Pc_quebratec = v.Pc_quebratec }, qtb_ap.Banco_Dados); //Gravar estoque TRegistro_LanEstoque rEstoque = new TRegistro_LanEstoque(); rEstoque.Cd_empresa = v.CD_Empresa; rEstoque.Cd_local = v.Cd_local; rEstoque.Cd_produto = v.Cd_produto; rEstoque.Ds_observacao = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO"; rEstoque.Dt_lancto = val.Dt_apontamento; rEstoque.Tp_movimento = "S"; rEstoque.Qtd_entrada = decimal.Zero; rEstoque.Qtd_saida = v.Qtd_produto; rEstoque.Vl_unitario = TCN_LanEstoque.BuscarVlEstoqueUltimaCompra(v.CD_Empresa, v.Cd_produto, qtb_ap.Banco_Dados); rEstoque.Vl_subtotal = v.Qtd_produto * rEstoque.Vl_unitario; rEstoque.Tp_lancto = "N"; custo += rEstoque.Vl_subtotal; TCN_LanEstoque.GravarEstoque(rEstoque, qtb_ap.Banco_Dados); //Apontamento x estoque TCN_Apontamento_Estoque.GravarApontamentoEstoque( new TRegistro_Apontamento_Estoque { Id_apontamento = val.Id_apontamento, Cd_empresa = rEstoque.Cd_empresa, Cd_produto = rEstoque.Cd_produto, Id_lanctoestoque = rEstoque.Id_lanctoestoque, Vl_custocontabil = rEstoque.Vl_subtotal }, qtb_ap.Banco_Dados); }); //Dar entrada estoque produto acabado TRegistro_OrdemProducao rOrdem = TCN_OrdemProducao.Buscar(val.Id_ordemstr, val.Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, false, false, false, false, qtb_ap.Banco_Dados)[0]; TRegistro_LanEstoque rEstAcab = new TRegistro_LanEstoque(); rEstAcab.Cd_empresa = rOrdem.Cd_empresa; rEstAcab.Cd_local = rOrdem.Cd_local; rEstAcab.Cd_produto = rOrdem.Cd_produto; rEstAcab.Ds_observacao = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO"; rEstAcab.Dt_lancto = val.Dt_apontamento; rEstAcab.Tp_movimento = "E"; rEstAcab.Qtd_entrada = rOrdem.Qtd_saldoproduzir; rEstAcab.Qtd_saida = decimal.Zero; rEstAcab.Vl_unitario = Math.Round(decimal.Divide(custo, rOrdem.Qtd_saldoproduzir), 7, MidpointRounding.AwayFromZero); rEstAcab.Vl_subtotal = custo; rEstAcab.Tp_lancto = "N"; TCN_LanEstoque.GravarEstoque(rEstAcab, qtb_ap.Banco_Dados); //Apontamento x estoque TCN_Apontamento_Estoque.GravarApontamentoEstoque( new TRegistro_Apontamento_Estoque { Id_apontamento = val.Id_apontamento, Cd_empresa = rEstAcab.Cd_empresa, Cd_produto = rEstAcab.Cd_produto, Id_lanctoestoque = rEstAcab.Id_lanctoestoque, Vl_custocontabil = custo }, qtb_ap.Banco_Dados); //Gravar Ordem x Apontamento TCN_OrdemProducao_X_Apontamento.Gravar( new TRegistro_OrdemProducao_X_Apontamento { Id_apontamento = val.Id_apontamento, Id_ordem = val.Id_ordem }, qtb_ap.Banco_Dados); //Alterar status serie para P-Processada TCN_SerieProduto.Buscar(string.Empty, string.Empty, string.Empty, val.Id_ordemstr, qtb_ap.Banco_Dados) .ForEach(p => { p.St_registro = "P"; TCN_SerieProduto.Gravar(p, qtb_ap.Banco_Dados); }); //Gravar custo total materia prima val.Vl_custo_mpd = custo; qtb_ap.Gravar(val); if (st_transacao) { qtb_ap.Banco_Dados.Commit_Tran(); } return(val.Id_apontamentostr); } catch (Exception ex) { if (st_transacao) { qtb_ap.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar apontamento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_ap.deletarBanco_Dados(); } } }
private void afterGrava() { if (rProd != null) { if (!string.IsNullOrEmpty(cd_tabelapreco.Text)) { if (vl_precovenda.Value > 0) { TRegistro_LanPrecoItem rPreco = new TRegistro_LanPrecoItem(); rPreco.CD_Empresa = cd_empresa.Text; rPreco.CD_TabelaPreco = cd_tabelapreco.Text; rPreco.Dt_preco = CamadaDados.UtilData.Data_Servidor(); rPreco.VL_PrecoVenda = vl_precovenda.Value; rProd.lPrecoItem.Add(rPreco); TCN_CadProduto.Gravar(rProd, null); MessageBox.Show("Produto Atualizado com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { MessageBox.Show("É necessário informar tabela preço!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Adicionar Código de Barras if (!string.IsNullOrEmpty(codBarra.Text)) { rProd.lCodBarra.Add( new TRegistro_CodBarra() { Cd_codbarra = codBarra.Text }); } try { if (string.IsNullOrEmpty(cd_local.Text)) { MessageBox.Show("Informe o Local de Armazenagem para ajustar estoque!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); cd_local.Focus(); return; } if (qtd_entrada.Value.Equals(decimal.Zero)) { MessageBox.Show("Informe a QTD de ajuste de estoque do produto!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); qtd_entrada.Focus(); return; } if (vl_entrada.Value.Equals(decimal.Zero)) { MessageBox.Show("Informe o Valor Médio do produto!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); vl_entrada.Focus(); return; } if (quantidade.Value != qtd_entrada.Value) { //Gravar no estoque TRegistro_LanEstoque regEstoque = new TRegistro_LanEstoque(); regEstoque.Cd_empresa = cd_empresa.Text; regEstoque.Cd_produto = cd_produto.Text; regEstoque.Cd_local = cd_local.Text; regEstoque.Dt_lancto = CamadaDados.UtilData.Data_Servidor(); regEstoque.Vl_medioestoque = vl_entrada.Value; regEstoque.St_registro = "A"; regEstoque.Tp_lancto = "M"; if (quantidade.Value < qtd_entrada.Value) { regEstoque.Tp_movimento = "E"; regEstoque.Qtd_entrada = qtd_entrada.Value - quantidade.Value; regEstoque.Vl_subtotal = vl_entrada.Value * (qtd_entrada.Value - quantidade.Value); } else { regEstoque.Tp_movimento = "S"; regEstoque.Qtd_saida = quantidade.Value - qtd_entrada.Value; regEstoque.Vl_subtotal = vl_entrada.Value * (quantidade.Value - qtd_entrada.Value); } regEstoque.Vl_unitario = vl_entrada.Value; //Gravar Estoque TCN_LanEstoque.GravarEstoque(regEstoque, null); //Atualizar Vl.Médio TCN_LanEstoque.AcertarVlMedio(regEstoque, null); } else { MessageBox.Show("Não é possivel alterar estoque de produto mantendo a mesma quantidade!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //Gravar Produto CamadaNegocio.Estoque.Cadastros.TCN_CadProduto.Gravar(rProd, null); MessageBox.Show("Produto Atualizado com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); LimparCampos(); BB_Gravar.Visible = false; BB_Cancelar.Visible = false; BB_Novo.Visible = true; pDados.Enabled = false; } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
public static TList_Apontamento_Estoque ProcessarEstoqueFichaTec_MPrima(TList_FichaTec_MPrima val, decimal Qtd_batch, DateTime?Dt_estoque, bool St_decomposicao, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_FichaTec_MPrima qtb_ficha = new TCD_FichaTec_MPrima(); try { if (banco == null) { st_transacao = qtb_ficha.CriarBanco_Dados(true); } else { qtb_ficha.Banco_Dados = banco; } TList_Apontamento_Estoque lEstoque = new TList_Apontamento_Estoque(); val.ForEach(p => { #region if produto composto e formula for nula if ((new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_ficha.Banco_Dados).ProdutoComposto(p.Cd_produto)) && (p.Id_formulacao_mprima == null)) { TRegistro_ApontamentoProducao rApontamento = new TRegistro_ApontamentoProducao(); rApontamento.Cd_empresa = p.Cd_empresa; rApontamento.Dt_apontamento = Dt_estoque; rApontamento.Dt_validade = Dt_estoque; rApontamento.Qtd_batch = p.Qtd_produto * Qtd_batch; rApontamento.LFormulaApontamento = new TList_FormulaApontamento() { TCN_FormulaApontamento.CriarFormulaApontamentoProd(p.Cd_empresa, p.Cd_produto, p.Cd_unidade, p.Cd_local, //St_decomposicao, qtb_ficha.Banco_Dados) }; //Gravar Formula Apontamento rApontamento.LFormulaApontamento.ForEach(x => { x.St_decomposicao = St_decomposicao; TCN_FormulaApontamento.Gravar(x, qtb_ficha.Banco_Dados); }); //Calcular custo MPD TCN_ApontamentoProducao.CalcularCustoMPD(rApontamento, qtb_ficha.Banco_Dados); //Calcular custo fixo TCN_ApontamentoProducao.CalcularCustoFixo(rApontamento, qtb_ficha.Banco_Dados); //Chamar metodo Gravar Apontamento recursivamente p.Id_apontamentomprima = Convert.ToDecimal(TCN_ApontamentoProducao.Gravar(rApontamento, qtb_ficha.Banco_Dados)); } #endregion #region else if formula diferente de nulll else if (p.Id_formulacao_mprima != null) { //Buscar formula apontamento TRegistro_ApontamentoProducao rApontamento = new TRegistro_ApontamentoProducao(); rApontamento.Cd_empresa = p.Cd_empresa; rApontamento.Dt_apontamento = Dt_estoque; rApontamento.Dt_validade = Dt_estoque; rApontamento.Qtd_batch = p.Qtd_produto * Qtd_batch; rApontamento.LFormulaApontamento = TCN_FormulaApontamento.Buscar(p.Cd_empresa, p.Id_formulacao_mprimastr, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 0, string.Empty, qtb_ficha.Banco_Dados); //Buscar ficha tecnica da formula rApontamento.LFormulaApontamento[0].LFichaTec_MPrima = TCN_FichaTec_MPrima.Buscar(p.Cd_empresa, p.Id_formulacao_mprimastr, string.Empty, string.Empty, string.Empty, 0, string.Empty, qtb_ficha.Banco_Dados); //Buscar Custo rApontamento.LFormulaApontamento[0].LCustoFixo = TCN_CustoFixo_Direto.Buscar(p.Cd_empresa, p.Id_formulacao_mprimastr, string.Empty, string.Empty, string.Empty, 0, string.Empty, qtb_ficha.Banco_Dados); rApontamento.Qtd_batch = Math.Round(p.Qtd_produto / TCN_CadConvUnidade.ConvertUnid(rApontamento.LFormulaApontamento[0].Cd_unidade, rApontamento.LFormulaApontamento[0].Cd_unidProduto, rApontamento.LFormulaApontamento[0].Qt_produto, 3, qtb_ficha.Banco_Dados), 0); //Calcular custo MPD TCN_ApontamentoProducao.CalcularCustoMPD(rApontamento, qtb_ficha.Banco_Dados); //Calcular custo fixo TCN_ApontamentoProducao.CalcularCustoFixo(rApontamento, qtb_ficha.Banco_Dados); //Chamar metodo Gravar Apontamento recursivamente p.Id_apontamentomprima = Convert.ToDecimal(TCN_ApontamentoProducao.Gravar(rApontamento, qtb_ficha.Banco_Dados)); } #endregion //Gravar estoque TRegistro_LanEstoque rEstoque = new TRegistro_LanEstoque(); rEstoque.Cd_empresa = p.Cd_empresa; rEstoque.Cd_local = p.Cd_local; rEstoque.Cd_produto = p.Cd_produto; rEstoque.Ds_observacao = "ESTOQUE GRAVADO AUTOMATICAMENTE PELO APONTAMENTO DE PRODUCAO"; rEstoque.Dt_lancto = Dt_estoque; rEstoque.Tp_movimento = !St_decomposicao ? "S" : "E"; rEstoque.Qtd_entrada = St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade, p.Cd_unid_produto, p.Qtd_produto * Qtd_batch, 3, qtb_ficha.Banco_Dados) : decimal.Zero; rEstoque.Qtd_saida = !St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(p.Cd_unidade, p.Cd_unid_produto, p.Qtd_produto * Qtd_batch, 3, qtb_ficha.Banco_Dados) : decimal.Zero; rEstoque.Vl_unitario = p.Vl_unitario; rEstoque.Vl_subtotal = rEstoque.Vl_unitario * (St_decomposicao ? rEstoque.Qtd_entrada : rEstoque.Qtd_saida); rEstoque.Tp_lancto = "N"; TCN_LanEstoque.GravarEstoque(rEstoque, qtb_ficha.Banco_Dados); lEstoque.Add(new TRegistro_Apontamento_Estoque() { Cd_empresa = p.Cd_empresa, Cd_produto = p.Cd_produto, Id_lanctoestoque = rEstoque.Id_lanctoestoque, Vl_custocontabil = p.Vl_custo }); }); if (st_transacao) { qtb_ficha.Banco_Dados.Commit_Tran(); } return(lEstoque); } catch (Exception ex) { if (st_transacao) { qtb_ficha.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_ficha.deletarBanco_Dados(); } } }
private void bb_serie_Click(object sender, EventArgs e) { if (bsSintetico.Current != null) { using (Producao.TFSerieProduto fSerie = new Producao.TFSerieProduto()) { fSerie.st_cadastroavulso = true; fSerie.pCd_empresa = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString(); fSerie.pCd_produto = (bsSintetico.Current as DataRowView)["cd_produto"].ToString(); fSerie.pDs_produto = (bsSintetico.Current as DataRowView)["ds_produto"].ToString(); if (fSerie.ShowDialog() == DialogResult.OK) { if (fSerie.lSerie != null) { if (fSerie.lSerie.Count > 0) { try { fSerie.lSerie.FindAll(p => !string.IsNullOrEmpty(p.Nr_serie.Trim())).ForEach(p => { p.St_registro = "P"; CamadaNegocio.Producao.Producao.TCN_SerieProduto.Gravar(p, null); }); MessageBox.Show("Nº Série gravados com sucesso!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); using (TFLanEstoque Lan_Estoque = new TFLanEstoque()) { Lan_Estoque.BS_Lan_Estoque.AddNew(); (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_lancto = "M"; (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_empresa = (bsSintetico.Current as DataRowView)["cd_empresa"].ToString(); (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Nm_empresa = (bsSintetico.Current as DataRowView)["nm_empresa"].ToString(); (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Cd_produto = (bsSintetico.Current as DataRowView)["cd_produto"].ToString(); (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Ds_produto = (bsSintetico.Current as DataRowView)["ds_produto"].ToString(); (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Tp_movimento = "E"; (Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque).Qtd_entrada = fSerie.lSerie.Count; if (Lan_Estoque.ShowDialog() == DialogResult.OK) { try { TCN_LanEstoque.GravarEstoque((Lan_Estoque.BS_Lan_Estoque.Current as TRegistro_LanEstoque), null); MessageBox.Show("Lançamento estoque gravado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); Busca(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } else { MessageBox.Show("Obrigatório informar Nº Série!", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } else { MessageBox.Show("Obrigatório selecionar produto para cadastrar numero série.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private decimal BuscarSaldoLocal(string Cd_empresa, string Cd_produto, string Cd_local) { return(TCN_LanEstoque.Busca_Saldo_Local(Cd_empresa, Cd_produto, Cd_local)); }
public static void ProcessarEstoqueProdutoAcabado(TRegistro_ApontamentoProducao val, decimal Qtd_batch, decimal TotalCusto, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_ApontamentoProducao qtb_ficha = new TCD_ApontamentoProducao(); try { if (banco == null) { st_transacao = qtb_ficha.CriarBanco_Dados(true); } else { qtb_ficha.Banco_Dados = banco; } if ((!new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_ficha.Banco_Dados).ItemServico(val.LFormulaApontamento[0].Cd_produto)) && (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_ficha.Banco_Dados).ProdutoConsumoInterno(val.LFormulaApontamento[0].Cd_produto))) { //Entrada produto acabado no estoque CamadaDados.Estoque.TRegistro_LanEstoque rEstoque = new CamadaDados.Estoque.TRegistro_LanEstoque(); rEstoque.Cd_empresa = val.Cd_empresa; rEstoque.Cd_local = val.LFormulaApontamento[0].Cd_local; rEstoque.Cd_produto = val.LFormulaApontamento[0].Cd_produto; rEstoque.Ds_observacao = "ESTOQUE GRAVADO AUTOMATICAMENTE PELA PRODUCAO DO ITEM: " + val.LFormulaApontamento[0].Cd_produto.Trim(); rEstoque.Dt_lancto = val.Dt_apontamento; rEstoque.Qtd_entrada = !val.LFormulaApontamento[0].St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(val.LFormulaApontamento[0].Cd_unidade, val.LFormulaApontamento[0].Cd_unidProduto, val.Qtd_batch * val.LFormulaApontamento[0].Qt_produto, 3, qtb_ficha.Banco_Dados) : decimal.Zero; rEstoque.Qtd_saida = val.LFormulaApontamento[0].St_decomposicao ? TCN_CadConvUnidade.ConvertUnid(val.LFormulaApontamento[0].Cd_unidade, val.LFormulaApontamento[0].Cd_unidProduto, val.Qtd_batch * val.LFormulaApontamento[0].Qt_produto, 3, qtb_ficha.Banco_Dados) : decimal.Zero; rEstoque.Tp_lancto = "N"; rEstoque.Tp_movimento = !val.LFormulaApontamento[0].St_decomposicao ? "E" : "S"; rEstoque.Vl_subtotal = TotalCusto; rEstoque.Vl_unitario = rEstoque.Vl_subtotal > 0?(rEstoque.Vl_subtotal / (val.LFormulaApontamento[0].St_decomposicao ? rEstoque.Qtd_saida : rEstoque.Qtd_entrada)):0; string ret_estoque = TCN_LanEstoque.GravarEstoque(rEstoque, qtb_ficha.Banco_Dados); val.LApontamentoEstoque.Add(new TRegistro_Apontamento_Estoque() { Cd_empresa = val.Cd_empresa, Cd_produto = val.LFormulaApontamento[0].Cd_produto, Id_lanctoestoque = rEstoque.Id_lanctoestoque, Vl_custocontabil = rEstoque.Vl_subtotal }); } if (st_transacao) { qtb_ficha.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_ficha.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_ficha.deletarBanco_Dados(); } } }
private void Busca() { if (tcConsulta.SelectedTab.Equals(tpAnalitico)) { string auxtpmov = string.Empty; string virg = string.Empty; if (st_entrada.Checked) { auxtpmov = "'E'"; virg = ","; } if (st_saida.Checked) { auxtpmov += virg = "'S'"; virg = ","; } string auxtplancto = string.Empty; virg = string.Empty; if (cck_Normal.Checked) { auxtplancto = "'N'"; virg = ","; } if (cck_Provisao.Checked) { auxtplancto += virg + "'P'"; virg = ","; } if (cck_Manual.Checked) { auxtplancto += virg + "'M'"; virg = ","; } if (cck_Inventario.Checked) { auxtplancto += virg + "'I'"; virg = ","; } if (cck_Transferencia.Checked) { auxtplancto += virg + "'T'"; virg = ","; } if (cbCompDev.Checked) { auxtplancto += virg + "'L'"; virg = ","; } string auxstatus = string.Empty; if (st_ativo.Checked) { auxstatus = "'A'"; virg = ","; } if (st_cancelado.Checked) { auxstatus += virg + "'C'"; } TList_RegLanEstoque lista = TCN_LanEstoque.Busca(cd_empresa.Text, CD_Produto.Text, cd_grupo.Text, tp_produto.Text, cd_marca.Text, id_lanctoestoque.Text, CD_Local.Text, string.Empty, auxtpmov, auxtplancto, DT_Inicial.Text, DT_Final.Text, auxstatus, string.Empty, string.Empty, id_variedade.Text, 0, string.Empty, null); if ((lista != null) && (lista.Count > 0)) { BS_Estoque.DataSource = lista; } else { BS_Estoque.Clear(); } } else if (tcConsulta.SelectedTab.Equals(tpSintetico)) { TpBusca[] filtro = new TpBusca[0]; if (cd_empresa.Text.Trim() != string.Empty) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.cd_empresa"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = "'" + cd_empresa.Text.Trim() + "'"; } if (CD_Produto.Text.Trim() != string.Empty) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.cd_produto"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = "'" + CD_Produto.Text.Trim() + "'"; } if (cd_grupo.Text.Trim() != string.Empty) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "b.cd_grupo"; filtro[filtro.Length - 1].vOperador = "like"; filtro[filtro.Length - 1].vVL_Busca = "'" + cd_grupo.Text.Trim() + "%'"; } if (tp_produto.Text.Trim() != string.Empty) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "b.tp_produto"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = "'" + tp_produto.Text.Trim() + "'"; } if (cd_marca.Text.Trim() != string.Empty) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "b.cd_marca"; filtro[filtro.Length - 1].vOperador = "="; filtro[filtro.Length - 1].vVL_Busca = cd_marca.Text; } if (cbProdSaldoMinimo.Checked) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = string.Empty; filtro[filtro.Length - 1].vOperador = "exists"; filtro[filtro.Length - 1].vVL_Busca = "(select 1 from TB_EST_Produto_QTDEstoque x " + "where x.cd_produto = a.cd_produto " + "and x.cd_empresa = a.cd_empresa " + "and x.qt_min_estoque > a.tot_saldo) "; } if (cbItensSaldo.Checked) { Array.Resize(ref filtro, filtro.Length + 1); filtro[filtro.Length - 1].vNM_Campo = "a.Tot_Saldo"; filtro[filtro.Length - 1].vOperador = ">"; filtro[filtro.Length - 1].vVL_Busca = "0"; } DataTable tb = new TCD_LanEstoque().BuscarEstoqueSintetico(filtro, string.Empty, "b.ds_produto"); tb.Columns.Add(new DataColumn("saldo_futuro", typeof(decimal), "Tot_Saldo - Qtd_reservada")); bsSintetico.DataSource = tb; bsSintetico_PositionChanged(this, new EventArgs()); //Buscar custo total do estoque tot_estoque.Text = TCN_LanEstoque.CustoTotalEstoque(string.IsNullOrEmpty(cd_empresa.Text) ? string.Empty : "'" + cd_empresa.Text.Trim() + "'", null).ToString("N2", new System.Globalization.CultureInfo("pt-BR", true)); } }