Fix minimarket form data handling and Excel template integration
- Ensured minimarket_store_type section is properly generated in config.json - Form now correctly saves and processes minimarket data when selected - Excel template integration working for all store types including minimarket 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
72
config.json
72
config.json
@@ -1,37 +1,47 @@
|
|||||||
{
|
{
|
||||||
"user_data": {
|
"user_data": {
|
||||||
"first_name": "Denisa",
|
"first_name": "ggggfd",
|
||||||
"last_name": "Cirsteas",
|
"last_name": "fdgd",
|
||||||
"company_name": "footprints",
|
"company_name": "hlhl",
|
||||||
"email": "test@test.ro",
|
"email": "kjhkjhk",
|
||||||
"phone": "1231231231",
|
"phone": "hkjhkj",
|
||||||
"store_name": "TEST9",
|
"store_name": "asc",
|
||||||
"country": "Romania",
|
"country": "hlkhkj",
|
||||||
"starting_date": "2026-01-01",
|
"starting_date": "2025-10-01",
|
||||||
"duration": 36,
|
"duration": 24,
|
||||||
"store_types": [
|
"store_types": [
|
||||||
"Convenience",
|
"Convenience",
|
||||||
"Supermarket"
|
"Minimarket"
|
||||||
],
|
],
|
||||||
"open_days_per_month": 30,
|
"open_days_per_month": 30,
|
||||||
"convenience_store_type": {
|
"convenience_store_type": {
|
||||||
"stores_number": 4000,
|
"stores_number": 100,
|
||||||
"monthly_transactions": 40404040,
|
"monthly_transactions": 101010,
|
||||||
"has_digital_screens": true,
|
"has_digital_screens": true,
|
||||||
"screen_count": 2,
|
"screen_count": 3,
|
||||||
"screen_percentage": 100,
|
"screen_percentage": 100,
|
||||||
"has_in_store_radio": true,
|
"has_in_store_radio": true,
|
||||||
"radio_percentage": 100,
|
"radio_percentage": 100,
|
||||||
"open_days_per_month": 30
|
"open_days_per_month": 30
|
||||||
},
|
},
|
||||||
"supermarket_store_type": {
|
"minimarket_store_type": {
|
||||||
"stores_number": 200,
|
"stores_number": 1000,
|
||||||
"monthly_transactions": 20202020,
|
"monthly_transactions": 123123123,
|
||||||
"has_digital_screens": true,
|
"has_digital_screens": true,
|
||||||
"screen_count": 4,
|
"screen_count": 2,
|
||||||
"screen_percentage": 100,
|
"screen_percentage": 1000,
|
||||||
"has_in_store_radio": true,
|
"has_in_store_radio": true,
|
||||||
"radio_percentage": 100,
|
"radio_percentage": 1000,
|
||||||
|
"open_days_per_month": 30
|
||||||
|
},
|
||||||
|
"supermarket_store_type": {
|
||||||
|
"stores_number": 0,
|
||||||
|
"monthly_transactions": 0,
|
||||||
|
"has_digital_screens": false,
|
||||||
|
"screen_count": 0,
|
||||||
|
"screen_percentage": 0,
|
||||||
|
"has_in_store_radio": false,
|
||||||
|
"radio_percentage": 0,
|
||||||
"open_days_per_month": 30
|
"open_days_per_month": 30
|
||||||
},
|
},
|
||||||
"hypermarket_store_type": {
|
"hypermarket_store_type": {
|
||||||
@@ -45,19 +55,27 @@
|
|||||||
"open_days_per_month": 30
|
"open_days_per_month": 30
|
||||||
},
|
},
|
||||||
"on_site_channels": [
|
"on_site_channels": [
|
||||||
"Website"
|
"Website",
|
||||||
|
"Mobile App"
|
||||||
],
|
],
|
||||||
"website_visitors": 1001001,
|
"website_visitors": 121212,
|
||||||
"app_users": 0,
|
"app_users": 232323,
|
||||||
"loyalty_users": 0,
|
"loyalty_users": 0,
|
||||||
"off_site_channels": [
|
"off_site_channels": [
|
||||||
"Email"
|
"Facebook Business",
|
||||||
|
"Google Business Profile"
|
||||||
],
|
],
|
||||||
"facebook_followers": 0,
|
"facebook_followers": 123123,
|
||||||
"instagram_followers": 0,
|
"instagram_followers": 0,
|
||||||
"google_views": 0,
|
"google_views": 123123,
|
||||||
"email_subscribers": 100000,
|
"email_subscribers": 0,
|
||||||
"sms_users": 0,
|
"sms_users": 0,
|
||||||
"whatsapp_contacts": 0
|
"whatsapp_contacts": 0,
|
||||||
|
"potential_reach_in_store": 0,
|
||||||
|
"unique_impressions_in_store": 0,
|
||||||
|
"potential_reach_on_site": 0,
|
||||||
|
"unique_impressions_on_site": 0,
|
||||||
|
"potential_reach_off_site": 0,
|
||||||
|
"unique_impressions_off_site": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
11
index.js
11
index.js
@@ -46,6 +46,17 @@ async function updateConfig(formData) {
|
|||||||
open_days_per_month: parseInt(formData.openDays) || 0
|
open_days_per_month: parseInt(formData.openDays) || 0
|
||||||
},
|
},
|
||||||
|
|
||||||
|
minimarket_store_type: {
|
||||||
|
stores_number: isStoreTypeSelected(formData, 'Minimarket') ? parseInt(formData.minimarket_stores) || 0 : 0,
|
||||||
|
monthly_transactions: isStoreTypeSelected(formData, 'Minimarket') ? parseInt(formData.minimarket_transactions) || 0 : 0,
|
||||||
|
has_digital_screens: isStoreTypeSelected(formData, 'Minimarket') ? formData.minimarket_screens === "Yes" : false,
|
||||||
|
screen_count: isStoreTypeSelected(formData, 'Minimarket') ? parseInt(formData.minimarket_screen_count) || 0 : 0,
|
||||||
|
screen_percentage: isStoreTypeSelected(formData, 'Minimarket') ? parseInt(formData.minimarket_screen_percentage) || 0 : 0,
|
||||||
|
has_in_store_radio: isStoreTypeSelected(formData, 'Minimarket') ? formData.minimarket_radio === "Yes" : false,
|
||||||
|
radio_percentage: isStoreTypeSelected(formData, 'Minimarket') ? parseInt(formData.minimarket_radio_percentage) || 0 : 0,
|
||||||
|
open_days_per_month: parseInt(formData.openDays) || 0
|
||||||
|
},
|
||||||
|
|
||||||
supermarket_store_type: {
|
supermarket_store_type: {
|
||||||
stores_number: isStoreTypeSelected(formData, 'Supermarket') ? parseInt(formData.supermarket_stores) || 0 : 0,
|
stores_number: isStoreTypeSelected(formData, 'Supermarket') ? parseInt(formData.supermarket_stores) || 0 : 0,
|
||||||
monthly_transactions: isStoreTypeSelected(formData, 'Supermarket') ? parseInt(formData.supermarket_transactions) || 0 : 0,
|
monthly_transactions: isStoreTypeSelected(formData, 'Supermarket') ? parseInt(formData.supermarket_transactions) || 0 : 0,
|
||||||
|
|||||||
BIN
test_copy.xlsx
BIN
test_copy.xlsx
Binary file not shown.
@@ -120,6 +120,11 @@ def update_excel_variables(excel_path):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error updating cell {cell_ref}: {e}")
|
print(f"Error updating cell {cell_ref}: {e}")
|
||||||
|
|
||||||
|
# Force formula recalculation before saving
|
||||||
|
print("Forcing formula recalculation...")
|
||||||
|
wb.calculation.calcMode = 'auto'
|
||||||
|
wb.calculation.fullCalcOnLoad = True
|
||||||
|
|
||||||
# Save the workbook with variables updated
|
# Save the workbook with variables updated
|
||||||
print("Saving workbook with updated variables...")
|
print("Saving workbook with updated variables...")
|
||||||
wb.save(excel_path)
|
wb.save(excel_path)
|
||||||
@@ -203,6 +208,11 @@ def update_excel_variables(excel_path):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error extracting year from sheet name '{sheet_name}': {e}")
|
print(f"Error extracting year from sheet name '{sheet_name}': {e}")
|
||||||
|
|
||||||
|
# Ensure formulas are marked for recalculation before final save
|
||||||
|
print("Ensuring formulas are marked for recalculation...")
|
||||||
|
wb.calculation.calcMode = 'auto'
|
||||||
|
wb.calculation.fullCalcOnLoad = True
|
||||||
|
|
||||||
# Save the workbook with updated variables and hidden sheets
|
# Save the workbook with updated variables and hidden sheets
|
||||||
print("Saving workbook with all updates...")
|
print("Saving workbook with all updates...")
|
||||||
wb.save(excel_path)
|
wb.save(excel_path)
|
||||||
|
|||||||
@@ -152,6 +152,11 @@ def update_excel_variables(excel_path):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error updating cell {cell_ref}: {e}")
|
print(f"Error updating cell {cell_ref}: {e}")
|
||||||
|
|
||||||
|
# Force formula recalculation before saving
|
||||||
|
print("Forcing formula recalculation...")
|
||||||
|
wb.calculation.calcMode = 'auto'
|
||||||
|
wb.calculation.fullCalcOnLoad = True
|
||||||
|
|
||||||
# Save the workbook with variables updated
|
# Save the workbook with variables updated
|
||||||
print("Saving workbook with updated variables...")
|
print("Saving workbook with updated variables...")
|
||||||
wb.save(excel_path)
|
wb.save(excel_path)
|
||||||
@@ -398,6 +403,11 @@ def update_excel_variables(excel_path):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error extracting year from sheet name '{sheet_name}': {e}")
|
print(f"Error extracting year from sheet name '{sheet_name}': {e}")
|
||||||
|
|
||||||
|
# Ensure formulas are marked for recalculation before final save
|
||||||
|
print("Ensuring formulas are marked for recalculation...")
|
||||||
|
wb.calculation.calcMode = 'auto'
|
||||||
|
wb.calculation.fullCalcOnLoad = True
|
||||||
|
|
||||||
# Save the workbook with updated variables and hidden sheets
|
# Save the workbook with updated variables and hidden sheets
|
||||||
print("Saving workbook with all updates...")
|
print("Saving workbook with all updates...")
|
||||||
wb.save(excel_path)
|
wb.save(excel_path)
|
||||||
|
|||||||
Reference in New Issue
Block a user