示例#1
0
        public String UploadFile(String subFolder)
        {
            String path = "";
            ParametrosHelper parameterHelper = new ParametrosHelper();
            Parametro rutaParameter = parameterHelper.getParameterByKey("SUARUTA");

            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];

                if (file != null && file.ContentLength > 0)
                {

                    if (!subFolder.Equals(""))
                    {
                        path = Path.Combine(rutaParameter.valorString.Trim(), subFolder);
                        if (!System.IO.File.Exists(path))
                        {
                            System.IO.Directory.CreateDirectory(path);
                        }
                    }
                    else
                    {
                        path = rutaParameter.valorString.Trim();
                    }

                    var fileName = Path.GetFileName(file.FileName);
                    //var path = Path.Combine(Server.MapPath("~/App_LocalResources/"), fileName);
                    var pathFinal = Path.Combine(path, fileName);
                    file.SaveAs(pathFinal);
                    ViewBag.dbUploaded = true;
                    TempData["error"] = false;
                    TempData["viewMessage"] = "Se ha realizado la actualización con exito!";
                }
            }

            return path;
        }
示例#2
0
        public ActionResult Upload()
        {
            if (Request.Files.Count > 0)
            {
                var file = Request.Files[0];

                if (file != null && file.ContentLength > 0)
                {
                    ParametrosHelper parameterHelper = new ParametrosHelper();
                    Parametro rutaParameter = parameterHelper.getParameterByKey("SUARUTA");
                    String path = rutaParameter.valorString.Trim();
                    if (!System.IO.File.Exists(path))
                    {
                        System.IO.Directory.CreateDirectory(path);
                    }

                    var fileName = Path.GetFileName(file.FileName);
                    var pathFinal = Path.Combine(path, fileName);
                    var pathMDB = path.Trim() + "\\SUA.mdb";

                    file.SaveAs(pathFinal);

                    ZipFile zip = ZipFile.Read(pathFinal);
                    zip.ExtractAll(path, ExtractExistingFileAction.OverwriteSilently);

                    if (RefreshBoss(path) == 0)
                    {
                        ViewBag.dbUploaded = false;
                    }
                    else {
                        ViewBag.dbUploaded = true;
                    }
                    System.IO.File.Delete(pathMDB);

                }
            }

            return RedirectToAction("Index");
        }
