Пример #1
0
        private ShopFloorModel CreateShopFloorModel(int id, string stocknumber)
        {
            ShopFloorModel model = new ShopFloorModel();

            if (id > 0)
            {
                model.Invoice = InvoiceServices.GetInvoice(id);
                if (model.Invoice == null)
                {
                    model.NoDataMessage = string.Format("We could not find an invoice with an id = {0}", id);
                }
            }
            else if (!string.IsNullOrEmpty(stocknumber))
            {
                model.Invoice = InvoiceServices.GetInvoice(stocknumber);
                if (model.Invoice == null)
                {
                    model.NoDataMessage = string.Format("We could not find an invoice with a stock number = {0}", stocknumber);
                }
            }
            else
            {
                model.NoDataMessage = "There are no vehicles logged into the shop at this time";
            }

            model.Services          = InvoiceServices.GetServices(base.LocationId, model.Invoice);
            model.VehiclesInShop    = NavigationServices.GetVehiclesInShop(base.LocationId).OrderBy(o => o.Id).ToList();
            model.VehiclesCompleted = NavigationServices.GetVehiclesCompletedToday(base.LocationId).OrderBy(o => o.Id).ToList();

            return(model);
        }
 /// <summary>
 /// Изменить запись
 /// </summary>
 protected void Edit(InvoiceServices item)
 {
     //Готовим модель представления
     invoiceService = item;
     OpenModal();
     InvoiceServiceModel.IdService = invoiceService.Invoice.ToString();
 }
        public void CreateInvoice_with_invalid_amount()
        {
            var testClass = new InvoiceServices(_invoiceRepository.Object,
                                                _customerService.Object,
                                                _companyService.Object);

            testClass.CreateInvoice(1, 1, -1);
        }
Пример #4
0
        public ActionResult DeleteInvoice(int invoiceId)
        {
            var invoice = InvoiceServices.DeleteInvoice(invoiceId);

            NavigationServices.ClearCache(base.LocationId);

            return(Json("ok"));
        }
Пример #5
0
        public ActionResult InvoiceReport(int id)
        {
            InvoiceReportModel model = new InvoiceReportModel();

            model.Invoice = InvoiceServices.GetInvoice(id);
            model.Account = AccountServices.GetAccount(model.Invoice.AccountName);
            model.Header  = new ReportHeaderModel("Invoice");

            return(View(model));
        }
Пример #6
0
        public ActionResult RecallVehicle(int invoiceId)
        {
            var invoice = InvoiceServices.RecallInvoice(invoiceId);

            NavigationServices.AddVehicleToInShopList(base.LocationId, invoice);
            if (invoice.CompleteDate > DateTime.Today)
            {
                NavigationServices.RemoveVehicleFromCompletedTodayList(base.LocationId, invoice);
            }

            return(Json("ok"));
        }
Пример #7
0
        public ActionResult AddService(int invoiceId, int serviceTypeId, decimal?rate)
        {
            decimal initialRate = 0;

            if (rate.HasValue)
            {
                initialRate = rate.Value;
            }
            var invoice = InvoiceServices.AddService(invoiceId, serviceTypeId, initialRate);

            return(PartialView("_ServiceList", invoice.ServiceList));
        }
Пример #8
0
        public ActionResult SignIn(int id)
        {
            var employee = EmployeeServices.GetUser(id);

            if (employee == null)
            {
                throw new ArgumentException(string.Format("No employee found with an id = {0}", id));
            }

            SecurityServices.SignIn(employee, base.LocationId);
            var employees = InvoiceServices.GetSignedInEmployees(base.LocationId, forceRefresh: true);

            return(PartialView("_AvailableEmployees", employees));
        }
