templates/components/js/update_codes_js.html.twig line 1

Open in your IDE?
  1. <script>
  2.     {% include 'components/js/gun_actions_js.html.twig' with {'formName':formName, 'inScript':true} %}
  3.     function updatePieceCodes(){
  4.         var producerDivs = document.getElementsByClassName('divs_code_producer');
  5.         var supplierDivs = document.getElementsByClassName('divs_code_supplier');
  6.         if(document.getElementById('{{ formName }}_gunType_0').checked){
  7.             for(i=0; i<producerDivs.length; i++){
  8.                 producerDivs[i].className = "col-12 form-group divs_code_producer";
  9.                 producerDivs[i].style.display = 'block';
  10.             }
  11.             for(k=0; k<supplierDivs.length; k++){
  12.                 supplierDivs[k].className = "col-12 form-group divs_code_supplier";
  13.                 supplierDivs[k].style.display = 'none';
  14.             }
  15.             actionCodeProducer();
  16.         }
  17.         if(document.getElementById('{{ formName }}_gunType_1').checked){
  18.             for(i=0; i<producerDivs.length; i++){
  19.                 producerDivs[i].className = "col-12 form-group divs_code_producer";
  20.                 producerDivs[i].style.display = 'none';
  21.             }
  22.             for(k=0; k<supplierDivs.length; k++){
  23.                 supplierDivs[k].className = "col-12 form-group divs_code_supplier";
  24.                 supplierDivs[k].style.display = 'block';
  25.             }
  26.             actionCodeSupplier();
  27.         }
  28.         if(document.getElementById('{{ formName }}_gunType_2').checked){
  29.             for(i=0; i<producerDivs.length; i++){
  30.                 producerDivs[i].className = "col-12 col-md-6 form-group divs_code_producer";
  31.                 producerDivs[i].style.display = 'block';
  32.             }
  33.             for(k=0; k<supplierDivs.length; k++){
  34.                 supplierDivs[k].className = "col-12 col-md-6 form-group divs_code_supplier";
  35.                 supplierDivs[k].style.display = 'block';
  36.             }
  37.             actionCodeProducer();
  38.         }
  39.     }
  40.     document.body.addEventListener("keypress", function(e) {
  41.         if(document.activeElement.className.search("input_code_producer") != -1 || document.activeElement.className.search("input_code_supplier") != -1){
  42.             verifyCodeInserted(e);
  43.         }
  44.     });
  45.     function verifyCodeInserted(e){
  46.         if(e.key == 'Enter'){
  47.             var type = '';
  48.             if(document.activeElement.getAttribute('id').includes('codeProducer')) type = 'producer';
  49.             if(document.activeElement.getAttribute('id').includes('codeSupplier')) type = 'supplier';
  50.             document.getElementById('product_update_id').value = document.activeElement.id;
  51.             
  52.             var producerInputs = document.getElementsByClassName('input_code_producer');
  53.             var supplierInputs = document.getElementsByClassName('input_code_supplier');
  54.             switch(type){
  55.                 case "producer": updateDuplicateInputs(producerInputs, "producer"); break;
  56.                 case "supplier": updateDuplicateInputs(supplierInputs, "supplier"); break;
  57.             }
  58.             $.post('{{ path ("user_check_product_codes") }}', {code: document.activeElement.value, type: type}, function(response){ 
  59.                 if(response.code == 200 && response.success){
  60.                     if(!response.found){
  61.                         addOrGoNext(type);
  62.                     }
  63.                     else{
  64.                         document.getElementById('product_update_modal_paragraph').innerHTML = response.msg;
  65.                         document.getElementById('product_update_type').value = type;
  66.                         $('#productUpdateModal').modal({backdrop: 'static', keyboard: false}).modal("show");
  67.                     }
  68.                 }
  69.             }, "json");
  70.             
  71.             $('[data-bs-toggle="tooltip"]').tooltip();
  72.             updateReceiveCounter();
  73.         }
  74.     }
  75.     function setTypeAndAddOrGoNext(){
  76.         var type = document.getElementById("product_update_type").value;
  77.         addOrGoNext(type);
  78.     }
  79.     
  80.     function addOrGoNext(type){
  81.         if(document.getElementById('{{ formName }}_gunType_0').checked){
  82.             if(index == getLastRow()){
  83.                 actionAddRow();
  84.                 actionNextRow();
  85.             }
  86.             else{
  87.                 selectField(getLastRow(), 'producer');
  88.             }
  89.             updatePieceCodes();
  90.             actionCodeProducer();
  91.         }
  92.         if(document.getElementById('{{ formName }}_gunType_1').checked){
  93.             if(index == getLastRow()){
  94.                 actionAddRow();
  95.                 actionNextRow();
  96.             }
  97.             else{
  98.                 selectField(getLastRow(), 'supplier');
  99.             }
  100.             updatePieceCodes();
  101.             actionCodeSupplier();
  102.         }
  103.         if(document.getElementById('{{ formName }}_gunType_2').checked){
  104.             switch(type){
  105.                 case 'producer': actionCodeSupplier(); break;
  106.                 case 'supplier':
  107.                     if(index == getLastRow()){
  108.                         actionAddRow();
  109.                         actionNextRow();
  110.                     }
  111.                     else{
  112.                         selectField(getLastRow(), 'producer');
  113.                     }
  114.                     updatePieceCodes();
  115.                     actionCodeProducer();
  116.                     break;
  117.                 default: break;
  118.             }
  119.         }
  120.     }
  121.     function resetCode(){
  122.         document.getElementById(document.getElementById('product_update_id').value).value = '';
  123.         $('#productUpdateModal').modal("hide");
  124.     }
  125.     function checkSubmitForm(){
  126.         var producerInputs = document.getElementsByClassName('input_code_producer');
  127.         var supplierInputs = document.getElementsByClassName('input_code_supplier');
  128.         var duplicate = false;
  129.         for(i=0; i<producerInputs.length; i++){
  130.             if(producerInputs[i].value != ""){
  131.                 duplicate = false;
  132.                 for(j=0; j<producerInputs.length; j++){
  133.                     if(j != i && producerInputs[i].value == producerInputs[j].value){
  134.                         duplicate = true;
  135.                         break;
  136.                     }
  137.                 }
  138.             }
  139.         }
  140.         
  141.         if(!duplicate){
  142.             for(i=0; i<supplierInputs.length; i++){
  143.                 if(supplierInputs[i].value != ""){
  144.                     duplicate = false;
  145.                     for(j=0; j<supplierInputs.length; j++){
  146.                         if(j != i && supplierInputs[i].value == supplierInputs[j].value){
  147.                             duplicate = true;
  148.                             break;
  149.                         }
  150.                     }
  151.                 }
  152.             }
  153.         }
  154.         return duplicate;
  155.     }
  156.     
  157.     function updateReceiveCounter(){
  158.     
  159.         if(document.getElementById('{{ formName }}_gunType_0').checked || document.getElementById('{{ formName }}_gunType_2').checked)
  160.             var inputs = document.getElementsByClassName('input_code_producer');
  161.         
  162.         if(document.getElementById('{{ formName }}_gunType_1').checked)
  163.             var inputs = document.getElementsByClassName('input_code_supplier');
  164.         var counter = 0;
  165.         var codes = [];
  166.         var codesToIgnore = [];
  167.         for(i=0; i<inputs.length; i++)
  168.             if(inputs[i].value != '')
  169.                 codes.push(inputs[i].value);
  170.         for(i=0; i<inputs.length; i++){
  171.             if(inputs[i].value != ''){
  172.                 if(!codesToIgnore.includes(inputs[i].value))
  173.                     counter++;
  174.                 if(moreThanOneInArray(inputs[i].value, codes) && !codesToIgnore.includes(inputs[i].value))
  175.                     codesToIgnore.push(inputs[i].value);
  176.             }
  177.         }
  178.         document.getElementById('code_total').innerHTML = counter;
  179.     }
  180. </script>