helper.html 18.2 KB
Newer Older
1 2 3 4 5 6 7
{% extends "base.html" %}
{% load static %}

{% block additionnal_css %}
<link rel="stylesheet" href="{% static 'css/datatables/jquery.dataTables.css' %}">
<link rel="stylesheet" href="{% static 'jquery-ui-1.12.1/jquery-ui.min.css' %}">
<link rel="stylesheet" href="{% static 'css/oders_helper_style.css' %}">
8
<link rel="stylesheet" href="{% static 'quill/quill.snow.css' %}">
9 10 11
{% endblock %}

{% block additionnal_scripts %}
12
<script type="text/javascript" src="{% static 'jquery-ui-1.12.1/jquery-ui.min.js' %}?v=1651853225"></script>
13
<script type="text/javascript" src="{% static 'js/datatables/jquery.dataTables.min.js' %}"></script>
14
<script type="text/javascript" src="{% static 'js/notify.min.js' %}?v=1651853225"></script>
15
<script type="text/javascript" src="{% static 'quill/quill.min.js' %}"></script>
16 17 18 19
{% endblock %}

{% block content %}
<div class="page_body">
20
    <div id="select_order_content" class="page_content txtcenter">
21 22 23
        <div class="login_area">
            {% include "common/conn_admin.html" %}
        </div>
24 25 26 27 28 29
        {% if can_customize_parameters %}
        <div class="preferences_area" style="display:none;">
            <button type="button" id="preferences-settings">Paramétrage</button>
        </div>
        {% endif %}

30 31
        <div id="new_order_area">
            <h2>Créer une nouvelle commande</h2>
32 33 34 35
            <div class="txtcenter" id="not_connected_content" style="display:none;">
                <p>Vous devez vous connecter avec un compte Odoo pour accéder au module d'aide à la commande.</p>
            </div>
            <form id="new_order_form" style="display:none;">
36
                <input type="text" id="new_order_name" placeholder="Nom de la commande...">
37
                <button type="submit" class="btn btn--primary">C'est parti !</button>
38 39
            </form>
        </div>
40
        <div id="existing_orders_area" style="display:none;">
41
            <h2>Ou, continuer une commande en cours de création</h2>
42 43
            <div id="existing_orders"></div>
        </div>
44
        <div id="common_info_area" style="display:none;">
45 46 47 48 49 50
            <h2>Informations</h2>
            <div id="common_info_editor_container"> 
                <div id="common_info_editor"></div>
            </div>
            <button class="btn--primary" id="save_common_info">Sauvegarder</button>
        </div>
51 52
    </div>

53
    <div id="main_content" class="page_content" style="display:none;">
54 55 56 57
        <div class="actions_buttons_area">
            <button type="button" class="btn--danger" id="back_to_order_selection_from_main">
                <i class="fas fa-arrow-left"></i>&nbsp; Retour
            </button>
58 59
            <div class="right_action_buttons">
                <div id="actions_buttons_wrapper">
60
                    <button type="button" class='btn--primary' id="toggle_action_buttons">
61 62 63
                        <span class="button_content">
                            Actions
                        </span>
64 65 66
                        <span class="toggle_action_buttons_icon">
                            <i class="fas fa-chevron-down"></i>
                        </span>
67 68 69 70 71
                    </button>
                    <div id="actions_buttons_container">
                        <button type="button" class='btn--primary action_button' id="do_inventory" style="display:none;">
                            Faire un inventaire
                        </button>
72 73 74
                        <button type="button" class='btn--primary action_button' id="refresh_order">
                            Rafraîchir la commande
                        </button>
75 76 77 78 79
                        <button type="button" class='btn--danger action_button' id="delete_order_button">
                            Supprimer la commande
                        </button>
                    </div>
                </div>
80
                {% if metabase_url != "" %}
81 82 83
                <a class='btn--warning link_as_button' id="access_metabase" style="display:none;" href="{{metabase_url}}" target="_blank">
                    Stats Métabase
                </a>
84
                {% endif %}
85
            </div>
86 87 88 89
        </div>
    
        <div class="header txtcenter">
            <h1>Aide à la commande</h1>
90 91 92
            <p id="order_data_container">
                Commande : <span class="order_name_container"></span> 
                <span id="order_data_separator"> | </span>
93
                Total HT : <span id="order_total_value">0</span>