Пример #9
0
        public ActionResult NewVehicle(NewInvoiceModel invoice)
        {
            if (ModelState.IsValid)
            {
                var newInvoice = InvoiceServices.CreateInvoice(invoice, base.LocationId);
                NavigationServices.AddVehicleToInShopList(base.LocationId, newInvoice);
                return(RedirectToAction("GetInvoice", new { id = newInvoice.Id }));
            }

            // Invalid - redisplay with errors
            ViewBag.AccountTypes = AccountTypeServices.GetAccountTypes(false, invoice.AccountTypeId);

            return(View("NewVehicle", invoice));
        }
Пример #10
0
        public ActionResult CompleteVehicle(int invoiceId)
        {
            var invoice = InvoiceServices.CompleteInvoice(invoiceId);

            if (string.IsNullOrEmpty(invoice.StockNumber))
            {
                throw new InvalidOperationException("The stock number cannot be empty");
            }

            NavigationServices.RemoveVehicleFromInShopList(base.LocationId, invoice);
            NavigationServices.AddVehicleToCompletedTodayList(base.LocationId, invoice);

            return(Json("ok"));
        }
        /// <summary>
        /// Добавить дело
        /// </summary>
        protected async Task AddAsync()
        {
            //Получаем id сервиса
            int idService = int.Parse(InvoiceServiceModel.IdService);
            //Последнее показание счетчика
            int amount = 0;

            //Получаем сервис по id и проверяем его на null
            service = services.FirstOrDefault(s => s.IdService == idService);
            if (service != null)
            {
                //Если сервис подразумевает наличие счетчика получаем последнее показания
                if (service.IsCounter)
                {
                    amount = counters.Where(s => s.IdService == idService).Select(c => c.ValueCounter).Max();
                }

                //Проверяем если ли текущая модель
                if (invoiceService == null)
                {
                    //Создаем и инициализируем модель
                    invoiceService = new InvoiceServices()
                    {
                        IdInvoice = Invoice.IdInvoice,
                        IdService = idService,
                        Amount    = amount
                    };
                    //Если модель уникальная, записываем ее в БД
                    if (invoiceServicesList.FirstOrDefault(ins => ins.Equals(invoiceService)) == null)
                    {
                        await Repository.AddAsync(invoiceService);
                    }
                }
                else
                {
                    //Меняем Модель
                    invoiceService.IdService = idService;
                    await Repository.EditAsync(invoiceService);
                }
            }

            invoiceService = default;
            service        = default;
            await StateUpdate();

            CloseModal();
        }
Пример #12
0
        public ActionResult GetInvoice(int id)
        {
            ShopFloorModel model = CreateShopFloorModel(id, null);

            ViewBag.ActiveEmployees   = EmployeeServices.GetActiveEmployees();
            ViewBag.SignedInEmployees = InvoiceServices.GetSignedInEmployeeSelectList(base.LocationId);

            if (model.Invoice == null)
            {
                return(View("Index_NoData", model));
            }

            if (!string.IsNullOrEmpty(model.Invoice.StockNumber))
            {
                model.Invoice.History = InvoiceServices.GetStockNumberHistory(model.Invoice);
            }

            return(View("Index", model));
        }
Пример #13
0
        public ActionResult SignOut(int?id)
        {
            if (id.HasValue)
            {
                var employee = EmployeeServices.GetUser(id.Value);
                if (employee == null)
                {
                    throw new ArgumentException(string.Format("No employee found with an id = {0}", id.Value));
                }

                SecurityServices.SignOut(employee, base.LocationId);
            }
            else
            {
                var signedIn = InvoiceServices.GetSignedInEmployees(base.LocationId, forceRefresh: true);
                foreach (var e in signedIn)
                {
                    SecurityServices.SignOut(e, base.LocationId);
                }
            }
            var employees = InvoiceServices.GetSignedInEmployees(base.LocationId, forceRefresh: true);

            return(PartialView("_AvailableEmployees", employees));
        }
        /// <summary>
        /// Удалить запись
        /// </summary>
        protected async Task RemoveAsync(InvoiceServices item)
        {
            await Repository.RemoveAsync(item.IdInvoiceServices);

            await StateUpdate();
        }
