Fix: 1. Save proc architecture update for records saved with subrecords / linked records, such as Order has Items. \n 2. Style improvements for Product Category, Product, Product Permutation pages.

This commit is contained in:
2024-11-15 08:58:37 +00:00
parent 8fc3d8a803
commit 51d991ba42
41 changed files with 1931 additions and 413 deletions

View File

@@ -56,12 +56,12 @@
<!--
<input class="{{ model.FLAG_COST_LOCAL }}" type="number" min="0" step="0.01"
-->
<div {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
<div class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_EXCL }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
0
</div>
</td>
<td class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_INCL }}">
<div {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
<div class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_EXCL }}" {{ model.ATTR_VALUE_CURRENT }}="0" {{ model.ATTR_VALUE_PREVIOUS }}>
0
</div>
</td>
@@ -111,7 +111,11 @@
{% include 'components/store/_preview_DDL_product_permutation_unit_measurement_quantity.html' %}
</td>
<td class="{{ model.FLAG_IS_SUBSCRIPTION }}">
<input class="{{ model.FLAG_IS_SUBSCRIPTION }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.is_subscription | lower }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.is_subscription | lower }}">
<input type="checkbox" {% if permutation.is_subscription %}checked{% endif %}
class="{{ model.FLAG_IS_SUBSCRIPTION }}"
{{ model.ATTR_VALUE_CURRENT }}="{{ permutation.is_subscription | lower }}"
{{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.is_subscription | lower }}"
/>
</td>
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }}">
{% set value = permutation.count_interval_recurrence if permutation.count_interval_recurrence is not none else 1 %}
@@ -132,7 +136,11 @@
<input class="{{ model.FLAG_ID_STRIPE_PRODUCT }}" type="text" value="{{ value }}" {{ model.ATTR_VALUE_CURRENT }}="{{ value }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ value }}">
</td>
<td class="{{ model.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED }}">
<input class="{{ model.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED }}" type="checkbox" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.does_expire_faster_once_unsealed | lower }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.does_expire_faster_once_unsealed | lower }}">
<input type="checkbox" {% if permutation.does_expire_faster_once_unsealed %}checked{% endif %}
class="{{ model.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED }}"
{{ model.ATTR_VALUE_CURRENT }}="{{ permutation.does_expire_faster_once_unsealed | lower }}"
{{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.does_expire_faster_once_unsealed | lower }}"
/>
</td>
<td class="{{ model.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED }}">
{% set value = permutation.count_interval_expiration_unsealed if permutation.count_interval_expiration_unsealed is not none else 1 %}
@@ -149,10 +157,14 @@
{% include 'components/store/_preview_DDL_product_permutation_interval_expiration_unsealed.html' %}
</td>
<td class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_EXCL }}">
<input class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_EXCL }}" type="number" min="0" value="{{ permutation.cost_local_VAT_excl }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.cost_local_VAT_excl }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.cost_local_VAT_excl }}">
<div class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_EXCL }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.cost_local_VAT_excl }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.cost_local_VAT_excl }}">
{{ permutation.cost_local_VAT_excl }}
</div>
</td>
<td class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_INCL }}">
<input class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_INCL }}" type="number" min="0" value="{{ permutation.cost_local_VAT_incl }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.cost_local_VAT_incl }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.cost_local_VAT_incl }}">
<div class="{{ model.FLAG_COST_UNIT_LOCAL_VAT_INCL }}" {{ model.ATTR_VALUE_CURRENT }}="{{ permutation.cost_local_VAT_incl }}" {{ model.ATTR_VALUE_PREVIOUS }}="{{ permutation.cost_local_VAT_incl }}">
{{ permutation.cost_local_VAT_incl }}
</div>
</td>
{% set currency = permutation.currency_cost %}

View File