94
            </p>
95 96
        </div>
    
97
        <div class="txtcenter" id="order_forms_container">
98
            <form action="javascript:;" id="supplier_form" class="order_form_item">
99 100 101
                <input type="text" name="supplier" id="supplier_input" placeholder="Rechercher un fournisseur par son nom">
                <button type="submit" class='btn--primary'>Ajouter le fournisseur</button>
            </form>
102 103 104 105 106 107 108 109 110
            <form action="javascript:;" id="stats_date_from_form" class="order_form_item">
                <label for="stats_date_period_select">Période de calcul de la conso moyenne </label>

                <select name="stats_date_period_select" id="stats_date_period_select">
                    <option value="">Par défaut</option>
                    <option value="1week">1 semaine</option>
                    <option value="2weeks">2 semaines</option>
                </select>
            </form>
111
            <form action="javascript:;" id="coverage_form" class="order_form_item">
112 113
                <div class="input-wrapper">
                    <input type="number" name="coverage_days" id="coverage_days_input" placeholder="Nb jours de couverture" min="1">
114
                    <input type="number" name="targeted_amount" id="targeted_amount_input" placeholder="Montant en €" min="1">
115
                    <input type="number" name="percent_adjustement" id="percent_adjust_input" placeholder="ajustement en %">
116 117
                </div>
                <div>
118
                    <button  type="submit" class='btn--primary'>Calculer les besoins</button> <i class='main fa fa-info-circle fa-lg average_consumption_explanation_icon'></i>
119
                </div>
120
            </form>
121 122
        </div>
    
123
        <div id="suppliers_container"></div>
124 125 126 127
    
        <div class="main" style="display:none;">
            <div class="table_area">
                <table id="products_table" class="display" cellspacing="0" width="100%"></table>
Damien Moulard committed
128 129
            </div>
        </div>
130

131
        <div id="main_content_footer" style="display:none;">
132 133 134 135 136 137 138 139 140 141 142 143 144 145
            <div id="footer_actions">
                <div class="add_product_container">
                    <div id="product_form_container">
                        <form action="javascript:;" id="product_form">
                            <input type="text" name="article" id="product_input" placeholder="Rechercher un article">
                            <button type="submit" class='btn--primary'>Ajouter l'article</button>
                        </form>
                    </div>
                </div>
                <button type="button" class='btn--primary' id="create_orders">
                    Générer les commandes
                </button>
            </div>
            </div>
146 147 148
    </div>

    <div id="orders_created" class="page_content" style="display:none;">
149 150 151 152
        <div class="actions_buttons_area">
            <button type="button" class="btn--danger" id="back_to_order_selection_from_orders_created">
                <i class="fas fa-arrow-left"></i>&nbsp; Retour
            </button>
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171
        </div>
        <div class="order_created_header txtcenter">
            <h2>Commandes créées !</h2>
        </div>
        <div id="created_orders_area"></div>
        <br/><br/><hr/><br/>
        <div class="mail_example_container">
            <p class="mail_type_text">Mail type :</p>
            <div class="mail_example">
                Objet : Cde Cagette JJ/MM<br/>
                <br/>
                Bonjour XXXXXXX,<br/>
                <br/>
                Voici la commande de La Cagette pour le XX/XX/XX.<br/>
                <br/>
                Merci d'avance,<br/>
                Bonne journée
            </div>
        </div>
Damien Moulard committed
172
    </div>
173

174 175
    <div id="templates" style="display:none;">
        <div id="supplier_pill_template">
176
            <div class="pill supplier_pill">
177 178 179 180
                <div class="supplier_name_container">
                    <span class="pill_supplier_name"></span>
                    <i class="fas fa-times remove_supplier_icon"></i>
                </div>
181 182 183 184 185 186 187 188
                <div class="supplier_data">
                    <div class="supplier_total_value_container">
                        Total : <span class="supplier_total_value">0</span>
                    </div>
                    &nbsp;&nbsp;|&nbsp;&nbsp;
                    <div class="supplier_total_packages_container">
                        Nb colis : <span class="supplier_total_packages">0</span>
                    </div>
189
                </div>
190 191
            </div>
        </div>
192

193 194 195
        <div id="order_pill_template">
            <div class="pill order_pill btn btn--primary">
                <span class="pill_order_name"></span>
196
                <i class="fas fa-times remove_order_icon"></i>
