public PartialViewResult GetCalculoAnual(int id) { int diasPeriodo = 0; var periodoPago = Session["periodo"] as NOM_PeriodosPago; if (periodoPago != null) { diasPeriodo = periodoPago.DiasPeriodo; } ProcesoNomina prn = new ProcesoNomina(); //var nomina = prn.GetNomina(id); var nomina = ProcesoNomina.GetNominaById(id); if (nomina != null) { var model = prn.GetCalculoDetalle(id); return(PartialView(model)); } else { return(PartialView(null)); } }
public async Task <Response> ObtenerProcesoNomina([FromBody] ProcesoNomina ProcesoNomina) { try { var procesoNomina = await db.ProcesoNomina.SingleOrDefaultAsync(m => m.IdProceso == ProcesoNomina.IdProceso); if (ProcesoNomina == null) { return(new Response { IsSuccess = false, Message = Mensaje.RegistroNoEncontrado, }); } return(new Response { IsSuccess = true, Message = Mensaje.Satisfactorio, Resultado = procesoNomina, }); } catch (Exception) { return(new Response { IsSuccess = false, Message = Mensaje.Error, }); } }
public PartialViewResult GetSeguroSocial(int id) { ProcesoNomina prn = new ProcesoNomina(); var model = prn.GetDetalleSS(id); return(PartialView(model)); }
public PartialViewResult GetImpuestosDetalle(int id) { int diasPeriodo = 0; var periodoPago = Session["periodo"] as NOM_PeriodosPago; if (periodoPago != null) { diasPeriodo = periodoPago.DiasPeriodo; } ProcesoNomina prn = new ProcesoNomina(); //var nomina = prn.GetNomina(id); var nomina = ProcesoNomina.GetNominaById(id); if (nomina != null) { var model = prn.GetImpuestosDetalle(nomina, nomina.SBC, nomina.SD, nomina.TipoTarifa, diasPeriodo, periodoPago.IdTipoNomina); return(PartialView(model)); } else { return(PartialView(null)); } }
public async Task <IActionResult> Delete(string id) { try { if (string.IsNullOrEmpty(id)) { return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.ErrorCargarDatos}")); } var tipoConjuntoEliminar = new ProcesoNomina { IdProceso = Convert.ToInt32(id) }; var response = await apiServicio.EliminarAsync(tipoConjuntoEliminar, new Uri(WebApp.BaseAddress) , "api/ProcesoNomina/EliminarProcesoNomina"); if (response.IsSuccess) { return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}")); } return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.BorradoNoSatisfactorio}")); } catch (Exception) { return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.ErrorEliminar}")); } }
public async Task <JsonResult> SaveCustomData() { int idFiniquito = 0; try { string strTotal3MesesF = Request.Form["totalTresMesesF"]; string strTotal3MesesC = Request.Form["totalTresMesesC"]; idFiniquito = Convert.ToInt32(Request.Form["idFiniquito"]); double total3mesesF = Utils.ConvertToDouble(strTotal3MesesF); double total3mesesC = Utils.ConvertToDouble(strTotal3MesesC); //string[] keys = Request.Form.AllKeys; //for (int i = 0; i < keys.Length; i++) //{ //} var periodo = Session["periodo"] as NOM_PeriodosPago; idFiniquito = await ProcesoNomina.ProcesarFiniquitoTotalesPersonalizadoAsync(0, 0); //idFiniquito = await ProcesoNomina.ProcesarFiniquitoTotalesPersonalizadoAsync(periodo.IdPeriodoPago, idFiniquito); return(Json(new { strMensaje = "OK - Procesado de Finiquito", status = 1 })); } catch (Exception ex) { return(Json(new { strMensaje = ex.Message, status = 0 })); } }
public async Task <IActionResult> Edit(string id) { try { if (!string.IsNullOrEmpty(id)) { var ProcesoNomina = new ProcesoNomina { IdProceso = Convert.ToInt32(id) }; var respuesta = await apiServicio.ObtenerElementoAsync1 <Response>(ProcesoNomina, new Uri(WebApp.BaseAddress), "api/ProcesoNomina/ObtenerProcesoNomina"); if (respuesta.IsSuccess) { InicializarMensaje(null); var vista = JsonConvert.DeserializeObject <ProcesoNomina>(respuesta.Resultado.ToString()); return(View(vista)); } } return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.ErrorCargarDatos}")); } catch (Exception) { return(BadRequest()); } }
public async Task <IActionResult> Edit(ProcesoNomina ProcesoNomina) { if (!ModelState.IsValid) { return(View(ProcesoNomina)); } Response response = new Response(); try { if (ProcesoNomina.IdProceso > 0) { response = await apiServicio.EditarAsync <Response>(ProcesoNomina, new Uri(WebApp.BaseAddress), "api/ProcesoNomina/EditarProcesoNomina"); if (response.IsSuccess) { return(this.Redireccionar($"{Mensaje.Informacion}|{Mensaje.Satisfactorio}")); } this.TempData["Mensaje"] = $"{Mensaje.Error}|{response.Message}"; return(View(ProcesoNomina)); } return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.ErrorEditar}")); } catch (Exception) { return(this.Redireccionar($"{Mensaje.Error}|{Mensaje.ErrorEditar}")); } }
public async Task <FileResult> GetRecibos33(int idFiniquito = 0) { if (idFiniquito == 0) { return(null); } // int[] nominas = new[] {1,2,3,4,5,6}; //Random random = new Random(); //int randomNumber = random.Next(0, 1000);//A var ruta = Server.MapPath("~/Files/DownloadRecibos"); var idusuario = SessionHelpers.GetIdUsuario(); var periodoPago = Session["periodo"] as NOM_PeriodosPago; if (periodoPago != null) { //Genera el xml var xml = await FacturaElectronica.GenerarXMLFiniquitoSintimbre(idFiniquito, periodoPago, periodoPago.IdEjercicio, periodoPago.IdPeriodoPago, idusuario, isCfdi33 : true); //Crear el pdf con el xml generado var recibo = await ProcesoNomina.GetRecibosFiniquitoSinTimbre(idFiniquito, periodoPago, idusuario, ruta, isCfdi33 : true); var file = System.IO.File.ReadAllBytes(recibo); var nombreArchivo = periodoPago.Descripcion + ".pdf"; return(File(file, System.Net.Mime.MediaTypeNames.Application.Octet, nombreArchivo)); } else { return(null); } }
public async Task <Response> EliminarProcesoNomina([FromBody] ProcesoNomina ProcesoNomina) { try { var respuesta = await db.ProcesoNomina.Where(m => m.IdProceso == ProcesoNomina.IdProceso).FirstOrDefaultAsync(); if (respuesta == null) { return(new Response { IsSuccess = false, Message = Mensaje.RegistroNoEncontrado, }); } db.ProcesoNomina.Remove(respuesta); await db.SaveChangesAsync(); return(new Response { IsSuccess = true, Message = Mensaje.Satisfactorio, }); } catch (Exception ex) { return(new Response { IsSuccess = false, Message = Mensaje.BorradoNoSatisfactorio, }); } }
public async Task <Response> PostProcesoNomina([FromBody] ProcesoNomina ProcesoNomina) { try { if (!await Existe(ProcesoNomina)) { db.ProcesoNomina.Add(ProcesoNomina); await db.SaveChangesAsync(); return(new Response { IsSuccess = true, Message = Mensaje.Satisfactorio, Resultado = ProcesoNomina, }); } return(new Response { IsSuccess = false, Message = Mensaje.ExisteRegistro }); } catch (Exception) { return(new Response { IsSuccess = false, Message = Mensaje.Error, }); } }
public JsonResult GuardarTotalAguinaldoCustom(int idAguinaldo, decimal totalA) { ProcesoNomina prn = new ProcesoNomina(); prn.ActualizarTotalAguinaldo(idAguinaldo, totalA); return(Json(new { result = "OK - Aguinaldo" }, JsonRequestBehavior.AllowGet)); }
public JsonResult GuardarDiasCredito(int idEmpPeriodo, int diasCredito) { //Actualizar el nuevo valor ProcesoNomina prn = new ProcesoNomina(); prn.ActualizaDiasInfonavitByPeriodo(idEmpPeriodo, diasCredito); return(Json(new { result = "OK - nominas" }, JsonRequestBehavior.AllowGet)); }
public PartialViewResult Creditos() { var periodo = Session["periodo"] as NOM_PeriodosPago; ProcesoNomina prn = new ProcesoNomina(); var modeloCreditos = prn.GetCreditosEmpleadosByPeriodo(periodo.IdPeriodoPago); return(PartialView(modeloCreditos)); }
public PartialViewResult IndexAguinaldo() { var periodo = Session["periodo"] as NOM_PeriodosPago; ViewBag.Procesando = periodo.Procesando == true; ViewBag.Autorizado = periodo.Autorizado; //Obtiene las nóminas ya existentes de este periodo ProcesoNomina pn = new ProcesoNomina(); var activarComplemento = Session["activarComplemento"] as int?; ViewBag.Complemento = activarComplemento == 0 || activarComplemento == null ? false : true; //nominas = nominas.OrderBy(x => x.IdEmpleado).ToList(); //nuevo modelo //var datosNominasModelo = pn.GetNominaDatosProcesado(periodo.IdPeriodoPago); var datosNominasModelo = pn.GetNominaDatosProcesadoAguinaldo(periodo.IdPeriodoPago); if (datosNominasModelo == null) { return(PartialView(null)); } //var totalPercepciones = datosNominasModelo.Sum(x => x.Percepciones); //var totalDeducciones = datosNominasModelo.Sum(x => x.Deducciones); var totalNomina = datosNominasModelo.Sum(x => x.Total); //var totalOtrosPagos = datosNominasModelo.Sum(x => x.OtrosPagos); var zonaSalario = pn.GetZonaSalario(); //ViewBag.totalP = 0;// totalPercepciones.ToCurrencyFormat(2, true); //ViewBag.totalD = 0;// totalDeducciones.ToCurrencyFormat(2, true); ViewBag.totalN = totalNomina.ToCurrencyFormat(2, true); ViewBag.SMGV = zonaSalario.SMG.ToCurrencyFormat(2, true); ViewBag.UMA = zonaSalario.UMA.ToCurrencyFormat(2, true); ViewBag.SoloComplemento = periodo.SoloComplemento; List <NotificationSummary> listSummary = new List <NotificationSummary>(); if (TempData["summary"] != null) { listSummary = TempData["summary"] as List <NotificationSummary>; } ViewBag.Summary = listSummary; int i = 0; int j = 0; int idUsuario = SessionHelpers.GetIdUsuario(); return(PartialView(datosNominasModelo)); }
private async Task <bool> Existe(ProcesoNomina ProcesoNomina) { var bdd = ProcesoNomina.Codigo.ToUpper().TrimEnd().TrimStart(); var ProcesoNominarespuesta = await db.ProcesoNomina.Where(p => p.Codigo.ToUpper().TrimStart().TrimEnd() == bdd).FirstOrDefaultAsync(); if (ProcesoNominarespuesta == null || ProcesoNominarespuesta.IdProceso == ProcesoNomina.IdProceso) { return(false); } else { return(true); } }
public ActionResult DetalleAguinaldo(int id) { ProcesoNomina prn = new ProcesoNomina(); RH.BLL.Empleados emp = new Empleados(); var modelo = prn.GetAguinaldoByIdAguinaldo(id); var itemEmpleado = emp.GetEmpleadoById(modelo.IdEmpleado); ViewBag.Empleado = itemEmpleado; return(PartialView(modelo)); }
public async Task <JsonResult> finiquito(int idEmpleado, int idFiniquito, ParametrosFiniquitos arrayF, bool calcularLiquidacion) { finiquitosClass finiq = new finiquitosClass(); var periodo = Session["periodo"] as NOM_PeriodosPago; //idFiniquito = await finiquitosClass.ProcesarFiniquitoAsync(periodo, idEmpleado, false); idFiniquito = await ProcesoNomina.ProcesarFiniquitoIndemnizacionAsync(periodo.IdPeriodoPago, periodo.IdEjercicio, idEmpleado, periodo.IdSucursal, arrayF, calcularLiquidacion); //var fin = finiq.FiniquitoFiscal(periodo.IdPeriodoPago); ViewBag.esLiquidacion = calcularLiquidacion; return(Json(new { status = "OK - Fin Procesado de nominas", idFiniquito = idFiniquito })); }
public JsonResult GuardarConceptosVO(int[] visibles, int[] ocultos) { var ctx = new ProcesoNomina(); var mensaje = ""; var periodo = Session["periodo"] as NOM_PeriodosPago; int idUsuario = SessionHelpers.GetIdUsuario(); var result = ctx.GuardarConfiguracion(idUsuario, periodo.IdSucursal, visibles, ocultos, 18); if (result == true) { mensaje = "mensaje guardado"; } return(Json(new { message = mensaje }, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> finiquito(int idEmpleado, int idFiniquito, ParametrosFiniquitos arrayF, bool calcularLiquidacion, bool paramArt174) { //finiquitosClass finiq = new finiquitosClass(); var periodo = Session["periodo"] as NOM_PeriodosPago; var sucursal = Session["sucursal"] as SucursalDatos; //idFiniquito = await finiquitosClass.ProcesarFiniquitoAsync(periodo, idEmpleado, false); int idUsuario = SessionHelpers.GetIdUsuario(); idFiniquito = await ProcesoNomina.ProcesarFiniquitoIndemnizacionAsync(periodo.IdPeriodoPago, periodo.IdEjercicio, idEmpleado, sucursal.IdCliente, periodo.IdSucursal, arrayF, idUsuario, calcularLiquidacion, null, isArt174 : paramArt174); //var fin = finiq.FiniquitoFiscal(periodo.IdPeriodoPago); ViewBag.esLiquidacion = calcularLiquidacion; return(Json(new { status = "OK - Fin Procesado de nominas", idFiniquito = idFiniquito })); }
public PartialViewResult DetalleNomina(int id) { ProcesoNomina prn = new ProcesoNomina(); var nomina = prn.GetNomina(id); ViewBag.Nomina = nomina; var detalle = prn.GetDetalleNomina(id); var activarComplemento = Session["activarComplemento"] as int?; if (activarComplemento == 0) { detalle = detalle.Where(x => x.Complemento != true).ToList(); } ViewBag.ModoComplemento = activarComplemento == 1 ? true : false; return(PartialView(detalle)); }
public async Task <Response> EditarProcesoNomina([FromBody] ProcesoNomina ProcesoNomina) { try { if (await Existe(ProcesoNomina)) { return(new Response { IsSuccess = false, Message = Mensaje.ExisteRegistro, }); } var ProcesoNominaActualizar = await db.ProcesoNomina.Where(x => x.IdProceso == ProcesoNomina.IdProceso).FirstOrDefaultAsync(); if (ProcesoNominaActualizar == null) { return(new Response { IsSuccess = false, }); } ProcesoNominaActualizar.Codigo = ProcesoNomina.Codigo; ProcesoNominaActualizar.Descripcion = ProcesoNomina.Descripcion; db.ProcesoNomina.Update(ProcesoNominaActualizar); await db.SaveChangesAsync(); return(new Response { IsSuccess = true, Resultado = ProcesoNominaActualizar }); } catch (Exception) { return(new Response { IsSuccess = false, Message = Mensaje.Excepcion }); } }
public async Task <FileResult> GetRecibos(int[] idNominas = null) { try { if (idNominas == null) { return(null); } Random random = new Random(); int randomNumber = random.Next(0, 1000);//A var ruta = Server.MapPath("~/Files/DownloadRecibos"); var idusuario = SessionHelpers.GetIdUsuario(); var periodoPago = Session["periodo"] as NOM_PeriodosPago; if (periodoPago != null) { //Genera el xml var xml = await FacturaElectronica.GenerarXMLSintimbre(idNominas, periodoPago, periodoPago.IdEjercicio, periodoPago.IdPeriodoPago, idusuario); //Crear el pdf con el xml generado var recibo = await ProcesoNomina.GetRecibosSinTimbre(idNominas, periodoPago, idusuario, ruta); var file = System.IO.File.ReadAllBytes(recibo); var nombreArchivo = periodoPago.Descripcion + ".pdf"; return(File(file, System.Net.Mime.MediaTypeNames.Application.Octet, nombreArchivo)); } else { return(null); } } catch (Exception) { return(null); } finally { } }
public async Task <FileResult> GetRecibosComplemento(int[] idEmpleados = null) { try { if (idEmpleados == null) { return(null); } // int[] nominas = new[] {1,2,3,4,5,6}; Random random = new Random(); // int randomNumber = random.Next(0, 1000);//A var ruta = Server.MapPath("~/Files/DownloadRecibos"); var idusuario = SessionHelpers.GetIdUsuario(); var periodoPago = Session["periodo"] as NOM_PeriodosPago; if (periodoPago != null) { //Crear el pdf con el xml generado var recibo = await ProcesoNomina.GetRecibosComplementoDetalle(idEmpleados, periodoPago, idusuario, ruta); var file = System.IO.File.ReadAllBytes(recibo); var nombreArchivo = "COMP_" + periodoPago.Descripcion + ".pdf"; return(File(file, System.Net.Mime.MediaTypeNames.Application.Octet, nombreArchivo)); } else { return(null); } } catch (Exception) { return(null); } finally { } }
public async Task <JsonResult> ProcesarAguinaldo(int[] empleados, string[] faltas, bool[] generarPensionAlimenticia, bool anual = false) { //Validar que la Sesion del periodo este activa if (Session["periodo"] != null) { var periodoPago = Session["periodo"] as NOM_PeriodosPago; //Actualizar los datos del periodo en la variable de session PeriodosPago ctx = new PeriodosPago(); var periodoActualizado = ctx.GetPeriodoPagoById(periodoPago.IdPeriodoPago); Session["periodo"] = periodoActualizado; //Validar que el periodo no este Autorizado if (periodoActualizado.Autorizado) { return(Json(new { status = "El periodo ya esta Autorizado, no se puede volver a procesar" }, JsonRequestBehavior.AllowGet)); } if (periodoActualizado.Procesando) { return(Json(new { status = "El periodo esta siendo procesado en este momento ... Favor de Esperar... " }, JsonRequestBehavior.AllowGet)); } var sucursal = Session["sucursal"] as SucursalDatos; //INICIA EL PROCESADO DE LA NOMINA if (sucursal != null) { var summary = await ProcesoNomina.ProcesarAguinaldoAsync(empleados, faltas, generarPensionAlimenticia, periodoActualizado.IdPeriodoPago, sucursal.IdCliente, sucursal.IdSucursal, SessionHelpers.GetIdUsuario(), anual); if (summary != null) { TempData["summary"] = summary; } } } return(Json(new { status = "OK - nominas" }, JsonRequestBehavior.AllowGet)); }
// GET: PrimaVacacional public ActionResult Index() { int idUsuario = SessionHelpers.GetIdUsuario(); var periodo = Session["periodo"] as NOM_PeriodosPago; var sucursal = Session["sucursal"] as SucursalDatos; PrimaVacacionalModulo pv = new PrimaVacacionalModulo(); var listaPrima = pv.GetDatosPrimasByPeriodo(periodo.IdPeriodoPago); //get SM ProcesoNomina pn = new ProcesoNomina(); var zonaSalario = pn.GetZonaSalario(); //get ISN var isnValor = pn.GetParametrosConfig("ISN"); ViewBag.IsnValor = isnValor.ValorDecimal; ViewBag.SmValor = zonaSalario.SMG; return(PartialView(listaPrima)); }
public async Task <JsonResult> SaveCustomData() { int idFiniquito = 0; int idEmpleado = 0; bool esLiquidacion = false; bool isArt174 = false; ParametrosFiniquitos arrayF = null; try { string strTotal3MesesF = Request.Form["totalTresMesesF"]; string strTotal3MesesC = Request.Form["totalTresMesesC"]; string strTotal20DiasF = Request.Form["totalVeinteF"]; string strTotal20DiasC = Request.Form["totalVeinteC"]; string strTotalPrimaF = Request.Form["totalPrimaF"]; string strTotalPrimaC = Request.Form["totalPrimaC"]; idFiniquito = Convert.ToInt32(Request.Form["idFiniquito"]); idEmpleado = Convert.ToInt32(Request.Form["idEmpleado"]); esLiquidacion = Convert.ToBoolean(Request.Form["esLiquidacion"]); isArt174 = Convert.ToBoolean(Request.Form["esArt174"]); string strTotalPrimaVacF = Request.Form["totalPrimaVacacionesF"]; string strTotalPrimaVacC = Request.Form["totalPrimaVacacionesC"]; if (idFiniquito <= 0) { return(Json(new { strMensaje = "Es necesario procesar el finiquito para generar sus datos.", status = 1 })); } //if es null o vacio retorna -1 decimal total3mesesF = Utils.ConvertToDecimal(strTotal3MesesF); decimal total3mesesC = Utils.ConvertToDecimal(strTotal3MesesC); decimal total20DiasF = Utils.ConvertToDecimal(strTotal20DiasF); decimal total20DiasC = Utils.ConvertToDecimal(strTotal20DiasC); decimal totalPrimaF = Utils.ConvertToDecimal(strTotalPrimaF); decimal totalPrimaC = Utils.ConvertToDecimal(strTotalPrimaC); decimal totalPrimaVacF = Utils.ConvertToDecimal(strTotalPrimaVacF); decimal totalPrimaVacC = Utils.ConvertToDecimal(strTotalPrimaVacC); //string[] keys = Request.Form.AllKeys; //for (int i = 0; i < keys.Length; i++) //{ //} //Validar el finiquito guardado si existen cambios en sus totales antes de volver a procesar var periodo = Session["periodo"] as NOM_PeriodosPago; var sucursal = Session["sucursal"] as SucursalDatos; int idUsuario = SessionHelpers.GetIdUsuario(); TotalPersonalizablesFiniquitos customTotal = new TotalPersonalizablesFiniquitos(); customTotal.TotalTresMesesFiscalPersonalizado = total3mesesF; customTotal.TotalTresMesesCompPersonalizado = total3mesesC; customTotal.TotalVeinteDiasFiscalPersonalizado = total20DiasF; customTotal.TotalVienteDiasCompPersonalizado = total20DiasC; customTotal.TotalPrimaFiscalPersonalizado = totalPrimaF; customTotal.TotalPrimaCompPersonalizado = totalPrimaC; customTotal.TotalPrimaVacPersonalizado = totalPrimaVacF; customTotal.TotalPrimaVacCompPersonalizado = totalPrimaVacC; ParametrosFiniquitos arrayFF = new ParametrosFiniquitos(); arrayFF.FechaBajaF = Convert.ToDateTime(Request.Form["fechaBaja"]); arrayFF.FechaAltaF = Convert.ToDateTime(Request.Form["fechaAltaF"]); arrayFF.FechaAguinaldoF = Convert.ToDateTime(Request.Form["fechaAguinaldoF"]); arrayFF.FechaVacacionesF = Convert.ToDateTime(Request.Form["fechaVacacionesF"]); arrayFF.FechaAguinaldoC = Convert.ToDateTime(Request.Form["fechaAguinaldo"]); arrayFF.FechaVacacionesC = Convert.ToDateTime(Request.Form["fechaVacaciones"]); arrayFF.DiasSueldoPendientesF = Utils.ConvertToDecimal(Request.Form["diasSueldoPendienteF"].ToString()); arrayFF.DiasVacacionesPendientesF = Utils.ConvertToDecimal(Request.Form["diasVacacionesPendientesF"]); arrayFF.DiasSueldoPendientesC = Utils.ConvertToDecimal(Request.Form["diasSueldoPendiente"]); arrayFF.DiasVacacionesPendientesC = Utils.ConvertToDecimal(Request.Form["diasVacacionesPendientes"]); arrayFF.MesesSalarioF = Utils.ConvertToDecimal(Request.Form["mesesSalarioF"]); arrayFF.MesesSalarioC = Utils.ConvertToDecimal(Request.Form["mesesSalarioC"]); arrayFF.VeinteDiasPorAF = Utils.ConvertToDecimal(Request.Form["veinteXAF"]); arrayFF.VeinteDiasPorAC = Utils.ConvertToDecimal(Request.Form["veinteXAC"]); arrayFF.DiasVacCorrespondientesF = Utils.ConvertToInt(Request.Form["diasVacacionesF"]); arrayFF.DiasVacCorrespondientesC = Utils.ConvertToInt(Request.Form["diasVacacionesC"]); arrayFF.PorcentajePimaVacPendienteF = Utils.ConvertToDecimal(Request.Form["primaVacacionalPendienteF"]); arrayFF.PorcentajePimaVacPendienteC = Utils.ConvertToDecimal(Request.Form["primaVacacionalPendienteC"]); arrayFF.TipoTarifa = Utils.ConvertToInt(Request.Form["selectTarifa"]); arrayFF.DiasAguinaldoF = Utils.ConvertToInt(Request.Form["diasAguinaldoF"]); arrayFF.DiasAguinaldoC = Utils.ConvertToInt(Request.Form["diasAguinaldoC"]); idFiniquito = await ProcesoNomina.ProcesarFiniquitoIndemnizacionAsync(periodo.IdPeriodoPago, periodo.IdEjercicio, idEmpleado, sucursal.IdCliente, periodo.IdSucursal, arrayFF, idUsuario, esLiquidacion, customTotal, isArt174); return(Json(new { strMensaje = "OK - Procesado de Finiquito", status = 1 })); } catch (Exception ex) { return(Json(new { strMensaje = ex.Message, status = 0 })); } }
// GET: ProcesoNomina public PartialViewResult Index() { var periodo = Session["periodo"] as NOM_PeriodosPago; ViewBag.Procesando = periodo.Procesando == true; ViewBag.Autorizado = periodo.Autorizado; //Obtiene las nóminas ya existentes de este periodo ProcesoNomina pn = new ProcesoNomina(); var activarComplemento = Session["activarComplemento"] as int?; ViewBag.Complemento = activarComplemento == 0 || activarComplemento == null ? false : true; //nominas = nominas.OrderBy(x => x.IdEmpleado).ToList(); //nuevo modelo var datosNominasModelo = pn.GetNominaDatosProcesado(periodo.IdPeriodoPago); if (datosNominasModelo == null) { return(PartialView(null)); } var totalPercepciones = datosNominasModelo.Sum(x => x.Percepciones); var totalDeducciones = datosNominasModelo.Sum(x => x.Deducciones); var totalNomina = datosNominasModelo.Sum(x => x.TotalNomina); var totalOtrosPagos = datosNominasModelo.Sum(x => x.OtrosPagos); var zonaSalario = pn.GetZonaSalario(); ViewBag.totalP = totalPercepciones.ToCurrencyFormat(2, true); ViewBag.totalD = totalDeducciones.ToCurrencyFormat(2, true); ViewBag.totalN = totalNomina.ToCurrencyFormat(2, true); ViewBag.SMGV = zonaSalario.SMG.ToCurrencyFormat(2, true); ViewBag.UMA = zonaSalario.UMA.ToCurrencyFormat(2, true); ViewBag.SoloComplemento = periodo.SoloComplemento; List <NotificationSummary> listSummary = new List <NotificationSummary>(); if (TempData["summary"] != null) { listSummary = TempData["summary"] as List <NotificationSummary>; } ViewBag.Summary = listSummary; int i = 0; int j = 0; int idUsuario = SessionHelpers.GetIdUsuario(); if (!periodo.SoloComplemento) { #region CONFIGURACION DE CONCEPTOS var configuracion = pn.ObtenerConfiguracion(idUsuario, periodo.IdSucursal, 18); if (configuracion != null) { var visible = configuracion.ConceptosVisibles.Split(','); var oculto = configuracion.ConceptosOcultos.Split(','); int[] arrayVisible = new int[visible.Length]; int[] arrayOculto = new int[oculto.Length]; foreach (var v in visible) { arrayVisible[i] = Convert.ToInt32(v); i++; } foreach (var o in oculto) { arrayOculto[j] = Convert.ToInt32(o); j++; } if (arrayVisible.Contains(8)) { } ViewBag.visible = arrayVisible; ViewBag.oculto = arrayOculto; } else { if (datosNominasModelo.Count > 0) { var variable = datosNominasModelo[0]; int[] arrayVisible = new int[variable.Conceptos.Count]; int[] arrayOculto = { }; arrayVisible = variable.Conceptos.Select(x => x.IdConcepto).ToArray(); ViewBag.visible = arrayVisible; ViewBag.oculto = arrayOculto; } } #endregion } return(PartialView(datosNominasModelo)); }