///// <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; } } } }
/// <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); }