예제 #1
0
        ///// <summary>
        ///// Inclui Contato Cliente
        ///// </summary>
        ///// <param name="filtro">ProfissionalCompletoEntidade</param>
        ///// <returns>UsuarioEntidade</returns>
        //public void IncluirValor(long clienteID, ClienteValorEntidade tarifa)
        //{
        //	using (var sqlConnection = this.InstanciaConexao())
        //	{
        //		using (var trans = sqlConnection.BeginTransaction())
        //		{
        //			try
        //			{
        //				string queryTarifario = @"INSERT INTO [dbo].[tblClienteTarifario]
        //                                         ([idCliente]
        //								   ,[vcDescricaoTarifario]
        //                                         ,[dtDataInicioVigencia]
        //                                         ,[dtDataFimVigencia]
        //                                         ,decValorContrato
        //                                         ,decFranquiaKM
        //                                         ,decValorKMAdicional
        //                                         ,[bitAtivo]
        //                                         ,[vcObservacao])
        //                                   VALUES
        //                                         (@ClienteID
        //								   ,@TipoTarifa
        //                                         ,@VigenciaInicio
        //                                         ,@VigenciaFim
        //                                         ,@ValorContrato
        //                                         ,@QuantidadeKM
        //								   ,@ValorKMAdicional
        //								   ,@TarifaAtivada
        //                                         ,@Observacao)
        //                                         select @@identity;";
        //				// Execute
        //				var idValor = trans.Connection.ExecuteScalar<int?>(queryTarifario, new
        //				{
        //					ClienteID = clienteID,
        //					TipoTarifa = tarifa.DescricaoTarifa,
        //					VigenciaInicio = tarifa.VigenciaInicio,
        //					VigenciaFim = tarifa.VigenciaFim,
        //                          ValorContrato = tarifa.ValorContrato,
        //                          QuantidadeKM = tarifa.QuantidadeKMContratado,
        //                          ValorKMAdicional = tarifa.ValorKMAdicional,
        //					TarifaAtivada = tarifa.status,
        //					Observacao = tarifa.Observacao
        //				}, trans);

        //				//Comit
        //				trans.Commit();
        //			}
        //			catch (Exception e)
        //			{
        //				if (trans.Connection != null)
        //					trans.Rollback();
        //			}
        //		}
        //	}
        //}

        /// <summary>
        /// Atualiza Cliente
        /// </summary>
        /// <param name="filtro">ProfissionalCompletoEntidade</param>
        /// <returns>UsuarioEntidade</returns>
        public void AtualizaCliente(int idEndereco, ClienteCompletoEntidade cliente)
        {
            using (var sqlConnection = this.InstanciaConexao())
            {
                using (var trans = sqlConnection.BeginTransaction())
                {
                    try
                    {
                        // Atualiza Endereco
                        string queryEndereco = @"UPDATE
													[dbo].[tblEnderecos]
												SET
													[vcRua] = @Rua
												   ,[vcNumero] = @RuaNumero
												   ,[vcComplemento] = @Complemento
												   ,[vcBairro] = @Bairro
												   ,[vcCidade] = @Cidade
												   ,[vcUF] = @UF
												   ,[vcCEP] = @Cep
												WHERE
													idEndereco = @EnderecoID"                                                    ;
                        // Execute
                        trans.Connection.Execute(queryEndereco, new
                        {
                            Rua         = cliente.DadosCadastrais.Endereco,
                            RuaNumero   = cliente.DadosCadastrais.NumeroEndereco,
                            Complemento = cliente.DadosCadastrais.Complemento,
                            Bairro      = cliente.DadosCadastrais.Bairro,
                            Cidade      = cliente.DadosCadastrais.Cidade,
                            UF          = cliente.DadosCadastrais.Estado,
                            Cep         = cliente.DadosCadastrais.CEP,
                            EnderecoID  = idEndereco
                        }, trans);


                        // Atualiza Cliente
                        using (var sqlConnectionCom = this.InstanciaConexao())
                        {
                            string queryCliente = @"UPDATE
														[dbo].[tblClientes]
													SET
														[vcNomeRazaoSocial] = @NomeRazaoSocial
														,[vcNomeFantasia] = @NomeFantasia
														,[vcCPFCNPJ] = @CPFCNPJ
														,[vcInscricaoEstadual] = @InscricaoEstadual
														,[bitRetemISS] = @ISS
														,[vcObservacoes] = @Observacoes
														,[vcSite] = @HomePage
                                                        ,[bitAvulso] = @avulso
													WHERE
														idCliente = @ClienteID"                                                        ;

                            // Execute
                            trans.Connection.Execute(queryCliente, new
                            {
                                NomeRazaoSocial   = cliente.DadosCadastrais.NomeRazaoSocial,
                                NomeFantasia      = cliente.DadosCadastrais.NomeFantasia,
                                CPFCNPJ           = cliente.DadosCadastrais.CPFCNPJ,
                                InscricaoEstadual = cliente.DadosCadastrais.InscricaoEstadual,
                                ISS         = cliente.DadosCadastrais.ISS,
                                Observacoes = cliente.DadosCadastrais.Observacoes,
                                HomePage    = cliente.DadosCadastrais.HomePage,
                                ClienteID   = cliente.ID,
                                avulso      = cliente.DadosCadastrais.ClienteAvulso
                            }, trans);
                        }

                        // Atualiza Contato
                        using (var sqlConnectionCom = this.InstanciaConexao())
                        {
                            string queryContato = @"UPDATE
														[dbo].[tblColaboradoresCliente]
													SET
													   [vcNomeContato] = @Contato
													   ,[vcDepartamento] = @Setor
													   ,[dtDataNascimento] = @DataNascimento
													   ,[vcTelefoneComercial] = @TelefoneComercial
													   ,[vcTelefoneCelular] = @TelefoneCelular
													   ,[vcEmail] = @Email
													 WHERE
														idColaboradorCliente = @ContatoID"                                                        ;
                            // Execute
                            foreach (var contato in cliente.Contato)
                            {
                                trans.Connection.Execute(queryContato, new
                                {
                                    Contato           = contato.Contato,
                                    Setor             = contato.Setor,
                                    DataNascimento    = contato.DataNascimento,
                                    TelefoneComercial = contato.TelefoneComercial,
                                    TelefoneCelular   = contato.TelefoneCelular,
                                    Email             = contato.Email,
                                    ContatoID         = contato.ID
                                }, trans);
                            }
                        }

                        // Atualiza Tarifa
                        if (cliente.ContratoMoto != null && cliente.ContratoCarro != null)
                        {
                            using (var sqlConnectionCom = this.InstanciaConexao())
                            {
                                string queryTarifario = @"delete from tblClienteTarifario
						                                    where idCliente = @cli"                        ;

                                trans.Connection.Execute(queryTarifario, new
                                {
                                    cli = cliente.ID
                                }, trans);

                                InsereContratoCliente(trans, cliente.ID, 1, cliente.ContratoMoto);
                                InsereContratoCliente(trans, cliente.ID, 2, cliente.ContratoCarro);
                            }
                        }
                        // Commit
                        trans.Commit();
                    }
                    catch (Exception e)
                    {
                        if (trans.Connection != null)
                        {
                            trans.Rollback();
                        }
                        throw e;
                    }
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Inclui Cliente
        /// </summary>
        /// <param name="filtro">ProfissionalCompletoEntidade</param>
        /// <returns>UsuarioEntidade</returns>
        public long?IncluirCliente(ClienteCompletoEntidade cliente)
        {
            long?       idCliente  = null;
            int?        idEndereco = null;
            int?        idContato  = null;
            int?        idValor    = null;
            List <int?> Contatos   = new List <int?>();
            List <int?> Valores    = new List <int?>();

            using (var sqlConnection = this.InstanciaConexao())
            {
                using (var trans = sqlConnection.BeginTransaction())
                {
                    try
                    {
                        // Insert Novo Endereco
                        string queryEndereco = @"INSERT INTO [dbo].[tblEnderecos]
                                           ([vcRua]
                                           ,[vcNumero]
                                           ,[vcComplemento]
                                           ,[vcBairro]
                                           ,[vcCidade]
                                           ,[vcUF]
                                           ,[vcCEP]
                                           ,[bitPrincipal])
                                     VALUES
                                           (@Rua
                                           ,@RuaNumero
                                           ,@Complemento
                                           ,@Bairro
                                           ,@Cidade
                                           ,@UF
                                           ,@Cep
                                           ,@EnderecoPrincipal)
                                           select @@identity;";
                        // Execute
                        idEndereco = trans.Connection.ExecuteScalar <int?>(queryEndereco, new
                        {
                            Rua               = cliente.DadosCadastrais.Endereco,
                            RuaNumero         = cliente.DadosCadastrais.NumeroEndereco,
                            Complemento       = cliente.DadosCadastrais.Complemento,
                            Bairro            = cliente.DadosCadastrais.Bairro,
                            Cidade            = cliente.DadosCadastrais.Cidade,
                            UF                = cliente.DadosCadastrais.Estado,
                            Cep               = cliente.DadosCadastrais.CEP,
                            EnderecoPrincipal = 1
                        }, trans);

                        // Insere Cliente
                        string queryCliente = @"INSERT INTO [dbo].[tblClientes]
                                                ([idEndereco]
												,[vcNomeRazaoSocial]
                                                ,[vcNomeFantasia]
                                                ,[vcCPFCNPJ]
												,[vcInscricaoEstadual]
												,[bitRetemISS]
												,[vcObservacoes]
                                                ,[vcSite]
                                                ,[bitAvulso])
                                            VALUES
                                                    (@codEndereco
                                                    ,@NomeRazaoSocial
                                                    ,@NomeFantasia
                                                    ,@CPFCNPJ
                                                    ,@InscricaoEstadual
                                                    ,@ISS
                                                    ,@Observacoes
                                                    ,@HomePage
                                                    ,@ClienteAvulso) 
													select @@identity;"                                                    ;

                        // Execute
                        idCliente = trans.Connection.ExecuteScalar <int?>(queryCliente, new
                        {
                            codEndereco       = idEndereco,
                            NomeRazaoSocial   = cliente.DadosCadastrais.NomeRazaoSocial,
                            NomeFantasia      = cliente.DadosCadastrais.NomeFantasia,
                            CPFCNPJ           = cliente.DadosCadastrais.CPFCNPJ,
                            InscricaoEstadual = cliente.DadosCadastrais.InscricaoEstadual,
                            ISS           = cliente.DadosCadastrais.ISS,
                            Observacoes   = cliente.DadosCadastrais.Observacoes,
                            HomePage      = cliente.DadosCadastrais.HomePage,
                            ClienteAvulso = cliente.DadosCadastrais.ClienteAvulso
                        }, trans);

                        // Se nao for avulso inclui contrato

                        // Insere Contato
                        string queryContato = @"INSERT INTO [dbo].[tblColaboradoresCliente]
                                           ([idCliente]
                                           ,[vcNomeContato]
                                           ,[vcDepartamento]
                                           ,[dtDataNascimento]
                                           ,[vcTelefoneComercial]
                                           ,[vcTelefoneCelular]
                                           ,[vcEmail])
                                     VALUES
                                           (@codCliente
                                           ,@Contato
                                           ,@Setor
                                           ,@DataNascimento
                                           ,@TelefoneComercial
                                           ,@TelefoneCelular
                                           ,@Email)
                                           select @@identity;";
                        // Execute
                        foreach (var contato in cliente.Contato)
                        {
                            idContato = trans.Connection.ExecuteScalar <int?>(queryContato, new
                            {
                                codCliente        = idCliente,
                                Contato           = contato.Contato,
                                Setor             = contato.Setor,
                                DataNascimento    = contato.DataNascimento,
                                TelefoneComercial = contato.TelefoneComercial,
                                TelefoneCelular   = contato.TelefoneCelular,
                                Email             = contato.Email
                            }, trans);

                            Contatos.Add(idContato);
                        }

                        if (!cliente.DadosCadastrais.ClienteAvulso)
                        {
                            // Insere Tarifa
                            if (cliente.ContratoMoto != null)
                            {
                                var cont = InsereContratoCliente(trans, idCliente ?? 99999999, 1, cliente.ContratoMoto);
                                Valores.Add(cont);
                            }

                            if (cliente.ContratoCarro != null)
                            {
                                var cont = InsereContratoCliente(trans, idCliente ?? 99999999, 2, cliente.ContratoCarro);
                                Valores.Add(cont);
                            }
                        }
                        else
                        {
                            // Insere Contato
                            string queryDadosBancarios = @"insert tblDadosCartaoCredito values (@idCli, @numCartao, @nomCartao, @validade)";

                            // Execute
                            idContato = trans.Connection.ExecuteScalar <int?>(queryDadosBancarios, new
                            {
                                idCli     = idCliente,
                                numCartao = cliente.DadosBancarios.NumeroCartaoCredito,
                                nomCartao = cliente.DadosBancarios.NomeCartaoCredito,
                                validade  = cliente.DadosBancarios.ValidadeCartaoCredito
                            }, trans);

                            Contatos.Add(idContato);
                        }

                        // Commit
                        trans.Commit();
                    }
                    catch (Exception e)
                    {
                        if (trans.Connection != null)
                        {
                            trans.Rollback();
                        }
                        RoolbackCliente(idCliente, idEndereco, Contatos.ToArray(), Valores.ToArray());
                        throw e;
                    }
                }
            }

            return(idCliente);
        }