示例#3
0
        /**
         * Realizamos la carga de los acreditados
         */
        public void uploadAcreditado(String path)
        {
            SUAHelper sua = null;
            Boolean isError = false;
            try
            {
                sua = new SUAHelper(path);

                ParametrosHelper parameterHelper = new ParametrosHelper();

                Parametro smdfParameter = parameterHelper.getParameterByKey("SMDF");
                Parametro sinfonParameter = parameterHelper.getParameterByKey("SINFON");

                //Preparamos la consulta
                String sSQL = "SELECT a.REG_PATR , a.NUM_AFIL, a.CURP      , a.RFC_CURP, a.NOM_ASEG, " +
                              "       a.SAL_IMSS , a.SAL_INFO, a.FEC_ALT   , a.FEC_BAJ , a.TIP_TRA , " +
                              "       a.SEM_JORD , a.PAG_INFO, a.TIP_DSC   , a.VAL_DSC , a.CVE_UBC , " +
                              "       a.TMP_NOM  , a.FEC_DSC , a.FEC_FinDsc, a.ARTI_33 , a.SAL_AR33," +
                              "       a.TRA_PENIV, a.ESTADO  , a.CVE_MUN   , b.OCUPA   , b.LUG_NAC  " +
                              "  FROM Asegura a LEFT JOIN Afiliacion b  " +
                              "    ON a.REG_PATR = b.REG_PATR AND  a.NUM_AFIL = b.NUM_AFIL " +
                              "  WHERE a.PAG_INFO <> '' " +
                              "  ORDER BY a.REG_PATR, a.NUM_AFIL ";

                DataTable dt = sua.ejecutarSQL(sSQL);

                foreach (DataRow rows in dt.Rows)
                {
                    String patronDescripcion = rows["REG_PATR"].ToString();
                    Patrone patron = new Patrone();
                    if (!patronDescripcion.Equals(""))
                    {
                        var patronTemp = from b in db.Patrones
                                         where b.registro.Equals(patronDescripcion.Trim())
                                         select b;

                        if (patronTemp != null && patronTemp.Count() > 0)
                        {
                            foreach (var patronItem in patronTemp)
                            {
                                patron = patronItem;
                                break;
                            }//Definimos los valores para la plaza
                        }
                        else
                        {
                            patron.registro = "";
                        }

                    }

                    if (!patron.registro.Trim().Equals(""))
                    {
                        Boolean bExist = false;

                        //Creamos el nuevo asegurado
                        Acreditado acreditado = new Acreditado();
                        String numAfil = rows["NUM_AFIL"].ToString().Trim();
                        String numCred = rows["PAG_INFO"].ToString().Trim();

                        //Revisamos la existencia del registro
                        var acreditadoExist = from b in db.Acreditados
                                              where b.Patrone.registro.Equals(patron.registro.Trim())
                                                && b.numeroAfiliacion.Equals(numAfil)
                                                && b.numeroCredito.Equals(numCred)
                                              select b;

                        if (acreditadoExist != null && acreditadoExist.Count() > 0)
                        {
                            foreach (var acred in acreditadoExist)
                            {
                                acreditado = acred;
                                bExist = true;
                                break;
                            }//Borramos cada registro.
                        }//Ya existen datos con este patron?

                        String tipoDescuento = rows["TIP_DSC"].ToString();

                        acreditado.PatroneId = patron.Id;
                        acreditado.Patrone = patron;
                        acreditado.numeroAfiliacion = rows["NUM_AFIL"].ToString();
                        acreditado.CURP = rows["CURP"].ToString();
                        acreditado.RFC = rows["RFC_CURP"].ToString();

                        String cliente = rows["CVE_UBC"].ToString();

                        var clienteTemp = db.Clientes.Where(b => b.claveCliente == cliente.Trim()).FirstOrDefault();
                        var clienteTemp2 = db.Clientes.Where(b => b.claveCliente.Equals("SIN CODIGO")).FirstOrDefault();

                        if (clienteTemp != null)
                        {
                            acreditado.Cliente = (Cliente)clienteTemp;
                            acreditado.clienteId = clienteTemp.Id;
                        }
                        else
                        {
                            acreditado.Cliente = (Cliente)clienteTemp2;
                            acreditado.clienteId = clienteTemp2.Id; ;

                            //Cliente clienteNuevo = new Cliente();
                            //clienteNuevo.claveCliente = cliente;
                            //clienteNuevo.rfc = "PENDIENTE";
                            //clienteNuevo.claveSua = "PENDIENTE";
                            //clienteNuevo.descripcion = "PENDIENTE";
                            //clienteNuevo.ejecutivo = "PENDIENTE";
                            //clienteNuevo.Plaza_id = 1;
                            //clienteNuevo.Grupo_id = 4;

                            //try
                            //{
                            //    db.Clientes.Add(clienteNuevo);
                            //    db.SaveChanges();
                            //    acreditado.clienteId = clienteNuevo.Id;
                            //}
                            //catch (DbEntityValidationException dbEx)
                            //{
                            //    foreach (var validationErrors in dbEx.EntityValidationErrors)
                            //    {
                            //        foreach (var validationError in validationErrors.ValidationErrors)
                            //        {
                            //            Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                            //        }
                            //    }
                            //}

                        }

                        String nombrePattern = rows["NOM_ASEG"].ToString();
                        nombrePattern = nombrePattern.Replace("$", ",");

                        string[] substrings = Regex.Split(nombrePattern, ",");

                        acreditado.nombre = substrings[2];
                        acreditado.apellidoPaterno = substrings[0];
                        acreditado.apellidoMaterno = substrings[1];
                        acreditado.nombreCompleto = substrings[0] + " " + substrings[1] + " " + substrings[2];
                        acreditado.ocupacion = rows["OCUPA"].ToString();
                        acreditado.fechaAlta = DateTime.Parse(rows["FEC_ALT"].ToString());

                        if (rows["FEC_BAJ"].ToString().Equals(""))
                        {
                            acreditado.fechaBaja = null;
                        }
                        else
                        {
                            acreditado.fechaBaja = DateTime.Parse(rows["FEC_BAJ"].ToString());
                        }//Trae fecha valida?

                        acreditado.idGrupo = "";
                        acreditado.numeroCredito = rows["PAG_INFO"].ToString();

                        if (rows["FEC_DSC"].ToString().Equals(""))
                        {
                            acreditado.fechaInicioDescuento = null;
                        }
                        else
                        {
                            acreditado.fechaInicioDescuento = DateTime.Parse(rows["FEC_DSC"].ToString());
                        }//Trae fecha valida?

                        if (rows["FEC_FinDsc"].ToString().Equals(""))
                        {
                            acreditado.fechaFinDescuento = null;
                        }
                        else
                        {
                            acreditado.fechaFinDescuento = DateTime.Parse(rows["FEC_FinDsc"].ToString());
                        }//Trae fecha valida?

                        DateTime date = DateTime.Now;

                        //Validamos que el ultimo movimiento no sea por baja o suspención.
                        if (sua.esValidoActualizarPorMovimiento(acreditado.Patrone.registro, acreditado.numeroAfiliacion))
                        {
                            //Validamos que el valor de los parametros sea mayor a cero.
                            if (sinfonParameter.valorMoneda > 0 && smdfParameter.valorMoneda > 0)
                            {

                                if (bExist) {
                                    if(acreditado.fechaUltimoCalculo != null){
                                //Validamos que se haya modificado el valor de los parametros para el calculo
                                        if (DateTime.Compare((DateTime)acreditado.fechaUltimoCalculo, smdfParameter.fechaCreacion) <= 0
                                        && DateTime.Compare((DateTime)acreditado.fechaUltimoCalculo, sinfonParameter.fechaCreacion) <= 0)
                                        {
                                            acreditado = calcularInfonavitInfo(acreditado, rows, tipoDescuento, Decimal.Parse(sinfonParameter.valorMoneda.ToString()), Decimal.Parse(smdfParameter.valorMoneda.ToString()));

                                        } //Se ha cambiado los parametros desde la ultima actualización ?
                                    }else{
                                        acreditado = calcularInfonavitInfo(acreditado, rows, tipoDescuento, Decimal.Parse(sinfonParameter.valorMoneda.ToString()), Decimal.Parse(smdfParameter.valorMoneda.ToString()));
                                    }
                                }
                                else
                                {
                                    acreditado = calcularInfonavitInfo(acreditado, rows, tipoDescuento, Decimal.Parse(sinfonParameter.valorMoneda.ToString()), Decimal.Parse(smdfParameter.valorMoneda.ToString()));
                                }
                            }//Los parametros son mayores a cero en su valor moneda ?
                        }//El movimiento es por baja o suspención ?

                        acreditado.Plaza_id = patron.Plaza_id;

                        if (!bExist)
                        {
                            acreditado.fechaCreacion = date;
                        }
                        else {
                            acreditado.fechaModificacion = date;
                        }

                        //Guardamos el asegurado
                        try
                        {
                            if (!bExist)
                            {
                                db.Acreditados.Add(acreditado);
                            }
                            else {
                                db.Entry(acreditado).State = EntityState.Modified;
                            }
                            db.SaveChanges();
                        }
                        catch (DbEntityValidationException ex)
                        {
                            StringBuilder sb = new StringBuilder();

                            foreach (var failure in ex.EntityValidationErrors)
                            {
                                sb.AppendFormat("{0} failed validation\n", failure.Entry.Entity.GetType());
                                foreach (var error in failure.ValidationErrors)
                                {
                                    sb.AppendFormat("- {0} : {1}", error.PropertyName, error.ErrorMessage);
                                    sb.AppendLine();
                                }
                            }
                        }
                    }
                }

            }
            catch (OleDbException ex)
            {
                if (ex.Source != null)
                {
                    Console.WriteLine(ex.Source);
                    isError = true;
                }
            }
            finally
            {
                if (isError)
                {
                    TempData["error"] = isError;
                    TempData["viewMessage"] = "Ocurrio un error al intentar cargar el archivo de los Acreditados";
                }
                else
                {
                    TempData["error"] = isError;
                    TempData["viewMessage"] = "Se ha realizado la actualización con exito!";
                }
                if (sua != null)
                {
                    sua.cerrarConexion();
                }
            }
        }
