public static string Gravar(TRegistro_LanServicosPecas val, TObjetoBanco banco) { bool st_transacao = false; TCD_LanServicosPecas qtb_pecas = new TCD_LanServicosPecas(); try { if (banco == null) { st_transacao = qtb_pecas.CriarBanco_Dados(true); } else { qtb_pecas.Banco_Dados = banco; } string retorno = qtb_pecas.Gravar(val); val.Id_pecastr = CamadaDados.TDataQuery.getPubVariavel(retorno, "@P_ID_PECA"); //Excluir Ficha val.lFichaTecOSDel.ForEach(p => TCN_FichaTecOS.Excluir(p, qtb_pecas.Banco_Dados)); //Gravar Ficha val.lFichaTecOS.ForEach(p => { p.Cd_empresa = val.Cd_empresa; p.Id_os = val.Id_os; p.Id_peca = val.Id_peca; TCN_FichaTecOS.Gravar(p, qtb_pecas.Banco_Dados); }); if (st_transacao) { qtb_pecas.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_pecas.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar peças/serviços: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_pecas.deletarBanco_Dados(); } } }
public static string Excluir(TRegistro_LanServicosPecas val, TObjetoBanco banco) { bool st_transacao = false; TCD_LanServicosPecas qtb_pecas = new TCD_LanServicosPecas(); try { if (banco == null) { st_transacao = qtb_pecas.CriarBanco_Dados(true); } else { qtb_pecas.Banco_Dados = banco; } //Verificar se peca teve origem orcamento venda CamadaDados.Faturamento.Orcamento.TList_Orcamento_X_OS lOrc = new CamadaDados.Faturamento.Orcamento.TCD_Orcamento_X_OS(qtb_pecas.Banco_Dados).Select( new TpBusca[] { new TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + val.Cd_empresa.Trim() + "'" }, new TpBusca() { vNM_Campo = "a.id_os", vOperador = "=", vVL_Busca = val.Id_osstr }, new TpBusca() { vNM_Campo = "a.id_peca", vOperador = "=", vVL_Busca = val.Id_pecastr } }, 0, string.Empty); lOrc.ForEach(p => { //Excluir registro CamadaNegocio.Faturamento.Orcamento.TCN_Orcamento_X_OS.Excluir(p, qtb_pecas.Banco_Dados); //Verificar se o orcamento nao possui pedido CamadaDados.Faturamento.Orcamento.TList_Orcamento lOrcamento = CamadaNegocio.Faturamento.Orcamento.TCN_Orcamento.Buscar(p.Nr_orcamentostr, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, decimal.Zero, decimal.Zero, string.Empty, string.Empty, string.Empty, string.Empty, false, false, string.Empty, string.Empty, false, false, qtb_pecas.Banco_Dados); if (lOrcamento.Count > 0) { if (!lOrcamento[0].Nr_pedidovenda.HasValue) { lOrcamento[0].St_registro = "AB"; CamadaNegocio.Faturamento.Orcamento.TCN_Orcamento.Gravar(lOrcamento[0], qtb_pecas.Banco_Dados); } } }); //Excluir Ficha Tecnica Item TCN_FichaTecOS.Buscar(val.Cd_empresa, val.Id_osstr, val.Id_pecastr, string.Empty, qtb_pecas.Banco_Dados).ForEach(p => TCN_FichaTecOS.Excluir(p, qtb_pecas.Banco_Dados)); //Excluir movimentações geradas em TB_FAT_CompraItens_X_PecaOS Faturamento.CompraAvulsa.TCN_CompraItens_X_PecaOS.Buscar(val.Cd_empresa, string.Empty, string.Empty, qtb_pecas.Banco_Dados, val.Id_osstr, val.Id_pecastr) .ForEach(r => Faturamento.CompraAvulsa.TCN_CompraItens_X_PecaOS.Excluir(r, qtb_pecas.Banco_Dados)); qtb_pecas.Excluir(val); if (st_transacao) { qtb_pecas.Banco_Dados.Commit_Tran(); } return("OK"); } catch (Exception ex) { if (st_transacao) { qtb_pecas.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro excluir peça/serviço: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_pecas.deletarBanco_Dados(); } } }