// GET: ServiceCost
        public ActionResult Index()
        {
            ServiceCostViewModel scvm = new ServiceCostViewModel();

            scvm.Print = false;
            return(View("Index", scvm));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Cost(string ptid)
        {
            ServiceCostViewModel viewModel = (ServiceCostViewModel)TempData["TeachingCostViewModel"];

            try
            {
                if (viewModel == null)
                {
                    _viewModel = new ServiceCostViewModel();
                }
                else
                {
                    _viewModel = viewModel;
                }

                if (!string.IsNullOrWhiteSpace(ptid))
                {
                    if (_viewModel.Subscribers == null || _viewModel.Subscribers.Count <= 0)
                    {
                        _viewModel.Subscribers = _da.GetModelsBy <PersonType, PERSON_TYPE>(p => p.Person_Type_Id != 1);
                    }

                    List <PersonType> personTypes = null;
                    if (_viewModel.Subscribers != null && _viewModel.Subscribers.Count > 0)
                    {
                        personTypes = _viewModel.Subscribers.Where(u => ptid.Contains(u.Id.ToString())).ToList();
                        if (personTypes != null && personTypes.Count > 0)
                        {
                            _viewModel.PersonTypeSelectList = DropdownUtility.PopulateModelSelectListHelper(personTypes, false, "-- Select Your Category --");
                            if (personTypes.Count == 1)
                            {
                                ViewBag.PersonTypes = new SelectList(_viewModel.PersonTypeSelectList, DropdownUtility.VALUE, DropdownUtility.TEXT, personTypes[0].Id);
                            }
                            else
                            {
                                ViewBag.PersonTypes = _viewModel.PersonTypeSelectList;
                            }
                        }
                        else
                        {
                            _viewModel.PersonTypeSelectList = new List <SelectListItem>();
                        }
                    }
                    else
                    {
                        _viewModel.PersonTypeSelectList = new List <SelectListItem>();
                    }
                }

                await LoadPersonType();
                await InitializeTeachingCostHelper();
                await InitializeTeacherAvailabilityHelper();

                _viewModel.ServiceCharges = await _da.GetAllAsync <ServiceCharge, SERVICE_CHARGE>();

                _viewModel.TeacherAvailabilities = UiUtility.InitializeAvailability(_viewModel.WeekDays, _viewModel.Periods);
                _viewModel.TeachingCosts         = UiUtility.InitializeTeachingCost(_viewModel.StudentCategories, _viewModel.QualificationCategories, _viewModel.ExistingTeachingCosts);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex);
                SetMessage(ex.Message, ApplicationMessage.Category.Error);
            }

            TempData["TeachingCostViewModel"] = _viewModel;
            return(View(_viewModel));
        }
        public ActionResult ServiceCost(ServiceCostViewModel scvm)
        {
            try
            {
                if (scvm.DateStart == null ||
                    scvm.DateEnd == null
                    )
                {
                    scvm.ViewMessage = "Ponovno preverite vnešene podatke!";
                    return(View("Index", scvm));
                }

                /*
                 * if (scvm.DateStart < DateTime.Now.Date || scvm.DateEnd < DateTime.Now.Date)
                 * {
                 *  scvm.ViewMessage = "Vsaj eden izmed datumov je preteklost";
                 *  return View("Index", scvm);
                 * }
                 */
                if (scvm.DateEnd < scvm.DateStart)
                {
                    scvm.ViewMessage = "Datum konca je pred datumom začetka";
                    return(View("Index", scvm));
                }

                List <Service> s = DB.Services.ToList();
                scvm.ServiceType = new string[s.Count + 1];

                for (int i = 0; i < s.Count; i++)
                {
                    scvm.ServiceType[i] = s.ElementAt(i).ServiceTitle;
                }

                scvm.ServiceType[scvm.ServiceType.Length - 1] = "Skupno";
                List <Visit> visits = DB.Visits.Where(x => x.DateConfirmed >= scvm.DateStart && x.DateConfirmed <= scvm.DateEnd).ToList();
                scvm.Count         = new int[s.Count + 1];
                scvm.ServiceTotal  = new double[s.Count + 1];
                scvm.MedicineTotal = new double[s.Count + 1];
                scvm.Total         = new double[s.Count + 1];

                foreach (var v in visits)
                {
                    scvm.Count[v.WorkOrder.Service.ServiceId - 1]++;
                    scvm.ServiceTotal[v.WorkOrder.Service.ServiceId - 1] += v.WorkOrder.Service.Cost;
                    List <MedicineWorkOrder> a = v.WorkOrder.MedicineWorkOrders.ToList();
                    foreach (var m in a)
                    {
                        scvm.MedicineTotal[v.WorkOrder.Service.ServiceId - 1] += m.Medicine.Cost;
                    }
                }
                for (int i = 0; i < s.Count; i++)
                {
                    scvm.Count[scvm.ServiceType.Length - 1]         += scvm.Count[i];
                    scvm.ServiceTotal[scvm.ServiceType.Length - 1]  += scvm.ServiceTotal[i];
                    scvm.MedicineTotal[scvm.ServiceType.Length - 1] += scvm.MedicineTotal[i];
                }

                for (int i = 0; i < s.Count + 1; i++)
                {
                    scvm.Total[i] = scvm.ServiceTotal[i] + scvm.MedicineTotal[i];
                }

                scvm.Print = true;
                return(View("Index", scvm));
            }
            catch (Exception e)
            {
                scvm.ViewMessage = "Prišlo je do hujše napake!";
                return(View("Index", scvm));
            }
        }