{"id":7124,"date":"2025-11-24T15:17:30","date_gmt":"2025-11-24T07:17:30","guid":{"rendered":"https:\/\/hobertek.com\/?page_id=7124"},"modified":"2026-05-21T16:05:35","modified_gmt":"2026-05-21T08:05:35","slug":"smart-quote","status":"publish","type":"page","link":"https:\/\/hobertek.com\/fr\/smart-quote\/","title":{"rendered":"Citation intelligente"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"7124\" class=\"elementor elementor-7124\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f25e7fc elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"f25e7fc\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-wider\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-11894c8\" data-id=\"11894c8\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-560866c elementor-widget elementor-widget-heading\" data-id=\"560866c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Solution de pompe solaire Smart Quote Pro<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cd613db elementor-widget elementor-widget-html\" data-id=\"cd613db\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\">\r\n<head>\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>System Configurator Pro - Expert Logic<\/title>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2pdf.js\/0.10.1\/html2pdf.bundle.min.js\"><\/script>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n    \/* === \u6837\u5f0f\u533a\u57df (\u4fdd\u6301\u4e0d\u53d8) === *\/\r\n    body { margin: 0; padding: 0; overflow: hidden; } \r\n    #hober-app-wrapper {\r\n        --primary: #0d47a1; --text: #333; --border: #e0e0e0; \r\n        font-family: 'Inter', sans-serif; background: #f4f6f8; color: var(--text); \r\n        height: 100vh; width: 100%; display: flex; flex-direction: column; \r\n        border: 1px solid #ccc; box-sizing: border-box; position: relative; font-size: 13px; overflow: auto; \r\n    }\r\n    .sys-navbar { background: #fff; padding: 0 20px; height: 55px; flex-shrink: 0; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 100;}\r\n    .sys-brand { font-size: 18px; font-weight: 800; color: var(--primary); }\r\n    .sys-container { display: flex; flex: 1; overflow: hidden; padding: 15px; gap: 20px; }\r\n    \r\n    \/* Control Panel *\/\r\n    .control-panel { width: 460px; background: #fff; border-radius: 8px; display: flex; flex-direction: column; padding: 20px; flex-shrink: 0; overflow-y: auto; border: 1px solid var(--border); box-shadow: 0 2px 8px rgba(0,0,0,0.05); padding-bottom: 120px; }\r\n    \r\n    \/* Preview Panel (Updated for Print Fit) *\/\r\n    .preview-panel { flex: 1; background: #525659; border-radius: 8px; padding: 30px; overflow-y: auto; display: flex; justify-content: center; }\r\n    \r\n    .section-title { font-size: 14px; font-weight: 700; color: #1a202c; margin: 15px 0 10px 0; border-left: 4px solid var(--primary); padding-left: 10px; background: #f7fafc; padding-top: 6px; padding-bottom: 6px; border-radius: 0 4px 4px 0;}\r\n    .section-title:first-child { margin-top: 0; }\r\n    .form-row { display: flex; gap: 10px; margin-bottom: 10px; }\r\n    .form-col { flex: 1; }\r\n    #hober-app-wrapper label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 4px; color: #4a5568; }\r\n    #hober-app-wrapper input, #hober-app-wrapper select, #hober-app-wrapper textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--border); border-radius: 6px; font-size: 13px; box-sizing: border-box; font-family: inherit; transition: 0.2s;}\r\n    #hober-app-wrapper input:focus, #hober-app-wrapper select:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 0 2px rgba(13, 71, 161, 0.1); }\r\n    \r\n    .mode-tabs { display: flex; gap: 5px; margin-bottom: 15px; background: #edf2f7; padding: 4px; border-radius: 8px; }\r\n    .tab-btn { flex: 1; padding: 8px; border: none; background: transparent; cursor: pointer; font-weight: 600; border-radius: 6px; color: #718096; transition: 0.2s; font-size: 13px;}\r\n    .tab-btn.active { background: #fff; color: var(--primary); box-shadow: 0 1px 3px rgba(0,0,0,0.1); }\r\n    \r\n    .btn-action { width: 100%; padding: 0 15px; height: 42px; min-height: 42px; display: flex; align-items: center; justify-content: center; line-height: 1; border: none; border-radius: 6px; cursor: pointer; font-weight: 700; margin-top: 15px; margin-bottom: 20px; background: var(--primary); color: white; font-size: 14px; box-shadow: 0 4px 6px rgba(13, 71, 161, 0.2); transition: all 0.2s; white-space: nowrap; }\r\n    .btn-action:hover { background: #002171; transform: translateY(-1px); }\r\n    \r\n    \/* Message Styles *\/\r\n    #status-msg { display: none; padding: 10px; margin-bottom: 10px; border-radius: 4px; font-size: 12px; text-align: center; font-weight: 500;}\r\n    .msg-success { background: #e8f5e9; color: #2e7d32; border: 1px solid #c8e6c9; display: block !important;}\r\n    .msg-warn { background: #fff3e0; color: #ef6c00; border: 1px solid #ffe0b2; display: block !important;}\r\n    .msg-error { background: #ffebee; color: #c62828; border: 1px solid #ffcdd2; display: block !important;}\r\n    .hidden { display: none !important; }\r\n    \r\n    \/* Edit Table *\/\r\n    .bom-table { width: 100%; border-collapse: collapse; font-size: 12px; margin-top: 5px; border: 1px solid #eee; }\r\n    .bom-table th { text-align: left; background: #f8f9fa; padding: 8px; color: #555; font-weight: 600; }\r\n    .bom-table td { padding: 8px; border-bottom: 1px solid #eee; background: #fff; vertical-align: middle; }\r\n    .qty-input { width: 50px !important; text-align: center; padding: 4px !important; height: 28px !important; }\r\n    .price-input { width: 70px !important; text-align: right; padding: 4px !important; height: 28px !important; font-weight:600; color:var(--primary); }\r\n    .name-input { width: 100% !important; padding: 4px !important; border: 1px solid transparent !important; background: transparent; font-weight: bold; font-size: 12px; margin-bottom:0 !important; }\r\n    .name-input:focus { border-color: var(--primary) !important; background: #fff; }\r\n    .desc-input { width: 100% !important; padding: 2px 4px !important; border: 1px solid transparent !important; background: transparent; color: #666; font-size: 11px; margin: 0 !important; }\r\n    .desc-input:focus { border-color: var(--primary) !important; background: #fff; color:#333; }\r\n    .btn-del { color: #e53935; background: #fff; border: 1px solid #ffcdd2; border-radius: 4px; width: 10px; height: 10px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: 0.2s; font-size: 8px; line-height: 1;}\r\n    .btn-del:hover { background: #ffebee; border-color: #e53935; }\r\n\r\n    \/* === PDF Page Styles (Optimized for A4) === *\/\r\n    .a4-page { width: 210mm; min-height: 297mm; background: #fff; padding: 15mm; box-shadow: 0 4px 15px rgba(0,0,0,0.15); margin-bottom: 20px; position: relative; box-sizing: border-box;}\r\n    \r\n    .q-header { border-bottom: 3px solid #0d47a1; padding-bottom: 8px; margin-bottom: 10px; display: flex; justify-content: space-between; }\r\n    .q-logo { font-size: 26px; font-weight: 800; color: #0d47a1; } \r\n    \r\n    .preview-table { width: 100%; border-collapse: collapse; font-size: 10px; margin-top: 5px; table-layout: fixed; word-wrap: break-word;}\r\n    .preview-table th { background-color: #0d47a1 !important; color: #fff !important; padding: 5px 4px; text-align: left; text-transform: uppercase; font-weight: 600; -webkit-print-color-adjust: exact; print-color-adjust: exact;}\r\n    \/* Reduced padding for compact printing *\/\r\n    .preview-table td { border-bottom: 1px solid #eee; padding: 4px 4px; vertical-align: top; color: #333; }\r\n    .preview-table tr:nth-child(odd) { background-color: #f8f8f8; } \r\n    .preview-table tr:nth-child(even) { background-color: #ffffff; }\r\n    .preview-table tr { page-break-inside: avoid; break-inside: avoid; }\r\n    \r\n    .preview-table .num { text-align: right; font-family: 'Inter', monospace; font-weight: 600; }\r\n    .preview-table .item-name { font-weight: 700; font-size: 10px; color: #222; }\r\n    .preview-table .item-desc { color: #666; font-size: 9px; margin-top: 1px; white-space: pre-line; line-height: 1.2; }\r\n    \r\n    .total-section { margin-top: 15px; display: flex; justify-content: flex-end; }\r\n    .total-table { width: 45%; border-collapse: collapse; font-size: 10px; }\r\n    .total-table td { padding: 4px 10px; text-align: right; color:#333; border-bottom: 1px solid #eee;}\r\n    .total-final { background: #0d47a1; font-weight: 700; color: #fff!important; font-size: 11px; border-radius: 4px; -webkit-print-color-adjust: exact; print-color-adjust: exact;}\r\n    \r\n    .footer { position: absolute; bottom: 12mm; left: 0; width: 100%; text-align: center; font-size: 8px; color: #999; border-top: 1px solid #eee; padding-top: 8px; }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div id=\"hober-app-wrapper\">\r\n    <div class=\"sys-navbar\">\r\n        <div class=\"sys-brand\">Configurateur syst\u00e8me Pro<\/div>\r\n        <button class=\"btn-action\" style=\"width: auto; background: #43a047; padding: 0 20px; margin:0; height: 36px; display:flex; align-items:center;\" onclick=\"downloadPDF()\">\u2b07 Devis PDF<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"sys-container\">\r\n        <div class=\"control-panel\">\r\n            <div class=\"section-title\">1. Informations de base<\/div>\r\n            <div class=\"form-row\">\r\n                <div class=\"form-col\"><label>Mon entreprise<\/label><input id=\"in_co\" value=\"Name\" oninput=\"updatePDF()\"><\/div>\r\n                <div class=\"form-col\"><label>Num\u00e9ro de devis<\/label><input id=\"in_no\" value=\"QT-2025-001\" oninput=\"updatePDF()\"><\/div>\r\n            <\/div>\r\n            <div class=\"form-row\">\r\n                <div class=\"form-col\"><label>Nom du client<\/label><input id=\"in_client\" placeholder=\"Nom du client\" oninput=\"updatePDF()\"><\/div>\r\n                <div class=\"form-col\"><label>Date<\/label><input type=\"date\" id=\"in_date\" onchange=\"updatePDF()\"><\/div>\r\n            <\/div>\r\n\r\n            <div class=\"section-title\">2. Dimensionnement du syst\u00e8me<\/div>\r\n            <div class=\"mode-tabs\">\r\n                <button class=\"tab-btn active\" onclick=\"switchMode('new')\">A. Nouveau syst\u00e8me<\/button>\r\n                <button class=\"tab-btn\" onclick=\"switchMode('retrofit')\">B. Pompe existante<\/button>\r\n            <\/div>\r\n\r\n            <div id=\"panel_new_system\">\r\n                <div class=\"form-row\">\r\n                    <div class=\"form-col\">\r\n                        <label>Application<\/label>\r\n                        <select id=\"sel_app_type\">\r\n                            <option value=\"sub\">Puits profond (submersible)<\/option>\r\n                            <option value=\"surf\">Les eaux de surface<\/option>\r\n                            <option value=\"sew\">Submersible pour eaux us\u00e9es<\/option>\r\n                        <\/select>\r\n                    <\/div>\r\n                    <div class=\"form-col\">\r\n                        <label>Technologie<\/label>\r\n                        <select id=\"sel_tech_type\">\r\n                            <option value=\"all\">Auto (BLDC ou hybride)<\/option>\r\n                            <option value=\"BLDC\">BLDC (Solaire CC)<\/option>\r\n                            <option value=\"AC&DC\">Hybride AC et DC<\/option>\r\n                        <\/select>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"form-row\">\r\n                    <div class=\"form-col\"><label>D\u00e9bit horaire (m\u00b3\/h)<\/label><input type=\"number\" id=\"req_flow\" value=\"30\" placeholder=\"par exemple 30\"><\/div>\r\n                    <div class=\"form-col\"><label>T\u00eate (m)<\/label><input type=\"number\" id=\"req_head\" value=\"120\" placeholder=\"par exemple 120\"><\/div>\r\n                <\/div>\r\n                \r\n                <div class=\"form-row\">\r\n                     <div class=\"form-col\"><label>Longueur du c\u00e2ble (m)<\/label><input type=\"number\" id=\"req_cable_len\" value=\"50\" placeholder=\"Pour la quantit\u00e9 de c\u00e2ble\"><\/div>\r\n                     <div class=\"form-col\"><label>Puissance cible (kW) [Verrouiller]<\/label><input type=\"number\" id=\"req_power_target\" placeholder=\"Optionnel - Forcer la s\u00e9lection\"><\/div>\r\n                <\/div>\r\n\r\n                <div class=\"form-row\" style=\"background: #fff3e0; padding: 8px; border-radius: 6px; border: 1px solid #ffe0b2;\">\r\n                    <div class=\"form-col\">\r\n                        <label style=\"color:#e65100;\">Puissance du panneau solaire (W)<\/label>\r\n                        <input type=\"number\" id=\"in_panel_watts\" value=\"620\" placeholder=\"par exemple 550\" style=\"background:white;\">\r\n                    <\/div>\r\n                    <div style=\"font-size:10px; color:#555; display:flex; align-items:center; flex:1;\">\r\n                        Affecte les calculs de tension MPPT.\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div id=\"panel_retrofit\" class=\"hidden\">\r\n                <div class=\"form-row\">\r\n                    <div class=\"form-col\"><label>Puissance de la pompe (kW)<\/label><input type=\"number\" id=\"ex_power\" value=\"2.2\" step=\"0.1\"><\/div>\r\n                    <div class=\"form-col\">\r\n                        <label>Tension \/ Phase<\/label>\r\n                        <select id=\"ex_volt\">\r\n                            <option value=\"1\">Monophas\u00e9 220 V<\/option>\r\n                            <option value=\"3\">triphas\u00e9 380 V<\/option>\r\n                        <\/select>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"form-row\">\r\n                     <div class=\"form-col\"><label>Longueur du c\u00e2ble (m)<\/label><input type=\"number\" id=\"ex_cable_len\" value=\"50\" placeholder=\"Distance\"><\/div>\r\n                <\/div>\r\n                <div style=\"font-size:11px; color:#666; background:#e3f2fd; padding:10px; border-radius:6px; border:1px solid #bbdefb;\">\r\n                    \u2139\ufe0f <b>Mode de modernisation\u00a0:<\/b> Calcule le syst\u00e8me solaire, l&#039;onduleur et la protection en fonction de la pompe existante.\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <button class=\"btn-action\" onclick=\"generateConfig()\">\u26a1 G\u00e9n\u00e9ration automatique de la configuration<\/button>\r\n            <div id=\"status-msg\"><\/div>\r\n\r\n            <div class=\"section-title\">3. Nomenclature et tarification<\/div>\r\n            <div class=\"form-row\" style=\"margin-bottom:10px;\">\r\n                <div class=\"form-col\"><label>Ajoutez votre marge b\u00e9n\u00e9ficiaire (%)<\/label><input type=\"number\" id=\"req_margin\" value=\"0\" onchange=\"renderBOM()\" placeholder=\"20\"><\/div>\r\n            <\/div>\r\n\r\n            <table class=\"bom-table\">\r\n                <thead><tr><th width=\"50%\">Article (modifiable)<\/th><th width=\"15%\" style=\"text-align:center\">Qt\u00e9<\/th><th width=\"30%\" style=\"text-align:right\">Prix<\/th><th width=\"5%\"><\/th><\/tr><\/thead>\r\n                <tbody id=\"bom_body\"><\/tbody>\r\n            <\/table>\r\n\r\n            <div style=\"margin-top:5px; margin-bottom:10px;\">\r\n                <button class=\"btn-action\" style=\"margin:0; padding:0 10px; font-size:12px; background:#757575; height:32px; min-height:32px; width:auto; display:inline-flex;\" onclick=\"toggleManual()\">\u2795 Ajouter un \u00e9l\u00e9ment manuel<\/button>\r\n                <div id=\"manual_panel\" class=\"hidden\" style=\"background:#f9f9f9; padding:10px; border:1px solid #eee; margin-top:5px; border-radius:6px;\">\r\n                    <label style=\"margin-bottom:2px;\">D\u00e9tails de l&#039;article<\/label>\r\n                    <div class=\"form-row\" style=\"margin-bottom:5px;\">\r\n                        <input id=\"man_name\" placeholder=\"Nom de l&#039;article\" style=\"flex:1\">\r\n                        <input id=\"man_desc\" placeholder=\"Description\" style=\"flex:1\">\r\n                    <\/div>\r\n                    <label style=\"margin-bottom:2px;\">Prix et quantit\u00e9<\/label>\r\n                    <div class=\"form-row\" style=\"margin-bottom:5px;\">\r\n                        <input id=\"man_qty\" type=\"number\" value=\"1\" placeholder=\"Qt\u00e9\" style=\"flex:0.5\">\r\n                        <input id=\"man_unit\" value=\"PCS\" placeholder=\"Unit\u00e9\" style=\"flex:0.5\">\r\n                        <input id=\"man_price\" type=\"number\" placeholder=\"Co\u00fbt ($)\" style=\"flex:1\">\r\n                    <\/div>\r\n                    <button class=\"btn-action\" style=\"margin:0; padding:5px; font-size:12px; background:#555; height:auto; min-height:28px;\" onclick=\"addManual()\">Confirmer l&#039;ajout<\/button>\r\n                <\/div>\r\n            <\/div>\r\n\r\n            <div class=\"form-row\" style=\"margin-top:10px; background:#fff8e1; padding:8px; border-radius:6px; border:1px solid #ffe0b2;\">\r\n                <div class=\"form-col\"><label style=\"color:#e65100; font-weight:700;\">Frais d&#039;installation ($)<\/label><input type=\"number\" id=\"in_install_fee\" value=\"0\" onchange=\"renderBOM()\" placeholder=\"0.00\" style=\"background:#fff;\"><\/div>\r\n                <div class=\"form-col\"><label style=\"color:#e65100; font-weight:700;\">Frais de livraison ($)<\/label><input type=\"number\" id=\"in_shipping\" value=\"0\" onchange=\"renderBOM()\" placeholder=\"0.00\" style=\"background:#fff;\"><\/div>\r\n            <\/div>\r\n            \r\n            <div class=\"section-title\">4. Conditions<\/div>\r\n            <textarea id=\"in_terms\" style=\"height:80px; resize:vertical;\" oninput=\"updatePDF()\">1. Warranty: 2 Years for Inverter\/Pump.&#13;&#10;2. Validity: 15 Days.<\/textarea>\r\n        <\/div>\r\n\r\n        <div class=\"preview-panel\">\r\n            <div id=\"pdf_page\" class=\"a4-page\">\r\n                <div class=\"q-header\">\r\n                    <div class=\"q-logo\" id=\"out_co\">HOBERR<\/div>\r\n                    <div class=\"q-meta\">\r\n                        <div><strong>Citation #\u00a0:<\/strong> <span id=\"out_no\">--<\/span><\/div>\r\n                        <div><strong>Date:<\/strong> <span id=\"out_date\">--<\/span><\/div>\r\n                    <\/div>\r\n                <\/div>\r\n                <div style=\"background:#f8f9fa; padding:15px; display:flex; justify-content:space-between; margin-bottom:15px; border-radius:6px;\">\r\n                    <div><div style=\"font-size:10px; color:#888; text-transform:uppercase; margin-bottom:4px;\">Facturer \u00e0:<\/div><div id=\"out_client\" style=\"font-weight:bold; font-size:14px;\">Nom du client<\/div><\/div>\r\n                    <div style=\"text-align:right;\"><div style=\"font-size:10px; color:#888; text-transform:uppercase; margin-bottom:4px;\">Depuis:<\/div><div id=\"out_from\" style=\"font-weight:bold; font-size:14px;\">Nom<\/div><\/div>\r\n                <\/div>\r\n                <table class=\"preview-table\">\r\n                    <thead><tr><th width=\"5%\">#<\/th><th width=\"50%\">Description<\/th><th width=\"10%\">Unit\u00e9<\/th><th width=\"10%\" style=\"text-align:center\">Qt\u00e9<\/th><th width=\"12%\" style=\"text-align:right\">Prix<\/th><th width=\"13%\" style=\"text-align:right\">Total<\/th><\/tr><\/thead>\r\n                    <tbody id=\"out_tbody\"><\/tbody>\r\n                <\/table>\r\n                <div class=\"total-section\">\r\n                    <table class=\"total-table\">\r\n                        <tr><td>Sous-total (Mat\u00e9riel) :<\/td><td>$<span id=\"out_subtotal\">0.00<\/span><\/td><\/tr>\r\n                        <tr><td class=\"total-final\">Total:<\/td><td class=\"total-final\">$<span id=\"out_total\">0.00<\/span><\/td><\/tr>\r\n                    <\/table>\r\n                <\/div>\r\n                <div style=\"margin-top:40px; font-size:10px; color:#666; border-top:1px solid #eee; padding-top:15px;\">\r\n                    <strong>CONDITIONS G\u00c9N\u00c9RALES :<\/strong><br><span id=\"out_terms\" style=\"white-space: pre-wrap; line-height:1.6;\"><\/span>\r\n                <\/div>\r\n                <div class=\"footer\">Merci de votre confiance !<\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\n    \/\/ ================= DB DEFINITIONS (\u5b8c\u6574\u6570\u636e\u5e93) =================\r\n    const invDB = [{m:\"HSPH750LB\",p:0.75,ph:1,b:true,price:200},{m:\"HSPH1500LB\",p:1.5,ph:1,b:true,price:250},{m:\"HSPH1500L\",p:1.5,ph:1,b:false,price:240},{m:\"HSPH2200L\",p:2.2,ph:1,b:false,price:300},{m:\"HSPH3700L\",p:3.7,ph:1,b:false,price:380},{m:\"HSPH5500L\",p:5.5,ph:1,b:false,price:450},{m:\"HSPH7500L\",p:7.5,ph:1,b:false,price:550},{m:\"HSPH1500HB\",p:1.5,ph:3,b:true,price:260},{m:\"HSPH2200HB\",p:2.2,ph:3,b:true,price:310},{m:\"HSPH3700H\",p:3.7,ph:3,b:false,price:390},{m:\"HSPH4000H\",p:4.0,ph:3,b:false,price:410},{m:\"HSPH5500H\",p:5.5,ph:3,b:false,price:480},{m:\"HSPH7500H\",p:7.5,ph:3,b:false,price:580},{m:\"HSPH9200H\",p:9.2,ph:3,b:false,price:650},{m:\"HSPH11KH\",p:11,ph:3,b:false,price:720},{m:\"HSPH15KH\",p:15,ph:3,b:false,price:880},{m:\"HSPH18.5KH\",p:18.5,ph:3,b:false,price:1050},{m:\"HSPH22KH\",p:22,ph:3,b:false,price:1200},{m:\"HSPH26KH\",p:26,ph:3,b:false,price:1350},{m:\"HSPH30KH\",p:30,ph:3,b:false,price:1450},{m:\"HSPH37KH\",p:37,ph:3,b:false,price:1650},{m:\"HSPH45KH\",p:45,ph:3,b:false,price:1850},{m:\"HSPH55KH\",p:55,ph:3,b:false,price:2250},{m:\"HSPH75KH\",p:75,ph:3,b:false,price:2900},{m:\"HSPH100KH\",p:100,ph:3,b:false,price:3800},{m:\"HSPH110KH\",p:110,ph:3,b:false,price:4600},{m:\"HSPH132KH\",p:132,ph:3,b:false,price:5300},{m:\"HSPH160KH\",p:160,ph:3,b:false,price:6600},{m:\"HSPH180KH\",p:180,ph:3,b:false,price:7200},{m:\"HSPH200KH\",p:200,ph:3,b:false,price:8100},{m:\"HSPH220KH\", p:220, ph:3, b:false, price:8800},{m:\"HSPH250KH\", p:250, ph:3, b:false, price:10000},{m:\"HSPH280KH\", p:280, ph:3, b:false, price:11200},{m:\"HSPH315KH\", p:315, ph:3, b:false, price:12600},{m:\"HSPH355KH\", p:355, ph:3, b:false, price:14200},{m:\"HSPH400KH\", p:400, ph:3, b:false, price:16000},{m:\"HSPH450KH\", p:450, ph:3, b:false, price:18000},{m:\"HSPH500KH\", p:500, ph:3, b:false, price:20000}];\r\n    const combinerBoxDB = [{model:\"HCBL1+2\",inputs:2,ph:1,type:\"hybrid\",spec:\"2 PV + 1 AC (500V)\",price:168},{model:\"HCBH3+2\",inputs:2,ph:3,type:\"hybrid\",spec:\"2 PV + 3 AC (1000V)\",price:188},{model:\"HCBH3+3\",inputs:3,ph:3,type:\"hybrid\",spec:\"3 PV + 3 AC (1000V)\",price:218},{model:\"HCBH3+4\",inputs:4,ph:3,type:\"hybrid\",spec:\"4 PV + 3 AC (1000V)\",price:228},{model:\"HCBH3+6\",inputs:6,ph:3,type:\"hybrid\",spec:\"6 PV + 3 AC (1000V)\",price:348},{model:\"HCBH3+8\",inputs:8,ph:3,type:\"hybrid\",spec:\"8 PV + 3 AC (1000V)\",price:368},{model:\"HCBH3\",inputs:3,ph:3,type:\"pv\",spec:\"3 In Max 1000Vdc\",price:128},{model:\"HCBH4\",inputs:4,ph:3,type:\"pv\",spec:\"4 In Max 1000Vdc\",price:138},{model:\"HCBH12\",inputs:12,ph:3,type:\"pv\",spec:\"12 In Max 1000Vdc\",price:398},{model:\"HCBH14\",inputs:14,ph:3,type:\"pv\",spec:\"14 In Max 1000Vdc\",price:434},{model:\"HCBH16\",inputs:16,ph:3,type:\"pv\",spec:\"16 In Max 1000Vdc\",price:445},{model:\"HCBH18\",inputs:18,ph:3,type:\"pv\",spec:\"18 In Max 1000Vdc\",price:668},{model:\"HCBH20\",inputs:24,ph:3,type:\"pv\",spec:\"20\/24 In Max 1000Vdc\",price:700}];\r\n    const pumpCableDB = [{spec:\"3*2.5mm\u00b2 + 1*1.5mm\u00b2\",amp:10,price:1.44},{spec:\"3*4mm\u00b2 + 1*2.5mm\u00b2\",amp:15,price:2.25},{spec:\"3*6mm\u00b2 + 1*4mm\u00b2\",amp:23,price:3.33},{spec:\"3*10mm\u00b2 + 1*6mm\u00b2\",amp:38,price:5.89},{spec:\"3*16mm\u00b2 + 1*10mm\u00b2\",amp:62,price:8.41},{spec:\"3*25mm\u00b2 + 1*10mm\u00b2\",amp:96,price:13.22},{spec:\"3*35mm\u00b2 + 1*10mm\u00b2\",amp:135,price:17.47},{spec:\"3*50mm\u00b2 + 1*16mm\u00b2\",amp:192,price:25.21},{spec:\"3*70mm\u00b2 + 1*25mm\u00b2\",amp:269,price:35.84}];\r\n    const solarCableDB = [{spec:\"4mm\u00b2\",price:0.63},{spec:\"6mm\u00b2\",price:0.92},{spec:\"10mm\u00b2\",price:1.6},{spec:\"16mm\u00b2\",price:2.58},{spec:\"25mm\u00b2\",price:3.98},{spec:\"35mm\u00b2\",price:5.54},{spec:\"50mm\u00b2\",price:7.92}];\r\n    const reactorDB = {2.2:{r150:{m:\"HBR-2.2-005-140B\",p:55},r250:{m:\"HBR-2.2-005-280B\",p:75},f400:{m:\"HBF-2.2-005-D\",p:140},f1000:{m:\"HBF-2.2-005-S\",p:160}},3.7:{r150:{m:\"HBR-3.7-0010-700C\",p:65},r250:{m:\"HBR-3.7-0010-140B\",p:85},f400:{m:\"HBF-3.7-0010-D\",p:130},f1000:{m:\"HBF-3.7-0010-S\",p:150}},5.5:{r150:{m:\"HBR-5.5-0013-540C\",p:76},r250:{m:\"HBR-5.5-0013-108B\",p:90},f400:{m:\"HBF-5.5-0013-D\",p:150},f1000:{m:\"HBF-5.5-0013-S\",p:170}},7.5:{r150:{m:\"HBR-7.5-0016-438C\",p:80},r250:{m:\"HBR-7.5-0016-875C\",p:100},f400:{m:\"HBF-7.5-0016-D\",p:165},f1000:{m:\"HBF-7.5-0016-S\",p:200}},11:{r150:{m:\"HBR-11-0025-280C\",p:85},r250:{m:\"HBR-11-0025-560C\",p:110},f400:{m:\"HBF-11-0025-D\",p:180},f1000:{m:\"HBF-11-0025-S\",p:250}},15:{r150:{m:\"HBR-15-0030-233C\",p:88},r250:{m:\"HBR-15-0030-467C\",p:120},f400:{m:\"HBF-15-0030-D\",p:190},f1000:{m:\"HBF-15-0030-S\",p:270}},18.5:{r150:{m:\"HBR-18.5-0040-175C\",p:98},r250:{m:\"HBR-18.5-0040-350C\",p:150},f400:{m:\"HBF-18.5-0040-D\",p:208},f1000:{m:\"HBF-18.5-0040-S\",p:310}},22:{r150:{m:\"HBR-22-0045-155C\",p:108},r250:{m:\"HBR-22-0045-311C\",p:165},f400:{m:\"HBF-22-0045-D\",p:255},f1000:{m:\"HBF-22-0045-S\",p:355}},30:{r150:{m:\"HBR-30-0060-117C\",p:130},r250:{m:\"HBR-30-0060-234C\",p:165},f400:{m:\"HBF-30-0060-D\",p:280},f1000:{m:\"HBF-30-0060-S\",p:605}},37:{r150:{m:\"HBR-37-0075-934D\",p:140},r250:{m:\"HBR-37-0075-187C\",p:173},f400:{m:\"HBF-37-0075-D\",p:340},f1000:{m:\"HBF-37-0075-S\",p:702}},45:{r150:{m:\"HBR-45-0090-785D\",p:155},r250:{m:\"HBR-45-0090-155C\",p:190},f400:{m:\"HBF-45-0090-D\",p:462},f1000:{m:\"HBF-45-0090-S\",p:775}},55:{r150:{m:\"HBR-55-0110-640D\",p:173},r250:{m:\"HBR-55-0110-128C\",p:220},f400:{m:\"HBF-55-0110-D\",p:495},f1000:{m:\"HBF-55-0110-S\",p:1003}},75:{r150:{m:\"HBR-75-0150-467D\",p:196},r250:{m:\"HBR-75-0150-934D\",p:245},f400:{m:\"HBF-75-0150-D\",p:525},f1000:{m:\"HBF-75-0150-S\",p:1215}},110:{r150:{m:\"HBR-110-0220-320D\",p:270},r250:{m:\"HBR-110-0220-640D\",p:355},f400:{m:\"HBF-110-0220-D\",p:703},f1000:{m:\"HBF-110-0220-S\",p:1740}},132:{r150:{m:\"HBR-132-0260-270D\",p:316},r250:{m:\"HBR-132-0260-540D\",p:412},f400:{m:\"HBF-132-0260-D\",p:776},f1000:{m:\"HBF-132-0260-S\",p:2097}},160:{r150:{m:\"HBR-160-0320-220D\",p:364},r250:{m:\"HBR-160-0320-438D\",p:516},f400:{m:\"HBF-160-0320-D\",p:978},f1000:{m:\"HBF-160-0320-S\",p:2472}},200:{r150:{m:\"HBR-200-0400-175D\",p:429},r250:{m:\"HBR-200-0400-350D\",p:590},f400:{m:\"HBF-200-0400-D\",p:1027},f1000:{m:\"HBF-200-0400-S\",p:2612}}};\r\n\r\n    const raw_pump_mixed = [\r\n      {dbType:'AC&DC', model:\"H4SP2-06\",type:\"sub\",p:0.37,c:[{q:1.8,h:27},{q:3,h:20}], price: 382},\r\n      {dbType:'AC&DC', model:\"H4SP2-09\",type:\"sub\",p:0.37,c:[{q:1.8,h:41},{q:3,h:30}], price: 394},\r\n      {dbType:'AC&DC', model:\"H4SP2-13\",type:\"sub\",p:0.55,c:[{q:1.8,h:59},{q:3,h:43}], price: 417},\r\n      {dbType:'AC&DC', model:\"H4SP2-18\",type:\"sub\",p:0.75,c:[{q:1.8,h:81},{q:3,h:59}], price: 494},\r\n      {dbType:'AC&DC', model:\"H4SP2-23\",type:\"sub\",p:1.1,c:[{q:1.8,h:104},{q:3,h:76}], price: 532},\r\n      {dbType:'AC&DC', model:\"H4SP2-28\",type:\"sub\",p:1.5,c:[{q:1.8,h:126},{q:3,h:92}], price: 553},\r\n      {dbType:'AC&DC', model:\"H4SP2-33\",type:\"sub\",p:1.5,c:[{q:1.8,h:149},{q:3,h:109}], price: 583},\r\n      {dbType:'AC&DC', model:\"H4SP2-40\",type:\"sub\",p:2.2,c:[{q:1.8,h:180},{q:3,h:132}], price: 640},\r\n      {dbType:'AC&DC', model:\"H4SP2-48\",type:\"sub\",p:2.2,c:[{q:1.8,h:216},{q:3,h:158}], price: 680},\r\n      {dbType:'AC&DC', model:\"H4SP5-04\",type:\"sub\",p:0.37,c:[{q:4.8,h:17},{q:5.4,h:15}], price: 378},\r\n      {dbType:'AC&DC', model:\"H4SP5-06\",type:\"sub\",p:0.55,c:[{q:4.8,h:26},{q:5.4,h:23}], price: 391},\r\n      {dbType:'AC&DC', model:\"H4SP5-08\",type:\"sub\",p:0.75,c:[{q:4.8,h:34},{q:5.4,h:31}], price: 454},\r\n      {dbType:'AC&DC', model:\"H4SP5-12\",type:\"sub\",p:1.1,c:[{q:4.8,h:52},{q:5.4,h:46}], price: 487},\r\n      {dbType:'AC&DC', model:\"H4SP5-17\",type:\"sub\",p:1.5,c:[{q:4.8,h:73},{q:5.4,h:65}], price: 511},\r\n      {dbType:'AC&DC', model:\"H4SP5-22\",type:\"sub\",p:2.2,c:[{q:4.8,h:95},{q:5.4,h:84}], price: 553},\r\n      {dbType:'AC&DC', model:\"H4SP5-25\",type:\"sub\",p:2.2,c:[{q:4.8,h:108},{q:5.4,h:95}], price: 567},\r\n      {dbType:'AC&DC', model:\"H4SP5-33\",type:\"sub\",p:3,c:[{q:4.8,h:142},{q:5.4,h:125}], price: 724},\r\n      {dbType:'AC&DC', model:\"H4SP5-38\",type:\"sub\",p:4,c:[{q:4.8,h:163},{q:5.4,h:144}], price: 808},\r\n      {dbType:'AC&DC', model:\"H4SP5-40\",type:\"sub\",p:4,c:[{q:4.8,h:172},{q:5.4,h:152}], price: 819},\r\n      {dbType:'AC&DC', model:\"H4SP5-44\",type:\"sub\",p:4,c:[{q:4.8,h:189},{q:5.4,h:167}], price: 839},\r\n      {dbType:'AC&DC', model:\"H4SP5-52\",type:\"sub\",p:5.5,c:[{q:4.8,h:224},{q:5.4,h:198}], price: 951},\r\n      {dbType:'AC&DC', model:\"H4SP5-75\",type:\"sub\",p:7.5,c:[{q:4.8,h:323},{q:5.4,h:285}], price: 1244},\r\n      {dbType:'AC&DC', model:\"H4SP8-05\",type:\"sub\",p:0.75,c:[{q:6.6,h:25},{q:8.4,h:22}], price: 462},\r\n      {dbType:'AC&DC', model:\"H4SP8-07\",type:\"sub\",p:1.1,c:[{q:6.6,h:34},{q:8.4,h:30}], price: 491},\r\n      {dbType:'AC&DC', model:\"H4SP8-10\",type:\"sub\",p:1.5,c:[{q:6.6,h:49},{q:8.4,h:43}], price: 514},\r\n      {dbType:'AC&DC', model:\"H4SP8-12\",type:\"sub\",p:2.2,c:[{q:6.6,h:59},{q:8.4,h:52}], price: 546},\r\n      {dbType:'AC&DC', model:\"H4SP8-18\",type:\"sub\",p:3,c:[{q:6.6,h:88},{q:8.4,h:77}], price: 708},\r\n      {dbType:'AC&DC', model:\"H4SP8-21\",type:\"sub\",p:4,c:[{q:6.6,h:103},{q:8.4,h:90}], price: 783},\r\n      {dbType:'AC&DC', model:\"H4SP8-24\",type:\"sub\",p:4,c:[{q:6.6,h:118},{q:8.4,h:103}], price: 806},\r\n      {dbType:'AC&DC', model:\"H4SP8-30\",type:\"sub\",p:5.5,c:[{q:6.6,h:147},{q:8.4,h:129}], price: 920},\r\n      {dbType:'AC&DC', model:\"H4SP8-35\",type:\"sub\",p:5.5,c:[{q:6.6,h:171},{q:8.4,h:151}], price: 954},\r\n      {dbType:'AC&DC', model:\"H4SP8-40\",type:\"sub\",p:7.5,c:[{q:6.6,h:196},{q:8.4,h:172}], price: 1069},\r\n      {dbType:'AC&DC', model:\"H4SP8-44\",type:\"sub\",p:7.5,c:[{q:6.6,h:216},{q:8.4,h:189}], price: 1097},\r\n      {dbType:'AC&DC', model:\"H4SP8-58\",type:\"sub\",p:9.2,c:[{q:6.6,h:285},{q:8.4,h:250}], price: 1451},\r\n      {dbType:'AC&DC', model:\"H4SP14-05\",type:\"sub\",p:1.5,c:[{q:9,h:28},{q:15,h:20}], price: 521},\r\n      {dbType:'AC&DC', model:\"H4SP14-07\",type:\"sub\",p:2.2,c:[{q:9,h:39},{q:15,h:28}], price: 563},\r\n      {dbType:'AC&DC', model:\"H4SP14-10\",type:\"sub\",p:3,c:[{q:9,h:55},{q:15,h:40}], price: 716},\r\n      {dbType:'AC&DC', model:\"H4SP14-13\",type:\"sub\",p:4,c:[{q:9,h:72},{q:15,h:51}], price: 810},\r\n      {dbType:'AC&DC', model:\"H4SP14-15\",type:\"sub\",p:5.5,c:[{q:9,h:83},{q:15,h:59}], price: 909},\r\n      {dbType:'AC&DC', model:\"H4SP14-18\",type:\"sub\",p:5.5,c:[{q:9,h:99},{q:15,h:71}], price: 952},\r\n      {dbType:'AC&DC', model:\"H4SP14-21\",type:\"sub\",p:7.5,c:[{q:9,h:116},{q:15,h:83}], price: 1063},\r\n      {dbType:'AC&DC', model:\"H4SP14-25\",type:\"sub\",p:7.5,c:[{q:9,h:138},{q:15,h:99}], price: 1123},\r\n      {dbType:'AC&DC', model:\"H4SP14-30\",type:\"sub\",p:9.2,c:[{q:9,h:166},{q:15,h:119}], price: 1350},\r\n      {dbType:'AC&DC', model:\"H6SP46-1\",type:\"sub\",p:2.2,c:[{q:36,h:10},{q:48,h:9}], price: 569},\r\n      {dbType:'AC&DC', model:\"H6SP46-3\",type:\"sub\",p:5.5,c:[{q:36,h:31},{q:48,h:26}], price: 1027},\r\n      {dbType:'AC&DC', model:\"H6SP46-5\",type:\"sub\",p:7.5,c:[{q:36,h:51},{q:48,h:43}], price: 982},\r\n      {dbType:'AC&DC', model:\"H6SP46-7\",type:\"sub\",p:11,c:[{q:36,h:72},{q:48,h:60}], price: 1107},\r\n      {dbType:'AC&DC', model:\"H6SP46-10\",type:\"sub\",p:15,c:[{q:36,h:102},{q:48,h:86}], price: 1474},\r\n      {dbType:'AC&DC', model:\"H6SP46-13\",type:\"sub\",p:22,c:[{q:36,h:133},{q:48,h:112}], price: 1978},\r\n      {dbType:'AC&DC', model:\"H6SP46-18\",type:\"sub\",p:30,c:[{q:36,h:184},{q:48,h:155}], price: 2529},\r\n      {dbType:'AC&DC', model:\"H6SP46-22\",type:\"sub\",p:37,c:[{q:36,h:225},{q:48,h:189}], price: 3224},\r\n      {dbType:'AC&DC', model:\"H6SP46-26\",type:\"sub\",p:45,c:[{q:36,h:266},{q:48,h:224}], price: 4204},\r\n      {dbType:'AC&DC', model:\"H8SP77-3\",type:\"sub\",p:11,c:[{q:84,h:37},{q:120,h:12}], price: 1286},\r\n      {dbType:'AC&DC', model:\"H8SP77-5\",type:\"sub\",p:18.5,c:[{q:84,h:62},{q:120,h:20}], price: 1827},\r\n      {dbType:'AC&DC', model:\"H8SP77-6\",type:\"sub\",p:22,c:[{q:84,h:74},{q:120,h:24}], price: 2160},\r\n      {dbType:'AC&DC', model:\"H8SP77-8\",type:\"sub\",p:30,c:[{q:84,h:98},{q:120,h:32}], price: 3662},\r\n      {dbType:'AC&DC', model:\"H8SP77-10\",type:\"sub\",p:37,c:[{q:84,h:123},{q:120,h:40}], price: 4377},\r\n      {dbType:'AC&DC', model:\"H8SP77-12\",type:\"sub\",p:45,c:[{q:84,h:148},{q:120,h:48}], price: 5387},\r\n      {dbType:'AC&DC', model:\"H8SP77-14\",type:\"sub\",p:55,c:[{q:84,h:172},{q:120,h:56}], price: 6006},\r\n      {dbType:'AC&DC', model:\"H8SP77-18\",type:\"sub\",p:75,c:[{q:84,h:221},{q:120,h:72}], price: 7839},\r\n      {dbType:'AC&DC', model:\"H8SP95-5\",type:\"sub\",p:22,c:[{q:95,h:60},{q:120,h:32}], price: 2102},\r\n      {dbType:'AC&DC', model:\"H8SP95-9\",type:\"sub\",p:37,c:[{q:95,h:108},{q:120,h:57}], price: 4319},\r\n      {dbType:'AC&DC', model:\"H8SP95-12\",type:\"sub\",p:55,c:[{q:95,h:172},{q:120,h:77}], price: 5869},\r\n      {dbType:'AC&DC', model:\"H10SP125-3\",type:\"sub\",p:30,c:[{q:125,h:60},{q:160,h:40}], price: 3890},\r\n      {dbType:'AC&DC', model:\"H10SP125-5\",type:\"sub\",p:55,c:[{q:125,h:100},{q:160,h:62}], price: 6152},\r\n      {dbType:'AC&DC', model:\"H10SP125-7\",type:\"sub\",p:75,c:[{q:125,h:140},{q:160,h:89}], price: 8041},\r\n      {dbType:'AC&DC', model:\"H10SP160-5\",type:\"sub\",p:63,c:[{q:160,h:100},{q:200,h:80}], price: 6288},\r\n      {dbType:'BLDC', model:\"HD-SWP9-6-24-300\", type:\"surf\", p:0.3, q:9, h:6, price: 164},\r\n      {dbType:'BLDC', model:\"HD-SWP18-11-48-600\", type:\"surf\", p:0.6, q:18, h:11, price: 168},\r\n      {dbType:'BLDC', model:\"HD-SWP19-12-72-750\", type:\"surf\", p:0.75, q:19, h:12, price: 177},\r\n      {dbType:'BLDC', model:\"HD-SWP22-16-110-1100\", type:\"surf\", p:1.1, q:22, h:16, price: 194},\r\n      {dbType:'BLDC', model:\"HD-SWP36-12-110-1100\", type:\"surf\", p:1.1, q:36, h:12, price: 200},\r\n      {dbType:'BLDC', model:\"HD-SWP23-25-110-1500\", type:\"surf\", p:1.5, q:23, h:25, price: 210},\r\n      {dbType:'BLDC', model:\"HD-SWP28-30-280-2200\", type:\"surf\", p:2.2, q:28, h:30, price: 288},\r\n      {dbType:'BLDC', model:\"HD-SWP45-15-110-1500\", type:\"surf\", p:1.5, q:45, h:15, price: 236},\r\n      {dbType:'BLDC', model:\"HD-SWP50-20-280-2200\", type:\"surf\", p:2.2, q:50, h:20, price: 325},\r\n      {dbType:'BLDC', model:\"HD-SWP70-16-280-2200\", type:\"surf\", p:2.2, q:70, h:16, price: 330},\r\n      {dbType:'BLDC', model:\"HBP3C-24-300-3-35\", p:0.3, type:\"sub\", q:3, h:35, price: 159},\r\n      {dbType:'BLDC', model:\"HBP3C-48-400-3.5-47\", p:0.4, type:\"sub\", q:3.5, h:47, price: 161},\r\n      {dbType:'BLDC', model:\"HBP3C-72-600-3.5-80\", p:0.6, type:\"sub\", q:3.5, h:80, price: 171},\r\n      {dbType:'BLDC', model:\"HBP3C-72-750-3.5-95\", p:0.75, type:\"sub\", q:3.5, h:95, price: 173},\r\n      {dbType:'BLDC', model:\"HBP3C-48-500-5.2-45\", p:0.5, type:\"sub\", q:5.2, h:45, price: 162},\r\n      {dbType:'BLDC', model:\"HBP3C-72-600-5.2-50\", p:0.6, type:\"sub\", q:5.2, h:50, price: 167},\r\n      {dbType:'BLDC', model:\"HBP3C-96-750-5.2-75\", p:0.75, type:\"sub\", q:5.2, h:75, price: 180},\r\n      {dbType:'BLDC', model:\"HBP3C-72-750-6-60\", p:0.75, type:\"sub\", q:6, h:60, price: 181},\r\n      {dbType:'BLDC', model:\"HBP3C-110-1100-7.5-62\", p:1.1, type:\"sub\", q:7.5, h:62, price: 180},\r\n      {dbType:'BLDC', model:\"HBP4C-48-400-6-32\", p:0.4, type:\"sub\", q:6, h:32, price: 166},\r\n      {dbType:'BLDC', model:\"HBP4C-72-600-6-42\", p:0.6, type:\"sub\", q:6, h:42, price: 166},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1100-6-84\", p:1.1, type:\"sub\", q:6, h:84, price: 185},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1300-6-112\", p:1.3, type:\"sub\", q:6, h:112, price: 192},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1500-6-135\", p:1.5, type:\"sub\", q:6, h:135, price: 193},\r\n      {dbType:'BLDC', model:\"HBP4C-96-750-9-45\", p:0.75, type:\"sub\", q:9, h:45, price: 181},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1100-9-58\", p:1.1, type:\"sub\", q:9, h:58, price: 183},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1300-9-71\", p:1.3, type:\"sub\", q:9, h:71, price: 190},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1500-9-85\", p:1.5, type:\"sub\", q:9, h:85, price: 191},\r\n      {dbType:'BLDC', model:\"HBP4C-96-750-13-50\", p:0.75, type:\"sub\", q:13, h:50, price: 181},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1100-13-49\", p:1.1, type:\"sub\", q:13, h:49, price: 188},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1300-13-54\", p:1.3, type:\"sub\", q:13, h:54, price: 189},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1500-13-60\", p:1.5, type:\"sub\", q:13, h:60, price: 189},\r\n      {dbType:'BLDC', model:\"HBP4C-110-1500-17-48\", p:1.5, type:\"sub\", q:17, h:48, price: 189}, \r\n      {dbType:'BLDC', model:\"HBP3SC-24-300-4-35\", p:0.3, type:\"sub\", q:4, h:35, price: 182},\r\n      {dbType:'BLDC', model:\"HBP3SC-48-400-4-50\", p:0.4, type:\"sub\", q:4, h:50, price: 191},\r\n      {dbType:'BLDC', model:\"HBP3SC-72-600-4-80\", p:0.6, type:\"sub\", q:4, h:80, price: 212},\r\n      {dbType:'BLDC', model:\"HBP4SC-48-500-5.2-45\", p:0.5, type:\"sub\", q:5.2, h:45, price: 190},\r\n      {dbType:'BLDC', model:\"HBP4SC-96-750-5.2-67\", p:0.75, type:\"sub\", q:5.2, h:67, price: 208},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1100-5.2-101\", p:1.1, type:\"sub\", q:5.2, h:101, price: 220},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1300-5.2-146\", p:1.3, type:\"sub\", q:5.2, h:146, price: 243},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1500-5.2-198\", p:1.5, type:\"sub\", q:5.2, h:198, price: 259},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1300-7.5-80\", p:1.3, type:\"sub\", q:7.5, h:80, price: 218},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1500-7.5-100\", p:1.5, type:\"sub\", q:7.5, h:100, price: 226},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1500-11-60\", p:1.5, type:\"sub\", q:11, h:60, price: 214},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1500-19-35\", p:1.5, type:\"sub\", q:19, h:35, price: 211},\r\n      {dbType:'BLDC', model:\"HBP4SC-110-1500-36-22\", p:1.5, type:\"sub\", q:36, h:22, price: 274},\r\n      {dbType:'BLDC', model:\"HBP4C-300-2200-6-175\", p:2.2, type:\"sub\", q:6, h:175, price: 267},\r\n      {dbType:'BLDC', model:\"HBP4C-300-2200-9-125\", p:2.2, type:\"sub\", q:9, h:125, price: 264},\r\n      {dbType:'BLDC', model:\"HBP4C-300-2200-13-110\", p:2.2, type:\"sub\", q:13, h:110, price: 264},\r\n      {dbType:'BLDC', model:\"HBP4C-300-2200-17-72\", p:2.2, type:\"sub\", q:17, h:72, price: 260},\r\n      {dbType:'BLDC', model:\"HBP4SC-300-2200-5.2-255\", p:2.2, type:\"sub\", q:5.2, h:255, price: 350},\r\n      {dbType:'BLDC', model:\"HBP4SC-300-2200-7.5-150\", p:2.2, type:\"sub\", q:7.5, h:150, price: 313},\r\n      {dbType:'BLDC', model:\"HBP4SC-300-2200-11-120\", p:2.2, type:\"sub\", q:11, h:120, price: 309},\r\n      {dbType:'BLDC', model:\"HBP4SC-300-2200-19-60\", p:2.2, type:\"sub\", q:19, h:60, price: 297},\r\n      {dbType:'BLDC', model:\"HBP4SC-300-2200-36-38\", p:2.2, type:\"sub\", q:36, h:38, price: 277}\r\n    ];\r\n\r\n    const raw_sewage_bldc = [{m:\"HBPSQD-72-550-13-20\",p:0.55,q:13,h:20,pr:142},{m:\"HBPSQD-96-750-14-23\",p:0.75,q:14,h:23,pr:166},{m:\"HBPSQD-150-1100-16-25\",p:1.1,q:16,h:25,pr:187},{m:\"HBPSQD-180-1300-17-30\",p:1.3,q:17,h:30,pr:187},{m:\"HBPSQD-96-750-30-7\",p:0.75,q:30,h:7,pr:167},{m:\"HBPSQD-150-1100-36-10\",p:1.1,q:36,h:10,pr:186},{m:\"HBPSQD-180-1300-40-12\",p:1.3,q:40,h:12,pr:186},{m:\"HBPSQD-200-1500-45-12\",p:1.5,q:45,h:12,pr:236},{m:\"HBPSQD-300-2200-56-14\",p:2.2,q:56,h:14,pr:262}];\r\n    const raw_surface_ac_ld = [{m:\"LD32-33G\/2\",p:3,q:12.5,h:33,pr:690},{m:\"LD40-20G\/2\",p:2.2,q:20,h:20,pr:694},{m:\"LD50-24G\/2\",p:3,q:25,h:24,pr:798},{m:\"LD50-35G\/2\",p:5.5,q:30,h:35,pr:905},{m:\"LD50-50G\/2\",p:11,q:40,h:50,pr:1037},{m:\"LD65-20G\/2\",p:3,q:30,h:20,pr:707},{m:\"LD80-23G\/2\",p:5.5,q:50,h:23,pr:909},{m:\"LD80-32G\/2\",p:11,q:70,h:32,pr:1212},{m:\"LD80-38G\/2\",p:15,q:80,h:38,pr:1388},{m:\"LD100-17G\/2\",p:5.5,q:60,h:15,pr:926},{m:\"LD100-22G\/2\",p:7.5,q:80,h:22,pr:988},{m:\"LD100-27\/2\",p:11,q:100,h:27,pr:1228},{m:\"LD100-40G\/2\",p:18.5,q:100,h:40,pr:1568},{m:\"LD125-11G\/4\",p:5.5,q:120,h:11,pr:1111},{m:\"LD125-19G\/4\",p:11,q:140,h:19,pr:1507},{m:\"LD125-22G\/4\",p:15,q:160,h:22,pr:1759},{m:\"LD150-22G\/4\",p:18.5,q:200,h:22,pr:1996},{m:\"LD150-25\/4\",p:22,q:200,h:25,pr:2410},{m:\"LD150-33\/4\",p:30,q:200,h:33,pr:2893},{m:\"LD200-19\/4\",p:22,q:300,h:19,pr:2756},{m:\"LD200-31\/4\",p:37,q:300,h:31,pr:4037},{m:\"LD200-20\/4\",p:30,q:400,h:20,pr:3235},{m:\"LD200-50\/4\",p:90,q:400,h:50,pr:7746},{m:\"LD250-16\/4\",p:30,q:500,h:16,pr:3461},{m:\"LD250-29\/4\",p:55,q:500,h:29,pr:5869},{m:\"LD250-56\/4\",p:110,q:500,h:56,pr:11555},{m:\"LD250-20\/4\",p:55,q:630,h:20,pr:5758},{m:\"LD250-50\/4\",p:132,q:630,h:50,pr:14762},{m:\"LD300-30\/4\",p:110,q:900,h:30,pr:11210},{m:\"LD300-55\/4\",p:200,q:900,h:55,pr:18484}];\r\n    const raw_surface_ac_cdl = [{m:\"CDL1-5S\",p:0.37,q:1,h:27,pr:433},{m:\"CDL1-10S\",p:0.55,q:1,h:55,pr:501},{m:\"CDL1-15S\",p:0.75,q:1,h:84,pr:600},{m:\"CDL1-20S\",p:1.1,q:1,h:111.5,pr:638},{m:\"CDL1-25S\",p:1.5,q:1,h:139,pr:697},{m:\"CDL1-30S\",p:1.5,q:1,h:167,pr:719},{m:\"CDL1-35S\",p:2.2,q:1,h:197,pr:860},{m:\"CDL1-40S\",p:2.2,q:1,h:226,pr:910},{m:\"CDL1-42S\",p:2.2,q:1,h:237,pr:930},{m:\"CDL2-5\",p:0.55,q:2,h:37,pr:443},{m:\"CDL2-10\",p:1.1,q:2,h:74,pr:560},{m:\"CDL2-15\",p:1.5,q:2,h:112,pr:609},{m:\"CDL2-20\",p:2.2,q:2,h:150,pr:658},{m:\"CDL2-25\",p:3,q:2,h:189,pr:796},{m:\"CDL3-5S\",p:0.55,q:3,h:29,pr:433},{m:\"CDL3-10S\",p:1.1,q:3,h:59,pr:544},{m:\"CDL3-15S\",p:1.5,q:3,h:90,pr:602},{m:\"CDL3-20S\",p:2.2,q:3,h:120,pr:631},{m:\"CDL3-25S\",p:3,q:3,h:150,pr:769},{m:\"CDL3-30S\",p:3,q:3,h:181,pr:806},{m:\"CDL4-5\",p:1.1,q:4,h:40,pr:519},{m:\"CDL4-10\",p:2.2,q:4,h:81,pr:597},{m:\"CDL4-15\",p:3,q:4,h:120,pr:754},{m:\"CDL4-20\",p:4,q:4,h:161,pr:911},{m:\"CDL5-5S\",p:0.75,q:5,h:30,pr:495},{m:\"CDL5-10S\",p:1.5,q:5,h:62,pr:570},{m:\"CDL5-15S\",p:2.2,q:5,h:93,pr:611},{m:\"CDL5-20S\",p:3,q:5,h:124,pr:765},{m:\"CDL5-25S\",p:4,q:5,h:155,pr:920},{m:\"CDL5-30S\",p:5.5,q:5,h:186,pr:1074},{m:\"CDL8-5\",p:2.2,q:8,h:45,pr:603},{m:\"CDL8-10\",p:4,q:8,h:92,pr:960},{m:\"CDL8-15\",p:5.5,q:8,h:139,pr:1183},{m:\"CDL8-20\",p:7.5,q:8,h:186,pr:1374},{m:\"CDL10-5S\",p:2.2,q:10,h:43,pr:603},{m:\"CDL10-10S\",p:4,q:10,h:89,pr:960},{m:\"CDL10-15S\",p:5.5,q:10,h:134,pr:1209},{m:\"CDL10-20S\",p:7.5,q:10,h:181.5,pr:1395},{m:\"CDL12-5\",p:3,q:12,h:50,pr:758},{m:\"CDL12-10\",p:7.5,q:12,h:101,pr:1193},{m:\"CDL12-15\",p:11,q:12,h:151,pr:1448},{m:\"CDL15-5S\",p:4,q:15,h:58,pr:988},{m:\"CDL15-10S\",p:11,q:15,h:118,pr:1334},{m:\"CDL15-15S\",p:15,q:15,h:177,pr:1825},{m:\"CDL20-5S\",p:5.5,q:20,h:58,pr:1145},{m:\"CDL20-10S\",p:11,q:20,h:119,pr:1509},{m:\"CDL20-15S\",p:18.5,q:20,h:180,pr:2106},{m:\"CDL32-5-2\",p:11,q:32,h:60,pr:1592},{m:\"CDL32-5\",p:11,q:32,h:67,pr:1592},{m:\"CDL32-10\",p:18.5,q:32,h:138,pr:2277},{m:\"CDL32-15\",p:30,q:32,h:210,pr:3555},{m:\"CDL32-16\",p:30,q:32,h:225,pr:3598},{m:\"CDL42-5\",p:18.5,q:42,h:101,pr:2692},{m:\"CDL42-10\",p:37,q:42,h:203,pr:4791},{m:\"CDL42-12\",p:45,q:42,h:247,pr:6606},{m:\"CDL42-13-2\",p:45,q:42,h:259,pr:6708},{m:\"CDL65-3\",p:18.5,q:65,h:60,pr:2540},{m:\"CDL65-5\",p:30,q:65,h:102,pr:3563},{m:\"CDL65-6\",p:37,q:65,h:124,pr:4578},{m:\"CDL65-7\",p:45,q:65,h:146,pr:6052},{m:\"CDL65-8-1\",p:45,q:65,h:161,pr:6534},{m:\"CDL85-3\",p:22,q:85,h:64,pr:3168},{m:\"CDL85-4\",p:30,q:85,h:86,pr:3608},{m:\"CDL85-5\",p:37,q:85,h:110,pr:4583},{m:\"CDL85-6\",p:45,q:85,h:134,pr:6143},{m:\"CDL120-2\",p:22,q:120,h:40,pr:4117},{m:\"CDL120-5\",p:55,q:120,h:101.5,pr:8846},{m:\"CDL120-6\",p:75,q:120,h:123,pr:11213},{m:\"CDL120-7\",p:75,q:120,h:145,pr:11484},{m:\"CDL150-2\",p:30,q:150,h:40,pr:4938},{m:\"CDL150-3\",p:37,q:150,h:63,pr:5861},{m:\"CDL150-4\",p:55,q:150,h:84,pr:8480},{m:\"CDL150-5\",p:75,q:150,h:106.5,pr:10875},{m:\"CDL150-6\",p:75,q:150,h:130,pr:11145},{m:\"CDL200-1\",p:30,q:200,h:34,pr:4794},{m:\"CDL200-2\",p:55,q:200,h:69,pr:7913},{m:\"CDL200-3\",p:90,q:200,h:103,pr:10630},{m:\"CDL200-4\",p:110,q:200,h:138,pr:14272}];\r\n    const raw_surface_ac_chl = [{m:\"CHL1-30\",p:0.37,q:1,h:16,pr:361},{m:\"CHL2-50\",p:0.55,q:2,h:36,pr:415},{m:\"CHL4-20\",p:0.37,q:4,h:15,pr:374},{m:\"CHL4-40\",p:0.75,q:4,h:31,pr:408},{m:\"CHL8-40\",p:1.5,q:8,h:35,pr:595},{m:\"CHL10-40\",p:1.5,q:10,h:34,pr:599},{m:\"CHL12-50\",p:3,q:12,h:50,pr:820},{m:\"CHL15-20\",p:2.2,q:15,h:22.5,pr:631},{m:\"CHL20-30\",p:4,q:20,h:35,pr:883}];\r\n    const raw_sewage_ac = [\r\n  {m:\"50WQ7-10-0.75\",p:0.75,q:10,h:10,pr:414},\r\n  {m:\"50WQ15-10-1.1\",p:1.1,q:15,h:10,pr:440},\r\n  {m:\"50WQ15-15-1.5\",p:1.5,q:15,h:15,pr:467},\r\n  {m:\"50WQ15-22-2.2\",p:2.2,q:15,h:22,pr:468},\r\n  {m:\"50WQ25-28-4\",p:4,q:25,h:28,pr:667},\r\n  {m:\"65WQ20-28-4\",p:4,q:20,h:28,pr:673},\r\n  {m:\"65WQ30-30-5.5\",p:5.5,q:30,h:30,pr:770},\r\n  {m:\"80WQ45-15-4\",p:4,q:45,h:15,pr:678},\r\n  {m:\"80WQ30-30-5.5\",p:5.5,q:30,h:30,pr:775},\r\n  {m:\"80WQ45-25-7.5\",p:7.5,q:45,h:25,pr:949},\r\n  {m:\"100WQ65-15-5.5\",p:5.5,q:65,h:15,pr:780},\r\n  {m:\"100WQ80-15-7.5\",p:7.5,q:80,h:15,pr:954},\r\n  {m:\"100WQ80-25-11\",p:11,q:80,h:25,pr:1148},\r\n  {m:\"100WQ80-30-15\",p:15,q:80,h:30,pr:1332},\r\n  {m:\"100WQ100-25-15\",p:15,q:100,h:25,pr:1332},\r\n  {m:\"150WQ180-20-18.5\",p:18.5,q:180,h:20,pr:1985},\r\n  {m:\"150WQ180-25-22\",p:22,q:180,h:25,pr:2407},\r\n  {m:\"150WQ180-30-30\",p:30,q:180,h:30,pr:3281},\r\n  {m:\"150WQ250-22-30\",p:30,q:250,h:22,pr:3335},\r\n  {m:\"200WQ250-15-18.5\",p:18.5,q:250,h:15,pr:2011},\r\n  {m:\"200WQ360-16-30\",p:30,q:360,h:16,pr:3335},\r\n  {m:\"200WQ350-22-37\",p:37,q:350,h:22,pr:4091},\r\n  {m:\"200WQ400-25-45\",p:45,q:400,h:25,pr:5026},\r\n  {m:\"250WQ600-17-45\",p:45,q:600,h:17,pr:5080},\r\n  {m:\"250WQ600-20-55\",p:55,q:600,h:20,pr:5927},\r\n  {m:\"250WQ600-28-75\",p:75,q:600,h:28,pr:7959},\r\n  {m:\"250WQ700-30-90\",p:90,q:700,h:30,pr:8340},\r\n  {m:\"300WQ800-18-75\",p:75,q:800,h:18,pr:8065},\r\n  {m:\"300WQ900-22-90\",p:90,q:900,h:22,pr:8382}\r\n];\r\n\r\n    \/\/ Data Merging\r\n    let raw_pump_data = [];\r\n    raw_pump_mixed.forEach(p => {\r\n        let entry = {t: p.type, cat: p.dbType, m: p.model, p: p.p, pr: p.price, curve: p.c}; \/\/ Store curve\r\n        if (p.dbType === 'AC&DC' && p.c) { entry.q = p.c[1].q; entry.h = p.c[1].h; } else { entry.q = p.q; entry.h = p.h; }\r\n        raw_pump_data.push(entry);\r\n    });\r\n    raw_sewage_bldc.forEach(p => raw_pump_data.push({t:'sew', cat:'BLDC', m:p.m, p:p.p, q:p.q, h:p.h, pr:p.pr}));\r\n    raw_sewage_ac.forEach(p => raw_pump_data.push({t:'sew', cat:'AC&DC', m:p.m, p:p.p, q:p.q, h:p.h, pr:p.pr}));\r\n    [raw_surface_ac_ld, raw_surface_ac_cdl, raw_surface_ac_chl].forEach(arr => \r\n        arr.forEach(p => raw_pump_data.push({t:'surf', cat:'AC&DC', m:p.m, p:p.p, q:p.q, h:p.h, pr:p.pr}))\r\n    );\r\n\r\n    let currentBOM = [];\r\n    let currentMode = 'new';\r\n    let userCableLen = 50; \r\n\r\n    function init() {\r\n        document.getElementById('in_date').valueAsDate = new Date();\r\n        updatePDF();\r\n    }\r\n    setTimeout(init, 500);\r\n\r\n    function switchMode(mode) {\r\n        currentMode = mode;\r\n        document.querySelectorAll('.tab-btn').forEach(b => b.classList.remove('active'));\r\n        event.target.classList.add('active');\r\n        document.getElementById('panel_new_system').classList.toggle('hidden', mode !== 'new');\r\n        document.getElementById('panel_retrofit').classList.toggle('hidden', mode === 'new');\r\n        showStatus(\"\");\r\n    }\r\n\r\n    function generateConfig() {\r\n        currentBOM = [];\r\n        showStatus(\"\");\r\n        try {\r\n            if (currentMode === 'new') {\r\n                const app = document.getElementById('sel_app_type').value;\r\n                const tech = document.getElementById('sel_tech_type').value;\r\n                const reqQ = parseFloat(document.getElementById('req_flow').value);\r\n                const reqH = parseFloat(document.getElementById('req_head').value);\r\n                const reqTargetP = parseFloat(document.getElementById('req_power_target').value);\r\n                userCableLen = parseFloat(document.getElementById('req_cable_len').value) || 50;\r\n\r\n                if(!reqQ || !reqH) { showStatus(\"Please enter valid Flow and Head.\", 'error'); return; }\r\n\r\n                \/\/ Filter candidates\r\n                let candidates = raw_pump_data.filter(p => {\r\n                    if (p.t !== app) return false;\r\n                    if (tech !== 'all' && p.cat !== tech) return false;\r\n                    \r\n                    \/\/ If power is locked, filter strictly\r\n                    if (reqTargetP) {\r\n                        return Math.abs(p.p - reqTargetP) < 0.1; \r\n                    }\r\n                    return true;\r\n                });\r\n\r\n                if (candidates.length === 0) { \r\n                    showStatus(`\u274c No matching pumps found for this application.`, 'error'); \r\n                    return; \r\n                }\r\n\r\n                \/\/ SCORING LOGIC (HYDRAULIC BASED)\r\n                let scoredCandidates = candidates.map(p => {\r\n                    let score = 999999;\r\n                    let deviation = 0;\r\n                    \r\n                    \/\/ Check strict Head requirement: Pump Max Head must be >= Required Head\r\n                    \/\/ Estimate Max Head for AC pumps if not explicit (Rated Head \/ 0.7 approx)\r\n                    let estimatedMaxHead = p.cat === 'BLDC' ? p.h : (p.h * 1.4); \r\n                    if (p.cat === 'AC&DC' && p.curve) {\r\n                        \/\/ Use the highest head in curve\r\n                         estimatedMaxHead = Math.max(...p.curve.map(c => c.h));\r\n                    }\r\n\r\n                    if (estimatedMaxHead < reqH) {\r\n                        return { pump: p, score: 999999 }; \/\/ Disqualify\r\n                    }\r\n\r\n                    if (p.cat === 'AC&DC' && p.curve) {\r\n                        \/\/ Curve interpolation matching\r\n                        \/\/ Find closest point in curve to (reqQ, reqH)\r\n                        let bestDist = 999999;\r\n                        p.curve.forEach(pt => {\r\n                            let qDiff = Math.abs(pt.q - reqQ) \/ reqQ;\r\n                            let hDiff = Math.abs(pt.h - reqH) \/ reqH;\r\n                            let dist = Math.sqrt(qDiff*qDiff + hDiff*hDiff);\r\n                            if(dist < bestDist) bestDist = dist;\r\n                        });\r\n                        deviation = bestDist;\r\n                    } else {\r\n                        \/\/ Point comparison\r\n                        \/\/ BLDC params are usually Max Q \/ Max H\r\n                        \/\/ AC params without curve are Rated Q \/ Rated H\r\n                        let ratedQ = p.q; let ratedH = p.h;\r\n                        if (p.cat === 'BLDC') { ratedQ = p.q * 0.6; ratedH = p.h * 0.65; }\r\n                        \r\n                        let qDiff = Math.abs(ratedQ - reqQ) \/ reqQ;\r\n                        let hDiff = Math.abs(ratedH - reqH) \/ reqH;\r\n                        deviation = Math.sqrt(qDiff*qDiff + hDiff*hDiff);\r\n                    }\r\n                    \r\n                    score = deviation * 1000;\r\n                    \/\/ Penalty for excessive power (Don't kill a mosquito with a cannon)\r\n                    let phyPower = (reqQ * reqH) \/ 367 \/ 0.5;\r\n                    if (p.p > phyPower * 3) score += 500; \r\n\r\n                    return { pump: p, score: score };\r\n                });\r\n\r\n                scoredCandidates.sort((a, b) => a.score - b.score);\r\n                \r\n                \/\/ Remove disqualified\r\n                scoredCandidates = scoredCandidates.filter(s => s.score < 900000);\r\n\r\n                if (scoredCandidates.length === 0) {\r\n                     showStatus(`\u274c No pump can reach ${reqH}m Head.`, 'error');\r\n                     return;\r\n                }\r\n\r\n                let bestMatch = scoredCandidates[0].pump;\r\n                let msg = `\u2705 Match: ${bestMatch.m} (${bestMatch.p}kW)`;\r\n                showStatus(msg, 'success'); \r\n                addPumpToBOM(bestMatch, reqQ, reqH); \r\n\r\n            } else {\r\n                \/\/ Retrofit Mode\r\n                const pKw = parseFloat(document.getElementById('ex_power').value) || 0;\r\n                const phase = parseInt(document.getElementById('ex_volt').value);\r\n                userCableLen = parseFloat(document.getElementById('ex_cable_len').value) || 50;\r\n\r\n                addInverterSystemByPower(pKw, phase, true); \r\n                renderBOM(); \r\n            }\r\n        } catch (e) { console.error(e); showStatus(\"System Error.\", 'error'); }\r\n    }\r\n\r\n    function addPumpToBOM(pump, reqQ, reqH) {\r\n        let descText = `${pump.cat} Pump, ${pump.p}kW`;\r\n        if (pump.cat === 'BLDC' && pump.t === 'sub') { descText += ` (Max: ${pump.q}m\u00b3\/h, ${pump.h}m)`; } \r\n        else if(reqQ && reqH) { descText += ` (Rated: ${pump.q}m\u00b3\/h, ${pump.h}m)`; }\r\n        \r\n        \/\/ Add note that inverter is included\r\n        if (pump.cat === 'AC&DC') { descText += \" (Incl. Solar Inverter)\"; }\r\n\r\n        currentBOM.push({n: `Pump: ${pump.m}`, d: descText, u:\"SET\", q:1, p:pump.pr});\r\n        \r\n        currentBOM.push({n: \"Water Level Sensors\", d: \"Well Probe & Tank Float Switch Kit\", u:\"SET\", q:1, p:15});\r\n\r\n        if (pump.cat === 'AC&DC') {\r\n            let amps = pump.p * 2.2; \r\n            let cable = pumpCableDB.find(c => c.amp >= amps) || pumpCableDB[pumpCableDB.length-1];\r\n            \r\n            currentBOM.push({n: \"Submersible Cable\", d: cable.spec, u:\"M\", q: userCableLen, p:cable.price}); \r\n            \r\n            let reactorKeys = Object.keys(reactorDB).map(Number).sort((a,b)=>a-b);\r\n            let closestKw = reactorKeys.find(k => k >= pump.p) || reactorKeys[reactorKeys.length-1];\r\n            let reactor = reactorDB[closestKw] ? reactorDB[closestKw].r150 : null; \r\n            if(reactor) { currentBOM.push({n: reactor.m, d: `Output Reactor ${closestKw}kW`, u:\"PCS\", q:1, p:reactor.p}); }\r\n            \r\n            let estimatedPhase = pump.ph ? pump.ph : (pump.p >= 3.0 ? 3 : 1);\r\n            \r\n            \/\/ === MODIFIED FOR NEW SYSTEM: Do NOT add Inverter Item ===\r\n            \/\/ Instead, just call addSolarAccessories directly\r\n            addSolarAccessories(pump.p, 'AC&DC', estimatedPhase); \r\n\r\n        } else {\r\n            \/\/ BLDC Logic (Already correct, does not add separate controller)\r\n            let amps = pump.p * 2.5; \r\n            let cable = pumpCableDB.find(c => c.amp >= amps) || pumpCableDB[pumpCableDB.length-1];\r\n            currentBOM.push({n: \"Submersible Cable\", d: cable.spec, u:\"M\", q: userCableLen, p:cable.price}); \r\n            addSolarAccessories(pump.p, pump.cat, 1);\r\n        }\r\n        renderBOM();\r\n    }\r\n\r\n    function addInverterSystemByPower(pKw, phase, isRetrofit) {\r\n        let matches = invDB.filter(i => i.ph === phase);\r\n        matches.sort((a, b) => a.p - b.p);\r\n\r\n        let targetP = pKw;\r\n        if (pKw > 30) { targetP = pKw * 1.1; } \r\n\r\n        let bestInv = matches.find(i => i.p >= targetP);\r\n        if (!bestInv) { bestInv = matches.find(i => i.p >= pKw); }\r\n\r\n        if (bestInv) {\r\n            \/\/ Only added in Retrofit mode now\r\n            currentBOM.push({n: `Inverter: ${bestInv.m}`, d: `Solar Pump Inverter ${bestInv.p}kW`, u:\"PCS\", q:1, p:bestInv.price});\r\n            if(isRetrofit) showStatus(`\u2705 Inverter Matched: ${bestInv.m} (${bestInv.p}kW)`, 'success');\r\n            addSolarAccessories(pKw, 'AC&DC', phase); \r\n        } else {\r\n            showStatus(`\u274c No suitable inverter found for ${pKw}kW (Target ${targetP.toFixed(1)}kW).`, 'error');\r\n        }\r\n    }\r\n\r\n    function addSolarAccessories(powerKw, type, phase) {\r\n        const userW = parseFloat(document.getElementById('in_panel_watts').value) || 580;\r\n        \/\/ === FIXED PRICE LOGIC: 0.12 USD\/W ===\r\n        const PANEL = { w: userW, voc: 50.72, vmp: 42.8, price: userW * 0.12 }; \r\n        \r\n        let numPanels = 0; let configStr = \"\";\r\n        \r\n        if (type === 'BLDC') {\r\n            if (Math.abs(powerKw - 2.2) < 0.1) { numPanels = 8; configStr = \"8 Pcs (Unified Config)\"; }\r\n            else {\r\n                const reqPower = powerKw * 1000 * 1.5; let idealPanels = Math.ceil(reqPower \/ PANEL.w);\r\n                let maxVocLimit = 0; if (powerKw <= 0.75) maxVocLimit = 150; else if (powerKw <= 1.5) maxVocLimit = 240; else maxVocLimit = 450; \r\n                let maxSeries = Math.floor(maxVocLimit \/ PANEL.voc); if (maxSeries < 1) maxSeries = 1;\r\n                if (idealPanels <= maxSeries) { numPanels = idealPanels; configStr = `${numPanels} Series x 1 Parallel`; } \r\n                else { let s = maxSeries; let p = Math.ceil(idealPanels \/ s); numPanels = s * p; configStr = `Total ${numPanels} (${s} Series x ${p} Parallel)`; }\r\n            }\r\n        } else {\r\n            const isThreePhase = (phase === 3) || (powerKw >= 3.0);\r\n            let targetVmp = isThreePhase ? 560 : 300; \r\n            let maxVocAllowed = isThreePhase ? 780 : 450; \r\n\r\n            let series = Math.round(targetVmp \/ PANEL.vmp);\r\n            if ((series * PANEL.voc * 1.15) > maxVocAllowed) { series = Math.floor(maxVocAllowed \/ (PANEL.voc * 1.15)); }\r\n            let minSeries = isThreePhase ? 10 : 5; \r\n            if (series < minSeries) series = minSeries;\r\n\r\n            const reqSolarPower = powerKw * 1000 * 1.5; \r\n            const stringPower = series * PANEL.w;\r\n            let parallel = Math.ceil(reqSolarPower \/ stringPower);\r\n\r\n            numPanels = series * parallel;\r\n            let totalVoc = (series * PANEL.voc).toFixed(1);\r\n            let totalVmp = (series * PANEL.vmp).toFixed(1);\r\n            \r\n            configStr = `Total ${numPanels} (${series} Series x ${parallel} Parallel)\\n`;\r\n            configStr += `Vmp: ${totalVmp}V | Voc: ${totalVoc}V (Target: ${targetVmp}V)`;\r\n        }\r\n\r\n        \/\/ === BUG FIX: Use Unit Price, not Total Price here ===\r\n        \/\/ Previously calculated: PANEL.w * 0.13 * numPanels (This was total price)\r\n        \/\/ Correct calculation: PANEL.w * 0.13 (Price for 1 panel)\r\n        let panelUnitPrice = PANEL.w * 0.13; \r\n        \r\n        \/\/ Structure price remains as a set price, keeping the formula but quantity is 1 set\r\n        let structPrice = PANEL.w * 0.08 * numPanels; \r\n        \r\n        currentBOM.push({n: \"Solar Panel\", d: `${PANEL.w}W Mono Perc\\n${configStr}`, u: \"PCS\", q: numPanels, p: panelUnitPrice});\r\n        currentBOM.push({n: \"Mounting Structure\", d: \"Aluminum Railing Kit\", u: \"SET\", q: 1, p: structPrice});\r\n        \r\n        let stringCount = 1;\r\n        if (configStr.includes(\"Parallel\")) { let match = configStr.match(\/x (\\d+) Parallel\/); if (match) stringCount = parseInt(match[1]); }\r\n        \r\n        let selectedBox = null; let boxQty = 1;\r\n        if (type !== 'BLDC') {\r\n            if (type === 'AC&DC' || currentMode === 'retrofit') {\r\n                let hybridCandidates = combinerBoxDB.filter(b => b.type === 'hybrid' && b.inputs >= stringCount);\r\n                if (hybridCandidates.length > 0) { hybridCandidates.sort((a,b) => a.price - b.price); selectedBox = hybridCandidates[0]; }\r\n            }\r\n            if (!selectedBox) {\r\n                let pvCandidates = combinerBoxDB.filter(b => b.type === 'pv' && b.inputs >= stringCount);\r\n                if (pvCandidates.length > 0) { pvCandidates.sort((a,b) => a.price - b.price); selectedBox = pvCandidates[0]; }\r\n            }\r\n            if (!selectedBox) {\r\n                let allBoxes = [...combinerBoxDB].sort((a,b) => b.inputs - a.inputs);\r\n                let biggestBox = allBoxes[0];\r\n                if (biggestBox) { selectedBox = biggestBox; boxQty = Math.ceil(stringCount \/ biggestBox.inputs); }\r\n            }\r\n        }\r\n        if (selectedBox) { currentBOM.push({n: selectedBox.model, d: `Combiner Box (${selectedBox.spec})\\nMatches: ${stringCount} Strings`, u: \"PCS\", q: boxQty, p: selectedBox.price}); }\r\n\r\n        let cableSpec = solarCableDB[0]; let cableLen = 50 + (stringCount * 5); let cableTotal = cableLen * cableSpec.price;\r\n        currentBOM.push({n: \"PV Cable\", d: `${cableSpec.spec} Red\/Black (${cableLen}m)`, u:\"ROLL\", q:1, p:cableTotal});\r\n        currentBOM.push({n: \"Accessories\", d: \"MC4, Switches, Breakers\", u:\"LOT\", q:1, p:80 + (stringCount * 2)});\r\n    }\r\n\r\n    function toggleManual() { document.getElementById('manual_panel').classList.toggle('hidden'); }\r\n    function addManual() {\r\n        const n = document.getElementById('man_name').value;\r\n        const d = document.getElementById('man_desc').value || \"Manual Item\"; \r\n        const u = document.getElementById('man_unit').value || \"PCS\";\r\n        const q = parseFloat(document.getElementById('man_qty').value) || 1;\r\n        const p = parseFloat(document.getElementById('man_price').value);\r\n        if (n && !isNaN(p)) {\r\n            currentBOM.push({n: n, d: d, u: u, q: q, p: p}); renderBOM();\r\n            document.getElementById('man_name').value = \"\"; document.getElementById('man_desc').value = \"\";\r\n            document.getElementById('man_qty').value = \"1\"; document.getElementById('man_price').value = \"\";\r\n        }\r\n    }\r\n    function renderBOM() {\r\n        const tbody = document.getElementById('bom_body');\r\n        const pdfTbody = document.getElementById('out_tbody');\r\n        const margin = parseFloat(document.getElementById('req_margin').value) || 0;\r\n        const installFee = parseFloat(document.getElementById('in_install_fee').value) || 0;\r\n        const shippingCost = parseFloat(document.getElementById('in_shipping').value) || 0;\r\n        const mult = 1 + (margin \/ 100);\r\n\r\n        tbody.innerHTML = \"\"; pdfTbody.innerHTML = \"\";\r\n        let total = 0; let subtotal = 0;\r\n\r\n        currentBOM.forEach((item, i) => {\r\n            const sell = item.p * mult; const sub = sell * item.q; subtotal += sub;\r\n            const pdfPriceDisplay = item.p === 0 ? 'Included' : '$' + sell.toLocaleString('en-US',{minimumFractionDigits:2});\r\n            const pdfTotalDisplay = item.p === 0 ? '-' : '$' + sub.toLocaleString('en-US',{minimumFractionDigits:2});\r\n            tbody.innerHTML += `<tr><td><input class=\"name-input\" value=\"${item.n}\" onchange=\"updateName(${i}, this.value)\"><input class=\"desc-input\" value=\"${item.d}\" onchange=\"updateDesc(${i}, this.value)\"><\/td><td style=\"text-align:center\"><input type=\"number\" value=\"${item.q}\" class=\"qty-input\" onchange=\"updateQty(${i}, this.value)\"><\/td><td style=\"text-align:right\"><input type=\"number\" class=\"price-input\" value=\"${item.p}\" onchange=\"updatePrice(${i}, this.value)\"><\/td><td style=\"text-align:center\"><button class=\"btn-del\" onclick=\"remItem(${i})\">\u00d7<\/button><\/td><\/tr>`;\r\n            pdfTbody.innerHTML += `<tr><td>${i+1}<\/td><td><div class=\"item-name\">${item.n}<\/div><div class=\"item-desc\">${item.d}<\/div><\/td><td>${item.u}<\/td><td style=\"text-align:center\" class=\"num\">${item.q}<\/td><td style=\"text-align:right\" class=\"num\">${pdfPriceDisplay}<\/td><td style=\"text-align:right\" class=\"num\">${pdfTotalDisplay}<\/td><\/tr>`;\r\n        });\r\n        if (shippingCost > 0) pdfTbody.innerHTML += `<tr style=\"background-color:#fff3e0;\"><td>-<\/td><td><div class=\"item-name\">Shipping Cost<\/div><div class=\"item-desc\">Transport & Handling<\/div><\/td><td>LOT<\/td><td style=\"text-align:center\" class=\"num\">1<\/td><td style=\"text-align:right\" class=\"num\">$${shippingCost.toLocaleString('en-US',{minimumFractionDigits:2})}<\/td><td style=\"text-align:right\" class=\"num\">$${shippingCost.toLocaleString('en-US',{minimumFractionDigits:2})}<\/td><\/tr>`;\r\n        if (installFee > 0) pdfTbody.innerHTML += `<tr style=\"background-color:#fff3e0;\"><td>-<\/td><td><div class=\"item-name\">Installation & Services<\/div><div class=\"item-desc\">Labor, Commissioning, and Setup<\/div><\/td><td>LOT<\/td><td style=\"text-align:center\" class=\"num\">1<\/td><td style=\"text-align:right\" class=\"num\">$${installFee.toLocaleString('en-US',{minimumFractionDigits:2})}<\/td><td style=\"text-align:right\" class=\"num\">$${installFee.toLocaleString('en-US',{minimumFractionDigits:2})}<\/td><\/tr>`;\r\n        \r\n        total = subtotal + installFee + shippingCost;\r\n        document.getElementById('out_subtotal').innerText = subtotal.toLocaleString('en-US',{minimumFractionDigits:2});\r\n        document.getElementById('out_total').innerText = total.toLocaleString('en-US',{minimumFractionDigits:2});\r\n        updatePDF(); \r\n    }\r\n    function updateQty(idx, val) { currentBOM[idx].q = parseFloat(val); renderBOM(); }\r\n    function updatePrice(idx, val) { currentBOM[idx].p = parseFloat(val); renderBOM(); }\r\n    function updateName(idx, val) { currentBOM[idx].n = val; renderBOM(); } \r\n    function updateDesc(idx, val) { currentBOM[idx].d = val; renderBOM(); } \r\n    function remItem(idx) { currentBOM.splice(idx, 1); renderBOM(); }\r\n    function showStatus(msg, type) { \r\n        const el = document.getElementById('status-msg'); \r\n        el.innerHTML = msg; \r\n        el.className = type === 'success' ? 'msg-success' : (type === 'warn' ? 'msg-warn' : (type === 'error' ? 'msg-error' : '')); \r\n        el.style.display = msg ? 'block' : 'none'; \r\n    }\r\n    function updatePDF() { document.getElementById('out_co').innerText = document.getElementById('in_co').value; document.getElementById('out_from').innerText = document.getElementById('in_co').value; document.getElementById('out_no').innerText = document.getElementById('in_no').value; document.getElementById('out_client').innerText = document.getElementById('in_client').value; document.getElementById('out_date').innerText = document.getElementById('in_date').value; document.getElementById('out_terms').innerText = document.getElementById('in_terms').value; }\r\n    function downloadPDF() { const el = document.getElementById('pdf_page'); html2pdf().set({ margin: 0, filename: `Quote_${document.getElementById('in_no').value}.pdf`, image: { type: 'jpeg', quality: 0.98 }, html2canvas: { scale: 2, useCORS: true }, jsPDF: { unit: 'mm', format: 'a4' } }).from(el).save(); }\r\n<\/script>\r\n<\/body>\r\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c9271fa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c9271fa\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-535a53b\" data-id=\"535a53b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c8dffd8 elementor-widget elementor-widget-spacer\" data-id=\"c8dffd8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c310ace elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c310ace\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-484d650\" data-id=\"484d650\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-dd9a4e2 elementor-widget elementor-widget-html\" data-id=\"dd9a4e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"cta-panel-order\" style=\"width: 90%; max-width: 1000px; margin: 50px auto; padding: 30px; border-radius: 12px; background: #e8f9e8; border: 2px solid #28a745; text-align: center;\">\r\n    \r\n    <h2 style=\"color: #28a745; margin-bottom: 10px; font-size: 24px;\">\ud83c\udf89 Confirmation de commande\u00a0: D\u00e9marrez votre processus d\u2019approvisionnement en gros\u00a0!<\/h2>\r\n    <p style=\"color: #555; margin-bottom: 25px; font-size: 15px;\">Votre client final a accept\u00e9 le devis\u00a0? Parfait\u00a0! Envoyez-nous vos exigences et HOBERTEK traitera imm\u00e9diatement votre commande en gros.<\/p>\r\n\r\n    <div class=\"order-steps\" style=\"display: flex; justify-content: space-around; gap: 20px; margin-bottom: 30px;\">\r\n        <div class=\"step-card\">\r\n            <h3 style=\"color: var(--primary-color); font-size: 16px;\">\u00c9tape 1 : Confirmer la liste des articles<\/h3>\r\n            <p style=\"font-size: 14px; color: #666;\">Capturez ou copiez les mod\u00e8les\/quantit\u00e9s \u00e0 partir de la **&quot;Liste des articles&quot;** (vue Co\u00fbt de gros).<\/p>\r\n        <\/div>\r\n        <div class=\"step-card\">\r\n            <h3 style=\"color: var(--primary-color); font-size: 16px;\">\u00c9tape 2 : Soumettre une demande<\/h3>\r\n            <p style=\"font-size: 14px; color: #666;\">Utilisez l&#039;adresse e-mail ou WhatsApp ci-dessous pour envoyer votre liste de courses \u00e0 HOBERTEK.<\/p>\r\n        <\/div>\r\n        <div class=\"step-card\">\r\n            <h3 style=\"color: var(--primary-color); font-size: 16px;\">\u00c9tape 3\u00a0: Confirmer l\u2019IP et organiser la production<\/h3>\r\n            <p style=\"font-size: 14px; color: #666;\">Nous \u00e9tablirons la facture pro forma (PI) incluant le prix, le **frais de transport** et organiserons la production.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n    \r\n    <div class=\"contact-buttons\" style=\"display: flex; justify-content: center; gap: 30px;\">\r\n        <a href=\"mailto:sales@hobertek.com?subject=Wholesale Order Inquiry from Quotation Builder\" \r\n           class=\"cta-btn primary-btn\" style=\"background-color: #3498db;\">\r\n            \ud83d\udce7 Envoyer un e-mail de demande d&#039;achat \u00e0 HOBERTEK\r\n        <\/a>\r\n        <a href=\"https:\/\/wa.me\/message\/BYC4N55EFHTUH1\" target=\"_blank\" \r\n           class=\"cta-btn secondary-btn\" style=\"background-color: #25d366;\">\r\n            \ud83d\udcac Commande rapide via WhatsApp\r\n        <\/a>\r\n    <\/div>\r\n\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-109e99f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"109e99f\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-fb213fb\" data-id=\"fb213fb\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c0ebc85 elementor-align-center elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"c0ebc85\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-lg\" href=\"#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjI1NiIsInRvZ2dsZSI6ZmFsc2V9\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Service d&#039;ing\u00e9nierie<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t<div class=\"elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-1e986c4\" data-id=\"1e986c4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-014853b elementor-align-center elementor-mobile-align-center elementor-widget elementor-widget-button\" data-id=\"014853b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-lg\" href=\"#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjI1NiIsInRvZ2dsZSI6ZmFsc2V9\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Plus de design<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d5b0234 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d5b0234\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-97e3c2b\" data-id=\"97e3c2b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-2f05c86 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"2f05c86\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b8f9461\" data-id=\"b8f9461\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-815b438 elementor-widget elementor-widget-heading\" data-id=\"815b438\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">FAQ<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-97dc6ca elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"97dc6ca\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-81d1d45\" data-id=\"81d1d45\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-68c4835 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"68c4835\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a2d0f1e\" data-id=\"a2d0f1e\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-ce250c1 elementor-widget elementor-widget-html\" data-id=\"ce250c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- HOBER Smart Quote + Installation FAQ --> \r\n<section class=\"hober-faq\">\r\n  <style>\r\n    .hober-faq {\r\n      max-width: 900px;\r\n      margin: 40px auto;\r\n      font-family: \"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\r\n      color: #1f2933;\r\n    }\r\n\r\n    .hober-faq h2 {\r\n      font-size: 24px;\r\n      font-weight: 700;\r\n      margin-bottom: 16px;\r\n      color: #0b3c7d;\r\n    }\r\n\r\n    .hober-faq p.section-subtitle {\r\n      margin-top: -4px;\r\n      margin-bottom: 20px;\r\n      font-size: 14px;\r\n      color: #6b7280;\r\n    }\r\n\r\n    .hober-faq details {\r\n      border-radius: 10px;\r\n      border: 1px solid #e5e7eb;\r\n      padding: 14px 18px;\r\n      margin-bottom: 12px;\r\n      background: #ffffff;\r\n      transition: box-shadow 0.15s ease, border-color 0.15s ease;\r\n    }\r\n\r\n    .hober-faq details[open] {\r\n      box-shadow: 0 8px 20px rgba(15, 23, 42, 0.06);\r\n      border-color: #2563eb;\r\n    }\r\n\r\n    .hober-faq summary {\r\n      cursor: pointer;\r\n      font-weight: 600;\r\n      font-size: 15px;\r\n      list-style: none;\r\n      display: flex;\r\n      align-items: center;\r\n      justify-content: space-between;\r\n    }\r\n\r\n    .hober-faq summary::-webkit-details-marker {\r\n      display: none;\r\n    }\r\n\r\n    .hober-faq summary::after {\r\n      content: \"+\";\r\n      font-weight: 700;\r\n      font-size: 18px;\r\n      color: #2563eb;\r\n      margin-left: 12px;\r\n      flex-shrink: 0;\r\n    }\r\n\r\n    .hober-faq details[open] summary::after {\r\n      content: \"\u2013\";\r\n    }\r\n\r\n    .hober-faq .faq-body {\r\n      margin-top: 10px;\r\n      font-size: 14px;\r\n      line-height: 1.6;\r\n      color: #4b5563;\r\n    }\r\n\r\n    .hober-faq .faq-body ul {\r\n      padding-left: 18px;\r\n      margin: 6px 0 0;\r\n    }\r\n\r\n    .hober-faq .faq-body li {\r\n      margin-bottom: 3px;\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n      .hober-faq {\r\n        margin: 32px 16px;\r\n      }\r\n      .hober-faq h2 {\r\n        font-size: 20px;\r\n      }\r\n      .hober-faq summary {\r\n        font-size: 14px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <!-- FAQ Group 1: Smart Quote System -->\r\n  <h2>FAQ \u2013 Syst\u00e8me de devis intelligent HOBER<\/h2>\r\n  <p class=\"section-subtitle\">\r\n    Questions fr\u00e9quentes des distributeurs et installateurs lors de l&#039;utilisation de l&#039;outil de dimensionnement et de devis en ligne.\r\n  <\/p>\r\n\r\n  <details>\r\n    <summary>De quelles informations ai-je besoin pour obtenir un devis pr\u00e9cis pour un syst\u00e8me de pompe solaire ?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Pour g\u00e9n\u00e9rer une configuration pr\u00e9cise, veuillez fournir\u00a0:<\/p>\r\n      <ul>\r\n        <li>Source d&#039;eau : puits \/ forage \/ rivi\u00e8re \/ \u00e9tang<\/li>\r\n        <li>T\u00eate totale (m)<\/li>\r\n        <li>D\u00e9bit requis (m\u00b3\/h)<\/li>\r\n        <li>Mod\u00e8le de pompe (si vous poss\u00e9dez d\u00e9j\u00e0 une pompe)<\/li>\r\n        <li>Mode de fonctionnement privil\u00e9gi\u00e9\u00a0: solaire uniquement ou hybride (solaire + CA \/ r\u00e9seau \/ g\u00e9n\u00e9rateur)<\/li>\r\n      <\/ul>\r\n      <p>Le syst\u00e8me calculera ensuite la pompe, l&#039;onduleur, les panneaux solaires et les accessoires essentiels adapt\u00e9s.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Puis-je ajouter ma propre marge b\u00e9n\u00e9ficiaire ou des frais d&#039;installation\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Oui. Vous pouvez saisir votre <strong>frais d&#039;installation<\/strong> et <strong>marge b\u00e9n\u00e9ficiaire<\/strong> avant de g\u00e9n\u00e9rer le PDF.<\/p>\r\n      <p>Le devis final indiquera votre prix de vente avec marge, vous permettant ainsi de le communiquer directement \u00e0 votre client sous le nom de votre entreprise.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Que faire si le mod\u00e8le de ma pompe ne figure pas dans la liste\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Si votre mod\u00e8le de pompe n&#039;est pas r\u00e9pertori\u00e9, veuillez\u00a0:<\/p>\r\n      <ul>\r\n        <li>Choisir <strong>\u00ab Pompe existante \u00bb<\/strong> mode dans l&#039;outil<\/li>\r\n        <li>S\u00e9lectionnez la plage de puissance la plus proche<\/li>\r\n        <li>Saisissez manuellement le nom de la pompe, sa puissance, sa tension et sa hauteur manom\u00e9trique.<\/li>\r\n      <\/ul>\r\n      <p>En cas de doute, vous pouvez envoyer la plaque signal\u00e9tique ou une photo de la pompe \u00e0 HOBER via WhatsApp. Notre \u00e9quipe d&#039;ing\u00e9nieurs v\u00e9rifiera la configuration pour vous.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Cet outil est-il compatible avec les pompes \u00e0 eau fonctionnant en courant continu et en courant alternatif\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Oui. Les onduleurs HOBER sont compatibles avec\u00a0:<\/p>\r\n      <ul>\r\n        <li>Pompes solaires CC BLDC<\/li>\r\n        <li>Pompes submersibles \u00e0 courant alternatif<\/li>\r\n        <li>Pompes de surface et centrifuges \u00e0 courant alternatif<\/li>\r\n      <\/ul>\r\n      <p>Pour les projets hybrides, les onduleurs hybrides HOBER peuvent accepter <strong>Alimentation CC solaire et entr\u00e9e CA simultan\u00e9ment<\/strong>Contrairement \u00e0 de nombreux onduleurs \u00ab hybrides \u00bb traditionnels du march\u00e9, le courant alternatif n&#039;est pas converti en une sortie CC s\u00e9par\u00e9e ; il est sp\u00e9cifiquement con\u00e7u pour alimenter des pompes \u00e0 eau avec une prise en charge simultan\u00e9e des entr\u00e9es CA et CC.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Dans quelle mesure cet outil fournit-il une mesure pr\u00e9cise des panneaux solaires\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Le dimensionnement des panneaux photovolta\u00efques est bas\u00e9 sur le rayonnement solaire typique, le rendement de la pompe et les performances MPPT de projets r\u00e9els en Afrique et en Asie du Sud-Est.<\/p>\r\n      <p>Pour la plupart des syst\u00e8mes de petite et moyenne taille, le dimensionnement est tr\u00e8s proche des r\u00e9sultats obtenus sur le terrain. Pour les grands projets ou les conditions particuli\u00e8res, nous recommandons de transmettre \u00e0 HOBER l&#039;ensemble des donn\u00e9es du site afin que nos ing\u00e9nieurs puissent optimiser la conception.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Puis-je exporter le devis au format PDF avec le nom de mon entreprise\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Oui. Vous pouvez saisir votre <strong>Nom de l&#039;entreprise<\/strong>, le nom du client et le num\u00e9ro de devis en haut du formulaire.<\/p>\r\n      <p>Le syst\u00e8me g\u00e9n\u00e9rera un devis PDF clair et professionnel que vous pourrez envoyer directement \u00e0 votre client ou imprimer pour vos dossiers de projet.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <!-- FAQ Group 2: Installation & Troubleshooting -->\r\n  <h2 style=\"margin-top:36px;\">FAQ \u2013 Installation et d\u00e9pannage<\/h2>\r\n  <p class=\"section-subtitle\">\r\n    Guide pratique pour les installateurs travaillant avec les onduleurs et syst\u00e8mes de pompes solaires HOBER.\r\n  <\/p>\r\n\r\n  <details>\r\n    <summary>Comment calculer la hauteur manom\u00e9trique totale (hauteur manom\u00e9trique dynamique totale) de mon syst\u00e8me\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>La t\u00eate totale se compose de trois parties :<\/p>\r\n      <ul>\r\n        <li><strong>T\u00eate statique<\/strong>: diff\u00e9rence de hauteur verticale entre la source d&#039;eau et le point de livraison<\/li>\r\n        <li><strong>Perte par frottement (hf)<\/strong>: pertes dues \u00e0 la longueur, au diam\u00e8tre et \u00e0 la vitesse d&#039;\u00e9coulement de la conduite<\/li>\r\n        <li><strong>r\u00e9sistance locale (hj)<\/strong>: pertes dues aux coudes, vannes, t\u00e9s, filtres, etc.<\/li>\r\n      <\/ul>\r\n      <p>Formule: <strong>TDH = Hauteur statique + hf + hj<\/strong><\/p>\r\n      <p>En cas de doute, veuillez nous communiquer la longueur et le diam\u00e8tre du tuyau. Notre \u00e9quipe se chargera du calcul.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>\u00c0 quelle distance puis-je installer les panneaux solaires de l&#039;onduleur de la pompe\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Pour une efficacit\u00e9 optimale\u00a0:<\/p>\r\n      <ul>\r\n        <li>La distance recommand\u00e9e du c\u00f4t\u00e9 DC est inf\u00e9rieure \u00e0 30\u201340 m.<\/li>\r\n        <li>Si une distance plus importante est n\u00e9cessaire, utilisez un c\u00e2ble et une conception de protection appropri\u00e9s.<\/li>\r\n        <li>\u00c9vitez les joints, les virages ou les passages ombrag\u00e9s inutiles.<\/li>\r\n      <\/ul>\r\n      <p>Pour les syst\u00e8mes de grande envergure, contactez HOBER pour obtenir des conseils d\u00e9taill\u00e9s sur le c\u00e2blage et la protection.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Pourquoi ai-je besoin d&#039;un r\u00e9acteur dans le syst\u00e8me et \u00e0 quoi sert-il\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Un r\u00e9acteur (r\u00e9acteur alternatif ou r\u00e9acteur de ligne de sortie) est utilis\u00e9 pour am\u00e9liorer la fiabilit\u00e9 et la protection du syst\u00e8me de pompage, notamment pour les puissances \u00e9lev\u00e9es ou les longues distances entre les c\u00e2bles. Il peut\u00a0:<\/p>\r\n      <ul>\r\n        <li>R\u00e9duire les pics de courant et de tension harmoniques provenant de l&#039;onduleur<\/li>\r\n        <li>Prot\u00e9gez l&#039;isolation du moteur et prolongez sa dur\u00e9e de vie.<\/li>\r\n        <li>Lisser le courant de sortie et r\u00e9duire le bruit et les vibrations<\/li>\r\n        <li>Prot\u00e9gez l&#039;onduleur lorsque le c\u00e2ble entre l&#039;onduleur et le moteur est tr\u00e8s long.<\/li>\r\n      <\/ul>\r\n      <p>Pour les pompes de forte puissance ou les c\u00e2bles moteurs longue distance, HOBER recommande fortement l&#039;utilisation d&#039;un r\u00e9acteur comme indiqu\u00e9 dans le sch\u00e9ma de c\u00e2blage.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Les onduleurs HOBER peuvent-ils d\u00e9marrer une pompe lorsque l&#039;ensoleillement est faible ou que le ciel est nuageux\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Oui. HOBER utilise une technologie MPPT avanc\u00e9e et une fonction de d\u00e9marrage progressif. En cas de faible ensoleillement, l&#039;onduleur\u00a0:<\/p>\r\n      <ul>\r\n        <li>R\u00e9duire la vitesse de la pompe<\/li>\r\n        <li>Maintenir un fonctionnement stable tant que la tension et la puissance sont suffisantes<\/li>\r\n        <li>Pr\u00e9venir les arr\u00eats dus aux basses tensions et les red\u00e9marrages fr\u00e9quents<\/li>\r\n      <\/ul>\r\n      <p>Cela garantit un d\u00e9bit d&#039;eau m\u00eame par temps nuageux.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Puis-je connecter \u00e0 la fois le r\u00e9seau \u00e9lectrique ou un g\u00e9n\u00e9rateur et des panneaux solaires\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Oui. Pour les mod\u00e8les hybrides HOBER, l&#039;onduleur permet <strong>L&#039;entr\u00e9e solaire CC et l&#039;entr\u00e9e CA doivent \u00eatre connect\u00e9es simultan\u00e9ment.<\/strong>.<\/p>\r\n      <p>Connexion:<\/p>\r\n      <ul>\r\n        <li>Panneaux solaires \u2192 Entr\u00e9e PV (CC)<\/li>\r\n        <li>R\u00e9seau ou g\u00e9n\u00e9rateur \u2192 Entr\u00e9e CA<\/li>\r\n      <\/ul>\r\n      <p>En fonctionnement, l&#039;onduleur utilise l&#039;\u00e9nergie solaire en priorit\u00e9 et l&#039;alimentation secteur en compl\u00e9ment ou en secours. Il est con\u00e7u pour alimenter simultan\u00e9ment la pompe en courant alternatif et continu, et non comme un onduleur de conversion courant alternatif\/continu classique.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Quelles sont les erreurs d&#039;installation les plus courantes \u00e0 \u00e9viter ?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>Les probl\u00e8mes les plus courants sont\u00a0:<\/p>\r\n      <ul>\r\n        <li>Mauvaise mise \u00e0 la terre ou absence de mise \u00e0 la terre<\/li>\r\n        <li>Connexion s\u00e9rie\/parall\u00e8le incorrecte du panneau<\/li>\r\n        <li>Installation de panneaux sous ombrage<\/li>\r\n        <li>La pompe fonctionne \u00e0 sec (pas d&#039;eau)<\/li>\r\n        <li>C\u00e2blage moteur incorrect<\/li>\r\n      <\/ul>\r\n      <p>Le respect du guide d&#039;installation de HOBER permet d&#039;\u00e9liminer la plupart de ces probl\u00e8mes.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n\r\n  <details>\r\n    <summary>Que dois-je faire si la pompe s&#039;arr\u00eate en cours de fonctionnement\u00a0?<\/summary>\r\n    <div class=\"faq-body\">\r\n      <p>V\u00e9rifiez d&#039;abord les points suivants\u00a0:<\/p>\r\n      <ul>\r\n        <li>Connexions des panneaux solaires et tension PV sur l&#039;\u00e9cran de l&#039;onduleur<\/li>\r\n        <li>Si le r\u00e9servoir d&#039;eau est plein (interrupteur \u00e0 flotteur actif)<\/li>\r\n        <li>Alarme de protection contre la surcharge ou le fonctionnement \u00e0 sec du moteur<\/li>\r\n        <li>\u00c9tat du courant alternatif\/r\u00e9seau ou du g\u00e9n\u00e9rateur si vous \u00eates en mode hybride<\/li>\r\n      <\/ul>\r\n      <p>Si le probl\u00e8me persiste, contactez HOBER en fournissant des photos ou une courte vid\u00e9o pour un diagnostic rapide.<\/p>\r\n    <\/div>\r\n  <\/details>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-d0a9687 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"d0a9687\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4cc76ee\" data-id=\"4cc76ee\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-190f28b elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"190f28b\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ec2957d\" data-id=\"ec2957d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-23b8197 elementor-widget elementor-widget-spacer\" data-id=\"23b8197\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-48b9241 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"48b9241\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3baa1c3\" data-id=\"3baa1c3\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f888745 elementor-widget elementor-widget-heading\" data-id=\"f888745\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Guide d&#039;installation des pompes solaires<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c191dc3 elementor-widget elementor-widget-spacer\" data-id=\"c191dc3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c3f5e9d elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"c3f5e9d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-312a6c80\" data-id=\"312a6c80\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>Solution de pompage solaire - Devis intelligent Pro - Configurateur de syst\u00e8me Pro \u2013 Expert Logic - Configurateur de syst\u00e8me Pro \u2b07 Devis PDF 1. Informations de base Mon entreprise N\u00b0 de devis Client<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>","protected":false},"author":4,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","om_disable_all_campaigns":false,"_joinchat":[],"footnotes":""},"class_list":["post-7124","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/pages\/7124","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/comments?post=7124"}],"version-history":[{"count":2,"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/pages\/7124\/revisions"}],"predecessor-version":[{"id":7139,"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/pages\/7124\/revisions\/7139"}],"wp:attachment":[{"href":"https:\/\/hobertek.com\/fr\/wp-json\/wp\/v2\/media?parent=7124"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}