public static string Excluir(TRegistro_AbastVeiculo val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_AbastVeiculo qtb_abast = new TCD_AbastVeiculo(); try { if (banco == null) { st_transacao = qtb_abast.CriarBanco_Dados(true); } else { qtb_abast.Banco_Dados = banco; } //Verificar se abastecimento esta amarrado a abastecida TCN_Abastecidas.Buscar(string.Empty, string.Empty, val.Id_abastecimentostr, qtb_abast.Banco_Dados).ForEach(p => { p.Id_abastecimento = null; TCN_Abastecidas.Gravar(p, qtb_abast.Banco_Dados); }); //Verificar se abastecimento esta amarrado a financeiro TCN_Abast_X_Duplicata.BuscarDup(val.Id_abastecimentostr, qtb_abast.Banco_Dados).ForEach(p => { //Excluir abast x duplicata TCN_Abast_X_Duplicata.Excluir(new TRegistro_Abast_X_Duplicata() { Id_abastecimento = val.Id_abastecimento, Cd_empresa = p.Cd_empresa, Nr_lancto = p.Nr_lancto }, qtb_abast.Banco_Dados); //Cancelar duplicata CamadaNegocio.Financeiro.Duplicata.TCN_LanDuplicata.CancelarDuplicata(p, qtb_abast.Banco_Dados); }); TCN_AbastFrota_X_CCusto.Buscar(val.Id_abastecimentostr, string.Empty, qtb_abast.Banco_Dados).ForEach(p => { TCN_AbastFrota_X_CCusto.Excluir(p, qtb_abast.Banco_Dados); CamadaNegocio.Financeiro.CCustoLan.TCN_LanCCustoLancto.Excluir( new CamadaDados.Financeiro.CCustoLan.TRegistro_LanCCustoLancto() { Id_ccustolan = p.Id_ccustolan }, qtb_abast.Banco_Dados); }); //Excluir abastecimento qtb_abast.Excluir(val); //Cancelar estoque abastecimento proprio if (val.Id_lanctoestoque.HasValue) { CamadaNegocio.Estoque.TCN_LanEstoque.DeletarEstoque( new CamadaDados.Estoque.TRegistro_LanEstoque() { Cd_empresa = val.Cd_empresa, Cd_produto = val.Cd_produto, Id_lanctoestoque = val.Id_lanctoestoque.Value }, qtb_abast.Banco_Dados); } if (st_transacao) { qtb_abast.Banco_Dados.Commit_Tran(); } return(val.Id_abastecimentostr); } catch (Exception ex) { if (st_transacao) { qtb_abast.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir abastecimento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_abast.deletarBanco_Dados(); } } }
public static string Gravar(TRegistro_AbastVeiculo val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_AbastVeiculo qtb_abast = new TCD_AbastVeiculo(); try { if (banco == null) { st_transacao = qtb_abast.CriarBanco_Dados(true); } else { qtb_abast.Banco_Dados = banco; } if (val.Tp_abastecimento.Trim().ToUpper().Equals("P") && val.Tp_registro.Trim().ToUpper().Equals("A") && (!val.Id_lanctoestoque.HasValue)) { //Buscar local armazenagem object obj = new CamadaDados.Frota.Cadastros.TCD_CfgFrota(qtb_abast.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" } }, "a.cd_local"); if (obj == null) { throw new Exception("Não existe local armazenagem configurado para empresa " + val.Cd_empresa.Trim()); } //Baixar estoque string ret_est = CamadaNegocio.Estoque.TCN_LanEstoque.GravarEstoque( new CamadaDados.Estoque.TRegistro_LanEstoque() { Cd_empresa = val.Cd_empresa, Cd_produto = val.Cd_produto, Cd_local = obj.ToString(), Dt_lancto = val.Dt_abastecimento, Tp_movimento = "S", Qtd_entrada = decimal.Zero, Qtd_saida = val.Volume, Vl_unitario = val.Vl_unitario, Vl_subtotal = val.Vl_subtotal, Tp_lancto = "N", St_registro = "A", Ds_observacao = "BAIXA ABASTECIMENTO INTERNO" }, qtb_abast.Banco_Dados); //baixa estoque no abastecimento val.Id_lanctoestoque = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_est, "@@P_ID_LANCTOESTOQUE")); } val.Id_abastecimentostr = CamadaDados.TDataQuery.getPubVariavel(qtb_abast.Gravar(val), "@P_ID_ABASTECIMENTO"); if (val.rAbast != null) { val.rAbast.Id_abastecimento = val.Id_abastecimento; TCN_Abastecidas.Gravar(val.rAbast, qtb_abast.Banco_Dados); } if (val.rDup != null) { CamadaNegocio.Financeiro.Duplicata.TCN_LanDuplicata.GravarDuplicata(val.rDup, false, qtb_abast.Banco_Dados); //Gravar Abast X Duplicata TCN_Abast_X_Duplicata.Gravar(new TRegistro_Abast_X_Duplicata() { Id_abastecimento = val.Id_abastecimento, Cd_empresa = val.rDup.Cd_empresa, Nr_lancto = val.rDup.Nr_lancto }, qtb_abast.Banco_Dados); } if (val.lCCusto != null) { val.lCCusto.ForEach(p => { p.Cd_empresa = val.Cd_empresa; CamadaNegocio.Financeiro.CCustoLan.TCN_LanCCustoLancto.Gravar(p, qtb_abast.Banco_Dados); TCN_AbastFrota_X_CCusto.Gravar(new TRegistro_AbastFrota_X_CCusto() { Id_abastecimento = val.Id_abastecimento, Id_ccustolan = p.Id_ccustolan }, qtb_abast.Banco_Dados); }); } //Gravar configuracao produto x fornecedor if (val.rProdForn != null) { CamadaNegocio.Estoque.Cadastros.TCN_Produto_X_Fornecedor.Gravar( new CamadaDados.Estoque.Cadastros.TRegistro_Produto_X_Fornecedor() { Cd_fornecedor = val.Cd_fornecedor, Cd_produto = val.Cd_produto, Cd_unidade_fornec = val.rProdForn.Cd_unidade_fornec, Codigo_fornecedor = val.rProdForn.Cd_produto_xml, }, qtb_abast.Banco_Dados); } if (st_transacao) { qtb_abast.Banco_Dados.Commit_Tran(); } return(val.Id_abastecimentostr); } catch (Exception ex) { if (st_transacao) { qtb_abast.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar abastecimento: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_abast.deletarBanco_Dados(); } } }