public long ReturnItemSold(StoreItemSoldObject itemSold) { try { if (itemSold == null || itemSold.StoreItemStockId < 1) { return(-2); } using (var db = _db) { var soldItems = db.StoreItemSolds.Where(e => e.StoreItemStockId == itemSold.StoreItemStockId && e.SaleId == itemSold.SaleId).ToList(); if (!soldItems.Any()) { return(-2); } var myItems = db.StoreItemStocks.Where(i => i.StoreItemStockId == itemSold.StoreItemStockId).ToList(); if (!myItems.Any()) { return(-2); } var myItem = myItems[0]; var orderedItems = db.PurchaseOrderItems.Where(i => i.PurchaseOrderItemId == itemSold.PurchaseOrderItemId).ToList(); if (orderedItems.Any()) { var orderedItem = orderedItems[0]; orderedItem.QuantityInStock += itemSold.ReturnedQuantity; db.Entry(orderedItem).State = EntityState.Modified; db.SaveChanges(); } //update stock accordingly myItem.QuantityInStock += itemSold.ReturnedQuantity; myItem.TotalQuantityAlreadySold -= itemSold.ReturnedQuantity; db.Entry(myItem).State = EntityState.Modified; db.SaveChanges(); //deduct quantity of sold stock accordingly var x = soldItems[0]; x.QuantityReturned += itemSold.ReturnedQuantity; db.Entry(x).State = EntityState.Modified; db.SaveChanges(); return(itemSold.StoreItemStockId); } } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(-2); } }
public int UpdateStoreItemSold(StoreItemSoldObject itemSold) { try { return(_itemSoldRepository.UpdateStoreItemSold(itemSold)); } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(-2); } }
public long AddStoreItemSold(StoreItemSoldObject itemSoldAccount) { try { return(_itemSoldRepository.AddStoreItemSold(itemSoldAccount)); } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(0); } }
public int UpdateStoreItemSold(StoreItemSoldObject itemSold) { try { if (itemSold == null) { return(-2); } var itemSoldEntity = ModelCrossMapper.Map <StoreItemSoldObject, StoreItemSold>(itemSold); if (itemSoldEntity == null || itemSoldEntity.StoreItemSoldId < 1) { return(-2); } _repository.Update(itemSoldEntity); _uoWork.SaveChanges(); return(5); } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(-2); } }
public long AddStoreItemSold(StoreItemSoldObject itemSold) { try { if (itemSold == null) { return(-2); } var itemSoldEntity = ModelCrossMapper.Map <StoreItemSoldObject, StoreItemSold>(itemSold); if (itemSoldEntity == null || itemSoldEntity.StoreItemStockId < 1) { return(-2); } var returnStatus = _repository.Add(itemSoldEntity); _uoWork.SaveChanges(); return(returnStatus.StoreItemSoldId); } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); return(0); } }
public long ReturnItemSold(StoreItemSoldObject itemSold) { return(_storeItemStockRepository.ReturnItemSold(itemSold)); }
public StoreItemSoldObject UpdateStoreItemStock(StoreItemSoldObject itemSold, out double remainingStockVolume) { return(_storeItemStockRepository.UpdateStoreItemStock(itemSold, out remainingStockVolume)); }
public StoreItemSoldObject UpdateStoreItemStock(StoreItemSoldObject itemSold, out double remainingStockVolume) { try { if (itemSold == null) { remainingStockVolume = 0; return(new StoreItemSoldObject()); } using (var db = _db) { var itemSoldEntity = ModelCrossMapper.Map <StoreItemSoldObject, StoreItemSold>(itemSold); if (itemSoldEntity == null || itemSoldEntity.StoreItemStockId < 1) { remainingStockVolume = 0; return(new StoreItemSoldObject()); } var storeSettings = db.StoreSettings.ToList(); if (!storeSettings.Any()) { remainingStockVolume = 0; return(new StoreItemSoldObject()); } //todo: retrieve from web config //var serviceCategory = 3; var remainingVolume = 0.0; var setting = storeSettings[0]; var myItems = db.StoreItemStocks.Where(i => i.StoreItemStockId == itemSoldEntity.StoreItemStockId).Include("StoreItem").ToList(); if (!myItems.Any()) { remainingStockVolume = 0; return(new StoreItemSoldObject()); } var myItem = myItems[0]; var storeItem = myItem.StoreItem; if (itemSold.StoreItemCategoryId > 0 && itemSold.StoreItemCategoryId != storeItem.StoreItemCategoryId) { if (setting.DeductStockAtSalesPoint) { itemSoldEntity.QuantityDelivered = itemSoldEntity.QuantitySold; itemSoldEntity.QuantityBalance = 0; var orderedItems = db.PurchaseOrderItems.Where(i => i.PurchaseOrderItemId == itemSold.PurchaseOrderItemId).ToList(); if (orderedItems.Any()) { var orderedItem = orderedItems[0]; orderedItem.QuantityInStock = orderedItem.QuantityInStock - itemSoldEntity.QuantitySold; db.Entry(orderedItem).State = EntityState.Modified; db.SaveChanges(); } myItem.QuantityInStock = myItem.QuantityInStock - itemSoldEntity.QuantitySold; myItem.TotalQuantityAlreadySold += itemSoldEntity.QuantitySold; db.Entry(myItem).State = EntityState.Modified; db.SaveChanges(); remainingVolume = myItem.QuantityInStock; } else { remainingVolume = myItem.QuantityInStock; itemSoldEntity.QuantityBalance = itemSoldEntity.QuantitySold; } } var soldItem = db.StoreItemSolds.Add(itemSoldEntity); db.SaveChanges(); remainingStockVolume = remainingVolume; itemSold.StoreItemSoldId = soldItem.StoreItemSoldId; return(itemSold); } } catch (Exception ex) { ErrorLogger.LogError(ex.StackTrace, ex.Source, ex.Message); remainingStockVolume = 0; return(new StoreItemSoldObject()); } }