public TicketModel GuardarTicket(TicketModel ticketModel) { DateTime fechaActual = DateTime.Now; try { iGenericDataAccess.OpenConnection(); iGenericDataAccess.BeginTran(); RegistrosTicket registrosTicket = iGenericDataAccess.Guardar(new RegistrosTicket() { FechaRegistro = fechaActual, TipoId = ticketModel.TipoId, UsuarioId = ticketModel.GetIdUsuarioSesion(), Descripcion = ticketModel.DescripcionTicket, IdCaratula = ticketModel.CaratulaId, IdCliente = ticketModel.PersonaId, IdOrigenTicket = ticketModel.CatalogoOrigenId == 0 ? null : ticketModel.CatalogoOrigenId, FechaRecepcion = ticketModel.FechaRecepcion, NumeroOT = null, //investigar con que dato se llenara NumeroOTSICS = null, //investigar con que dato se llenara ResponsableId = ticketModel.ResponsableId, AseguradoraId = ticketModel.AseguradoraId }); iGenericDataAccess.Guardar(new TicketsEstatus() { TicketId = registrosTicket.TicketId, IdEstatusTicket = ticketModel.IdEstatusTicket, //Falta obtener el idUsuario de session PersonaId = ticketModel.PersonaId, FechaRegistro = fechaActual, NombreArchivoTicketCerrado = "", RutaArchivoTicketCerrado = "", Activo = true //Falta obtener fecha calculada }); if (!ticketModel.EsClienteFlotillas) { iGenericDataAccess.Guardar(new TicketsDatosContactos() { TicketId = registrosTicket.TicketId, IdAgencia = ticketModel.DatosContactoAgenciaId, Nombre = ticketModel.DatosContactoNombre, Apellidos = ticketModel.DatosContactoApellidos, Telefono = ticketModel.DatosContactoTelefonos, Email = ticketModel.DatosContactoEmail }); } foreach (var archivo in ticketModel.Archivos) { ArchivosTickets archivosTickets = iGenericDataAccess.BuscarUno(new ArchivosTickets { IdArchivoTicket = archivo.IdArchivoTicket, }, new OptionsQueryZero { ExcludeNumericsDefaults = true, ExcludeBool = true }); iGenericDataAccess.Actualizar(new ArchivosTickets() { IdArchivoTicket = archivosTickets.IdArchivoTicket, TicketId = registrosTicket.TicketId, NombreArchivo = archivosTickets.NombreArchivo, RutaArchivo = archivosTickets.RutaArchivo, IdEstatusTicket = ticketModel.IdEstatusTicket }); } if (!string.IsNullOrEmpty(ticketModel.CopiarA)) { String[] correos = ticketModel.CopiarA.Split(';'); foreach (var copiarA in correos) { if (!string.IsNullOrEmpty(copiarA)) { iGenericDataAccess.Guardar(new CorreosCopiaTickets() { TicketId = registrosTicket.TicketId, Correo = copiarA }); } } } ticketModel.TicketId = registrosTicket.TicketId; ticketModel.FechaRegistro = fechaActual; ticketModel.FechaRecepcion = registrosTicket.FechaRecepcion; iGenericDataAccess.CommitTran(); } catch (DomainException de) { iGenericDataAccess?.RollbackTran(); throw new DalException(CodesTickets.ERR_00_12, de); } catch (Exception e) { iGenericDataAccess?.RollbackTran(); iGenericDataAccess?.CloseConnection(); throw new DalException(CodesCalendario.ERR_07_03, e); } return(ticketModel); }
public TiposTicketsClientesModel ActulizarTiposTicketsClientes(TiposTicketsClientesModel tiposTicketsClientesModel) { TiposTicketsClientesModel model = new TiposTicketsClientesModel(); try { iGenericDataAccess.OpenConnection(); TiposTicket findTiposTicket = iGenericDataAccess.BuscarUno(new TiposTicket() { TipoId = tiposTicketsClientesModel.TipoId }, new OptionsQueryZero() { ExcludeNumericsDefaults = true }); if (findTiposTicket != null) { if (!findTiposTicket.Descripcion.Equals(tiposTicketsClientesModel.TiposTicket.Descripcion)) { StringBuilder findSQL = new StringBuilder(); findSQL.Append(" SELECT COUNT(tt.TipoId) TiempoAtencion "); findSQL.Append(" FROM dbo.TiposTicket tt "); findSQL.Append(" INNER JOIN dbo.TiposTicketsClientes ttc "); findSQL.Append(" ON ttc.TipoId = tt.TipoId "); findSQL.Append(" AND ttc.IdCliente = " + tiposTicketsClientesModel.IdCliente); findSQL.Append(" AND tt.Descripcion = '" + tiposTicketsClientesModel.TiposTicket.Descripcion + "'"); TiposTicket findTiposTicketsDos = iGenericDataAccess.ExecuteQuery <TiposTicket>(findSQL.ToString())[0]; if (findTiposTicketsDos.TiempoAtencion > 0) { throw new DalException(CodesConfigParamTickets.INF_08_01); } } } TiposTicket tt = new TiposTicket { TipoId = tiposTicketsClientesModel.TipoId, Descripcion = tiposTicketsClientesModel.TiposTicket.Descripcion, TiempoAtencion = tiposTicketsClientesModel.TiposTicket.TiempoAtencion, Activa = true }; TiposTicket saveTicket = iGenericDataAccess.Actualizar(tt); StringBuilder sqlUpdate = new StringBuilder(); sqlUpdate.Append("UPDATE TiposTicketsClientes "); sqlUpdate.Append(" SET IdPersonaResponsable = " + tiposTicketsClientesModel.IdPersonaResponsable + ","); sqlUpdate.Append(" IdPersonaEscalamiento1 = " + tiposTicketsClientesModel.IdPersonaEscalamiento1 + ","); sqlUpdate.Append(" IdPersonaEscalamiento2 = " + tiposTicketsClientesModel.IdPersonaEscalamiento2 + ","); sqlUpdate.Append(" HorasAtencion = " + tiposTicketsClientesModel.HorasAtencion + ","); sqlUpdate.Append(" HorasSegundoEscalamiento = " + tiposTicketsClientesModel.HorasSegundoEscalamiento); sqlUpdate.Append(" WHERE TipoId = " + saveTicket.TipoId); sqlUpdate.Append(" AND IdCliente = " + tiposTicketsClientesModel.IdCliente); iGenericDataAccess.ExecuteSql(sqlUpdate.ToString()); model.TipoId = saveTicket.TipoId; model.IdCliente = tiposTicketsClientesModel.IdCliente; iGenericDataAccess.CloseConnection(); return(model); } catch (Exception e) { iGenericDataAccess.CloseConnection(); throw new DalException(CodesConfigParamTickets.ERR_08_03, e); } }