@NamedCache (cacheName = "productCache")
private transient Cache<Long, Product> productCache;
+ /**
+ * Selected product
+ */
+ private Product selectedProduct;
+
/**
* Default constructor
*/
this.filteredProducts = filteredProducts;
}
+ /**
+ * Getter for selected product
+ * <p>
+ * @return Selected product
+ */
+ public Product getSelectedProduct () {
+ return this.selectedProduct;
+ }
+
+ /**
+ * Setter for selected product
+ * <p>
+ * @param selectedProduct Selected product
+ */
+ public void setSelectedProduct (final Product selectedProduct) {
+ this.selectedProduct = selectedProduct;
+ }
+
/**
* Initialization of this bean
*/
TABLE_SUMMARY_ADMIN_LIST_GENERIC_PRODUCTS=Diese Tabelle listet alle eingetragenen Produkte auf.
#@TODO Please fix German umlauts!
ADMIN_EMPTY_LIST_GENERIC_PRODUCTS=Es befinden sich keine Produkte in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
-ADMIN_LIST_GENERIC_PRODUCTS_HEADER=Alle Produkte auflisten
ADMIN_LINK_SHOW_GENERIC_PRODUCT_TITLE=Zeigt Daten des Produktes an.
-ADMIN_HEADER_ASSIGNED_PRODUCT_CATEGORY=Zugewiesene Produktkategorie:
+ADMIN_ASSIGNED_PRODUCT_CATEGORY_HEADER=Zugewiesene Produktkategorie:
LABEL_PRODUCT_CATEGORIES=Produktkategorien
FILTER_BY_MULTIPLE_PRODUCT_CATEGORIES_TITLE=Liste durch Auswahl von ein oder mehr Produktkategorien filtern.
ADMIN_LINK_SHOW_GENERIC_PRODUCT_CATEGORY_TITLE=Zeigt Daten der Produktkategorie an.
-ADMIN_HEADER_PRODUCT_GROSS_PRICE=Bruttopreis:
+ADMIN_PRODUCT_GROSS_PRICE_HEADER=Bruttopreis:
#@TODO Please fix German umlauts!
-ADMIN_HEADER_PRODUCT_AVAILABILITY=Produkt verfuegbar:
+PRODUCT_AVAILABILITY_HEADER=Produkt verfuegbar:
#@TODO Please fix German umlauts!
ADMIN_ADD_GENERIC_PRODUCT_TITLE=Neues Produkt hinzufuegen
#@TODO Please fix German umlauts!
#@TODO Please fix German umlauts!
ADMIN_EMPTY_LIST_PRODUCT_CATEGORIES=Es befinden sich keine Produktkategorien in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
ADMIN_LIST_PRODUCT_CATEGORIES_HEADER=Alle Produktkategorien auflisten
-ADMIN_HEADER_ASSIGNED_PARENT_CATEGORY=Zugewiesene Elternkategorie:
+ADMIN_ASSIGNED_PARENT_CATEGORY_HEADER=Zugewiesene Elternkategorie:
ADMIN_LINK_SHOW_PRODUCT_CATEGORY_TITLE=Zeigt Daten der Produktkategorie an.
ADMIN_LINK_ASSIGN_PARENT_CATEGORY_TITLE=Elternkategorie zuweisen.
#@TODO Please fix German umlauts!
ADMIN_ASSIGN_PRODUCT_MANUFACTURER_TITLE=Zweisen Sie hier ein Hersteller dem Produkt zu. Supermaerke verkaufen oefters nur die Produkte, die ein anderes Unternehmen hergestellt hat.
#@TODO Please fix German umlauts!
SELECT_RECEIPT_ITEM_MANUFACTURER=Hersteller zum Kassenboneintrah auswaehlen:
-ADMIN_HEADER_RECEIPT_ITEM_MANUFACTURER_NAME=Hersteller des Boneintrages:
+ADMIN_RECEIPT_ITEM_MANUFACTURER_NAME_HEADER=Hersteller des Boneintrages:
ENTER_RECEIPT_ITEM_BRAND_NAME=Warenzeichen/Marke eingeben:
ENTER_RECEIPT_ITEM_BRAND_NAME_TITLE=Geben Sie das Warenzeichen ein, dass Sie auf dem Kassenbon finden.
ADMIN_PRODUCT_CURRENCY_CODE_REQUIRED=Bitte geben Sie den Waehrungscode fuer das Produkt ein. Beispiele: EUR, USD, PHP
ADMIN_PRODUCT_UNIT_AMOUNT_REQUIRED=Bitte geben Sie die Stueckanzahl des Produktes ein. Beispiel: 500 fuer 500g
#@TODO Please fix German umlauts!
ADMIN_PRODUCT_UNIT_I18N_KEY_REQUIRED=Bitte geben Sie den Uebersetzungschluessel zur Stueckzahl ein. Beispiel: UNIT_TYPE_GRAMS fuer Gramm
-ADMIN_HEADER_PRODUCT_MANUFACTURER_NAME=Produktehersteller:
+ADMIN_PRODUCT_MANUFACTURER_NAME_HEADER=Produktehersteller:
ADMIN_NO_PRODUCT_MANUFACTURER_ASSIGNED_TITLE=Es ist kein Hersteller dem Produkt zugewiesen.
RECEIPT_ISSUED=Ausgestellt:
RECEIPT_NUMBER=Kassenbonnummer:
ADMIN_ENTER_GENERIC_PRODUCT_SIZE=Groesse des Produktes:
#@TODO Please fix German umlauts!
ADMIN_ENTER_GENERIC_PRODUCT_SIZE_TITLE=Geben Sie hier die Groesse des Produktes an. Zum Beispiel haben Schuhe oder Kleider Groessen.
-AGE_GROUP_NEWBORN=Altersgruppe "Neugeborene"
+AGE_GROUP_NEWBORN=Altersgruppe "Neugeboren"
AGE_GROUP_BABY=Altersgruppe "Baby"
AGE_GROUP_CHILD=Altersgruppe "Kind"
AGE_GROUP_YOUTH=Altersgruppe "Jugend"
-AGE_GROUP_ADULT=Altersgruppe "Erwachsene"
-AGE_GROUP_SENIOR=Altersgruppe "Senioren"
+AGE_GROUP_ADULT=Altersgruppe "Erwachsen"
+AGE_GROUP_SENIOR=Altersgruppe "Senior"
#@TODO Please fix German umlauts!
LABEL_RECEIPT_SELLERS=Verkaeufer
+ADMIN_PRODUCT_DETAILS_HEADER=Details zum Produkt "{0}" (Id {1}):
+ADMIN_SINGLE_PRODUCT_DETAILS_HEADER=Details zum einzelnen Produkt
+PRODUCT_ID_NUMBER_TITLE=Id-Nummer des Produktes
+#@TODO Please fix German umlauts!
+PRODUCT_I18N_KEY_TITLE=Internationalisierungsschluessel fuer das Produkt
+#@TODO Please fix German umlauts!
+PRODUCT_AVAILABILITY_TITLE=Ob das Produkt zur Verfuegung steht.
+AGE_GROUP_HEADER=Altersgruppe:
+PRODUCT_AGE_GROUP_TITLE=Altersgruppe des Produktes.
+PRODUCT_HAS_NO_AGE_GROUP=Das Produkt hat keine Altersgruppe.
+#@TODO Please fix German umlauts!
+CURRENCY_CODE_HEADER=Waehrungscode
+#@TODO Please fix German umlauts!
+PRODUCT_CURRENCY_CODE_TITLE=Waehrungscode des Produktpreises
+PRODUCT_GROSS_PRICE_HEADER=Bruttopreis:
+PRODUCT_GROSS_PRICE_TITLE=Bruttopreis des Produktes
+PRODUCT_NET_PRICE_HEADER=Nettopreis:
+PRODUCT_NET_PRICE_TITLE=Nettopreis des Produktes
+PRODUCT_TAX_RATE_HEADER=Steuersatz:
+PRODUCT_TAX_RATE_TITLE=Steuersatz des Produktes
+PRODUCT_NUMBER_HEADER=Produktnummer:
+PRODUCT_NUMBER_TITLE=Nummer des Produktes
+#@TODO Please fix German umlauts!
+PRODUCT_SIZE_HEADER=Produktgroesse
+PRODUCT_UNIT_AMOUNT_HEADER=Produktmenge:
+PRODUCT_UNIT_AMOUNT_TITLE=Mengenangabe des Produktes
+#@TODO Please fix German umlauts!
+PRODUCT_UNIT_I18N_KEY_HEADER=Internationalisierungsschluessel fuer Einheit:
+PRODUCT_UNIT_I18N_KEY_TITLE=Internationalisierungsschluessel fuer Einheit
+PRODUCT_HAS_NO_MANUFACTURER_ASSIGNED=Produkt hat keinen Hersteller zugewiesen.
+ADMIN_ASSIGNED_PRODUCT_MANUFACTURER_HEADER=Zugewiesener Hersteller:
+ADMIN_ASSIGNED_PRODUCT_MANUFACTURER_TITLE=Diesem Produkt zugewiesner Hersteller.
CONTENT_TITLE_ADMIN_LIST_GENERIC_PRODUCT=List products:
TABLE_SUMMARY_ADMIN_LIST_GENERIC_PRODUCTS=This table lists all products.
ADMIN_EMPTY_LIST_GENERIC_PRODUCTS=There are no products in database. Or your search criteria doesn't match anything.
-ADMIN_LIST_GENERIC_PRODUCTS_HEADER=List all products
ADMIN_LINK_SHOW_GENERIC_PRODUCT_TITLE=Shows product data.
-ADMIN_HEADER_ASSIGNED_PRODUCT_CATEGORY=Assigned product category:
+ADMIN_ASSIGNED_PRODUCT_CATEGORY_HEADER=Assigned product category:
LABEL_PRODUCT_CATEGORIES=Product categories
FILTER_BY_MULTIPLE_PRODUCT_CATEGORIES_TITLE=Filter list by selecting one or more product categories.
ADMIN_LINK_SHOW_GENERIC_PRODUCT_CATEGORY_TITLE=Shows product category data.
-ADMIN_HEADER_PRODUCT_GROSS_PRICE=Gross price:
-ADMIN_HEADER_PRODUCT_AVAILABILITY=Product available:
+ADMIN_PRODUCT_GROSS_PRICE_HEADER=Gross price:
+PRODUCT_AVAILABILITY_HEADER=Product available:
ADMIN_ADD_GENERIC_PRODUCT_TITLE=Add new product
ADMIN_ADD_GENERIC_PRODUCT_MINIMUM_DATA=Please choose a product category and enter product title, unit amount and type, gross price and currency code (e.g. USD).
ADMIN_GENERIC_PRODUCT_DATA_LEGEND=Product data:
TABLE_SUMMARY_ADMIN_LIST_PRODUCT_CATEGORIES=This table lists all product categories.
ADMIN_EMPTY_LIST_PRODUCT_CATEGORIES=There are no product categories in database. Or your search criteria doesn't match anything.
ADMIN_LIST_PRODUCT_CATEGORIES_HEADER=List all product categories
-ADMIN_HEADER_ASSIGNED_PARENT_CATEGORY=Assigned parent category:
+ADMIN_ASSIGNED_PARENT_CATEGORY_HEADER=Assigned parent category:
ADMIN_LINK_SHOW_PRODUCT_CATEGORY_TITLE=Shows product category data.
ADMIN_LINK_ASSIGN_PARENT_CATEGORY_TITLE=Assign parent cateogory.
ADMIN_ADD_PRODUCT_CATEGORY_TITLE=Add new product category
ADMIN_ASSIGN_PRODUCT_MANUFACTURER=Assign product's manufacturing/producing company:
ADMIN_ASSIGN_PRODUCT_MANUFACTURER_TITLE=Assign a manufacturing/producing company to this product. Supermarkets are often only selling products other companies have produced.
SELECT_RECEIPT_ITEM_MANUFACTURER=Choose manufacturer for receipt item:
-ADMIN_HEADER_RECEIPT_ITEM_MANUFACTURER_NAME=Manufacturer of product item:
+ADMIN_RECEIPT_ITEM_MANUFACTURER_NAME_HEADER=Manufacturer of product item:
ADMIN_ENTER_GENERIC_PRODUCT_CURRENCY_CODE_TITLE=Enter the currency code for product. Examples: EUR, USD, PHP
ENTER_RECEIPT_ITEM_BRAND_NAME=Enter item's brand name:
ENTER_RECEIPT_ITEM_BRAND_NAME_TITLE=Enter the item's brand name found on receipt.
ADMIN_PRODUCT_CURRENCY_CODE_REQUIRED=Please enter current code for product. Example: EUR, USD, PHP
ADMIN_PRODUCT_UNIT_AMOUNT_REQUIRED=Please enter a unit amount. Example 500 for 500 grams.
ADMIN_PRODUCT_UNIT_I18N_KEY_REQUIRED=Please enter unit's i18n key. Example: UNIT_TYPE_GRAMS for grams
-ADMIN_HEADER_PRODUCT_MANUFACTURER_NAME=Product manufacturer:
+ADMIN_PRODUCT_MANUFACTURER_NAME_HEADER=Product manufacturer:
ADMIN_NO_PRODUCT_MANUFACTURER_ASSIGNED_TITLE=No manufacturer is assigned with this product.
RECEIPT_ISSUED=Issued at:
RECEIPT_NUMBER=Receipt number:
AGE_GROUP_SENIOR=Age group "Senior"
BUTTON_ADMIN_ADD_GENERIC_PRODUCT=Add product
LABEL_RECEIPT_SELLERS=Seller
+ADMIN_PRODUCT_DETAILS_HEADER=Details of product "{0}" (Id {1}):
+ADMIN_SINGLE_PRODUCT_DETAILS_HEADER=Details of a single product
+PRODUCT_ID_NUMBER_TITLE=Id number of product
+PRODUCT_I18N_KEY_TITLE=Internationalization key of product
+PRODUCT_AVAILABILITY_TITLE=Whether product is available.
+AGE_GROUP_HEADER=Age group:
+PRODUCT_AGE_GROUP_TITLE=Age group of product.
+PRODUCT_HAS_NO_AGE_GROUP=The product has no age group.
+CURRENCY_CODE_HEADER=Currency code
+PRODUCT_CURRENCY_CODE_TITLE=Currency code of product's price
+PRODUCT_GROSS_PRICE_HEADER=Gross price:
+PRODUCT_GROSS_PRICE_TITLE=Gross price of product
+PRODUCT_NET_PRICE_HEADER=Net price:
+PRODUCT_NET_PRICE_TITLE=Net price of product
+PRODUCT_TAX_RATE_HEADER=Tax rate:
+PRODUCT_TAX_RATE_TITLE=Tax rate of product
+PRODUCT_NUMBER_HEADER=Product number:
+PRODUCT_NUMBER_TITLE=Number of product
+PRODUCT_SIZE_HEADER=Product size
+PRODUCT_UNIT_AMOUNT_HEADER=Product amount:
+PRODUCT_UNIT_AMOUNT_TITLE=Amount of product
+PRODUCT_UNIT_I18N_KEY_HEADER=Internationalization key for unit:
+PRODUCT_UNIT_I18N_KEY_TITLE=Internationalization key for unit
+PRODUCT_HAS_NO_MANUFACTURER_ASSIGNED=Product has no manufacturer assigned.
+ADMIN_ASSIGNED_PRODUCT_MANUFACTURER_HEADER=Assigned manufacturer:
+ADMIN_ASSIGNED_PRODUCT_MANUFACTURER_TITLE=This product assigned manufacturer.
<from-outcome>admin_show_product_category</from-outcome>
<to-view-id>/admin/product_category/admin_product_category_show.xhtml</to-view-id>
</navigation-case>
+ <navigation-case>
+ <from-outcome>admin_show_basic_data</from-outcome>
+ <to-view-id>/admin/basic_data/admin_basic_data_show.xhtml</to-view-id>
+ </navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/admin/financial/receipt/admin_receipt_list.xhtml</from-view-id>
</ui:define>
<ui:define name="content">
- <h4>
- <h:outputText value="#{project.ADMIN_LIST_GENERIC_PRODUCTS_HEADER}" />
- </h4>
-
<h:form id="form-list-products">
<p:dataTable
id="productList"
summary="#{project.TABLE_SUMMARY_ADMIN_LIST_GENERIC_PRODUCTS}"
emptyMessage="#{project.ADMIN_EMPTY_LIST_GENERIC_PRODUCTS}"
widgetVar="productList"
+ selectionMode="single"
+ selection="#{productListController.selectedProduct}"
+ skipChildren="true"
>
<f:facet name="header">
</p:panelGrid>
</f:facet>
- <p:column headerText="#{msg.ADMIN_HEADER_ID_NUMBER}" sortBy="#{product.productId}" filterable="false">
+ <p:ajax
+ event="rowSelect"
+ update=":master:form-list-products:product-details"
+ oncomplete="PF('productDialog').show()"
+ />
+
+ <p:column headerText="#{msg.ID_NUMBER_HEADER}" sortBy="#{product.productId}" filterable="false">
<p:link outcome="admin_show_generic_product" title="#{project.ADMIN_LINK_SHOW_GENERIC_PRODUCT_TITLE}" value="#{product.productId}">
<f:param name="productId" value="#{product.productId}" />
</p:link>
</p:column>
- <p:column headerText="#{msg.ADMIN_HEADER_I18N_KEY}" sortBy="#{product.productI18nKey}" filterBy="#{product.productI18nKey}">
+ <p:column headerText="#{msg.ADMIN_I18N_KEY_HEADER}" sortBy="#{product.productI18nKey}" filterBy="#{product.productI18nKey}">
<h:outputText value="#{local[product.productI18nKey]}" title="#{product.productI18nKey}" />
</p:column>
- <p:column headerText="#{project.ADMIN_HEADER_ASSIGNED_PRODUCT_CATEGORY}" sortBy="#{product.productCategory}" filterBy="#{product.productCategory}" filterMatchMode="in">
+ <p:column headerText="#{project.ADMIN_ASSIGNED_PRODUCT_CATEGORY_HEADER}" sortBy="#{product.productCategory}" filterBy="#{product.productCategory}" filterMatchMode="in">
<f:facet name="filter">
<p:selectCheckboxMenu
filter="true"
</p:link>
</p:column>
- <p:column headerText="#{project.ADMIN_HEADER_PRODUCT_GROSS_PRICE}" sortBy="#{product.productGrossPrice}" filterBy="#{product.productGrossPrice}" filterFunction="#{productListController.filterByPrice}">
+ <p:column headerText="#{project.ADMIN_PRODUCT_GROSS_PRICE_HEADER}" sortBy="#{product.productGrossPrice}" filterBy="#{product.productGrossPrice}" filterFunction="#{productListController.filterByPrice}">
<h:outputText value="#{product.productGrossPrice}">
<!-- @TODO Hard-coded EUR again -->
<f:convertNumber type="currency" currencyCode="EUR" />
</h:outputText>
</p:column>
- <p:column headerText="#{project.ADMIN_HEADER_PRODUCT_AVAILABILITY}" sortBy="#{product.productAvailability}" filterBy="#{product.productAvailability}" filterMatchMode="exact">
+ <p:column headerText="#{project.PRODUCT_AVAILABILITY_HEADER}" sortBy="#{product.productAvailability}" filterBy="#{product.productAvailability}" filterMatchMode="exact">
<f:facet name="filter">
<p:selectOneMenu onchange="PF('productList').filter()">
<f:converter converterId="javax.faces.Boolean" />
<f:selectItem itemLabel="#{msg.CHOICE_NO}" itemValue="false" />
</p:selectOneMenu>
</f:facet>
+
<h:outputText value="#{product.productAvailability ? msg.CHOICE_YES : msg.CHOICE_NO}" />
</p:column>
- <p:column headerText="#{project.ADMIN_HEADER_PRODUCT_MANUFACTURER_NAME}" sortBy="#{product.productManufacturer}" filterBy="#{product.productManufacturer}" filterMatchMode="in">
+ <p:column headerText="#{project.ADMIN_PRODUCT_MANUFACTURER_NAME_HEADER}" sortBy="#{product.productManufacturer}" filterBy="#{product.productManufacturer}" filterMatchMode="in">
<f:facet name="filter">
<p:selectCheckboxMenu
filter="true"
target="_blank"
title="#{msg.LINK_COMPANY_WEBSITE_URL_TITLE}"
rel="external"
- rendered="#{not empty product.productManufacturer.companyWebsiteUrl and not empty product.productManufacturer.companyName}"
+ rendered="#{not empty product.productManufacturer and not empty product.productManufacturer.companyWebsiteUrl}"
>
<h:outputText value="#{product.productManufacturer.companyName}" />
</p:link>
- <h:outputText value="#{product.productManufacturer.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{empty product.productManufacturer.companyWebsiteUrl and not empty product.productManufacturer.companyName}" />
+ <h:outputText value="#{product.productManufacturer.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{not empty product.productManufacturer and empty product.productManufacturer.companyWebsiteUrl}" />
<h:outputText value="#{msg.ADMIN_NOT_ASSIGNED}" title="#{project.ADMIN_NO_PRODUCT_MANUFACTURER_ASSIGNED_TITLE}" rendered="#{empty product.productManufacturer}" />
</p:column>
- <p:column headerText="#{msg.ADMIN_HEADER_ENTRY_CREATED}" sortBy="#{product.productCreated}" filterable="false">
+ <p:column headerText="#{msg.ENTRY_CREATED_HEADER}" sortBy="#{product.productCreated}" filterable="false">
<h:outputText id="productCreated" value="#{product.productCreated.time}">
<f:convertDateTime for="productCreated" type="both" timeStyle="short" dateStyle="short" />
</h:outputText>
</p:column>
- <p:column headerText="#{msg.ADMIN_HEADER_ACTION_LINKS}" sortable="false" filterable="false">
+ <p:column headerText="#{msg.ADMIN_ACTION_LINKS_HEADER}" sortable="false" filterable="false">
<product-links:outputGenericProductAdminMiniLinks product="#{product}" />
</p:column>
</p:dataTable>
+
+ <p:dialog
+ dynamic="true"
+ modal="true"
+ resizable="false"
+ header="#{project.ADMIN_SINGLE_PRODUCT_DETAILS_HEADER}"
+ hideEffect="fade"
+ showEffect="fade"
+ widgetVar="productDialog"
+ position="center center"
+ responsive="true"
+ >
+ <p:outputPanel id="product-details">
+ <p:panelGrid columns="2" rendered="#{not empty productListController.selectedProduct}" columnClasses="label,value">
+ <f:facet name="header">
+ <h:outputFormat value="#{project.ADMIN_PRODUCT_DETAILS_HEADER}">
+ <f:param value="#{local[productListController.selectedProduct.productI18nKey]}" />
+ <f:param value="#{productListController.selectedProduct.productId}" />
+ </h:outputFormat>
+ </f:facet>
+
+ <p:outputLabel value="#{msg.ID_NUMBER_HEADER}" title="#{project.PRODUCT_ID_NUMBER_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productId}" />
+
+ <p:outputLabel value="#{msg.ADMIN_I18N_KEY_HEADER}" title="#{project.PRODUCT_I18N_KEY_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productI18nKey}" title="#{local[productListController.selectedProduct.productI18nKey]}" />
+
+ <p:outputLabel value="#{project.PRODUCT_NUMBER_HEADER}" title="#{project.PRODUCT_NUMBER_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productNumber}" />
+
+ <p:outputLabel value="#{project.PRODUCT_AVAILABILITY_HEADER}" title="#{project.PRODUCT_AVAILABILITY_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productAvailability ? msg.CHOICE_YES : msg.CHOICE_NO}" />
+
+ <p:outputLabel value="#{project.AGE_GROUP_HEADER}" title="#{project.PRODUCT_AGE_GROUP_TITLE}" />
+ <h:outputText value="#{project[productListController.selectedProduct.productAgeGroup.i18nKey]}" title="#{productListController.selectedProduct.productAgeGroup.i18nKey}" rendered="#{not empty productListController.selectedProduct.productAgeGroup.i18nKey}" />
+ <h:outputText value="#{project.PRODUCT_HAS_NO_AGE_GROUP}" rendered="#{empty productListController.selectedProduct.productAgeGroup.i18nKey}" />
+
+ <p:outputLabel value="#{project.CURRENCY_CODE_HEADER}" title="#{project.PRODUCT_CURRENCY_CODE_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productCurrencyCode}" />
+
+ <p:outputLabel value="#{project.PRODUCT_GROSS_PRICE_HEADER}" title="#{project.PRODUCT_GROSS_PRICE_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productGrossPrice}">
+ <f:convertNumber type="currency" currencyCode="#{productListController.selectedProduct.productCurrencyCode}" />
+ </h:outputText>
+
+ <p:outputLabel value="#{project.PRODUCT_NET_PRICE_HEADER}" title="#{project.PRODUCT_NET_PRICE_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productNetPrice}">
+ <f:convertNumber type="currency" currencyCode="#{productListController.selectedProduct.productCurrencyCode}" />
+ </h:outputText>
+
+ <p:outputLabel value="#{project.PRODUCT_TAX_RATE_HEADER}" title="#{project.PRODUCT_TAX_RATE_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productTaxRate}">
+ <!-- @TODO No real percentage number, 7 means 7%, not 700% -->
+ <f:convertNumber type="number" />
+ </h:outputText>
+
+ <p:outputLabel value="#{project.PRODUCT_SIZE_HEADER}" title="#{project.PRODUCT_SIZE_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productSize}" />
+
+ <p:outputLabel value="#{project.PRODUCT_UNIT_AMOUNT_HEADER}" title="#{project.PRODUCT_UNIT_AMOUNT_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productUnitAmount}">
+ <f:convertNumber type="number" />
+ </h:outputText>
+
+ <p:outputLabel value="#{project.PRODUCT_UNIT_I18N_KEY_HEADER}" title="#{project.PRODUCT_UNIT_I18N_KEY_TITLE}" />
+ <h:outputText value="#{productListController.selectedProduct.productUnitI18nKey}" title="#{local[productListController.selectedProduct.productUnitI18nKey]}" />
+
+ <p:outputLabel value="#{project.ADMIN_ASSIGNED_PRODUCT_CATEGORY_HEADER}" title="#{project.ADMIN_ASSIGNED_PRODUCT_CATEGORY_TITLE}" />
+ <p:link outcome="admin_show_product_category" title="#{project.ADMIN_LINK_SHOW_GENERIC_PRODUCT_CATEGORY_TITLE}" value="#{local[productListController.selectedProduct.productCategory.categoryI18nKey]}">
+ <f:param name="categoryId" value="#{productListController.selectedProduct.productCategory.categoryId}" />
+ </p:link>
+
+ <p:outputLabel value="#{project.ADMIN_ASSIGNED_PRODUCT_MANUFACTURER_HEADER}" title="#{project.ADMIN_ASSIGNED_PRODUCT_MANUFACTURER_TITLE}" />
+ <p:link
+ outcome="admin_show_basic_data"
+ title="#{msg.ADMIN_LINK_SHOW_BASIC_DATA_TITLE}"
+ rendered="#{not empty productListController.selectedProduct.productManufacturer}"
+ >
+ <h:outputFormat value="#{msg.BASIC_DATA_LINK_MASK}">
+ <f:param value="#{productListController.selectedProduct.productManufacturer.companyName}" />
+ <f:param value="#{productListController.selectedProduct.productManufacturer.basicDataId}" />
+ </h:outputFormat>
+ <f:param name="basicDataId" value="#{productListController.selectedProduct.productManufacturer.basicDataId}" />
+ </p:link>
+ <h:outputText value="#{project.PRODUCT_HAS_NO_MANUFACTURER_ASSIGNED}" rendered="#{empty productListController.selectedProduct.productManufacturer}" />
+ </p:panelGrid>
+ </p:outputPanel>
+ </p:dialog>
</h:form>
<h:form>
</p:panelGrid>
</f:facet>
- <p:column headerText="#{msg.ADMIN_HEADER_ID_NUMBER}" sortBy="#{category.categoryId}" filterable="false">
+ <p:column headerText="#{msg.ID_NUMBER_HEADER}" sortBy="#{category.categoryId}" filterable="false">
<p:link outcome="admin_show_product_category" title="#{project.ADMIN_LINK_SHOW_PRODUCT_CATEGORY_TITLE}" value="#{category.categoryId}">
<f:param name="categoryId" value="#{category.categoryId}" />
</p:link>
</p:column>
- <p:column headerText="#{msg.ADMIN_HEADER_I18N_KEY}" sortBy="#{category.categoryI18nKey}" filterBy="#{category.categoryI18nKey}" filterMatchMode="contains">
+ <p:column headerText="#{msg.ADMIN_I18N_KEY_HEADER}" sortBy="#{category.categoryI18nKey}" filterBy="#{category.categoryI18nKey}" filterMatchMode="contains">
<h:outputText value="#{local[category.categoryI18nKey]}" title="#{category.categoryI18nKey}" />
</p:column>
- <p:column headerText="#{project.ADMIN_HEADER_ASSIGNED_PARENT_CATEGORY}" sortBy="#{category.parentCategory}" filterBy="#{category.parentCategory}" filterMatchMode="in">
+ <p:column headerText="#{project.ADMIN_ASSIGNED_PARENT_CATEGORY_HEADER}" sortBy="#{category.parentCategory}" filterBy="#{category.parentCategory}" filterMatchMode="in">
<f:facet name="filter">
<p:selectCheckboxMenu
filter="true"
</p:link>
</p:column>
- <p:column headerText="#{msg.ADMIN_HEADER_ENTRY_CREATED}" sortBy="#{category.categoryCreated}" filterable="false">
+ <p:column headerText="#{msg.ENTRY_CREATED_HEADER}" sortBy="#{category.categoryCreated}" filterable="false">
<h:outputText id="categoryCreated" value="#{category.categoryCreated.time}">
<f:convertDateTime for="categoryCreated" type="both" timeStyle="short" dateStyle="short" />
</h:outputText>
</p:column>
- <p:column headerText="#{msg.ADMIN_HEADER_ACTION_LINKS}" sortable="false" filterable="false">
+ <p:column headerText="#{msg.ADMIN_ACTION_LINKS_HEADER}" sortable="false" filterable="false">
<product-links:outputProductCategoryAdminMiniLinks category="#{category}" />
</p:column>
</p:dataTable>