public TransactionValidateReceiptRequestBuilder(ExternalReceipt externalReceipt)
     : this()
 {
     this.ExternalReceipt = externalReceipt;
 }
 public static TransactionValidateReceiptRequestBuilder ValidateReceipt(ExternalReceipt externalReceipt)
 {
     return(new TransactionValidateReceiptRequestBuilder(externalReceipt));
 }
示例#3
0
        public async Task <IActionResult> Create([Bind("ExternalReceiptID,BoatID,SarhaID,TotalBeforePaying,Date,Commission,PaidFromDebts,TotalAfterPaying,FinalIncome")] ExternalReceipt externalReceipt)
        {
            //if (ModelState.IsValid)
            //{
            //    // Subtracting Paid From Halek
            var user = await _userManager.GetUserAsync(User);

            var roles = await _userManager.GetRolesAsync(user);

            int PID = 1;

            if (roles.Contains("partner"))
            {
                PID = 2;
            }
            var boat = _context.Boats.Find(externalReceipt.BoatID);

            boat.DebtsOfHalek -= Convert.ToDecimal(externalReceipt.PaidFromDebts);
            var p = _context.People.Find(PID);

            p.credit += Convert.ToDecimal(externalReceipt.PaidFromDebts);
            var sarhaId          = _context.Sarhas.Where(x => x.BoatID == externalReceipt.BoatID).Max(x => x.SarhaID);
            var TotalAfterPaying = externalReceipt.TotalBeforePaying - externalReceipt.Commission - externalReceipt.PaidFromDebts;
            // Salary for Each One
            var sarha            = _context.Sarhas.Find(sarhaId);
            var IndividualSalary = (Convert.ToDecimal(TotalAfterPaying) / 2) / sarha.NumberOfFishermen;
            // Calculating Final Income
            // for shared boats
            decimal FinalIncome;

            // 5 -> Shared Boat ... We will change it later
            if (boat.TypeID == 2)
            {
                FinalIncome              = (Convert.ToDecimal(TotalAfterPaying) / 2) - IndividualSalary;
                boat.IncomeOfSharedBoat += FinalIncome;
                IncomesOfSharedBoat i = new IncomesOfSharedBoat()
                {
                    BoatID = boat.BoatID,
                    Date   = TimeNow(),
                    Income = FinalIncome
                };
                _context.IncomesOfSharedBoats.Add(i);
                p.credit += FinalIncome;
            }
            // for ordinary boats
            else
            {
                FinalIncome = Convert.ToDecimal(TotalAfterPaying);
            }
            externalReceipt.SarhaID          = sarhaId;
            externalReceipt.TotalAfterPaying = TotalAfterPaying;
            externalReceipt.FinalIncome      = FinalIncome;
            _context.Add(externalReceipt);
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Details), new { id = externalReceipt.ExternalReceiptID }));
            //}
            //ViewData["BoatID"] = new SelectList(_context.Boats, "BoatID", "BoatName", externalReceipt.BoatID);
            //ViewData["SarhaID"] = new SelectList(_context.Sarhas, "SarhaID", "SarhaID", externalReceipt.SarhaID);
            //return View(externalReceipt);
        }