public static string Gravar(TRegistro_CadUsuario val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_CadUsuario qtb_user = new TCD_CadUsuario(); try { if (banco == null) { st_transacao = qtb_user.CriarBanco_Dados(true); } else { qtb_user.Banco_Dados = banco; } string retorno = qtb_user.GravaUsuario(val); //Grupo Usuario val.lGrupoDel.ForEach(p => TCN_CadUsuario_Grupo.Excluir(p, qtb_user.Banco_Dados)); val.lGrupo.ForEach(p => { p.LoginUsr = val.Login; TCN_CadUsuario_Grupo.Gravar(p, qtb_user.Banco_Dados); }); //Empresa val.lEmpresaDel.ForEach(p => TCN_CadUsuario_Empresa.Excluir(p, qtb_user.Banco_Dados)); val.lEmpresa.ForEach(p => { p.Login = val.Login; TCN_CadUsuario_Empresa.Gravar(p, qtb_user.Banco_Dados); }); //Terminal val.lTerminalDel.ForEach(p => TCN_CadUsuarioxTerminal.Excluir(p, qtb_user.Banco_Dados)); val.lTerminal.ForEach(p => { p.Login = val.Login; TCN_CadUsuarioxTerminal.Gravar(p, qtb_user.Banco_Dados); }); //Tipo Pesagem val.lPesagemDel.ForEach(p => TCN_CadUsuario_TipoPesagem.Excluir(p, qtb_user.Banco_Dados)); val.lPesagem.ForEach(p => { p.Login = val.Login; TCN_CadUsuario_TipoPesagem.Gravar(p, qtb_user.Banco_Dados); }); //Tipo Pedido val.lPedidoDel.ForEach(p => TCN_CadUsuario_CFGPedido.Excluir(p, qtb_user.Banco_Dados)); val.lPedido.ForEach(p => { p.Login = val.Login; TCN_CadUsuario_CFGPedido.Gravar(p, qtb_user.Banco_Dados); }); //Conta Gerencial val.lContaGerDel.ForEach(p => TCN_Usuario_ContaGer.Excluir(p, qtb_user.Banco_Dados)); val.lContaGer.ForEach(p => { p.Login = val.Login; TCN_Usuario_ContaGer.Gravar(p, qtb_user.Banco_Dados); }); //Tipo Requisicao val.lTpRequisicaoDel.ForEach(p => TCN_Usuario_TpRequisicao.Excluir(p, qtb_user.Banco_Dados)); val.lTpRequisicao.ForEach(p => { p.Login = val.Login; TCN_Usuario_TpRequisicao.Gravar(p, qtb_user.Banco_Dados); }); //Tipo Duplicata val.lTpDupDel.ForEach(p => TCN_Usuario_TpDuplicata.Excluir(p, qtb_user.Banco_Dados)); val.lTpDuplicata.ForEach(p => { p.Login = val.Login; TCN_Usuario_TpDuplicata.Gravar(p, qtb_user.Banco_Dados); }); //Regra especial val.lRegraDel.ForEach(p => TCN_Usuario_RegraEspecial.Excluir(p, qtb_user.Banco_Dados)); val.lRegra.ForEach(p => { p.Login = val.Login; TCN_Usuario_RegraEspecial.Gravar(p, qtb_user.Banco_Dados); }); //Etapa pedido val.lEtapaPedDel.ForEach(p => CamadaNegocio.Diversos.TCN_CadUsuario_EtapaPed.Excluir(p, qtb_user.Banco_Dados)); val.lEtapaPed.ForEach(p => { p.Login = val.Login; CamadaNegocio.Diversos.TCN_CadUsuario_EtapaPed.Gravar(p, qtb_user.Banco_Dados); }); if (st_transacao) { qtb_user.Banco_Dados.Commit_Tran(); } return(retorno); } catch (Exception ex) { if (st_transacao) { qtb_user.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro gravar usuario: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_user.deletarBanco_Dados(); } } }