コード例 #1
0
        public ActionResult IssueBill(IssueBillModel model)
        {
            if (!User.IsInRole("contractor")) { return new HttpUnauthorizedResult(); }

            LegalPerson legalPerson = personsRepository.GetLegalPersonByUsername(User.Identity.Name);

            if(ModelState.IsValid) {
                var maintenance = maintenancesRepository.GetById(model.UnbilledMaintance);
                if(maintenance != null) {
                    try {
                        var bill = new Bill(legalPerson, maintenance.Building.Reserve, model.PaymentDescription, 23) {
                            ReferenceNumber = string.Format("{0}-{1}-{2}", maintenance.Building.Id, maintenance.Id, DateTime.Now.ToString("yyyy-MM-dd"))
                        };
                        foreach (var billItemModel in model.BillItems) {
                            var billItem = new BillItem(billItemModel.Quantity, billItemModel.Price, billItemModel.Description);
                            bill.AddBillItem(billItem);
                        }

                        maintenance.SetBill(bill);
                        billsRepository.SaveOrUpdate(bill);

                        var url = Url.Action("bill", "contractor", new {Id = bill.Id}, "http");
                        emailNotifier.NotifyOfBilling(bill, url);
                        return RedirectToAction("bills");

                    } catch(BusinessRulesException ex) {
                        ex.CopyTo(ModelState);
                    }

                } else {
                    ModelState.AddModelError("UnbilledMaintance", "Odabrali ste ne postojeće održavanje/popravak.");
                }
            }

            var maintenances = maintenancesRepository.GetAllMaintenancesWithNoBillByContractor(legalPerson);
            var mappedMaintenances = Mapper.Map<IEnumerable<Maintenance>, IEnumerable<MaintenanceDetailModel>>(maintenances);
            model.UnbilledMaintances = new SelectList(mappedMaintenances, "Id", "MaintenanceRequest.Subject");
            model.Roles = Roles.GetRolesForUser();

            return View(model);
        }
コード例 #2
0
        public ActionResult IssueBill()
        {
            if (!User.IsInRole("contractor")) { return new HttpUnauthorizedResult(); }

            LegalPerson legalPerson = personsRepository.GetLegalPersonByUsername(User.Identity.Name);
            var maintenances = maintenancesRepository.GetAllMaintenancesWithNoBillByContractor(legalPerson);
            var mappedMaintenances = Mapper.Map<IEnumerable<Maintenance>, IEnumerable<MaintenanceDetailModel>>(maintenances);

            var model = new IssueBillModel {
                UnbilledMaintances = new SelectList(mappedMaintenances, "Id", "MaintenanceRequest.Subject"),
                Roles = Roles.GetRolesForUser()
            };

            return View(model);
        }