public static string GravarInventario(Tregistro_Inventario val, TObjetoBanco banco) { bool st_transacao = false; TCD_Inventario qtb_inventario = new TCD_Inventario(); try { if (banco == null) { st_transacao = qtb_inventario.CriarBanco_Dados(true); } else { qtb_inventario.Banco_Dados = banco; } //Gravar Inventario val.Id_inventario = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_inventario.GravarInventario(val), "@P_ID_INVENTARIO")); //Excluir itens inventario val.lItensDel.ForEach(p => TCN_Inventario_Item.DeletarInventarioItem(p, qtb_inventario.Banco_Dados)); //Gravar itens inventario val.lItensInventario.ForEach(p => { p.Id_inventario = val.Id_inventario; TCN_Inventario_Item.GravarInventarioItem(p, qtb_inventario.Banco_Dados); }); if (st_transacao) { qtb_inventario.Banco_Dados.Commit_Tran(); } return(val.Id_inventario.Value.ToString()); } catch (Exception ex) { if (st_transacao) { qtb_inventario.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar inventario: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_inventario.deletarBanco_Dados(); } } }
public static string DeletarInventario(Tregistro_Inventario val, TObjetoBanco banco) { bool st_transacao = false; TCD_Inventario qtb_inventario = new TCD_Inventario(); try { if (banco == null) { st_transacao = qtb_inventario.CriarBanco_Dados(true); } else { qtb_inventario.Banco_Dados = banco; } if (val.St_inventario.Trim().ToUpper().Equals("P")) { throw new Exception("Não é permitido excluir inventario PROCESSADO."); } //A stored procedure ja ira excluir os itens e o saldo caso exista qtb_inventario.DeletarInvetario(val); if (st_transacao) { qtb_inventario.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_inventario.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir inventario: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_inventario.deletarBanco_Dados(); } } }
public static void ProcessarInventario(Tregistro_Inventario val, TObjetoBanco banco) { bool st_transacao = false; TCD_Inventario_Item_X_Saldo qtb_saldo = new TCD_Inventario_Item_X_Saldo(); try { if (banco == null) { st_transacao = qtb_saldo.CriarBanco_Dados(true); } else { qtb_saldo.Banco_Dados = banco; } TList_Inventario_Item_X_Saldo lSaldo = TCN_Inventario_Item_X_Saldo.Buscar(val.Id_inventario.Value.ToString(), string.Empty, string.Empty, string.Empty, qtb_saldo.Banco_Dados); lSaldo.ForEach(p => { //Para produtos derivados de consumo interno //O sistema deve gerar lançamento no almoxarifado if (p.Id_Almox != null) { if (p.Qtd_saldoAmx != p.Qtd_contada) { p.Qtd_saldo = p.Qtd_saldoAmx; CamadaDados.Almoxarifado.TRegistro_Movimentacao _Movimentacao = new CamadaDados.Almoxarifado.TRegistro_Movimentacao(); _Movimentacao.Cd_empresa = p.Cd_empresa; _Movimentacao.LoginAlmoxarife = Parametros.pubLogin; _Movimentacao.Id_almoxstr = p.Id_Almox.ToString(); _Movimentacao.Cd_produto = p.Cd_produto; _Movimentacao.Dt_movimento = CamadaDados.UtilData.Data_Servidor(); if (p.Qtd_saldoAmx < p.Qtd_contada) { _Movimentacao.Tp_movimento = "E"; _Movimentacao.Quantidade = p.Qtd_contada - p.Qtd_saldoAmx; _Movimentacao.Vl_subtotal = p.Vl_unitario * (p.Qtd_contada - p.Qtd_saldoatual); _Movimentacao.Ds_observacao = "ENTRADA DEVIDA AO INVENTÁRIO " + p.Id_inventario; } else { _Movimentacao.Tp_movimento = "S"; _Movimentacao.Quantidade = p.Qtd_saldoAmx - p.Qtd_contada; _Movimentacao.Vl_subtotal = p.Vl_unitario * (p.Qtd_saldoatual - p.Qtd_contada); _Movimentacao.Ds_observacao = "SAÍDA DEVIDA AO INVENTÁRIO " + p.Id_inventario; } _Movimentacao.Vl_unitario = p.Vl_unitario; string retorno = CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(_Movimentacao, qtb_saldo.Banco_Dados); //Gravar Inventario X Almoxarifado TCN_Inventario_X_Estoque.GravarInventarioXEstoque( new TRegistro_Inventario_X_Estoque() { Cd_empresa = p.Cd_empresa, Cd_produto = p.Cd_produto, Id_inventario = p.Id_inventario, Id_movimentoAlmox = Convert.ToDecimal(retorno), Id_registro = p.Id_registro }, qtb_saldo.Banco_Dados); } } else { if (p.Qtd_saldoatual != p.Qtd_contada) { //Gravar no estoque TRegistro_LanEstoque regEstoque = new TRegistro_LanEstoque(); regEstoque.Cd_empresa = p.Cd_empresa; regEstoque.Cd_produto = p.Cd_produto; regEstoque.Cd_local = p.Cd_local; regEstoque.Dt_lancto = CamadaDados.UtilData.Data_Servidor(); regEstoque.St_registro = "A"; regEstoque.Tp_lancto = "I"; if (p.Qtd_saldoatual < p.Qtd_contada) { regEstoque.Tp_movimento = "E"; regEstoque.Qtd_entrada = p.Qtd_contada - p.Qtd_saldoatual; regEstoque.Vl_subtotal = p.Vl_unitario * (p.Qtd_contada - p.Qtd_saldoatual); } else { regEstoque.Tp_movimento = "S"; regEstoque.Qtd_saida = p.Qtd_saldoatual - p.Qtd_contada; regEstoque.Vl_subtotal = p.Vl_unitario * (p.Qtd_saldoatual - p.Qtd_contada); } regEstoque.Vl_unitario = p.Vl_unitario; string retorno = TCN_LanEstoque.GravarEstoque(regEstoque, qtb_saldo.Banco_Dados); //Gravar Inventario X Estoque TCN_Inventario_X_Estoque.GravarInventarioXEstoque( new TRegistro_Inventario_X_Estoque() { Cd_empresa = p.Cd_empresa, Cd_produto = p.Cd_produto, Id_inventario = p.Id_inventario, Id_registro = p.Id_registro, Id_lanctoestoque = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@@P_ID_LANCTOESTOQUE")) }, qtb_saldo.Banco_Dados); } } if (p.Id_Almox == null && p.Qtd_saldoatual != p.Qtd_saldo) { p.Qtd_saldo = p.Qtd_saldoatual; TCN_Inventario_Item_X_Saldo.GravarInventarioItemSaldo(p, qtb_saldo.Banco_Dados); } else { TCN_Inventario_Item_X_Saldo.GravarInventarioItemSaldo(p, qtb_saldo.Banco_Dados); } }); //Alterar Status do Inventario para Processado val.St_inventario = "P"; GravarInventario(val, qtb_saldo.Banco_Dados); if (st_transacao) { qtb_saldo.Banco_Dados.Commit_Tran(); } } catch (Exception ex) { if (st_transacao) { qtb_saldo.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar inventario: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_saldo.deletarBanco_Dados(); } } }