templates/ordine_veloce/ordine_veloce.html.twig line 1

  1. {% extends 'base.html.twig' %}
    {% trans_default_domain 'ordine_veloce' %}
    
    {% block head %}
        <script type="text/javascript" src="https://unpkg.com/@zxing/library@latest"></script>
        <script type="text/javascript" src="{{ asset('js/lettore_barcode.js') }}"></script>
    {% endblock %}
    
    {% block body %}
        {{ traduzione.CaricaTraduzioniDaFamiglia("ordine_veloce", app.request.locale, false) }}
        <h2 class="page-header">{{ traduzione.OttieniElementoDizionario("ordine_veloce_title", "ordine_veloce").valoreUscita }}</h2>
    
        <div class="modal fade" tabindex="-1" role="dialog" id="aggiungi_da_excel_modal">
            <div class="modal-dialog panel-warning" role="document">
                <div class="modal-content panel-warning">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="modalTitle">{{ traduzione.OttieniElementoDizionario("ordine_veloce_excel_modal_title", "ordine_veloce").valoreUscita }}</h4>
                    </div>
                    <div id="modalImportazioneCarrelloBody" class="modal-body panel-warning">
                        <div id="baseModalImportazioneCarrelloBody">
                            <div class="loading" id="loadingExcel">Loading&#8230;</div>
                            <p>{{ traduzione.OttieniElementoDizionario("ordine_veloce_excel_modal_testo", "ordine_veloce").valoreUscita }}</p>
                            <textarea id="listaCodiciImportazioneCarrelloTextArea" class="form-control" cols="5" rows="10"></textarea>
                            <p><b>{{ traduzione.OttieniElementoDizionario("ordine_veloce_excel_modal_testo_di_fondo", "ordine_veloce").valoreUscita }}</b></p>
                        </div>
                        <div id="esitoModalImportazioneCarrelloBody"></div>
                        <span id="erroreImportazioneCarrello" style="color: red; font-weight: bold"></span>
                    </div>
                    <div class="modal-footer">
                        <button type="button" id="importaCarrelloBtn" class="btn btn-success">{{ traduzione.OttieniElementoDizionario("ordine_veloce_excel_modal_esegui_btn", "ordine_veloce").valoreUscita }}</button>
                        <button type="button" id="chiudiImportaCarrelloBtn" class="btn btn-danger" data-dismiss="modal">{{ traduzione.OttieniElementoDizionario("ordine_veloce_excel_modal_chiudi_btn", "ordine_veloce").valoreUscita }}</button>
                    </div>
                </div><!-- /.modal-content -->
            </div><!-- /.modal-dialog -->
        </div><!-- /.modal -->
    
        <div class="modal fade" tabindex="-1" role="dialog" id="myModalShop">
            <div class="modal-dialog panel-warning" role="document">
                <div class="modal-content panel-warning">
                    <div class="modal-header">
                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                        <h4 class="modal-title" id="modalTitle">{{ traduzione.OttieniElementoDizionario("ordine_veloce_msg_attenzione", "ordine_veloce").valoreUscita }}</h4>
                    </div>
                    <div id="modalBodyAttenzione" class="modal-body panel-warning">
                        <p></p>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-danger" data-dismiss="modal">{{ traduzione.OttieniElementoDizionario("ordine_veloce_btn_chiudi", "ordine_veloce").valoreUscita }}</button>
                    </div>
                </div><!-- /.modal-content -->
            </div><!-- /.modal-dialog -->
        </div><!-- /.modal -->
    
        <div style="width: 50%;" class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
            <div class="panel panel-success">
                <div class="panel-heading" role="tab" id="headingOne">
                    <h4 class="panel-title">
                        <a role="button" class="collapsed" data-toggle="collapse" data-parent="#accordion" href="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
                            <span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span>{{ traduzione.OttieniElementoDizionario("ordine_veloce_aiuto_title", "ordine_veloce").valoreUscita }}
                        </a>
                    </h4>
                </div>
                <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
                    <div class="panel-body">
                        {{ traduzione.OttieniElementoDizionario("ordine_veloce_aiuto_testo", "ordine_veloce").valoreUscita }}
                    </div>
                </div>
            </div>
        </div>
    
        <div class="panel panel-default">
            <div class="panel-body">
                <div class="form-inline">
                    <div class="form-group">
                        <div class="input-group">
                            <div class="input-group-addon">{{ traduzione.OttieniElementoDizionario("ordine_veloce_inserimento_codice_parte", "ordine_veloce").valoreUscita }}</div>
                            <input type="text" class="form-control attiva-press" id="ordineVeloceCodiceParteTxt" autofocus="autofocus" placeholder="{{ traduzione.OttieniElementoDizionario("ordine_veloce_inserimento_codice_parte_placeholder", "ordine_veloce").valoreUscita }}">
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="input-group">
                            <div class="input-group-addon">{{ traduzione.OttieniElementoDizionario("ordine_veloce_inserimento_qta", "ordine_veloce").valoreUscita }}</div>
                            <input type="number" class="form-control attiva-press" id="ordineVeloceQtaTxt" placeholder="{{ traduzione.OttieniElementoDizionario("ordine_veloce_inserimento_qta_placeholder", "ordine_veloce").valoreUscita }}">
                        </div>
                    </div>
                    <div class="form-group">
                        <div class="input-group">
                            <button class="btn btn-success ordineVeloceAggiungiBtn">{{ traduzione.OttieniElementoDizionario("ordine_veloce_bottone_aggiungi", "ordine_veloce").valoreUscita }}</button>
                        </div>
                    </div>
                    <div class="form-group" style="margin-left: 100px;">
                        <div class="input-group">
                            <div class="input-group-addon">{{ traduzione.OttieniElementoDizionario("ordine_veloce_inserimento_marca_opzionale", "ordine_veloce").valoreUscita }}</div>
                            <input type="text" class="form-control attiva-press" id="ordineVeloceMarcaTxt" placeholder="{{ traduzione.OttieniElementoDizionario("ordine_veloce_inserimento_marca_opzionale_placeholder", "ordine_veloce").valoreUscita }}">
                        </div>
                    </div>
    
                    <div class="form-group" style="float: right; margin-right: 20px;">
                        <div class="input-group">
                            <button type="button" onclick="AvviaLettoreBarcode();" class="btn btn-default">
                                <span class="glyphicon glyphicon-barcode" aria-hidden="true"></span>  {{ traduzione.OttieniElementoDizionario("ordine_veloce_aggiungi_da_barcode", "ordine_veloce").valoreUscita }}
                            </button>
                            <button style="margin-left: 20px;" id="importa_da_excel_btn" class="btn btn-large btn-success">{{ traduzione.OttieniElementoDizionario("ordine_veloce_aggiungi_da_excel_btn", "ordine_veloce").valoreUscita }}</button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    
        <div class="col-md-12 col-xs-12" id="lettoreBarcodeDiv" style="display: none;">
            <div class="col-md-3 col-xs-12">
                <a class="btn btn-success" id="startButton">Start</a>
                <a class="btn btn-danger" id="resetButton">Stop</a>
                <div>
                    <video id="video" width="250" height="200" style="border: 1px solid gray"></video>
                </div>
                <div id="sourceSelectPanel" style="display:none">
                    <label for="sourceSelect">{{ traduzione.OttieniElementoDizionario("ordine_veloce_barcode_sorgente_video", "ordine_veloce").valoreUscita }}</label>
                    <select id="sourceSelect" style="max-width:400px">
                    </select>
                </div>
            </div>
            <div class="col-md-3 col-xs-12" style="display: flex; flex-direction: row; align-content: stretch; align-items: center;">
                <p id="datiSparata"></p>
            </div>
        </div>
    
        <b style="color: red;">{{ traduzione.OttieniElementoDizionario("ordine_veloce_frase_di_attenzione", "ordine_veloce").valoreUscita }}</b>
        <br>
    
        <table class="table table-responsive table-striped lista-articoli-table">
            <thead>
            <tr>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_tp", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_codice", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_descrizione", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_marca", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_qta", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_nettocad", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_listino", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_disponibile", "ordine_veloce").valoreUscita }}</th>
                <th>{{ traduzione.OttieniElementoDizionario("ordine_veloce_tab_inarrivo", "ordine_veloce").valoreUscita }}</th>
            </tr>
            </thead>
            <tbody class="body-tabella-articoli">
    
            </tbody>
        </table>
    
        <button class="btn btn-lg btn-primary aggiungi-tutto-carrello" style="float: left;">{{ traduzione.OttieniElementoDizionario("ordine_veloce_bottone_aggiungi_al_carrello", "ordine_veloce").valoreUscita }}</button>
    
    
    {% endblock %}
    
    {% block javascript %}
    
        <script type="text/javascript">
    
            $(document).ready(function () {
    
                $("#myModalShop").modal({
                    show: false
                });
    
                $("#aggiungi_da_excel_modal").modal({
                    show: false
                });
    
                $('#importa_da_excel_btn').on("click", function () {
                    $("#aggiungi_da_excel_modal").modal("toggle");
                });
    
                $(".lista-articoli-table").on("click", "a", function () {
                    $(this).closest("tr").remove();
                });
    
                $(".attiva-press").keypress(function (e) {
                    var keycode = event.keyCode || event.which;
                    if (keycode == '13') {
                        $(".ordineVeloceAggiungiBtn").click();
                    }
                });
    
                $("#importaCarrelloBtn").on("click", function () {
                    if($("#listaCodiciImportazioneCarrelloTextArea").val() != ''){
                        $("#loadingExcel").css("display", "block");
                        $.ajax({
                            type: "POST",
                            dataType: 'html',
                            data: {
                                "lista_da_importare": $("#listaCodiciImportazioneCarrelloTextArea").val()
                            },
                            url: Routing.generate('carrello_aggiungi_da_excel'),
                            async: true
                        })
                        .done(function (response) {
                            $("#loadingExcel").css("display", "none");
                            try {
                                let ritorno = JSON.parse(response);
                                if (ritorno["errori"].length > 0) {
                                    $('#modalBodyAttenzione').html(ritorno["errori"]);
                                } else {
                                    $('#modalBodyAttenzione').html('{{ traduzione.OttieniElementoDizionario("ordine_veloce_excel_modal_importazione_completata", "ordine_veloce").valoreUscita }}');
                                }
                            }catch{
                                $('#modalBodyAttenzione').html("ERROR!");
                            }
                            $('#myModalShop').modal({
                                show: false
                            });
                            $("#myModalShop").modal('show');
                        })
                        .fail(function (jqXHR, textStatus, errorThrown) {
                            alert('Error : ' + errorThrown);
                            $("#loadingMaster").css("display", "none");
                        });
                    }else{
                        $('#modalBodyAttenzione').html("{{ traduzione.OttieniElementoDizionario("ordine_veloce_excel_modal_errore_inserisci_almeno_una_riga", "ordine_veloce").valoreUscita }}");
                        $('#myModalShop').modal({
                            show: false
                        });
                        $("#myModalShop").modal('show');
                    }
                });
    
    
                $(".aggiungi-tutto-carrello").on("click", function () {
    
                    var listaCodici = [];
    
                    $(".body-tabella-articoli tr").each(function () {
                        var idmappa = $(this).data('idmappa');
                        var qta = $(this).find("td:nth-child(5)").text();
                        listaCodici.push({
                            'idMappaArticoli': idmappa,
                            'idVariante': '',
                            'idListaTipologiePreimpostate': '',
                            'qta': qta
                        });
                    });
    
                    if (listaCodici.length > 0) {
    
                        $("#erroreImportazioneCarrello").html("");
                        $("#importaCarrelloBtn").hide();
    
                        $("#loadingMaster").css("display", "block");
                        $.ajax({
                            type: "POST",
                            dataType: 'html',
                            data: {
                                "lista": listaCodici
                            },
                            url: Routing.generate('carrello_aggiungi'),
                            async: true
                        })
                            .done(function (response) {
                                $("#loadingMaster").css("display", "none");
                                $("#baseModalImportazioneCarrelloBody").hide();
                                CountArticoliCarrello();
                                $(".body-tabella-articoli").html("");
                                toastMessage("{{ traduzione.OttieniElementoDizionario("ordine_veloce_articoli_aggiunti_carrello", "ordine_veloce").valoreUscita }}");
                            })
                            .fail(function (jqXHR, textStatus, errorThrown) {
                                alert('Error : ' + errorThrown);
                                $("#loadingMaster").css("display", "none");
                            });
                    }else{
                        $("#modalBodyAttenzione").html("<p>{{ traduzione.OttieniElementoDizionario("ordine_veloce_messaggio_testo", "ordine_veloce").valoreUscita }}</p>");
                        $('#myModalShop').modal({
                            show: false
                        });
                        $("#myModalShop").modal('show');
                    }
    
                });
    
                $(".ordineVeloceAggiungiBtn").on("click", function () {
                    var codiceParte = $("#ordineVeloceCodiceParteTxt").val();
                    var marca = $("#ordineVeloceMarcaTxt").val();
                    var qta = $("#ordineVeloceQtaTxt").val();
    
    
                    if (codiceParte && codiceParte != "" && qta && qta != "")
                    {
                        $("#loadingMaster").css("display", "block");
                        $.ajax({
                            type: "POST",
                            dataType: 'json',
                            url: Routing.generate('ordine_veloce_cerca_mappa'),
                            data: {
                                "data": {
                                    'codice' : codiceParte,
                                    'marca' : marca
                                }
                            },
                            async: true //you won't need that if nothing in your following code is dependend of the result
                        })
                            .done(function (response) {
                                $("#loadingMaster").css("display", "none");
    
                                if (response['descrizione']) {
    
                                    var backgroundStyle = "";
                                    if (Number(response['disponibile'].replace(",", ".")) < Number(qta)) {
                                        if (Number(response['in_arrivo'].replace(",", ".")) > qta) {
                                            backgroundStyle = " style='background-color: yellow;'";
                                            parseFloat(qta).toFixed(response['numero_decimali']);
                                            $("#modalBodyAttenzione").html("<p>{{ traduzione.OttieniElementoDizionario("ordine_veloce_messaggio_testo_non_disponibile_in_arrivo", "ordine_veloce").valoreUscita }}</p>");
                                            $('#myModalShop').modal({
                                                show: false
                                            });
                                            $("#myModalShop").modal('show');
                                        }
                                        else {
                                            backgroundStyle = " style='background-color: red;'";
                                            $("#modalBodyAttenzione").html("<p>{{ traduzione.OttieniElementoDizionario("ordine_veloce_messaggio_testo_non_disponibile", "ordine_veloce").valoreUscita }}</p>");
                                            $('#myModalShop').modal({
                                                show: false
                                            });
                                            $("#myModalShop").modal('show');
                                        }
                                    }
    
                                    var tabRow = "<tr" + backgroundStyle + " data-idmappa='" + response['id_mappa'] + "'><td>" + response['tipo_parte'] + "</td><td id='codice'>" + codiceParte + "</td><td>" + response['descrizione'] + "</td><td id='marca'>" + response['marca'] + "</td><td id='qta'>" + parseFloat(qta).toFixed(response['numero_decimali']) + "</td><td>€ " + response['prezzo_netto']
                                        + "</td><td>€ " + response['prezzo_listino'] + "</td><td>" + response['disponibile'] + "</td><td>" + response['in_arrivo'] + "</td><td><a class='btn btn-danger elimina-elemento' title='{{ traduzione.OttieniElementoDizionario("ordine_veloce_elimina_btn_title", "ordine_veloce").valoreUscita }}'><span class='glyphicon glyphicon-trash'></span></a></td></tr>";
    
                                    $(".body-tabella-articoli").append(tabRow);
                                    $("#codiceParteTxt").focus();
                                    if(avviato){
                                        pulisciTutto();
                                        document.getElementById('startButton').click();
                                    }
                                }else{
                                    $("#modalBodyAttenzione").html("<p>{{ traduzione.OttieniElementoDizionario("ordine_veloce_messaggio_testo_articolo_non_trovato", "ordine_veloce").valoreUscita }}</p>");
                                    $('#myModalShop').modal({
                                        show: false
                                    });
                                    $("#myModalShop").modal('show');
                                }
                            })
                            .fail(function (jqXHR, textStatus, errorThrown) {
                                alert('Error : ' + errorThrown);
                                $("#loadingMaster").css("display", "none");
                            });
                    }
                    else{
                        $("#modalBodyAttenzione").html("<p>{{ traduzione.OttieniElementoDizionario("ordine_veloce_messaggio_testo_compila_dati", "ordine_veloce").valoreUscita }}</p>");
                        $('#myModalShop').modal({
                            show: false
                        });
                        $("#myModalShop").modal('show');
                    }
    
    
                });
    
            });
        </script>
    
    {% endblock %}