예제 #1
0
        /// <summary>
        /// Atualiza dados simples do profissional
        /// Email, Telefone fixo/celular e CHN
        /// </summary>
        /// <param name="profissional"></param>
        public void AtualizaProfissionalSimples(ProfissionalCompletoEntidade profissional)
        {
            using (var sqlConnection = this.InstanciaConexao())
            {
                // Query
                string query = @"update tblColaboradoresEmpresaSistema 
                                    set vcTelefoneCelular = @Celular, 
                                        vcTelefoneResidencial = @Telefone, bitTelefoneCelularWhatsApp = @wpp
                                 where idColaboradorEmpresaSistema = @id";

                // Query Multiple
                sqlConnection.Execute(query, new
                {
                    id       = profissional.ID,
                    Celular  = profissional.TelefoneCelular,
                    Telefone = profissional.TelefoneResidencial,
                    wpp      = profissional.CelularWpp
                });
            }
        }
예제 #2
0
        /// <summary>
        /// Inclui Profissional
        /// </summary>
        /// <param name="filtro">ProfissionalCompletoEntidade</param>
        /// <returns>UsuarioEntidade</returns>
        public void IncluirProfissional(ProfissionalCompletoEntidade profissional)
        {
            int?       idColaborador = null;
            int?       idEndereco    = null;
            List <int> Comissoes     = new List <int>();

            using (var sqlConnection = this.InstanciaConexao())
            {
                using (var trans = sqlConnection.BeginTransaction())
                {
                    try
                    {
                        #region Incluir Profissional
                        // Insert Novo Endereco
                        string query = @"INSERT INTO [dbo].[tblEnderecos]
                                           ([vcRua]
                                           ,[vcNumero]
                                           ,[vcComplemento]
                                           ,[vcBairro]
                                           ,[vcCidade]
                                           ,[vcUF]
                                           ,[vcCEP]
                                           ,[vcPontoDeReferencia]
                                           ,[bitPrincipal])
                                     VALUES
                                           (@Rua
                                           ,@RuaNumero
                                           ,@Complemento
                                           ,@Bairro
                                           ,@Cidade
                                           ,@UF
                                           ,@Cep
                                           ,@PontoReferencia
                                           ,@EnderecoPrincipal)
                                           select @@identity;";
                        // Execute
                        idEndereco = trans.Connection.ExecuteScalar <int?>(query, new
                        {
                            Rua               = profissional.Rua,
                            RuaNumero         = profissional.RuaNumero,
                            Complemento       = profissional.Complemento,
                            Bairro            = profissional.Bairro,
                            Cidade            = profissional.Cidade,
                            UF                = profissional.UF,
                            Cep               = profissional.Cep,
                            PontoReferencia   = profissional.PontoReferencia,
                            EnderecoPrincipal = profissional.EnderecoPrincipal,
                        }, trans);

                        int tipoProfissional = profissional.TipoCNH == TipoCarteira.A ? 1 : 2;

                        // Update tblColaboradoresEmpresaSistema
                        query = @" INSERT INTO [dbo].[tblColaboradoresEmpresaSistema]
                                                     ([idUsuario]
                                                     ,[idEndereco]
                                                     ,[idTipoProfissional]
                                                     ,[vcNomeCompleto]
                                                     ,[vcCPFCNPJ]
                                                     ,[vcDocumentoHabilitacao]
                                                     ,[vcCategoriaDocumentoHabilitacao]
                                                     ,[vcTelefoneResidencial]
                                                     ,[vcTelefoneCelular]
                                                     ,[bitTelefoneCelularWhatsApp]
                                                     ,[bitRegimeContratacaoCLT]
                                                     ,[vcObservacoes]
                                                     ,[vcEmail]
                                                     ,[dtDataHoraRegistro]
                                                     ,[vcRG]
                                                     ,[vcTipoVeiculos])
                                               VALUES
                                                     (@IDGestor
                                                     ,@idEndereco
                                                     ,@TpProfissional
                                                     ,@NomeCompleto
                                                     ,@CPF
                                                     ,@CNH
                                                     ,@CategoriaCNH
                                                     ,@TelefoneResidencial
                                                     ,@TelefoneCelular
                                                     ,@WPP
                                                     ,@CLT
                                                     ,@Observacao
                                                     ,@Email, getdate(), @RG, @TipoVeiculos) select @@identity;";
                        // Execução
                        idColaborador = trans.Connection.ExecuteScalar <int?>(query, new
                        {
                            IDGestor            = profissional.IDGestor,
                            idEndereco          = idEndereco,
                            TpProfissional      = tipoProfissional,
                            NomeCompleto        = profissional.NomeCompleto,
                            CPF                 = profissional.CPF,
                            CNH                 = profissional.CNH,
                            CategoriaCNH        = profissional.TipoCNH,
                            TelefoneResidencial = profissional.TelefoneResidencial,
                            TelefoneCelular     = profissional.TelefoneCelular,
                            WPP                 = profissional.CelularWpp,
                            CLT                 = profissional.ContratoCLT,
                            Observacao          = profissional.Observacao,
                            Email               = profissional.Email,
                            RG           = profissional.DocumentoRG,
                            TipoVeiculos = profissional.TipoVeiculo
                        }, trans);


                        #endregion

                        #region Incluir Usuario
                        // Commit Profissional
                        trans.Commit();

                        new UsuarioRepositorio().IncluirUsuario(new BHJet_Repositorio.Entidade.UsuarioEntidade()
                        {
                            bitAtivo               = profissional.StatusUsuario,
                            ClienteSelecionado     = null,
                            idTipoUsuario          = TipoUsuario.Profissional,
                            vcEmail                = profissional.Email,
                            vbsPassword            = profissional.Senha,
                            ColaboradorSelecionado = idColaborador
                        });
                        #endregion

                        // Insere comissões
                        using (var sqlConnectionCom = this.InstanciaConexao())
                        {
                            if (profissional.Comissoes != null && profissional.Comissoes.Any())
                            {
                                string queryComissao = @"INSERT INTO [dbo].[tblComissaoColaboradorEmpresaSistema]
                                                    ([idColaboradorEmpresaSistema]
                                                    ,[decPercentualComissao]
                                                    ,[dtDataInicioVigencia]
                                                    ,[dtDataFimVigencia]
                                                    ,vcObservacoes
                                                    ,[bitAtivo])
                                                VALUES
                                                        (@idCol
                                                        ,@vlComissao
                                                        ,@dtIni
                                                        ,@dtFim
                                                        ,@Obs
                                                        ,1) select @@identity;";

                                foreach (var com in profissional.Comissoes)
                                {
                                    if (!ValidaComissao(sqlConnectionCom, com, idColaborador))
                                    {
                                        var comissao = sqlConnectionCom.ExecuteScalar <int>(queryComissao, new
                                        {
                                            idCol      = idColaborador,
                                            vlComissao = com.decPercentualComissao,
                                            dtIni      = com.dtDataInicioVigencia,
                                            dtFim      = com.dtDataFimVigencia,
                                            Obs        = com.vcObservacoes
                                        }, trans);

                                        Comissoes.Add(comissao);
                                    }
                                    else
                                    {
                                        throw new Exception("Você não pode incluir comissões com periodo de vigência já existentes. Favor preencher corretamente.");
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        if (trans.Connection != null)
                        {
                            trans.Rollback();
                        }
                        RoolbackColaborador(idEndereco, idColaborador, Comissoes.ToArray(), profissional.Email);
                        throw e;
                    }
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Atualiza Profissional
        /// </summary>
        /// <param name="filtro">ProfissionalCompletoEntidade</param>
        /// <returns>UsuarioEntidade</returns>
        public void AtualizaProfissional(ProfissionalCompletoEntidade profissional)
        {
            using (var sqlConnection = this.InstanciaConexao())
            {
                using (var trans = sqlConnection.BeginTransaction())
                {
                    try
                    {
                        // Update tblColaboradoresEmpresaSistema
                        string query = @"UPDATE dbo.tblColaboradoresEmpresaSistema
                                    SET vcNomeCompleto = @NomeCompleto,
	                                    vcCPFCNPJ = @CPF,
	                                    vcDocumentoHabilitacao = @CNH,
	                                    vcCategoriaDocumentoHabilitacao = @TipoCNH,
	                                    vcTelefoneResidencial = @TelefoneResidencial,
	                                    vcTelefoneCelular = @TelefoneCelular,
	                                    bitTelefoneCelularWhatsApp = @CelularWpp,
	                                    bitRegimeContratacaoCLT = @TipoContrato,
	                                    vcObservacoes = @Observacao,
	                                    vcEmail = @Email,
                                        vcRG = @DocumentoRG, 
                                        vcTipoVeiculos = @TipoVeiculos
                                    where 
                                        idColaboradorEmpresaSistema = @ID";
                        // Execução
                        trans.Connection.ExecuteScalar(query, new
                        {
                            NomeCompleto        = profissional.NomeCompleto,
                            CPF                 = profissional.CPF,
                            CNH                 = profissional.CNH,
                            TipoCNH             = profissional.TipoCNH,
                            TelefoneResidencial = profissional.TelefoneResidencial,
                            TelefoneCelular     = profissional.TelefoneCelular,
                            CelularWpp          = profissional.CelularWpp,
                            TipoContrato        = (int)profissional.TipoRegime,
                            Observacao          = profissional.Observacao,
                            Email               = profissional.Email,
                            ID           = profissional.ID,
                            DocumentoRG  = profissional.DocumentoRG,
                            TipoVeiculos = profissional.TipoVeiculo
                        }, trans);

                        // Insert Novo Endereco
                        query = @"UPDATE [dbo].[tblEnderecos]
                                        SET [vcRua] = @Rua
                                            ,[vcNumero] = @RuaNumero
                                            ,[vcComplemento] = @Complemento
                                            ,[vcBairro] = @Bairro
	                                        ,[vcCidade] = @Cidade
                                            ,[vcUF] = @UF
                                            ,[vcCEP] = @Cep
                                            ,[vcPontoDeReferencia] = @PontoReferencia
                                            ,[bitPrincipal] = @EnderecoPrincipal
                                        WHERE idEndereco = (select idEndereco from tblColaboradoresEmpresaSistema where idColaboradorEmpresaSistema = @id)"    ;
                        // Execute
                        var idEndereco = trans.Connection.Query <int>(query, profissional, trans);

                        // Comissoes
                        string queryComissao = @"UPDATE  [dbo].[tblComissaoColaboradorEmpresaSistema]
                                        SET
                                            [decPercentualComissao] = @decCom
                                           ,[dtDataInicioVigencia] = @dtIni
                                           ,[dtDataFimVigencia] = @dtFim
                                           ,[vcObservacoes] = @Obs
                                       WHERE idComissaoColaboradorEmpresaSistema = @id"    ;


                        string queryAddComissao = @"INSERT INTO [dbo].[tblComissaoColaboradorEmpresaSistema]
                                                    ([idColaboradorEmpresaSistema]
                                                    ,[decPercentualComissao]
                                                    ,[dtDataInicioVigencia]
                                                    ,[dtDataFimVigencia]
                                                    ,vcObservacoes
                                                    ,[bitAtivo])
                                                VALUES
                                                        (@id
                                                        ,@decCom
                                                        ,@dtIni
                                                        ,@dtFim
                                                        ,@Obs
                                                        ,1) select @@identity;";

                        string queryRemoveComissao = @"Delete from [dbo].[tblComissaoColaboradorEmpresaSistema] WHERE idColaboradorEmpresaSistema = @idCol"; //not in (@ids) and idColaboradorEmpresaSistema = @idCol";

                        // Notificacoes a excluir
                        //long?[] notificacoesAntigasMantidas = profissional.Comissoes.Where(x => x.idComissaoColaboradorEmpresaSistema != null).Select(x => x.idComissaoColaboradorEmpresaSistema).ToArray();
                        trans.Connection.Execute(queryRemoveComissao, new
                        {
                            //ids = string.Join(",", notificacoesAntigasMantidas),
                            idCol = profissional.ID
                        }, trans);

                        // Notificacoes antigas e novas
                        //foreach (var com in profissional.Comissoes)
                        //{
                        //    if (com.dtDataInicioVigencia == null || com.dtDataInicioVigencia == null)
                        //        continue;

                        //    if (com.idComissaoColaboradorEmpresaSistema != null || ExisteComissao(trans, com.idComissaoColaboradorEmpresaSistema, profissional.ID))
                        //        trans.Connection.Execute(queryComissao, new
                        //        {
                        //            decCom = com.decPercentualComissao,
                        //            dtIni = com.dtDataInicioVigencia,
                        //            dtFim = com.dtDataFimVigencia,
                        //            Obs = com.vcObservacoes,
                        //            id = com.idComissaoColaboradorEmpresaSistema
                        //        }, trans);
                        //    else
                        trans.Connection.Execute(queryAddComissao, new
                        {
                            decCom = profissional.Comissoes.FirstOrDefault().decPercentualComissao,
                            dtIni  = profissional.Comissoes.FirstOrDefault().dtDataInicioVigencia,
                            dtFim  = profissional.Comissoes.FirstOrDefault().dtDataFimVigencia,
                            Obs    = profissional.Comissoes.FirstOrDefault().vcObservacoes,
                            id     = profissional.ID
                        }, trans);
                        //}

                        // Atualiza senha
                        if (!string.IsNullOrWhiteSpace(profissional.Senha))
                        {
                            string queryUpdateUsuario = @"update tblUsuarios set vbPassword = @pass where idUsuario = (select idUsuario from tblColaboradoresEmpresaSistema where idColaboradorEmpresaSistema = @idCol)";
                            trans.Connection.Execute(queryUpdateUsuario, new
                            {
                                pass  = new UsuarioRepositorio().RetornaSenhaEncriptada(profissional.Senha),
                                idCol = profissional.ID
                            }, trans);
                        }
                        // Atualiza status
                        string queryUpdateStatus = @"update tblUsuarios set bitAtivo = @status, vcEmail = @Email  
                                                            where idUsuario = (select idUsuario from tblColaboradoresEmpresaSistema where idColaboradorEmpresaSistema = @idCol)";
                        trans.Connection.Execute(queryUpdateStatus, new
                        {
                            status = profissional.StatusUsuario,
                            Email  = profissional.Email,
                            idCol  = profissional.ID
                        }, trans);

                        // Commit
                        trans.Commit();
                    }
                    catch (Exception e)
                    {
                        trans.Rollback();
                        throw e;
                    }
                }
            }
        }