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.
468 righe
17 KiB
468 righe
17 KiB
<? |
|
$configPath = substr(__DIR__,0,strpos(__DIR__,"/public_html"))."/config.php"; |
|
include_once($configPath); |
|
|
|
$error = true; |
|
|
|
if (!empty($_POST['codici_carrello']) && !empty($_SESSION["utente"]) && $_SESSION["utente"]->permission($radice) && $_SESSION["utente"]->permission("mercato")) { |
|
|
|
$error = false; |
|
|
|
// costruisco l'array che serve al file save di gare/save.php |
|
$codiceOe = $_POST['codice_oe']; |
|
$carrello = Market::ordine($_POST['codici_carrello']); |
|
|
|
// get somma totale dei prezzi dei prodotti ordinati |
|
$somma = 0; |
|
foreach ($carrello as $prodotto) { |
|
$somma += $prodotto['prezzo'] * $prodotto['quantita']; |
|
} |
|
|
|
// get Cpv dei prodotti |
|
$codici_prodotti = implode(',',pluck( 'codice_prodotto', $carrello)); |
|
|
|
$cpv = $pdo->go("SELECT cpv FROM r_cpv_prodotti WHERE codice_prodotto IN ( {$codici_prodotti} ) GROUP BY cpv" ) |
|
->fetchAll(PDO::FETCH_COLUMN) ?? []; |
|
|
|
if(!empty($cpv)){ |
|
|
|
$cpv_macro = intval(substr(trim($cpv[0], " -"), 0, 2)); |
|
$tipologia = 'F'; |
|
if($cpv_macro == 45){ |
|
$tipologia = 'L'; |
|
}elseif($cpv_macro > 45){ |
|
$tipologia = 'S'; |
|
} |
|
|
|
|
|
$paramsGara = [ |
|
"token" => tokenGen(), |
|
"marketplace" => true, |
|
"oggetto" => strip_tags($_POST['oggetto']), |
|
"extraInfo" => [ |
|
"normaRiferimento" => "2023-36", |
|
"importi" => [ |
|
"forniture" => $somma |
|
], |
|
"nuts" => $_POST['extraInfo']['nuts'], |
|
], |
|
"modalita" => $_POST['modalita'], |
|
"tipologia" => $tipologia, |
|
"procedura" => "mercato", |
|
"anno" => date("Y"), |
|
"codice_pec" => $_POST['codice_pec'], |
|
"codice_ente" => $_POST['codice_beneficiario'], |
|
"email_chiave" => $_SESSION['utente']->getInfo()['email'], |
|
"accordo_quadro" => "N", |
|
"cpv" => $cpv |
|
]; |
|
|
|
|
|
// se un solo campo dell'array è vuoto, blocca il salvataggio e mostra errore |
|
if(!emptyArrayMultidimensional($paramsGara)){ |
|
|
|
// CREA GARA |
|
$_POST = []; |
|
$paramsGara['codice'] = ""; |
|
$_POST = $paramsGara; |
|
|
|
$gara = include("{$beRoot}gare/save.php"); |
|
|
|
// controlla se la gara è stata creata |
|
if(!empty($gara['save']) && $gara['save'] == true){ |
|
|
|
$gara = $gara['gara']; |
|
// CREA LOTTO |
|
$paramsLotti = [ |
|
"token" => tokenGen(), |
|
"marketplace" => true, |
|
"codice" => "", |
|
"codice_gara" => $gara->info['codice'], |
|
"criterio" => "prezzo", |
|
"formato" => "assoluto", |
|
"oggetto" => __('Acquisto da Marketplace'), |
|
"descrizione" => $gara->info['oggetto'], |
|
"importoBase" => $somma, |
|
"importoManodopera" => "0.00", |
|
"oneriNoRibasso" => "0.00", |
|
"cpv" => "031", |
|
]; |
|
|
|
// manda tutti i parametri per il salvataggio a backend/gare/lotti/save |
|
$_POST = []; |
|
$_POST = $paramsLotti; |
|
$lotto = include_once("{$beRoot}gare/lotti/save.php"); |
|
|
|
// Controlla se lotto è stato creato |
|
if(!empty($lotto['save']) && $lotto['save'] == true){ |
|
|
|
$lotto = $lotto['codice']; |
|
// se la modalita è telematica |
|
if($paramsGara['modalita'] === 'telematica'){ |
|
|
|
// elabora la gara |
|
$paramasElaboraGara = [ |
|
"marketplace" => true, |
|
'token' => tokenGen(), |
|
"codice_gara" => $gara->info['codice'], |
|
"id" => "preventivo" |
|
]; |
|
|
|
// invia paramentri per elaborazione |
|
$_POST = []; |
|
$_POST = $paramasElaboraGara; |
|
$fase = include_once("{$beRoot}gare/elaborazione/inizializzaFase.php"); |
|
|
|
if(!empty($fase['save']) && $fase['save'] == true){ |
|
|
|
$fase = $fase['fase']; |
|
// aggiorna stato della gara |
|
$statoGara = $pdo->go("UPDATE b_gare SET stato = :stato WHERE codice = :codice", [':stato' => '10', ':codice' => $gara->info['codice']]); |
|
|
|
if($statoGara->rowCount() === 1){ |
|
|
|
$sql = "UPDATE b_gare_criteri_valutazione |
|
SET denominazione = :denominazione, |
|
descrizione = :descrizione, |
|
auto = :auto, |
|
tipologia = :tipologia |
|
WHERE codice_round = :codice_round"; |
|
|
|
$criterioValutazione = $pdo->go( $sql, |
|
[ |
|
":denominazione" => "Elenco Prezzi", |
|
":descrizione" => " ", |
|
":auto" => "I", |
|
":tipologia" => "E", |
|
":codice_round" => $codice_round |
|
]); |
|
|
|
|
|
if($criterioValutazione->rowCount() === 1){ |
|
|
|
// aggiungi elenco prezzi |
|
$criterioValutazione = $pdo->go("SELECT codice FROM b_gare_criteri_valutazione WHERE codice_round = :codice_round", [':codice_round' => $codice_round]) |
|
->fetch(PDO::FETCH_COLUMN); |
|
|
|
// aggiorna elenco prezzi del criterio di valutazione |
|
|
|
$input = []; |
|
|
|
$i = 1; |
|
foreach ($carrello as $key => $ordine) { |
|
$input["voce-i_{$i}"] = [ |
|
"codice" => "", |
|
"descrizione" => $ordine['denominazione'], |
|
"unita" => $ordine['um'], |
|
"tipo" => "corpo", |
|
"quantita" => $ordine['quantita'] |
|
]; |
|
$i++; |
|
} |
|
|
|
$paramsElencoPrezzi = [ |
|
"token" => tokenGen(), |
|
"marketplace" => true, |
|
"codice_criterio" => $criterioValutazione, |
|
"codice_gara" => $gara->info['codice'], |
|
"codice_round" => $codice_round, |
|
"input" => $input, |
|
]; |
|
|
|
|
|
|
|
$_POST = []; |
|
$_POST = $paramsElencoPrezzi; |
|
$elencoPrezzi = include_once("{$beRoot}gare/criteri/elencoPrezzi/save.php"); |
|
|
|
if(!empty($elencoPrezzi['save']) && $elencoPrezzi['save'] == true){ |
|
|
|
$paramsInvitati = [ |
|
"token" => tokenGen(), |
|
"marketplace" => true, |
|
"codice_gara" => $gara->info['codice'], |
|
"codice_lotto" => $lotto, |
|
"invitati" => json_encode([$codiceOe]) |
|
]; |
|
|
|
$_POST = []; |
|
$_POST = $paramsInvitati; |
|
$invitati = include_once("{$beRoot}gare/inviti/save.php"); |
|
|
|
if( empty($invitati['save']) && $invitati['save'] != true){ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.10 - <?= __('Errore Configurazione invitati di valutazione') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/gare/inviti/index.php?codice=<?= $gara->info['codice'] ?>&codice_round=<?= $codice_round ?>"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
|
|
// FINE CREAZIONE AFFIDAMENTO TELEMATICO |
|
|
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.9 - <?= __('Errore Configurazione Criterio di valutazione') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/gare/criteri/index.php?codice=<?= $gara->info['codice'] ?>&codice_round=<?= $codice_round ?>"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.8 - <?= __('Errore Configurazione Criterio di valutazione') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/gare/criteri/index.php?codice=<?= $gara->info['codice'] ?>&codice_round=<?= $codice_round ?>"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.7 - <?= __('Errore Aggiornamento Stato Gara') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/gare/elaborazione/index.php?codice=<?= $gara->info['codice'] ?>&codice_round=<?= $codice_round ?>"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.5 - <?= __('Errore Elaborazione Affidamento') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/gare/elaborazione/index.php?codice=<?= $gara->info['codice'] ?>&codice_round="; |
|
}); |
|
<? |
|
die(); |
|
} |
|
|
|
// configurare il criterio di valutazione |
|
|
|
}elseif($paramsGara['modalita'] == 'extra'){ |
|
|
|
// Se extra piattaforma Rendi il pannello semplificato |
|
$_POST = []; |
|
$paramsQuickPanel = [ |
|
'token' => tokenGen(), |
|
'marketplace' => true, |
|
'codice' => $gara->info['codice'], |
|
'quickPanel' => "S" |
|
]; |
|
$_POST = $paramsQuickPanel; |
|
$saveQuickPanel = include_once("{$beRoot}gare/setQuickPanel.php"); |
|
|
|
// se non ritorna true blocca è visualizza errore |
|
if(!empty($saveQuickPanel['save']) && $saveQuickPanel['save'] == true){ |
|
|
|
$oe = oeManager::getOE($codiceOe); |
|
|
|
// aggiungi partecipante |
|
$paramsPartecipante = [ |
|
"token" => tokenGen(), |
|
"marketplace" => true, |
|
"codice_gara" => $gara->info['codice'], |
|
"codice_round" => $gara->round['codice'], |
|
"codice_lotto" => $lotto, |
|
"codice_operatore" => $oe['codice'], |
|
"codice" => "", |
|
"stato" => $oe['stato_legale'], |
|
"codice_fiscale" => $oe['codice_fiscale_impresa'], |
|
"ragione_sociale" => $oe['ragione_sociale'], |
|
]; |
|
|
|
$_POST = []; |
|
$_POST = $paramsPartecipante; |
|
$partecipante = include("{$beRoot}gare/partecipanti/save.php"); |
|
|
|
if(!empty($partecipante['save']) && $partecipante['save'] == true ){ |
|
$partecipante = $partecipante['codice']; |
|
// Aggiungi aggiudicazione |
|
$paramsAggiudicazione = [ |
|
"token" => tokenGen(), |
|
"marketplace" => true, |
|
"codice" => $gara->info['codice'], |
|
"codice_round" => $gara->round['codice'], |
|
"codice_lotto" => $lotto, |
|
"importoAggiudicazione" => $somma, |
|
"extra" => [ |
|
"estremi_definitiva" => "" |
|
], |
|
"aggiudicatario" => [ |
|
"{$partecipante}" => "S" |
|
], |
|
"pubblicaPartecipanti" => "0" |
|
]; |
|
|
|
$_POST = []; |
|
$_POST = $paramsAggiudicazione; |
|
|
|
$aggiudicazione = include("{$beRoot}gare/definitiva/save.php"); |
|
|
|
// VERIFICARE ALl'aggiunta dell'aggiudicazione |
|
if(!empty($aggiudicazione['save']) && $aggiudicazione['save'] == true){ |
|
$aggiudicazione = $aggiudicazione['codice']; |
|
|
|
$values = null; |
|
$i = 0; |
|
foreach ( pluck( 'codice_prodotto', $carrello) as $key => $codice_prodotto) { |
|
if($i != 0){ |
|
$values .= ","; |
|
} |
|
$values .= " ( {$gara->info['codice']}, {$codice_prodotto}, {$_SESSION["utente"]->codice} ) "; |
|
$i++; |
|
} |
|
|
|
$error = true; |
|
|
|
if(!empty($values)){ |
|
$ris = $pdo->prepare("INSERT INTO r_gara_prodotto(codice_gara, codice_prodotto, utente_modifica) VALUES {$values}"); |
|
$ris->execute(); |
|
|
|
if($ris->rowCount() > 0){ |
|
$error = false; |
|
} |
|
} |
|
|
|
if($error){ |
|
?> |
|
swal({title:js_dict.error,html:"Err:0.10 - " + js_dict["error-generic"],type:"error"}); |
|
<? |
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.11 - <?= __('Errore Elaborazione Aggiudicazione') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/gare/definitiva/index.php?codice=<?= $gara->info['codice'] ?>&codice_round=<?= $gara->round['codice'] ?>"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({title:js_dict.error,html:"Err:0.12 - " + js_dict["error-generic"],type:"error"}); |
|
<? |
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.13 - <?= __('Errore Elaborazione Affidamento') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/gare/elaborazione/index.php?codice=<?= $gara->info['codice'] ?>&codice_round="; |
|
}); |
|
<? |
|
die(); |
|
} |
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.4 - <?= __('Errore Durante la Creazione Dell\'Affidamento') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/marketplace/index.php"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
|
|
|
|
// elimina i prodotti e rimandi l'untente al pannello configurazione gare |
|
$codiciCarrello = implode(',',pluck( 'codice',$carrello)); |
|
$ris = $pdo->go("DELETE FROM b_carrello WHERE codice IN ($codiciCarrello)"); |
|
|
|
if ($ris->rowCount() >= 1) { |
|
scriviLog("b_carrello","DELETE",$pdo->getSQL()); |
|
?> |
|
swal({title:js_dict["success-msg"],type:"success"}).then(function(){ |
|
window.location.href="/backend/gare/panel.php?codice=<?= $gara->info['codice'] ?>"; |
|
}); |
|
<? |
|
|
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:Err:0.3 - "<?= __('Errore creazione Lotto') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/marketplace/index.php"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
}else{ |
|
?> |
|
swal({ |
|
title:js_dict.attenzione, |
|
html:"Err:0.2 - <?= __('Errore creazione Affidamento') ?>", |
|
type:"warning" |
|
}) |
|
.then(function(){ |
|
window.location.href="/backend/marketplace/index.php"; |
|
}); |
|
<? |
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({title:js_dict.error,html:"Err:0.1 - " + js_dict["error-generic"],type:"error"}); |
|
<? |
|
die(); |
|
} |
|
|
|
}else{ |
|
?> |
|
swal({title:js_dict.error,html:"Err:0.0 - <?= __('Impossibile proseguire con l\'ordine, 1 o più prodotti non hanno nessuna categoria merceologica') ?>",type:"error"}); |
|
<? |
|
die(); |
|
} |
|
|
|
} |
|
|
|
if($error){ |
|
echo '<meta http-equiv="refresh" content="0;URL=/index.php">'; |
|
die(); |
|
} |
|
?>
|