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; }
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"); }
/** * 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(); } } }
/** * 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(); } }