gestione gare pubbliche
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 

361 righe
17 KiB

<?
if (isset($this) && is_a($this,"anac")) {
$lock = $this->checkLock("requisiti");
$dati = $this->getDati();
$requisiti = anac::getListeSIMOG("CodRequisitoType",$this->info["data_invio_simog"]);
if (empty($dati["requisiti"])) {
$this->addRequisitiObbligatori();
$dati = $this->getDati();
}
if (!empty($dati["requisiti"])) {
if (!$lock) {
?>
<form rel="validate" method="post" action="/backend/anac/requisiti/send.php" id="edit-form">
<input id="token" type="hidden" name="token" value="<?= tokenGen() ?>">
<input id="codice" type="hidden" name="codice" value="<?= $this->info["codice"] ?>">
<div id="commands" class="mb-5">
<div class="commands container-fluid">
<div class="row">
<div class="col-12 text-right">
<button type="button" class="btn btn-sm btn-warning" onClick="editRequisito(0)">
<span class="fa fa-plus-circle"></span> <?= __("Aggiungi nuovo") ?>
</button>
<? if ($_SESSION["utente"]->permission("simog")) { ?>
<button class="btn btn-sm btn-success" onclick="$('#send').val('S')"><span class="fa fa-paper-plane"></span> <?= __("Invia al SIMOG") ?></button>
<? } ?>
</div>
</div>
</div>
</div>
<? } ?>
<table class="table table-striped table-hover">
<thead>
<tr>
<th width="80%"><?= __("Requisito") ?></th>
<th class="text-center"><?= __("Obbligatorio") ?></th>
<? if (!$lock) { ?>
<th width="10"></th>
<th width="10"></th>
<? } ?>
</tr>
</thead>
<tbody>
<?
foreach($dati["requisiti"] AS $requisito) {
$obbligatorio = false;
$descrizione = $requisiti[$requisito["codice_dettaglio"]];
if(strpos($descrizione,"OBBLIGATORIO") !== FALSE) {
$obbligatorio = true;
}
?>
<tr>
<td><?= $descrizione ?></td>
<td class="text-center"><?= $obbligatorio ? __("Si") : __("No") ?></td>
<? if (!$lock) { ?>
<td>
<input type="hidden" value="<?= base64_encode(json_encode($requisito)) ?>" id="requisito-<?= $requisito["codice_dettaglio"] ?>">
<button type="button" class="btn btn-sm btn-warning" onClick="editRequisito('requisito-<?= $requisito["codice_dettaglio"] ?>')">
<span class="fa fa-edit"></span>
</button>
</td>
<? if (!$obbligatorio) { ?>
<td>
<button type="button" class="btn btn-danger btn-sm" onClick="elimina(<?= $requisito["codice_dettaglio"] ?>,'anac/requisiti','codice_simog=<?= $this->info["codice"] ?>')">
<span class="fa fa-times"></span>
</button>
</td>
<? } else { ?>
<td></td>
<? } ?>
<? } else { ?>
<td colspan="2"></td>
<? } ?>
</tr>
<?
}
?>
</tbody>
</table>
<? if (!$lock) { ?>
<? if ($_SESSION["utente"]->permission("simog")) { ?>
<button class="btn btn-block btn-success" onclick="$('#send').val('S')"><span class="fa fa-paper-plane"></span> <?= __("Invia al SIMOG") ?></button>
<? } ?>
</form>
<?
$alreadySelected = array_keys($dati["requisiti"]);
$select = ["flag_esclusione"=>"Esclusione","flag_comprova_offerta"=>"Comprova offerta","flag_avvalimento"=>"Avvalimento","flag_bando_tipo"=>"Bando tipo","flag_riservatezza" => "Riservatezza"];
?>
<!-- Modal -->
<div class="modal fade" id="modal-requisito" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-xl" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form rel="validate" method="post" action="/backend/anac/requisiti/save.php" id="edit-requisito">
<input type="hidden" name="token" value="<?= tokenGen() ?>">
<input type="hidden" name="codice" value="<?= $this->info["codice"] ?>">
<input id="hidden_codice_dettaglio" type="hidden" name="hidden_codice_dettaglio">
<div class="form-group" id="criterio-select">
<label for="codice_dettaglio"><?= __("Requisito") ?></label>
<select onChange="checkdescrizione()" class="form-control" id="codice_dettaglio" name="codice_dettaglio">
<option value=""></option>
<? foreach($requisiti AS $id => $requisito) {
if (in_array($id,$alreadySelected) === false) { ?>
<option value="<?= $id ?>"><?= $requisito ?></option>
<? }
} ?>
</select>
</div>
<? foreach($requisiti AS $id => $requisito) {
if (in_array($id,$alreadySelected) !== false) { ?>
<div class="collapse criterio-titles" id="option-<?= $id ?>"><?= $requisito ?></div>
<? }
}
?>
<div class="form-group" id="div_descrizione">
<label for="descrizione"><?= __("descrizione") ?></label>
<textarea class="form-control" title="<?= __("descrizione") ?>" id="descrizione" name="descrizione" rel="S;0;0;A"></textarea>
</div>
<div class="form-group">
<label for="valore"><?= __("Valore minimo") ?></label>
<input class="form-control" title="<?= __("Valore minimo") ?>" id="valore" name="valore" rel="N;0;0;A">
<div class="alert alert-info p-1">
<small>
<?= __("Es. se richiesto un Fatturato annuale è possibile indicarne il valore minimo") ?>
</small>
</div>
</div>
<div class="d-flex flex-wrap my-3">
<?php
foreach($select AS $type => $title) {
$title = __($title);
?>
<div class="col text-center">
<div class="form-group">
<label for="type"><?= $title ?></label>
<select id="<?= $type ?>" name="<?= $type ?>" title="<?= $title ?>" rel="S;1;1;A">
<option value=""><?= __("Seleziona") ?></option>
<option value="S"><?= __("Si") ?></option>
<option value="N"><?= __("No") ?></option>
</select>
</div>
</div>
<?
}
?>
</div>
<div class="border p-3 my-3">
<div class="d-flex">
<div class="col form-group text-center">
<input type="radio" name="allCig" value="S" onClick="clearCIG()"><br>
<?= __("Valido per tutti i CIG") ?>
</div>
<div class="col form-group text-center">
<input type="radio" name="allCig" value="N" onClick="showCIG()"><br>
<?= __("Valido solo per alcuni CIG") ?>
</div>
</div>
<div class="collapse" id="cigContainer">
<table class="table table-striped">
<?
foreach($this->getLotti() AS $lotto) {
?>
<tr>
<td width="10"><input type="checkbox" name="CIG[]" value="<?= $lotto["cig"] ?>" class="cig-checkbox" id="<?= $lotto["cig"] ?>-checkbox"></td>
<td><strong><?= $lotto["cig"] ?></strong> - <?= $lotto["oggetto"] ?></td>
</tr>
<?
}
?>
</table>
</div>
</div>
<div class="text-right mb-2">
<button type="button" onClick="addDocument()" class="btn btn-info btn-sm">
<span class="fa fa-file"></span> <?= __("Aggiungi richiesta documento") ?>
</button>
</div>
<div id="documento-corpo">
</div>
<button class="btn btn-block btn-primary"><span class="fa fa-save"></span> <?= __("Salva") ?></button>
</form>
</div>
</div>
</div>
</div>
<? $id_doc = "#---id---#"; ?>
<div id="document-model" class="collapse">
<div class="mb-2 card card-body">
<div class="text-right">
<button class="btn btn-sm btn-danger" type="button" onClick="$(this).parent().parent().slideUp('fast',function(){ $(this).remove() });">
<span class="fa fa-times"></span>
</button>
</div>
<div class="form-group">
<label for="DOCUMENTO[<?= $id_doc ?>][codice_tipo_doc]"><?= __("Tipo documento") ?>*</label>
<select class="not-chosen form-control" title="<?= __("Tipo documento") ?>" name="DOCUMENTO[<?= $id_doc ?>][codice_tipo_doc]" id="DOCUMENTO-<?= $id_doc ?>-codice_tipo_doc" rel="S;0;0;A">
<option value=""></option>
<?
$tipologie = anac::getListeSIMOG("CodTipoDocType",$this->info["data_invio_simog"]);
foreach($tipologie AS $id_tipologia => $documento) { ?>
<option value="<?= $id_tipologia ?>"><?= $documento ?></option>
<? } ?>
</select>
</div>
<div class="form-group">
<label for="DOCUMENTO[<?= $id_doc ?>][descrizione_documento]"><?= __("descrizione") ?></label>
<input class="form-control" title="<?= __("descrizione") ?>" name="DOCUMENTO[<?= $id_doc ?>][descrizione_documento]" id="DOCUMENTO-<?= $id_doc ?>-descrizione_documento" rel="N;0;0;A">
<div class="alert alert-info p-1">
<small>
<?= __("Da inserire solo in caso di tipologia di documento non codificata") ?>
</small>
</div>
</div>
<div class="form-group">
<label for="DOCUMENTO[<?= $id_doc ?>][emettitore]"><?= __("Ente emettitore") ?>*</label>
<input class="form-control" title="<?= __("Ente emettitore") ?>" name="DOCUMENTO[<?= $id_doc ?>][emettitore]" id="DOCUMENTO-<?= $id_doc ?>-emettitore" rel="S;0;0;A">
</div>
<div class="row">
<div class="col-12 col-lg-3">
<div class="form-group">
<label for="DOCUMENTO[<?= $id_doc ?>][telefono]"><?= __("Telefono") ?>*</label>
<input class="form-control" title="<?= __("Telefono") ?>" name="DOCUMENTO[<?= $id_doc ?>][telefono]" id="DOCUMENTO-<?= $id_doc ?>-telefono" rel="S;0;0;A">
</div>
</div>
<div class="col-12 col-lg-3">
<div class="form-group">
<label for="DOCUMENTO[<?= $id_doc ?>][fax]"><?= __("Fax") ?>*</label>
<input class="form-control" title="<?= __("Fax") ?>" name="DOCUMENTO[<?= $id_doc ?>][fax]" id="DOCUMENTO-<?= $id_doc ?>-fax" rel="S;0;0;A">
</div>
</div>
<div class="col-12 col-lg-3">
<div class="form-group">
<label for="DOCUMENTO[<?= $id_doc ?>][mail]"><?= __("E-mail") ?>*</label>
<input class="form-control" title="<?= __("E-mail") ?>" name="DOCUMENTO[<?= $id_doc ?>][mail]" id="DOCUMENTO-<?= $id_doc ?>-mail" rel="S;0;0;E">
</div>
</div>
<div class="col-12 col-lg-3">
<div class="form-group">
<label for="DOCUMENTO[<?= $id_doc ?>][mail_pec]"><?= __("PEC") ?>*</label>
<input class="form-control" title="<?= __("PEC") ?>" name="DOCUMENTO[<?= $id_doc ?>][mail_pec]" id="DOCUMENTO-<?= $id_doc ?>-mail_pec" rel="S;0;0;E">
</div>
</div>
</div>
</div>
</div>
<!-- Modal -->
<script>
var id_documento = 0;
function addDocument(documento) {
id_documento++;
if (typeof documento === "undefined") {
documento = [];
documento["codice_tipo_doc"] = "";
documento["descrizione_documento"] = "";
documento["emettitore"] = "";
documento["telefono"] = "";
documento["fax"] = "";
documento["mail"] = "";
documento["mail_pec"] = "";
}
html = $("#document-model").html();
html = html.replaceAll("<?= $id_doc ?>",id_documento);
$("#documento-corpo").append(html);
$("#DOCUMENTO-"+id_documento+"-codice_tipo_doc").val(documento["codice_tipo_doc"]);
$("#DOCUMENTO-"+id_documento+"-descrizione_documento").val(documento["descrizione_documento"]);
$("#DOCUMENTO-"+id_documento+"-emettitore").val(documento["emettitore"]);
$("#DOCUMENTO-"+id_documento+"-telefono").val(documento["telefono"]);
$("#DOCUMENTO-"+id_documento+"-fax").val(documento["fax"]);
$("#DOCUMENTO-"+id_documento+"-mail").val(documento["mail"]);
$("#DOCUMENTO-"+id_documento+"-mail_pec").val(documento["mail_pec"]);
}
function editRequisito(id) {
id_documento = 0;
values = [];
values["codice_dettaglio"] = "";
values["descrizione"] = "";
values["valore"] = "";
values["flag_esclusione"] = "";
values["flag_comprova_offerta"] = "";
values["flag_avvalimento"] = "";
values["flag_bando_tipo"] = "";
values["flag_riservatezza"] = "";
values["DOCUMENTO"] = [];
values["CIG"] = [];
$(".criterio-titles").hide();
$("#criterio-select").show();
if (id != 0) {
element = $('#'+id);
json = atob(element.val());
values = JSON.parse(json);
$("#codice_dettaglio").attr("disabled","disabled").trigger("chosen:updated");
clearCIG();
if (typeof values["CIG"] !== "undefined") {
$.each( values["CIG"], function( key, value ) {
$("#"+value+"-checkbox").prop('checked',true);
});
showCIG();
}
if (typeof values["DOCUMENTO"] !== "undefined") {
$.each( values["DOCUMENTO"], function( key, value ) {
addDocument(value);
});
showCIG();
}
$('#option-'+values["codice_dettaglio"]).show();
$("#criterio-select").hide();
} else {
clearCIG();
$("#codice_dettaglio").removeAttr("disabled").trigger("chosen:updated");
}
<?
$keys = array_keys($select);
foreach($keys AS $key) {
?>
$("#<?= $key ?>").val(values["<?= $key ?>"]).trigger("chosen:updated");
<?
}
?>
$("#codice_dettaglio").val(values["codice_dettaglio"]).trigger("chosen:updated");
$("#hidden_codice_dettaglio").val(values["codice_dettaglio"]);
checkdescrizione();
$("#descrizione").val(values["descrizione"]);
$("#VALORE").val(values["valore"]);
$("#modal-requisito").modal('show');
}
function checkdescrizione() {
check = ["36","37","38","39","40","41","58"];
if ($.inArray($("#codice_dettaglio").val(), check) >= 0) {
$("#div_descrizione").slideDown();
$("#descrizione").removeAttr("disabled");
} else {
$("#div_descrizione").slideUp();
$("#descrizione").attr("disabled","disabled");
}
}
function clearCIG() {
$("#cigContainer").slideUp();
$('.cig-checkbox').prop("checked",false);
}
function showCIG() {
$("#cigContainer").slideDown();
}
</script>
<?
} else {
?><script>$(":input").not(".ignore-lock").attr("disabled","disabled").trigger("chosen:updated");</script><?
}
} else {
?>
<div class="aler alert-danger p-5 text-center">
<span class="fa fa-exclamation-triangle fa-3x"></span><br>
<?= __("Errore configurazione"); ?>
</div>
<?
}
}
?>