public TbPrAjuste AjustarInventario(long id) { var toma = service.GetTomaByIDCompleto(id); //anula las tomas borrador para evitar duplicaion de datos service.AnularTomasBorrador(id); var detalle = CrearDetalleAjuste(toma.TbPrTomaDetalle.ToList()); double entradas = GetTotalMovimiento(detalle, true); double salidas = GetTotalMovimiento(detalle, false); var am = new TbPrAjuste { Anulada = false, Descripcion = _lb["generadoPorTF"] + " " + toma.Id, IdBodega = toma.IdBodega, IdBodegaNavigation = toma.IdBodegaNavigation, FechaCreacion = toma.FechaCreacion, IdUsuario = toma.IdUsuarioCreacion, SaldoAjuste = entradas - salidas, TbPrAjusteInventario = detalle, FechaDocumento = toma.FechaToma, TotalEntrada = entradas, TotalSalida = salidas }; return(ajusteService.Save(am)); }
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 AjusteViewModel DomainToViewModel(TbPrAjuste domain) { return(new AjusteViewModel { AjusteInventario = AIDomainToViewModel(domain.TbPrAjusteInventario), Id = domain.Id, Anulada = domain.Anulada, IdBodega = domain.IdBodega, IdUsuario = domain.IdUsuario, SaldoAjuste = domain.SaldoAjuste, TotalEntrada = domain.TotalEntrada, TotalSalida = domain.TotalSalida, Descripcion = domain.Descripcion, FechaDocumento = domain.FechaDocumento, FechaCreacion = domain.FechaCreacion }); }
private bool ExisteAjusteInventario(TbPrAjuste ajuste, int aiId) { if (ajuste != null) { var flag = false; foreach (var item in ajuste.TbPrAjusteInventario) { if (item.Id == aiId) { flag = true; break; } } return(flag); } else { return(false); } }
public bool CreateKardexAM(TbPrAjuste domain, int idAjuste) { var flag = true; //var domain = ajusteService.GetAjusteById(idAjuste); var kardex = new List <TbPrKardex>(); /////averiguar que hacer si se eliminar una linea, restar si es entrada y sumar si es salida ///debe procesar la linea eliminada y despues guardar el kardex foreach (var item in domain.TbPrAjusteInventario) { var k = new TbPrKardex(); double existencia = 0; double existenciaB = 0; if (domain.Anulada) { if (item.Movimiento) { item.Movimiento = false; } else { item.Movimiento = true; } } if (item.Movimiento) { existencia = item.IdInventarioNavigation.ExistenciaGeneral + item.Cantidad; //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad; existenciaB = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega + item.Cantidad; //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad; k.CantidadMov = item.Cantidad; } else { existencia = item.IdInventarioNavigation.ExistenciaGeneral - item.Cantidad; //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad; existenciaB = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega - item.Cantidad; //domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad; k.CantidadMov = item.Cantidad * -1; } if (existencia < 0 || existenciaB < 0) { flag = false; break; } k.CostoMov = item.TotalMovimiento; k.CostoPromedio = item.CostoPromedio; k.ExistAct = existencia; k.ExistActBod = existenciaB; k.ExistAnt = item.IdInventarioNavigation.ExistenciaGeneral; k.ExistAntBod = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega; k.Fecha = DateTime.Now; k.IdBodegaDestino = domain.IdBodega; k.IdBodegaOrigen = domain.IdBodega; k.IdDocumento = domain.Id; k.IdInventario = item.IdInventario; k.IdMoneda = 1; k.IdUsuario = domain.IdUsuario; k.Observaciones = domain.Descripcion; k.PrecioPromedio = 0;//item.CostoPromedio; k.PrecioUnit = item.CostoPromedio; k.SaldoFinal = item.CostoPromedio * existenciaB; k.TipoDocumento = "AM"; kardex.Add(k); } if (flag) { service.SaveAll(kardex); } return(flag); }
public bool CreateKardexDeletedAM(TbPrAjuste domain) { var flag = true; var kardex = new List <TbPrKardex>(); foreach (var item in domain.TbPrAjusteInventario) { var k = new TbPrKardex(); double existencia = 0; double existenciaB = 0; if (item.Movimiento) { existencia = item.IdInventarioNavigation.ExistenciaGeneral - domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad; existenciaB = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega - domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == true && i.IdInventario == item.IdInventario).Cantidad; k.CantidadMov = item.Cantidad * -1; } else { existencia = item.IdInventarioNavigation.ExistenciaGeneral + domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad; existenciaB = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega + domain.TbPrAjusteInventario.FirstOrDefault(i => i.Movimiento == false && i.IdInventario == item.IdInventario).Cantidad; k.CantidadMov = item.Cantidad; } if (existencia < 0 || existenciaB < 0) { flag = false; break; } k.CostoMov = item.TotalMovimiento; k.CostoPromedio = 0;//item.CostoPromedio; k.ExistAct = existencia; k.ExistActBod = existenciaB; k.ExistAnt = item.IdInventarioNavigation.ExistenciaGeneral; k.ExistAntBod = item.IdInventarioNavigation.TbPrInventarioBodega.FirstOrDefault(i => i.IdBodega == domain.IdBodega).ExistenciaBodega; k.Fecha = DateTime.Now; k.IdBodegaDestino = domain.IdBodega; k.IdBodegaOrigen = domain.IdBodega; k.IdDocumento = domain.Id; k.IdInventario = item.IdInventario; k.IdMoneda = 1; k.IdUsuario = domain.IdUsuario; k.Observaciones = domain.Descripcion; k.PrecioPromedio = 0; k.PrecioUnit = item.CostoPromedio; k.SaldoFinal = 0;//item.CostoPromedio * existenciaB, k.TipoDocumento = "AM"; kardex.Add(k); } if (flag) { service.SaveAll(kardex); } return(flag); }
public bool Delete(TbPrAjuste domain) { return(repository.Delete(domain)); }
public TbPrAjuste Update(TbPrAjuste domain) { return(repository.Update(domain)); }
public TbPrAjuste Save(TbPrAjuste domain) { return(repository.Save(domain)); }