1 Commits

Author SHA1 Message Date
2103335735 Fix: Remove keys etc. for public demo repo. 2025-01-14 10:53:24 +00:00
436 changed files with 2748 additions and 55552 deletions

View File

@@ -1,41 +1,55 @@
Precision and Research Technology Systems Limited Precision and Research Technology Systems Limited
Website with online store ERP system with e-commerce store
Powered by flask
enter virtual environment: # Run
1. enter virtual environment:
python -m venv VIRTUAL_ENVIRONMENT_NAME python -m venv VIRTUAL_ENVIRONMENT_NAME
run module bundler: 2. install required packages:
pip install -r requirements.txt
3. run module bundler:
npm run build npm run build
host for machine: 4. host for machine:
python -m flask run python -m flask run
host for local network: (or 4.) host for local network:
python -m flask run --host=0.0.0.0 python -m flask run --host=0.0.0.0
files dedicated to each page: # Code review
CSS Sample files:
page CSS:
HTML Page styles
page static/css/pages/store/supplier.css
row JavaScript:
JavaScript Page object
page static/js/pages/store/product_categories.js
api Router
router static/js/router.js
base - navigation buttons
MySQL HTML:
get Layout template
save templates/layouts/layout.html
table Page template
staging table templates/pages/store/_supplier.html
audit table
Python Python:
business object Business object:
controller business_objects/store/product_price.py
datastore Controller:
form controllers/core.py
model Datastore:
datastores/datastore_store_product_category.py
Model:
models/model_view_store_product_permutation.py
SQL:
Table:
static/MySQL/1403_tbl_Shop_Supplier_Address.sql
Trigger
static/MySQL/3000_tri_Shop_Access_Level.sql
Save procedure
static/MySQL/7200_p_shop_save_product_category.sql

View File

