public JsonResult GenerarAcumuladoEdoRes(EjercicioMesModel model) { if (ModelState.IsValid) { try { using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { _db.Database.CommandTimeout = 0; _db.EdoRes_GenerarMes(model.Ejercicio, model.Mes); //_db.SaveChanges(); } return(Json("Proceso Correctamente Finalizado")); } catch (Exception ex) { if (ex.InnerException != null) { return(Json(ex.InnerException.Message)); } else { return(Json(ex.Message)); } } } return(Json("Informacion Incompleta")); }
public JsonResult AgregarNuevaVersionFertilizantes(NuevoEjercicioModel model) { if (ModelState.IsValid) { try { using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { _db.Database.CommandTimeout = 0; _db.GenVersion_Ppto_Fertilizantes(model.VersionId, true, model.Observaciones, User.Identity.Name, model.Ejercicio, model.Consecutivo); //_db.SaveChanges(); } return(Json("El Proceso finalizo de manera correcta")); } catch (Exception ex) { if (ex.InnerException != null) { return(Json(ex.InnerException.Message)); } return(Json(ex.Message)); } } return(Json("Informacion Incompleta")); }
public JsonResult CerrarEjercicioSemillas(NuevoEjercicioModel model) { if (ModelState.IsValid) { try { using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { var versionActual = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.SEMILLAS); var _version = _db.VersionPresupuesto.Where(x => x.VersionPresupuestoId == model.VersionId).FirstOrDefault(); if (_version == null) { throw new Exception("No se encontro la version de presupuesto seleccionada"); } _version.Observaciones = model.Observaciones; if ((_version.EstaCerrado ?? false)) { throw new Exception("Esta version ya esta marcada como Ejercicio CERRADO"); } _version.EstaCerrado = true; _version.UltimaFechaCierre = DateTime.Now; _version.UsuarioIdCierre = User.Identity.Name; // SE GUARDA EL CAMBIO EN PREESTATUS PreEstatus logEstatus = new PreEstatus(); logEstatus.EmpresaId = 0; logEstatus.SucursalId = 0; logEstatus.EsActual = (versionActual == model.VersionId) ? true : false; logEstatus.Estatus = "CERRADO"; logEstatus.Fecha = DateTime.Now; logEstatus.TipoPresupuesto = (int)enumTipoDePresupuesto.SEMILLAS; logEstatus.UsuarioId = User.Identity.Name; logEstatus.VersionPresupuestoId = model.VersionId; _db.PreEstatus.Add(logEstatus); _db.SaveChanges(); } return(Json("Presupuesto de Semillas se marcó como CERRADO de manera correcta")); } catch (Exception ex) { if (ex.InnerException != null) { return(Json(ex.InnerException.Message)); } else { return(Json(ex.Message)); } } } return(Json("La Informacion es Incompleta")); }
public Tuple <bool, string[]> GenerarVersion(int verPptoId, bool generarNuevaVersion, string observaciones, int ejercicio, int consecutivo, string userName) { bool todoCorrecto = false; List <string> errores = new List <string>(); try { if (!generarNuevaVersion) { return(Tuple.Create(true, errores.ToArray())); } //var userName = HttpContext.Current.User.Identity.Name; FTPresupuestoEntities _context = (FTPresupuestoEntities)_dbContextCreator(); if (!_context.Set <Pre_GastosBase>().Where(x => x.VersionPresupuestoId == verPptoId).Any()) { return(Tuple.Create(true, errores.ToArray())); } _context.Database.CommandTimeout = 0; _context.GenVersion_Ppto_Gastos(verPptoId, generarNuevaVersion, observaciones, userName, ejercicio, consecutivo); todoCorrecto = true; } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { errores.Add(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:" , eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { errores.Add(string.Format("- Property: \"{0}\", Value: \"{1}\", Error: \"{2}\"" , ve.PropertyName, eve.Entry.CurrentValues.GetValue <object>(ve.PropertyName), ve.ErrorMessage)); } } } catch (Exception ex) { errores.Add(ex.Message); Exception _ex = ex.InnerException; while (_ex != null) { errores.Add(_ex.Message); _ex = _ex.InnerException; } } return(Tuple.Create(todoCorrecto, errores.ToArray())); }
public async Task <ActionResult> NuevaBaseEjercicioGastos() { IRepositoryWrapper _repo = new RepositoryWrapper(); var model = new NuevaBaseEjercicioModel(); model.SelectedEmpresaMes = ""; DateTime _fecha = _unitOfWork.getDateTimeFromServer(); int _versionID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.GASTOS); VersionPresupuesto _version = _unitOfWork.GetRepositoryInstance <VersionPresupuesto>().GetFirstOrDefault(_versionID); if (_version == null) { _version = new VersionPresupuesto(); _version.Consecutivo = 1; _version.Ejercicio = _fecha.Year; _version.TipoPresupuesto = (int)enumTipoDePresupuesto.GASTOS; _version.UsuarioCreacion = User.Identity.Name; _version.FechaCreacion = _fecha; } model.Ejercicio = _version.Ejercicio; model.Consecutivo = _version.Consecutivo; model.VersionId = _version.VersionPresupuestoId; model.Observaciones = _version.Observaciones; int anioActual = _fecha.Year; int mesActual = _fecha.Month; int tp = Convert.ToInt32(enumTipoDePresupuesto.GASTOS); int maxConsecutivo = 0; using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { maxConsecutivo = _db.VersionPresupuesto .Where(v => v.TipoPresupuesto == tp && v.Ejercicio == model.Ejercicio) .Select(v => v.Consecutivo) .DefaultIfEmpty(0) .Max(); } model.Consecutivo = maxConsecutivo + 1; ViewData["Empresas"] = FTPresupuestoProvider.GetAllEmpresasWithTODAS(); var listaEmpresasMeses = await _repo.Gastos.getEmpresasMesesAsync(); ViewData["EmpresasMeses"] = listaEmpresasMeses .OrderBy(x => x.Clave_Empresa).ThenByDescending(x => x.Ejercicio).ThenByDescending(x => x.Mes) .ToList(); return(View(model)); }
public Tuple <bool, string[]> ActualizarBase(short empresaId, int ejercicio, int versionProcesarID, string idTemporal) { bool todoCorrecto = false; List <string> errores = new List <string>(); try { FTPresupuestoEntities _contextDB = _dbContextCreator() as FTPresupuestoEntities; //_contextDB.Database.BeginTransaction(); _contextDB.Database.CommandTimeout = 0; _contextDB.ActualizarBase_Ppto_Semillas(0, empresaId, ejercicio, versionProcesarID, idTemporal); todoCorrecto = true; } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { errores.Add(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:" , eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { errores.Add(string.Format("- Property: \"{0}\", Value: \"{1}\", Error: \"{2}\"" , ve.PropertyName, eve.Entry.CurrentValues.GetValue <object>(ve.PropertyName), ve.ErrorMessage)); } } } catch (Exception ex) { errores.Add(ex.Message); Exception _ex = ex.InnerException; while (_ex != null) { errores.Add(_ex.Message); _ex = _ex.InnerException; } } return(Tuple.Create(todoCorrecto, errores.ToArray())); }
public JsonResult GenerarNuevoEjercicioGastos(NuevoEjercicioModel model) { if (ModelState.IsValid) { try { int versionActualID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.GASTOS); int versionPptoID = model.VersionId; // SE VALIDA QUE NO SE HAYA EJECUTADO DOS VECES EL MISMO PROCESO if (versionPptoID > 0) { if (versionActualID != versionPptoID) { return(Json("Proceso Duplicado")); } } // SE INICIALIZA LA CONEXION Y CONTEXTO DE BASE DE DATOS using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { // SE VALIDA EN CASO DE SER LA PRIMERA VERSION DEL EJERCICIO O QUE NO EXISTA UNA VERSION ANTERIOR EN EL EJERCICIO if (model.VersionId == 0) { VersionPresupuesto versionPpto = new VersionPresupuesto { Consecutivo = model.Consecutivo, Ejercicio = model.Ejercicio, FechaCreacion = _unitOfWork.getDateOnlyFromServer(), Observaciones = model.Observaciones, TipoPresupuesto = (int)enumTipoDePresupuesto.GASTOS, UsuarioCreacion = User.Identity.Name }; versionPpto = _db.VersionPresupuesto.Add(versionPpto); _db.SaveChanges(); versionPptoID = versionPpto.VersionPresupuestoId; } // CONFIGURAMOS PARA QUE EL TIEMMPO DE RESPUESTA SEA INDEFINIDO _db.Database.CommandTimeout = 0; // SE GENERA LA NUEVA VERSION. INTERNAMENTE EL SP VALIDA SI DEBE COPIAR O NO _db.GenVersion_Ppto_Gastos(model.VersionId, true, model.Observaciones, User.Identity.Name, model.Ejercicio, model.Consecutivo); //_db.GeneraNuevaVersionGastosPresupuesto(model.VersionId, true, model.Observaciones, User.Identity.Name, model.Ejercicio, model.Consecutivo); //_db.SaveChanges(); // VALIDAMOS LA VERSION DE PRESUPUESTO A PROCESAR, DEBE SER LA ULTIMA int versionProcesarID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.GASTOS); // SE EJECUTA LA CARGA DE PRESUPUESTO BASE _db.temp_ppto_gastos_G(model.EmpresaId, model.Ejercicio, versionProcesarID); } return(Json("El Proceso finalizo de manera correcta")); } catch (Exception ex) { return(Json(ex.InnerException.Message)); } //FTPresupuestoProvider.CrearNuevoEjercicioGastos(model, User.Identity.Name); //FTPresupuestoProvider.CrearNuevoEjercicioGastosLocalmente(model, User.Identity.Name); //return RedirectToAction("Gastos", "Versiones"); } return(Json("La Informacion esta Incompleta para procesar el nuevo ejercicio")); }
public ActionResult AgregarCentroCostoGastos() { var model = new PresupuestoCentroCostoViewModel(); DateTime _fecha = _unitOfWork.getDateTimeFromServer(); int _versionID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.GASTOS); VersionPresupuesto _version = _unitOfWork.GetRepositoryInstance <VersionPresupuesto>().GetFirstOrDefault(_versionID); //VerPpto _version = FTPresupuestoProvider.getVersionPresupuestoByTipo(enumTipoDePresupuesto.Gastos); model.Ejercicio = _version.Ejercicio; model.Consecutivo = _version.Consecutivo; model.VersionId = _version.VersionPresupuestoId; model.Observaciones = _version.Observaciones; int anioActual = _fecha.Year; int mesActual = _fecha.Month; if (mesActual > 9) { if (anioActual >= _version.Ejercicio) { model.Ejercicio = anioActual + 1; //model.Consecutivo = 1; //model.VersionId = 0; model.Observaciones = string.Empty; } } else { model.Ejercicio = anioActual; //model.Consecutivo = 1; //model.VersionId = 0; model.Observaciones = string.Empty; } if (anioActual == _version.Ejercicio) { if (mesActual > 9) { model.Ejercicio = anioActual + 1; //model.Consecutivo = 1; //model.VersionId = 0; model.Observaciones = string.Empty; } else { model.Ejercicio = anioActual; //model.Consecutivo = 1; //model.VersionId = 0; model.Observaciones = string.Empty; } } //if (anioActual == _version.Ejercicio && mesActual > 9) //{ // model.Ejercicio = anioActual + 1; // //model.Consecutivo = 1; // //model.VersionId = 0; // model.Observaciones = string.Empty; //} //if (anioActual > _version.Ejercicio && mesActual <= 9) //{ // model.Ejercicio = anioActual; // //model.Consecutivo = 1; // //model.VersionId = 0; // model.Observaciones = string.Empty; //} int tp = Convert.ToInt32(enumTipoDePresupuesto.GASTOS); int maxConsecutivo = 0; using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { maxConsecutivo = _db.VersionPresupuesto .Where(v => v.TipoPresupuesto == tp && v.Ejercicio == model.Ejercicio) .Select(v => v.Consecutivo) .DefaultIfEmpty(0) .Max(); } model.Consecutivo = maxConsecutivo + 1; //ViewData["Empresas"] = FTPresupuestoProvider.GetAllEmpresas(); return(View(model)); }
public JsonResult AgregarCentroDeCostoGastos(PresupuestoCentroCostoViewModel model) { if (ModelState.IsValid) { try { int versionActualID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.GASTOS); int versionPptoID = model.VersionId; // SE VALIDA QUE NO SE HAYA EJECUTADO DOS VECES EL MISMO PROCESO if (versionPptoID > 0) { if (versionActualID != versionPptoID) { return(Json("Proceso Duplicado ó ya se generó una nueva versión")); } } if (!_unitOfWork.GetRepositoryInstance <Pre_GastosBase>() .GetExists(p => p.Clave_Empresa == model.EmpresaBaseID && p.Clave_CCostos == model.CentroCostoBaseID && p.VersionPresupuestoId == model.VersionId)) { return(Json("No existen datos del centro de costo origen para agregar el nuevo Centro de Costo")); } if (_unitOfWork.GetRepositoryInstance <Pre_GastosBase>() .GetExists(p => p.Clave_Empresa == model.EmpresaID && p.Clave_CCostos == model.CentroCostoID && p.VersionPresupuestoId == model.VersionId)) { return(Json("El Centro de Costo que se desea agregar ya existe en el presupuesto actual")); } // SE INICIALIZA LA CONEXION Y CONTEXTO DE BASE DE DATOS using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { // SE VALIDA EN CASO DE SER LA PRIMERA VERSION DEL EJERCICIO O QUE NO EXISTA UNA VERSION ANTERIOR EN EL EJERCICIO if (model.VersionId == 0) { VersionPresupuesto versionPpto = new VersionPresupuesto { Consecutivo = model.Consecutivo, Ejercicio = model.Ejercicio, FechaCreacion = _unitOfWork.getDateOnlyFromServer(), Observaciones = model.Observaciones, TipoPresupuesto = (int)enumTipoDePresupuesto.GASTOS, UsuarioCreacion = User.Identity.Name }; versionPpto = _db.VersionPresupuesto.Add(versionPpto); _db.SaveChanges(); versionPptoID = versionPpto.VersionPresupuestoId; } // CONFIGURAMOS PARA QUE EL TIEMMPO DE RESPUESTA SEA INDEFINIDO _db.Database.CommandTimeout = 0; // SE GENERA LA NUEVA VERSION. INTERNAMENTE EL SP VALIDA SI DEBE COPIAR O NO _db.GenVersion_Ppto_Gastos(model.VersionId, true, model.Observaciones, User.Identity.Name, model.Ejercicio, model.Consecutivo); //_db.SaveChanges(); // VALIDAMOS LA VERSION DE PRESUPUESTO A PROCESAR, DEBE SER LA ULTIMA int versionProcesarID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.GASTOS); // SE EJECUTA AGREGAR LA SUCURSAL DESDE LA SUCURSAL BASE _db.AgregaCentroCosto_Ppto_Gastos_PS(model.EmpresaBaseID, model.CentroCostoBaseID, versionProcesarID, model.Ejercicio, model.EmpresaID, model.CentroCostoID); } return(Json("El Proceso finalizo de manera correcta")); } catch (Exception ex) { if (ex.InnerException != null) { return(Json(ex.InnerException.Message)); } else { return(Json(ex.Message)); } } } return(Json("Informacion Incompleta")); }
public ActionResult BatchEditingUpdateModel(MVCxGridViewBatchUpdateValues <PreFertilizanteBaseTotal, object> updateValues) { FTPresupuestoEntities dbContext = new FTPresupuestoEntities(); int empresaId = -1; int sucursalId = -1; string tipoClienteId = ""; int verPptoId = -1; foreach (var FertilizanteBTF in updateValues.Update) { var modelItemF = dbContext.PreFertilizanteBaseTotal.FirstOrDefault(it => it.Oid == FertilizanteBTF.Oid); empresaId = modelItemF.Clave_Empresa; sucursalId = modelItemF.Clave_Sucursal; tipoClienteId = modelItemF.Tipocliente; verPptoId = (int)modelItemF.VersionPresupuestoId; break; } var model = dbContext.PreFertilizanteBaseTotal .Where(p => p.Clave_Empresa == empresaId && p.Clave_Sucursal == sucursalId && p.Tipocliente == tipoClienteId && p.VersionPresupuestoId == verPptoId) .ToList(); #region INSERT // Insert all added values. foreach (var FertilizanteBT in updateValues.Insert) { if (updateValues.IsValid(FertilizanteBT)) { try { model.Add(FertilizanteBT); dbContext.SaveChanges(); } catch (Exception e) { updateValues.SetErrorText(FertilizanteBT, e.Message); } } } #endregion #region UPDATE // Update all edited values. if (updateValues.Update.Count > 0) { foreach (var FertilizanteBT in updateValues.Update) { if (updateValues.IsValid(FertilizanteBT)) { try { bool cambioIncTons = false; bool cambioIncMG = false; var modelItem = model.FirstOrDefault(it => it.Oid == FertilizanteBT.Oid); if (modelItem != null) { if (modelItem.PtjeIncEspecificoTons != FertilizanteBT.PtjeIncEspecificoTons) { cambioIncTons = true; } if (modelItem.PtjeIncEspecificoMG != FertilizanteBT.PtjeIncEspecificoMG) { cambioIncMG = true; } modelItem.PtjeIncEspecificoTons = FertilizanteBT.PtjeIncEspecificoTons; modelItem.PtjeIncEspecificoMG = FertilizanteBT.PtjeIncEspecificoMG; // TOMA VALORES MENSUALES Y SOBRE ESE HACE LOS CALCULOS var modelMeses = dbContext.PreFertilizanteMensual.Where(m => m.BaseTotalId == modelItem.Oid).ToList(); decimal?toneladas = 0m; decimal?ventas = 0m; decimal?margen = 0m; decimal incTons = (decimal)modelItem.PtjeIncEspecificoTons / 100m; decimal incMG = (decimal)modelItem.PtjeIncEspecificoMG / 100m; foreach (var itemMes in modelMeses) { if (!itemMes.ToneladaManual) { itemMes.Toneladas = itemMes.ToneladasBase * (1m + incTons); } itemMes.Importe = itemMes.Toneladas * itemMes.PrecioVenta; if (!itemMes.PtjeMargenManual) { if (cambioIncMG) { if (incMG != 0m) { itemMes.PtjeMargen = modelItem.PtjeIncEspecificoMG; } else { itemMes.PtjeMargen = itemMes.PtjeMargenBase; } } } itemMes.Margen = itemMes.Importe * (((decimal)itemMes.PtjeMargen) / 100m); //itemMes.Margen = itemMes.Importe * ((decimal)itemMes.PtjeMargen); switch (itemMes.Mes) { case 1: modelItem.EneImporte = itemMes.Importe; modelItem.EneMargen = itemMes.Margen; modelItem.EneTons = itemMes.Toneladas; break; case 2: modelItem.FebImporte = itemMes.Importe; modelItem.FebMargen = itemMes.Margen; modelItem.FebTons = itemMes.Toneladas; break; case 3: modelItem.MarImporte = itemMes.Importe; modelItem.MarMargen = itemMes.Margen; modelItem.MarTons = itemMes.Toneladas; break; case 4: modelItem.AbrImporte = itemMes.Importe; modelItem.AbrMargen = itemMes.Margen; modelItem.AbrTons = itemMes.Toneladas; break; case 5: modelItem.MayImporte = itemMes.Importe; modelItem.MayMargen = itemMes.Margen; modelItem.MayTons = itemMes.Toneladas; break; case 6: modelItem.JunImporte = itemMes.Importe; modelItem.JunMargen = itemMes.Margen; modelItem.JunTons = itemMes.Toneladas; break; case 7: modelItem.JulImporte = itemMes.Importe; modelItem.JulMargen = itemMes.Margen; modelItem.JulTons = itemMes.Toneladas; break; case 8: modelItem.AgoImporte = itemMes.Importe; modelItem.AgoMargen = itemMes.Margen; modelItem.AgoTons = itemMes.Toneladas; break; case 9: modelItem.SepImporte = itemMes.Importe; modelItem.SepMargen = itemMes.Margen; modelItem.SepTons = itemMes.Toneladas; break; case 10: modelItem.OctImporte = itemMes.Importe; modelItem.OctMargen = itemMes.Margen; modelItem.OctTons = itemMes.Toneladas; break; case 11: modelItem.NovImporte = itemMes.Importe; modelItem.NovMargen = itemMes.Margen; modelItem.NovTons = itemMes.Toneladas; break; case 12: modelItem.DicImporte = itemMes.Importe; modelItem.DicMargen = itemMes.Margen; modelItem.DicTons = itemMes.Toneladas; break; default: break; } toneladas += itemMes.Toneladas; ventas += itemMes.Importe; margen += itemMes.Margen; } modelItem.PresupuestoTons = toneladas; modelItem.PresupuestoVentas = ventas; modelItem.PresupuestoMargen = margen; // SE INICIALIZA A 0 EL PTJEINCRMENETOGENERALTONS PARA QUE SE SI SE CAMBIA ESE PTJE NO AFECTE EL INCREMENTO INDIVIDUAL if (cambioIncTons) { modelItem.PtjeIncGeneralTons = 0d; } // SE ACTUALIZA LA BD dbContext.SaveChanges(); } } catch (Exception e) { updateValues.SetErrorText(FertilizanteBT, e.Message); } } } } #endregion #region Delete // Delete all values that were deleted on the client side from the data source. foreach (var oID in updateValues.DeleteKeys) { try { long FertilizanteID = Convert.ToInt64(oID); var item = model.FirstOrDefault(it => it.Oid == FertilizanteID); if (item != null) { model.Remove(item); } dbContext.SaveChanges(); } catch (Exception e) { updateValues.SetErrorText(oID, e.Message); } } #endregion //var modelRecargado = FTPresupuestoProvider.GetFertilizantesBaseTotal(empresaId, sucursalId); ejercicioCerrado = FTPresupuestoProvider.getVersionPresupuestoEstatus(enumTipoDePresupuesto.FERTILIZANTES); ViewData["cerrado"] = (ejercicioCerrado ? "S" : "N"); return(PartialView("_GridViewFertilizantesPartial", model.OrderBy(x => x.Desc_Grupo).ThenBy(x => x.Desc_Familia).ToList())); }
public async Task <Tuple <bool, string[]> > ActualizarBaseAsync(NuevaBaseEjercicioModel model, string[] selectedItems, string userName) { bool todoCorrecto = false; List <string> errores = new List <string>(); try { //var userName = System.Web.HttpContext.Current.User.Identity.Name; FTPresupuestoEntities _contextDB = _dbContextCreator() as FTPresupuestoEntities; _contextDB.Database.CommandTimeout = 0; //_contextDB.Database.BeginTransaction(); // SE CREA LA TABLA TEMPORAL Y SE ACUMULAN var resultaCrear = await ValidaExistenciaTemporalAsync(); if (!resultaCrear.Item1) { throw new Exception(string.Join(Environment.NewLine, resultaCrear.Item2)); } string idTemporal = Guid.NewGuid().ToString(); foreach (string selected in selectedItems) { short pEjercicio = 0; short.TryParse(selected.Substring(0, 4), out pEjercicio); short pMes = 0; short.TryParse(selected.Substring(4, 2), out pMes); short pEmpresa = 0; short.TryParse(selected.Substring(6, 2), out pEmpresa); var resultaTmp = AgregarEnTemporal((short)model.Ejercicio, pEjercicio, pEmpresa, pMes, idTemporal); if (!resultaTmp.Item1) { throw new Exception(string.Join(Environment.NewLine, resultaTmp.Item2)); } } // SE CREA NUEVA VERSION DE PRESUPUESTO int versionPptoID = model.VersionId; if (model.VersionId == 0) { VersionPresupuesto versionPpto = new VersionPresupuesto { Consecutivo = model.Consecutivo, Ejercicio = model.Ejercicio, FechaCreacion = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day), Observaciones = model.Observaciones, TipoPresupuesto = (int)enumTipoDePresupuesto.SEMILLAS, UsuarioCreacion = userName, EstaCerrado = false }; IVersionPresupuestoRepository verPptpRepo = new VersionPresupuestoRepository(_dbContextCreator); var result = verPptpRepo.Create(versionPpto); if (!result.Item1) { throw new Exception(string.Join(Environment.NewLine, result.Item2)); } versionPptoID = versionPpto.VersionPresupuestoId; } // PROCESO PARA COPIAR VERSION DE PRESUPUESTO A NUEVA VERSION _contextDB.GenVersion_Ppto_Semillas(model.VersionId, true, model.Observaciones, userName, model.Ejercicio, model.Consecutivo); //var resultNuevaVersion = GenerarVersion(model.VersionId, true, model.Observaciones, model.Ejercicio, model.Consecutivo, userName); //if (!resultNuevaVersion.Item1) //{ // throw new Exception(string.Join(Environment.NewLine, resultNuevaVersion.Item2)); //} int versionProcesarID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.SEMILLAS); _contextDB.ActualizarBase_Ppto_Semillas(0, model.EmpresaId, model.Ejercicio, versionProcesarID, idTemporal); todoCorrecto = true; } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { errores.Add(string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:" , eve.Entry.Entity.GetType().Name, eve.Entry.State)); foreach (var ve in eve.ValidationErrors) { errores.Add(string.Format("- Property: \"{0}\", Value: \"{1}\", Error: \"{2}\"" , ve.PropertyName, eve.Entry.CurrentValues.GetValue <object>(ve.PropertyName), ve.ErrorMessage)); } } } catch (Exception ex) { errores.Add(ex.Message); Exception _ex = ex.InnerException; while (_ex != null) { errores.Add(_ex.Message); _ex = _ex.InnerException; } } return(Tuple.Create(todoCorrecto, errores.ToArray())); }
public GenericRepository(FTPresupuestoEntities DBEntity) { _DBEntity = DBEntity; _dbSet = _DBEntity.Set <Tbl_Entity>(); }
public ActionResult AplicarGastos(string ptjeGeneral, int?EmpresaID, int?SucursalID) { FTPresupuestoEntities _dbContext = new FTPresupuestoEntities(); double ptje = 0d; if (!string.IsNullOrEmpty(ptjeGeneral)) { //double.TryParse("0" + ptjeGeneral, out ptje); ptje = Convert.ToDouble(ptjeGeneral); } int empresaID = EmpresaID.HasValue ? (int)EmpresaID : -1; int sucursalID = SucursalID.HasValue ? (int)SucursalID : -1; int verPptoId = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.GASTOS); var modelList = _dbContext.Pre_GastosBase .Where(p => p.Clave_Empresa == empresaID && p.Clave_CCostos == sucursalID && p.VersionPresupuestoId == verPptoId); foreach (var modelItem in modelList) { // CALCULA EL PRESUPUESTO SOLO A LOS QUE NO TIENEN UN PTJE DE INCREMENTO ESPECIFICO if (modelItem.IncPtjeIndividual == 0d || modelItem.IncPtjeGlobal != 0d) { modelItem.IncPtjeGlobal = ptje; modelItem.IncPtjeIndividual = ptje; // TOMA VALORES MENSUALES Y SOBRE ESE HACE LOS CALCULOS var modelMeses = _dbContext.PreGastoMensual.Where(m => m.BaseTotalId == modelItem.Oid).ToList(); decimal?importe = 0m; decimal incImporte = (decimal)modelItem.IncPtjeIndividual / 100m; foreach (var itemMes in modelMeses) { if (!itemMes.MontoManual) { itemMes.Monto = itemMes.MontoBase + (itemMes.MontoBase * incImporte); } switch (itemMes.Mes) { case 1: modelItem.EneImporte = itemMes.Monto; break; case 2: modelItem.FebImporte = itemMes.Monto; break; case 3: modelItem.MarImporte = itemMes.Monto; break; case 4: modelItem.AbrImporte = itemMes.Monto; break; case 5: modelItem.MayImporte = itemMes.Monto; break; case 6: modelItem.JunImporte = itemMes.Monto; break; case 7: modelItem.JulImporte = itemMes.Monto; break; case 8: modelItem.AgoImporte = itemMes.Monto; break; case 9: modelItem.SepImporte = itemMes.Monto; break; case 10: modelItem.OctImporte = itemMes.Monto; break; case 11: modelItem.NovImporte = itemMes.Monto; break; case 12: modelItem.DicImporte = itemMes.Monto; break; default: break; } importe += itemMes.Monto; } modelItem.Monto = importe; } } // ACTUALIZA LA BD _dbContext.SaveChanges(); //var model = FTPresupuestoProvider.GetGastosBaseTotal(empresaID, sucursalID); ejercicioCerrado = FTPresupuestoProvider.getVersionPresupuestoEstatus(enumTipoDePresupuesto.GASTOS); ViewData["cerrado"] = (ejercicioCerrado ? "S" : "N"); return(PartialView("_GridGastosViewPartial", modelList.OrderBy(x => x.Desc_Area).ThenBy(x => x.NSubcuenta).ToList())); }
public ActionResult BatchEditingUpdateModel(MVCxGridViewBatchUpdateValues <Pre_GastosBase, object> updateValues) { FTPresupuestoEntities _dbContext = new FTPresupuestoEntities(); int empresaId = -1; int sucursalId = -1; int verPptoId = -1; foreach (var gastoBTF in updateValues.Update) { var modelItemF = _dbContext.Pre_GastosBase.FirstOrDefault(it => it.Oid == gastoBTF.Oid); empresaId = (int)modelItemF.Clave_Empresa; sucursalId = (int)modelItemF.Clave_CCostos; verPptoId = (int)modelItemF.VersionPresupuestoId; break; } //if (updateValues.Update.Count > 0) //{ // var modelItemValid = db.Pre_GastosBases.FirstOrDefault(mi=> mi.Oid == updateValues.Update[0].Oid); // empresaId = modelItemValid.Clave_Empresa; // sucursalId = modelItemValid.Clave_Sucursal; //} var model = _dbContext.Pre_GastosBase. Where(p => p.Clave_Empresa == empresaId && p.Clave_CCostos == sucursalId && p.VersionPresupuestoId == verPptoId) .ToList(); #region INSERT // Insert all added values. foreach (var gastoBT in updateValues.Insert) { if (updateValues.IsValid(gastoBT)) { try { model.Add(gastoBT); _dbContext.SaveChanges(); } catch (Exception e) { updateValues.SetErrorText(gastoBT, e.Message); } } } #endregion #region UPDATE // Update all edited values. if (updateValues.Update.Count > 0) { foreach (var gastoBT in updateValues.Update) { if (updateValues.IsValid(gastoBT)) { try { bool cambioInc = false; var modelItem = model.FirstOrDefault(it => it.Oid == gastoBT.Oid); if (modelItem != null) { if (modelItem.IncPtjeIndividual != gastoBT.IncPtjeIndividual) { cambioInc = true; } modelItem.IncPtjeIndividual = gastoBT.IncPtjeIndividual; // TOMA VALORES MENSUALES Y SOBRE ESE HACE LOS CALCULOS var modelMeses = _dbContext.PreGastoMensual.Where(m => m.BaseTotalId == modelItem.Oid).ToList(); decimal?importe = 0m; decimal incImporte = (decimal)modelItem.IncPtjeIndividual / 100m; foreach (var itemMes in modelMeses) { if (!itemMes.MontoManual) { itemMes.Monto = itemMes.MontoBase * (1m + incImporte); } switch (itemMes.Mes) { case 1: modelItem.EneImporte = itemMes.Monto; break; case 2: modelItem.FebImporte = itemMes.Monto; break; case 3: modelItem.MarImporte = itemMes.Monto; break; case 4: modelItem.AbrImporte = itemMes.Monto; break; case 5: modelItem.MayImporte = itemMes.Monto; break; case 6: modelItem.JunImporte = itemMes.Monto; break; case 7: modelItem.JulImporte = itemMes.Monto; break; case 8: modelItem.AgoImporte = itemMes.Monto; break; case 9: modelItem.SepImporte = itemMes.Monto; break; case 10: modelItem.OctImporte = itemMes.Monto; break; case 11: modelItem.NovImporte = itemMes.Monto; break; case 12: modelItem.DicImporte = itemMes.Monto; break; default: break; } importe += itemMes.Monto; } modelItem.Monto = importe; // SE INICIALIZA A 0 EL PTJEINCRMENETOGENERALTONS PARA QUE SE SI SE CAMBIA ESE PTJE NO AFECTE EL INCREMENTO INDIVIDUAL if (cambioInc) { modelItem.IncPtjeGlobal = 0d; } // SE ACTUALIZA LA BD _dbContext.SaveChanges(); } } catch (Exception e) { updateValues.SetErrorText(gastoBT, e.Message); } } } } #endregion #region Delete // Delete all values that were deleted on the client side from the data source. foreach (var oID in updateValues.DeleteKeys) { try { long agroquimicoID = Convert.ToInt64(oID); var item = model.FirstOrDefault(it => it.Oid == agroquimicoID); if (item != null) { model.Remove(item); } _dbContext.SaveChanges(); } catch (Exception e) { updateValues.SetErrorText(oID, e.Message); } } #endregion //var modelRecargado = FTPresupuestoProvider.GetAgroquimicosBaseTotal(empresaId, sucursalId); ejercicioCerrado = FTPresupuestoProvider.getVersionPresupuestoEstatus(enumTipoDePresupuesto.GASTOS); ViewData["cerrado"] = (ejercicioCerrado ? "S" : "N"); return(PartialView("_GridGastosViewPartial", model.OrderBy(x => x.Desc_Area).ThenBy(x => x.NSubcuenta).ToList())); }
public ActionResult NuevoEjercicioFertilizantes() { var model = new NuevoEjercicioModel(); DateTime _fecha = _unitOfWork.getDateTimeFromServer(); int _versionID = FTPresupuestoProvider.getVersionPresupuestoIdByTipo(enumTipoDePresupuesto.FERTILIZANTES); VersionPresupuesto _version = _unitOfWork.GetRepositoryInstance <VersionPresupuesto>().GetFirstOrDefault(_versionID); if (_version == null) { _version = new VersionPresupuesto(); _version.Consecutivo = 1; _version.Ejercicio = _fecha.Year; _version.TipoPresupuesto = (int)enumTipoDePresupuesto.FERTILIZANTES; _version.UsuarioCreacion = User.Identity.Name; _version.FechaCreacion = _fecha; } model.Ejercicio = _version.Ejercicio; model.Consecutivo = _version.Consecutivo; model.VersionId = _version.VersionPresupuestoId; model.Observaciones = _version.Observaciones; int anioActual = _fecha.Year; int mesActual = _fecha.Month; if (mesActual > 9) { if (anioActual >= _version.Ejercicio) { model.Ejercicio = anioActual + 1; model.Consecutivo = 1; model.VersionId = 0; model.Observaciones = string.Empty; } } else { model.Ejercicio = anioActual; //model.Consecutivo = 1; //model.VersionId = 0; model.Observaciones = string.Empty; } if (anioActual == _version.Ejercicio) { if (mesActual > 9) { model.Ejercicio = anioActual + 1; model.Consecutivo = 1; model.VersionId = 0; model.Observaciones = string.Empty; } else { model.Ejercicio = anioActual; //model.Consecutivo = 1; //model.VersionId = 0; model.Observaciones = string.Empty; } } //if (anioActual == _version.Ejercicio && mesActual > 9) //{ // model.Ejercicio = anioActual + 1; // model.Consecutivo = 1; // model.VersionId = 0; // model.Observaciones = string.Empty; //} //if (anioActual > _version.Ejercicio && mesActual <= 9) //{ // model.Ejercicio = anioActual; // model.Consecutivo = 1; // model.VersionId = 0; // model.Observaciones = string.Empty; //} int tp = Convert.ToInt32(enumTipoDePresupuesto.FERTILIZANTES); int maxConsecutivo = 0; using (FTPresupuestoEntities _db = new FTPresupuestoEntities()) { maxConsecutivo = _db.VersionPresupuesto .Where(v => v.TipoPresupuesto == tp && v.Ejercicio == model.Ejercicio) .Select(v => v.Consecutivo) .DefaultIfEmpty(0) .Max(); } model.Consecutivo = maxConsecutivo + 1; //ViewData["Empresas"] = FTPresupuestoProvider.GetAllEmpresasWithTODAS(); return(View(model)); }