@@ -103,15 +103,17 @@ var flagUnitMeasurementIntervalExpirationUnsealed = "{{ model.FLAG_UNIT_MEASUREM
var flagUnitMeasurementIntervalRecurrence = "{{ model.FLAG_UNIT_MEASUREMENT_INTERVAL_RECURRENCE }}";
var flagUnitMeasurementLatencyManufacture = "{{ model.FLAG_UNIT_MEASUREMENT_LATENCY_MANUFACTURE }}";
var flagUnitMeasurementQuantity = "{{ model.FLAG_UNIT_MEASUREMENT_QUANTITY }}";
var hashGetStoreCustomerSalesOrder = "{{ model.HASH_GET_STORE_CUSTOMER_SALES_ORDER }}";
var hashGetStoreManufacturingPurchaseOrder = "{{ model.HASH_GET_STORE_MANUFACTURING_PURCHASE_ORDER }}";
var hashGetStoreProduct = "{{ model.HASH_GET_STORE_PRODUCT }}";
var hashGetStoreProductCategory = "{{ model.HASH_GET_STORE_PRODUCT_CATEGORY }}";
var hashGetStoreProductPermutation = "{{ model.HASH_GET_STORE_PRODUCT_PERMUTATION }}";
var hashGetStoreProductVariation = "{{ model.HASH_GET_STORE_PRODUCT_VARIATION }}";
var hashGetStoreStockItem = "{{ model.HASH_GET_STORE_STOCK_ITEM }}";
var hashGetStoreSupplier = "{{ model.HASH_GET_STORE_SUPPLIER }}";
var hashGetStoreSupplierPurchaseOrder = "{{ model.HASH_GET_STORE_SUPPLIER_PURCHASE_ORDER }}";
{#
var hashGetStoreCustomerSalesOrder = "{{ model.HASH_GET_STORE_CUSTOMER_SALES_ORDER }}";
var hashGetStoreManufacturingPurchaseOrder = "{{ model.HASH_GET_STORE_MANUFACTURING_PURCHASE_ORDER }}";
var hashGetStoreProduct = "{{ model.HASH_GET_STORE_PRODUCT }}";
var hashGetStoreProductCategory = "{{ model.HASH_GET_STORE_PRODUCT_CATEGORY }}";
var hashGetStoreProductPermutation = "{{ model.HASH_GET_STORE_PRODUCT_PERMUTATION }}";
var hashGetStoreProductVariation = "{{ model.HASH_GET_STORE_PRODUCT_VARIATION }}";
var hashGetStoreStockItem = "{{ model.HASH_GET_STORE_STOCK_ITEM }}";
var hashGetStoreSupplier = "{{ model.HASH_GET_STORE_SUPPLIER }}";
var hashGetStoreSupplierPurchaseOrder = "{{ model.HASH_GET_STORE_SUPPLIER_PURCHASE_ORDER }}";
#}
var hashSaveStoreCustomerSalesOrder = "{{ model.HASH_SAVE_STORE_CUSTOMER_SALES_ORDER }}";
var hashSaveStoreManufacturingPurchaseOrder = "{{ model.HASH_SAVE_STORE_MANUFACTURING_PURCHASE_ORDER }}";
var hashSaveStoreProduct = "{{ model.HASH_SAVE_STORE_PRODUCT }}";

View File

@@ -273,64 +273,66 @@
<a class="{{ model.FLAG_NAV_CONTACT }}">Contact</a>
</div>
{% if model.is_page_store and model.user.can_admin_store %}
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a class="{{ model.FLAG_NAV_STORE_PRODUCT_PERMUTATIONS }}">Product Permutations</a>
</div>
{% if model.user.can_admin_store %}
{#
{% if model.is_page_store and model.user.can_admin_store %}
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a class="{{ model.FLAG_NAV_STORE_STOCK_ITEMS }}">Stock Items</a>
<a class="{{ model.FLAG_NAV_STORE_PRODUCT_PERMUTATIONS }}">Product Permutations</a>
</div>
{% endif %}
<!--
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<!-- <a href="{ url_ for('create_price_dummy') }">Create template price</a> --
<form id="{{ model.ID_FORM_IS_INCLUDED_VAT }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_is_included_VAT') } }" method="POST">
{ { model.form_is_included_VAT.hidden_tag() }}
<div class="container-input">
{ { model.form_is_included_VAT.is_included.label }}
{ { model.form_is_included_VAT.is_included( checked = model.is_included_VAT ) }}
{ % for error in model.form_is_included_VAT.is_included.errors %}
<p class="error">{{ error }}</p>
{ % endfor %}
{% if model.user.can_admin_store %}
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a class="{{ model.FLAG_NAV_STORE_STOCK_ITEMS }}">Stock Items</a>
</div>
</form>
</div>
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<form id="{{ model.ID_FORM_DELIVERY_REGION }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_delivery_region') } }" method="POST">
{ { model.form_delivery_region.hidden_tag() }}
<div class="container-input">
{ { model.form_delivery_region.id_region_delivery.label }}
{ { model.form_delivery_region.id_region_delivery() }}
{ % for error in model.form_delivery_region.id_region_delivery.errors %}
<p class="error">{{ error }}</p>
{ % endfor %}
</div>
</form>
</div>
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<form id="{{ model.ID_FORM_CURRENCY }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_currency') } }" method="POST">
{ { model.form_currency.hidden_tag() }}
<div class="container-input">
{ { model.form_currency.id_currency.label }}
{ { model.form_currency.id_currency() }}
{ % for error in model.form_currency.id_currency.errors %}
<p class="error">{{ error }}</p>
{ % endfor %}
</div>
</form>
</div>
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a href="{ { url_for('routes_user.logout') if model.is_user_logged_in else url_for('routes_user.login') }}" style="float:right">{{ 'Logout' if model.is_user_logged_in else 'Login' }}</a>
</div>
-->
{% else %}
{% if model.user.can_admin_store %}
{% endif %}
<!--
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a class="{{ model.FLAG_NAV_STORE_HOME }}">Shop</a>
<!-- <a href="{ url_ for('create_price_dummy') }">Create template price</a> --
<form id="{{ model.ID_FORM_IS_INCLUDED_VAT }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_is_included_VAT') } }" method="POST">
{ { model.form_is_included_VAT.hidden_tag() }}
<div class="container-input">
{ { model.form_is_included_VAT.is_included.label }}
{ { model.form_is_included_VAT.is_included( checked = model.is_included_VAT ) }}
{ % for error in model.form_is_included_VAT.is_included.errors %}
<p class="error">{{ error }}</p>
{ % endfor %}
</div>
</form>
</div>
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<form id="{{ model.ID_FORM_DELIVERY_REGION }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_delivery_region') } }" method="POST">
{ { model.form_delivery_region.hidden_tag() }}
<div class="container-input">
{ { model.form_delivery_region.id_region_delivery.label }}
{ { model.form_delivery_region.id_region_delivery() }}
{ % for error in model.form_delivery_region.id_region_delivery.errors %}
<p class="error">{{ error }}</p>
{ % endfor %}
</div>
</form>
</div>
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<form id="{{ model.ID_FORM_CURRENCY }}" class="{{ model.FLAG_CONTAINER }}" action="{ { url_ for('set_currency') } }" method="POST">
{ { model.form_currency.hidden_tag() }}
<div class="container-input">
{ { model.form_currency.id_currency.label }}
{ { model.form_currency.id_currency() }}
{ % for error in model.form_currency.id_currency.errors %}
<p class="error">{{ error }}</p>
{ % endfor %}
</div>
</form>
</div>
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a href="{ { url_for('routes_user.logout') if model.is_user_logged_in else url_for('routes_user.login') }}" style="float:right">{{ 'Logout' if model.is_user_logged_in else 'Login' }}</a>
</div>
-->
{% else %}
{% if model.user.can_admin_store %}
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a class="{{ model.FLAG_NAV_STORE_HOME }}">Shop</a>
</div>
{% endif %}
{% endif %}
{% endif %}
#}
{% if model.user.can_admin_store %}
<div class="{{ model.FLAG_CONTAINER }} {{ model.FLAG_ROW }}">
<a class="{{ model.FLAG_NAV_ADMIN_HOME }}">Admin</a>