public static string GravarInventarioItemSaldo(TRegistro_Inventario_Item_X_Saldo 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; } //Validar veracidade da informação cd. almoxarifado if (val.Id_Almox != null) { TpBusca[] tpBuscas = new TpBusca[0]; Estruturas.CriarParametro(ref tpBuscas, "a.id_almox", "'" + val.Id_Almox + "'"); if (new CamadaDados.Almoxarifado.TCD_CadAlmoxarifado().BuscarEscalar(tpBuscas, "1") == null) { throw new Exception("Código de almoxarifado informado não foi encontrado pré-cadastrado no sistema. " + "Não será possível finalizar a operação."); } } string retorno = qtb_saldo.GravarInventario_Item_X_Saldo(val); if (st_transacao) { qtb_saldo.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_saldo.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar saldo: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_saldo.deletarBanco_Dados(); } } }
public static string DeletarInventarioItemSaldo(TRegistro_Inventario_Item_X_Saldo 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; } //Excluir Inventario X Saldo qtb_saldo.DeletarInventario_Item_X_Saldo(val); if (st_transacao) { qtb_saldo.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_saldo.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir saldo: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_saldo.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(); } } }