public async Task <bool> Modify(StockHistoryDetail _model) { _model.UpdatedUser = scopeContext.UserCode; _model.UpdatedDate = DateTime.Now; context.Update(_model); await context.SaveChangesAsync(); return(true); }
public async Task <int> Add(StockHistoryDetail _model) { _model.CreatedUser = scopeContext.UserCode; _model.CreatedDate = DateTime.Now; context.Add(_model); await context.SaveChangesAsync(); return(_model.Id); }
private StockDetail MapToStockDetail(StockPriceDetail priceDetail, StockHistoryDetail historyDetail, StockIndicatorDetail indicatorDetail) { return(new StockDetail { Id = priceDetail.Id.ToString(), Name = priceDetail.Name, Price = priceDetail.Lastprice ?? 0, Market = priceDetail.Market, MarketplaceCountry = priceDetail.MarketplaceCountry, Country = priceDetail.Country, DividendYield = indicatorDetail.Dividendyield ?? 0, DividendPerShare = indicatorDetail.Dividend ?? 0, PricePerEarning = indicatorDetail.PricePerEarnings ?? 0, PricePerSales = indicatorDetail.PricePerSales ?? 0, EarningsPerShare = indicatorDetail.EarningPerShare ?? 0, YieldOneMonth = historyDetail.Diff1Mprc ?? 0, YieldThreeMonths = historyDetail.Diff3Mprc ?? 0, YieldSixMonths = historyDetail.Diff6Mprc ?? 0, YieldOneYear = historyDetail.Diff1Yprc ?? 0 }); }
public async Task <int> CuringLivestock(FeedingLivestockModel _model) { if (_model.FishPondWarehouseId <= 0) { scopeContext.AddError("Chưa chọn ao rải thuốc"); return(0); } // dữ liệu ao var thisFishPond = await svcFishPond.GetByWarehouseId(_model.FishPondWarehouseId); if (thisFishPond == null) { scopeContext.AddError("Lỗi dữ liệu kho-ao " + _model.FishPondWarehouseId); return(0); } // đợt nuôi var thisFarmingSeason = await svcFarmingSeason.GetByFishPondId(thisFishPond.Id); if (thisFarmingSeason == null) { scopeContext.AddError("Ao này chưa vào đợt nuôi"); return(0); } // dữ liệu kho-ao var thisFishPondWarehouse = await svcWarehouse.GetDetail(_model.FishPondWarehouseId); if (thisFishPondWarehouse == null || thisFishPondWarehouse.DefaultWarehouseId <= 0) { scopeContext.AddError("Lỗi dữ liệu kho mặc định cho ao"); return(0); } _model.FeedDate = _model.FeedDate.GetValueOrDefault(DateTime.UtcNow); // bắt đầu tạo phiếu using (var transaction = context.Database.BeginTransaction()) { try { // Phiếu xuất kho mặc định StockIssueDocket issueDocket = new StockIssueDocket(); issueDocket.CustomerId = _model.FishPondWarehouseId; issueDocket.CustomerName = thisFishPond.Name; issueDocket.Description = "Rải thuốc"; issueDocket.ExecutedDate = _model.FeedDate.Value; issueDocket.ExecutorCode = scopeContext.UserCode; issueDocket.IssueDate = _model.FeedDate; issueDocket.StockIssueDocketTypeId = (int)SystemIDEnum.FeedingLivestock_IssueType; issueDocket.WarehouseId = thisFishPondWarehouse.DefaultWarehouseId; issueDocket.Id = await svcStockIssueDocket.Add(issueDocket); // Lịch sử đợt nuôi (master lịch sử ao nuôi) FarmingSeasonHistory history = new FarmingSeasonHistory(); history.ActionDate = _model.FeedDate.Value; history.ActionType = (int)SystemIDEnum.FarmingSeason_ActionType_Medicine; history.Description = "Rải thuốc"; history.FarmingSeasonId = thisFarmingSeason.Id; history.Id = await svcFarmingSeasonHistory.Add(history); // Chi tiết phiếu xuất kho mặc định List <StockIssueDocketDetail> docketDetails = iMapper.Map <List <StockIssueDocketDetail> >(_model.Details); decimal orderVAT = 0; decimal orderAmount = 0; decimal orderTotalAmount = 0; foreach (var item in docketDetails) { item.StockIssueDocketId = issueDocket.Id; item.UnitPrice = 0; item.Amount = item.Quantity * item.UnitPrice; item.Vat = item.Amount * (item.VatPercent / (decimal)100); item.TotalAmount = item.Amount + item.Vat; item.Id = await svcStockIssueDocketDetail.Add(item); orderVAT += item.Vat; orderAmount += item.Amount; orderTotalAmount += item.TotalAmount; #region Trừ vào danh sách tồn - Tạm thời chưa chuyển đổi sang số lượng theo đơn vị tính chuẩn var instock = await svcCurrentInStock.GetList(issueDocket.WarehouseId, item.ProductId); if (instock == null || instock.Count == 0) { CurrentInStock cis = new CurrentInStock() { Amount = 0 - item.Quantity, AmountExpect = 0 - item.Quantity, ProductId = item.ProductId, ProductUnitId = item.ProductUnitId, WarehouseId = issueDocket.WarehouseId }; cis.Id = await svcCurrentInStock.Add(cis); } else { CurrentInStock cis = instock[0]; cis.Amount -= item.Quantity; cis.AmountExpect -= item.Quantity; await svcCurrentInStock.Modify(cis); } #endregion // Lịch sử hàng hóa StockHistoryDetail historyDetail = new StockHistoryDetail(); historyDetail.HistoryId = history.Id; historyDetail.ProductId = item.ProductId; historyDetail.Amount = item.Quantity; historyDetail.ProductUnitId = item.ProductUnitId; // kg historyDetail.Id = await svcStockHistoryDetail.Add(historyDetail); } issueDocket.Vat = orderVAT; issueDocket.Amount = orderAmount; issueDocket.TotalAmount = orderTotalAmount; await svcStockIssueDocket.Modify(issueDocket); transaction.Commit(); return(issueDocket.Id); } catch { transaction.Rollback(); return(0); } } }