hedera-web/web/forms/ecomerce/catalog/ui.xml

444 lines
12 KiB
XML
Executable File

<vn>
<vn-group>
<vn-param id="search"/>
<vn-param id="realm" on-changed="refreshTitleColor"/>
<vn-param id="type" on-changed="onTypeChange"/>
<vn-param id="color"/>
<vn-param id="origin"/>
<vn-param id="category"/>
<vn-param id="producer"/>
</vn-group>
<vn-group>
<sql-filter type="AND" id="filter">
<sql-filter-item type="EQUAL" primary="false" id="op-realm">
<sql-field name="reino_id" target="t"/>
<sql-value param="realm"/>
</sql-filter-item>
<sql-filter-item type="LIKE" id="op-name">
<sql-field name="Article"/>
<sql-search-tags param="search"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-type">
<sql-field name="tipo_id" target="a"/>
<sql-value param="type"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-color">
<sql-field name="Color"/>
<sql-value param="color"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-origin">
<sql-field name="id_origen"/>
<sql-value param="origin"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-category">
<sql-field name="Categoria"/>
<sql-value param="category"/>
</sql-filter-item>
<sql-filter-item type="EQUAL" id="op-producer">
<sql-field name="producer_id"/>
<sql-value param="producer"/>
</sql-filter-item>
</sql-filter>
</vn-group>
<vn-group>
<vn-hash-param key="realm" param="realm"/>
<vn-hash-param key="type" param="type"/>
<db-query id="basket-lines">
<custom>
SELECT item_id, warehouse_id, SUM(amount) amount
FROM basket_item
GROUP BY warehouse_id
</custom>
</db-query>
<db-model result-index="2" id="items-model">
<custom>
CREATE TEMPORARY TABLE tmp.bionic_calc
(INDEX (item_id))
ENGINE=MEMORY
SELECT a.Id_Article item_id FROM vn2008.Articles a
JOIN vn2008.Tipos t ON t.tipo_id = a.tipo_id
WHERE #filter;
CALL bionic_calc ();
SELECT a.Id_Article item_id, a.description, b.available, b.price,
p.name producer, a.Foto, a.Article, a.Categoria, a.Medida,
a.Tallos, c.str color, o.str origin
FROM tmp.bionic_item b
JOIN vn2008.Articles a ON a.Id_Article = b.item_id
LEFT JOIN vn2008.producer p ON p.producer_id = a.producer_id
LEFT JOIN vn_locale.color_view c ON c.color_id = a.Color
LEFT JOIN vn_locale.origin_view o ON o.origin_id = a.id_origen
WHERE b.available > 0
ORDER BY a.Article, a.Medida
LIMIT 400;
</custom>
<sql-batch property="batch" id="filter-batch">
<custom>
<item name="filter" object="filter"/>
</custom>
</sql-batch>
</db-model>
<db-model id="item-lots" result-index="1" on-status-changed-after="onStatusChange">
<custom>
CALL bionic_from_item (#item);
SELECT p.warehouse_id, w.name warehouse, p.grouping, p.price, p.rate, l.available
FROM tmp.bionic_lot l
JOIN tmp.bionic_price p ON p.warehouse_id = l.warehouse_id
JOIN vn2008.warehouse w ON w.id = p.warehouse_id
ORDER BY warehouse_id, grouping;
</custom>
<sql-batch property="batch" id="lots-batch"/>
</db-model>
<db-form id="basket" on-ready="onBasketReady">
<db-model property="model">
<custom>
SELECT o.id, o.date_send, ag.description agency, v.code method
FROM basket o
JOIN vn2008.Agencias ag ON ag.Id_Agencia = o.agency_id
JOIN vn2008.Vistas v ON v.vista_id = o.delivery_method_id
</custom>
</db-model>
</db-form>
</vn-group>
<div id="title">
<h1 id="title-text"><t>Catalog</t></h1>
</div>
<div id="actions" class="catalog-actions">
<htk-search-entry
param="search"/>
<htk-button
image="image/dark/view.svg"
tip="_Switch view"
on-click="onSwitchViewClick"
showText="true"/>
<htk-button
id="a"
image="image/dark/basket.svg"
tip="_ShoppingBasket"
on-click="onBasketClick"
showText="true"/>
<button class="menu" on-click="onShowMenuClick">
<img src="image/dark/menu.svg" alt="_Menu"/>
</button>
</div>
<div id="form" class="catalog">
<div id="main" class="main"/>
</div>
<div id="list-view" class="list-view">
<div class="box">
<htk-grid
id="items-grid"
class="items"
empty-message="_Select filter from right menu"
show-header="false">
<htk-column-image
title="*"
class="icon"
column="Foto"
directory="catalog"
subdir="200x200"
show-full="true"
full-dir="900x900"
editable="true"/>
<vn-column-item
title="_Name"
column="Article"
renderer="nameRenderer"/>
<htk-column-text
title="_Siz"
column="Medida"/>
<htk-column-text
title="_Cat"
column="Categoria"/>
<htk-column-spin
title="_Aval"
column="available"/>
<htk-column-text
title="_Price"
column="price"
format="_from %.2d€"
class="price"/>
<htk-column-button
column="id"
image="image/add.svg"
tip="_AddToBasket"
on-clicked="onAddItemClick"/>
</htk-grid>
<p class="footer-message">
<t>IndicativePhotos</t>
</p>
</div>
</div>
<htk-repeater
id="grid-view"
class="grid-view"
empty-message="_Select filter from right menu"
form-id="item"
renderer="gridRenderer">
<custom>
<div class="box item-box">
<div class="image">
<htk-image
directory="catalog"
subdir="200x200"
form="item"
column="Foto"
show-full="true"
full-dir="900x900"
editable="true"/>
</div>
<htk-button
form="item"
column="id"
tip="_More info"
image="image/info.svg"
on-click="onInfoClick"
id="info-button"
class="info-button"/>
<h2>
<htk-text form="item" column="Article"/>
</h2>
<p class="producer">
<htk-text form="item" column="producer"/>
</p>
<p>
<htk-text form="item" column="Medida"/>
<htk-text form="item" column="Categoria"/>
<htk-text form="item" column="color"/>
</p>
<p>
<htk-text form="item" column="origin"/>
<htk-text form="item" column="Tallos" format="%.0d Units"/>
</p>
<div class="aval-price">
<htk-text form="item" column="available"/>
<t>from</t>
<span class="price">
<htk-text form="item" column="price" format="%.2d€"/>
</span>
</div>
<htk-button
form="item"
column="id"
tip="_AddToBasket"
image="image/add.svg"
on-click="onGridAddItemClick"
class="add-button"/>
<div class="clear"/>
</div>
</custom>
</htk-repeater>
<div id="right-panel" class="right-panel" on-click="onRightPanelClick">
<div class="section basket-info">
<p>
<htk-text form="basket" column="date_send" format="_%A, %e of %B"/>
</p>
<p>
<span id="method"/>
<htk-text form="basket" column="agency"/>
</p>
<button class="thin" on-click="onConfigureClick">
<t>Change</t>
</button>
</div>
<div class="section filters">
<select on-change="onOrderChange">
<option value="" disabled="true" selected="true">
<t>Order</t>
</option>
<option value="Article">
<t>Name</t>
</option>
<option value="price">
<t>Price</t>
</option>
<option value="available">
<t>Available</t>
</option>
<option value="Medida">
<t>Size</t>
</option>
<option value="color">
<t>Color</t>
</option>
<option value="producer">
<t>Producer</t>
</option>
<option value="Abreviatura">
<t>Origin</t>
</option>
<option value="Categoria">
<t>Category</t>
</option>
</select>
<vn-filter
placeholder="_Realm"
param="realm">
<db-model
id="realms-model"
property="model"
on-status-changed="refreshTitleColor">
<custom>
SELECT r.id, l.str name, r.color
FROM vn2008.reinos r
LEFT JOIN vn_locale.realm_view l ON l.realm_id = r.id
WHERE r.display != FALSE
ORDER BY name
</custom>
</db-model>
</vn-filter>
<vn-filter
placeholder="_Family"
param="type">
<db-model
id="types-model"
property="model"
conn="conn"
auto-load="false"
result-index="1"
on-status-changed="refreshTitle">
<custom>
CALL item_available ();
SELECT DISTINCT t.tipo_id, l.str name
FROM vn2008.Tipos t
JOIN vn2008.Articles a ON a.tipo_id = t.tipo_id
LEFT JOIN vn_locale.family_view l ON l.family_id = t.tipo_id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<sql-filter-item type="EQUAL" id="op-realm">
<sql-field name="reino_id" target="t"/>
<sql-value param="realm"/>
</sql-filter-item>
<pointer object="op-name"/>
<pointer object="op-color"/>
<pointer object="op-origin"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Color"
param="color">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT c.Id_Tinta, l.str name
FROM vn2008.Tintas c
JOIN vn2008.Articles a ON a.Color = c.Id_Tinta
LEFT JOIN vn_locale.color_view l ON l.color_id = c.Id_Tinta
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-origin"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Producer"
param="producer">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT p.producer_id, p.name
FROM vn2008.producer p
JOIN vn2008.Articles a ON a.producer_id = p.producer_id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-origin"/>
<pointer object="op-color"/>
<pointer object="op-category"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Origin"
param="origin">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT o.id, l.str name, o.Abreviatura
FROM vn2008.Origen o
JOIN vn2008.Articles a ON a.id_origen = o.id
LEFT JOIN vn_locale.origin_view l ON l.origin_id = o.id
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY name
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-color"/>
<pointer object="op-category"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<vn-filter
placeholder="_Category"
param="category">
<db-model property="model" auto-load="false" result-index="1">
<custom>
CALL item_available ();
SELECT DISTINCT a.Categoria, a.Categoria category
FROM vn2008.Articles a
JOIN tmp.item_available i ON i.item_id = a.Id_Article
WHERE #filter
ORDER BY a.Categoria
</custom>
</db-model>
<sql-filter property="filter" always-ready="true" type="AND">
<pointer object="op-name"/>
<pointer object="op-type"/>
<pointer object="op-color"/>
<pointer object="op-origin"/>
<pointer object="op-producer"/>
</sql-filter>
</vn-filter>
<button class="thin" on-click="onRemoveFiltersClick">
<t>Remove filters</t>
</button>
</div>
</div>
<div id="desc-popup" class="desc-popup"/>
<div id="lots-popup" class="lots-popup">
<htk-grid class="lots-grid" model="item-lots" show-header="false">
<htk-column-text title="_Store" column="warehouse"/>
<htk-column-spin title="_Price" column="price" unit="€" digits="2"/>
<htk-column-text title="_Pack" column="grouping" format="x%.0d"/>
<htk-column-button
column="id"
image="image/add.svg"
tip="_Add"
on-clicked="onAddLotClick"/>
</htk-grid>
<div class="amount">
<button on-click="onEraseClick" title="_Erase" class="erase">
<img
src="image/dark/delete.svg"
alt="_Erase"/>
</button>
<htk-text id="amount"/>
<button on-click="onConfirmClick" title="_Confirm" class="confirm">
<img
src="image/dark/ok.svg"
alt="_Confirm"/>
</button>
<div class="clear"/>
</div>
</div>
</vn>