public void CreateTurnoverNotice() { Contract contract = TempData["contract"] as Contract; if (contract.CheckToday()) { TurnoverType turnoverType = null; decimal price = 0; if (contract.Contractor is Supplier) { turnoverType = db.TurnoverTypes.FirstOrDefault(tt => tt.Name == "Приход"); price = contract.Goods.PurchasePrice; } else if (contract.Contractor is Customer) { turnoverType = db.TurnoverTypes.FirstOrDefault(tt => tt.Name == "Расход"); price = contract.Goods.SellingPrice; } TurnoverNoticeStatus turnoverNoticeStatus = db.TurnoverNoticeStatus.FirstOrDefault(tns => tns.Name == "В ожидании"); TurnoverNotice turnoverNotice = new TurnoverNotice { Date = DateTime.Now, Goods = contract.Goods, GoodsQuantity = contract.GoodsQuantity, TurnoverType = turnoverType, Price = price, TurnoverMember = contract.Contractor, TurnoverNoticeStatus = turnoverNoticeStatus, Warehouse = contract.Warehouse }; TempData["turnoverNotice"] = turnoverNotice; RedirectToAction("CreateForContract", "TurnoverNotice"); } }
/// <summary> /// Registers a new revenue transaction to be billed at the end of the year. /// </summary> /// <param name="type">The <see cref = "TurnoverType"/> of the transaction.</param> /// <param name="amount">The amount of money transacted.</param> void RegisterRevenue(TurnoverType type, float amount) { this.Log($"Wealth registered revenue of {type} and {amount}"); if (!Revenues.ContainsKey(type)) { Revenues.Add(type, 0f); } Revenues[type] += amount; }
/// <summary> /// Registers a new expense transaction to be billed at the end of the year. /// </summary> /// <param name="type">The <see cref = "TurnoverType"/> of the transaction.</param> /// <param name="amount">The amount of money transacted.</param> void RegisterExpense(TurnoverType type, float amount) { this.Log($"Wealth registered expense of {type} and {amount}"); if (!Expenses.ContainsKey(type)) { Expenses.Add(type, 0f); } Expenses[type] += amount; }
public ActionResult Create([Bind(Include = "Date,GoodsId,GoodsQuantity,TurnoverTypeId,TurnoverMemberId,WarehouseId")] TurnoverNotice turnoverNotice) { TurnoverType turnoverType = db.TurnoverTypes.Find(turnoverNotice.TurnoverTypeId); if (turnoverType.Name == "Расход") { var goodsMovements = db.GoodsMovements.ToList(); GoodsMovement goodsMovement = goodsMovements.FirstOrDefault(gm => gm.GoodsId == turnoverNotice.GoodsId && gm.WarehouseId == turnoverNotice.WarehouseId && gm.Date.Date == DateTime.Now.Date); if (turnoverNotice.GoodsQuantity > goodsMovement.GoodsBalance) { ModelState.AddModelError("GoodsQuantity", "На складе недостаточно товара, в наличии только " + goodsMovement.GoodsBalance); } } if (ModelState.IsValid) { TurnoverNoticeStatus turnoverNoticeStatus = db.TurnoverNoticeStatus.FirstOrDefault(tns => tns.Name == "В ожидании"); turnoverNotice.TurnoverNoticeStatusId = turnoverNoticeStatus.Id; if (turnoverType.Name == "Внутреннее перемещение") { TurnoverType turnoverType1 = db.TurnoverTypes.FirstOrDefault(tt => tt.Name == "Приход"); turnoverNotice.TurnoverTypeId = turnoverType1.Id; turnoverNotice.Price = 0; TurnoverType turnoverType2 = db.TurnoverTypes.FirstOrDefault(tt => tt.Name == "Расход"); TurnoverNotice turnoverNotice2 = new TurnoverNotice() { Date = turnoverNotice.Date, TurnoverTypeId = turnoverType2.Id, GoodsId = turnoverNotice.GoodsId, GoodsQuantity = turnoverNotice.GoodsQuantity, Price = 0, TurnoverMemberId = turnoverNotice.WarehouseId, WarehouseId = turnoverNotice.TurnoverMemberId, TurnoverNoticeStatusId = turnoverNotice.TurnoverNoticeStatusId }; db.TurnoverNotices.Add(turnoverNotice); db.TurnoverNotices.Add(turnoverNotice2); db.SaveChanges(); } else { Goods goods = db.Goods.Find(turnoverNotice.GoodsId); turnoverNotice.Price = turnoverType.Name == "Приход" ? goods.PurchasePrice : goods.SellingPrice; db.TurnoverNotices.Add(turnoverNotice); db.SaveChanges(); } return(RedirectToAction("Index")); } List <Goods> goodsList = db.Goods.Where(g => g.Status == true).ToList(); ViewBag.GoodsId = new SelectList(goodsList, "Id", "Name"); List <Supplier> suppliers = db.Suppliers.Where(g => g.Status == true).ToList(); ViewBag.TurnoverMemberId = new SelectList(suppliers, "Id", "Name"); ViewBag.TurnoverTypeId = new SelectList(db.TurnoverTypes.ToList(), "Id", "Name", 1); List <Warehouse> warehouses = db.Warehouses.Where(g => g.Status == true).ToList(); ViewBag.WarehouseId = new SelectList(warehouses, "Id", "Name"); return(View(turnoverNotice)); }
public ActionResult Create([Bind(Include = "Id,ConclusionDate,GoodsId,GoodsQuantity,TurnoverPeriodicity,TurnoverTypeId,StartDate,ContractorId,WarehouseId")] Contract contract) { TurnoverType turnoverType = db.TurnoverTypes.Find(contract.TurnoverTypeId); if (turnoverType.Name == "Расход") { var goodsMovements = db.GoodsMovements.ToList(); GoodsMovement goodsMovement = goodsMovements.FirstOrDefault(gm => gm.GoodsId == contract.GoodsId && gm.WarehouseId == contract.WarehouseId && gm.Date.Date == DateTime.Now.Date); var turnoverNotices = db.TurnoverNotices.Include(tn => tn.TurnoverNoticeStatus).Include(tn => tn.TurnoverType).ToList(); int goodsQuantityInTurnoverNotices = turnoverNotices.Where(tn => tn.GoodsId == contract.GoodsId && tn.WarehouseId == contract.WarehouseId && tn.TurnoverNoticeStatus.Name == "В ожидании" && tn.TurnoverType.Name == "Расход").Select(tn => tn.GoodsQuantity).Sum(); var balance = goodsMovement.GoodsBalance - goodsQuantityInTurnoverNotices; if (contract.GoodsQuantity > balance) { ModelState.AddModelError("GoodsQuantity", "На складе недостаточно товара, в наличии только " + balance); } } if (ModelState.IsValid) { contract.Status = true; db.Contracts.Add(contract); db.SaveChanges(); if (contract.CheckToday()) { TurnoverNotice turnoverNotice = new TurnoverNotice() { Date = DateTime.Now, GoodsId = contract.GoodsId, GoodsQuantity = contract.GoodsQuantity, TurnoverMemberId = contract.ContractorId, TurnoverTypeId = contract.TurnoverTypeId, WarehouseId = contract.WarehouseId }; Goods goods = db.Goods.Find(turnoverNotice.GoodsId); turnoverNotice.Price = turnoverType.Name == "Приход" ? goods.PurchasePrice : goods.SellingPrice; TurnoverNoticeStatus turnoverNoticeStatus = db.TurnoverNoticeStatus.FirstOrDefault(tns => tns.Name == "В ожидании"); turnoverNotice.TurnoverNoticeStatusId = turnoverNoticeStatus.Id; db.TurnoverNotices.Add(turnoverNotice); db.SaveChanges(); } return(RedirectToAction("Index")); } List <TurnoverType> turnoverTypes = db.TurnoverTypes.Where(tt => tt.Name == "Приход" || tt.Name == "Расход").ToList(); ViewBag.TurnoverTypeId = new SelectList(turnoverTypes, "Id", "Name"); List <Warehouse> warehouses = db.Warehouses.Where(g => g.Status == true).ToList(); ViewBag.WarehouseId = new SelectList(warehouses, "Id", "Name"); List <Goods> goodsList = db.Goods.Where(tm => tm.Status == true).ToList(); ViewBag.GoodsId = new SelectList(goodsList, "Id", "Name"); return(View(contract)); }
public ActionResult Confirm(int Id) { TurnoverNotice turnoverNotice = db.TurnoverNotices.Find(Id); TurnoverNoticeStatus turnoverNoticeStatus = db.TurnoverNoticeStatus.FirstOrDefault(tns => tns.Name == "Подтверждено"); turnoverNotice.TurnoverNoticeStatus = turnoverNoticeStatus; db.SaveChanges(); List <GoodsMovement> goodsMovements = db.GoodsMovements.ToList(); GoodsMovement goodsMovement = goodsMovements.FirstOrDefault(gm => gm.GoodsId == turnoverNotice.GoodsId && gm.WarehouseId == turnoverNotice.WarehouseId && gm.Date.Date == turnoverNotice.Date.Date); TurnoverType turnoverType = db.TurnoverTypes.Find(turnoverNotice.TurnoverTypeId); goodsMovement.AddTurnover(turnoverType, turnoverNotice.GoodsQuantity); db.Entry(goodsMovement).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("TurnoverNoticeStatus", turnoverNotice)); }
public Task Execute(IJobExecutionContext context) { //создание двежений товаров DateTime lastDate = DateTime.Now.AddDays(-1); var goodsList = db.Goods.Where(g => g.Status == true).Include(g => g.GoodsMovements).ToList(); var warehouseList = db.Warehouses.Where(w => w.Status == true).ToList(); var goodsMovementsList = db.GoodsMovements.ToList(); foreach (var goods in goodsList) { foreach (var warehouse in warehouseList) { int goodsBalance = goods.GoodsMovements.Where(m => m.WarehouseId == warehouse.Id && m.Date.Date == lastDate.Date).Select(m => m.GoodsBalance).SingleOrDefault(); GoodsMovement newGoodsMovement = new GoodsMovement { Date = DateTime.Now, GoodsId = goods.Id, WarehouseId = warehouse.Id, GoodsArrival = 0, GoodsConsumption = 0, GoodsBalance = goodsBalance }; db.GoodsMovements.Add(newGoodsMovement); } } db.SaveChanges(); //создание уведомлений оборотов var contracts = db.Contracts.Where(c => c.Status == true).ToList(); foreach (var contract in contracts) { if (contract.CheckToday()) { TurnoverType turnoverType = db.TurnoverTypes.Find(contract.TurnoverTypeId); TurnoverNotice turnoverNotice = new TurnoverNotice() { Date = DateTime.Now, GoodsId = contract.GoodsId, GoodsQuantity = contract.GoodsQuantity, TurnoverMemberId = contract.ContractorId, TurnoverTypeId = contract.TurnoverTypeId, WarehouseId = contract.WarehouseId }; Goods goods = db.Goods.Find(turnoverNotice.GoodsId); turnoverNotice.Price = turnoverType.Name == "Приход" ? goods.PurchasePrice : goods.SellingPrice; TurnoverNoticeStatus turnoverNoticeStatus = db.TurnoverNoticeStatus.FirstOrDefault(tns => tns.Name == "В ожидании"); turnoverNotice.TurnoverNoticeStatusId = turnoverNoticeStatus.Id; db.TurnoverNotices.Add(turnoverNotice); } } db.SaveChanges(); return(Task.CompletedTask); }
} // CheckForMatch public void SaveToDb(long?cashRequestID, long?nlCashRequestID, string tag, AConnection db) { db.ExecuteNonQuery("StoreMedal", CommandSpecies.StoredProcedure, new QueryParameter("CustomerId", CustomerId), new QueryParameter("CalculationTime", CalculationTime), new QueryParameter("MedalType", MedalType.ToString()), new QueryParameter("FirstRepaymentDatePassed", FirstRepaymentDatePassed), new QueryParameter("BusinessScore", BusinessScore), new QueryParameter("BusinessScoreWeight", BusinessScoreWeight), new QueryParameter("BusinessScoreGrade", BusinessScoreGrade), new QueryParameter("BusinessScoreScore", BusinessScoreScore), new QueryParameter("FreeCashFlowValue", FreeCashFlowValue), new QueryParameter("FreeCashFlow", FreeCashFlow), new QueryParameter("FreeCashFlowWeight", FreeCashFlowWeight), new QueryParameter("FreeCashFlowGrade", FreeCashFlowGrade), new QueryParameter("FreeCashFlowScore", FreeCashFlowScore), new QueryParameter("HmrcAnnualTurnover", HmrcAnnualTurnover), new QueryParameter("BankAnnualTurnover", BankAnnualTurnover), new QueryParameter("OnlineAnnualTurnover", OnlineAnnualTurnover), new QueryParameter("AnnualTurnover", AnnualTurnover), new QueryParameter("AnnualTurnoverWeight", AnnualTurnoverWeight), new QueryParameter("AnnualTurnoverGrade", AnnualTurnoverGrade), new QueryParameter("AnnualTurnoverScore", AnnualTurnoverScore), new QueryParameter("TangibleEquityValue", TangibleEquityValue), new QueryParameter("TangibleEquity", TangibleEquity), new QueryParameter("TangibleEquityWeight", TangibleEquityWeight), new QueryParameter("TangibleEquityGrade", TangibleEquityGrade), new QueryParameter("TangibleEquityScore", TangibleEquityScore), new QueryParameter( "BusinessSeniority", BusinessSeniority.HasValue && BusinessSeniority.Value.Year > 1800 ? BusinessSeniority : null ), new QueryParameter("BusinessSeniorityWeight", BusinessSeniorityWeight), new QueryParameter("BusinessSeniorityGrade", BusinessSeniorityGrade), new QueryParameter("BusinessSeniorityScore", BusinessSeniorityScore), new QueryParameter("ConsumerScore", ConsumerScore), new QueryParameter("ConsumerScoreWeight", ConsumerScoreWeight), new QueryParameter("ConsumerScoreGrade", ConsumerScoreGrade), new QueryParameter("ConsumerScoreScore", ConsumerScoreScore), new QueryParameter("NetWorth", NetWorth), new QueryParameter("NetWorthWeight", NetWorthWeight), new QueryParameter("NetWorthGrade", NetWorthGrade), new QueryParameter("NetWorthScore", NetWorthScore), new QueryParameter("MaritalStatus", MaritalStatus.ToString()), new QueryParameter("MaritalStatusWeight", MaritalStatusWeight), new QueryParameter("MaritalStatusGrade", MaritalStatusGrade), new QueryParameter("MaritalStatusScore", MaritalStatusScore), new QueryParameter("NumberOfStores", NumberOfStores), new QueryParameter("NumberOfStoresWeight", NumberOfStoresWeight), new QueryParameter("NumberOfStoresGrade", NumberOfStoresGrade), new QueryParameter("NumberOfStoresScore", NumberOfStoresScore), new QueryParameter("PositiveFeedbacks", PositiveFeedbacks), new QueryParameter("PositiveFeedbacksWeight", PositiveFeedbacksWeight), new QueryParameter("PositiveFeedbacksGrade", PositiveFeedbacksGrade), new QueryParameter("PositiveFeedbacksScore", PositiveFeedbacksScore), new QueryParameter("EzbobSeniority", EzbobSeniority), new QueryParameter("EzbobSeniorityWeight", EzbobSeniorityWeight), new QueryParameter("EzbobSeniorityGrade", EzbobSeniorityGrade), new QueryParameter("EzbobSeniorityScore", EzbobSeniorityScore), new QueryParameter("NumOfLoans", NumOfLoans), new QueryParameter("NumOfLoansWeight", NumOfLoansWeight), new QueryParameter("NumOfLoansGrade", NumOfLoansGrade), new QueryParameter("NumOfLoansScore", NumOfLoansScore), new QueryParameter("NumOfLateRepayments", NumOfLateRepayments), new QueryParameter("NumOfLateRepaymentsWeight", NumOfLateRepaymentsWeight), new QueryParameter("NumOfLateRepaymentsGrade", NumOfLateRepaymentsGrade), new QueryParameter("NumOfLateRepaymentsScore", NumOfLateRepaymentsScore), new QueryParameter("NumOfEarlyRepayments", NumOfEarlyRepayments), new QueryParameter("NumOfEarlyRepaymentsWeight", NumOfEarlyRepaymentsWeight), new QueryParameter("NumOfEarlyRepaymentsGrade", NumOfEarlyRepaymentsGrade), new QueryParameter("NumOfEarlyRepaymentsScore", NumOfEarlyRepaymentsScore), new QueryParameter("ValueAdded", ValueAdded), new QueryParameter("InnerFlowName", TurnoverType == null ? null : TurnoverType.ToString()), new QueryParameter("TotalScore", TotalScore), new QueryParameter("TotalScoreNormalized", TotalScoreNormalized), new QueryParameter("Medal", MedalClassification.ToString()), new QueryParameter("Error", Error), new QueryParameter("OfferedLoanAmount", OfferedLoanAmount), new QueryParameter("NumOfHmrcMps", NumOfHmrcMps), new QueryParameter("ZooplaValue", ZooplaValue), new QueryParameter("EarliestHmrcLastUpdateDate", EarliestHmrcLastUpdateDate), new QueryParameter("EarliestYodleeLastUpdateDate", EarliestYodleeLastUpdateDate), new QueryParameter("AmazonPositiveFeedbacks", AmazonPositiveFeedbacks), new QueryParameter("EbayPositiveFeedbacks", EbayPositiveFeedbacks), new QueryParameter("NumberOfPaypalPositiveTransactions", NumberOfPaypalPositiveTransactions), new QueryParameter("MortgageBalance", MortgageBalance), new QueryParameter("CapOfferByCustomerScoresValue", CapOfferByCustomerScoresValue), new QueryParameter( "CapOfferByCustomerScoresTable", CapOfferByCustomerScoresTable.SafeToFormattedString() ), new QueryParameter("Tag", tag), new QueryParameter("MaxOfferedLoanAmount", MaxOfferedLoanAmount), new QueryParameter("CashRequestID", cashRequestID), new QueryParameter("NLCashRequestID", nlCashRequestID) ); } // SaveToDb