Пример #15
0
 public InvoicesController()
 {
     _invoiceServices = new InvoiceServices(Token);
 }
Пример #16
0
 public ActionResult UpdateInvoice(int invoiceId, string field, string value)
 {
     InvoiceServices.UpdateInvoice(invoiceId, field, value);
     return(Json(new { result = "ok" }));
 }
 public ActionResult RemoveLaborFromAccountType(int accountTypeId, int accountTypeServiceId, int accountTypeLaborId)
 {
     AccountTypeServices.RemoveLaborFromAccountType(accountTypeId, accountTypeServiceId, accountTypeLaborId);
     InvoiceServices.ClearAvailableTypeCache();
     return(Json("ok"));
 }
 public ActionResult UpdateLaborType(int id, string description)
 {
     AccountTypeServices.UpdateLaborType(id, description);
     InvoiceServices.ClearAvailableTypeCache();
     return(Json("ok"));
 }
Пример #19
0
        public ActionResult AddHistory(int invoiceId, string note)
        {
            var history = InvoiceServices.AddHistory(invoiceId, note);

            return(PartialView("_HistoryList", history));
        }
Пример #20
0
 public InvoiceController(InvoiceContent context)
 {
     _context = context;
     _service = new InvoiceServices(context);
 }
        public ActionResult EditLaborRate(int invoiceId, int laborId, decimal rate)
        {
            var invoice = InvoiceServices.UpdateLaborRate(invoiceId, laborId, rate);

            return(PartialView("_LaborList", invoice.LaborList));
        }
Пример #22
0
 public ActionResult UpdateAccount(int invoiceId, int accountId)
 {
     InvoiceServices.UpdateAccount(invoiceId, accountId);
     return(Json(new { result = "ok" }));
 }
 public ActionResult AddLaborToAccountType(int accountTypeId, int accountTypeServiceId, int laborTypeId)
 {
     AccountTypeServices.AddLaborToAccountType(accountTypeId, accountTypeServiceId, laborTypeId);
     InvoiceServices.ClearAvailableTypeCache();
     return(Json("ok"));
 }
Пример #24
0
        public ActionResult DeleteService(int invoiceId, int serviceId)
        {
            var invoice = InvoiceServices.DeleteService(invoiceId, serviceId);

            return(PartialView("_ServiceList", invoice.ServiceList));
        }
        public ActionResult EditServiceRate(int invoiceId, int serviceId, decimal rate)
        {
            var invoice = InvoiceServices.UpdateServiceRate(invoiceId, serviceId, rate);

            return(PartialView("_ServiceList", invoice.ServiceList));
        }
Пример #26
0
        public ActionResult AddLabor(int invoiceId, int laborTypeId, decimal rate)
        {
            var invoice = InvoiceServices.AddLabor(invoiceId, laborTypeId, rate);

            return(PartialView("_LaborList", invoice.LaborList));
        }
Пример #27
0
 public PaymentsController(InvoiceServices invoicesManager, PaymentServices paymentsManager)
 {
     this.invoicesManager = invoicesManager;
     this.paymentsManager = paymentsManager;
 }
Пример #28
0
        public ActionResult AddEmployeeToLabor(int invoiceId, int laborId, int employeeId)
        {
            var invoice = InvoiceServices.UpdateLabor(invoiceId, laborId, employeeId, base.LocationId);

            return(PartialView("_LaborList", invoice.LaborList));
        }
 public RecieptController(IOptions <InvoiceServices> invoiceServices)
 {
     this._invoiceServices = invoiceServices.Value;
 }
Пример #30
0
        public ActionResult DeleteLabor(int invoiceId, int laborId)
        {
            var invoice = InvoiceServices.DeleteLabor(invoiceId, laborId);

            return(PartialView("_LaborList", invoice.LaborList));
        }