Пример #1
0
 protected override void BuildQuickFiltersForm(powFormBuilder <powBrowserQuickFiltersViewModel> form)
 {
     form.AddPanel("ItemsFilters", panel =>
     {
         panel.HeaderCaption(hewResources.sQuickFilters);
         panel.AddStackLayout(powStackLayoutOrientation.Vertical, stack =>
         {
             stack.AddTextBox("Name").Caption(hewResources.sName);
         });
     });
 }
        protected override void BuildForm(powFormBuilder <hewItemsDataObjectProxy> form)
        {
            RegisterFooterScriptEntryPoint("ServicesAthenaEdit", "hewClientScripts.ATH.Masters.Items.DemoServicesAthenaEdit");

            form.BindToObservable(true);
            form.Id("servicesEditForm");
            form.AddTableLayout(table =>
            {
                table.AddRow(row =>
                {
                    row.AddMasterCodeTextBoxFor(model => model.Code).CodeProvider("HESERVICES").Caption(hewResources.sCode);
                    row.AddTextBoxFor(model => model.Name).Caption(hewResources.sName);
                });
                table.AddRow(row =>
                {
                    row.AddTextBoxFor(model => model.RefNumber).Caption(hewResources.sRefNumber).ReadOnly(true);
                });
                table.AddRow(tabRow =>
                {
                    tabRow.AddTabStrip(tabStrip =>
                    {
                        tabStrip.AddTab(tab =>
                        {
                            tab.Caption(hewResources.sBasicInfo);
                            tab.Selected(true);
                            tab.AddStackLayout(powStackLayoutOrientation.Horizontal, stack =>
                            {
                                stack.AddTableLayout(tabTable =>
                                {
                                    tabTable.LayoutWeight(2);
                                    tabTable.AddRow(row =>
                                    {
                                        row.AddPanel("Categorization", panel =>
                                        {
                                            panel.HeaderCaption(hewResources.sCategorization);
                                            panel.AddTableLayout(panelTable =>
                                            {
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddArrayLookUpFor(model => model.IaccID).Caption(hewResources.sAccountingCategory).Definition("Hercules", "ItemSrvAccCategoriesAthenaArrayLookUpDataSource");
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddArrayLookUpFor(model => model.Kind).Caption(hewResources.sKindItem)
                                                    .Definition("Hercules", "ItemKindArrayLookUpDataSource").Enabled(false);
                                                    panelTableRow.AddEmptyColumn();
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddArrayLookUpFor(model => model.AMsntID).Caption(hewResources.sMeasurementUnit).Definition("Hercules", "MeasurementUnitsAthenaArrayLookUpDataSource");
                                                    panelTableRow.AddArrayLookUpFor(model => model.VtclID).Caption(hewResources.sVATClass).Definition("Hercules", "VATClassesArrayLookUpDataSource");
                                                });
                                            });
                                        });
                                    });

                                    tabTable.AddRow(row =>
                                    {
                                        row.AddPanel("Additional", panel =>
                                        {
                                            panel.HeaderCaption(hewResources.sAdditional);
                                            panel.AddTableLayout(panelTable =>
                                            {
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.CommissionPerc).Caption(hewResources.sSalesmanCommission);
                                                    panelTableRow.AddEmptyColumn();
                                                });
                                            });
                                        });
                                    });

                                    tabTable.AddRow(panelTableRow =>
                                    {
                                        panelTableRow.AddSwitchFor(model => model.Active).Caption(hewResources.sActive);
                                    });
                                });
                                stack.AddTableLayout(tabTable =>
                                {
                                    tabTable.AddRow(row =>
                                    {
                                        row.AddPanel("ProposedQuantity", panel =>
                                        {
                                            panel.HeaderCaption(hewResources.sProposedQuantity);
                                            panel.AddTableLayout(panelTable =>
                                            {
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.SalesPropQuan).Caption(hewResources.sSales);
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.PurPropQuan).Caption(hewResources.sPurchase);
                                                });
                                            });
                                        });
                                    });
                                    tabTable.AddRow(row =>
                                    {
                                        row.AddPanel("Behaviour", panel =>
                                        {
                                            panel.HeaderCaption(hewResources.sBehaviour);
                                            panel.AddTableLayout(panelTable =>
                                            {
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddDropDownListFor(model => model.BlockSales)
                                                    .Caption(hewResources.sItemBlockSales)
                                                    .RemoteDataSource("GetItemSalPurBehvr", this.FormController)
                                                    .ValueField("Value")
                                                    .TextField("Text");
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddDropDownListFor(model => model.BlockPurchases)
                                                    .Caption(hewResources.sItemBlockPurchases)
                                                    .RemoteDataSource("GetItemSalPurBehvr", this.FormController)
                                                    .ValueField("Value")
                                                    .TextField("Text");
                                                });
                                            });
                                        });
                                    });
                                });
                            });
                        });
                        tabStrip.AddTab(tab =>
                        {
                            tab.Caption(hewResources.sPricingPolicy);
                            tab.AddTableLayout(tabTable =>
                            {
                                tabTable.AddRow(row =>
                                {
                                    row.AddStackLayout(powStackLayoutOrientation.Horizontal, stack =>
                                    {
                                        stack.AddPanel("Prices", panel =>
                                        {
                                            panel.AddCssClass("services-panel-prices");
                                            panel.HeaderCaption(hewResources.sPrices);
                                            panel.AddTableLayout(panelTable =>
                                            {
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.RetailPrice).Caption(hewResources.sRetail);
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.WholesalesPrice).Caption(hewResources.sWholesales);
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddArrayLookUpFor(model => model.CalcFromValue).Caption(hewResources.sCalculationFromValue)
                                                    .Definition("Hercules", "ItemCalcFromValueArrayLookUpDataSource");
                                                });
                                            });
                                        });

                                        stack.AddPanel("MarkUp", panel =>
                                        {
                                            panel.AddCssClass("services-panel-markup");
                                            panel.HeaderCaption(hewResources.sMarkUp);
                                            panel.Id("services__markup-panel");
                                            panel.AddTableLayout(panelTable =>
                                            {
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.RetailMarkUp).Caption(hewResources.sRetail);
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.WholesalesMarkUp).Caption(hewResources.sWholesales);
                                                });
                                                panelTable.AddEmptyRow();
                                            });
                                        });

                                        stack.AddPanel("Discounts", panel =>
                                        {
                                            panel.Id("services__discounts-panel");
                                            panel.HeaderCaption(hewResources.sDiscounts);
                                            panel.AddTableLayout(panelTable =>
                                            {
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.RetDiscount).Caption(hewResources.sRetail);
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.Discount).Caption(hewResources.sWholesales);
                                                });
                                                panelTable.AddRow(panelTableRow =>
                                                {
                                                    panelTableRow.AddNumericTextBoxFor(model => model.MaxDiscount).Caption(hewResources.sMaximumDiscount);
                                                });
                                            });
                                        });
                                    });
                                });
                                tabTable.AddRow(row =>
                                {
                                    row.AddPanel("Zones", panel =>
                                    {
                                        panel.HeaderCaption(hewResources.sZones);
                                        panel.AddTableLayout(panelTable =>
                                        {
                                            panelTable.AddRow(panelTableRow =>
                                            {
                                                panelTableRow.AddArrayLookUpFor(model => model.TitzID).Caption(hewResources.sTemplate).Definition("Hercules", "TemplItemPriceZonesAthenaArrayLookUpDataSource");
                                                panelTableRow.AddEmptyColumn();
                                            });
                                        });
                                    });
                                });
                                tabTable.AddRow(row =>
                                {
                                    row.AddPanel("ItemPriceZones", panel =>
                                    {
                                        panel.HeaderCaption(hewResources.sItemPriceZones);
                                        panel.AddCssClass("no-padding");
                                        panel.AddGridFor(model => model.ItemPriceZone.ZonePricesList)
                                        .Id("InLineGridZonePrices")
                                        .Height(600)
                                        .PageSize(20)
                                        .ModelIDPropertyName(x => x.PriceType)
                                        .AddColumnFor(model => model.Description, hewResources.sDescription, c => c.Editable(false))
                                        .AddColumnFor(model => model.Price01, GetPriceZoneDescription(1), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price02, GetPriceZoneDescription(2), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price03, GetPriceZoneDescription(3), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price04, GetPriceZoneDescription(4), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price05, GetPriceZoneDescription(5), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price06, GetPriceZoneDescription(6), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price07, GetPriceZoneDescription(7), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price08, GetPriceZoneDescription(8), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .AddColumnFor(model => model.Price09, GetPriceZoneDescription(9), c =>
                                                      c.Width(120).SetNumericTextEditor().Editable("function(e) { return ServicesAthenaEdit.EditGridHandler(e); }"))
                                        .LocalDataSource(dataSource =>
                                                         dataSource.LocalDataSourceFiltersHandler("ServicesAthenaEdit.FilterInLineGridZonePrices"))
                                        .ShowDefaultCreateButton(false)
                                        .AddToolbarButton("clearPriceZones", button =>
                                                          button.Tooltip(hewResources.sClearAll)
                                                          .AddIconCssClass("fa fa-trash")
                                                          .Events(events => events.Click("function() { ServicesAthenaEdit.ClearZones(); }")))
                                        .ShowDefaultDestroyButton(false);
                                    });
                                });
                            });
                        });
                        tabStrip.AddTab(tab =>
                        {
                            tab.Caption(hewResources.sAdditional);
                            tab.AddStackLayout(powStackLayoutOrientation.Vertical, tabStack =>
                            {
                                tabStack.AddPanel("SpecialBehaviourPanel", panel =>
                                {
                                    panel.HeaderCaption(hewResources.sSpecialBehaviour);
                                    panel.AddStackLayout(powStackLayoutOrientation.Horizontal, specialBehaviourStack =>
                                    {
                                        specialBehaviourStack.AddPanel("SalesPanel", salesPanel =>
                                        {
                                            salesPanel.HeaderCaption(hewResources.sSales);
                                            salesPanel.AddStackLayout(powStackLayoutOrientation.Vertical, salesStack =>
                                            {
                                                salesStack.AddSwitchFor(model => model.NotApplSalDisc)
                                                .Caption(hewResources.sNotApplliedSalesDiscounts);
                                                salesStack.AddArrayLookUpFor(model => model.NotApplSalAddChrg)
                                                .Caption(hewResources.sNotApplliedSalesAddCharges)
                                                .Definition("Hercules", "ItemNotApplAddChrgEnumArrayLookupDataSource");
                                            });
                                        });
                                        specialBehaviourStack.AddPanel("PurchacesPanel", purchacesPanel =>
                                        {
                                            purchacesPanel.HeaderCaption(hewResources.sPurchases);
                                            purchacesPanel.AddStackLayout(powStackLayoutOrientation.Vertical, purchacesStack =>
                                            {
                                                purchacesStack.AddSwitchFor(model => model.NotApplPurDisc).Caption(hewResources.sNotApplliedPurchasesDiscounts);
                                                purchacesStack.AddArrayLookUpFor(model => model.NotApplPurAddChrg).Caption(hewResources.sNotApplliedPurchasesAddCharges).Definition("Hercules", "ItemNotApplAddChrgEnumArrayLookupDataSource");
                                            });
                                        });
                                    });
                                });
                                tabStack.AddPanel("UserDefinedFields", panel =>
                                {
                                    var arrayCategories = base.AppContext.CallObjectMethod <List <string> >("Hercules", "UserDefinedOperations.Web", "GetUserDefinedFieldDescriptions", UserDefinedTypeEnum.Category, UserDefinedClassEnum.Items, new List <int> {
                                        1, 2
                                    });
                                    var arrayTexts = base.AppContext.CallObjectMethod <List <string> >("Hercules", "UserDefinedOperations.Web", "GetUserDefinedFieldDescriptions", UserDefinedTypeEnum.Text, UserDefinedClassEnum.Items, new List <int> {
                                        1, 2
                                    });
                                    var arrayBools = base.AppContext.CallObjectMethod <List <string> >("Hercules", "UserDefinedOperations.Web", "GetUserDefinedFieldDescriptions", UserDefinedTypeEnum.Bool, UserDefinedClassEnum.Items, new List <int> {
                                        1, 2
                                    });
                                    var arrayNums = base.AppContext.CallObjectMethod <List <string> >("Hercules", "UserDefinedOperations.Web", "GetUserDefinedFieldDescriptions", UserDefinedTypeEnum.Num, UserDefinedClassEnum.Items, new List <int> {
                                        1, 2
                                    });
                                    var arrayDates = base.AppContext.CallObjectMethod <List <string> >("Hercules", "UserDefinedOperations.Web", "GetUserDefinedFieldDescriptions", UserDefinedTypeEnum.Date, UserDefinedClassEnum.Items, new List <int> {
                                        1, 2
                                    });

                                    panel.HeaderCaption(hewResources.sUserDefinedFields);
                                    panel.AddTableLayout(tabTable =>
                                    {
                                        tabTable.AddRow(row =>
                                        {
                                            row.AddArrayLookUpFor(model => model.Cat01ID).Definition("Hercules", "ItemsAthenaCategories01LookUpDataSource").Caption(arrayCategories[0]).Id("Cat00");
                                            row.AddTextBoxFor(model => model.UserDefText01).Caption(arrayTexts[0]);
                                        });
                                        tabTable.AddRow(row =>
                                        {
                                            row.AddArrayLookUpFor(model => model.Cat02ID).Definition("Hercules", "ItemsAthenaCategories02LookUpDataSource").Caption(arrayCategories[1]).Id("Cat01");
                                            row.AddTextBoxFor(model => model.UserDefText02).Caption(arrayTexts[1]);
                                        });
                                        tabTable.AddRow(row =>
                                        {
                                            row.AddNumericTextBoxFor(model => model.UserDefNum01).Caption(arrayNums[0]);
                                            row.AddDatePickerFor(model => model.UserDefDate01).Caption(arrayDates[0]);
                                            row.AddSwitchFor(model => model.UserDefBool01).Caption(arrayBools[0]).LayoutWeight(2);
                                        });
                                        tabTable.AddRow(row =>
                                        {
                                            row.AddNumericTextBoxFor(model => model.UserDefNum02).Caption(arrayNums[1]);
                                            row.AddDatePickerFor(model => model.UserDefDate02).Caption(arrayDates[1]);
                                            row.AddSwitchFor(model => model.UserDefBool02).Caption(arrayBools[1]).LayoutWeight(2);
                                        });
                                    });
                                });
                                tabStack.AddTextAreaFor(model => model.Comments).Caption(hewResources.sComments).Height(260);
                            });
                        });
                    });
                });
            });
        }