@@ -1,83 +0,0 @@
User.from_json_auth0
json: {'access_token': 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIn0..arWSrpDU5354qDI7.IbRrkeXan6irbNYnEDXOKgV_Qa3HW58e-q-pxzyQmALiaHX4FboD-AWN6FnDtS_npGpuWgyRf8mYfC9alfD72K5nYQDNcWFrMaQGEY_uz4dlGsariyQD27XoEl6S7Uq9e8junqKbS2miQZ7VOu79MfkpgyM-Q8sTRXE8bs2KjjDtJLAhK0RWz-hsIqlUgNTPMA5Ir1gcm-uA_sKEC51kAnqQxV2WCZtvaj9cMl_Zjt11KeuVKPOS_gbL8cTR9V5gUlJCF6rLWgVVvS75H19eGnHdv0jJ5DwW_XaN_l_wojQigBTjDKKXz4J184vB1ivvtNWQuINEGUe5lIt7j-a-ZALw._IMfFUmvPE-89DHDRhhbVg', 'id_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InVveXZURk44bjJvZHg1VkFLMFh1RyJ9.eyJuaWNrbmFtZSI6ImVkd2FyZC5taWRkbGV0b25zbWl0aCIsIm5hbWUiOiJlZHdhcmQubWlkZGxldG9uc21pdGhAZ21haWwuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20vYXZhdGFyLzUzZDNmMjQ0MDdkNTI1N2Y4NGYyN2NhMDc4NzRiZDY0P3M9NDgwJnI9cGcmZD1odHRwcyUzQSUyRiUyRmNkbi5hdXRoMC5jb20lMkZhdmF0YXJzJTJGZWQucG5nIiwidXBkYXRlZF9hdCI6IjIwMjQtMTEtMjJUMTI6NTI6MTEuMzI1WiIsImVtYWlsIjoiZWR3YXJkLm1pZGRsZXRvbnNtaXRoQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIiwiYXVkIjoiZ0dqeXRxTk1XQ2hTaXhxTzcyUlF6VkhXQWFlSkp6UmkiLCJpYXQiOjE3MzIyNzk5MzMsImV4cCI6MTczMjMxNTkzMywic3ViIjoiYXV0aDB8NjU4MmI5NWM4OTVkMDlhNzBiYTEwZmVmIiwic2lkIjoiX3VySVJlQjVJcW53czF4MXQxU08wT3lETzAyTzFyamgiLCJub25jZSI6IjdCRWV1UHlqOERZdkVTZnc0RkdNIn0.ApLWH6u8EUDhqkFo72vCdHv6IqHqGKzTi4vUe6w2NFvgFobAvsacwWTmirMM1Cj4CGkpXVTgau4pyURtxX0ubOfrLR-Xtj9TN1FXZ-l6ddmgpSt7rjbnRsQIEPlGUal9Gx44J36_4qI7fPc8Vo6U7mPKcpKCzcmHJTMrMZ0yMjYDEporwX0gf-DJ41_VbuFeLTjiYLABub_waSoNOqMVgq3pJmvcx-fq_6tj8cRULUWUl4S0zdv8KZIm59z--V45fhOEqRgqJshWZONNl3Y8Btcl8TvU0gCGEzUV9BI80gUYM42w9WS9G3zGiXneXgkld4dxebivgwmgqAQWhNQZ0g', 'scope': 'openid profile email', 'expires_in': 86400, 'token_type': 'Bearer', 'expires_at': 1732366332, 'userinfo': {'nickname': 'edward.middletonsmith', 'name': 'edward.middletonsmith@gmail.com', 'picture': 'https://s.gravatar.com/avatar/53d3f24407d5257f84f27ca07874bd64?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fed.png', 'updated_at': '2024-11-22T12:52:11.325Z', 'email': 'edward.middletonsmith@gmail.com', 'email_verified': False, 'iss': 'https://dev-nwak2066ef6h8ixn.us.auth0.com/', 'aud': 'gGjytqNMWChSixqO72RQzVHWAaeJJzRi', 'iat': 1732279933, 'exp': 1732315933, 'sub': 'auth0|6582b95c895d09a70ba10fef', 'sid': '_urIReB5Iqnws1x1t1SO0OyDO02O1rjh', 'nonce': '7BEeuPyj8DYvESfw4FGM'}}
user:
id_user: None
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: None
surname: None
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
user:
id_user: None
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: None
surname: None
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
DataStore_User.get_many_user
DataStore_Base.db_procedure_execute
proc_string: CALL p_get_many_user(:a_id_user, :a_id_user_auth0, :get_all_user, :get_inactive_user, :ids_user, :ids_user_auth0, :a_debug)
args: {'a_id_user': None, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': '', 'ids_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'a_debug': 0}
result: <sqlalchemy.engine.cursor.CursorResult object at 0x000001CAA039E7B0>
raw users: ((1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00'),)
type result set: <class 'tuple'>
len result set: 1
row: (1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00')
user <class 'business_objects.user.User'>:
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
type users: <class 'list'>
type user 0: <class 'business_objects.user.User'>
raw errors: ()
new result set: ()
User logged in
user (<class 'business_objects.user.User'>):
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
user key: authorisedUser
as_json: {'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'firstname': 'Teddy', 'surname': 'Middleton-Smith', 'email': 'edward.middletonsmith@gmail.com', 'is_email_verified': False, 'is_super_user': True, 'id_currency_default': None, 'id_region_default': None, 'is_included_VAT_default': True, 'can_admin_store': True, 'can_admin_user': True}
user stored on session
hash is none
state: /
hash_callback: /
user session: {'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'firstname': 'Teddy', 'surname': 'Middleton-Smith', 'email': 'edward.middletonsmith@gmail.com', 'is_email_verified': False, 'is_super_user': True, 'id_currency_default': None, 'id_region_default': None, 'is_included_VAT_default': True, 'can_admin_store': True, 'can_admin_user': True}
session: <SecureCookieSession {'_permanent': True, 'authorisedUser': {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}, 'csrf_token': '1689a59dcefc3084ed03c8dbce8e7ca280768f81', 'user': {'access_token': 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIn0..arWSrpDU5354qDI7.IbRrkeXan6irbNYnEDXOKgV_Qa3HW58e-q-pxzyQmALiaHX4FboD-AWN6FnDtS_npGpuWgyRf8mYfC9alfD72K5nYQDNcWFrMaQGEY_uz4dlGsariyQD27XoEl6S7Uq9e8junqKbS2miQZ7VOu79MfkpgyM-Q8sTRXE8bs2KjjDtJLAhK0RWz-hsIqlUgNTPMA5Ir1gcm-uA_sKEC51kAnqQxV2WCZtvaj9cMl_Zjt11KeuVKPOS_gbL8cTR9V5gUlJCF6rLWgVVvS75H19eGnHdv0jJ5DwW_XaN_l_wojQigBTjDKKXz4J184vB1ivvtNWQuINEGUe5lIt7j-a-ZALw._IMfFUmvPE-89DHDRhhbVg', 'expires_at': 1732366332, 'expires_in': 86400, 'id_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InVveXZURk44bjJvZHg1VkFLMFh1RyJ9.eyJuaWNrbmFtZSI6ImVkd2FyZC5taWRkbGV0b25zbWl0aCIsIm5hbWUiOiJlZHdhcmQubWlkZGxldG9uc21pdGhAZ21haWwuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20vYXZhdGFyLzUzZDNmMjQ0MDdkNTI1N2Y4NGYyN2NhMDc4NzRiZDY0P3M9NDgwJnI9cGcmZD1odHRwcyUzQSUyRiUyRmNkbi5hdXRoMC5jb20lMkZhdmF0YXJzJTJGZWQucG5nIiwidXBkYXRlZF9hdCI6IjIwMjQtMTEtMjJUMTI6NTI6MTEuMzI1WiIsImVtYWlsIjoiZWR3YXJkLm1pZGRsZXRvbnNtaXRoQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIiwiYXVkIjoiZ0dqeXRxTk1XQ2hTaXhxTzcyUlF6VkhXQWFlSkp6UmkiLCJpYXQiOjE3MzIyNzk5MzMsImV4cCI6MTczMjMxNTkzMywic3ViIjoiYXV0aDB8NjU4MmI5NWM4OTVkMDlhNzBiYTEwZmVmIiwic2lkIjoiX3VySVJlQjVJcW53czF4MXQxU08wT3lETzAyTzFyamgiLCJub25jZSI6IjdCRWV1UHlqOERZdkVTZnc0RkdNIn0.ApLWH6u8EUDhqkFo72vCdHv6IqHqGKzTi4vUe6w2NFvgFobAvsacwWTmirMM1Cj4CGkpXVTgau4pyURtxX0ubOfrLR-Xtj9TN1FXZ-l6ddmgpSt7rjbnRsQIEPlGUal9Gx44J36_4qI7fPc8Vo6U7mPKcpKCzcmHJTMrMZ0yMjYDEporwX0gf-DJ41_VbuFeLTjiYLABub_waSoNOqMVgq3pJmvcx-fq_6tj8cRULUWUl4S0zdv8KZIm59z--V45fhOEqRgqJshWZONNl3Y8Btcl8TvU0gCGEzUV9BI80gUYM42w9WS9G3zGiXneXgkld4dxebivgwmgqAQWhNQZ0g', 'scope': 'openid profile email', 'token_type': 'Bearer', 'userinfo': {'aud': 'gGjytqNMWChSixqO72RQzVHWAaeJJzRi', 'email': 'edward.middletonsmith@gmail.com', 'email_verified': False, 'exp': 1732315933, 'iat': 1732279933, 'iss': 'https://dev-nwak2066ef6h8ixn.us.auth0.com/', 'name': 'edward.middletonsmith@gmail.com', 'nickname': 'edward.middletonsmith', 'nonce': '7BEeuPyj8DYvESfw4FGM', 'picture': 'https://s.gravatar.com/avatar/53d3f24407d5257f84f27ca07874bd64?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fed.png', 'sid': '_urIReB5Iqnws1x1t1SO0OyDO02O1rjh', 'sub': 'auth0|6582b95c895d09a70ba10fef', 'updated_at': '2024-11-22T12:52:11.325Z'}}}>
DataStore_Base.get_user_session
User.from_json
json: {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}

132
app.log.2
View File

@@ -1,132 +0,0 @@
user <class 'business_objects.user.User'>:
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
type users: <class 'list'>
type user 0: <class 'business_objects.user.User'>
raw errors: ()
new result set: ()
User logged in
user (<class 'business_objects.user.User'>):
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
user key: authorisedUser
as_json: {'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'firstname': 'Teddy', 'surname': 'Middleton-Smith', 'email': 'edward.middletonsmith@gmail.com', 'is_email_verified': False, 'is_super_user': True, 'id_currency_default': None, 'id_region_default': None, 'is_included_VAT_default': True, 'can_admin_store': True, 'can_admin_user': True}
user stored on session
hash is none
state: /
hash_callback: /
user session: {'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'firstname': 'Teddy', 'surname': 'Middleton-Smith', 'email': 'edward.middletonsmith@gmail.com', 'is_email_verified': False, 'is_super_user': True, 'id_currency_default': None, 'id_region_default': None, 'is_included_VAT_default': True, 'can_admin_store': True, 'can_admin_user': True}
session: <SecureCookieSession {'_permanent': True, 'authorisedUser': {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}, 'csrf_token': '609aa5890b61ec21cc66550109ca31cc7e3eaa3d', 'user': {'access_token': 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIn0..PT10sdrXdrY56k-9.rU-DfkB98x5UEnQYnVi7819a1BotlXjB9IR3yCeRHKL3iVCQIcCm8-Cld93CGXBk9-74i_xFgke7wuY-K8hmzNt-R6XG8tikkKZDPvQzKQjsykgDOXxIHK2VQfIacOJILmLIa9XTB93gnKUUha9besm2nrRIluOSfe_sJgU7AhYQ3lWpoWyh-oGzjsO5ObGepcDuzikz5zK7kst90DYFHezFrDEPJwSXU8bBkm0DN6WNGOg3wumMG7BZvoi5TNhgGUleoxlr1w3RFgJZg_7ra_eNWXY9_d_dbF9Hc7F_Enhr1ZtSpW2LsX7MOlReoDEzM---S-3hbXVXuEfgufISqkbV.bRWgAFRVOFi8SejsOC3i3Q', 'expires_at': 1732366225, 'expires_in': 86400, 'id_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InVveXZURk44bjJvZHg1VkFLMFh1RyJ9.eyJuaWNrbmFtZSI6ImVkd2FyZC5taWRkbGV0b25zbWl0aCIsIm5hbWUiOiJlZHdhcmQubWlkZGxldG9uc21pdGhAZ21haWwuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20vYXZhdGFyLzUzZDNmMjQ0MDdkNTI1N2Y4NGYyN2NhMDc4NzRiZDY0P3M9NDgwJnI9cGcmZD1odHRwcyUzQSUyRiUyRmNkbi5hdXRoMC5jb20lMkZhdmF0YXJzJTJGZWQucG5nIiwidXBkYXRlZF9hdCI6IjIwMjQtMTEtMjJUMTI6NTA6MjUuMjI2WiIsImVtYWlsIjoiZWR3YXJkLm1pZGRsZXRvbnNtaXRoQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIiwiYXVkIjoiZ0dqeXRxTk1XQ2hTaXhxTzcyUlF6VkhXQWFlSkp6UmkiLCJpYXQiOjE3MzIyNzk4MjYsImV4cCI6MTczMjMxNTgyNiwic3ViIjoiYXV0aDB8NjU4MmI5NWM4OTVkMDlhNzBiYTEwZmVmIiwic2lkIjoia2FtQUprQW1SaF9va0w3T2x0aFJvTEtkR0JKbjhYMGUiLCJub25jZSI6InZmMzhSeUNaUTRlUHRKRmhaTUdYIn0.oMQD6ejzlZXR4wLToNnK_G6W9mbfAAMYOpOMce4B9ZRSwvCCIvHY--RyNNxFvpRDVgZaZylE1IHddNavNuCuk9v0LEg6y-25m1AwNo2ff3SlQsOQvqRlFO60MhzFnwIW2SZeTzufsD2qMVbvBcVbqKVYQSm8TyxyFsoGINroeQmBeAc82_m_OPUjPgHUkUi2kWTmVWSCVvbh7G25JwQjkBJvdwLDr-d4_HNuzUNFCjFtCvGpFtByi4w_eNq8E1KseJWh7dS_0z6J7tJWt_pBPHG_UISXcxo27kkREkB0aVbj4zzVfUU0Ta-NneEr4VTyz3KNo7r1574rIPrfVWzMsQ', 'scope': 'openid profile email', 'token_type': 'Bearer', 'userinfo': {'aud': 'gGjytqNMWChSixqO72RQzVHWAaeJJzRi', 'email': 'edward.middletonsmith@gmail.com', 'email_verified': False, 'exp': 1732315826, 'iat': 1732279826, 'iss': 'https://dev-nwak2066ef6h8ixn.us.auth0.com/', 'name': 'edward.middletonsmith@gmail.com', 'nickname': 'edward.middletonsmith', 'nonce': 'vf38RyCZQ4ePtJFhZMGX', 'picture': 'https://s.gravatar.com/avatar/53d3f24407d5257f84f27ca07874bd64?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fed.png', 'sid': 'kamAJkAmRh_okL7OlthRoLKdGBJn8X0e', 'sub': 'auth0|6582b95c895d09a70ba10fef', 'updated_at': '2024-11-22T12:50:25.226Z'}}}>
DataStore_Base.get_user_session
User.from_json
json: {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}
user:
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
User.from_json
json: {'can_admin_store': True, 'can_admin_user': True, 'email': 'edward.middletonsmith@gmail.com', 'firstname': 'Teddy', 'id_currency_default': None, 'id_region_default': None, 'id_user': 1, 'id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'is_email_verified': False, 'is_included_VAT_default': True, 'is_super_user': True, 'surname': 'Middleton-Smith'}
user:
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
argument_dict: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
executing p_get_many_user
DataStore_Base.db_procedure_execute
proc_string: CALL p_get_many_user(:a_id_user, :a_id_user_auth0, :get_all_user, :get_inactive_user, :ids_user, :ids_user_auth0, :a_debug)
args: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
result: <sqlalchemy.engine.cursor.CursorResult object at 0x000001CAA039E580>
data received
raw users: ((1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00'),)
raw errors: ()
new result set: ()
model_view_base init end - model.user:
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
Redirecting to https://dev-nwak2066ef6h8ixn.us.auth0.com/v2/logout?returnTo=http%3A%2F%2F127.0.0.1%3A5000%2Flogout_callback&client_id=gGjytqNMWChSixqO72RQzVHWAaeJJzRi
session: <SecureCookieSession {'_permanent': True}>
DataStore_Base.get_user_session
model_view_base init end - model.user:
id_user: 0
id_user_auth0: None
firstname: None
surname: None
email: None
is_email_verified: None
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
login
method=POST
data={'callback': '/', 'X-CSRFToken': 'IjE2ODlhNTlkY2VmYzMwODRlZDAzYzhkYmNlOGU3Y2EyODA3NjhmODEi.Z0B-cw.7GSddkmtZoja9ghsAUue88aIHVc'}
hash_callback: /
redirect uri: http://127.0.0.1:5000/login_callback
Before red
redirect: <Response 701 bytes [302 FOUND]>
headers: https://dev-nwak2066ef6h8ixn.us.auth0.com/authorize?response_type=code&client_id=gGjytqNMWChSixqO72RQzVHWAaeJJzRi&redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Flogin_callback&scope=openid+profile+email&state=%2F&nonce=7BEeuPyj8DYvESfw4FGM
OAuth Authorize Redirect URL:
Base URL: https://dev-nwak2066ef6h8ixn.us.auth0.com/authorize
ParseResult(scheme='https', netloc='dev-nwak2066ef6h8ixn.us.auth0.com', path='/authorize', params='', query='response_type=code&client_id=gGjytqNMWChSixqO72RQzVHWAaeJJzRi&redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Flogin_callback&scope=openid+profile+email&state=%2F&nonce=7BEeuPyj8DYvESfw4FGM', fragment='')
Query Parameters: {'response_type': ['code'], 'client_id': ['gGjytqNMWChSixqO72RQzVHWAaeJJzRi'], 'redirect_uri': ['http://127.0.0.1:5000/login_callback'], 'scope': ['openid profile email'], 'state': ['/'], 'nonce': ['7BEeuPyj8DYvESfw4FGM']}
login_callback

147
app.log.3
View File

@@ -1,147 +0,0 @@
user:
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
argument_dict: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
executing p_get_many_user
DataStore_Base.db_procedure_execute
proc_string: CALL p_get_many_user(:a_id_user, :a_id_user_auth0, :get_all_user, :get_inactive_user, :ids_user, :ids_user_auth0, :a_debug)
args: {'a_id_user': 1, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': 1, 'ids_user_auth0': '', 'a_debug': 0}
result: <sqlalchemy.engine.cursor.CursorResult object at 0x00000204876FA740>
data received
raw users: ((1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00'),)
raw errors: ()
new result set: ()
model_view_base init end - model.user:
id_user: 1
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: Teddy
surname: Middleton-Smith
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: True
id_currency_default: None
id_region_default: None
is_included_VAT_default: True
can_admin_store: True
can_admin_user: True
Redirecting to https://dev-nwak2066ef6h8ixn.us.auth0.com/v2/logout?returnTo=http%3A%2F%2F127.0.0.1%3A5000%2Flogout_callback&client_id=gGjytqNMWChSixqO72RQzVHWAaeJJzRi
Redirecting to https://dev-nwak2066ef6h8ixn.us.auth0.com/v2/logout?returnTo=http%3A%2F%2F127.0.0.1%3A5000%2Flogout_callback&client_id=gGjytqNMWChSixqO72RQzVHWAaeJJzRi
session: <SecureCookieSession {'_permanent': True}>
DataStore_Base.get_user_session
model_view_base init end - model.user:
id_user: 0
id_user_auth0: None
firstname: None
surname: None
email: None
is_email_verified: None
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
session: <SecureCookieSession {'_permanent': True, 'csrf_token': '609aa5890b61ec21cc66550109ca31cc7e3eaa3d'}>
DataStore_Base.get_user_session
model_view_base init end - model.user:
id_user: 0
id_user_auth0: None
firstname: None
surname: None
email: None
is_email_verified: None
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
config_env: development
config_env: development
config_env: development
session: <SecureCookieSession {'_permanent': True, 'csrf_token': '609aa5890b61ec21cc66550109ca31cc7e3eaa3d'}>
DataStore_Base.get_user_session
model_view_base init end - model.user:
id_user: 0
id_user_auth0: None
firstname: None
surname: None
email: None
is_email_verified: None
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
login
method=POST
data={'callback': '/', 'X-CSRFToken': 'IjYwOWFhNTg5MGI2MWVjMjFjYzY2NTUwMTA5Y2EzMWNjN2UzZWFhM2Qi.Z0B-CQ.TTYIfFRtsGgQfnlBDsEy9k9ixBk'}
hash_callback: /
redirect uri: http://127.0.0.1:5000/login_callback
Before red
redirect: <Response 701 bytes [302 FOUND]>
headers: https://dev-nwak2066ef6h8ixn.us.auth0.com/authorize?response_type=code&client_id=gGjytqNMWChSixqO72RQzVHWAaeJJzRi&redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Flogin_callback&scope=openid+profile+email&state=%2F&nonce=vf38RyCZQ4ePtJFhZMGX
OAuth Authorize Redirect URL:
Base URL: https://dev-nwak2066ef6h8ixn.us.auth0.com/authorize
ParseResult(scheme='https', netloc='dev-nwak2066ef6h8ixn.us.auth0.com', path='/authorize', params='', query='response_type=code&client_id=gGjytqNMWChSixqO72RQzVHWAaeJJzRi&redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Flogin_callback&scope=openid+profile+email&state=%2F&nonce=vf38RyCZQ4ePtJFhZMGX', fragment='')
Query Parameters: {'response_type': ['code'], 'client_id': ['gGjytqNMWChSixqO72RQzVHWAaeJJzRi'], 'redirect_uri': ['http://127.0.0.1:5000/login_callback'], 'scope': ['openid profile email'], 'state': ['/'], 'nonce': ['vf38RyCZQ4ePtJFhZMGX']}
login_callback
User.from_json_auth0
json: {'access_token': 'eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIiwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIn0..PT10sdrXdrY56k-9.rU-DfkB98x5UEnQYnVi7819a1BotlXjB9IR3yCeRHKL3iVCQIcCm8-Cld93CGXBk9-74i_xFgke7wuY-K8hmzNt-R6XG8tikkKZDPvQzKQjsykgDOXxIHK2VQfIacOJILmLIa9XTB93gnKUUha9besm2nrRIluOSfe_sJgU7AhYQ3lWpoWyh-oGzjsO5ObGepcDuzikz5zK7kst90DYFHezFrDEPJwSXU8bBkm0DN6WNGOg3wumMG7BZvoi5TNhgGUleoxlr1w3RFgJZg_7ra_eNWXY9_d_dbF9Hc7F_Enhr1ZtSpW2LsX7MOlReoDEzM---S-3hbXVXuEfgufISqkbV.bRWgAFRVOFi8SejsOC3i3Q', 'id_token': 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InVveXZURk44bjJvZHg1VkFLMFh1RyJ9.eyJuaWNrbmFtZSI6ImVkd2FyZC5taWRkbGV0b25zbWl0aCIsIm5hbWUiOiJlZHdhcmQubWlkZGxldG9uc21pdGhAZ21haWwuY29tIiwicGljdHVyZSI6Imh0dHBzOi8vcy5ncmF2YXRhci5jb20vYXZhdGFyLzUzZDNmMjQ0MDdkNTI1N2Y4NGYyN2NhMDc4NzRiZDY0P3M9NDgwJnI9cGcmZD1odHRwcyUzQSUyRiUyRmNkbi5hdXRoMC5jb20lMkZhdmF0YXJzJTJGZWQucG5nIiwidXBkYXRlZF9hdCI6IjIwMjQtMTEtMjJUMTI6NTA6MjUuMjI2WiIsImVtYWlsIjoiZWR3YXJkLm1pZGRsZXRvbnNtaXRoQGdtYWlsLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwiaXNzIjoiaHR0cHM6Ly9kZXYtbndhazIwNjZlZjZoOGl4bi51cy5hdXRoMC5jb20vIiwiYXVkIjoiZ0dqeXRxTk1XQ2hTaXhxTzcyUlF6VkhXQWFlSkp6UmkiLCJpYXQiOjE3MzIyNzk4MjYsImV4cCI6MTczMjMxNTgyNiwic3ViIjoiYXV0aDB8NjU4MmI5NWM4OTVkMDlhNzBiYTEwZmVmIiwic2lkIjoia2FtQUprQW1SaF9va0w3T2x0aFJvTEtkR0JKbjhYMGUiLCJub25jZSI6InZmMzhSeUNaUTRlUHRKRmhaTUdYIn0.oMQD6ejzlZXR4wLToNnK_G6W9mbfAAMYOpOMce4B9ZRSwvCCIvHY--RyNNxFvpRDVgZaZylE1IHddNavNuCuk9v0LEg6y-25m1AwNo2ff3SlQsOQvqRlFO60MhzFnwIW2SZeTzufsD2qMVbvBcVbqKVYQSm8TyxyFsoGINroeQmBeAc82_m_OPUjPgHUkUi2kWTmVWSCVvbh7G25JwQjkBJvdwLDr-d4_HNuzUNFCjFtCvGpFtByi4w_eNq8E1KseJWh7dS_0z6J7tJWt_pBPHG_UISXcxo27kkREkB0aVbj4zzVfUU0Ta-NneEr4VTyz3KNo7r1574rIPrfVWzMsQ', 'scope': 'openid profile email', 'expires_in': 86400, 'token_type': 'Bearer', 'expires_at': 1732366225, 'userinfo': {'nickname': 'edward.middletonsmith', 'name': 'edward.middletonsmith@gmail.com', 'picture': 'https://s.gravatar.com/avatar/53d3f24407d5257f84f27ca07874bd64?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Fed.png', 'updated_at': '2024-11-22T12:50:25.226Z', 'email': 'edward.middletonsmith@gmail.com', 'email_verified': False, 'iss': 'https://dev-nwak2066ef6h8ixn.us.auth0.com/', 'aud': 'gGjytqNMWChSixqO72RQzVHWAaeJJzRi', 'iat': 1732279826, 'exp': 1732315826, 'sub': 'auth0|6582b95c895d09a70ba10fef', 'sid': 'kamAJkAmRh_okL7OlthRoLKdGBJn8X0e', 'nonce': 'vf38RyCZQ4ePtJFhZMGX'}}
user:
id_user: None
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: None
surname: None
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
user:
id_user: None
id_user_auth0: auth0|6582b95c895d09a70ba10fef
firstname: None
surname: None
email: edward.middletonsmith@gmail.com
is_email_verified: False
is_super_user: None
id_currency_default: None
id_region_default: None
is_included_VAT_default: None
can_admin_store: None
can_admin_user: None
DataStore_User.get_many_user
DataStore_Base.db_procedure_execute
proc_string: CALL p_get_many_user(:a_id_user, :a_id_user_auth0, :get_all_user, :get_inactive_user, :ids_user, :ids_user_auth0, :a_debug)
args: {'a_id_user': None, 'a_id_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'get_all_user': False, 'get_inactive_user': False, 'ids_user': '', 'ids_user_auth0': 'auth0|6582b95c895d09a70ba10fef', 'a_debug': 0}
result: <sqlalchemy.engine.cursor.CursorResult object at 0x000001CAA03D9D30>
raw users: ((1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00'),)
type result set: <class 'tuple'>
len result set: 1
row: (1, 'auth0|6582b95c895d09a70ba10fef', 'Teddy', 'Middleton-Smith', 'edward.middletonsmith@gmail.com', b'\x00', None, None, b'\x01', b'\x01', b'\x01', b'\x01', b'\x00')

View File

@@ -125,7 +125,7 @@ class Manufacturing_Purchase_Order_Product_Link(db.Model, Store_Base):
id_permutation = db.Column(db.Integer) id_permutation = db.Column(db.Integer)
id_unit_quantity = db.Column(db.Integer) id_unit_quantity = db.Column(db.Integer)
name_permutation = db.Column(db.String(255)) name_permutation = db.Column(db.String(255))
csv_id_pairs_variation = db.Column(db.String(4000)) csv_id_pairs_variation = db.Column(db.String)
quantity_used = db.Column(db.Float) quantity_used = db.Column(db.Float)
quantity_produced = db.Column(db.Float) quantity_produced = db.Column(db.Float)
id_unit_latency_manufacture = db.Column(db.Integer) id_unit_latency_manufacture = db.Column(db.Integer)

View File

@@ -59,7 +59,7 @@ class Product_Permutation(db.Model, Store_Base):
FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED = 'does_expire_faster_once_unsealed' FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED = 'does_expire_faster_once_unsealed'
FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.ATTR_ID_UNIT_MEASUREMENT}_interval_expiration_unsealed' FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.ATTR_ID_UNIT_MEASUREMENT}_interval_expiration_unsealed'
FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_SYMBOL}_interval_expiration_unsealed' FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_SYMBOL}_interval_expiration_unsealed'
FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX}_interval_expiration_unsealed' FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX}_interval_expiration_unsealed'
FLAG_NAME_SINGULAR_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_NAME_SINGULAR}_interval_expiration_unsealed' FLAG_NAME_SINGULAR_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_NAME_SINGULAR}_interval_expiration_unsealed'
FLAG_NAME_PLURAL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_NAME_PLURAL}_interval_expiration_unsealed' FLAG_NAME_PLURAL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = f'{Unit_Measurement.FLAG_NAME_PLURAL}_interval_expiration_unsealed'
FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = 'count_interval_expiration_unsealed' FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED = 'count_interval_expiration_unsealed'
@@ -103,7 +103,7 @@ class Product_Permutation(db.Model, Store_Base):
does_expire_faster_once_unsealed = db.Column(db.Boolean) does_expire_faster_once_unsealed = db.Column(db.Boolean)
id_unit_measurement_interval_expiration_unsealed = db.Column(db.Integer) id_unit_measurement_interval_expiration_unsealed = db.Column(db.Integer)
symbol_unit_measurement_interval_expiration_unsealed = db.Column(db.String(50)) symbol_unit_measurement_interval_expiration_unsealed = db.Column(db.String(50))
symbol_is_suffix_not_prefix_unit_interval_expiration_unsealed = db.Column(db.Boolean) symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed = db.Column(db.Boolean)
name_singular_unit_measurement_interval_expiration_unsealed = db.Column(db.String(255)) name_singular_unit_measurement_interval_expiration_unsealed = db.Column(db.String(255))
name_plural_unit_measurement_interval_expiration_unsealed = db.Column(db.String(256)) name_plural_unit_measurement_interval_expiration_unsealed = db.Column(db.String(256))
count_interval_expiration_unsealed = db.Column(db.Integer) count_interval_expiration_unsealed = db.Column(db.Integer)
@@ -174,7 +174,7 @@ class Product_Permutation(db.Model, Store_Base):
permutation.does_expire_faster_once_unsealed = av.input_bool(query_row[28], "does_expire_faster_once_unsealed", _m, v_arg_type=v_arg_type) permutation.does_expire_faster_once_unsealed = av.input_bool(query_row[28], "does_expire_faster_once_unsealed", _m, v_arg_type=v_arg_type)
permutation.id_unit_measurement_interval_expiration_unsealed = query_row[29] permutation.id_unit_measurement_interval_expiration_unsealed = query_row[29]
permutation.symbol_unit_measurement_interval_expiration_unsealed = query_row[30] permutation.symbol_unit_measurement_interval_expiration_unsealed = query_row[30]
permutation.symbol_is_suffix_not_prefix_unit_interval_expiration_unsealed = av.input_bool(query_row[31], cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_INTERVAL_EXPIRATION_UNSEALED, _m, v_arg_type=v_arg_type) permutation.symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed = av.input_bool(query_row[31], cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED, _m, v_arg_type=v_arg_type)
permutation.name_singular_unit_measurement_interval_expiration_unsealed = query_row[32] permutation.name_singular_unit_measurement_interval_expiration_unsealed = query_row[32]
permutation.name_plural_unit_measurement_interval_expiration_unsealed = query_row[33] permutation.name_plural_unit_measurement_interval_expiration_unsealed = query_row[33]
permutation.count_interval_expiration_unsealed = query_row[34] permutation.count_interval_expiration_unsealed = query_row[34]
@@ -248,7 +248,7 @@ class Product_Permutation(db.Model, Store_Base):
permutation.does_expire_faster_once_unsealed = 1 if av.input_bool(json[cls.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED], cls.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED, _m) else 0 permutation.does_expire_faster_once_unsealed = 1 if av.input_bool(json[cls.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED], cls.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED, _m) else 0
permutation.id_unit_measurement_interval_expiration_unsealed = json[cls.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] if json[cls.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] != '' else None permutation.id_unit_measurement_interval_expiration_unsealed = json[cls.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] if json[cls.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] != '' else None
permutation.symbol_unit_measurement_interval_expiration_unsealed = json.get(cls.FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED) permutation.symbol_unit_measurement_interval_expiration_unsealed = json.get(cls.FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED)
permutation.symbol_is_suffix_not_prefix_unit_interval_expiration_unsealed = json.get(cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_INTERVAL_EXPIRATION_UNSEALED) permutation.symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed = json.get(cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED)
permutation.name_singular_unit_measurement_interval_expiration_unsealed = json.get(cls.FLAG_NAME_SINGULAR_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED) permutation.name_singular_unit_measurement_interval_expiration_unsealed = json.get(cls.FLAG_NAME_SINGULAR_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED)
permutation.name_plural_unit_measurement_interval_expiration_unsealed = json.get(cls.FLAG_NAME_PLURAL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED) permutation.name_plural_unit_measurement_interval_expiration_unsealed = json.get(cls.FLAG_NAME_PLURAL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED)
permutation.count_interval_expiration_unsealed = json[cls.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] if json[cls.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] != '' else None permutation.count_interval_expiration_unsealed = json[cls.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] if json[cls.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED] != '' else None
@@ -295,7 +295,7 @@ class Product_Permutation(db.Model, Store_Base):
self.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED: self.does_expire_faster_once_unsealed, self.FLAG_DOES_EXPIRE_FASTER_ONCE_UNSEALED: self.does_expire_faster_once_unsealed,
self.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.id_unit_measurement_interval_expiration_unsealed, self.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.id_unit_measurement_interval_expiration_unsealed,
self.FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.symbol_unit_measurement_interval_expiration_unsealed, self.FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.symbol_unit_measurement_interval_expiration_unsealed,
self.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_INTERVAL_EXPIRATION_UNSEALED: self.symbol_is_suffix_not_prefix_unit_interval_expiration_unsealed, self.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed,
self.FLAG_NAME_SINGULAR_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.name_singular_unit_measurement_interval_expiration_unsealed, self.FLAG_NAME_SINGULAR_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.name_singular_unit_measurement_interval_expiration_unsealed,
self.FLAG_NAME_PLURAL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.name_plural_unit_measurement_interval_expiration_unsealed, self.FLAG_NAME_PLURAL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.name_plural_unit_measurement_interval_expiration_unsealed,
self.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.count_interval_expiration_unsealed, self.FLAG_COUNT_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: self.count_interval_expiration_unsealed,
@@ -380,7 +380,7 @@ class Product_Permutation(db.Model, Store_Base):
does_expire_faster_once_unsealed: {self.does_expire_faster_once_unsealed} does_expire_faster_once_unsealed: {self.does_expire_faster_once_unsealed}
id_unit_measurement_interval_expiration_unsealed: {self.id_unit_measurement_interval_expiration_unsealed} id_unit_measurement_interval_expiration_unsealed: {self.id_unit_measurement_interval_expiration_unsealed}
symbol_unit_measurement_interval_expiration_unsealed: {self.symbol_unit_measurement_interval_expiration_unsealed} symbol_unit_measurement_interval_expiration_unsealed: {self.symbol_unit_measurement_interval_expiration_unsealed}
symbol_is_suffix_not_prefix_unit_interval_expiration_unsealed: {self.symbol_is_suffix_not_prefix_unit_interval_expiration_unsealed} symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed: {self.symbol_is_suffix_not_prefix_unit_measurement_interval_expiration_unsealed}
name_singular_unit_measurement_interval_expiration_unsealed: {self.name_singular_unit_measurement_interval_expiration_unsealed} name_singular_unit_measurement_interval_expiration_unsealed: {self.name_singular_unit_measurement_interval_expiration_unsealed}
name_plural_unit_measurement_interval_expiration_unsealed: {self.name_plural_unit_measurement_interval_expiration_unsealed} name_plural_unit_measurement_interval_expiration_unsealed: {self.name_plural_unit_measurement_interval_expiration_unsealed}
count_interval_expiration_unsealed: {self.count_interval_expiration_unsealed} count_interval_expiration_unsealed: {self.count_interval_expiration_unsealed}

View File

@@ -14,14 +14,12 @@ Datastore for Store Product Categories
import lib.argument_validation as av import lib.argument_validation as av
from business_objects.store.product_category import Product_Category_Container, Product_Category, Product_Category_Temp from business_objects.store.product_category import Product_Category_Container, Product_Category, Product_Category_Temp
from business_objects.sql_error import SQL_Error from business_objects.sql_error import SQL_Error
# from datastores.datastore_base import Table_Shop_Product_Category, Table_Shop_Product_Category_Temp
from datastores.datastore_store_base import DataStore_Store_Base from datastores.datastore_store_base import DataStore_Store_Base
from helpers.helper_app import Helper_App from helpers.helper_app import Helper_App
from helpers.helper_db_mysql import Helper_DB_MySQL from helpers.helper_db_mysql import Helper_DB_MySQL
# from models.model_view_store_checkout import Model_View_Store_Checkout # circular! # from models.model_view_store_checkout import Model_View_Store_Checkout # circular!
from extensions import db from extensions import db
# external # external
# from abc import ABC, abstractmethod, abstractproperty
from flask_sqlalchemy import SQLAlchemy from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import text from sqlalchemy import text
import stripe import stripe
@@ -40,8 +38,6 @@ class DataStore_Store_Product_Category(DataStore_Store_Base):
_m = 'DataStore_Store_Product_Category.save_categories' _m = 'DataStore_Store_Product_Category.save_categories'
Helper_App.console_log(f'{_m}\nstarting...') Helper_App.console_log(f'{_m}\nstarting...')
Helper_App.console_log(f'comment: {comment}\ncategories: {categories}') Helper_App.console_log(f'comment: {comment}\ncategories: {categories}')
# av.val_str(comment, 'comment', _m)
# av.val_list_instances(categories, 'categories', _m, Product_Category, 1)
guid = Helper_DB_MySQL.create_guid() guid = Helper_DB_MySQL.create_guid()
now = datetime.now() now = datetime.now()
@@ -50,32 +46,15 @@ class DataStore_Store_Product_Category(DataStore_Store_Base):
id_category_new = 0 id_category_new = 0
for category in categories: for category in categories:
row = Product_Category_Temp.from_product_category(category) row = Product_Category_Temp.from_product_category(category)
# row = category.to_temporary_record()
# id_tmp =
if row.id_category == '': if row.id_category == '':
id_category_new -= 1 id_category_new -= 1
row.id_category = id_category_new row.id_category = id_category_new
else: else:
Helper_App.console_log(f'row.id_category: {row.id_category}') Helper_App.console_log(f'row.id_category: {row.id_category}')
row.guid = guid row.guid = guid
# row.created_on = now
# row.created_by = user.id_user
rows.append(row) rows.append(row)
Helper_App.console_log(f'rows: {rows}') Helper_App.console_log(f'rows: {rows}')
"""
cursor = db.cursor()
Helper_App.console_log('cursor created')
cursor.executemany(
'INSERT INTO Shop_Product_Category_Temp (id_category, code, name, description, active, display_order, guid, created_on, created_by) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
categories
)
Helper_App.console_log('bulk upload executed')
db.commit()
Helper_App.console_log('bulk upload committed')
cursor.close()
Helper_App.console_log('cursor closed')
"""
DataStore_Store_Base.upload_bulk(Product_Category_Temp.__tablename__, rows, 1000) DataStore_Store_Base.upload_bulk(Product_Category_Temp.__tablename__, rows, 1000)
argument_dict_list = { argument_dict_list = {
@@ -92,7 +71,7 @@ class DataStore_Store_Product_Category(DataStore_Store_Base):
Helper_App.console_log(f'raw errors: {result_set_e}') Helper_App.console_log(f'raw errors: {result_set_e}')
errors = [] errors = []
if len(result_set_e) > 0: if len(result_set_e) > 0:
errors = [SQL_Error.from_DB_record(row) for row in result_set_e] # (row[0], row[1]) errors = [SQL_Error.from_DB_record(row) for row in result_set_e]
for error in errors: for error in errors:
Helper_App.console_log(f"Error [{error.code}]: {error.msg}") Helper_App.console_log(f"Error [{error.code}]: {error.msg}")

View File

@@ -133,7 +133,7 @@ class Model_View_Store(Model_View_Base):
FLAG_SUPPLIER_ADDRESS: ClassVar[str] = Store_Base.FLAG_SUPPLIER_ADDRESS FLAG_SUPPLIER_ADDRESS: ClassVar[str] = Store_Base.FLAG_SUPPLIER_ADDRESS
FLAG_SUPPLIER_PURCHASE_ORDER: ClassVar[str] = Store_Base.FLAG_SUPPLIER_PURCHASE_ORDER FLAG_SUPPLIER_PURCHASE_ORDER: ClassVar[str] = Store_Base.FLAG_SUPPLIER_PURCHASE_ORDER
FLAG_SYMBOL_CURRENCY_COST: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_CURRENCY_COST FLAG_SYMBOL_CURRENCY_COST: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_CURRENCY_COST
FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_INTERVAL_EXPIRATION_UNSEALED: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_INTERVAL_EXPIRATION_UNSEALED FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED
FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_RECURRENCE: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_RECURRENCE FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_RECURRENCE: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_INTERVAL_RECURRENCE
FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_QUANTITY: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_QUANTITY FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_QUANTITY: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX_UNIT_MEASUREMENT_QUANTITY
FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED

View File

@@ -25,7 +25,7 @@ from config import app_config
# VARIABLE INSTANTIATION # VARIABLE INSTANTIATION
key_secret = os.environ.get("KEY_SECRET_STRIPE") key_secret = os.environ.get("KEY_SECRET_STRIPE")
key_public = os.environ.get("KEY_PUBLIC_STRIPE") # 'pk_test_51OGrxlL7BuLKjoMpfpfw7bSmZZK1MhqMoQ5VhW2jUj7YtoEejO4vqnxKPiqTHHuh9U4qqkywbPCSI9TpFKtr4SYH007KHMWs68' key_public = os.environ.get("KEY_PUBLIC_STRIPE")
# METHODS # METHODS
def create_product_price(): def create_product_price():

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
-- Drop dependencies # Drop dependencies
DROP TABLE IF EXISTS tmp_Shop_Calc_User; DROP TABLE IF EXISTS tmp_Shop_Calc_User;
DROP TABLE IF EXISTS tmp_Product_Calc_User; DROP TABLE IF EXISTS tmp_Product_Calc_User;
DROP TABLE IF EXISTS tmp_Product_p_Shop_User_Eval; DROP TABLE IF EXISTS tmp_Product_p_Shop_User_Eval;
@@ -55,7 +55,7 @@ DROP TABLE IF EXISTS tmp_Shop_Customer_Sale_Order;
DROP TABLE IF EXISTS tmp_Get_Variation_From_Csv_Variations; DROP TABLE IF EXISTS tmp_Get_Variation_From_Csv_Variations;
-- Delete old tables # Delete old tables
DROP TABLE IF EXISTS Split_Temp; DROP TABLE IF EXISTS Split_Temp;
DROP TABLE IF EXISTS Split_Key_Value_Pair_Csv_Temp; DROP TABLE IF EXISTS Split_Key_Value_Pair_Csv_Temp;
DROP TABLE IF EXISTS Split_Key_Value_Pair_Temp; DROP TABLE IF EXISTS Split_Key_Value_Pair_Temp;

View File

@@ -1,5 +1,5 @@
-- Product Change Sets # Product Change Sets

View File

@@ -1,5 +1,5 @@
-- Split Staging # Split Staging
-- USE partsltd_prod; -- USE partsltd_prod;
-- DROP TABLE IF EXISTS Split_Temp; -- DROP TABLE IF EXISTS Split_Temp;

View File

@@ -1,5 +1,5 @@
-- User Change Sets # User Change Sets

View File

@@ -1,5 +1,5 @@
-- Split Key Value Pair CSV Staging # Split Key Value Pair CSV Staging
-- USE partsltd_prod; -- USE partsltd_prod;
-- DROP TABLE IF EXISTS Split_Temp; -- DROP TABLE IF EXISTS Split_Temp;

View File

@@ -1,5 +1,5 @@
-- Sales And Purchasing Change Sets # Sales And Purchasing Change Sets

View File

@@ -1,5 +1,5 @@
-- Access Levels # Access Levels

View File

@@ -1,5 +1,5 @@
-- Access Level Audits # Access Level Audits

View File

@@ -1,5 +1,5 @@
-- Error Message Type # Error Message Type

View File

@@ -1,5 +1,5 @@
-- File Types # File Types

View File

@@ -1,5 +1,5 @@
-- File Type Audit # File Type Audit

View File

@@ -1,5 +1,5 @@
-- Generic / shared properties # Generic / shared properties

View File

@@ -1,5 +1,5 @@
-- Shop General Audits # Shop General Audits

View File

@@ -1,5 +1,5 @@
-- Image Types # Image Types

View File

@@ -1,5 +1,5 @@
-- Image Type Audits # Image Type Audits

View File

@@ -1,5 +1,5 @@
-- Regions # Regions
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Region'; SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Region';

View File

@@ -1,5 +1,5 @@
-- Region Audits # Region Audits

View File

@@ -1,5 +1,5 @@
-- Region Temp # Region Temp

View File

@@ -1,5 +1,5 @@
-- Region Branchs # Region Branchs

View File

@@ -1,5 +1,5 @@
-- Region Audits # Region Audits

View File

@@ -1,5 +1,5 @@
-- Region Branch Temp # Region Branch Temp

View File

@@ -1,5 +1,5 @@
-- Addresses # Addresses
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Address'; SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Address';

View File

@@ -1,5 +1,5 @@
-- Plant # Plant
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Plant'; SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Plant';

View File

@@ -1,5 +1,5 @@
-- Address Audits # Address Audits
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Address_Audit'; SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Address_Audit';

View File

@@ -1,5 +1,5 @@
-- Plant Audits # Plant Audits

View File

@@ -1,5 +1,5 @@
-- Plant Temp # Plant Temp

View File

@@ -1,5 +1,5 @@
-- Storage Location # Storage Location

View File

@@ -1,5 +1,5 @@
-- Storage Location Audits # Storage Location Audits

View File

@@ -1,5 +1,5 @@
-- Storage Location Temp # Storage Location Temp

View File

@@ -1,5 +1,5 @@
-- Storage Location Branch # Storage Location Branch

View File

@@ -1,5 +1,5 @@
-- Storage Location Branch Audits # Storage Location Branch Audits

View File

@@ -1,5 +1,5 @@
-- Storage Location Branch Temp # Storage Location Branch Temp

View File

@@ -1,5 +1,5 @@
-- Currencies # Currencies

View File

@@ -1,5 +1,5 @@
-- Currency Audits # Currency Audits

View File

@@ -1,5 +1,5 @@
-- Currency Temp # Currency Temp

View File

@@ -1,5 +1,5 @@
-- Taxes and Surcharges # Taxes and Surcharges

View File

@@ -1,5 +1,5 @@
-- Tax Or Surcharge Audits # Tax Or Surcharge Audits

View File

@@ -1,5 +1,5 @@
-- Taxes and Surcharges Temp # Taxes and Surcharges Temp

View File

@@ -1,5 +1,5 @@
-- Unit of Measurement # Unit of Measurement

View File

@@ -1,5 +1,5 @@
-- Unit of Measurement Audits # Unit of Measurement Audits

View File

@@ -1,5 +1,5 @@
-- Unit of Measurement Conversion # Unit of Measurement Conversion

View File

@@ -1,5 +1,5 @@
-- Unit of Measurement Conversion Audits # Unit of Measurement Conversion Audits

View File

@@ -1,5 +1,5 @@
-- Categories # Categories
SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Product_Category'; SELECT CONCAT('WARNING: Table ', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'Shop_Product_Category';

View File

@@ -1,5 +1,5 @@
-- Category Audits # Category Audits

View File

@@ -1,5 +1,5 @@
-- Categories Temp # Categories Temp
-- DROP TABLE Shop_Product_Category_Temp; -- DROP TABLE Shop_Product_Category_Temp;

View File

@@ -1,5 +1,5 @@
-- Products # Products
@@ -14,7 +14,7 @@ CREATE TABLE IF NOT EXISTS Shop_Product (
/* /*
price_GBP_full FLOAT, price_GBP_full FLOAT,
price_GBP_min FLOAT, price_GBP_min FLOAT,
-- ratio_discount_overall FLOAT NOT NULL DEFAULT 0, # ratio_discount_overall FLOAT NOT NULL DEFAULT 0,
CONSTRAINT FK_Shop_Product_id_category CONSTRAINT FK_Shop_Product_id_category
FOREIGN KEY (id_category) FOREIGN KEY (id_category)
REFERENCES Shop_Product_Category(id_category) REFERENCES Shop_Product_Category(id_category)
@@ -35,8 +35,8 @@ CREATE TABLE IF NOT EXISTS Shop_Product (
CONSTRAINT FK_Shop_Product_id_access_level_required CONSTRAINT FK_Shop_Product_id_access_level_required
FOREIGN KEY (id_access_level_required) FOREIGN KEY (id_access_level_required)
REFERENCES Shop_Access_Level(id_access_level), REFERENCES Shop_Access_Level(id_access_level),
-- id_stripe_product VARCHAR(100), # id_stripe_product VARCHAR(100),
-- id_stripe_price VARCHAR(100) NOT NULL, # id_stripe_price VARCHAR(100) NOT NULL,
active BIT NOT NULL DEFAULT 1, active BIT NOT NULL DEFAULT 1,
display_order INT NOT NULL, display_order INT NOT NULL,
created_on DATETIME NOT NULL, created_on DATETIME NOT NULL,

View File

@@ -1,5 +1,5 @@
-- Products # Products

View File

@@ -1,5 +1,5 @@
-- Products Temp # Products Temp
-- DROP TABLE IF EXISTS Shop_Product_Temp; -- DROP TABLE IF EXISTS Shop_Product_Temp;

View File

@@ -1,5 +1,5 @@
-- Product Permutation # Product Permutation
-- DROP TABLE partsltd_prod.Shop_Product_Permutation; -- DROP TABLE partsltd_prod.Shop_Product_Permutation;

View File

@@ -1,5 +1,5 @@
-- Product Permutation Audits # Product Permutation Audits

View File

@@ -1,5 +1,5 @@
-- Product Permutation Temp # Product Permutation Temp
-- DROP TABLE IF EXISTS Shop_Product_Permutation_Temp; -- DROP TABLE IF EXISTS Shop_Product_Permutation_Temp;

View File

@@ -1,5 +1,5 @@
-- Variation Types # Variation Types

View File

@@ -1,5 +1,5 @@
-- Variation Type Audits # Variation Type Audits

View File

@@ -1,5 +1,5 @@
-- Variation Types Temp # Variation Types Temp
-- DROP TABLE partsltd_prod.Shop_Variation_Type_Temp; -- DROP TABLE partsltd_prod.Shop_Variation_Type_Temp;

View File

@@ -1,5 +1,5 @@
-- Variations # Variations

View File

@@ -1,5 +1,5 @@
-- Variation Audits # Variation Audits

View File

@@ -1,5 +1,5 @@
-- Variations Temp # Variations Temp
-- DROP TABLE partsltd_prod.Shop_Variation_Temp; -- DROP TABLE partsltd_prod.Shop_Variation_Temp;

View File

@@ -1,5 +1,5 @@
-- Product Permutation Variation Link # Product Permutation Variation Link

View File

@@ -1,5 +1,5 @@
-- Product Permutation Variation Link Audits # Product Permutation Variation Link Audits

View File

@@ -1,5 +1,5 @@
-- Product Permutation Variation Link # Product Permutation Variation Link
-- DROP TABLE IF EXISTS Shop_Product_Permutation_Variation_Link_Temp; -- DROP TABLE IF EXISTS Shop_Product_Permutation_Variation_Link_Temp;

View File

@@ -1,5 +1,5 @@
-- Product Price # Product Price

View File

@@ -1,5 +1,5 @@
-- Product Price Audits # Product Price Audits

View File

@@ -1,5 +1,5 @@
-- Product Price Temp # Product Price Temp

View File

@@ -1,5 +1,5 @@
-- Product Permutation Images # Product Permutation Images

View File

@@ -1,5 +1,5 @@
-- Product Image Audits # Product Image Audits

View File

@@ -1,5 +1,5 @@
-- Delivery Options # Delivery Options

View File

@@ -1,5 +1,5 @@
-- Delivery Option Audits # Delivery Option Audits

View File

@@ -1,5 +1,5 @@
-- Delivery Option # Delivery Option

View File

@@ -1,5 +1,5 @@
-- Delivery Option Audits # Delivery Option Audits

View File

@@ -1,5 +1,5 @@
-- Discounts # Discounts

View File

@@ -1,5 +1,5 @@
-- Discount Audits # Discount Audits

View File

@@ -1,5 +1,5 @@
-- Discount Region Currency Link # Discount Region Currency Link

View File

@@ -1,5 +1,5 @@
-- Discount Region Currency Link Audits # Discount Region Currency Link Audits

View File

@@ -1,5 +1,5 @@
-- Permission Groups # Permission Groups

View File

@@ -1,5 +1,5 @@
-- Permission Group Audits # Permission Group Audits

View File

@@ -1,5 +1,5 @@
-- Permissions # Permissions

View File

@@ -1,5 +1,5 @@
-- Permission Audits # Permission Audits

View File

@@ -1,5 +1,5 @@
-- Roles # Roles

View File

@@ -1,5 +1,5 @@
-- Role Audits # Role Audits

View File

@@ -1,5 +1,5 @@
-- Role Permission link # Role Permission link

View File

@@ -1,5 +1,5 @@
-- Role Permission link Audits # Role Permission link Audits

View File

@@ -1,5 +1,5 @@
-- Users # Users

Some files were not shown because too many files have changed in this diff Show More