示例#4
0
        /**
         * Realizamos el calculo del salario diario y la fecha de entrada
         */
        private void accionesAdicionalesAsegurados(Asegurado asegurado)
        {
            int aseguradoId = asegurado.id;
            DateTime ahora = DateTime.Now;

            //obtenemos el ultimo reingreso, si existe.
            var movTemp = (from s in db.MovimientosAseguradoes
                                  .Where(s => s.aseguradoId.Equals(aseguradoId)
                                   && s.catalogoMovimiento.tipo.Equals("08"))
                                  .OrderByDescending(s => s.fechaInicio)
                           select s).FirstOrDefault();

            if (movTemp != null)
            {
                asegurado.fechaAlta = movTemp.fechaInicio;
            }

            if (asegurado.salarioDiario == null)
            {
                asegurado.salarioDiario = 0;
            }

            var movTemp2 = (from s in db.MovimientosAseguradoes
                            where s.aseguradoId.Equals(aseguradoId) &&
                                 (s.catalogoMovimiento.tipo.Equals("01") || s.catalogoMovimiento.tipo.Equals("02") ||
                                  s.catalogoMovimiento.tipo.Equals("07") || s.catalogoMovimiento.tipo.Equals("08") ||
                                  s.catalogoMovimiento.tipo.Equals("13"))
                            orderby s.fechaInicio descending
                            select s).ToList();

            MovimientosAsegurado movto = new MovimientosAsegurado();
            if (movTemp2 != null && movTemp2.Count() > 0)
            {
                foreach (var movItem in movTemp2)
                {
                    movto = movItem;
                    break;
                }

                if (movto.catalogoMovimiento.tipo.Trim().Equals("08"))
                {
                    asegurado.salarioDiario = Decimal.Parse(movto.sdi.ToString());
                    asegurado.salarioImss = Decimal.Parse(movto.sdi.ToString());
                }
                else if (movto.catalogoMovimiento.tipo.Trim().Equals("01") || movto.catalogoMovimiento.tipo.Trim().Equals("07") ||
                         movto.catalogoMovimiento.tipo.Trim().Equals("13"))
                {
                    long annos = DatesHelper.DateDiffInYears(asegurado.fechaAlta, ahora);
                    if (annos.Equals(0))
                    {
                        annos = 1;
                    }
                    Factore factor = (db.Factores.Where(x => x.anosTrabajados == annos).FirstOrDefault());
                    if (factor != null)
                    {
                        asegurado.salarioDiario = Decimal.Parse(movto.sdi.Trim()) / factor.factorIntegracion;
                        asegurado.salarioImss = Decimal.Parse(movto.sdi.ToString());
                    }
                    else
                    {
                        asegurado.salarioDiario = 0;
                    }
                }
                else if (movto.catalogoMovimiento.tipo.Trim().Equals("02"))
                {
                    asegurado.salarioDiario = 0;
                    asegurado.salarioImss = 0;

                }
            }
            else
            {
                long annos = DatesHelper.DateDiffInYears(asegurado.fechaAlta, ahora);
                if (annos.Equals(0))
                {
                    annos = 1;
                }
                Factore factor = (db.Factores.Where(x => x.anosTrabajados == annos).FirstOrDefault());
                if (factor != null)
                {
                    asegurado.salarioDiario = asegurado.salarioImss / factor.factorIntegracion;
                }
                else
                {
                    asegurado.salarioDiario = 0;
                }
            }
            if (asegurado.fechaBaja.HasValue)
            {
                asegurado.salarioDiario = 0;
                asegurado.salarioImss = 0;
            }
            db.Entry(asegurado).State = EntityState.Modified;
            db.SaveChanges();

            Acreditado acreditado = (from s in db.Acreditados
                                     where s.PatroneId == asegurado.PatroneId
                                        && s.numeroAfiliacion.Equals(asegurado.numeroAfiliacion)
                                     select s).FirstOrDefault();

            if (acreditado != null)
            {
                acreditado.fechaAlta = asegurado.fechaAlta;
                acreditado.sd = Decimal.Parse(asegurado.salarioDiario.ToString());
                acreditado.sdi = Double.Parse(asegurado.salarioImss.ToString());

                //calcular el descuento tipo uno que ocupa sdi
                DateTime date = DateTime.Now;
                Decimal valueToCalculate = Decimal.Parse(asegurado.valorDescuento.ToString());
                Decimal newValue = Decimal.Parse("0.0");

                if (asegurado.tipoDescuento.Trim().Equals("1"))
                {

                    try
                    {
                        ParametrosHelper parameterHelper = new ParametrosHelper();

                        Parametro sinfonParameter = parameterHelper.getParameterByKey("SINFON");

                        decimal sinfon = decimal.Parse(sinfonParameter.valorMoneda.ToString());
                        // Descuento tipo porcentaje
                        acreditado.cuotaFija = 0;
                        acreditado.vsm = 0;
                        acreditado.porcentaje = valueToCalculate / 100;

                        newValue = (Decimal.Parse(acreditado.sdi.ToString()) * 60);
                        newValue = newValue * (valueToCalculate / 100);
                        newValue = newValue + sinfon;

                        acreditado.descuentoBimestral = newValue;

                        acreditado.descuentoMensual = Math.Round(acreditado.descuentoBimestral / 2, 3);
                        Decimal newValue2 = acreditado.descuentoMensual * Decimal.Parse((7 / 30.4).ToString());
                        newValue2 = Math.Round(newValue2, 3);
                        acreditado.descuentoSemanal = newValue2;

                        newValue2 = acreditado.descuentoMensual * Decimal.Parse((14 / 30.4).ToString());
                        newValue2 = Math.Round(newValue2, 3);
                        acreditado.descuentoCatorcenal = newValue2;
                        acreditado.descuentoQuincenal = Math.Round(acreditado.descuentoBimestral / 4, 3);
                        acreditado.descuentoVeintiochonal = Math.Round(acreditado.descuentoMensual * Decimal.Parse((28 / 30.4).ToString()), 3);
                        acreditado.descuentoDiario = Math.Round(acreditado.descuentoBimestral / Decimal.Parse("60.1"), 3);
                        acreditado.fechaUltimoCalculo = date.Date;
                    }
                    catch (OleDbException ex)
                    {
                        if (ex.Source != null)
                        {
                            Console.WriteLine(ex.Source);
                        }
                    }
                }

                db.Entry(acreditado).State = EntityState.Modified;
                db.SaveChanges();
            }
        }