private void AddRetailRdRecords(Guid consumeListId, Guid rdId, int rdFlag, Guid invId, Guid mainUnit, Guid sTUnit, decimal exchRate, string batch, decimal num, decimal price, DXInfo.Models.CurrentStock oldCurStock) { DXInfo.Models.RdRecords rdRecords; if (string.IsNullOrEmpty(batch)) { rdRecords = uow.RdRecords.GetAll().Where(w => w.RdId == rdId && w.InvId == invId && w.Price == price).FirstOrDefault(); } else { rdRecords = uow.RdRecords.GetAll().Where(w => w.RdId == rdId && w.InvId == invId && w.Batch == batch).FirstOrDefault(); } bool isExist = true; if (rdRecords != null) { rdRecords.Num = rdRecords.Num + num; } else { isExist = false; rdRecords = new DXInfo.Models.RdRecords(); rdRecords.RdId = rdId; rdRecords.InvId = invId; rdRecords.Num = num; rdRecords.Price = price; rdRecords.Batch = batch; } rdRecords.MainUnit = mainUnit; rdRecords.STUnit = sTUnit; rdRecords.ExchRate = exchRate; rdRecords.Amount = rdRecords.Num * price; if (isShelfLife) { if (oldCurStock != null) { rdRecords.MadeDate = oldCurStock.MadeDate; rdRecords.ShelfLife = oldCurStock.ShelfLife; rdRecords.ShelfLifeType = oldCurStock.ShelfLifeType; rdRecords.InvalidDate = oldCurStock.InvalidDate; } } if (!isExist) { uow.RdRecords.Add(rdRecords); } else { uow.RdRecords.Update(rdRecords); } uow.Commit(); AddConsumeListRds(consumeListId, rdRecords.Id); }
private bool RetailUpdateCurrent(DXInfo.Models.CurrentStock oldCurStock, int rdFlag, decimal num, decimal quantity) { bool ret = true; ret = RetailUpdateCurrentStock(oldCurStock.Id, rdFlag, num, quantity); if (ret && isLocator) { ret = RetailUpdateCurrentInvLocator(oldCurStock.WhId, oldCurStock.InvId, oldCurStock.Batch, rdFlag, num, quantity); } uow.Commit(); return(ret); }
private DXInfo.Models.CurrentStock GetCurInStock(Guid rdsId) { DXInfo.Models.CurrentStock oldCurStock = null; DXInfo.Models.RdRecords rds = uow.RdRecords.GetById(g => g.Id == rdsId); if (rds != null) { DXInfo.Models.RdRecord rd = uow.RdRecord.GetById(g => g.Id == rds.RdId); if (rd != null) { if (string.IsNullOrEmpty(rds.Batch)) { oldCurStock = (from d in uow.CurrentStock.GetAll() where d.WhId == rd.WhId && d.InvId == rds.InvId && d.Batch == null orderby d.Num select d).FirstOrDefault(); } else { oldCurStock = (from d in uow.CurrentStock.GetAll() where d.WhId == rd.WhId && d.InvId == rds.InvId && d.Batch == rds.Batch orderby d.Num select d).FirstOrDefault(); } if (oldCurStock == null) { oldCurStock = new DXInfo.Models.CurrentStock(); oldCurStock.WhId = rd.WhId; oldCurStock.InvId = rds.InvId; oldCurStock.MainUnit = rds.MainUnit; oldCurStock.STUnit = rds.STUnit; oldCurStock.ExchRate = rds.ExchRate; oldCurStock.Quantity = rds.Quantity; oldCurStock.Num = rds.Num; oldCurStock.Batch = rds.Batch; oldCurStock.Price = rds.Price; oldCurStock.Amount = oldCurStock.Num * oldCurStock.Price; oldCurStock.InvalidDate = rds.InvalidDate; oldCurStock.MadeDate = rds.MadeDate; oldCurStock.ShelfLife = rds.ShelfLife; oldCurStock.ShelfLifeType = rds.ShelfLifeType; uow.CurrentStock.Add(oldCurStock); uow.Commit(); } } } return(oldCurStock); }
private bool RetailUpdateCurrentStock(Guid curStockId, int rdFlag, decimal num, decimal quantity) { DXInfo.Models.CurrentStock oldCurStock = uow.CurrentStock.GetById(g => g.Id == curStockId); if (oldCurStock == null) { return(false); } if (rdFlag == 1) { if (num > oldCurStock.Num) { return(false); } } oldCurStock.Quantity = rdFlag == 0 ? oldCurStock.Quantity + quantity : oldCurStock.Quantity - quantity; oldCurStock.Num = rdFlag == 0 ? oldCurStock.Num + num : oldCurStock.Num - num; oldCurStock.Amount = oldCurStock.Price * oldCurStock.Num; uow.CurrentStock.Update(oldCurStock); uow.Commit(); return(true); }
private DXInfo.Models.CurrentStock GetCurOutStock(Guid invId, string batch, decimal num) { DXInfo.Models.CurrentStock oldCurStock = null; if (string.IsNullOrEmpty(batch)) { oldCurStock = (from d in uow.CurrentStock.GetAll() join d1 in uow.Warehouse.GetAll() on d.WhId equals d1.Id into dd1 from dd1s in dd1.DefaultIfEmpty() where dd1s.Dept == deptId && d.InvId == invId && d.Batch == null && d.Num > num orderby d.Num select d).FirstOrDefault(); } else { oldCurStock = (from d in uow.CurrentStock.GetAll() join d1 in uow.Warehouse.GetAll() on d.WhId equals d1.Id into dd1 from dd1s in dd1.DefaultIfEmpty() where dd1s.Dept == deptId && d.InvId == invId && d.Batch == batch && d.Num > num orderby d.Num select d).FirstOrDefault(); } return(oldCurStock); }