<script>
{% include 'components/js/gun_actions_js.html.twig' with {'formName':formName, 'inScript':true} %}
function updatePieceCodes(){
var producerDivs = document.getElementsByClassName('divs_code_producer');
var supplierDivs = document.getElementsByClassName('divs_code_supplier');
if(document.getElementById('{{ formName }}_gunType_0').checked){
for(i=0; i<producerDivs.length; i++){
producerDivs[i].className = "col-12 form-group divs_code_producer";
producerDivs[i].style.display = 'block';
}
for(k=0; k<supplierDivs.length; k++){
supplierDivs[k].className = "col-12 form-group divs_code_supplier";
supplierDivs[k].style.display = 'none';
}
actionCodeProducer();
}
if(document.getElementById('{{ formName }}_gunType_1').checked){
for(i=0; i<producerDivs.length; i++){
producerDivs[i].className = "col-12 form-group divs_code_producer";
producerDivs[i].style.display = 'none';
}
for(k=0; k<supplierDivs.length; k++){
supplierDivs[k].className = "col-12 form-group divs_code_supplier";
supplierDivs[k].style.display = 'block';
}
actionCodeSupplier();
}
if(document.getElementById('{{ formName }}_gunType_2').checked){
for(i=0; i<producerDivs.length; i++){
producerDivs[i].className = "col-12 col-md-6 form-group divs_code_producer";
producerDivs[i].style.display = 'block';
}
for(k=0; k<supplierDivs.length; k++){
supplierDivs[k].className = "col-12 col-md-6 form-group divs_code_supplier";
supplierDivs[k].style.display = 'block';
}
actionCodeProducer();
}
}
document.body.addEventListener("keypress", function(e) {
if(document.activeElement.className.search("input_code_producer") != -1 || document.activeElement.className.search("input_code_supplier") != -1){
verifyCodeInserted(e);
}
});
function verifyCodeInserted(e){
if(e.key == 'Enter'){
var type = '';
if(document.activeElement.getAttribute('id').includes('codeProducer')) type = 'producer';
if(document.activeElement.getAttribute('id').includes('codeSupplier')) type = 'supplier';
document.getElementById('product_update_id').value = document.activeElement.id;
var producerInputs = document.getElementsByClassName('input_code_producer');
var supplierInputs = document.getElementsByClassName('input_code_supplier');
switch(type){
case "producer": updateDuplicateInputs(producerInputs, "producer"); break;
case "supplier": updateDuplicateInputs(supplierInputs, "supplier"); break;
}
$.post('{{ path ("user_check_product_codes") }}', {code: document.activeElement.value, type: type}, function(response){
if(response.code == 200 && response.success){
if(!response.found){
addOrGoNext(type);
}
else{
document.getElementById('product_update_modal_paragraph').innerHTML = response.msg;
document.getElementById('product_update_type').value = type;
$('#productUpdateModal').modal({backdrop: 'static', keyboard: false}).modal("show");
}
}
}, "json");
$('[data-bs-toggle="tooltip"]').tooltip();
updateReceiveCounter();
}
}
function setTypeAndAddOrGoNext(){
var type = document.getElementById("product_update_type").value;
addOrGoNext(type);
}
function addOrGoNext(type){
if(document.getElementById('{{ formName }}_gunType_0').checked){
if(index == getLastRow()){
actionAddRow();
actionNextRow();
}
else{
selectField(getLastRow(), 'producer');
}
updatePieceCodes();
actionCodeProducer();
}
if(document.getElementById('{{ formName }}_gunType_1').checked){
if(index == getLastRow()){
actionAddRow();
actionNextRow();
}
else{
selectField(getLastRow(), 'supplier');
}
updatePieceCodes();
actionCodeSupplier();
}
if(document.getElementById('{{ formName }}_gunType_2').checked){
switch(type){
case 'producer': actionCodeSupplier(); break;
case 'supplier':
if(index == getLastRow()){
actionAddRow();
actionNextRow();
}
else{
selectField(getLastRow(), 'producer');
}
updatePieceCodes();
actionCodeProducer();
break;
default: break;
}
}
}
function resetCode(){
document.getElementById(document.getElementById('product_update_id').value).value = '';
$('#productUpdateModal').modal("hide");
}
function checkSubmitForm(){
var producerInputs = document.getElementsByClassName('input_code_producer');
var supplierInputs = document.getElementsByClassName('input_code_supplier');
var duplicate = false;
for(i=0; i<producerInputs.length; i++){
if(producerInputs[i].value != ""){
duplicate = false;
for(j=0; j<producerInputs.length; j++){
if(j != i && producerInputs[i].value == producerInputs[j].value){
duplicate = true;
break;
}
}
}
}
if(!duplicate){
for(i=0; i<supplierInputs.length; i++){
if(supplierInputs[i].value != ""){
duplicate = false;
for(j=0; j<supplierInputs.length; j++){
if(j != i && supplierInputs[i].value == supplierInputs[j].value){
duplicate = true;
break;
}
}
}
}
}
return duplicate;
}
function updateReceiveCounter(){
if(document.getElementById('{{ formName }}_gunType_0').checked || document.getElementById('{{ formName }}_gunType_2').checked)
var inputs = document.getElementsByClassName('input_code_producer');
if(document.getElementById('{{ formName }}_gunType_1').checked)
var inputs = document.getElementsByClassName('input_code_supplier');
var counter = 0;
var codes = [];
var codesToIgnore = [];
for(i=0; i<inputs.length; i++)
if(inputs[i].value != '')
codes.push(inputs[i].value);
for(i=0; i<inputs.length; i++){
if(inputs[i].value != ''){
if(!codesToIgnore.includes(inputs[i].value))
counter++;
if(moreThanOneInArray(inputs[i].value, codes) && !codesToIgnore.includes(inputs[i].value))
codesToIgnore.push(inputs[i].value);
}
}
document.getElementById('code_total').innerHTML = counter;
}
</script>