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