示例#1
0
        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();
                }
            }
        }