public static string Gravar(TRegistro_PesagemAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PesagemAvulsa qtb_pesagem = new TCD_PesagemAvulsa(); try { if (banco == null) { st_transacao = qtb_pesagem.CriarBanco_Dados(true); } else { qtb_pesagem.Banco_Dados = banco; } if ((val.Ps_bruto > 0) && (val.Ps_tara > 0)) { val.St_registro = "F";//Finalizar pesagem } //Gravar pesagem avulsa string retorno = qtb_pesagem.Gravar(val as TRegistro_PesagemAvulsa); val.Id_ticketstr = CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_TICKET"); //Gravar financeiro (val as TRegistro_PesagemAvulsa).lDup.ForEach(p => { p.Nr_docto = val.Id_ticket.ToString(); CamadaNegocio.Financeiro.Duplicata.TCN_LanDuplicata.GravarDuplicata(p, false, qtb_pesagem.Banco_Dados); //Gravar pesagem avulsa X duplicata TCN_PsAvulsa_X_Duplicata.GravarPsAvulsa_X_Duplicata( new TRegistro_PsAvulsa_X_Duplicata() { Cd_empresa = val.Cd_empresa, Id_ticket = val.Id_ticket, Tp_pesagem = val.Tp_pesagem, Nr_lancto = p.Nr_lancto }, qtb_pesagem.Banco_Dados); }); if (st_transacao) { qtb_pesagem.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_pesagem.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar pesagem avulsa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_pesagem.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_PesagemAvulsa val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_PesagemAvulsa qtb_pesagem = new TCD_PesagemAvulsa(); try { if (st_transacao) { st_transacao = qtb_pesagem.CriarBanco_Dados(true); } else { qtb_pesagem.Banco_Dados = banco; } //Verificar se a pesagem possui financeiro if (val.Nr_lancto != null) { //Verificar se a pesagem nao possui financeiro aberto object objfin = new CamadaDados.Financeiro.Duplicata.TCD_LanDuplicata(qtb_pesagem.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.nr_lancto", vOperador = "=", vVL_Busca = val.Nr_lancto.Value.ToString() }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" } }, "1"); if (objfin != null) { if (objfin.ToString().Trim().Equals("1")) { throw new Exception("Pesagem possui financeiro em aberto.\r\n" + "Para cancelar pesagem necessario antes cancelar o financeiro.\r\n" + "Empresa: " + val.Cd_empresa.Trim() + "\r\n" + "Nº Lancto: " + val.Nr_lancto.Value.ToString()); } } } qtb_pesagem.Excluir(val); if (st_transacao) { qtb_pesagem.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_pesagem.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro cancelar pesagem avulsa: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_pesagem.deletarBanco_Dados(); } } }