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 - ", type:"warning" }) .then(function(){ window.location.href="/backend/gare/inviti/index.php?codice=info['codice'] ?>&codice_round="; }); swal({ title:js_dict.attenzione, html:"Err:0.9 - ", type:"warning" }) .then(function(){ window.location.href="/backend/gare/criteri/index.php?codice=info['codice'] ?>&codice_round="; }); swal({ title:js_dict.attenzione, html:"Err:0.8 - ", type:"warning" }) .then(function(){ window.location.href="/backend/gare/criteri/index.php?codice=info['codice'] ?>&codice_round="; }); swal({ title:js_dict.attenzione, html:"Err:0.7 - ", type:"warning" }) .then(function(){ window.location.href="/backend/gare/elaborazione/index.php?codice=info['codice'] ?>&codice_round="; }); swal({ title:js_dict.attenzione, html:"Err:0.5 - ", type:"warning" }) .then(function(){ window.location.href="/backend/gare/elaborazione/index.php?codice=info['codice'] ?>&codice_round="; }); 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"}); swal({ title:js_dict.attenzione, html:"Err:0.11 - ", type:"warning" }) .then(function(){ window.location.href="/backend/gare/definitiva/index.php?codice=info['codice'] ?>&codice_round=round['codice'] ?>"; }); swal({title:js_dict.error,html:"Err:0.12 - " + js_dict["error-generic"],type:"error"}); swal({ title:js_dict.attenzione, html:"Err:0.13 - ", type:"warning" }) .then(function(){ window.location.href="/backend/gare/elaborazione/index.php?codice=info['codice'] ?>&codice_round="; }); swal({ title:js_dict.attenzione, html:"Err:0.4 - ", type:"warning" }) .then(function(){ window.location.href="/backend/marketplace/index.php"; }); 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=info['codice'] ?>"; }); swal({ title:js_dict.attenzione, html:Err:0.3 - "", type:"warning" }) .then(function(){ window.location.href="/backend/marketplace/index.php"; }); swal({ title:js_dict.attenzione, html:"Err:0.2 - ", type:"warning" }) .then(function(){ window.location.href="/backend/marketplace/index.php"; }); swal({title:js_dict.error,html:"Err:0.1 - " + js_dict["error-generic"],type:"error"}); swal({title:js_dict.error,html:"Err:0.0 - ",type:"error"}); '; die(); } ?>