public DetailViewData(Person currentPerson, Models.Invoice invoice, InvoiceBasicsViewData invoiceBasicsViewData) : base(currentPerson, invoice) { PageTitle = invoice.InvoiceIdentifyingName.ToEllipsifiedStringClean(110); BreadCrumbTitle = $"{Models.FieldDefinition.Invoice.GetFieldDefinitionLabel()} Detail"; InvoiceBasicsViewData = invoiceBasicsViewData; InvoiceLineItemGridSpec = new InvoiceLineItemGridSpec(currentPerson) { ObjectNameSingular = "Invoice Line Item", ObjectNamePlural = "Invoice Line Items", SaveFiltersInCookie = true }; InvoiceLineItemGridDataUrl = SitkaRoute <InvoiceController> .BuildUrlFromExpression(ac => ac.InvoiceLineItemGridJsonData(invoice.InvoiceID)); var userHasEditInvoicePermissions = new InvoiceLineItemEditFeature().HasPermissionByPerson(currentPerson); if (userHasEditInvoicePermissions) { var contentUrl = SitkaRoute <InvoiceController> .BuildUrlFromExpression(t => t.NewInvoiceLineItem(invoice.InvoiceID)); InvoiceLineItemGridSpec.CreateEntityModalDialogForm = new ModalDialogForm(contentUrl, "Create a new Invoice Line Item"); } }
public InvoiceLineItemGridSpec(Models.Person currentPerson) { ObjectNameSingular = $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabel()}"; ObjectNamePlural = $"{Models.FieldDefinition.Agreement.GetFieldDefinitionLabelPluralized()}"; var userHasEditPermissions = new InvoiceLineItemEditFeature().HasPermissionByPerson(currentPerson); if (userHasEditPermissions) { Add(string.Empty, x => DhtmlxGridHtmlHelpers.MakeEditIconAsModalDialogLinkBootstrap(new ModalDialogForm(x.GetEditUrl(), "Edit this Invoice Line Item")), 30, DhtmlxGridColumnFilterType.None); } var userHasDeletePermissions = new InvoiceLineItemDeleteFeature().HasPermissionByPerson(currentPerson); if (userHasDeletePermissions) { Add(string.Empty, x => DhtmlxGridHtmlHelpers.MakeDeleteIconAndLinkBootstrap(x.GetDeleteUrl(), true, true), 30, DhtmlxGridColumnFilterType.None); } Add("Cost Type", x => x.CostType.CostTypeDisplayName, 125, DhtmlxGridColumnFilterType.Text); Add("Grant Allocation", x => x.GrantAllocation.GrantAllocationName, 125, DhtmlxGridColumnFilterType.Text); Add("Amount", x => x.InvoiceLineItemAmount, 70, DhtmlxGridColumnFormatType.CurrencyWithCents, DhtmlxGridColumnAggregationType.Total); Add("Note", x => x.InvoiceLineItemNote, 250, DhtmlxGridColumnFilterType.Text); }