예제 #1
0
        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");
            }
        }