public TbPrAjuste ViewModelToDomain(AjusteViewModel viewModel) { var domain = new TbPrAjuste { Id = viewModel.Id, Anulada = viewModel.Anulada, IdBodega = viewModel.IdBodega, FechaDocumento = viewModel.FechaDocumento, IdUsuario = viewModel.IdUsuario, SaldoAjuste = viewModel.SaldoAjuste, TotalEntrada = viewModel.TotalEntrada, TotalSalida = viewModel.TotalSalida, TbPrAjusteInventario = AIViewModelToDomain(viewModel.AjusteInventario), Descripcion = viewModel.Descripcion, //FechaCreacion = viewModel.FechaCreacion }; if (viewModel.Id < 1) { domain.FechaCreacion = DateTime.Now; } else { domain.FechaCreacion = viewModel.FechaCreacion; } return(domain); }
public TbPrAjuste ViewModelToDomainEditar(AjusteViewModel viewModel) { var ajuste = service.GetAjusteById((int)viewModel.Id); ajuste.Anulada = viewModel.Anulada; ajuste.IdBodega = viewModel.IdBodega; ajuste.FechaDocumento = viewModel.FechaDocumento; ajuste.IdUsuario = viewModel.IdUsuario; ajuste.SaldoAjuste = viewModel.SaldoAjuste; ajuste.TotalEntrada = viewModel.TotalEntrada; ajuste.TotalSalida = viewModel.TotalSalida; //TbPrAjusteInventario = AIViewModelToDomain(viewModel.AjusteInventario), ajuste.Descripcion = viewModel.Descripcion; return(ajuste); }
public ActionResult CrearEditarAjuste(AjusteViewModel viewModel, IList <AjusteInventarioViewModel> detalle, IList <long> eliminadas) { try { if (viewModel.Id != 0) { var ajuste = map.Update(viewModel); var ajusteKardex = map.ViewModelToDomain(map.DomainToViewModel(ajuste)); if (detalle.Count() > 0 || eliminadas.Count() > 0) { IList <TbPrAjusteInventario> ajusteInventario = new List <TbPrAjusteInventario>(); //va a contener todos los id de los detalles eliminados, actualizados y creados para despues consultarlos con todos sus datos IList <long> detallesId = new List <long>(); //va a contener solo los detalles creados IList <long> delKardex = new List <long>(); if (eliminadas.Count() > 0) { foreach (var item in eliminadas) { detallesId.Add(item); ///lista para revesar cambios en kardex //delKardex.Add(item); } } if (detalle.Count() > 0) { foreach (var item in detalle) { item.IdAjuste = ajuste.Id; if (item.Id != 0) { eliminadas.Add(item.Id); detallesId.Add(item.Id); item.Id = 0; } } ajusteInventario = map.CreateOrUpdateAI(detalle); foreach (var i in ajusteInventario) { delKardex.Add(i.Id); detallesId.Add(i.Id); } } if (detallesId.Count() > 0) { ////obtiene lineas con todos los datos para insertar en el kardex var ajusteTemp = service.GetAjusteForKardex((int)ajuste.Id, detallesId); if (detalle.Count() > 0) { ////lista sin lineas eliminadas .Where(d => idDetalles.Any(idD => idD == d.Id)).ToList(), /// ajusteKardex.TbPrAjusteInventario = ajusteTemp.TbPrAjusteInventario.Where(d => delKardex.Any(idD => idD == d.Id)).ToList(); var kardex = kardexMap.CreateKardexAM(ajusteKardex, (int)ajuste.Id); } if (eliminadas.Count() > 0) { ajusteKardex.TbPrAjusteInventario = ajusteTemp.TbPrAjusteInventario.Where(d => eliminadas.Any(id => id == d.Id)).ToList(); kardexMap.CreateKardexDeletedAM(ajusteKardex); service.DeleteAjusteInventario(eliminadas); } } } } else { viewModel.IdUsuario = int.Parse(User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier)?.Value); viewModel.FechaCreacion = DateTime.Now; var ajuste = map.Create(viewModel); foreach (var item in detalle) { item.IdAjuste = ajuste.Id; } ajuste.TbPrAjusteInventario = map.CreateOrUpdateAI(detalle); ////obtiene lineas con todos los datos para insertar en el kardex var ajusteKardex = service.GetAjusteForKardex((int)ajuste.Id, ajuste.TbPrAjusteInventario.Select(d => d.Id).ToList()); var kardex = kardexMap.CreateKardexAM(ajusteKardex, (int)ajuste.Id); } return(Json(new { success = true })); } catch (Exception ex) { AltivaLog.Log.Insertar(ex.ToString(), "Error"); throw; } }
public TbPrAjuste Update(AjusteViewModel viewModel) { return(service.Update(ViewModelToDomain(viewModel))); }
public TbPrAjuste Create(AjusteViewModel viewModel) { return(service.Save(ViewModelToDomain(viewModel))); }