Ejemplo n.º 1
0
        public static bool CopiarPerfil(TRegistro_CadUsuario val,
                                        string LoginPerfil,
                                        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;
                }
                //Verificar se o login destino ja existe no sistema
                bool st_existe = qtb_user.BuscarEscalar(
                    new TpBusca[]
                {
                    new TpBusca()
                    {
                        vNM_Campo = "a.login",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Login.Trim() + "'"
                    }
                }, "1") != null;
                //Gravar Login
                qtb_user.GravaUsuario(val);
                //Copiar acesso usuario
                if (st_existe)
                {
                    qtb_user.executarSql("delete tb_div_acesso where login = '******'", null);
                }
                TCN_CadAcesso.Buscar(LoginPerfil,
                                     string.Empty,
                                     false,
                                     string.Empty,
                                     0,
                                     string.Empty,
                                     qtb_user.Banco_Dados).ForEach(p =>
                                                                   TCN_CadAcesso.GravarAcesso(new TRegistro_CadAcesso()
                {
                    Altera  = p.Altera,
                    Exclui  = p.Exclui,
                    Id_menu = p.Id_menu,
                    Inclui  = p.Inclui,
                    Login   = val.Login
                }, qtb_user.Banco_Dados));
                //Copiar grupo menu
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_Grupos where loginUSR = '******'", null);
                }
                TCN_CadUsuario_Grupo.Busca(string.Empty,
                                           LoginPerfil,
                                           qtb_user.Banco_Dados).ForEach(p =>
                                                                         TCN_CadUsuario_Grupo.Gravar(new TRegistro_CadUsuario_Grupo()
                {
                    LoginGrp = p.LoginGrp,
                    LoginUsr = val.Login
                }, qtb_user.Banco_Dados));
                //Copiar empresas
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_Empresa where login = '******'", null);
                }
                TCN_CadUsuario_Empresa.Busca(string.Empty,
                                             LoginPerfil,
                                             qtb_user.Banco_Dados).ForEach(p =>
                                                                           TCN_CadUsuario_Empresa.Gravar(new TRegistro_CadUsuario_Empresa()
                {
                    CD_Empresa = p.CD_Empresa,
                    Login      = val.Login
                }, qtb_user.Banco_Dados));
                //Copiar terminal
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_Terminal where login = '******'", null);
                }
                TCN_CadUsuarioxTerminal.Busca(string.Empty,
                                              LoginPerfil,
                                              qtb_user.Banco_Dados).ForEach(p =>
                                                                            TCN_CadUsuarioxTerminal.Gravar(new TRegistro_CadUsuarioxTerminal()
                {
                    Cd_Terminal = p.Cd_Terminal,
                    Login       = val.Login
                }, qtb_user.Banco_Dados));
                //Copiar tipo pesagem
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_TpPesagem where login = '******'", null);
                }
                TCN_CadUsuario_TipoPesagem.Busca(LoginPerfil,
                                                 string.Empty,
                                                 qtb_user.Banco_Dados).ForEach(p =>
                                                                               TCN_CadUsuario_TipoPesagem.Gravar(new TRegistro_CadUsuario_TipoPesagem()
                {
                    Login      = val.Login,
                    Tp_pesagem = p.Tp_pesagem
                }, qtb_user.Banco_Dados));
                //Copiar tipo pedido
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_CFGPedido where login = '******'", null);
                }
                TCN_CadUsuario_CFGPedido.Busca(LoginPerfil,
                                               string.Empty,
                                               string.Empty,
                                               qtb_user.Banco_Dados).ForEach(p =>
                                                                             TCN_CadUsuario_CFGPedido.Gravar(new TRegistro_CadUsuario_CFGPedido()
                {
                    Cfg_pedido = p.Cfg_pedido,
                    Login      = val.Login
                }, qtb_user.Banco_Dados));
                //Copiar tipo requisicao
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_TpRequisicao where login = '******'", null);
                }
                TCN_Usuario_TpRequisicao.Buscar(LoginPerfil,
                                                string.Empty,
                                                qtb_user.Banco_Dados).ForEach(p =>
                                                                              TCN_Usuario_TpRequisicao.Gravar(new TRegistro_Usuario_TpRequisicao()
                {
                    Id_tprequisicao = p.Id_tprequisicao,
                    Login           = val.Login
                }, qtb_user.Banco_Dados));
                //Copiar tipo duplicata
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_TpDuplicata where login = '******'", null);
                }
                TCN_Usuario_TpDuplicata.Buscar(LoginPerfil,
                                               string.Empty,
                                               qtb_user.Banco_Dados).ForEach(p =>
                                                                             TCN_Usuario_TpDuplicata.Gravar(new TRegistro_Usuario_TpDuplicata()
                {
                    Login        = val.Login,
                    Tp_duplicata = p.Tp_duplicata
                }, qtb_user.Banco_Dados));
                //Copiar conta gerencial
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_ContaGer where login = '******'", null);
                }
                TCN_Usuario_ContaGer.Buscar(LoginPerfil,
                                            string.Empty,
                                            qtb_user.Banco_Dados).ForEach(p =>
                                                                          TCN_Usuario_ContaGer.Gravar(new TRegistro_Usuario_ContaGer()
                {
                    Cd_contager = p.Cd_contager,
                    Login       = val.Login
                }, qtb_user.Banco_Dados));
                //Copiar regra especial
                if (st_existe)
                {
                    qtb_user.executarSql("delete TB_DIV_Usuario_X_RegraEspecial where login = '******'", null);
                }
                TCN_Usuario_RegraEspecial.Buscar(LoginPerfil,
                                                 string.Empty,
                                                 string.Empty,
                                                 qtb_user.Banco_Dados).ForEach(p =>
                                                                               TCN_Usuario_RegraEspecial.Gravar(new TRegistro_Usuario_RegraEspecial()
                {
                    Login    = val.Login,
                    Ds_regra = p.Ds_regra
                }, qtb_user.Banco_Dados));
                if (st_transacao)
                {
                    qtb_user.Banco_Dados.Commit_Tran();
                }
                return(st_existe);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_user.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro copiar perfil: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_user.deletarBanco_Dados();
                }
            }
        }
Ejemplo n.º 2
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();
                }
            }
        }