public ViewResult InvoiceDetail(InvoicePrimaryKey invoicePrimaryKey) { var invoice = HttpRequestStorage.DatabaseEntities.Invoices.SingleOrDefault(i => i.InvoiceID == invoicePrimaryKey.PrimaryKeyValue); if (invoice == null) { throw new Exception( $"Could not find InvoiceID # {invoicePrimaryKey.PrimaryKeyValue}; has it been deleted?"); } var taxonomyLevel = MultiTenantHelpers.GetTaxonomyLevel(); var invoiceBasicsViewData = new InvoiceBasicsViewData(invoice, false, taxonomyLevel); var viewData = new Views.Invoice.DetailViewData(CurrentPerson, invoice, invoiceBasicsViewData); return(RazorView <Views.Invoice.Detail, Views.Invoice.DetailViewData>(viewData)); }
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"); } }