197 198
            </div>
        </div>
199

200 201 202 203
        <div id="new_order_item_template">
            <div class="new_order_item">
                <h3 class="new_order_supplier_name"></h3>
                <h3 class="new_order_po"></h3>
204
                <h4 class="new_order_date_planned"></h4>
205 206
                <div class='download_order_file'>
                    <i class="fas fa-spinner fa-spin download_order_file_loading"></i>
207
                    <a class='btn--success download_order_file_button link_as_button' style="display:none;" href="#">
208 209 210 211 212 213
                        Télécharger le fichier de commande
                    </a>
                </div>
            </div>  
        </div>

214 215 216 217 218 219 220 221 222 223 224 225 226
        <div id="modal_order_access">
            <h3>Attention !</h3>
            <br/>
            <p class="order_modified_msg"> 
                Un autre navigateur a modifié cette commande il y a <span class="order_last_update"></span>.
            </p><br/>
            <p>
                Si quelqu'un d'autre que vous est à l'origine de la modification et que celle-ci est récente,
                nous conseillons fortement de ne pas accéder à la commande afin d'éviter les conflits.
            </p><br/>
            <p>Voulez-vous quand même y accéder ?</p>
            <hr/>
        </div>
227 228 229

        <div id="modal_remove_order">
            <h3>Attention !</h3>
230 231
            <p class="remove_order_modal_text">
                Vous vous apprêtez à <b style="color: #d9534f;">supprimer</b> cette commande en cours : <span class="remove_order_name"></span>.<br/>
232
            </p>
233
            <p>Êtez-vous sûr.e ?</p>
234 235
            <hr/>
        </div>
236 237 238 239 240 241 242 243
    
        <div id="modal_remove_supplier">
            <h3>Attention !</h3>
            <p>
                Vous vous apprêtez à supprimer le fournisseur <span class="supplier_name"></span> de la sélection.<br/>
                Les produits associés uniquement à ce fournisseur seront supprimés du tableau.<br/>
                Les données renseignées dans la colonne de ce fournisseur seront perdues.
            </p>
244
            <p>Êtez-vous sûr.e ?</p>
245 246 247 248 249 250 251
            <hr/>
        </div>
    
        <div id="modal_attach_product_to_supplier">
            <h3>Attention !</h3>
            <p> 
                Vous vous apprêtez à associer le produit <span class="product_name"></span> au fournisseur <span class="supplier_name"></span>.<br/>
252 253
            </p>
            <br/>
254 255 256 257 258
            <div class="modal_input_area">
                <span class="modal_input_label">Prix du produit chez ce fournisseur: </span>
                <div class="modal_input_container">
                    <input type="number" class="modal_input new_product_supplier_price" >
                </div>
259
            </div>
260 261 262 263 264
            <div class="modal_input_area">
                <span class="modal_input_label">Colisage chez ce fournisseur: </span>
                <div class="modal_input_container">
                    <input type="number" class="modal_input new_product_supplier_package_pty">
                </div>
265 266 267
            </div>
            <br/>
            <p> 
268 269
                L'association sera sauvegardée dès que vous aurez cliqué sur "Valider".<br/>
            </p>
270
            <p>Êtez-vous sûr.e ?</p>
271 272
            <hr/>
        </div>
273

274
        <div id="modal_end_supplier_product_association">
275 276 277 278 279 280 281 282
            <h3>Attention !</h3>
            <p> 
                Vous vous apprêtez à rendre le produit <span class="product_name"></span> 
                indisponible chez le fournisseur <span class="supplier_name"></span>.
            </p>
            <p> 
                L'association sera supprimée dès que vous aurez cliqué sur "Valider".<br/>
            </p>
283
            <p>Êtez-vous sûr.e ?</p>
284 285
            <hr/>
        </div>
286 287 288 289 290
    
        <div id="modal_create_inventory">
            <p> 
                Vous vous apprêtez à créer un inventaire de <span class="inventory_products_count"></span> produits.
            </p>
291
            <p>Êtez-vous sûr.e ?</p>
292 293
            <hr/>
        </div>
Damien Moulard committed
294

295 296 297 298 299 300 301
        <div id="product_price_action_template">
            <div class="product_price_action">
                <span class="supplier_name"></span>
                <input type="number" class="product_supplier_price" name="" value="" />
            </div>
        </div>

