Exemple #1
0
        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");
            }
        }
Exemple #2
0
        /// <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;
        }
Exemple #3
0
        /// <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));
        }
Exemple #5
0
        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));
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        }                                                                    // 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