public void ActualizarCheckeados(List<string> listaGrillaChekeadoId, List<bool> listaGrillaVisto, string cuspp)
        {
            var i = 0;
            using (var repositorio = new DISEntities())
            {
                var archivo = (from p in repositorio.Pagos
                    join s in repositorio.Siniestros on p.SiniestroId equals s.SiniestroId
                    where s.CUSPP == cuspp
                    select p.ArchivoId).FirstOrDefault();

                dynamic variable = repositorio.CheckLists.Where(cl => cl.CUSPP == cuspp);
                //Dim cuenta = variable.Count
                foreach (var tiposiniestroLoopVariable in variable) {
                    var tiposiniestro = tiposiniestroLoopVariable;
                    foreach (var checkeado_loopVariable in tiposiniestro.Checkeado) {
                        var checkeado = checkeado_loopVariable;
                        //se modifica para que grabe cada uno en forma inmediata
                        if (checkeado.CheckeadoId == listaGrillaChekeadoId[i]) {
                            checkeado.Visto = listaGrillaVisto[i];
                            InsertaBitacora(archivo, tiposiniestro.UsuarioModificacion, "Cambia el estado de los Checkeados: " + checkeado.CheckeadoId.ToString() + ", estado: " + checkeado.Visto.ToString(), "Update");
                            break; // TODO: might not be correct. Was : Exit For
                        }
                    }
                    i = 0;
                }
                repositorio.SaveChanges();
            }
        }
        public void AprobarCheckList(string cuspp, string tipomovimiento, int idsolicitud, int estado,
            string observacion)
        {
            using (var repositorio = new DISEntities())
            {
                var solicitudid = ObtenerTipoSolicitud(idsolicitud);
                var tipo = repositorio.TipoMovimientos.FirstOrDefault(tm => tm.Abreviatura == tipomovimiento);
                var check =
                    repositorio.CheckLists.FirstOrDefault(
                        c =>
                            c.CUSPP == cuspp & c.TipoMovimientoId == tipo.TipoMovimientoId &
                            c.TipoSolicitudId == solicitudid);
                check.Estado = estado;
                check.Observaciones = observacion;
                repositorio.SaveChanges();

                var _estado = estado == 0 ? "Rechazado" : "Ingresado";

                var archivo = (from archiv in repositorio.Archivos
                    join pago in repositorio.Pagos on archiv.ArchivoId equals pago.ArchivoId
                    join siniestro in repositorio.Siniestros on pago.SiniestroId equals siniestro.SiniestroId
                    where siniestro.CUSPP == cuspp
                    select archiv.ArchivoId).FirstOrDefault();

                InsertaBitacora(archivo, Convert.ToInt32(check.UsuarioModificacion),
                    "Cambia el estado del CheckLists: " + check.CheckListId + ", estado: " + _estado,
                    "Update");
            }
        }
 public void GuardarCheckList(CheckList checklist)
 {
     using (var repositorio = new DISEntities())
     {
         repositorio.CheckLists.Add(checklist);
         repositorio.SaveChanges();
     }
 }
 public void EliminarTipoCambio(string periodo)
 {
     using (var repositorio = new DISEntities())
     {
         var tipocambio = repositorio.TipoCambios.FirstOrDefault(tc => tc.Periodo == periodo & tc.Vigente == true);
         tipocambio.Vigente = false;
         repositorio.SaveChanges();
     }
 }
 public void InsertaBitacora(int idarchivo, int idusuario, string descripcion, string comando)
 {
     using (var repositorio = new DISEntities())
     {
         var bitacora = new Bitacora
         {
             Comando = comando,
             Descripcion = descripcion,
             Fecha = System.DateTime.Now,
             IdArchivo = idarchivo,
             IdUsuario = idusuario
         };
         repositorio.Bitacoras.Add(bitacora);
         repositorio.SaveChanges();
     }
 }
        public void AprobarNomina(List<string> listaGrillaChekeadoId, string usuario)
        {
            using (var repositorio = new DISEntities())
            {
                for (var i = 0; i <= listaGrillaChekeadoId.Count - 1;)
                {
                    var nomina = listaGrillaChekeadoId[i];
                    var pagos = repositorio.Pagos.Where(p => p.ArchivoId == Convert.ToInt32(nomina)).ToList();

                    foreach (var item in pagos)
                    {
                        item.Estado = (int) Modelo.Enumerado.EstadoPago.Aprobado;
                        item.UsuarioModificacion = usuario;
                        InsertaBitacora(item.ArchivoId, Convert.ToInt32(usuario),
                            "nomina aprobada: " + item.ArchivoId, "Update");
                    }
                }
                repositorio.SaveChanges();
            }
        }
 public void TipoCambio(string periodo, decimal monto)
 {
     using (var repositorio = new DISEntities())
     {
         var tipocambio = repositorio.TipoCambios.FirstOrDefault(tc => tc.Periodo == periodo);
         if (tipocambio == null)
         {
             var tipo = new TipoCambio
             {
                 Periodo = periodo,
                 Monto = monto,
                 Vigente = true
             };
             repositorio.TipoCambios.Add(tipo);
             repositorio.SaveChanges();
         }
         else
         {
             tipocambio.Monto = monto;
             tipocambio.Vigente = true;
             repositorio.SaveChanges();
         }
     }
 }
 public void PagoValidado(int siniestro)
 {
     using (var repositorio = new DISEntities())
     {
         dynamic pago = repositorio.Pagos.FirstOrDefault(p => p.SiniestroId == siniestro & p.Vigente == true);
         //estado = 3 --> nóminas aprobadas
         if (pago.Estado < 3)
         {
             pago.Estado = (int) Modelo.Enumerado.EstadoPago.Aprobado;
             InsertaBitacora(pago.ArchivoId, pago.UsuarioModificacion,
                 "Cambia el estado del Pago: " + pago.PagoId.ToString() + ", estado: Validado", "Update");
             repositorio.SaveChanges();
         }
     }
 }
 public void ImpactarPagos(Siniestro siniestro, Pago pago)
 {
     using (var repositorio = new DISEntities())
     {
         var existente = repositorio.Siniestros.FirstOrDefault(s => s.CUSPP == siniestro.CUSPP);
         if (!ExistePago(existente.SiniestroId, pago.ArchivoId))
         {
             pago.SiniestroId = existente.SiniestroId;
             existente.Pagos.Add(pago);
             repositorio.SaveChanges();
         }
         else
         {
             var masPago =
                 repositorio.Pagos.Where(
                     x => x.ArchivoId == pago.ArchivoId && x.SiniestroId == existente.SiniestroId).ToList();
             var sumaMintoTatal = masPago.Sum(x => x.Monto) + pago.Monto;
             var sumaMintoVc = masPago.Sum(x => x.PagoVC) + pago.PagoVC;
             existente.Pagos.FirstOrDefault().Monto = sumaMintoTatal;
             existente.Pagos.FirstOrDefault().PagoVC = sumaMintoVc;
             repositorio.SaveChanges();
         }
     }
 }
 public void ImpactarNegocio(Siniestro siniestro, Pago pago)
 {
     using (var repositorio = new DISEntities())
     {
         if (Existe(siniestro))
         {
             ImpactarPagos(siniestro, pago);
             return;
         }
         else
         {
             siniestro.TipoSolicitudId = 1;
             repositorio.Siniestros.Add(siniestro);
             repositorio.SaveChanges();
             ImpactarPagos(siniestro, pago);
             return;
         }
     }
 }
        public CheckList ObtenerCheckList(string cuspp, string tipoSiniestroNombre, string idusuario, int idsolicitud)
        {
            TipoMovimiento tipoSiniestro;
            var checkList = new CheckList();

            //Dim lista
            using (var repositorio = new DISEntities()) {
                tipoSiniestro = ObtenerTipoDocumento(tipoSiniestroNombre);
                //Dim archivo = repositorio.Archivo.Include("Pagos").Include("Pagos.Siniestro").Where(Function(s) s.Pago.FirstOrDefault.Siniestro.CUSPP = cuspp)
                var _archivo = (from _archiv in repositorio.Archivos
                    join _pago in repositorio.Pagos on _archiv.ArchivoId equals _pago.ArchivoId
                    join _siniestro in repositorio.Siniestros on _pago.SiniestroId equals _siniestro.SiniestroId
                    where _siniestro.CUSPP == cuspp
                    select _archiv.ArchivoId).FirstOrDefault();

                var solicitudid = ObtenerTipoSolicitud(idsolicitud);
                if (!repositorio.CheckLists.Any(r => r.CUSPP == cuspp & r.TipoMovimientoId == tipoSiniestro.TipoMovimientoId & r.TipoSolicitudId == solicitudid)) {
                    foreach (var documentosolicitado_loopVariable in tipoSiniestro.DocumentoSolicitados) {
                        var documentosolicitado = documentosolicitado_loopVariable;
                        if (documentosolicitado.TipoSolicitudId == solicitudid) {
                            dynamic checkeado = new Checkeado();
                            //checkeado.Documento = documentosolicitado.Documento
                            checkeado.DocumentoId = documentosolicitado.Documento.DocumentoId;
                            checkeado.FechaModificacion = System.DateTime.Now;
                            checkeado.Vigente = true;
                            checkeado.UsuarioModificacion = idusuario;

                            // si el documento ya fue checkeado
                            var visto = (from c in repositorio.Checkeados
                                join ch in repositorio.CheckLists on c.CheckListId equals ch.CheckListId
                                where
                                    c.Visto && c.DocumentoId == documentosolicitado.Documento.DocumentoId &&
                                    ch.CUSPP == cuspp
                                select c);
                            ;

                            if (visto.Any()) {
                                checkeado.Visto = visto.FirstOrDefault().Visto;
                            }

                            //checkList.Checkeados.Add(checkeado);
                            InsertaBitacora(_archivo, Convert.ToInt32(idusuario), "Ingresa los documentos a la tabla checkeados(documento): " + documentosolicitado.Documento.DocumentoId, "Insert");
                        }
                    }
                    checkList.CUSPP = cuspp;
                    checkList.FechaModificacion = System.DateTime.Now;
                    checkList.UsuarioModificacion = idusuario;
                    checkList.Vigente = true;
                    checkList.TipoMovimientoId = tipoSiniestro.TipoMovimientoId;
                    checkList.TipoSolicitudId = solicitudid;
                    checkList.Estado = 1;
                    checkList.Observaciones = "";
                    repositorio.CheckLists.Add(checkList);
                    repositorio.SaveChanges();

                    InsertaBitacora(_archivo, Convert.ToInt32(idusuario), "Ingresa un registro al Checklist por: " + cuspp + "," + tipoSiniestroNombre + "," + idusuario + "," + idsolicitud, "Insert");
                }

                checkList = repositorio.CheckLists.Include("Checkeado").Include("Checkeado.Documento").FirstOrDefault(cl => cl.CUSPP == cuspp & cl.TipoMovimientoId == tipoSiniestro.TipoMovimientoId & cl.TipoSolicitudId == solicitudid);

            }
            return checkList;
        }