public async Task <IActionResult> Create([Bind("MoneyTransferOrderId,CashRepositoryFromCashRepositoryId,CashRepositoryIdFrom,CashRepositoryIdTo,CashRepositoryToCashRepositoryId,Description,HasChild,MoneyTransferOrderDate,MoneyTransferOrderNumber,MoneyTransferOrderStatus,PaymentAmount,createdAt,isIssued,isReceived")] MoneyTransferOrder moneyTransferOrder) { if (moneyTransferOrder.CashRepositoryIdFrom == moneyTransferOrder.CashRepositoryIdTo) { TempData["StatusMessage"] = "Σφάλμα. Το Ταμείο από και προς είναι το ίδιο. Η μεταφορά χρημάτων γίνεται μεταξύ διαφορετικών ταμείων"; return(RedirectToAction(nameof(Create))); } if (ModelState.IsValid) { moneyTransferOrder.CashRepositoryFrom = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(moneyTransferOrder.CashRepositoryIdFrom)); moneyTransferOrder.CashRepositoryTo = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(moneyTransferOrder.CashRepositoryIdTo)); moneyTransferOrder.MoneyTransferOrderNumber = _numberSequence.GetNumberSequence("ΕΜΧ"); _context.Add(moneyTransferOrder); await _context.SaveChangesAsync(); TempData["TransMessage"] = "Η Εντολή Μεταφοράς χρημάτων " + moneyTransferOrder.MoneyTransferOrderNumber + " έγινε με Επιτυχία"; return(RedirectToAction("Details", "MoneyTransferOrder", new { id = moneyTransferOrder.MoneyTransferOrderId })); } return(View(moneyTransferOrder)); }
public async Task <IActionResult> Edit(string id, [Bind("MoneyTransferOrderId,MoneyTransferOrderNumber,MoneyTransferOrderDate,Description,CashRepositoryIdFrom,CashRepositoryIdTo,PaymentAmount,MoneyTransferOrderStatus,isIssued,isReceived,HasChild,createdAt")] MoneyTransferOrder moneyTransferOrder) { if (id != moneyTransferOrder.MoneyTransferOrderId) { return(NotFound()); } if ((MoneyTransferOrderStatus)TempData["MoneyTransferOrderStatus"] == MoneyTransferOrderStatus.Completed) { TempData["StatusMessage"] = "Σφάλμα. Δεν είναι δυνατή η επεξεργασία [Ολοκληρωμένης] παραγγελίας."; return(RedirectToAction(nameof(Edit), new { id = moneyTransferOrder.MoneyTransferOrderId })); } if (moneyTransferOrder.MoneyTransferOrderStatus == MoneyTransferOrderStatus.Completed) { TempData["StatusMessage"] = "Σφάλμα. Δεν είναι δυνατή η επεξεργασία της κατάστασης όταν είναι [Ολοκληρωμένη] η Παραγγελία."; return(RedirectToAction(nameof(Edit), new { id = moneyTransferOrder.MoneyTransferOrderId })); } if (moneyTransferOrder.isIssued == true || moneyTransferOrder.isReceived == true) { TempData["StatusMessage"] = "Σφάλμα. Δεν είναι δυνατή η επεξεργασία της εντολής με κατάσταση [Ανοιχτή] που ήδη επεξεργάζεται την Αποστολή ή την Παραλαβή χρημάτων."; return(RedirectToAction(nameof(Edit), new { id = moneyTransferOrder.MoneyTransferOrderId })); } if (ModelState.IsValid) { try { moneyTransferOrder.CashRepositoryFrom = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(moneyTransferOrder.CashRepositoryIdFrom)); moneyTransferOrder.CashRepositoryTo = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(moneyTransferOrder.CashRepositoryIdTo)); _context.Update(moneyTransferOrder); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MoneyTransferOrderExists(moneyTransferOrder.MoneyTransferOrderId)) { return(NotFound()); } else { throw; } } TempData["TransMessage"] = "Η Επεξεργασία της Μεταφοράς " + moneyTransferOrder.MoneyTransferOrderNumber + " έγινε με Επιτυχία!"; return(RedirectToAction(nameof(Index))); } return(View(moneyTransferOrder)); }
// GET: MoneyTransferOrder/Create public IActionResult Create(string id) { ViewData["StatusMessage"] = TempData["StatusMessage"]; ViewData["CashRepositoryIdFrom"] = new SelectList(_context.CashRepository, "CashRepositoryId", "CashRepositoryName"); ViewData["CashRepositoryIdTo"] = new SelectList(_context.CashRepository, "CashRepositoryId", "CashRepositoryName"); MoneyTransferOrder obj = new MoneyTransferOrder(); CashRepository cr = _context.CashRepository.Where(x => x.CashRepositoryId == id).FirstOrDefault(); if (id != null) { obj.CashRepositoryIdFrom = id; obj.CashRepositoryIdTo = _context.CashRepository.Where(x => x.MainRepository == true).FirstOrDefault().CashRepositoryId; obj.MoneyTransferOrderStatus = MoneyTransferOrderStatus.Open; obj.PaymentAmount = cr.Balance; } return(View(obj)); }
public async Task <IActionResult> Create([Bind("CashflowInId,MoneyTransferOrderId,CashflowInNumber,CashflowInDate,Description,CashRepositoryIdFrom,CashRepositoryIdTo,HasChild,createdAt")] CashflowIn cashflowIn) { if (ModelState.IsValid) { //check MoneyTransferOrder CashflowIn check = await _context.CashflowIn.SingleOrDefaultAsync(x => x.MoneyTransferOrderId.Equals(cashflowIn.MoneyTransferOrderId)); if (check != null) { ViewData["StatusMessage"] = "Σφάλμα. Η εντολή μεταφοράς χρημάτων έχει ήδη δημιουργηθεί. " + check.CashflowInNumber; ViewData["MoneyTransferOrderId"] = new SelectList(_context.MoneyTransferOrder.ToList(), "MoneyTransferOrderId", "MoneyTransferOrderNumber"); ViewData["CashRepositoryIdFrom"] = new SelectList(_context.CashRepository, "CashRepositoryId", "CashRepositoryName"); ViewData["CashRepositoryIdTo"] = new SelectList(_context.CashRepository, "CashRepositoryId", "CashRepositoryName"); return(View(cashflowIn)); } MoneyTransferOrder to = await _context.MoneyTransferOrder.Where(x => x.MoneyTransferOrderId.Equals(cashflowIn.MoneyTransferOrderId)).FirstOrDefaultAsync(); cashflowIn.CashRepositoryIdFrom = to.CashRepositoryIdFrom; cashflowIn.CashRepositoryIdTo = to.CashRepositoryIdTo; cashflowIn.CashRepositoryFrom = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(cashflowIn.CashRepositoryIdFrom)); cashflowIn.CashRepositoryTo = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(cashflowIn.CashRepositoryIdTo)); to.isReceived = true; to.MoneyTransferOrderStatus = MoneyTransferOrderStatus.Completed; _context.Add(cashflowIn); await _context.SaveChangesAsync(); TempData["TransMessage"] = "Η εγγραφή Εισροής " + cashflowIn.CashflowInNumber + " έγινε με Επιτυχία!"; return(RedirectToAction("Details", "CashRepository", new { id = cashflowIn.CashRepositoryIdTo })); } ViewData["MoneyTransferOrderId"] = new SelectList(_context.MoneyTransferOrder, "MoneyTransferOrderId", "MoneyTransferOrderId", cashflowIn.MoneyTransferOrderId); return(View(cashflowIn)); }
public async Task <IActionResult> Create([Bind("CashflowOutId,MoneyTransferOrderId,CashflowOutNumber,CashflowOutDate,Description,CashRepositoryIdFrom,CashRepositoryIdTo,HasChild,createdAt")] CashflowOut cashflowOut) { if (ModelState.IsValid) { //check MoneyTransferOrder CashflowOut check = await _context.CashflowOut .Include(x => x.MoneyTransferOrder) .SingleOrDefaultAsync(x => x.MoneyTransferOrderId.Equals(cashflowOut.MoneyTransferOrderId)); if (check != null) { ViewData["StatusMessage"] = "Σφάλμα. Η εντολή εκροής έχει ήδη εκδοθεί. " + check.CashflowOutNumber; ViewData["MoneyTransferOrderId"] = new SelectList(_context.MoneyTransferOrder.ToList(), "MoneyTransferOrderId", "MoneyTransferOrderNumber"); ViewData["CashRepositoryIdFrom"] = new SelectList(_context.CashRepository, "CashRepositoryId", "CashRepositoryName"); ViewData["CashRepositoryIdTo"] = new SelectList(_context.CashRepository, "CashRepositoryId", "CashRepositoryName"); return(View(cashflowOut)); } //check Balance bool isBalanceOK = true; MoneyTransferOrder mto = _context.MoneyTransferOrder.Where(x => x.MoneyTransferOrderId == cashflowOut.MoneyTransferOrderId).FirstOrDefault(); MoneyTransferOrder to = await _context.MoneyTransferOrder.Where(x => x.MoneyTransferOrderId.Equals(cashflowOut.MoneyTransferOrderId)).FirstOrDefaultAsync(); cashflowOut.CashRepositoryIdFrom = to.CashRepositoryIdFrom; cashflowOut.CashRepositoryIdTo = to.CashRepositoryIdTo; cashflowOut.CashRepositoryFrom = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(cashflowOut.CashRepositoryIdFrom)); cashflowOut.CashRepositoryTo = await _context.CashRepository.Include(x => x.Employee).SingleOrDefaultAsync(x => x.CashRepositoryId.Equals(cashflowOut.CashRepositoryIdTo)); to.isIssued = true; CashRepository cashrepository = await _context.CashRepository.Where(x => x.CashRepositoryId == cashflowOut.CashRepositoryIdFrom).FirstAsync(); if (mto != null && cashrepository != null) { if (cashrepository.Balance < mto.PaymentAmount) { isBalanceOK = false; } } else { isBalanceOK = false; } if (!isBalanceOK) { TempData["StatusMessage"] = "Σφάλμα. Υπάρχει πρόβλημα στα ταμειακά διαθέσιμα, το ταμείο σας έχει " + cashrepository.Balance + " €"; return(RedirectToAction(nameof(Create))); } _context.Add(cashflowOut); await _context.SaveChangesAsync(); TempData["TransMessage"] = "Η ταμειακή εκροή " + cashflowOut.CashflowOutNumber + " έγινε με Επιτυχία!"; return(RedirectToAction("Details", "CashRepository", new { id = cashflowOut.CashRepositoryIdTo })); } ViewData["MoneyTransferOrderId"] = new SelectList(_context.MoneyTransferOrder, "MoneyTransferOrderId", "MoneyTransferOrderNumber", cashflowOut.MoneyTransferOrderId); return(View(cashflowOut)); }