//public int GetDetalleCargaPrestacionesCount(int IdCargaPrestacionesEncabezado, // string NUMERO_FICHA, string NOMBRE, int? ID_ESTADO_DETALLE, string PROCEDENCIA, int PAGINA, int REGISTROS) //{ // try // { // using (LQCEEntities context = new LQCEEntities()) // { // RepositorioCARGA_PRESTACIONES_ENCABEZADO _RepositorioCARGA_PRESTACIONES_ENCABEZADO = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context); // RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE _RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE = new RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE(context); // RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE _RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE = new RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE(context); // CARGA_PRESTACIONES_ENCABEZADO objEncabezado = _RepositorioCARGA_PRESTACIONES_ENCABEZADO.GetByIdWithReferences(IdCargaPrestacionesEncabezado); // if (objEncabezado == null) // throw new Exception("No se encuentra informacion de carga de prestaciones"); // if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas) // { // var q = from d in _RepositorioCARGA_PRESTACIONES_HUMANAS_DETALLE.GetByFilterWithReferences(IdCargaPrestacionesEncabezado, // ID_ESTADO_DETALLE, null, null, null, null, NUMERO_FICHA, NOMBRE, // "", "", "", "", PROCEDENCIA, "", "", "", "", "", "", "", "", "", null, null, null, null) // select d; // var r = from item in q.OrderBy(d => d.ID).Skip((PAGINA - 1) * REGISTROS).Take(10) // select new DTO_DETALLE_CARGA_PRESTACIONES // { // ID = item.ID, // ID_TIPO_PRESTACION = item.CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION.ID, // NUMERO_FICHA = item.FICHA, // NOMBRE = item.NOMBRE, // ID_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.ID, // NOMBRE_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.NOMBRE, // PROCEDENCIA = item.PROCEDENCIA, // FECHA_RECEPCION = item.FECHA_RECEPCION // }; // return r.ToList().Count(); // } // else if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Veterinarias) // { // var q = from d in _RepositorioCARGA_PRESTACIONES_VETERINARIAS_DETALLE.GetByFilterWithReferences(IdCargaPrestacionesEncabezado, // ID_ESTADO_DETALLE, null, null, null, null, null, null, // NUMERO_FICHA, NOMBRE, "", "", "", "", "", "", "", PROCEDENCIA, // "", "", "", "", "", "", "", "", null, null, null, null) // select d; // var r = from item in q.OrderBy(d => d.ID).Skip((PAGINA - 1) * REGISTROS).Take(10) // select new DTO_DETALLE_CARGA_PRESTACIONES // { // ID = item.ID, // ID_TIPO_PRESTACION = item.CARGA_PRESTACIONES_ENCABEZADO.TIPO_PRESTACION.ID, // NUMERO_FICHA = item.FICHA, // NOMBRE = item.NOMBRE, // ID_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.ID, // NOMBRE_ESTADO_DETALLE = item.CARGA_PRESTACIONES_DETALLE_ESTADO.NOMBRE, // PROCEDENCIA = item.PROCEDENCIA, // FECHA_RECEPCION = item.FECHA_RECEPCION // }; // return r.ToList().Count(); // } // else // { // throw new Exception("Tipo de carga no identificada"); // } // } // } // catch (Exception ex) // { // ISException.RegisterExcepcion(ex); // Error = ex.Message; // throw ex; // } //} public void CambiarEstadoCarga(int IdCargaPrestacionesEncabezado, int IdCargaPrestacionesEstado) { Init(); try { using (LQCEEntities context = new LQCEEntities()) { RepositorioCARGA_PRESTACIONES_ENCABEZADO _RepositorioCARGA_PRESTACIONES_ENCABEZADO = new RepositorioCARGA_PRESTACIONES_ENCABEZADO(context); RepositorioCARGA_PRESTACIONES_ESTADO _RepositorioCARGA_PRESTACIONES_ESTADO = new RepositorioCARGA_PRESTACIONES_ESTADO(context); RepositorioTIPO_PRESTACION _RepositorioTIPO_PRESTACION = new RepositorioTIPO_PRESTACION(context); RepositorioCLIENTE _RepositorioCLIENTE = new RepositorioCLIENTE(context); CARGA_PRESTACIONES_ENCABEZADO objEncabezado = _RepositorioCARGA_PRESTACIONES_ENCABEZADO.GetByIdWithReferencesFull(IdCargaPrestacionesEncabezado); if (objEncabezado == null) throw new Exception("No se encuentra informacion de la carga"); CARGA_PRESTACIONES_ESTADO objEstado = _RepositorioCARGA_PRESTACIONES_ESTADO.GetById(IdCargaPrestacionesEstado); if (objEstado == null) throw new Exception("No se encuentra informacion del estado"); // Validaciones if (objEncabezado.CARGA_PRESTACIONES_ESTADO.ID != (int)ENUM_CARGA_PRESTACIONES_ESTADO.Pendiente) throw new Exception("La carga seleccionada no esta en revision pendiente"); int IdCargaDetalleEstadoPendiente = (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Pendiente; int IdCargaDetalleEstadoValidado = (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado; if (objEstado.ID == (int)ENUM_CARGA_PRESTACIONES_ESTADO.Completado) { if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas) { if (objEncabezado.CARGA_PRESTACIONES_HUMANAS_DETALLE .Any(d => d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID != IdCargaDetalleEstadoValidado)) { throw new Exception("La carga no se puede completar mientras tenga fichas pendientes o con errores"); } } else if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Veterinarias) { if (objEncabezado.CARGA_PRESTACIONES_VETERINARIAS_DETALLE .Any(d => d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID != IdCargaDetalleEstadoValidado)) { throw new Exception("La carga no se puede completar mientras tenga fichas pendientes o con errores"); } } } objEncabezado.CARGA_PRESTACIONES_ESTADO = objEstado; context.ApplyPropertyChanges("CARGA_PRESTACIONES_ENCABEZADO", objEncabezado); // Mover prestaciones y examenes a tablas definitivas if (objEstado.ID == (int)ENUM_CARGA_PRESTACIONES_ESTADO.Completado) { if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Humanas) { TIPO_PRESTACION _TIPO_PRESTACION = _RepositorioTIPO_PRESTACION.GetById((int)ENUM_TIPO_PRESTACION.Humanas); if (_TIPO_PRESTACION == null) throw new Exception("No se encuentra informacion de tipo de prestación humana"); foreach (CARGA_PRESTACIONES_HUMANAS_DETALLE _CARGA_PRESTACIONES_HUMANAS_DETALLE in objEncabezado.CARGA_PRESTACIONES_HUMANAS_DETALLE .Where(d => d.ACTIVO && d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID == (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado)) { if (string.IsNullOrEmpty(_CARGA_PRESTACIONES_HUMANAS_DETALLE.NOMBRE)) throw new Exception("No se ha señalado nombre"); if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FICHA.HasValue) throw new Exception("No se ha señalado ficha"); if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FECHA_RECEPCION.HasValue) throw new Exception("Fecha de recepción debe tener valor"); if(_CARGA_PRESTACIONES_HUMANAS_DETALLE.CLIENTE == null) throw new Exception("No se ha identificado al cliente"); if (!_CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_TOTAL.HasValue) throw new Exception("No se ha señalado valor total de prestaciones"); PRESTACION _PRESTACION = new PRESTACION(); _PRESTACION.ID = _CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FICHA.Value; _PRESTACION.TIPO_PRESTACION = _TIPO_PRESTACION; _PRESTACION.FECHA_RECEPCION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.VALOR_FECHA_RECEPCION.Value; _PRESTACION.MEDICO = _CARGA_PRESTACIONES_HUMANAS_DETALLE.MEDICO; _PRESTACION.CLIENTE = _CARGA_PRESTACIONES_HUMANAS_DETALLE.CLIENTE; _PRESTACION.PREVISION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.PREVISION1; _PRESTACION.GARANTIA = _CARGA_PRESTACIONES_HUMANAS_DETALLE.GARANTIA1; _PRESTACION.PENDIENTE = _CARGA_PRESTACIONES_HUMANAS_DETALLE.PENDIENTE; _PRESTACION.RECEPCION = _CARGA_PRESTACIONES_HUMANAS_DETALLE.RECEPCION; _PRESTACION.ACTIVO = true; context.AddToPRESTACION(_PRESTACION); PRESTACION_HUMANA _PRESTACION_HUMANA = new PRESTACION_HUMANA(); _PRESTACION_HUMANA.PRESTACION = _PRESTACION; _PRESTACION_HUMANA.NOMBRE = _CARGA_PRESTACIONES_HUMANAS_DETALLE.NOMBRE; _PRESTACION_HUMANA.TELEFONO = _CARGA_PRESTACIONES_HUMANAS_DETALLE.TELEFONO; _PRESTACION_HUMANA.EDAD = _CARGA_PRESTACIONES_HUMANAS_DETALLE.EDAD; _PRESTACION_HUMANA.RUT = _CARGA_PRESTACIONES_HUMANAS_DETALLE.RUT; _PRESTACION_HUMANA.ACTIVO = true; context.AddToPRESTACION_HUMANA(_PRESTACION_HUMANA); foreach (CARGA_PRESTACIONES_HUMANAS_EXAMEN _CARGA_PRESTACIONES_HUMANAS_EXAMEN in _CARGA_PRESTACIONES_HUMANAS_DETALLE .CARGA_PRESTACIONES_HUMANAS_EXAMEN.Where(d => d.ACTIVO)) { PRESTACION_EXAMEN _PRESTACION_EXAMEN = new PRESTACION_EXAMEN(); _PRESTACION_EXAMEN.PRESTACION = _PRESTACION; _PRESTACION_EXAMEN.EXAMEN = _CARGA_PRESTACIONES_HUMANAS_EXAMEN.EXAMEN; _PRESTACION_EXAMEN.VALOR = _CARGA_PRESTACIONES_HUMANAS_EXAMEN.VALOR_VALOR_EXAMEN; _PRESTACION_EXAMEN.ACTIVO = true; context.AddToPRESTACION_EXAMEN(_PRESTACION_EXAMEN); } } } else if (objEncabezado.TIPO_PRESTACION.ID == (int)ENUM_TIPO_PRESTACION.Veterinarias) { TIPO_PRESTACION _TIPO_PRESTACION = _RepositorioTIPO_PRESTACION.GetById((int)ENUM_TIPO_PRESTACION.Veterinarias); if (_TIPO_PRESTACION == null) throw new Exception("No se encuentra informacion de tipo de prestación veterinaria"); foreach (CARGA_PRESTACIONES_VETERINARIAS_DETALLE _CARGA_PRESTACIONES_VETERINARIAS_DETALLE in objEncabezado.CARGA_PRESTACIONES_VETERINARIAS_DETALLE .Where(d => d.ACTIVO && d.CARGA_PRESTACIONES_DETALLE_ESTADO.ID == (int)ENUM_CARGA_PRESTACIONES_DETALLE_ESTADO.Validado)) { if (string.IsNullOrEmpty(_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.NOMBRE)) throw new Exception("No se ha señalado nombre"); if (!_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA.HasValue) throw new Exception("No se ha señalado ingreso"); if (_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE1 == null) throw new Exception("No se ha identificado ESPECIE"); if (_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CLIENTE == null) throw new Exception("No se ha identificado al cliente"); if (!_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_TOTAL.HasValue) throw new Exception("No se ha señalado valor total de prestaciones"); if (string.IsNullOrEmpty(_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SOLICITA)) throw new Exception("No se ha señalado solicitante"); if (!_CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_RECEPCION.HasValue) throw new Exception("Fecha de recepción debe tener valor"); PRESTACION _PRESTACION = new PRESTACION(); _PRESTACION.ID = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA.Value; _PRESTACION.TIPO_PRESTACION = _TIPO_PRESTACION; _PRESTACION.CLIENTE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.CLIENTE; _PRESTACION.GARANTIA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.GARANTIA1; _PRESTACION.PENDIENTE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PENDIENTE; _PRESTACION.RECEPCION = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RECEPCION; _PRESTACION.MEDICO = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.MEDICO; _PRESTACION.FECHA_RECEPCION = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FECHA_RECEPCION.Value; _PRESTACION.PREVISION = null; _PRESTACION.ACTIVO = true; context.AddToPRESTACION(_PRESTACION); PRESTACION_VETERINARIA _PRESTACION_VETERINARIA = new PRESTACION_VETERINARIA(); _PRESTACION_VETERINARIA.PRESTACION = _PRESTACION; _PRESTACION_VETERINARIA.NOMBRE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.NOMBRE; _PRESTACION_VETERINARIA.ESPECIE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.ESPECIE1; _PRESTACION_VETERINARIA.RAZA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.RAZA1; _PRESTACION_VETERINARIA.SEXO = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SEXO; _PRESTACION_VETERINARIA.EDAD = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.EDAD; _PRESTACION_VETERINARIA.TELEFONO = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.TELEFONO; _PRESTACION_VETERINARIA.PROCEDENCIA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.PROCEDENCIA; _PRESTACION_VETERINARIA.SOLICITANTE = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.SOLICITA; _PRESTACION_VETERINARIA.FICHA_CLINICA = _CARGA_PRESTACIONES_VETERINARIAS_DETALLE.VALOR_FICHA_CLINICA; _PRESTACION_VETERINARIA.ACTIVO = true; context.AddToPRESTACION_VETERINARIA(_PRESTACION_VETERINARIA); foreach (CARGA_PRESTACIONES_VETERINARIAS_EXAMEN _CARGA_PRESTACIONES_VETERINARIAS_EXAMEN in _CARGA_PRESTACIONES_VETERINARIAS_DETALLE .CARGA_PRESTACIONES_VETERINARIAS_EXAMEN.Where(d => d.ACTIVO)) { PRESTACION_EXAMEN _PRESTACION_EXAMEN = new PRESTACION_EXAMEN(); _PRESTACION_EXAMEN.PRESTACION = _PRESTACION; _PRESTACION_EXAMEN.EXAMEN = _CARGA_PRESTACIONES_VETERINARIAS_EXAMEN.EXAMEN; _PRESTACION_EXAMEN.VALOR = _CARGA_PRESTACIONES_VETERINARIAS_EXAMEN.VALOR_VALOR_EXAMEN; _PRESTACION_EXAMEN.ACTIVO = true; context.AddToPRESTACION_EXAMEN(_PRESTACION_EXAMEN); } } } } context.SaveChanges(); } } catch (Exception ex) { ISException.RegisterExcepcion(ex); Error = ex.Message; throw ex; } }