public async Task <ActionResult> CboDepartamentosAgregarUnidadPartial() { short deptoId = -1; if (Request.Params["DeptoGrid"] != null) { short.TryParse("0" + Request.Params["DeptoGrid"], out deptoId); } //ViewData["deptoId"] = deptoId.ToString(); IRepositoryWrapper _repo = new RepositoryWrapper(); var listado = await _repo.CatDepartamentos.GetDepartamentosAsync(); ViewBag.Departamentos = listado; if (deptoId > -1) { var model = new CatUnidadViewModel { DepartamentoId = deptoId }; return(PartialView("_CboDepartamentosAgregarUnidadPartial", model)); } else { return(PartialView("_CboDepartamentosAgregarUnidadPartial")); } //ViewData["DeptoItems"] = listado.OrderBy(e => e.Descripcion); //var model = new CatUnidadViewModel { DepartamentoId = deptoId }; //return PartialView("_CboDepartamentosFormUnidadPartial", listado.OrderBy(e => e.Descripcion).ToList()); }
public async Task <ActionResult> EditarUnidad(string Id) { int clave = 0; int.TryParse("0" + Id, out clave); IRepositoryWrapper _repo = new RepositoryWrapper(); var unidad = await _repo.CatDetalle.FindAsync(clave); if (unidad == null) { return(RedirectToAction("Unidades", "Catalogos")); } var catConcepto = await _repo.CatConceptoGasto.FindAsync(unidad.ClaveContable); if (catConcepto == null) { catConcepto = new Pre_CatConceptoGasto(); } var model = new CatUnidadViewModel { Id = unidad.Oid, Clave = unidad.Clave, DepartamentoId = unidad.DepartamentoId, Descripcion = unidad.Descripcion, EmpresaId = catConcepto.EmpresaId, AreaId = catConcepto.AreaId, DescripcionContable = catConcepto.Descripcion, SSCuentaId = catConcepto.SSCuenta, //Convert.ToInt16(catConcepto.SSCuenta), SubCuentaId = catConcepto.SubCuenta, //Convert.ToInt16(catConcepto.SubCuenta), TipoDetalle = unidad.TipoDetalle }; ViewBag.Departamentos = await _repo.CatDepartamentos.GetDepartamentosAsync(); ViewBag.Empresas = await _repo.CatDetalle.GetEmpresasAsync(); ViewBag.Areas = await _repo.CatDetalle.GetAreasAsync(); ViewBag.SubCuentas = await _repo.CatDetalle.GetSubCuentasAsync(); ViewBag.SSCuentas = await _repo.CatDetalle.GetSSCuentasAsync(model.EmpresaId, model.AreaId, model.SubCuentaId); ViewBag.TiposDetalle = await _repo.Configuracion.GetTiposDetalleListItemAsync(); return(View(model)); }
public async Task <ActionResult> EditarUnidad(CatUnidadViewModel model) { IRepositoryWrapper _repo = new RepositoryWrapper(); ViewBag.Departamentos = await _repo.CatDepartamentos.GetDepartamentosAsync(); ViewBag.Empresas = await _repo.CatDetalle.GetEmpresasAsync(); ViewBag.Areas = await _repo.CatDetalle.GetAreasAsync(); ViewBag.SubCuentas = await _repo.CatDetalle.GetSubCuentasAsync(); ViewBag.SSCuentas = await _repo.CatDetalle.GetSSCuentasAsync(model.EmpresaId, model.AreaId, model.SubCuentaId); if (ModelState.IsValid) { ViewBag.TiposDetalle = await _repo.Configuracion.GetTiposDetalleListItemAsync(); if (_repo.CatDetalle.Exists(x => x.DepartamentoId == model.DepartamentoId && (x.Descripcion.Trim().ToUpper() == model.Descripcion.Trim().ToUpper() || x.Clave.Trim().ToUpper() == model.Clave.Trim().ToUpper()) && x.Oid != model.Id)) { //throw new Exception("La clave o descripcion de la unidad o persona ya existe en el catalogo"); ViewBag.ErrorMessage = "La clave o descripcion de la unidad o persona ya existe en el catalogo para el departamento seleccionado"; return(View(model)); } // VALIDAR SI CAMBIO EL DEPARTAMENTO var _detPaso = _repo.CatDetalle.Find(model.Id); if (_detPaso != null) { if (_detPaso.DepartamentoId != model.DepartamentoId) { if (_repo.GastoDetalle.Exists(x => x.DepartamentoId == _detPaso.DepartamentoId && x.UnidadId == model.Id)) { var porDepto = await _repo.GastoDepartamento.FindByFilterAsync(x => x.DepartamentoId == _detPaso.DepartamentoId); var detMensual = await _repo.GastoDetalle.GetDataAsync(x => x.DepartamentoId == _detPaso.DepartamentoId && x.UnidadId == model.Id); decimal montoTotal = 0m; foreach (var item in detMensual) { montoTotal += item.Monto; } if (montoTotal != 0m) { ViewBag.ErrorMessage = "La unidad o persona ya tiene importes capturados en el departamento anterior, no se puede cambiar." + Environment.NewLine + "Es necesario Cambiar los importes capturados a cero para poder hacer el cambio"; return(View(model)); } var listaBorrar = detMensual.ToList(); foreach (var item in listaBorrar) { _repo.GastoDetalle.Remove(item); } var detUnidad = await _repo.GastoUnidad.GetDataAsync(x => x.DepartamentoId == _detPaso.DepartamentoId && x.UnidadId == model.Id); var listaUnidadBorrar = detUnidad.ToList(); foreach (var item in listaUnidadBorrar) { _repo.GastoUnidad.Remove(item); } } } } // VALIDAMOS SI EXISTE UN CONCEPTO CON LOS DATOS CONTABLES PARA DARLO DE ALTA EN SU CASO var _concepto = _repo.CatConceptoGasto .FindByFilter(x => x.AreaId == model.AreaId && x.SubCuenta == model.SubCuentaId && x.SSCuenta == model.SSCuentaId && x.EmpresaId == model.EmpresaId); string descripcionContable = ""; if (_concepto == null) { var ssCuentas = _repo.CatDetalle.GetSSCuentas(model.EmpresaId, model.AreaId, model.SubCuentaId).ToList(); descripcionContable = ssCuentas.Where(x => x.ID == model.SSCuentaId) .Select(x => x.Name).DefaultIfEmpty("").FirstOrDefault(); _concepto = new Pre_CatConceptoGasto { AreaId = model.AreaId, Descripcion = descripcionContable, EmpresaId = model.EmpresaId, SSCuenta = model.SSCuentaId, SubCuenta = model.SubCuentaId }; var resultConcepto = _repo.CatConceptoGasto.AddUpdate(_concepto); if (!resultConcepto.Item1) { ViewBag.ErrorMessage = string.Join(Environment.NewLine, resultConcepto.Item2); return(View(model)); //throw new Exception(string.Join(Environment.NewLine, resultConcepto.Item2)); } } Pre_CatDetalle unidad = new Pre_CatDetalle { Oid = model.Id, Descripcion = model.Descripcion, Clave = model.Clave, DepartamentoId = model.DepartamentoId, ClaveContable = _concepto.Oid, DescripcionContable = _concepto.Descripcion, TipoDetalle = model.TipoDetalle }; var result = await _repo.CatDetalle.AddUpdateAsync(unidad); if (!result.Item1) { ViewBag.ErrorMessage = string.Join(Environment.NewLine, result.Item2); return(View(model)); } // ELIMINAR EL DEPARTAMENTO ACTUAL var resulBorrar = await _repo.CatDetalle.DeleteAsync(_detPaso); if (!resulBorrar.Item1) { ViewBag.ErrorMessage = string.Join(Environment.NewLine, resulBorrar.Item2); return(View(model)); } return(RedirectToAction("Unidades", "Catalogos")); } else { ViewBag.ErrorMessage = "La información esta incompleta"; } return(View(model)); }