public bool FinalizarTraslado(TRASLADO Traslado, INGRESO Ingreso, TRASLADO_DETALLE Traslado_Detalle) { try { using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted })) { var ListaTrasladoInternos = new cTrasladoDetalle().ObtenerTrasladoInternos(Traslado.ID_TRASLADO, Traslado.ID_CENTRO).AsEnumerable(); foreach (var Interno in ListaTrasladoInternos) { var cama = new CAMA() { ID_CENTRO = Interno.INGRESO.CAMA.ID_CENTRO, ID_EDIFICIO = Interno.INGRESO.CAMA.ID_EDIFICIO, ID_SECTOR = Interno.INGRESO.CAMA.ID_SECTOR, ID_CELDA = Interno.INGRESO.CAMA.ID_CELDA, ID_CAMA = Interno.INGRESO.CAMA.ID_CAMA, ESTATUS = "S" }; Context.CAMA.Attach(cama); Context.Entry(cama).Property(x => x.ESTATUS).IsModified = true; } Context.TRASLADO.Attach(Traslado); Context.Entry(Traslado).Property(x => x.ID_ESTATUS).IsModified = true; Context.Entry(Traslado).Property(x => x.RESPONSABLE).IsModified = Traslado.RESPONSABLE != null; Context.INGRESO.Attach(Ingreso); Context.Entry(Ingreso).Property(x => x.ID_ESTATUS_ADMINISTRATIVO).IsModified = true; Context.TRASLADO_DETALLE.Attach(Traslado_Detalle); Context.Entry(Traslado_Detalle).Property(x => x.ID_ESTATUS).IsModified = true; Context.Entry(Traslado_Detalle).Property(x => x.EGRESO_FEC).IsModified = true; Context.Entry(Traslado_Detalle).Property(x => x.ID_ESTATUS_ADMINISTRATIVO).IsModified = true; Context.Entry(Traslado_Detalle).Property(x => x.ID_INCIDENCIA_TRASLADO).IsModified = true; Context.Entry(Traslado_Detalle).Property(x => x.INCIDENCIA_OBSERVACION).IsModified = true; Context.SaveChanges(); transaccion.Complete(); return(true); } } catch (Exception ex) { throw new ApplicationException(ex.Message); } }
public bool Insertar_Comprobacion_CertificadoMedico(List <TRASLADO_DETALLE> ListaTrasDetalle, List <EXCARCELACION> ListaExcarcel, string NameProceso, string TipoCertificadoMedico, short?IdAreaTRaslado, DateTime FechaServer) { using (TransactionScope transaccion = new TransactionScope(TransactionScopeOption.RequiresNew, new TransactionOptions() { IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted })) { try { cExcarcelacion ExcarcelacionActualizar = new cExcarcelacion(); cTrasladoDetalle TrasladoDetalleControlador = new cTrasladoDetalle(); cAtencionServicio AtencionServControlador = new cAtencionServicio(); cIngresoUbicacion IngresoUbicacionControlador = new cIngresoUbicacion(); var Enums = AtencionServControlador.ObtenerTodo().Where(w => w.ID_TIPO_SERVICIO == 3 && w.ID_TIPO_ATENCION == 1).FirstOrDefault(); bool OCURRIO_ERROR = false; string ACTIVIDAD = string.Empty; switch (NameProceso) { case "Traslados-Salidas": ACTIVIDAD = "TRASLADO"; foreach (var itemTrasDetalle in ListaTrasDetalle) { var ObjAtencionMed = new ATENCION_MEDICA(); ObjAtencionMed.ID_ANIO = itemTrasDetalle.ID_ANIO; ObjAtencionMed.ID_CENTRO = itemTrasDetalle.ID_CENTRO; ObjAtencionMed.ID_IMPUTADO = itemTrasDetalle.ID_IMPUTADO; ObjAtencionMed.ID_INGRESO = itemTrasDetalle.ID_INGRESO; ObjAtencionMed.ID_TIPO_ATENCION = Enums.ID_TIPO_ATENCION; ObjAtencionMed.ID_TIPO_SERVICIO = Enums.ID_TIPO_SERVICIO; if (this.Insertar(ObjAtencionMed)) { //Se actualiza campo de ID_ATENCION_MEDICA(comprobacion certificado medico) itemTrasDetalle.ID_ATENCION_MEDICA = ObjAtencionMed.ID_ATENCION_MEDICA; if (TrasladoDetalleControlador.Actualizar(new TRASLADO_DETALLE() { ID_CENTRO = itemTrasDetalle.ID_CENTRO, ID_ANIO = itemTrasDetalle.ID_ANIO, ID_IMPUTADO = itemTrasDetalle.ID_IMPUTADO, ID_INGRESO = itemTrasDetalle.ID_INGRESO, ID_ESTATUS = itemTrasDetalle.ID_ESTATUS, AMP_ID_AMPARO_INDIRECTO = itemTrasDetalle.AMP_ID_AMPARO_INDIRECTO, AMP_ID_ANIO = itemTrasDetalle.AMP_ID_ANIO, AMP_ID_CENTRO = itemTrasDetalle.AMP_ID_CENTRO, AMP_ID_IMPUTADO = itemTrasDetalle.AMP_ID_IMPUTADO, AMP_ID_INGRESO = itemTrasDetalle.AMP_ID_INGRESO, CANCELADO_OBSERVA = itemTrasDetalle.CANCELADO_OBSERVA, EGRESO_FEC = itemTrasDetalle.EGRESO_FEC, ID_ATENCION_MEDICA = itemTrasDetalle.ID_ATENCION_MEDICA, ID_CENTRO_TRASLADO = itemTrasDetalle.ID_CENTRO_TRASLADO, ID_ESTATUS_ADMINISTRATIVO = itemTrasDetalle.ID_ESTATUS_ADMINISTRATIVO, ID_MOTIVO = itemTrasDetalle.ID_MOTIVO, ID_TRASLADO = itemTrasDetalle.ID_TRASLADO })) { int IdCpnsecutivo = 0; int?Id_custodio = null; var IngresoUbicacionDatos = IngresoUbicacionControlador.ObtenerTodos().Where(w => w.ID_ANIO == itemTrasDetalle.ID_ANIO && w.ID_CENTRO == itemTrasDetalle.ID_CENTRO && w.ID_IMPUTADO == itemTrasDetalle.ID_IMPUTADO && w.ID_INGRESO == itemTrasDetalle.ID_INGRESO); if (IngresoUbicacionDatos.Count() > 0) //si el ingreso ya tiene registros anteriores Actualizara el ultimo Movimiento { //SE ACTUALIZA var ObjetoUbicacionTras = IngresoUbicacionDatos.Where(w => w.ID_CONSEC == IngresoUbicacionDatos.Max(IdMAX => IdMAX.ID_CONSEC)).ToList().FirstOrDefault(); //ACTUALIZACION DATOS DE UBICACION_DETALLE Id_custodio = ObjetoUbicacionTras.ID_CUSTODIO; //Revisar que regreso si es null declararlo de inicio como null sio es cero declararlo de inicio como cero ObjetoUbicacionTras.ESTATUS = 2; //:::::ACTUALIZA ESTATUS if (!IngresoUbicacionControlador.Actualizar(new INGRESO_UBICACION() { ID_ANIO = ObjetoUbicacionTras.ID_ANIO, MOVIMIENTO_FEC = ObjetoUbicacionTras.MOVIMIENTO_FEC, ACTIVIDAD = ObjetoUbicacionTras.ACTIVIDAD, ID_CENTRO = ObjetoUbicacionTras.ID_CENTRO, ID_CONSEC = ObjetoUbicacionTras.ID_CONSEC, ID_CUSTODIO = ObjetoUbicacionTras.ID_CUSTODIO, ID_IMPUTADO = ObjetoUbicacionTras.ID_IMPUTADO, ID_INGRESO = ObjetoUbicacionTras.ID_INGRESO, INTERNO_UBICACION = ObjetoUbicacionTras.INTERNO_UBICACION, ID_AREA = 46, //Valor que se leasigna por el momento ESTATUS = ObjetoUbicacionTras.ESTATUS })) { OCURRIO_ERROR = true; } } //SE AGREGA UNO NUEVO if (!IngresoUbicacionControlador.Insertar(new INGRESO_UBICACION() { ID_ANIO = itemTrasDetalle.ID_ANIO, ID_CENTRO = itemTrasDetalle.ID_CENTRO, ID_IMPUTADO = itemTrasDetalle.ID_IMPUTADO, ID_INGRESO = itemTrasDetalle.ID_INGRESO, ID_CONSEC = IngresoUbicacionControlador.ObtenerConsecutivo <int>(itemTrasDetalle.ID_CENTRO, itemTrasDetalle.ID_ANIO, itemTrasDetalle.ID_IMPUTADO, itemTrasDetalle.ID_INGRESO), MOVIMIENTO_FEC = FechaServer, ACTIVIDAD = ACTIVIDAD, ID_AREA = IdAreaTRaslado, ESTATUS = 1, ID_CUSTODIO = Id_custodio, })) { OCURRIO_ERROR = true; } } } else { OCURRIO_ERROR = true; } } break; case "EXCARCELACIÓN": foreach (var itemExcarcelDetalle in ListaExcarcel) { var ObjAtencionMed = new ATENCION_MEDICA(); ObjAtencionMed.ID_ANIO = itemExcarcelDetalle.ID_ANIO; ObjAtencionMed.ID_CENTRO = itemExcarcelDetalle.ID_CENTRO; ObjAtencionMed.ID_IMPUTADO = itemExcarcelDetalle.ID_IMPUTADO; ObjAtencionMed.ID_INGRESO = itemExcarcelDetalle.ID_INGRESO; ObjAtencionMed.ID_TIPO_ATENCION = Enums.ID_TIPO_ATENCION; ObjAtencionMed.ID_TIPO_SERVICIO = Enums.ID_TIPO_SERVICIO; if (this.Insertar(ObjAtencionMed)) { //Se agrega campo de CERTIFICADO_MEDICO_SALIDA y se actualiza Tabla excarcelacion switch (TipoCertificadoMedico) { case "SALIDA": itemExcarcelDetalle.CERT_MEDICO_SALIDA = ObjAtencionMed.ID_ATENCION_MEDICA; ACTIVIDAD = "EXCARCELACIÓN"; break; case "RETORNO": itemExcarcelDetalle.CERT_MEDICO_RETORNO = ObjAtencionMed.ID_ATENCION_MEDICA; ACTIVIDAD = "ESTANCIA"; break; } if (ExcarcelacionActualizar.Actualizar(new EXCARCELACION() { ID_ANIO = itemExcarcelDetalle.ID_ANIO, ID_CENTRO = itemExcarcelDetalle.ID_CENTRO, ID_IMPUTADO = itemExcarcelDetalle.ID_IMPUTADO, ID_INGRESO = itemExcarcelDetalle.ID_INGRESO, ID_CONSEC = itemExcarcelDetalle.ID_CONSEC, ID_TIPO_EX = itemExcarcelDetalle.ID_TIPO_EX, ID_ESTATUS = itemExcarcelDetalle.ID_ESTATUS, ID_USUARIO = itemExcarcelDetalle.ID_USUARIO, OBSERVACION = itemExcarcelDetalle.OBSERVACION, PROGRAMADO_FEC = itemExcarcelDetalle.PROGRAMADO_FEC, REGISTRO_FEC = itemExcarcelDetalle.REGISTRO_FEC, RETORNO_FEC = itemExcarcelDetalle.RETORNO_FEC, SALIDA_FEC = itemExcarcelDetalle.SALIDA_FEC, CANCELADO_TIPO = itemExcarcelDetalle.CANCELADO_TIPO, CERT_MEDICO_RETORNO = itemExcarcelDetalle.CERT_MEDICO_RETORNO, CERT_MEDICO_SALIDA = itemExcarcelDetalle.CERT_MEDICO_SALIDA, CERTIFICADO_MEDICO = itemExcarcelDetalle.CERTIFICADO_MEDICO, })) { int IdCpnsecutivo = 0; int?Id_custodio = null; var IngresoUbicacionDatos = IngresoUbicacionControlador.ObtenerTodos().Where(w => w.ID_ANIO == itemExcarcelDetalle.ID_ANIO && w.ID_CENTRO == itemExcarcelDetalle.ID_CENTRO && w.ID_IMPUTADO == itemExcarcelDetalle.ID_IMPUTADO && w.ID_INGRESO == itemExcarcelDetalle.ID_INGRESO); if (IngresoUbicacionDatos.Count() > 0) { //SE ACTUALIZA var ObjetoUnicacionTras = IngresoUbicacionDatos.Where(w => w.ID_CONSEC == IngresoUbicacionDatos.Max(IdMAX => IdMAX.ID_CONSEC)).ToList().FirstOrDefault(); Id_custodio = ObjetoUnicacionTras.ID_CUSTODIO; //Revisar que regreso si es null declararlo de inicio como null sio es cero declararlo de inicio como cero ObjetoUnicacionTras.ESTATUS = 2; //:::::ACTUALIZA ESTATUS if (!IngresoUbicacionControlador.Actualizar(new INGRESO_UBICACION() { ID_ANIO = ObjetoUnicacionTras.ID_ANIO, MOVIMIENTO_FEC = ObjetoUnicacionTras.MOVIMIENTO_FEC, ACTIVIDAD = ObjetoUnicacionTras.ACTIVIDAD, ID_CENTRO = ObjetoUnicacionTras.ID_CENTRO, ID_CONSEC = ObjetoUnicacionTras.ID_CONSEC, ID_CUSTODIO = ObjetoUnicacionTras.ID_CUSTODIO, ID_IMPUTADO = ObjetoUnicacionTras.ID_IMPUTADO, ID_INGRESO = ObjetoUnicacionTras.ID_INGRESO, INTERNO_UBICACION = ObjetoUnicacionTras.INTERNO_UBICACION, ID_AREA = 46, //Valor que se leasigna por el momento ESTATUS = ObjetoUnicacionTras.ESTATUS })) { OCURRIO_ERROR = true; } } //SE AGREGA UNO NUEVO if (!IngresoUbicacionControlador.Insertar(new INGRESO_UBICACION() { ID_ANIO = itemExcarcelDetalle.ID_ANIO, ID_CENTRO = itemExcarcelDetalle.ID_CENTRO, ID_IMPUTADO = itemExcarcelDetalle.ID_IMPUTADO, ID_INGRESO = itemExcarcelDetalle.ID_INGRESO, ID_CONSEC = IngresoUbicacionControlador.ObtenerConsecutivo <int>(itemExcarcelDetalle.ID_CENTRO, itemExcarcelDetalle.ID_ANIO, itemExcarcelDetalle.ID_IMPUTADO, itemExcarcelDetalle.ID_INGRESO), MOVIMIENTO_FEC = FechaServer, ACTIVIDAD = ACTIVIDAD, ID_AREA = IdAreaTRaslado, ESTATUS = 1, ID_CUSTODIO = Id_custodio, })) { OCURRIO_ERROR = true; } } else { OCURRIO_ERROR = true; } } else { OCURRIO_ERROR = true; } } break; default: break; } if (OCURRIO_ERROR == false) { transaccion.Complete(); return(true); } } catch (Exception) { transaccion.Dispose(); } } return(true); }
private bool GeneraReporteDatos() { try { var tipo_movimiento = isEgresoChecked ? "E" : isIngresoChecked ? "I" : ""; var _otros_emisor = Parametro.ID_EMISOR_OTROS; System.DateTime _fechaS = Fechas.GetFechaDateServer; ds_detalle = new cTrasladoDetalle().ObtenerTodosPorTipo(tipo_movimiento, GlobalVar.gCentro, fechaInicio, fechaFin, selectedTipoTrasladoValue).AsEnumerable() .Select(s => new EXT_REPORTE_TRASLADO_DETALLE { CERESO_DESTINO = tipo_movimiento == "E" ? s.TRASLADO.CENTRO_DESTINO != null ? s.TRASLADO.CENTRO.DESCR : s.TRASLADO.ID_CENTRO_DESTINO_FORANEO != _otros_emisor ? s.TRASLADO.EMISOR.DESCR : s.TRASLADO.OTRO_CENTRO_DESTINO_FORANEO : s.TRASLADO.CENTRO_ORIGEN != null ? s.TRASLADO.CENTRO1.DESCR : s.TRASLADO.ID_CENTRO_ORIGEN_FORANEO == _otros_emisor ? s.TRASLADO.CENTRO_ORIGEN_FORANEO : s.TRASLADO.EMISOR1.DESCR, EXPEDIENTE = s.ID_ANIO.ToString() + "/" + s.ID_IMPUTADO.ToString().PadLeft(2, '0') + "-" + s.ID_INGRESO.ToString(), FEC_TRASLADO = s.EGRESO_FEC.HasValue ? s.EGRESO_FEC.Value : _fechaS, //CONSIDERAR LA POSIBILIDAD DE MANEJAR TODOS LOS CAMPOS COMO STRING, ESTE CAMPO VENIA VACIO Y OCASIONA UN ERROR EN TIEMPO DE EJECUCION MOTIVO_TRASLADO = s.TRASLADO != null ? s.TRASLADO.TRASLADO_MOTIVO != null ? !string.IsNullOrEmpty(s.TRASLADO.TRASLADO_MOTIVO.DESCR) ? s.TRASLADO.TRASLADO_MOTIVO.DESCR.Trim() : string.Empty : string.Empty : string.Empty, NOMBRECOMPLETO = s.INGRESO != null ? s.INGRESO.IMPUTADO != null ? ObtieneNombre(s.INGRESO.IMPUTADO) : string.Empty : string.Empty, TIPO_MOVIMIENTO = tipo_movimiento, UBICACION = s.INGRESO.CAMA != null ? s.INGRESO.CAMA.CELDA != null ? s.INGRESO.CAMA.CELDA.SECTOR != null ? s.INGRESO.CAMA.CELDA.SECTOR.EDIFICIO != null ? s.INGRESO.CAMA.CELDA.SECTOR.EDIFICIO.DESCR.Trim() + "-" + s.INGRESO.CAMA.CELDA.SECTOR.DESCR.Trim() + "" + s.INGRESO.CAMA.CELDA.ID_CELDA.ToString().Trim() + "-" + s.INGRESO.CAMA.ID_CAMA : string.Empty : string.Empty : string.Empty : string.Empty, }).ToList(); var logo_bc = Parametro.LOGO_ESTADO_BC; var centro = new cCentro().Obtener(GlobalVar.gCentro).FirstOrDefault(); var rango = string.Empty; if (fechaInicio.HasValue) { if (fechaFin.HasValue) { rango = "Desde el día " + fechaInicio.Value.ToShortDateString() + " hasta el día" + fechaFin.Value.ToShortDateString(); } else { rango = "Desde el día " + fechaInicio.Value.ToShortDateString(); } } ds_encabezado = new List <EXT_REPORTE_TRASLADO_ENCABEZADO>() { new EXT_REPORTE_TRASLADO_ENCABEZADO { LOGO_BC = logo_bc, CENTRO_ORIGEN = centro != null ? !string.IsNullOrEmpty(centro.DESCR) ? centro.DESCR.Trim() : string.Empty : string.Empty, RANGO_FECHAS = rango, TITULO = "Reporte de Traslados Estatales " + tipo_movimiento == "E"? "Enviados":"Recibidos" } }; return(true); } catch (Exception ex) { throw ex; } }