예제 #1
0
        public ActionResult Index(int[] projectId, int?taskId, string date, string number, string modifiedDate, string createdDate, int?isArchived, string label, string text, string sortBy, string sortOrder)
        {
            var model = new InvoiceIndexModel();

            model.Tab          = "Invoice";
            model.FindCategory = "Invoice";
            model.FindText     = text;

            model.Projects           = DataHelper.GetProjectList();
            model.ProjectId          = projectId ?? new int[0];
            model.ProjectName        = DataHelper.ToString(model.Projects, model.ProjectId, "any project");
            model.ProjectDisplayName = DataHelper.Clip(model.ProjectName, 40);

            model.Date       = date ?? string.Empty;
            model.IsArchived = isArchived ?? 0;

            model.Filters = MyService.FilterFetchInfoList("Invoice");

            model.SortBy    = sortBy ?? "InvoiceId";
            model.SortOrder = sortOrder ?? "DESC";
            model.SortableColumns.Add("InvoiceId", "No.");
            model.SortableColumns.Add("ProjectName", "Project");
            model.SortableColumns.Add("Number", "User");
            model.SortableColumns.Add("TaskId", "Task");

            var criteria = new InvoiceCriteria()
            {
                ProjectId    = projectId,
                TaskId       = taskId,
                Number       = number,
                PreparedDate = new DateRangeCriteria(model.Date),
                ModifiedDate = new DateRangeCriteria(modifiedDate ?? string.Empty),
                CreatedDate  = new DateRangeCriteria(createdDate ?? string.Empty),
                IsArchived   = DataHelper.ToBoolean(isArchived),
                Text         = text
            };

            var invoices = InvoiceService.InvoiceFetchInfoList(criteria)
                           .AsQueryable();

            invoices = invoices.OrderBy(string.Format("{0} {1}", model.SortBy, model.SortOrder));

            model.Invoices = invoices;

            return(RespondTo(format =>
            {
                format[RequestExtension.Html] = () => this.View(model);
                format[RequestExtension.Xml] = () => new XmlResult {
                    Data = model.Invoices.ToList(), TableName = "Invoice"
                };
                format[RequestExtension.Json] = () => new JsonResult {
                    Data = model.Invoices, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                };
            }));
        }
예제 #2
0
        public ActionResult Index()
        {
            InvoiceIndexModel viewModel = new InvoiceIndexModel();

            //IEnumerable<Customer> activeCustomers = CustomerService.All().Where(x => !x.IsDeactivated);

            //viewModel.InvoiceGroups = activeCustomers.Select(x => new InvoiceIndexGroupModel
            //{
            //    Customer = x,
            //    Projects = x.Projects.Select(x => new InvoiceIndexProjectGroupModel
            //    {
            //        Project = x,
            //        InvoicableHours = x.Tasks.SelectMany(t => t.Registrations).SelectMany(r => r.StartTime - r.EndTime).Select(x => x.)
            //    })
            //});

            return(View(viewModel));
        }
예제 #3
0
 public InvoiceController(IJobSchedulerBlProvider jobSchedulerBlProvider, IInvoiceBlProvider invoiceBlProvider, IConfiguration cfg, IUserBlProvider userBlProvider) : base(cfg, userBlProvider)
 {
     _jobSchedulerBlProvider = jobSchedulerBlProvider;
     _invoiceBlProvider      = invoiceBlProvider;
     IndexModel = new InvoiceIndexModel();
 }