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.
 
 
 
 
 

682 righe
35 KiB

<?
$error = true;
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php";
include_once($configPath);
if (isset($_SESSION["utente"]) && $_SESSION["utente"]->gerarchia < 100) {
$oe = oeManager::getOE($_GET["codice"]);
if (!empty($oe)) {
$utente = oeManager::getUser($oe["codice"]);
if (!empty($utente)) {
$error = false;
$codice_ente = 0;
if (isset($_SESSION["ente"])) { $codice_ente = $_SESSION["ente"]->codice; }
$forms = oeManager::getStandardForms($oe["tipo"],$codice_ente);
$cpvs = oeManager::getCpvs($oe["codice"]);
$validate = oeManager::validateUpdate(["oe"=>$oe,"user"=>$utente,"cpv"=>$cpvs]);
$permesso_archivio = $_SESSION["utente"]->permission("archivio_documenti");
$status_archivio = $permesso_archivio && oeManager::hasAnyArchiveDocument($oe);
$status_generali = $status_cpv = "fa fa-exclamation-triangle text-danger";
if ($validate === true || (is_array($validate) && ($validate) && $validate[0] == "cpv")) {
$status_generali = "fa fa-check-circle text-success";
}
if (!empty($cpvs) === true) {
$status_cpv = "fa fa-check-circle text-success";
}
$showComunicazioni = ($_SESSION["utente"]->isSupporto() || $_SESSION["utente"]->fromHere() || $_SESSION["utente"]->gerarchia === "1");
$activeTab = $_COOKIE["selectedCardTab{$oe["codice"]}"] ?? "generali-tab";
?>
<h1><?= $oe["ragione_sociale"] ?></h1>
<div class="row mb-3">
<div class="col-12 text-right">
<? if(isset($_SESSION["ente"]) && $_SESSION["ente"]->hasModulo("verifica-art-80")) {
echo Articolo80::printQuickRequestButton($oe["codice_fiscale_impresa"], ["button-title" => "Verifica Requisiti"]); ?>
<? } ?>
<a class="btn btn-sm btn-primary"
href="/backend/operatori_economici/partials/downloadPdf.php?token=<?= tokenGen() ?>&oe_codice=<?= $oe['codice'] ?>"
title="<?= __('Download PDF') ?>"
target="_blank">
<i class="far fa-file-alt mr-2"></i>
<?= __('Download PDF') ?>
</a>
</div>
</div>
<div class="card bg-light mb-3">
<div class="card-body">
<!-- Nav tabs -->
<ul class="nav nav-pills" id="tab-profilo-oe" role="tablist">
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "generali-tab") ? "active" : "" ?>" id="generali-tab" data-toggle="tab" href="#generali" role="tab" aria-controls="generali" aria-selected="true">
<span class="fa <?= $status_generali ?>"></span>
<?= __("Generali") ?>
</a>
</li>
<?php if($status_archivio): ?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "archivio-tab") ? "active" : "" ?>" id="archivio-tab" data-toggle="tab" href="#archivio" role="tab" aria-controls="archivio" aria-selected="false">
<span class="fa fa-archive "></span>
<?= __("Archivio documenti") ?>
</a>
</li>
<?php endif; ?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "cpv-tab") ? "active" : "" ?>" id="cpv-tab" data-toggle="tab" href="#cpv" role="tab" aria-controls="cpv" aria-selected="false">
<span class="fa <?= $status_cpv ?>"></span>
<?= __("Categorie CPV") ?>
</a>
</li>
<?
$formsObjects = [];
if (!empty($forms)) {
foreach($forms AS $form) {
$form = FormManager::getInfoFromID($form,$codice_ente);
if (!empty($form)) {
$formManager = new FormManager;
$formManager->init($form["codice"],"oe",$oe["codice"]);
$validation = $formManager->validateData();
$status = "fa fa-exclamation-triangle text-danger";
if (is_array($validation) && empty($validation)) {
$valuesForm = $formManager->getValues();
$warningForm = !FormManager::existValues($valuesForm);
if ($warningForm) {
$status = "fa fa-check-circle text-warning";
} else {
$status = "fa fa-check-circle text-success";
}
}
$formsObjects[$form["codice"]] = ["info"=>$form,"manager"=>$formManager,"validation"=>$validation];
unset($formManager);
$titolo = json_decode($form["titolo"],true);
$titolo = $titolo[$_SESSION["language"]];
?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "form-{$form["codice"]}-tab") ? "active" : "" ?>" id="form-<?= $form["codice"] ?>-tab" data-toggle="tab" href="#form-<?= $form["codice"] ?>" role="tab" aria-controls="form-<?= $form["codice"] ?>" aria-selected="false">
<span class="<?= $status ?>"></span>
<?= $titolo ?>
</a>
</li>
<?
}
}
}
if ($oe["tipo"] == "IMP") {
$form = FormManager::getInfoFromID("soa",$codice_ente);
$status_soa = "fa fa-exclamation-triangle text-danger";
if (!empty($form)) {
$soaManager = new FormManager;
$soaManager->init($form["codice"],"oe",$oe["codice"]);
$validationSoa = $soaManager->validateData();
if (is_array($validationSoa) && empty($validationSoa)) {
$valuesSOA = $soaManager->getValues();
$warningSOA = !FormManager::existValues($valuesSOA);
if ($warningSOA) {
$status_soa = "fa fa-check-circle text-warning";
} else {
$status_soa = "fa fa-check-circle text-success";
}
}
}
?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "soa-tab") ? "active" : "" ?>" id="soa-tab" data-toggle="tab" href="#soa" role="tab" aria-controls="soa" aria-selected="false">
<span class="<?= $status_soa ?>"></span>
<?= __("Attestazioni SOA e Fatturati") ?>
</a>
</li>
<?
} else {
$serviziTecnici = oeManager::getServiziTecnici($oe["codice"]);
?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "servizi-tecnici-tab") ? "active" : "" ?>" id="servizi-tecnici-tab" data-toggle="tab" href="#servizi-tecnici" role="tab" aria-controls="servizi-tecnici" aria-selected="false">
<span class="fa fa-check-circle text-<?= (!empty($serviziTecnici)) ? "success" : "warning" ?>"></span>
<?= __("Servizi tecnici") ?>
</a>
</li>
<?
}
if (isset($_SESSION["ente"]) && $_SESSION["ente"]->hasModulo("vendor-rating")) {
?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "vendor-rating-tab") ? "active" : "" ?>" id="vendor-rating-tab" data-toggle="tab" href="#vendor-rating" role="tab" aria-controls="vendor-rating" aria-selected="false">
<span class="fa fa-star-half-alt"></span> <?= __("Rating") ?>
</a>
</li>
<?
if (settingsManager::getValue("premialitaOEVR-positivo") == "S") {
?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "premialita-tab") ? "active" : "" ?>" id="premialita-tab" data-toggle="tab" href="#premialita" role="tab" aria-controls="premialita" aria-selected="false">
<span class="fa fa-trophy"></span> <?= __("Premialità") ?>
</a>
</li>
<?
}
}
if ($showComunicazioni) { ?>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "comunicazioni-oe-tab") ? "active" : "" ?>" id="comunicazioni-oe-tab" data-toggle="tab" href="#comunicazioni-oe" role="tab" aria-controls="comunicazioni-oe" aria-selected="false">
<span class="fa fa-envelope"></span> <?= __("Comunicazioni") ?>
</a>
</li>
<li class="nav-item">
<a class="nav-link <?= ($activeTab == "storico-oe-tab") ? "active" : "" ?>" id="storico-oe-tab" data-toggle="tab" href="#storico-oe" role="tab" aria-controls="comunicazioni-oe" aria-selected="false">
<span class="fa fa-history"></span> <?= __("Storico") ?>
</a>
</li>
<? }
?>
</ul>
</div>
</div>
<div class="card mb-3">
<div class="card-body">
<div class="tab-content">
<?php if($status_archivio): ?>
<div class="tab-pane <?= ($activeTab == "archivio-tab") ? "active" : "" ?>" id="archivio" role="tabpanel" aria-labelledby="archivio-tab">
<?php require("./partials/archivioDocumenti.php") ?>
</div>
<?php endif; ?>
<div class="tab-pane <?= ($activeTab == "generali-tab") ? "active" : "" ?>" id="generali" role="tabpanel" aria-labelledby="generali-tab">
<div class="card mb-3">
<div class="card-header">
<h3 class="mb-0 font-weight-bold"><?= __("Dati generali") ?></h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-lg-12">
<div class="form-group">
<label class="value-label" for="oe[ragione_sociale]"><?= __("Denominazione") ?></label>
<?= $oe["ragione_sociale"] ?>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4">
<div class="form-group">
<label class="value-label" for="oe[stato]">
<?= __("stato") ?>
</label>
<?= $oe["stato_legale"] ?>
</div>
</div>
<div class="col-lg-4">
<div class="form-group">
<label class="value-label" for="oe[codice_fiscale_impresa]"><?= __("Codice Fiscale impresa") ?></label>
<?= $oe["codice_fiscale_impresa"] ?>
</div>
</div>
<div class="col-lg-4">
<div class="form-group">
<label class="value-label" for="oe[partita_iva]"><?= __("Partita IVA") ?></label>
<?= $oe["partita_iva"] ?>
</div>
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-body">
<div class="row">
<div class="col-lg-6">
<div class="form-group">
<label class="value-label" for="oe[pec]"><?= __("Indirizzo PEC") ?> *</label>
<?= $oe["pec"] ?>
</div>
</div>
<div class="col-12 col-lg-6">
<div class="form-group">
<label class="value-label" for="email"><?= __("Indirizzo e-mail") ?></label>
<?= $utente["email"] ?>
</div>
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h3 class="mb-0 font-weight-bold"><?= __("Anagrafica") ?></h3>
</div>
<div class="card-body">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<label class="value-label" for="cognome"><?= __("Cognome") ?></label>
<?= $utente["cognome"] ?>
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label class="value-label" for="nome"><?= __("Nome") ?></label>
<?= $utente["nome"] ?>
</div>
</div>
<div class="col-sm-4">
<div class="form-group">
<label class="value-label" for="cf"><?= __("codice Fiscale") ?></label>
<?= $utente["cf"] ?>
</div>
</div>
</div>
</div>
</div>
<div class="card mb-3">
<div class="card-header">
<h3 class="mb-0 font-weight-bold"><?= __("Residenza") ?></h3>
</div>
<div class="card-body">
<div class="form-group">
<label class="value-label" for="indirizzo"><?= __("Indirizzo") ?></label>
<?= $utente["indirizzo"] ?>
</div>
<div class="row">
<div class="col-sm-8">
<div class="form-group">
<label class="value-label" for="citta"><?= __("Citta") ?></label>
<?= $utente["citta"] ?>
</div>
</div>
<div class="form-group col-sm-2">
<label class="value-label" for="provincia"><?= __("Provincia") ?></label>
<?= $utente["provincia"] ?>
</div>
<div class="form-group col-sm-2">
<label class="value-label" for="cap"><?= __("CAP") ?></label>
<?= $utente["cap"] ?>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label class="value-label" for="telefono"><?= __("Telefono") ?></label>
<?= $utente["telefono"] ?>
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label class="value-label" for="cellulare"><?= __("Cellulare") ?></label>
<?= $utente["cellulare"] ?>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane <?= ($activeTab == "cpv-tab") ? "active" : "" ?>" id="cpv" role="tabpanel" aria-labelledby="cpv-tab">
<div class="card mb-3">
<div class="card-header">
<h3 class="mb-0 font-weight-bold"><?= __("Categorie CPV") ?></h3>
</div>
<div class="card-body">
<?
cpvManager::printList($cpvs);
?>
</div>
</div>
</div>
<?
foreach($formsObjects AS $formID => $formInfo) {
?>
<div class="tab-pane <?= ($activeTab == "form-{$formID}-tab") ? "active" : "" ?>" id="form-<?= $formID ?>" role="tabpanel" aria-labelledby="form-<?= $formID ?>-tab">
<?
$formInfo["manager"]->printForm(false);
?>
</div>
<?
}
if (!empty($soaManager)) {
$categorie = getCategorieSOA();
$classifiche = getClassificheSOA();
$years = [];
for($i = 5;$i>0;$i--) {
$years[] = (int)date("Y") - $i;
}
?>
<div class="tab-pane <?= ($activeTab == "soa-tab") ? "active" : "" ?>" id="soa" role="tabpanel" aria-labelledby="soa-tab">
<?
$soaManager->printForm(false);
$soa = oeManager::getSOA($oe["codice"]);
if (!empty($soa)) {
?>
<div>
<div class="card">
<div class="card-header">
<h3 class="card-title m-0"><?= __("Categorie") ?></h3>
</div>
<div class="card-body p-0">
<table class="table table-striped table-hover">
<thead>
<tr>
<th><?= __("Categoria") ?></th>
<th><?= __("Classifica") ?></th>
</tr>
</thead>
<tbody id="body-categorie-soa">
<?
foreach($soa AS $id => $categoria) {
$elemento = $categorie[$categoria["codice_categoria"]];
$classifica = $classifiche[$categoria["codice_classifica"]];
?>
<tr>
<td width="70%">
<?= $elemento["id"] ?> - <?= $elemento["descrizione"] ?>
</td>
<td>
<?= $classifica["id"] ?> <?= $classifica["descrizione"] ?>
</td>
</tr>
<?
}
?>
</tbody>
</table>
</div>
</div>
</div>
<? } ?>
<?
$fatturatoSoa = oeManager::getFatturatiSOA($oe["codice"]);
if (!empty($fatturatoSoa)) { ?>
<div>
<div class="card mt-2">
<div class="card-header">
<h3 class="card-title m-0"><?= __("Fatturati") ?></h3>
</div>
<div id="body-fatturato-soa" class="card-body">
<?
if (!empty($fatturatoSoa)) {
foreach($fatturatoSoa AS $codice_categoria => $fatturati) {
$elemento = $categorie[$codice_categoria];
?>
<div class="card card-body mb-1">
<div class="form-group">
<?= $elemento["descrizione"] ?>
</div>
<div class="d-flex">
<?
foreach($years AS $anno) {
?>
<div class="flex-fill px-2 text-center form-group">
<label class="value-label"><?= $anno ?></label>
<?= (!empty($fatturati[$anno])) ? number_format($fatturati[$anno],2,",",".") : "n.d." ?>
</div>
<?
}
?>
</div>
</div>
<?
}
}
?>
</div>
</div>
</div>
<?
}
?>
</div>
<?
}
$serviziTecnici = oeManager::getServiziTecnici($oe["codice"]);
$categorieST = getCategorieServiziTecnici(); ?>
<div class="tab-pane <?= ($activeTab == "servizi-tecnici-tab") ? "active" : "" ?>" id="servizi-tecnici" role="tabpanel" aria-labelledby="servizi-tecnici-tab">
<div class="card">
<div class="card-header">
<h3 class="card-title m-0"><?= __("Servizi Tecnici") ?></h3>
</div>
<div class="card-body" id="body-servizi-tecnici">
<?
if (!empty($serviziTecnici)) {
foreach($serviziTecnici AS $id => $servizio) {
?>
<div class="card card-body mb-1">
<div class="row">
<div class="col-12 col-lg-9">
<div class="form-group">
<label class="value-label"><?= __("Committente") ?>*</label>
<?= $servizio["committente"] ?>
</div>
</div>
<div class="col-12 col-lg-3">
<div class="form-group">
<label class="value-label"><?= __("Atto") ?></label>
<?= $servizio["atto"] ?>
</div>
</div>
</div>
<div class="row">
<div class="col-12 col-lg-6">
<div class="form-group">
<label class="value-label"><?= __("Inizio servizio") ?>*</label>
<?= mysql2date($servizio["inizio"]) ?>
</div>
</div>
<div class="col-12 col-lg-6">
<div class="form-group">
<label class="value-label"><?= __("fine servizio") ?></label>
<?= mysql2date($servizio["fine"]) ?>
</div>
</div>
</div>
<div class="form-group">
<label class="value-label"><?= __("Descrizione") ?>*</label>
<?= $servizio["descrizione"] ?>
</div>
<div class="row">
<div class="bg-light col-7"><?= __("Categoria") ?></div>
<div class="bg-light col-3"><?= __("Importo del servizio/lavoro") ?></div>
<div class="bg-light col-2"><?= __("Percentuale di partecipazione") ?></div>
</div>
<div id="servizi-inclusi-<?= $id ?>">
<?
$first = true;
foreach($servizio["servizi"] AS $categoriaServizio) {
?>
<div class="card card-body p-2 m-0 mb-1">
<div class="row">
<div class="form-group mb-0 col-lg-7">
<?
$elemento = $categorieST[$categoriaServizio["codice_categoria"]];
echo $elemento["id"] . " - " . $elemento["descrizione"];
?>
</div>
<div class="form-group mb-0 col-lg-3">
<?= number_format($categoriaServizio["importo"],2,",",".") ?>
</div>
<div class="form-group mb-0 col-lg-2">
<?= $categoriaServizio["percentuale"] ?>%
</div>
</div>
</div>
<?
}
?>
</div>
</div>
<?
}
}
?>
</div>
</div>
</div>
<? if (isset($_SESSION["ente"]) && $_SESSION["ente"]->hasModulo("vendor-rating")) { ?>
<div class="tab-pane <?= ($activeTab == "vendor-rating-tab") ? "active" : "" ?>" id="vendor-rating" role="tabpanel" aria-labelledby="vendor-rating-tab">
<div class="card">
<div class="card-header">
<h3 class="card-title m-0"><?= __("Vendor rating") ?></h3>
</div>
<div class="card-body" id="body-vendor-rating">
<?
vendorRating::printReport($oe["codice"]);
if ($_SESSION["utente"]->permission("vendor-rating-request")) {
?>
<button class="btn btn-block btn-warning" type="button" onClick="showModalWithURL('/backend/vendor-rating/request/form.php?codice_operatore=<?= $oe["codice"] ?>')">
<span class="far fa-star"></span> <?= __("Richiedi valutazione") ?>
</button>
<?
}
?>
</div>
</div>
</div>
<? if (settingsManager::getValue("premialitaOEVR-positivo") == "S") { ?>
<div class="tab-pane <?= ($activeTab == "premialita-tab") ? "active" : "" ?>" id="premialita" role="tabpanel" aria-labelledby="premialita-tab">
<div class="card">
<div class="card-header">
<h3 class="card-title m-0"><?= __("Premialità") ?></h3>
</div>
<div class="card-body p-0" id="body-premialita">
<?
$premialita = vendorRating::getPremialita($oe["codice"],null,true);
$oggettoGara = $pdo->prepare("SELECT oggetto FROM b_gare WHERE codice = :codice");
if (!empty($premialita)) {
?>
<table class="m-0 table table-striped table-hover">
<thead>
<tr>
<th><?= __("Oggetto") ?></th>
<th width="150"><?= __("Data e ora") ?></th>
<th width="150"><?= __("Utente") ?></th>
</tr>
</thead>
<tbody>
<?
foreach($premialita AS $gara) {
$oggettoGara->execute([":codice"=>$gara["codice_gara"]]);
$oggetto = $oggettoGara->fetch(PDO::FETCH_COLUMN) ?? "N.D.";
$user = Utente::getInfoFromID($gara["utente_modifica"]);
?>
<tr>
<td><?= $oggetto ?></td>
<td><?= mysql2datetime($gara["timestamp"]) ?></td>
<td><?= $user["cognome"] . " " . $user["nome"] ?></td>
</tr>
<?
}
?>
</tbody>
</table>
<?
} else {
alertManager::printInfoBox(__("Nessun risultato"));
}
?>
</div>
</div>
</div>
<? } ?>
<? } ?>
<? if ($showComunicazioni) { ?>
<div class="tab-pane <?= ($activeTab == "comunicazioni-oe-tab") ? "active" : "" ?>" id="comunicazioni-oe" role="tabpanel" aria-labelledby="comunicazioni-oe-tab">
<div class="card">
<div class="card-header">
<h3 class="card-title m-0"><?= __("Comunicazioni") ?></h3>
</div>
<div class="card-body" id="body-comunicazioni-oe">
<?
$comunicazioni = Communicator::listMessageOE($oe["codice"],false,[],[],0,1);
if (!empty($comunicazioni)) {
?>
<div class="card card-body">
<div class="table-responsive">
<table class="table table-striped table-hover tab-data" width="100%" id="table-msg-oe">
<thead>
<tr>
<th><?= __("Oggetto") ?></th>
<th width="150"><?= __("Sezione") ?></th>
<th width="150"><?= __("Timestamp") ?></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script>
var tableComunicazioniOE = $("#table-msg-oe").DataTable({
"processing": true,
"serverSide": true,
"language": {
"url": "/dictionary/datatables/<?= $_SESSION["language"] ?>.lang"
},
"ajax": {
"url": "/comunicazioni/table-list.php",
"data": function (d) {
d.codice_operatore = "<?= $oe["codice"] ?>"
}
},
"order": [2,"desc"],
"lengthMenu": [[10, 25, 50, -1], [10, 25, 50, '<?= __("tutti") ?>']],
"columns": [
null,
{ "orderable": false },
null
]
});
</script>
</div>
</div>
<?
} else {
alertManager::printWarningBox(__("Nessun risultato"));
}
?>
</div>
</div>
</div>
<div class="tab-pane <?= ($activeTab == "storico-oe-tab") ? "active" : "" ?>" id="storico-oe" role="tabpanel" aria-labelledby="storico-oe-tab">
<div class="card">
<div class="card-header">
<h3 class="card-title m-0"><?= __("Storico") ?></h3>
</div>
<div class="card-body" id="body-storico-oe">
<?
if (!empty($_SESSION["ente"]->moduli)) {
$moduli = $_SESSION["ente"]->moduli;
$__listHistory = true;
foreach($moduli AS $modulo => $infoModulo) {
$path = "{$beRoot}/{$modulo}/_historyOE.php";
if (file_exists($path)) {
$codice_oe = $oe["codice"];
$results = include($path);
if (!empty($results["totale"])) {
?>
<button class="my-2 btn btn-block btn-primary text-left btn-lg" onclick="showModalWithURL('/backend/operatori_economici/history.php?modulo=<?= $modulo ?>&codice=<?= $oe["codice"] ?>')">
<span class="<?= $infoModulo["icon"] ?>"></span> <?= __($infoModulo["titolo"]) ?>
<span class="badge badge-danger float-right"><?= $results["totale"] ?></span>
</button>
<?
}
}
}
}
?>
</div>
</div>
</div>
<? } ?>
</div>
</div>
</div>
<script>
function writeTabCookie(tab) {
document.cookie = "selectedCardTab<?= $oe["codice"] ?>=" + tab + "; path=/";
}
$('#tab-profilo-oe').find(".nav-link",).click(function() {
writeTabCookie($(this).attr('id'));
});
</script>
<?
}
}
}
if ($error) {
header('HTTP/1.0 403 Forbidden');
die();
}
?>