Files
quality_app/old code/EXCEL_UPLOAD_MAPPING.md
2025-11-26 22:00:44 +02:00

4.6 KiB
Raw Blame History

Excel File Upload Mapping

File Information

  • File: 1cc01b8Comenzi Productie (19).xlsx
  • Sheets: DataSheet (corrupted), Sheet1 (249 rows × 29 columns)
  • Purpose: Production orders for label generation

Excel Columns (29 total)

Core Order Fields ( Stored in Database)

  1. Comanda Productiecomanda_productie
  2. Cod Articolcod_articol
  3. Descrieredescr_com_prod
  4. Cantitate cerutacantitate
  5. Delivery datedata_livrare
  6. Customercustomer_name
  7. Comanda clientcom_achiz_client

Additional Fields (📊 Read but not stored in order_for_labels table)

  1. Statusstatus 📊
  2. End of Quiltingend_of_quilting 📊
  3. End of sewingend_of_sewing 📊
  4. T1t1 📊 (Quality control stage 1)
  5. Data inregistrare T1data_inregistrare_t1 📊
  6. Numele Complet T1numele_complet_t1 📊
  7. T2t2 📊 (Quality control stage 2)
  8. Data inregistrare T2data_inregistrare_t2 📊
  9. Numele Complet T2numele_complet_t2 📊
  10. T3t3 📊 (Quality control stage 3)
  11. Data inregistrare T3data_inregistrare_t3 📊
  12. Numele Complet T3numele_complet_t3 📊
  13. Clasificareclasificare 📊
  14. Masina Cusutmasina_cusut 📊
  15. Tip Masinatip_masina 📊
  16. Timp normat totaltimp_normat_total 📊
  17. Data Deschideriidata_deschiderii 📊
  18. Model Lb2model_lb2 📊
  19. Data Planific.data_planific 📊
  20. Numar masinanumar_masina 📊
  21. Design nrdesign_nr 📊
  22. Needle positionneedle_position 📊

Database Schema (order_for_labels)

CREATE TABLE order_for_labels (
    id INT AUTO_INCREMENT PRIMARY KEY,
    comanda_productie VARCHAR(25) NOT NULL,
    cod_articol VARCHAR(25) NOT NULL,
    descr_com_prod VARCHAR(100),
    cantitate INT,
    data_livrare DATE,
    dimensiune VARCHAR(25),
    com_achiz_client VARCHAR(25),
    nr_linie_com_client INT,
    customer_name VARCHAR(50),
    customer_article_number VARCHAR(25),
    open_for_order VARCHAR(25),
    line_number INT,
    printed_labels INT DEFAULT 0
);

Validation Rules

Required Fields

  • comanda_productie (Production Order #)
  • cod_articol (Article Code)
  • descr_com_prod (Description)
  • cantitate (Quantity)

Optional Fields

  • data_livrare (Delivery Date)
  • dimensiune (Dimension)
  • com_achiz_client (Customer Order #)
  • nr_linie_com_client (Customer Order Line)
  • customer_name (Customer Name)
  • customer_article_number (Customer Article #)
  • open_for_order (Open for Order)
  • line_number (Line Number)

Processing Logic

  1. Sheet Selection: Tries Sheet1 → sheet 0 → DataSheet
  2. Column Normalization: Converts to lowercase, strips whitespace
  3. Column Mapping: Maps Excel columns to database fields
  4. Row Processing:
    • Skips empty rows
    • Handles NaN values (converts to empty string)
    • Validates required fields
    • Returns validation errors and warnings
  5. Data Storage: Only valid rows with required fields are stored

Sample Data (Row 1)

comanda_productie    : CP00267043
cod_articol          : PF010147
descr_com_prod       : HUSA STARLINE NEXT X7 90X210
cantitate            : 1
data_livrare         : 2024-03-12
customer_name        : 411_01RECT BED
com_achiz_client     : 379579-1
status               : Inchis
classificare         : HP3D
masina_cusut         : SPECIALA

Upload Functionality

URL: /upload_data (Labels module)

Supported Formats:

  • CSV (.csv)
  • Excel (.xlsx, .xls)

Process:

  1. User uploads file
  2. System validates file type
  3. Processes file (CSV or Excel)
  4. Shows preview with validation
  5. User confirms upload
  6. Data inserted into database

Testing

# Test Excel reading
cd /srv/quality_app
python3 << 'EOF'
import pandas as pd
df = pd.read_excel("1cc01b8Comenzi Productie (19).xlsx", sheet_name='Sheet1')
print(f"✅ Read {len(df)} rows × {len(df.columns)} columns")
print(f"Required fields present: {all(col in df.columns for col in ['Comanda Productie', 'Cod Articol', 'Descriere', 'Cantitate ceruta'])}")
EOF

Implementation Files

  • /srv/quality_app/py_app/app/order_labels.py - Processing functions
  • /srv/quality_app/py_app/app/routes.py - Upload route handler
  • /srv/quality_app/py_app/app/templates/upload_orders.html - Upload UI

Status: All 29 columns readable and mapped correctly Date: 2024-11-26