302 303
        <div id="modal_product_actions">
            Actions sur <h3><span class="product_name"></span></h3>
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323
            <div class="product_actions_container">
                <div class="product_actions_section">
                    <div class="product_actions_column">
                        <h4 class="modal_product_actions_title">NPA</h4>
                        <div class="npa-options">
                            <label><input type="checkbox" name="npa-actions" value="simple-npa" /> Mettre le produit en NPA </label>
                            <label><input type="checkbox" name="npa-actions" value="npa-in-name" /> Mettre le produit en NPA et afficher NPA</label>
                            <label><input type="checkbox" name="npa-actions" value="fds-in-name" /> Mettre le produit en NPA et afficher FDS</label>
                        </div>
                    </div>
                    <div class="product_actions_column">
                        <h4 class="modal_product_actions_title">Archiver le produit</h4>
                        <label class="checkbox_action_disabled"><input type="checkbox" name="archive-action" value="archive" disabled /> Archiver </label>
                        <div class="tooltip">
                            <i class='main fa fa-info-circle'></i>
                            <span class="tooltiptext tooltip-xl tt_twolines">
                                Un produit ne peut pas être archivé si une quantité entrante est prévue.
                            </span>
                        </div>
                    </div>
324
                </div>
325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340
                <div class="product_actions_section">
                    <div class="product_actions_column">
                        <h4 class="modal_product_actions_title">Stock minimum</h4>
                        <input type="number" name="minimal_stock" value="" />
                    </div>
                    <div class="product_actions_column">
                        <h4 class="modal_product_actions_title">Stock réel</h4>
                        <input type="number" name="actual_stock" value="" />
                    </div>
                </div>
                <div class="product_actions_section">
                    <div class="product_actions_full_column">
                        <h4 class="modal_product_actions_title product_prices_title">Prix</h4>
                        <i class="product_prices_title_label">(par fournisseur dans cette commande)</i>
                        <div class="product_prices_area"></div>
                    </div>
341 342
                </div>
            </div>
Damien Moulard committed
343
        </div>
344 345

        <div id="modal_create_order">
346 347
            <h3>Dernière étape...</h3>
            <br/>
348 349 350
            <p>
                Vous vous apprêtez à générer les commandes à partir des données rentrées dans le tableau.
            </p>
351 352 353 354 355 356
            <p>
                Vous pouvez rentrer une date de livraison prévue pour chaque fournisseur (optionnel, la date par défaut sera celle de demain).
            </p>
            <br/>
            <div class="suppliers_date_planned_area"></div>
            <br/>
357 358
            <hr/>
        </div>
359 360 361
        <div id="explanations">
            {% include "orders/explanations.html" %}
        </div>
362 363 364 365 366 367 368 369
        <div id="modal_create_order__supplier_date_planned">
            <div class="modal_input_area">
                <span class="modal_input_label supplier_name"></span>
                <div class="modal_input_container">
                    <input type="text" class="modal_input supplier_date_planned" placeholder="Date de livraison prévue">
                </div>
            </div>
        </div>
370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388
        <div id="modal_preferences_form">
            <div class="modal_input_area">
                <form>
                    <div>
                        <label>Forcer commande de 1 colis si stock = 0 et conso = 0 ?</label>
                        <div class="input-wrapper checkboxes">
                            <div>
                              <input type="radio" class="radio" name="force_0s0c_order" value="1"> Oui
                            </div>
                            <div>
                              <input type="radio" class="radio" name="force_0s0c_order" value="0"> Non
                            </div>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </div> <!-- templates -->
</div> <!-- page body -->
Damien Moulard committed
389

390 391 392 393 394

<script src="{% static "js/pouchdb.min.js" %}"></script>
<script type="text/javascript">
    var couchdb_dbname = '{{db}}';
    var couchdb_server = '{{couchdb_server}}' + couchdb_dbname;
395
    var odoo_server = '{{odoo_server}}';
396
    var metabase_url = '{{metabase_url}}';
397 398 399
    var uoms = {{uoms|safe}};
    var company_code = '{{company_code}}';
    var preferences = {{preferences|safe}};
400
</script>
401 402
<script src="{% static "js/all_common.js" %}?v=1651853225"></script>
<script type="text/javascript" src="{% static 'js/orders_helper.js' %}?v=1651853225"></script>
403
{% endblock %}