Software AVCP Web

Software Open Source Php per la generazione dei dataset xml per gli adempimenti previsti dalla legge 190/2012.

(Ultimo aggiornamento al 28/12/2015)

Scarica

Il Software è fornito “as-is” (così com’è). Impegni di lavoro non mi consentono di apportare ulteriori modifiche, ognuno può sentirsi libero di utilizzarlo come previsto dalla licenza AGPLv3. Ringrazio chi ha contribuito attivamente.

Per facilitare la pubblicazione dei dati ai sensi dell’art. 1 comma 32 Legge n. 190/2012 Autorita per la Vigilanza sui Contratti Pubblici, nell’ambito delle disposizioni per la prevenzione e la repressione della corruzione e dell’illegalità nella PA, ho realizzato un software web-oriented in Php su base dati MySQL.

I requisiti per l’installazione del software sono i seguenti:

  • Server Web Apache
  • PHP dalla versione 5.2 in poi con moduli json e libxml
  • MySQL dalla versione 5 in poi

Alternativamente è possibile creare un ambiente web su una postazione di lavoro tradizionale con WampServer o simili.

Funzionalità del software:

  • Gare
    • Registrazione in lotti (CIG, Oggetto, Proponente, Contraente, Inizio, Ultimazione, Importo, Importo Liquidato)
    • Elenco per modifica lotto(gara) o modifica partecipanti/aggiudicatari
  • XML
    • Creazione dataset anno di competenza
    • Creazione dataset indice
  • Setup
    • Modifica dati proponente (per personalizzare la struttura proponente)
    • Inserimento/Modifica/Cancellazione Partecipanti
    • Inserimento/Modifica/Cancellazione Proponenti
    • Inserimento/Modifica/Cancellazione Utenti

 Nota: L’inserimento dei partecipanti è contestuale alla registrazione dei partecipanti alla gara(lotto). Si può scegliere il partecipante da un elenco a discesa oppure (senza selezionare dall’elenco) compilando sia ragione sociale che codice fiscale la ditta partecipante viene aggiunta automaticamente sia al database sia al lotto.

Per impostare la ditta aggiudicataria basta fare click sul pulsante “Aggiudica” che compare nell’elenco delle ditte partecipanti. Per selezionare un raggruppamento come aggiudicatario il pulsante aggiudica viene proposto solo sul capogruppo. In qualsiasi momento è possibile resettare l’aggiudicazione facendo click sul pulsante “reset” che compare solo in corrispondenza della ditta aggiudicataria.

Il processo di creazione dei dataset è conforme alle specifiche tecniche descritte nell’allegato alla legge, reperibile sul sito dell’AVCP (http://www.avcp.it/portal/rest/jcr/repository/collaboration/Digital%20Assets/pdf/AllCom27.05.13SpecificeTecnichev1.0.pdf). I dataset creati sono disponibili nella cartella dell’applicazione o scaricabili dal link proposto dopo la generazione. In caso di errori compare un elenco di errori che si possono verificare aprendo il file xml creato nella cartella.

Il software è liberamente utilizzabile in licenza AGPLv3. Per l’installazione seguire le istruzioni contenute nel file INSTALL.TXT contenuto nel pacchetto avcpweb.

Avcp-Home

Avcp-Gare

Avcp-NuovoRagg

schema

Questo lo schema del DB

Al momento della generazione del dataset annuale è possibile scegliere da un elenco a discesa l’anno da considerare. Si possono generare N dataset a seconda dell’anno di competenza delle gare registrate. La generazione del dataset indice considera gli anni di competenza delle gare, quindi è necessario verificare di aver generato tutti i dataset per ogni anno di competenza.

Una volta generati, i dataset, si possono salvare ed inviare ai tecnici preposti alla pubblicazione nell’area predisposta del portale aziendale.

Scarica avcpweb-2.21

Rev. 2.21 – 28-12-2015

  • header.php,
    index.php,
    class\utenti.php Aggiunto menu per cambio password utente
  • class\gare.php Modificato layout visualizzazione gare, aggiunto filtro per anno.
  • class\xmlfun.php Modificato criterio di scelta dei lotti da includere nel dataset annuale, rimosso blocco sulla mancanza di partecipanti.
    linea 260 ( (`l`.`anno` ={$anno}) or Anno in estrazione
    linea 261 (`l`.`anno`<={$anno} and `l`.`dataUltimazione`=’0000-00-00′) or Lotti ancora aperti
    linea 262 (year(`l`.`dataUltimazione`)={$anno}) ) Lotti con data Ultimazione lavori nell’anno in estrazione

Rev. 2.20 – 16-11-2015
(Si ringrazia Massimo Volpicelli per il contributo)

  • class\gare.php Estesa visualizzazione a partecipanti ed importo liquidato
  • class\login.php Implementata multi-istanza includendo il path nella sessione
  • class\partecipanti.php Perfezionata visualizzazione
  • class\proponenti.php Perfezionata visualizzazione
  • class\utenti.php Perfezionata visualizzazione
  • css\* Perfezionata visualizzazione
  • header.php Verifica istanza di sessione

Rev. 2.19 – 10-07-2015

  • class\gare.php Aggiunto anno corrente per la creazione dei dataset e indice
    Linea 1290 sostituito confronto “<” con “<=”
  • class\xmlfun.php Aggiunto anno corrente per la creazione dei dataset e indice
    Linea 77 sostituito confronto “<” con “<=”
    Linea 426 sostituito confronto “<” con “<=”

315 thoughts on “Software AVCP Web

    • Bello anche il vostro. In effetti l’utilizzo della stessa libreria Bootstrap di Twitter e lo spirito di condivisione della conoscenza potrebbe far sembrare la mia soluzione un fork della vostra. Tuttavia sappiamo entrambi che si tratta di due soluzioni diverse per affrontare lo stesso problema.
      Cordiali saluti,
      Corrado.

        • fork/non fork…. ancora devo provarli tutti e due ma complimenti a gianni e a corrado… viva la gpl è così che dovrebbe funzionare la pa.. 8000 comuni = almeno …..1000 sviluppatori?!! qualche soldino si potrebbe risparmiare per investirlo in vera innovazione.

  1. perchè chiede di inserire un CIG di 10 cifre essendo composto da numeri e lettere?
    per il resto credo che sia ottimo
    ciao

    • Come definito nello schema XML il CIG è di tipo stringa di lunghezza massima 10.

      <xsd:simpleType name="CigType">
      		<xsd:restriction base="xsd:string">
      			<xsd:maxLength value="10"/>
      		</xsd:restriction>
      </xsd:simpleType>
      

      Effettivamente il pattern per l’input specificato nel form è pattern=’\d{10}’ andrebbe cambiato a pattern='[A-Za-z0-9]{10}’ nel file gare.php alla riga 808.

      • Ok, accetta anche i CIG alfanumerici
        grazie
        per il 2013 sarà questo programma ad essere usato dal comune di rosarno
        Ciao e molte grazie

  2. Ciao, bel lavoro.. si potrebbe far si che tutti i dati li possa importare da un csv ??

    altra cosa il campo del codice fiscale lo dovresti controllare al momento del inserimento altrimenti posso esserci problemi
    warning Errore 1839: Element ‘codiceFiscale’: [facet ‘pattern’] The value ‘afsdgfedgrtghrty’ is not accepted by the pattern ‘[0-9]{11,11}’. on line 30

    saluti
    maxx

    • Grazie,
      per quanto riguarda l’import da csv non è prevista l’implementazione per ora, chissà in futuro. Tuttavia se qualcuno ha intenzione di realizzarla è benvenuto, la diffusione in sorgente aperto serve anche a questo.
      Sto lavorando al form di registrazione partecipanti per un controllo di validità sul codicefiscale. A breve ci sarà un aggiornamento.

      • Ciao grazie x l’impegno e l’ottimo lavoro..
        Sono purtroppo fermo sul controllo:
        warning errore 1839: Element ‘codiceFiscaleProp’:[facet’pattern’] The value ‘CODICEFISCALE’ is not accepted by the pattern ‘[0-9](11,11)’ on line 19
        premetto che noi inseriamo la PARTITA IVA non il CODICE FISCALE
        Grazie1000!

        • Salve,
          va modificata l’azienda in Setup->Azienda->Modifica dati Azienda, inserendo i dati della propria azienda, per default sono impostati nello script SQL

          CREATE TABLE IF NOT EXISTS `proponente` (
          `idproponente` INT NOT NULL AUTO_INCREMENT ,
          `codiceFiscaleProp` VARCHAR(16) NULL COMMENT 'Codice fiscale della Stazione Appaltante responsabile del procedimento di scelta del contraente' ,
          `denominazione` VARCHAR(250) NULL COMMENT 'Denominazione della Stazione Appaltante responsabile del procedimento di scelta del contraente' ,
          `data_ins` DATE NULL ,
          `usr_ins` INT NULL ,
          `data_mod` DATE NULL ,
          `usr_mod` INT NULL ,
          PRIMARY KEY (`idproponente`) )

  3. Complimenti per il lavoro! In merito alle funzionalità del generatore di file xml, poichè la normativa prevede che “nel caso in cui la stazione appaltante, per una data annualità, non abbia alcun contratto da pubblicare ai sensi della normativa dovrà in ogni caso pubblicare all’indirizzo trasmesso all’Autorità un tracciato XML vuoto rispondente alle specifiche tecniche di cui all’allegato tecnico al Comunicato del Presidente AVCP del 22 maggio 2013” come è possibile produrre l’xml vuoto aderente alle specifiche tecniche?
    Infine. Ho cambiato username e password, ma non riesco più ad entrare nel pannello di controllo. Ho controllato sul database e le credenziali sono corrette.. cosa può essere successo?

    Buon Lavoro,

    Pietro

    • Grazie,
      il problema del cambio username e password si risolve modificando la classe utenti.php inserendo alla riga 356 la codifica della password.
      Vanno inserite anche le parentesi { } per la condizione if.

      if(!("X".$this->dati['password']=="X"))
      	$query.="password='{$this->dati['password']}',";
      

      con il codice seguente

      
      if(!("X".$this->dati['password']=="X")) {
      	$this->dati['password'] = hash("MD5",$this->dati['password']);
      	$query.="password='{$this->dati['password']}',";
      }
      
      

      Per correggere quello esistente basta codificare la password in chiaro con una query

      
      Update user SET password=MD5(password) WHERE username='nuovousername';
      
      

      Il resto nella prossima Release.

  4. Complimenti per il lavoro svolto e di come lo stai seguendo, rilasciando frequentemente aggiornamenti.
    Ho installato prima la 1.5 e poi la 1.6…riscontrando lo stesso problema (sicuramente colpa mia)…in fase di creazione e validazione del file XML.
    Inserisco tutti i dati, aggiudico la gara, etc…seleziono anno 2013 per la validazione
    Il file è pronto per la pubblicazione.
    http://www.xxx.it/avcpweb/avcp-2013.xml
    clicco su link generato e non mi trova il file

    Controllo e in effetti il file XML lo trovo generato ma si chiama ad esempio CY217J~Q.XML, C9KBXX~4.XML, etc…

    Dov’è che sbaglio?

    • Salve,
      il codice per la creazione del file lo trova nel file class/xmlfun.php dalla riga 95

      private function validaXML($anno) {

      $path=dirname(__FILE__);
      $filexml=$path."\..\avcp-".$anno.".xml";

      Probabilmente il demone apache non ha i diritti di scrittura nella cartella avcpweb,
      verifichi i diritti della cartella. Dal nome dei files sembrerebbe che si tratti di file temporanei creati da php.
      Provi a cancellare manualmente i file avcp-*.xml e rilanciare la procedura.
      Il software è stato provato su diversi provider e non si è mai, finora, verificato un evento simile.
      Mi faccia sapere.

  5. anche a me dava lo stesso errore con
    $filexml=$path.”\..\avcp-“.$anno.”.xml”;
    ho variato con
    $filexml=$path.”/../avcp-“.$anno.”.xml”;
    e funziona!!
    segnalo i seguenti problemi:
    non vi è alcuna differenza di privilegi tra un utente Amministratore ed uno Utente: fanno entrambi le stesse cose
    Quando si inseriscono più partecipanti in Gare, da Gestione non è possibile cancellarli (Azione X)
    In tutti i form la selezione Annulla non effettua nessuna azione ad es. chiusura della form o ritorno a home
    Da qualche parte ho letto AUSL Latina?
    Per il resto complimentissimi per l’ottimo lavoro
    Per il resto complimenti per l’ottimo lavoro

    • Giusta osservazione, per conservare la compatibilità sia con sistemi linux sia con sistemi win è corretto utilizzare lo slash / per separare i percorsi.
      Nella prossima release sarà utilizzato lo slash, inoltre sarà implementata la funzionalità Utente/Amministrazione limitatamente all’utilizzo della gestione degli utenti e dei dati dell’azienda.
      Per quanto riguarda i problemi rilevati sulla chiusura dei form e sull’azione X per cancellare i partecipanti consiglio di verificare il corretto caricamento degli javascript.
      AUSL Latina l’ha letto nel file avcp-2013.xml di prova 😉
      Grazie per i complimenti,
      Saluti.

  6. Ciao Corrado,
    purtroppo i problemi rilevati sulla chiusura dei form e sull’azione X per cancellare i partecipanti l’ho verificato su più pc e diversi browser. A questo proposito ti segnalo che con Explorer 8 è impossibile utilizzare il software.
    Come posso verificare il corretto caricamento dei javascript?
    Cordiali saluti e ancora grazie per la dsponibilità

    • Ciao Antonello,
      la corretta esecuzione di javascript dipende dal livello di protezione impostato nel browser. Con IE bisogna abilitarli in strumenti->opzioni->protezione, con Firefox in Strumenti->opzioni->contenuti, con Chrome sono sempre attivi a meno di una disabilitazione preventiva.
      Se ci sono errori di caricamento di javascript lo puoi verificare direttamente sulla barra degli indirizzi, in genere c’è un icona di colore rosso che indica problemi di caricamento della pagina.
      Talvolta anche antivirus e web-content-filter negano l’esecuzione di javascript. Il software è stato testato con Chrome Versione 31, IE 11, Firefox 25.0.1 senza presentare i problemi da te rilevati.
      Saluti,
      Corrado.

      • Chrome ver 31 tutto abilitato, Firefox 25 tutto abilitato … purtroppo non va. Potrebbe mancare qualche prerequisito in php.ini?

          • Questi sono i due messaggi di errore ricorrenti nel file di log

            PHP Notice: Use of undefined constant REMOTE_ADDR – assumed ‘REMOTE_ADDR’ in /home/u386272147/public_html/class/login.php on line 58

            PHP Notice: A session had already been started – ignoring session_start() in /home/u386272147/public_html/index.php on line 135

          • Purtroppo non sono errori bloccanti.
            Ti consiglio di spostare l’applicazione nella cartella avcpweb in modo da leggere public_html/avcpweb/…

  7. Ciao Corrado!
    lavoro in una scuola e, purtroppo, nonostante conoscenze informatiche molto limitate sto cercando di farmi carico di tutti gli adempimenti che ultimamente ci cadono addosso. Arrivo al dunque. Mi sono occupato di mettere in piedi il sito istituzionale della scuola utilizzando Joomla! su aruba, potresti dirmi se e come posso installare il tuo software utilizzando i servizi acquistati su aruba? grazie! Mario.

    • Ciao Mario,
      so cosa significa “farsi carico degli adempimenti” e ti capisco. E’ possibile installare il software copiando tutto il contenuto avcpweb in una cartella a tuo piacere che può restare anche avcpweb sullo spazio web di aruba. Per la configurazione del database, se ne hai uno solo può essere condiviso con quello joomla, in genere le tabelle di joomla hanno un prefisso e non vanno in conflitto con quelle di AVCPWeb. Basta modificare i dati di accesso al database modificando il file config.php.
      Se hai difficoltà scrivimi pure in privato via e-mail, sarò lieto di aiutarti.
      Saluti,
      Corrado.

  8. Corrado Innanzitutto complimenti per il programma, anche nella mia amministrazione abbiamo dovuto creare un programma adhoc (integrato in un nostro framework) e fa piacere vedere che anche altre persone hanno dovuto realizzare qualcosa di simile e spero che questa pagina possa creare una forma di discussione su questi temi….
    Spero di non andare OT ma vi pongo alcune domande non necessariamente tecniche…

    * i campi veramente obbligatori quali sono? ad esempio: l’oggetto che anche tu hai messo “required”, alcuni ad esempio non lo valorizzano…
    http://www.unimi.it/cataloghi/gare_appalto_contratti/dataset1.xml
    La questione tecnica sarebbe sul nillable=false (ma vuol dire che non deve essere null => non esclude che possa essere vuoto (?))

    * ma l’obbligo dell’avcp è riferito a qualsiasi acquisto che abbia connesso un CIG oppure solo a GARE?

    • Buongiorno Fabio,
      qualsiasi discussione inerente il software ed il suo ambito applicativo non è mai OT. Tutte le informazioni utili al miglioramento di uno strumento open-source non possono fare altro che migliorarne lo sviluppo dunque l’utilizzo.
      Per quanto riguarda l’obbligatorietà di alcuni campi mi sono attenuto alle specifiche dell’XML schema definition interpretando il nillable come un vincolo di non vuoto, per cui va valorizzato, per questo il required. Più informazioni si forniscono in merito allo specifico lotto e meglio è.
      In azienda noi stiamo pubblicando tutto ciò che prevede una negoziazione con più parti e che abbia un CIG. L’unico problema che ho rilevato nel sistema di pubblicazione è che quando si tratta di una gara con più lotti si è obbligati a ripetere l’inserimento delle informazioni della gara, oggetto, CIG, per ogni lotto di appartenenza. Questo però rientra nelle specifiche di progettazione dei dataset dell’AVCP alle quali non possiamo fare modifiche.

      Saluti,
      Corrado.

      • Grazie Corrado,
        mi trovi perfettamente daccordo sullo strumento open source. Spero di poter dare anch’io un contributo al tuo software (perchè non lo metti su github? se ti va possiamo sentirci per email).

        Per quanto riguarda il discorso tecnico del nillable=false a livello di validazione indica che quel campo deve essere !NULL, ma può essere benissimo “empty” (in quanto empty!=NULL), quindi non necessariamente required (in senso stretto). Qui c’è un esempio di come sarebbe dovuto essere…
        http://stackoverflow.com/questions/4408158/xsd-element-not-null-or-empty-constraint-for-xml
        Probabile che sia stata una svista dei tecnici dell’AVCP? o l’oggetto non è importante ai fini della descrizione del Lotto (?).
        Da quello che ho capito, infatti, alcune amministrazioni (immagino anche per velocizzare: estraendo le informazioni da database interni) si stanno attenendo strettamente ai vincoli tenici dei file di validazione. Tecnicamente nessuno può dire niente, ci sono stati dati degli xsd…..

        Per quanto riguarda il caso di gare con + lotti nella mia amministrazione abbiamo creato un livello ulteriore (una tabella gare “sopra” i lotti) dove vanno a finire le informazioni comuni ai lotti. La nostra esigenze è comunque giustificata dal fatto che utilizziamo la stessa procedura per la pubblicazione online dei bandi (allegati, faq…..), il tutto è integrato al nostro framework di gestione dei contenuti del portale (vogliamo cercare di evitare che gli amministrativi inseriscano le stesse identiche informazioni in un milione di posti)

        • Concordo sull’interpretazione tecnica del nillable, tuttavia ho ritenuto opportuno far compilare alcuni dati descrittivi dei lotti altrimenti mi sarei ritrovato un db con soli numeri. Si sà, se viene data un’opzione essa viene interpretata come dato inutile e superfluo per cui omessa, soprattutto conoscendo chi utilizzerà la procedura.
          Sull’importanza del lotto da parte dell’AVCP probabilmente possono accedere ai dati di dettaglio del lotto tramite il CIG.
          Sulla pubblicazione su github a dire il vero non ci avevo pensato, magari con calma, prima mi studio la piattaforma e poi pubblico il lavoro.
          Grazie per il consiglio.
          Saluti,
          Corrado.

  9. Ciao Corrado,
    innanzitutto devo premettere che hai fatto e stai continuando a fere un lavoro di inestimabile utilità per tutti noi che dobbiamo risolvere i problemi sugli adempimenti della 190.
    Ho un quesito tecnico.
    Sono su aruba con joomla fap, ho installato la tua applicazione ma ho un problema in fase di login:

    Warning: Cannot modify header information – headers already sent by (output started at /web/htdocs/www.ipss-motolese.it/home/avcpweb/index.php:166) in /web/htdocs/www.ipss-motolese.it/home/avcpweb/class/login.php on line 65

    Dopo un ulteriore refresh della pagina entro in admin.
    Come posso risolvere?
    Per modificare la password devo intervenire nel database, generarmi una password md5 e sostituirla alla tua (admin).
    Grazie in anticipo se avrai tempo per rispondermi.
    Tonio

  10. Ciao
    non ti faccio perdere tempo con le lodi, che sarebbero, comunque, sperticate.
    Un commento: spesso non ci è possibile decidere il nome del db. Secondo me dovresti rivedere lo script sql togliendo il nome del db.
    Grazie di tutto

    g.

    • Ciao,
      io sono pigro si, ma non ci vuole poi molto, con un editor di testo, a fare un Cerca “avcp.” e Sostituisci “tuoDB.” in un file sql.
      Tuttavia per quelli più pigri di me nella prossima release rimuovo il nome del DB dal file avcp.sql 😉

      Saluti

  11. Ciao, complimenti per l’utilissimo programma….
    vorrei chiederti se ritieni si possa migliorare la funzione di modifica della gara, riprendendo anche i dati “Proponente” e “Contraente” già salvati precedentemente. Grazie
    Vivissimi auguri di buon anno!

    • Salve,
      cosa intendi precisamente con

      riprendendo anche i dati “Proponente” e “Contraente” già salvati precedentemente

      in elenco gare, sotto la colonna azioni, ci sono due icone, (occhio) per la modifica dei partecipanti alla gara, (matita) per la modifica dei dettagli della gara, inclusi proponente e contraente.

      Saluti e buone feste.

      • Salve. Mi riferisco al fatto che quando si procede alla modifica dei dettagli di una gara già inserita (accedendo dalla matita della colonna azioni, come da te precisato) i dati relativi a Proponente e Contraente, salvati precedentemente, non vengono mantenuti, in quanto viene riproposto il primo elemento della lista. Certo, basterebbe selezionarli nuovamente, ma il mio suggerimento vuole essere un semplice contributo al miglioramento della funzionalità di un programma, della cui validità siamo tutti d’accordo.
        Spero di essere stato più chiaro questa volta.
        Grazie ancora.

        • Salve,
          si in effetti non avevo capito che si trattasse di un bug in fase di modifica, provvederò al più presto al rilascio di una nuova release. Con essa sto lavorando sull’utilizzo dell’estensione mysqli anzichè mysql che a breve sarà abbandonata!
          Saluti,
          Corrado.

  12. Ciao Corrado! Ti ho già fatto i miei complimenti per il tuo lavoro più su 😉 Volevo chiederti se è possibile produrre un unico file che comprenda sia il 2012 che il 2013 alla luce di questi chiarimenti che ho chiesto ad AVCP, per i quali non ho ancora avuto risposta (ma la cui risposta temo!)

    in relazione agli adempimenti di cui alla legge 190/2012 e successiva deliberazione AVCP n 26 del 22 maggio 2013 si chiedono i seguenti chiarimenti:
    – Poiché si richiede l’invio dei CIG da dicembre 2012 a dicembre 2013 vanno prodotti due file xml, uno per l’annualità 2012 ed uno per la 2013 (la domanda è legittima in quanto nel comunicato del 22 maggio si parla dell’invio di un’unica comunicazione e con due file sarebbero due)? A tal proposito si fa presente che il software per la produzione del file xml produce due file distinti per annualità a meno che anche per il dicembre 2012 non si inserisca come anno di riferimento il 2013 (in questo caso viene prodotto un unico file. E’ forse questa la soluzione?).
    – Nel caso in cui si debbano produrre due file distinti come si procede per la comunicazione se è possibile comunicare un solo URL per ciascun modulo, si inviano due moduli?
    – Se inviamo due moduli non c’è il rischio che venga preso in considerazione solo l’ultimo inviato in ordine di tempo come descritto nel comunicato del presidente del 22 maggio 2013 dove si legge:
    sarà ritenuta valida l’ultima comunicazione inviata in ordine di tempo
    eventuali rettifiche della URL potranno essere gestite con successive trasmissioni stesso mezzo. Sarà in ogni caso ritenuta valida l’ultima comunicazione ricevuta.
    – Se si considera il dicembre 2012 come appartenente all’annualità 2012 e non vi sono CIG da inviare va comunque pubblicato un xml vuoto come previsto dai chiarimenti del Presidente del 13 giugno 2013?

    Che ne pensi?

    • Ciao Pietro,
      intanto ti ringrazio per aver postato il tuo chiarimento, in questo modo dai la possibilità ai visitatori di conoscere criticità ed eventuali soluzioni trovate non solo sul funzionamento del software ma in tutto l’ambito applicativo.
      Detto questo, se ho capito bene, ti riferisci all’URL da comunicare all’AVCP per il recupero dei dataset prodotti dal software.
      Come ben sai il software produce un dataset per ogni anno ed un dataset indice. A mio parere è l’URL di quest’ultimo che va comunicato, che poi è quello che ho fatto per l’azienda per cui lavoro “http://www.tuaazienda.it/avcp-indice.xml”
      Il dataset indice contiene i riferimenti URL a tutti i dataset presenti sullo spazio web. Comunicando l’indice, di conseguenza, il robot che esegue la scansione di tutte le URL comunicate, legge il dataset indice dunque il suo contenuto ed i dataset in esso contenuti tramite ulteriori chiamate agli URL inclusi.
      Spero di aver risposto in parte al tuo quesito.
      Saluti,
      Corrado.

      • Ciao Corrado e grazie per la pronta risposta! La tua mi sembra un’ottima soluzione. Sto provando ad installare l’ultima versione che hai rilasciato. L’ultima volta ricordo di aver eseguito la query copiando il contenuto del file .sql e lanciandolo in phpmyadmin. Nel file di testo Install ho letto invece “eseguire lo script avcp.sql
        mysql -u’utenteroot’ -p’password’ <avcp.sql" . Potresti dirmi come si fa questo. Inoltre devo ancora cambiare il nome al database o posso lasciare quello che ho messo? Grazie per il tuo prezioso aiuto. PC

        • Ciao Pietro,
          lo script SQL si può eseguire anche con phpmyadmin, è indifferente. Il comando descritto nel file INSTALL si può dare da console utilizzando il client mysql.
          Il nome del database lo scegli a tuo piacere, basta ricordarsi di cambiarlo anche nel file di configurazione avcpweb/config/config.php.
          Saluti, Corrado.

  13. Posso dire che non e’ cosi, perche il dataset indice
    che generi ha un anno che definisce annoRiferimento2010/annoRiferimento
    quello di riferimento . Non puoi fare un indice che comprende tutti gli anni e’ una cosa a cui si era gia’ pensata ma non e’ giusta secondo le loro specifiche tecniche

    ecco quello che scrivono:
    Nel file indice saranno presenti i link ai singoli dataset che compongono l’insieme completo dei dati da pubblicare sugli appalti per l’anno di riferimento. Il file deve essere strutturato nel formato standard aperto XML e deve soddisfare lo schema di definizione XSD indiceDatasetAppaltiL190.

    e’ molto chiaro !!!

    Ciao Maxx

    • Giusta l’osservazione,
      è vero, nel file indice c’è l’anno di riferimento tuttavia è sembrata l’unica via d’uscita per rendere disponibili i dati di tutti gli anni attraverso la comunicazione di un solo link avendo a disposizione un solo modulo per la comunicazione.
      Quest’ultima cosa la devo ancora verificare in quanto non me ne occupo direttamente e non è così esplicito nelle specifiche, a meno di una mia madornale svista.
      Se è possibile fare più comunicazioni a questo punto anzichè comunicare l’URL del dataset indice è necessario fare una comunicazione per ogni anno anche se vuoto. Francamente la trovo ridicola come soluzione ma se queste sono le specifiche ci adegueremo.
      Grazie Maxx,
      Saluti,
      Corrado.

      • Mi permetto di dirti che e’ RIDICOLA l’intera faccenda che si sono inventati questi !!!!

        Hanno fatto lavorare migliaia di comuni, scuole e enti per una
        cosa che avrebbero dovuto fare loro, aggiornando il loro software.

        Mi permetti di dirgli che sono dei cretini !!!!

        Grazie dei tuoi contributi e del impegno che ci metti

        ciao Maxx

        • Concordo con il tuo pensiero, voglio sperare che le lamentele che riceveranno, perchè ne riceveranno, siano utili per migliorare tutto il sistema di comunicazione.

          Saluti,
          Corrado.

          • Grazie Pietro,
            riporto la FAQ del portale AVCP contrassegnata come B8

            Il tracciato prevede la possibilità di pubblicare tutti gli appalti in unico file dataset ovvero su più files collegati ad un dataset indice, laddove esigenze di spazio (il limite massimo della dimensione di ciascun file è stabilito in 5 Mbyte) e/o organizzative lo richiedano (ad esempio, per il primo adempimento, che riguarda il mese di dicembre 2012 e l’intero anno 2013, si potranno articolare i dati in due files – su base annua – oppure realizzare un unico dataset, se non supera il limite anzidetto).
            Laddove ci si avvalga del dataset indice la URL da trasmettere – nel modulo PDF di comunicazione di ottemperanza agli obblighi di cui all’art.1, comma 32, della Legge n.190/2012 – dovrà essere quella del dataset indice medesimo.

  14. Ciao,
    Complimenti per il lavoro.

    Lo volevo installare sul portale del nostro piccolo comune.

    Volevo solo chiederti ma AVCP richiede XML per anno vero?

  15. Grazie per la disponibilità.
    Ho questo errore nella validazione del file XML, sembrerebbe una questione di sicurezza sul file XML.
    Sai qualcosa?
    For security reasons DTD is prohibited in this XML document. To enable DTD processing set the DtdProcessing property on XmlReaderSettings to Parse and pass the settings into XmlReader.Create method

      • Ciao, forse non mi ero spiegato, il problema lo avevo con un validatore del file generato.
        Ho usato il seguente:
        https://avcp.centrosistema.it/validator#

        Alla fine ho capito che non gli piace il

        presente sulla seconda riga del file XML generato.

        Levandolo ho visto che XML è valido per loro.
        Sono arrivato a questa conclusione confrontandolo XML con quello generato dal Software della Provincia di Cremona.

        • Ok, grazie per la segnalazione, si tratta di un descrittore che può essere facilmente omesso modificando la riga nella funzione gareToXML() nel file xmlfun.php

          Sostituire
          $content='< ?xml version="1.0" encoding="UTF-8" standalone="yes"?>
          < !DOCTYPE legge190:pubblicazione>'.PHP_EOL;

          con
          $content='< ?xml version="1.0" encoding="UTF-8" standalone="yes"?>'.PHP_EOL;

  16. Scaricato e installato, anche se con non poca fatica: sono un insegnante che cerca di impegnarsi con passione al sito scolastico e alle altre problematiche come quella della L. 190/2012, nonostante la mia formazione sia di altro tipo.
    Sembra filare tutto liscio, per il momento. Ho notato nella home che le lettere accentate compaiono come punti di domanda. E’ normale?
    Grazie per aver messo a disposizione questo strumento!

    • Salve,
      controllerei la configurazione di Apache nel file http.conf se ci sono le seguenti direttive.

      
      LanguagePriority it en fr es ca cs da de el [...]
      AddDefaultCharset ISO-8859-1
      
      

      Tuttavia ho fatto di nuovo l’upload della versione 2.5 c’era effettivamente qualche carattere codificato in UTF-8.
      Buon lavoro.
      Saluti,
      Corrado.

  17. Ciao complimenti per il lavoro

    in fase di esportazione se copio questo oggetto “Messa in sicurezza strada di circonvallazione e realizzazione ponticello sulla strada vicinale Bingiamanna che collegherà l’attuale arteria viaria alla stessa prov.le in corso di real., bretella Loceri SS 390 e SP Lanusei S.Paolo” mi da questo errore:
    fatal Errore 9: Input is not proper UTF-8, indicate encoding ! Bytes: 0xE0 0x20 0x6C 0x27 on line 60

    • Salve,
      per quell’errore basta fare una forzatura alla creazione del file XML in UTF-8 modificando la funzione gareToXML() nel file xmlfun.php

      Sostituire
      		<strutturaProponente>
      			<codiceFiscaleProp>".$row['codiceFiscaleProp']."</codiceFiscaleProp>
      			<denominazione>".$row['denominazione']."</denominazione>
      		</strutturaProponente>
      		<oggetto>".$row['oggetto']."</oggetto>
      		<sceltaContraente>".$row['descrizione']."</sceltaContraente>\n";
      Con
      		<strutturaProponente>
      			<codiceFiscaleProp>".$row['codiceFiscaleProp']."</codiceFiscaleProp>
      			<denominazione>".iconv("ISO-8859-1","UTF-8",$row['denominazione'])."</denominazione>
      		</strutturaProponente>
      		<oggetto>".iconv("ISO-8859-1","UTF-8",$row['oggetto'])."</oggetto>
      		<sceltaContraente>".iconv("ISO-8859-1","UTF-8",$row['descrizione'])."</sceltaContraente>\n";
      
      

      Si può fare anche con la ragione sociale dei partecipanti

      
      Sostituire 
      $part.="\t\t\t\t\t<ragioneSociale><![CDATA[".$rspart['ragioneSociale']."]]></ragioneSociale>\n";
      con
      $part.="\t\t\t\t\t<ragioneSociale><![CDATA[".iconv("ISO-8859-1","UTF-8",$rspart['ragioneSociale'])."]]></ragioneSociale>\n";
      
      
  18. Segnalo Piccolo malfunzionamento!!

    non mi permette di fare un raggruppamento e da questo errore:
    Dettagli errore pagina Web

    Agente utente: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.3; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CMDTDF; OfficeLiveConnector.1.3; OfficeLivePatch.0.0; InfoPath.3; .NET4.0C; .NET4.0E)
    Timestamp: Tue, 14 Jan 2014 14:00:55 UTC

    Messaggio: ‘event.target.id’ è nullo o non è un oggetto
    Linea: 293
    Carattere: 5
    Codice: 0
    URI: http://127.0.0.1:8090/avcpweb/index.php?func=gare&opt=save

    Messaggio: ‘event.target.id’ è nullo o non è un oggetto
    Linea: 293
    Carattere: 5
    Codice: 0
    URI: http://127.0.0.1:8090/avcpweb/index.php?func=gare&opt=save

    • dimenticavo… solo su explorer da questo problema,

      su chrome funziona… anche se non ho capito come si fa a dare l’aggiudicazione di una gara a un raggruppamento!

    • Salve,
      si, infatti, il software è stato provato su Firefox e Chrome (consigliati), si, IE dà questo problema.
      Per quanto riguarda l’aggiudicazione al raggruppamento è come per il partecipante con la differenza che il pulsante compare solo in corrispondenza del Capofila, cioè il primo partecipante inserito cliccando su nuovo raggruppamento e selezionando 04-CAPOGRUPPO. Per aggiungere altri partecipanti al raggruppamento bisogna cliccare su “+04-CAPOGRUPPO”
      * Nell’immagine
      Raggruppamenti

  19. Leggendo le recenti FAQ alle lettera C17 si legge:
    In quali casi la compilazione dei tracciati può essere parziale?
    Con riferimento alla singola procedura di scelta del contraente per la quale – alla data di comunicazione all’AVCP – non siano ancora disponibili informazioni sui partecipanti e sull’aggiudicatario, dovrà comunque essere indicato il ‘set minimo’ di dati oggetto di pubblicazione, che comprende: CIG, struttura proponente, oggetto del bando e procedura di scelta del contraente, così come definiti all’art.3, comma 1, della Deliberazione n.26/2013. Nelle successive annualità si dovrà procedere all’aggiornamento ed alla integrazione dei dati richiesti, man mano che si rendono disponibili.
    …, se ho ben compreso le date di inizio e fine non sono necessarie se al momento non sono definite, ma se si omettono il validatore xml segnala un errore.
    Chiedo chiarimenti : la comunicazione dell’url del file indice deve essere trasmessa ogni anno entro gennaio anche se l’indirizzo resta immutato? Nel programma, la generazione dei file xml deve essere ripetuta ogni volta si inserisce una nuova gara o si fa una modifica (o meglio quando si vuole aggiornare il file xml), oppure solo entro gennaio di ogni anno, dopo aver inserito i dati dell’anno precedente?
    Grazie

    • Salve,
      secondo quello che ho capito, potrei anche sbagliarmi, la comunicazione deve essere fatta entro il mese di gennaio per la comunicazione dei dati riferiti all’anno precedente, anche se l’indirizzo resta immutato. La generazione dei dataset si può fare anche alla fine delle modifiche.
      Per l’invio dei dati riporto un passaggio contenuto nelle FAQ:

      Sarà poi l’AVCP – tra il 1 febbraio e il 30 aprile di ciascun anno – ad eseguire da un minimo di due a un massimo di cinque tentativi di accesso automatizzato agli indirizzi comunicati;

      Questo mi fa pensare che potrei modificare i dati fino al 30 aprile, poichè se il dataset è raggiungibile, i nuovi dati “sostituiranno” i vecchi.

      Saluti,
      Corrado.

      • Ciao Corrado,
        vorrei riprendere l’argomento del set minimo dei dati (lettera C17 delle FAQ): sembrerebbe che le date di inizio e ultimazione non facciano parte del set minimo di dati da pubblicare; infatti potrebbe verificarsi che, ad esempio, la data di effettivo inizio dei lavori, servizi o fornitura non si conosca ancora perchè si è in attesa di formalizzare il contratto o verbalizzare la consegna dei lavori, ecc.. Se ciò è confermato, segnalo la generazione dell’errore in fase di generazione xml: warning Errore 1824: Element ‘dataInizio’: ‘0000-00-00’ is not a valid value of the atomic type ‘xs:date’. on line x.
        Scusami se sono tornato sull’argomento, ma ritengo che in questa fase è bene cercare di risolvere anche le piccole cose, visto il crescente numero degli interessati ed il successo meritato del tuo eccellente lavoro.
        Grazie
        Gianni

        • Salve,
          da me come data inizio lavori è stata considerata la data di inizio delle procedure di gara e come data ultimazione quella “stimata” dai termini contrattuali. Tuttavia, anche alla luce delle FAQ, ritengo valida l’opzione di omettere entrambe le date nel tracciato xml per cui ho provveduto ad aggiornare sia il form di caricamento togliendo il required alle textbox delle date, sia la parte della generazione dei dataset controllando la validità della data valorizzandola solo in caso di data valida dunque diversa da (0000-00-00).
          Saluti,
          Corrado.

  20. Innanzitutto, grazie per aver messo a disposizione il tuo sotware.
    Stamattina ho installato la versione 2.5 ed ho rilevato alcuni (strani) problemi.
    Su Firefox 27, s.o. win32 (XP e 7) non ci funziona il bottone AGGIUNGI RAGGRUPPAMENTO, risulta come se proprio non venisse premuto.
    Con Chrome, invece, funziona correttamente.
    Su alcune macchine (ma non su tutte), inoltre, si verifica un problema curioso in fase di inserimento/modifica di una gara: gli importi vengono arrotondati al decimo di euro. Abbiamo riscontrato il problema sia con Fiirefox che con Chrome.
    Su altre macchine, invece, gli importi vengono recepiti correttamente sino al centesimo.
    Hai idea di cosa potrebbe causare questi problemi e di quali potrebbero essere le soluzioni?
    Grazie

    • E’ garantita la piena compatibilità con Chrome. Per quanto riguarda IE e Firefox ci sono delle incompatibilità di controlli, se si usano alcuni funzionanti con IE non funzionano con FF e Chrome. Ho preferito utilizzare controlli compatibili con Chrome poiché è al 100% compatibile con il front-end framework Bootstrap.

      • Ciao, il problema degli arrotondamenti lo abbiamo su Chrome.
        Stamattina ho aggiornato dalla versione 2.5 alla 2.7 e non ha influito su questo specifico problema.
        Qualche idea?
        Grazie

        • Salve,
          in verità non capisco per quale motivo dà questo tipo di problema.
          Avrei bisogno di sapere l’importo corretto, come viene inserito l’importo sul form di registrazione e come risulta registrato nella tabella lotti. Solo così riusciamo a capire se è un problema di digitazione, di passaggio di parametri o di tabella.
          Intanto può controllare se l’importo viene digitato 999999.99 (senza virgole ulteriori) e se i campi importoAggiudicazione e importoLiquidato sulla tabella lotti sono Double (9,2).
          Mi faccia sapere.

          • I due campi, sul database, sono definiti come float e vengono inseriti correttamente senza altri cartteri che non siano i numeri e l’eventuale punto per i decimali.
            Un test effettuato, per esempio è stato:
            -inserendo 55000.01 viene salvato 55000
            -inserendo 55000.07 viene salvato 55000.1
            Questo avviene su due macchine, mentre su un’altra le cifre vengono salvate correttamente con due decimali.

  21. Ciao
    Sono lieto di vedere che lo aggiorni, la cosa non può che farmi piacere.

    Unica cosa nell’ultima aggiornamento, tu hai messo tutto il softwara di nuovo.

    Non vorrei aggiornare il tutto di nuovo, se le modifiche sono solo quelle indicate nel commento procedo manualmente.

    Grazie di nuovo

    • Salve,
      andrebbe sostituito sempre con l’ultima versione. Ovviamente non prima di aver fatto una copia della situazione attuale per tornare indietro in casi di emergenza.

  22. stiamo provando alcuno sw, questo mi sembra molto intuitivo e carino… l’abbiamo installato e provato; durante la validazione e creazione del file xml escono questo due errori:
    fatal Errore 9: Input is not proper UTF-8, indicate encoding ! Bytes: 0x92 0x55 0x66 0x66 on line 22
    warning Errore 1872: The document has no document element. on line 0
    Saluti

  23. Ciao Corrado prima di tutto vorremmo ringraziarti per il tuo eccellente lavoro:
    Ho provato a fere alcune prove prima di inviare il link all’AVCP mi è venuto un dubbio.
    Primo quesito
    Ho creato il dataset per il 2012 vuoto, ho inserito un appalto per il 2013 e genero il dataset , quando vado a generare l’indice xml lo apro ed all’interno ci trovo anche quello del 2014, come mai?
    Secondo quesito
    Secondo quanto stabilito dal Deliberazione n. 26 del 22 maggio 2013 mi sembra di capire: per il periodo che va dal 1-12-2012 al 31-12-2013 l’adempimento si intende assolto inserendo solo le gare che hanno superato i 40.000,00 euro mentre per tutte le altre gare come adempimento è valida la trasmissione avvenuta a suo tempo in fase di richiesta CIG (questo in fase di prima applicazione della legge e solo per il 2013).
    È cosi oppure mi sbaglio!
    Dico questo perché (a scuola da me) arrivano mail di società che vendono software che producono il file xml da trasmettere e nessuna dice che per quest’anno tale adempimento è solo per gare superiori ai 40.000,00.
    Cosa dobbiamo fare…! Ho provato a riepilogare:
    Adempimento da fare entro il 31 gennaio 2014 (e poi ogni anno)
    Anno 2012
    Gare oltre 40.000,00 (inserire se presenti) se assenti si crea il dataset vuoto;
    Anno 2013
    Gare oltre 40.000,00 (inserire se presenti) se assenti si crea il dataset vuoto;
    Infine
    Creare l’indice xml (che contiene i link ai due file xml degli anni 2012 e 2013)
    Indicare il link dell’indice nel modulo da trasmettere all’AVCP
    Non è un adempimento da trasmettere ma da inserire nel proprio sito web:
    – creare comunque un elenco che rispetta lo schema dell’art. 3 ed inserirlo nella pagina di Bandi di gara e contratti della sezione “Amministrazione Trasparente “
    Qualcuno può confermare?
    Grazie a quanti vorranno replicare al commento
    Antonio

    • Ti stai sbagliando vanno inseriti TUTTE !!!! e c”e scritto !!! leggi le FaQ

    • Per quanto riguarda il primo quesito pubblicare un dataset vuoto in più è solo un difetto procedurale che è stato risolto con la Rev. 2.6. Tuttavia rimane comunque vuoto, dunque anche se viene processato nell’indice non valorizza alcun dato.
      Per quanto riguarda il secondo quesito confermo la replica di Massimo, a quanto pare vanno pubblicate tutte, addirittura anche quelle espletate tramite fondo economale. Si veda nello specifico la FAQ A6
      Saluti,
      Corrado.

      • La deliberazione n. 26 del 22-05-2013 recita:
        Art. 4
        Trasmissione dei dati all’Autorità
        1) Gli obblighi di trasmissione all’Autorità delle informazioni di cui all’art. 1, comma 32 della Legge n. 190/2012, come indicate all’articolo 3 della presente delibera si intendono assolti, per i contratti di importo superiore a 40.000 euro, con l’effettuazione delle comunicazioni telematiche obbligatorie all’Osservatorio dei Contratti Pubblici, ai sensi dell’art. 7, comma 8, del Codice dei Contratti Pubblici.
        2) Ai fini della semplificazione dell’azione amministrativa, in sede di prima applicazione, per gli appalti di ambito regionale, gli obblighi di trasmissione all’Autorità, previsti dall’’art. 1, comma 32, della legge n. 190/2012, relativi alle fasi di aggiudicazione ed esecuzione, sono assolti mediante le comunicazioni effettuate ai sensi dell’art. 7, comma 8, del Codice dei Contratti Pubblici, all’Osservatorio dei Contratti Pubblici che le pubblica tempestivamente sul Portale Trasparenza.
        3) Per i contratti di importo inferiore a 40.000 euro, i soggetti di cui all’articolo 2 sono tenuti ad effettuare sui loro siti web istituzionali la pubblicazione delle informazioni indicate al precedente articolo 3; in fase di prima applicazione, per l’anno 2013, gli obblighi di trasmissione all’Autorità si intendono assolti mediante l’effettuazione delle comunicazioni previste dai sistemi SMART CIG o SIMOG.

        Ha ragione Massimo rispetto alla FAQ A6 uscita il 16-01-2014 e quindi più recente della Deliberazione n. 28 di cui sopra.

        Allora mi chiedo che senso aveva scrivere quanto citato nell’art. 4 se poi a 15 giorni dalla trasmissione dobbiamo rivedere il tutto secondo quanto si evince dalla FAQ A6.
        Probabilmente il concetto della FAQ A6 potrebbe riferirsi alla trasmissione per il prossimo anno?

  24. Bel lavoro!
    Ti segnalo che nel config.php della rev. 2.6 hai dimenticato di aggiornare define(‘VERSIONE’,’2.5′);, che è una bazzecola ma risulta fuorviante dopo un aggiornamento per utenti poco esperti 😉

    Capisco che forse sto chiedendo troppo però sarebbe bello se nel changelog con ogni revisione ci fosse anche l’indicazione dei files e/o parti di db cambiate così un utente esperto perlomeno riesce a non ripartire da zero.

    In ogni caso GRAZIE!

    • Sistemato anche questo!
      Dalla prossima release introdurrò un file changelog.txt come giustamente osservato.
      All’inizio non pensavo che ci fossero così tanti apprezzamenti, oltretutto da utenti eterogenei.
      Grazie e scusate per la svista.
      😉

      • Grande!
        Lo so, si incomincia spesso così e poi ci si trova a dover lavorare molto perchè un conto è un’applicazione che è stata creata per particolari esigenze dello sviluppatore, altro è adattarla alle esigenze di utenti “eterogenei” come ben hai evidenziato. Però da anche delle belle soddisfazioni e ti rinnovo i complimenti.

        E visto che ci devi mettere le mani ti segnalo anche che il testo di aiuto delle textbox per le date DD/MM/YY mi pare proprio che vada corretto con DD-MM-YY. Infatti giustamente la casella non accetta la “/” , però se come è capiatato a me hai in un documento una data in formato DD/MM/YYYY e fai copia incolla, passa la validazione ma ti inserisce nel db un valore totalmente diverso.
        Almeno così mi è capitato con FF26 su Win 8.1
        Se fosse per me andrebbe benissimo ora che lo so… te lo segnalo per te e per gli altri visitatori e… per deformazione professionale 🙂
        Buona domenica.

  25. Ciao Corrado, ho installato e usato una vecchia versione del tuo sw… ora vorrei usare l’ultima versione aggiornata, come devo fare? Non sono un informatico e quindi devo reinstallare dopo avers salvato le gare inserite e installare l’ultima versione opuure?

    • Salve,
      per aggiornare la versione basta sovrascrivere tutti i file nella root avcpweb con i nuovi rilasciati, tranne il config.php nella cartella config e l’eventuale logo_azienda nella cartella images che sono personalizzati.
      Il database non ha subito modifiche, l’ultima risale alla versione 2.1 che richiedeva di modificare i campi importoAggiudicazione e importoLiquidato in DOUBLE(9,2), per cui non è necessario un backup delle gare registrate.
      Saluti,
      Corrado.

  26. Un parere a seguito nuove comunicazioni AVCP.
    Esempio con indice
    Di un lotto: data inizio lavori anno 2012 con importo liquidato 0
    Dello stesso lotto: anno fine lavori 2013 con importo €400.
    Il lotto compare sia nel .xml 2012 sia nel .xml del 2013?
    Ovvero nel 2012 compare con importo liquidato 0 e nel 2013 con importo liquidato €400.?
    Oppure
    Nel 2012 e nel 2013 con in entrambi importo liquidato aggiornato a 400?
    Oppure come ho visto in esempio della città di Prato solo nel 2013?
    Questa non è cosa da poco.

  27. Dopo aver cliccato su crea e valida xml, vado a legger il file xml creato e leggo:
    SCRIVERE QUI ENTE PUBBLICATORE
    Non riesco a capire se dove c’è scritto “SCRIVERE QUI ENTE PUBBLICATORE” deve rimanere cosi oppure cosa bisogna scrivere, o se è il programma che lo scrive ed io non ho capito da dove?
    Grazie

    • Esattamente nel file config.php

      
      //IMPORTANTE
      define('ENTE_PUBBLICATORE','SCRIVERE QUI ENTE PUBBLICATORE');
      define('VERSIONE','2.7');
      
      

      Sostituire SCRIVERE QUI ENTE PUBBLICATORE con l’ente appropriato.

      Saluti,
      Corrado.

      • Grazie. Fatto.
        Scusami man mano che vado avanti mi vengono altri dubbi.
        Uso Firefox (ho già letto su un’altro commento a tal riguardo) ma non mi funziona il bottone raggruppamento, mentre in chrome si.
        In IE no ma tanto non lo uso.
        Ho provato a permettere (in Firefox) l’apertura di pop-up, ma non è cambiato nulla.
        Hai per caso altre soluzioni?
        In caso diverso utilizzerò chrome.
        Grazie di tutto

          • Salve a tutti, io ho modificato gare.php in questo modo e adesso il tasto Nuovo Raggruppamento funziona anche su Firefox.

            //Aggiungi Raggruppamento
            function addRagClick(event) {
            var id=’0′;
            if (event.srcElement) id=event.srcElement.id;
            else if (event.target) id=event.target.id;

  28. Ciao, mi è venuto un dubbio all’inserimento della gara non viene fatto un controllo se quel CIG che si sta inserendo è già presente?

    Sarebbe un ottima cosa credo, che ne pensi?

    • No, in effetti non c’è un controllo di esistenza del CIG.
      C’è solo la ricerca sull’elenco delle gare.
      Potrei fare un controllo in fase di salvataggio, magari prossimamente.

      • Si secondo me ci sta.
        Magari in questi giorni lo faccio io e ti posto la modifica.
        Saluti

        • Devo scusarmi, ma il controllo del CIG è meglio non metterlo, in quanto possono esserci delle gare senza CIG come recita la FAQ uffficiale sottostante.

          Sezione C – FAQ riguardanti le corrette modalità di compilazione della tabella dati

          C1. Ci sono casi nei quali è possibile non indicare il CIG?
          Come è stato chiarito anche dalle FAQ A5 e A13 sulla ‘tracciabilità’, Il codice CIG (codice identificativo di gara) assolve – tra le altre – anche la funzione (attribuita dalla legge n.136/2010) di individuare univocamente (tracciare) le movimentazioni finanziarie degli affidamenti di lavori, servizi o forniture, indipendentemente dalla procedura di scelta del contraente adottata, e dall’importo dell’affidamento stesso.
          Vi sono, tuttavia, alcune fattispecie per le quali non sussiste l’obbligo di richiedere il codice CIG, al fine precedentemente indicato; sempre in relazione a tale argomento, la FAQ A12 sulla tracciabilità (cui si rimanda per il necessario dettaglio) ha sufficientemente chiarito la casistica delle esclusioni, tra le quali figurano, ad esempio, gli affidamenti diretti a società in house ele spese effettuate dai cassieri che utilizzano il fondo economale, fermo restando che tali ultime spese – che non originano da contratti d’appalto e per le quali è ammesso l’utilizzo di contanti – devono essere tipizzate dalle stazioni appaltanti in un apposito regolamento interno, recante il dettaglio dei beni e servizi di non rilevante entità (spese minute) necessari per sopperire ad esigenze impreviste, nei limiti di importo delle relative spese.
          Nei casi suindicati è quindi ammissibile che il campo di indicazione del CIG non venga valorizzato, non sussistendo alcun obbligo normativo di acquisizione dello stesso.

  29. Buonasera,
    scusate se la mia domanda può sembrare stupida ma sto sperimentando delle difficoltà nella predisposizione del necessario per poter utilizzare il software avcpweb.
    Quando provo ad importare avcp.sql dal mysql del servizio hosting sul quale risiede il sito internet della mia scuola mi compare il seguente errore:
    “#1044 – Access denied for user ‘SqlXXXXXX’ to database ‘avcp'”.
    Da ignorante, ritengo sia dovuto al fatto che userid e password del database non coincidono con quelle del mio mysql.
    Qualcuno potrebbe indicarmi come risolvere questo problema?
    Visto l’avvicinarsi del 31 gennaio spero che i suggerimenti arrivino in breve tempo.
    Grazie sin da ora.
    Francesco

    • Salve Francesco,
      il tuo è un problema di facile soluzione, in effetti non hai i diritti per creare un nuovo database, puoi solo utilizzare quello assegnato dal provider, dunque basta eliminare la riga nello script avcp.sql che crea il database, esattamente:

      CREATE SCHEMA IF NOT EXISTS `avcp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
      

      e sostituire tutte le voci USE `avcp` ; con USE `SqlXXXXXX` ;

      Lo script in questo modo non crea il nuovo database ma utilizza quello assegnato.

      Saluti,
      Corrado.

      • Scusi se disturbo ancora, ma visti i tempi ristretti non ho spazio per sperimentare.
        ho sistemato il problema come da lei indicato (grazie infinite).
        Adesso, nonostante ho modificato il file config.php come indicato nella sua precedente risposta, mi compare il seguente messaggio di errore:
        Parse error: syntax error, unexpected T_DNUMBER in /web/htdocs/www.xxxxxxxxxxxx.xx./home/xxxxx/config/config.php on line 8.
        Il codice presente nel file config è il seguente:

        Ho controllato, ma i dati sono corretti e non mi sembra ci siano errori nella line a cui si riferisce il messaggio di errore.
        Qualche indicazione?
        Grazie sin da ora.
        a presto,
        Francesco

  30. Non mi accetta le credenziali di accesso al software. Ho usato Wampserver, l’accesso al database è ok. L’errore è ‘ Username e/o password errati ‘.
    Ho controllato nel database nella tabella user è admin admin, il ruolo quale deve essere ?
    Grazie per la disponibilità

    • Salve,
      il mio consiglio è quello di reimpostare la password dell’utente admin

      
      UPDATE user SET password=MD5('tuapassword') WHERE username='admin';
      
      

      Il ruolo deve essere 1 per amministratore 0 per utente standard.

  31. Salve,

    mi chiamo Davide Riboli e insegno “Informatica per l’Editoria” all’ISIA di Urbino. Su richiesta del nostro amministratore [cui va tutto il merito della scelta] ho installato il tuo software [spero che il “tu” vada bene] sui nostri server e, dopo un primo periodo di test, credo che diventerà lo strumento ufficiale con cui verranno gestite le operazioni relative.

    Volevo ringraziarti per il tuo lavoro e per lo spirito con cui lo metti a disposizione di tutti.

    Grazie davvero.

    • Salve,
      mi fa piacere che avete trovato utile il mio lavoro e quello di quanti lo stanno provando.
      Il “tu” va benissimo.

      Saluti,
      Corrado.

  32. Grazie mille!. Probabilmente la passwor di defaul era diversa da admin.
    Giusto per informazone quando ho importato il file avcp.sql nel database mi ha generato vari errori, allora ho provato ad importare le tabelle singolarmente facendo copia e incolla in un file temporaneo, e così ha funzionato.
    Grazie ancora !!!

  33. Gentilissimo Sig. Fiore,
    desidero innanzitutto complimentarmi per il notevole lavoro di sviluppo.
    Ho scaricato l’applicazione, installata ed eseguito una prova.
    Generando il file indice ho notato che all’interno vengono inseriti automaticamente i link ai report annuali. Tutto questo va bene, tuttavia può capitare di voler pubblicare i file su un server diverso. Nel nostro caso preferiamo pubblicare solo i file xml e lasciare ad un server interno (nella intranet privata) il ruolo di produrre i dati.
    E’ semplice eseguire a mano la modifica dei link editando il file xml, tuttavia non sarebbe male inserire una variabile, magari all’interno del file config.php, che, se specificata, vada a sostituire il path generato in automatico, lasciando invece intatto il nome del file. Che ne pensa?

    • Salve,
      nel file class/xmlfun.php c’è la funzione creaUrl($anno) che crea il link del dataset che può essere personalizzato sostituendo opportunamente la riga

      
      $url=substr($url,0,strripos($url,"/"))."/avcp-".$anno.".xml";
      
      con
      
      $url="http://www.tuodominio.com/avcp-".$anno.".xml";
      
      se i dataset sono copiati nella root del portale. Altrimenti basta aggiungere una cartella al path, ad esempio:
      
      $url="http://www.tuodominio.com/datasetavcp/avcp-".$anno.".xml";
      
      
  34. Salve, ho appena installato il vostro software avcp-web, ho seguito le istruzioni, ho modificato il file config.php inserendo i dati del mio database. Fin qui tutto ok, difatti riesco a visualizzare correttamente la pagina di login, ma inserendo i dati così come indicato “username: admin ; password: admin” mi da username o password errati. Come posso fare a risolvere il problema? Ciao e grazie

    • Salve,
      le credenziali di accesso sono quelle username:admin password:admin , tutto in minuscolo ovviamente.
      Se ha problemi può eseguire questa query in phpmyadmin per impostare una nuova password per l’utente admin

      
      UPDATE user SET password=MD5('nuovapassword') WHERE username='admin';
      
      

      Saluti,
      Corrado.

  35. Ciao Corrado, ho bisogno di un piccolo aiuto. Per inserire la stazione appaltante devo fare questi due passaggi?
    1 – inserirlo al posto di “SCRIVERE QUI ENTE PUBBLICATORE” nel file config alla linea: define(‘ENTE_PUBBLICATORE’,’SCRIVERE QUI ENTE PUBBLICATORE’); (mi viene il dubbio perchè nelle istruzioni non c’è scritto questo passaggio)
    2- Inserire il nome da interfaccia web in Setup/Modifica Dati Azienda (sarà questa la stazione appaltante?Quindi i dati devono essere gli stessi del file config?)

    Un secondo dubbio è:
    che differenza c’è tra azienda e strutture proponenti? La stazione appaltante va inserita in azienda o in strutture proponenti?

    Grazie per il tuo grandioso lavoro,

    Pietro

    • Salve,
      dunque l’ENTE_PUBBLICATORE è l’ente che rende disponibili i dati delle gare, qui andrebbe il nome dell’Ente inteso come Azienda Sanitaria/Comune/Istituto. E’ unico per ogni ente quindi va personalizzato nel config.php.
      Le stazioni appaltanti sono quelle danno origine alle procedure di gara e in un ente possono essere più di una.
      Dunque la maggior parte delle volte è possibile che l’Ente pubblicatore coincida con la stazione appaltante ma non è detto che sia sempre così.
      Spero di essere stato chiaro.
      Saluti,
      Corrado.

      • Chiarissimo, e complimenti per il meritato successo. Sto dando un’occhiata al prodotto pubblicato da Gazzetta Amministrativa e per ora è davvero (purtroppo) moooolto approssimativo..

          • Ti segnalo un errore, magari è utile (anche se non credo sia un grosso problema): se cancelli tutte le strutture proponenti compare
            un errore del tipo Notice: Undefined property: Azienda::$dati in /class/aziende.php on line 264
            e class/aziende.php on line 274 e poi non è più possibile inserire i dati dell’azienda.

          • Salve,
            è un po insolito come errore, i dati dell’azienda non possono essere cancellati, si possono solo modificare, Setup->Modifica Dati Azienda.
            Quell’errore compare se è stata cancellata l’azienda direttamente dal DB.

  36. Non so se capita solo a me, ma vorrei segnalare che nonostante sia abilitato alla ricezione di tutti i commenti non li ricevo tutti, quindi, mi tocca controllare periodicamente per vedere se ci sono delle risposte.

  37. Buongiorno, intanto mi associo ai complimenti per l’ottimo applicativo, e la ringrazio.
    Io l’ho installato in locale, ma, non riesco ad utilizzarlo, qualsiasi dato inserisco, mi riporta l’errore no database selected.
    Ora nel file config.php ho inserito il nome corretto del database ma senza risultati.
    dove sbaglio?

    • Salve,
      probabilmente non ha l’accesso al DB MySQL. Ha verificato se il server MySQL è attivo, il database avcp è stato creato ed è possibile accedervi ?

  38. Ciao.
    Innanzitutto complimenti per il programma.
    Volevo chiederti una cosa: io ho installato la web applicazion in locacale utilizzando xampp per poter effettuare delle prove rpeliminari. Mi sono resa conto però che all’interno del xml creato i dati rimangono quelli generici e non quelli inseriti da me nell’applicativo.. Da cosa può essere dovuto?
    Grazie

    • Ciao, provo a verificare. Però il file lo crea correttamente ma senza i contenuti caricati.
      Questo è quello per anno:

      Pubblicazione legge 190
      Pubblicazione legge 190 anno 1 rif. 2010 aggiornamento del 2014-01-23 12:22:53
      2014-01-23
      SCRIVERE QUI ENTE PUBBLICATORE
      2014-01-23
      2012
      http://192.168.10.161/avcpweb/avcp-2012.xml
      IODL

      Grazie
      Valentina

        • :-(…però i dati nel db sono salvati correttamente…
          da cosa può essere dovuto? sempre una questione di permessi? … non credo che il fatto che sia installato in locale c’entri…

          • Non importa se in locale o su un server, deve esserci qualche altro problema. Controlli il log della procedura nella cartella log, e quelli specifici di apache, sia error_log sia access_log.

          • Ciao.
            Ho appena provato a dare un’occhiata ai file di log che mi hai segnalato ma non dicono nulla di significativo.. almeno a mio avviso…
            Posso provare a mandarti i log.

        • io ho lo stesso problema il file xml generato mi da solo l’intestazione e non riporta i dati da me inseriti.

          Complimenti per il progetto.

          • Salve,
            controlli bene l’anno di competenza, probabilmente è rimasto 2014. In questo caso è normale ricevere un dataset vuoto poichè i dati estratti riguardano gli anni precedenti al 2014.

          • ha ragione ho risolto

            ancora complimenti anche per la celerità delle informazioni

  39. Salve, nel ringraziarla di nuovo, torno a chiedere un informazione.
    L’elenco delle voci “contraente” non prevede l’acquisto in economato.
    Alcune volte è previsto di pubblicare anche alcuni acquisti eseguiti in economato.
    Potrei procedere ad aggiungere una voce sul DB ma non sono certo che poi questo influisca sulle specifiche xml. Esiste un elenco più generale a cui attingere per una corretta codifica?

    La ringrazio molto per l’attenzione.

    • Salve,
      purtroppo temo che debba attenersi alle specifiche tecniche dettate dall’AVCP. Infatti nello Schema Definition (TypesL190.xsd) sono elencati i contraenti ammessi nei dataset generati. Se durante la verifica dei dataset un dato non dovesse corrispondere ad uno degli elementi consentiti la procedura di controllo evidenzierebbe un errore.

      • Quindi con il programma non posso pubblicare gli affidamenti in economato che non hanno CIG? Peraltro il sistema richiede obbligatoriamente il CIG (il campo è obbligatorio).

          • Nelle faq dell’AVCP è chiaramente esplicitato che vanno pubblicati anche importi senza CIG. (Vedi sotto).
            La cosa paradossale è che l’xsd riporta
            che, invece, dovrebbe significare (se non ho capito male) che è obbligatorio. Telefonando al servizio informazione della CIVIT confermano che è obbligatorio pubblicare i dati senza CIG come riportato nella faq seguente.

            L’unica cosa che mi resta da fare è inserire un CIG fittizio e cancellarlo a mano (ma il documento potrebbe non essere validato in questo modo).

            C1. Ci sono casi nei quali è possibile non indicare il CIG?
            Come è stato chiarito anche dalle FAQ A5 e A13 sulla ‘tracciabilità’, Il codice CIG (codice identificativo di gara) assolve – tra le altre – anche la funzione (attribuita dalla legge n.136/2010) di individuare univocamente (tracciare) le movimentazioni finanziarie degli affidamenti di lavori, servizi o forniture, indipendentemente dalla procedura di scelta del contraente adottata, e dall’importo dell’affidamento stesso.
            Vi sono, tuttavia, alcune fattispecie per le quali non sussiste l’obbligo di richiedere il codice CIG, al fine precedentemente indicato; sempre in relazione a tale argomento, la FAQ A12 sulla tracciabilità (cui si rimanda per il necessario dettaglio) ha sufficientemente chiarito la casistica delle esclusioni, tra le quali figurano, ad esempio, gli affidamenti diretti a società in house ele spese effettuate dai cassieri che utilizzano il fondo economale, fermo restando che tali ultime spese – che non originano da contratti d’appalto e per le quali è ammesso l’utilizzo di contanti – devono essere tipizzate dalle stazioni appaltanti in un apposito regolamento interno, recante il dettaglio dei beni e servizi di non rilevante entità (spese minute) necessari per sopperire ad esigenze impreviste, nei limiti di importo delle relative spese.
            Nei casi suindicati è quindi ammissibile che il campo di indicazione del CIG non venga valorizzato, non sussistendo alcun obbligo normativo di acquisizione dello stesso.

          • Dunque a quanto pare può essere nullo per la comunicazione ma non per l’XSD.
            E se lo riempiamo di 0 ? (idea strampalata ma sembra l’unica via d’uscita)

          • Noi abbiamo formalizzato una nota all’AVCP mettendo in evidenza il contrasto tra specifiche e faq. Aspettiamo delucidazioni. L’dea degli zeri può andare. Il problema nascerebbe solo se il sistema informativo dell’AVCP andasse a fare un confronto con il database dei CIG. Tieni anche presente che nel caso non venisse specificato il CIG non avrebbe senso neanche specificare il contraente (come mi è stato spiegato dal numero verde). Il mio problema era infatti scegliere una procedura in economato.

          • Salve, sono uno dei due sviluppatori del software della Provincia di Cremona.
            Noi purtroppo avevamo usato il CIG come chiave perché niente nelle note tecniche faceva presupporre che un cig dovesse essere inserito più volte
            Questo ne impedisce la duplicazione col nostro software.
            Stiamo preparando una nuova versione del programma che lo consenta, ma mi permetto di osservare che il silenzio dell’AVCP fino alle faq tardive del 16 gennaio sta avendo effetti devastanti su tutta le PA interessate: non esistono linee guida sul come compilare il tracciato. Le casisistiche che mi vengono presentate dagli enti che stanno usando il programma sono le più disparate.
            Per esempio, voi come vi comportate quando dovete inserire un CIG che ha multipli aggiudicatari con somme diverse? Duplicate il CIG o ne usate uno solo?

          • Salve,
            usando il CIG come chiave però si preclude anche la registrazione dei CIG nulli, o meglio ne può esistere solo uno.
            Nel caso specifico l’ipotesi di multipli aggiudicatari con somme diverse mi lascia pensare a lotti diversi, per cui si configura una gara con un CIG e più lotti.
            In questo caso, IMHO, sarebbe opportuno consentire la registrazione dello stesso CIG per lotti diversi. Dunque un aggiudicatario per ogni lotto ma con lo stesso CIG.
            Per come è strutturato il dataset sembra essere l’unica soluzione.

      • Ne avevamo parlato in qualche altro commento…. (niillable=false)

        Il cig può essere vuoto ma deve esserci, in sostanza deve esserci il tag

        A io avviso Non è valido mettere 0, ma lasciarlo vuoto, almeno in termini di xsd è specificato solo niillable=false

        • Ok, per il CIG vuoto è sufficiente rimuovere l’attributo required al campo CIG nel Form di inserimento gara. Esattamente alla riga 849 della classe gare.php relativa alla funzione formGara(). In questo modo si può omettere il campo CIG e quando viene preparato l’XML risultante viene riportato solo il tag «CIG»«/CIG». Testata e funzionante.

  40. Con admin admin mi restituisce questo errore ” Warning: mysql_connect(): Access denied for user ‘admin’@’localhost’ (using password: YES) in C:\xampp\htdocs\avcp\app\config.php on line 131
    Errore di connessioneAccess denied for user ‘admin’@’localhost’ (using password: YES)”
    Se inserisco la query per modificare la password “Table ‘avcp.user’ doesn’t exist”
    ………………..

    • Forse ha fatto confusione con le credenziali di accesso alla procedura (admin,admin) con le credenziali di accesso al database da specificare nel config.php.
      Nel file config.php vanno le credenziali di accesso al server MySQL, di solito username:root password:quella scelta al momento dell’installazione oppure vuota se si tratta di wamp.

      • Salve come l’utente precedente ho problema ad accedere alla pagina web, il messaggio di errore è il seguente:
        ——–“Warning: mysqli_connect(): (HY000/1045): Access denied for user ‘root’@’localhost’ (using password: YES) in C:\wamp\www\avcpweb\config\config.php on line 46”———-
        Essendo completamente all’oscuro di sql ho provato anche ad eseguire lo script per il cambio password ma senza successo.
        Per inviare il comando ho utilizzato wampserver/phpmyadmin e dopo essermi posizionato con il cursore sul database (avcp) ho selezionato il tab SQL ed ho copiato ed incollato la query descritta premendo quindi il tasto esegui.

        • Salve,
          le opzioni sono tre,
          1) lasci la password vuota nel config.php
          2) imposti una password per l’utente root@localhost e la inserisci anche nel config.php
          3) crei un utente con password assegnando tutti i diritti sul database avcp e inserisci nome utente e password nel config.php

          Saluti,
          Corrado.

  41. Ciao Corrado, ti confermo che si possono cancellare anche i dati dell’azienda. Basta cancellare tutte le strutture proponenti senza mettere mano al database. Quindi viene fuori quell’errore.

    • Una madornale svista purtroppo!
      Spiego cos’è successo. Realizzato il CRUD per i proponenti, ho pensato di fare la stessa cosa con i dati dell’Ente/Azienda ma solo per un singolo record della tabella azienda, che avrebbe sostituito quella nel config.php. Qui il fattaccio, per pura dimenticanza, probabilmente distratto da qualcosa o qualcuno, ho interrotto lo sviluppo e sul form Dati Azienda è rimasta la tabella proponenti. L’errore compare poichè la tabella Azienda è costituita da una sola tupla non cancellabile, si può solo modificare, per questo non c’è il controllo “tabella vuota”.
      A questo punto nella prossima release lascio attiva la prima ipotesi del config.php poichè una volta impostata non c’è motivo di modificarla, tolgo infine la voce di menu “Dati Azienda”.

  42. Vi comunico che sto preparando un articolo con codice allegato per la sola validazione ed upload su server remoto dei dataset. Questa particolare configurazione è utile quando, come nel mio caso, si utilizza una DMZ dunque un server intranet per l’applicativo ed un server web per la sola pubblicazione dei dataset. E’ utile anche a coloro che utilizzano un server web interno, non visibile all’esterno, nel proprio ente ed uno spazio web in hosting/housing in remoto.
    Approfitto per chiederVi di utilizzare il form Contatti per problemi che non riguardano l’ambito del software, ad esempio se avete problemi a configurare LAMP/XAMP/WAMP. Nel limite del possibile cercherò di rispondere a tutte le richieste.
    Saluti,
    Corrado.

  43. salve, ho fatto un backup dell’applicazione e del database ed ho provato ad aggiornare dalla versione 2.4 alla versione 2.7 sovrascrivendo i file tranne “config.php”
    All’accesso con le credenziali mi da il seguente warning:
    Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in /xxxxxxxxxxxxxxxxx/avcpweb/class/login.php on line 49 Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in /xxxxxxxxxxxxx/avcpweb/class/login.php on line 50 Warning: mysqli_close() expects parameter 1 to be mysqli, resource given in /xxxxxxxxxxxxxxxxxx/avcpweb/class/login.php on line 68

    • E’ normale, nel config.php che hai conservato viene aperta la connessione al db con il vecchio mysql_ anzichè mysqli_, dovrai modificare a mano le due chiamate alle funzioni come nel nuovo config.php ed è tutto risolto.

  44. Ho chiamato AVCP per la questione legata alla FAQ A6 e l’impossibilità di inserire un contratto anche senza CIG e mi hanno candidamente risposto che la A6 riporta informazioni sbagliate e vanno inseriti solo contratti con CIG. Che si fa? 🙂

    • Siamo alle solite. Purtroppo ci vuole qualcosa di scritto. Aspettiamo una comunicazione ufficiale, nel frattempo facciamo riferimento alle cose scritte, in modo da poter dimostrare qualcosa in caso di contenzioso.

      • Comunque sia, una certezza “SCRITTA” c’è :
        il cig può essere vuoto (Faq C1) e nel file xml occorre però mettere il tag.

        Accertato questo, nel software sviluppato per la mia amministrazione abbiamo infatti reso non obbligatorio il campo e anche tu Corrado hai verificato che “tecnicamente” va bene, giusto?

        Non capisco perchè nellle note di rilascio del software della provincia di Cremona sostengono invece che l’xsd dice che “le specifiche e il tracciato xsd di controllo e validazione preparato dall’AVCP individuano il CIG come campo obbligatorio”… ribadisco che nel file xsd viene richiesto che il tag deve esserci (è implicito il minOccurs=1) ma comunque “è ammissibile che il campo di indicazione del CIG non venga valorizzato” (Faq C1), ossia rimanga vuoto.

          • Ok, sembra che sia tornata valida anche la mia opzione degli zero sul CIG, per avcpweb non cambia nulla, è un valore comunque ammesso, mi toccherà riverdere il required sul campo CIG!!

  45. Ciao Corrado,
    oggi ho provato ad istallare il soft sotto dominio ma mi da questo errore:
    Warning: mysql_connect(): Access denied for user ‘Davincicomes’@’62.149.143.213’ (using password: YES) in /web/htdocs/www.davincicomes.gov.it/home/avcp/app/config.php on line 131 Errore di connessioneAccess denied for user ‘xxxxx’@’xxxxx’ (using password: YES)
    il sito risiede su uno spazio Aruba.
    potresti dirmi quale potrebbe essere il problema ?
    grazie

    • Salve,
      voglio far notare due cose, motivo per cui ho pubblicato un commento riguardo la richiesta di aiuto su specifiche configurazioni. La prima è che in questo modo hai reso pubblici dei dati che io non farei mai, Nome utente e IP di accesso al server di aruba (le ho sostituite con le xxxx). Ora quello che manca è solo la password ma conoscendo le caratteristiche delle password di aruba ed un po di fantasia ci si mette non molto a risalire anche alla password.
      Detto questo passo alla seconda, la versione che stai utilizzando utilizza ancora mysql_connect() e non mysqli_connect(). Il problema è sicuramente delle credenziali di accesso al database aruba per cui ti consiglio di verificare la configurazione nel config.php
      Saluti,
      Corrado.

  46. Buonasera,
    oggi mi è stato comunicato dal DSGA della mia scuola che non è possibile inserire ragione sociale e codice fiscale del partecipante alla gara.
    Ho controllato io stasera e, facendo un confronto con quanto pubblicato negli screenshot all’inizio di questa pagina ho notato che nella versione di avcp che ho installato (2.7) non mi compare la possibilità di inserire nuovi partecipanti e la lista partecipanti è vuota.
    Come posso risolvere?
    Cordiali saluti.
    Francesco

  47. Tra le tante cose che non mi sono chiare, ci sta questa:
    Uno stesso CIG può essere usato più volte solo se la gara ha più aggiudicatari giusto?
    Se avete una FAQ dove viene specificato me la indicate?

    GRAZIE

  48. Buongiorno Corrado,

    una segnalazione: in dati proponente, denominazione non ci entra il nome perchè il campo non accetta caratteri a sufficienza. Pensi sia un problema se lo accorcio 🙂

    • Buongiorno,
      la lunghezza massima è fissata a 40 ma è possibile aumentarla fino alla lunghezza massima 250 modificando la riga 256 nella classe proponenti cambiando maxlenght=’40’ in maxlength=’250′

  49. Ciao Corrado! Abbiamo inserito un terzo dei CIG, possiamo validare e poi ricominciare, nel senso il file viene aggiornato anche se ogni tanto procediamo alla validazione? Scusa se la domanda può risultare banale.

    • Salve,
      la validazione può essere lanciata in qualsiasi momento, anzi, se la si fa periodicamente risulta più facile individuare eventuali errori.

      Saluti,
      Corrado.

  50. Salve e complimenti per il lavoro e per il meritato successo. Avrei un quesito da porle. Abbiamo deciso di utilizzare il suo programma e vorremmo sapere qual è la soluzione migliore per noi. Mi spiego. Siamo un istituto comprensivo nato da poco e quindi ci ritroviamo a dover comunicare i nostri CIG, ma anche quelli delle due scuole che si sono unite per dar vita al comprensivo. Avevamo pensato di inserire come ente pubblicatore l’istituto comprensivo e mettere 3 stazioni appaltanti (le due scuole cessate + il comprensivo). Che ne pensa? Grazie per il gentile supporto.

    • Salve,
      grazie per i complimenti, il merito va anche a quanti hanno testato il software. Per una risposta certa dovrebbe riproporre il quesito all’AVCP, tuttavia suppongo che se i CIG sono stati rilasciati alle stazioni appaltanti è giusto che le registrazioni vengano associate alle relative stazioni appaltanti anche se cessate.
      Saluti,
      Corrado.

      • Grazie per la gentile risposta. Beati voi che sapete così tante cose! Ho letto in giro che questi programmi non sono sicuri se installati in remoto? E’ vero o posso stare tranquilla?

        Buona Domenica,
        T.I.

        • Buongiorno e buona domenica,
          dipende da cosa si intende con “questi software” e soprattutto cosa si intende per “sicurezza”.
          Probabilmente chi scrive queste notizie ha interesse a pubblicizzare prodotti a pagamento, Closed Source dove la sicurezza è nascosta e nessuno può verificarla se non con metodi brute force. I software Open Source certo non si da per scontato che siano più sicuri dei Closed tuttavia c’è una sostanziale differenza, si ha a disposizione il codice sorgente per cui chiunque può verificarne ed allo stesso tempo, con le giuste competenze, aumentarne la sicurezza. Inoltre il software Closed Source può celare all’interno codice malevolo che può essere scoperto solo dopo un’attenta analisi del comportamento del software stesso. I programmi Open Source non hanno nulla da nascondere, sono di libero utilizzo e rispondono ai requisiti minimi per la sicurezza del software. In conclusione il ciclo di vita del software Open Source è palese e di pubblico dominio.
          In merito alla messa in sicurezza di applicativi di questo genere ho pubblicato un articolo qui.

          Distinti Saluti,
          Corrado.

  51. Salve Corrado,
    dopo aver risolto la questione del CIG (speriamo che vada bene così ho scaricato la versione 2.8), sto incontrando un secondo problema.
    Mi riferisco a gare che non sono ancora ultimate.
    In questo caso dovremmo poter lasciare il campo vuoto. Tuttavia il programma da un errore incorrect value: ” for column ‘dataUltimazione’at row 1 insert into… ecc. E’ certo che in caso di gare non ancora ultimate i dati vanno inseriti in modo parziale e completati nelle successive annualità. vedi faq c17

  52. Ciao ho un problema quando provo a fare il login nella home del sito mi da sempre errore interno al server

    • Salve,
      ho bisogno di più informazioni per risalire alla tipologia di errore. Detto così sembra che non riesca ad instaurare una connessione al DB.

  53. Buongiorno Corrado! Hanno di nuovo modificato le FAQ e ora non è più possibile pubblicare dove si vuole ma obbligatoriamente nella sezione Amministrazione trasparente/Bandi. Poichè nel file generato dal programma l’URL indicata è quella dove viene pubblicato il file, ovvero la cartella di AVCPWEB, che ne dici di questa soluzione:
    – copio i tre file (indice, 2012, 2013) In Bandi
    – a mano cambio l’URL nell’xml inserendo la nuova posizione

    Avrei anche una soluzione più semplice:
    – lascio tutto dov’è e in Bandi metto un link alla posizione nella cartella AVCPWEB

    Che ne pensi?

    Grazie ancora per la tua professionalità

    Pietro

    PS per i CIG a scavalco di anno 2012/2013 come state procedendo? Mi spiego create due volte lo stesso CIG per le due annualità e inserite l’importo liquidato nell’annualità 2013? Per la data di ultimazione nel 2012 inserite 00-00-0000?

    • Buongiorno Pietro,
      in amministrazione trasparente ho messo il link al dataset che è rimasto quello comunicato all’autorità.

      Per i CIG a cavallo tra due esercizi non faccio due registrazioni ma una sola che modifico quando liquido nell’anno successivo. Per quest’anno ormai è andata così per il prossimo ho intenzione di modificare la parte di creazione dei dataset in modo che sia possibile comunicare eventuali variazioni degli anni precedenti.

      • Grazie per la cortese risposta. Penso anch’io che a questo punto farò un link sotto bandi al file che si trova in AVCPWEB. Per quanto riguarda il CIG richiesto nel 2012 quindi mi confermi che inserisci i compensi liquidati nel 2013 sempre nel CIG registrato nel 2012? Ho qualche perplessità perchè si tratterebbe di due esercizi economici differenti. Ho due versioni che mi sono state date
        1- Inserire tutto nel 2012, anche la liquidazione e la data ultimazione 2013, registrando un unico CIG nel 2012
        2- Registrare uno stesso CIG nel 2012 e nel 2013 e inserire in quest’ultimo le somme liquidate. Nel primo 0 come indicato nelle FAQ e data 00-00-0000 (qui non ho un riferimento normativo)
        Sinceramente è l’unico punto su cui ho le idee ancora poco chiare.

    • @MARCELLO – Non so se ti riferisci alla fac b7 “…. sono tenute a pubblicare le informazioni di cui all’art.1, comma 32, della legge n.190/2012 all’interno della sezione ‘Amministrazione trasparente’, sotto-sezione di primo livello ‘Bandi di gara e contratti’, prevista dall’allegato A del D.lgs. n.33/2013 e dall’allegato 1 della delibera CIVIT (ora A.N.AC.) ”

      A mio avviso non si specifica il path fisico ma solo l’organizzazione logica. A conferma di ciò farei riferimento alla faq B1 “..’ necessario indicare l’URL completo dell’esatta pubblicazione del file XML ovvero dell’indice (es.: http://www.comune.(nome).it/190/appalti2013.xml).”

      Quindi in definitiva non credo sia obbligatorio identificare un percorso fisico.

  54. Ciao
    sto utilizzando la versione 2.8 ed ho gia inserito molti dati…
    è possibile copiare i file nella cartella AVCPweb senza resettare il database (e perdere i dati inseriti) ?

    Grazie x tutto 🙂

  55. Salve Corrado,

    visto che in questi giorni stiamo facendo un uso intenso del software ti volevo lasciare un feedback su eventuali possibili miglioramenti.

    Andando ad inserire l’elenco dei partecipanti, il programma fa prima una ricerca nel db per verificare se il partecipante è già stato inserito.

    In questo caso basta dare invio e viene automaticamente riportato.
    Tuttavia molti impiegati trovano un’istanza, ma poi vedendo che il campo codice fiscale rimane vuoto (nella maschera di selezione/ricerca), tentano di inserire il codice fiscale. Non riuscendoci inseriscono di nuovo il partecipante duplicando il database.

    Secondo me sarebbe molto utili che la query di ricerca aggiornasse anche il campo codice fiscale in questo modo ci si rende conto facilmente che tutti i dati sono OK e possono procedere tranquillamente all’invio. Spero di essere stato chiaro.

    Per quanto riguarda invece le gare non terminate noi stiamo procedendo inserendo manualmente 00-00-0000. Non so se la procedura è corretta ma è l’unico modo al momento disponibile.

    Saluti

    • Salve,
      ci lavorerò senz’altro ad una soluzione, tuttavia il controllo sul nuovo inserimento è vincolato al campo codicefiscale poichè la combo box mi consente di fissare due soli valori per ogni elemento e li uso per ID e RagioneSociale.
      Per le gare non ancora terminate lasciando vuoto il campo Data Ultimazione essa non viene riportata nell’XML e visualizzata 00-00-0000.

  56. GRAZIE per il prezioso contributo alla comunità Open e ai “colleghi” alle prese con il “problema AVCP”… mi hai risolto un grosso fastidio! 😉

    Mi permetto solo di suggerirti alcune cose (dalla più importante alla meno):
    1. di modificare il file “xmlfun.php” in modo che le sezioni “denominazione”, “oggetto” e “ragioneSociale” possano usare caratteri speciali senza scomodare CDATA, tramite la funzione htmlspecialchars();
    2. di non vincolare il controllo validità del codice fiscale per le aziende estere;
    3. di considerare l’utilizzo di UTF-8 al posto del vetusto ISO-8859-1;
    4. di non vincolare il nome del DB nel file sql allegato;
    5. di pensare ad una esportazione dei dati in tabelle html e/o pdf.

    Grazie per l’ottimo lavoro. 😀

    • Salve,
      la ringrazio per i suggerimenti soprattutto e poi per i complimenti, tuttavia, htmlspecialchars() non può essere utilizzata, in caso di caratteri accentati omette l’intera stringa.
      Il CharSet è forzato, nel caso ci fosse qualche carattere ISO, tramite iconv(CHARSET_ORIGINE,CHARSET_DESTINAZIONE,Stringa), si può anche eliminare CDATA, ma è da testare, ho fatto delle prove con i dati in mio possesso ed i dataset vengono convalidati correttamente.
      Il controllo di validità sul codice fiscale è impostato sulle regole dello XML Schema Definition.
      Il nome del DB è necessario per non creare pasticci, ma si può modificare con un semplice trova e sostituisci.
      Con la Release 2.9 è stato implementato un pulsante per la stampa in PDF della griglia formato AVCP.

  57. Ciao Corrado,
    nella validazione del file xml mi appare il seguente errore: fatal Errore 68: xmlParseEntityRef: no name on line 63.
    Ritengo sia dovuto alla presenza nella stringa del carattere speciale “&” (e-commerciale). Tale carattere purtroppo ricorre spesso nelle denominazioni dei partecipanti. Cosa mi suggerisci? C’è modo di convertirlo in UTF-8?
    Grazie
    Gianni

  58. Grazie per la gentile risposta, 😀

    mi permetto di insistere riguardo alla questione ISO/UTF8:
    è sufficiente aggiungere nel file “config.php” (subito dopo il comando “mysqli_select_db”) la riga…
    mysqli_query($conn,’SET NAMES utf8′);

    A quel punto potremo sbarazzarci di tutti i comandi “iconv” e far lavorare “htmlspecialchars” senza problemi, potendo così utilizzare nell’oggetto delle gare e nelle ragioni sociali tutti i caratteri UTF che vogliamo, dal semplice “’” (apostrofo) al “&” (che infastidisce l’xml), ma anche “ö”. 🙂

    In ultimo… con sempre più server web in UTF8, non sarebbe male convertire anche i file .php ISO in UTF8 (“gare.php”, “home.php”, “partecipanti.php”, “proponenti.php”, “utenti.php” e “xmlfun.php”) per via delle lettere accentate presenti, o almeno sostituire tali lettere con la codifica html “&xxx;”. :-/

    • Salve,
      hai fatto bene ad insistere, documentandomi sulla funzione htmlspecialchars aggiungendo ENT_QUOTES | ENT_XML1 ora funziona e la conversione avviene correttamente. Onde evitare equivoci ho aggiunto anche la forzatura UTF-8 nonostante sia predefinita.
      Faccio delle ulteriori prove e aggiorno l’articolo con la nuova versione.
      In merito alla connessione il DB è già in UTF-8 ma per sicurezza ho aggiunto la query di set-up come suggerita.
      Per il CHARSET dei files mi ritrovo a modificare l’applicativo sia da una postazione Windows sia da Linux con Eclipse, mi risulta comodo mantenere l’ISO attuale.
      Grazie per i preziosi suggerimenti, saluti,
      Corrado.

      • Occhio però che ENT_XML1 è stato aggiunto solo dalla versione PHP 5.4.0! Sulle versioni precedenti genera errori… 🙁

        Sei sicuro di non poter impostare il charset UTF-8 in entrambi i SO? Io attualmente sto lavorando su server linux in UTF-8, ma modifico i file in Windows (via samba) con un “banalissimo” Notepad++.

        Invece, non ho capito come fare per evitare il controllo della validità del codice fiscale per le aziende estere. Io ho importato (a manina via insert sql) tutte le nostre aziende estere con ‘00000000000’… funziona per la selezione ma non per un nuovo inserimento.

        • Una soluzione forzata sarebbe quella di bypassare il controllo del codice fiscale, non la vedo molto pulita ma in casi di emergenza, salva!
          Magari in futuro, con calma, si esegue il controllo solo per CF italiani.

          • Se può essere d’aiuto, per utilizzare i tuoi sorgenti ho dovuto scrivermi uno scriptino bash che con una combinazione dei comandi shell “iconv” e “file” converte tuttu i file di testo ISO-8859-1 in UTF-8 facendo i dovuti controlli e
            mantenendo permessi e timestamp.

  59. Salve Corrado,
    sono un tecnico e lavoro presso un Liceo e sono alle prese con questi adempimenti (che stanno per scadere).
    Ho usato wapserver creato il data base seguito le sue indicazioni, apro in locale e tutto fila liscio. Però appena provo ad inserire una gara evidenzia questo errore, “Errore nell’inserimento della gara:
    No database selected”.
    Può indicarmi dove sbaglio?
    Grazie e complimenti per il lavoro svolto!
    Valter

    • Salve,
      non hai l’accesso al database, devi controllare username, password e database nel file config.php. In genere quando si installa wampserver la password di root è vuota per cui se vuoi lasciarla vuota (sicurezza 0) devi modificare il campo password in password=”” nel config.php.

  60. Ti segnalo un piccolissimo bug della versione 2.11: se la variabile PUBLICURL non è impostata, la url al file xml non contempla la nuova cartella “xmldir”. Ciao e ancora complimenti.

  61. Ciao Corrado,
    grazie per tutte le modifiche. in questi giorni siamo tutti di corsa.
    Ho scaricato la versione 2.11 l’ho semplicemente sostituita alla 2.8.
    quando genero l’XML ottengo 2 errori:

    Il primo è una serie di

    Notice: Use of undefined constant ENT_XML1 – assumed ‘ENT_XML1’ in C:\Programmi\Apache Group\Apache2\htdocs\avcpweb\class\xmlfun.php on line 230

    Notice: Use of undefined constant ENT_XML1 – assumed ‘ENT_XML1’ in C:\Programmi\Apache Group\Apache2\htdocs\avcpweb\class\xmlfun.php on line 273

    L’altro è che il Il file viene generato all’interno della cartella: /xmldir/
    ma link della pagina non corrisponde al file.
    http://192.168.6.79/avcpweb/avcp-2013.xml manca /xmldir/

    • Il primo errore dovrebbe dipendere dal fatto che la costante ENT_XML1 è stata aggiunta con la versione php 5.4.0. Io ho la 5.2.9-2.
      Il secondo, invece, potrebbe essere di codice?

    • Salve,
      ho verificato che ENT_XML1 è stato introdotto in PHP dalla versione 5.4, per le versioni precedenti si può impostare all’inizio del file xmlfun.php
      #define XML_ENT1 16

      • Attenzione, hai scritto male la variabile (inverita).
        Non capisco la sintassi, ho provato con:
        define(“ENT_XML1″,”16”);
        pare che funzioni.

        Non saprei invece come procedere con il link
        che viene generato http://192.168.6.79/avcpweb/avcp-2013.xml che non corrisponde al file poiché manca /xmldir/

  62. non ho ancora fatto alcun inserimento ma provando a creare l’indice xml mi da un avviso sulla parte alta del browser: Notice: Use of undefined constant ENT_XML1 – assumed ‘ENT_XML1’ in /web/htdocs/www.nomesito.it/home/generazione-file-xml-avcp/class/xmlfun.php on line 438
    Che cosa significa?

    • Salve,
      ho verificato che ENT_XML1 è stato introdotto in PHP dalla versione 5.4, per le versioni precedenti si può impostare all’inizio del file xmlfun.php
      #define ENT_XML1 16

  63. Alla riga 26 del file xmlfun.php ho inserito #define ENT_XML1 16
    Ora il messaggio è questo

    #define ENT_XML1 16 Notice: Use of undefined constant ENT_XML1 – assumed ‘ENT_XML1’ in /web/htdocs/www.iccalcio.it/home/generazione-file-xml-avcp/class/xmlfun.php on line 439
    Scusami ma non conosco il php e probabilemente la cosa è semplice ma non capisco. Grazie mille per l’aiuto e per il tuo impegno.

  64. Ciao,
    io ho scritto questo semplice script bash per convertire tutti i sorgenti .php da ISO-8859-15 a UTF-8, funziona dappertutto, tranne che in “gare.php”, dove sembra che il carattere scelto per l’euro gli dia fastidio…

    #!/bin/bash
    PN=”$(basename $0)”
    if [ $# -eq 0 ]; then
    echo “Usage: $PN “;
    exit
    fi
    TMPFILE=”/tmp/$PN.$$”
    for fn in $*; do
    if [ -f “$fn” ]; then
    if [ “$(file -bi “$fn” | fgrep charset=iso-8859 | wc -l)” -eq 1 ]; then
    echo “$PN: converting file $fn to UTF-8 format …”
    iconv -f ISO-8859-15 -t UTF-8 “$fn” > “$TMPFILE”
    if [ $? -eq 0 ]; then
    touch -r “$fn” “$TMPFILE”
    cat “$TMPFILE” > “$fn”
    touch -r “$TMPFILE” “$fn”
    else
    echo “$PN: problems converting file $fn”
    fi
    fi
    else
    echo “$PN: cannot find file $fn”
    fi
    done
    rm -f “$TMPFILE”

  65. Ciao Corrado,
    scusami ma non ci riesco, ho installato la versione avcpweb ho seguito le tue istruzioni ma quando in locale apro il programma appena metto le credenziali mi da questo errore:
    (!) Warning: mysqli_connect () [ function.mysqli-connect ]: (28000/1045): Accesso negato per l’utente ‘admin’ @ ‘localhost’ (using password: YES) in C: \ wamp \ www \ avcpweb \ config \ config.php on line 46 cosa non ho fatto? grazie della tua pazienza

    • Salve,
      non si tratta di cosa non ha fatto, ma di cosa ha fatto male 😉
      Le credenziali username:admin, password:admin sono quelle per il Log-In della procedura. NON vanno messe nel config.php.
      Nel config.php ci vanno le credenziali di accesso al server MySQL. Nel caso di wamp sono username:root password: per una installazione standard di wamp, se non ha creato una password per l’utente root (cosa consigliata).

  66. Un lavoro bellissimo ed efficiente, complimenti!!!!!!
    Non so se quanto segue possa servirti, ma mi sembra doveroso dare una mano.

    Per il problema delle lettere accentate nel file home.php della cartella class ho usato questo:

    utf8_encode($content);

    Tutto ora appare correttamente.
    Se ci sono altre sezioni in cui ciò accade penso si possa fare la stessa cosa.

    Grazie del bel lavoro!!

  67. Salve sapete dirmi nel caso di errato url inserito nel modulo pdf da mandare all’avcp quale procedura seguire, magari mandare un altro modulo?

    Grazie

    • Riporto un estratto della FAQ B1 sul sito AVCP, sembra che sia ritenuto valido l’ultimo invio in ordine di data.

      La pubblicazione dovrà riguardare l’intera stazione appaltante, come individuata dal codice fiscale. In caso di molteplici comunicazioni PEC, verrà presa in considerazione esclusivamente l’ultima trasmessa in ordine di data. Non saranno prese in considerazione comunicazioni PEC con molteplici moduli PDF di comunicazione di ottemperanza agli obblighi di cui all’art.1, comma 32, della Legge n.190/2012. Pertanto, alla PEC inviata per la comunicazione del URL deve essere allegato un solo modulo PDF, nel formato indicato nelle specifiche tecniche.

  68. Ciao Corrado,
    prima di tutto un grande ringraziamento da parte mia e di tutti i miei colleghi del parco Nazionale dei Monti Sibillini. Siamo giunti all’ultimo giorno, quindi procediamo alla pubblicazione. Sto lavorando con la versione 2.12.

    Pare che tutto vada bene.
    Ti segnalo solamente che dopo aver impostato la costante PUBLICURL (con indirizzo del server remoto) il tag linkDataSet del file index viene correttamente aggiornato. Tuttavia il tag urlFile dello stesso file mantiene l’indirizzo della macchina di produzione. Procederò ad aggiornarlo a mano. Ma penso che anche questo vada aggiornato. Sbaglio? Grazie mille per tutto lo sforzo.

      • Scusami ho detto una stupidaggine. Un semplice refresh… Lavoro su due server e non mi ero reso conto che il link punta al server remoto (dove non avevo ancora trasferito i dati aggiornati…). Grazie di tutto!!!

    • Ciao Corrado,
      grazie mille per questo utilissimo software open source, co,plimenti per lo sviluppo!
      Vorrei chiederti un consiglio su degli errore che ottengo in fase di validazione.
      —-
      Errori rilevati durante la validazione:
      warning Errore 1839: Element ‘codiceFiscaleProp’: [facet ‘pattern’] The value ” is not accepted by the pattern ‘[0-9]{11,11}’. on line 18
      warning Errore 1824: Element ‘codiceFiscaleProp’: ” is not a valid value of the atomic type ‘{legge190_1_0}codiceFiscaleType’. on line 18
      —-
      Può essere dovuto al fatto che tutti i nostri settori proponenti hanno lo stesso codice fiscale?
      Il codice fiscale è: 00631280138

      Grazie mille

      • Grazie,
        l’errore è dovuto al fatto che su qualche struttura proponente manca il codice fiscale “The value ” is not accepted”

        Saluti,
        Corrado.

  69. Ciao, anzitutto complimenti per l’ottimo lavoro.
    Ho usato il software nella versione 2.9 per le adempienze della mia scuola: ha funzionato egregiamente!
    Volevo però porti qualche domanda:
    A quanto ho capito si può aggiornare tranquillamente il solo software perchè la struttura del database non viene toccata. E’ vero?
    Avevo provato la suddetta versione in locale un un server MAMP ed era tutto OK. Quando l’ho traferita sullo spazio web del nostro dominio all’nserimento dei dati compare questo messaggio:
    Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/Berlin’ for ‘CET/1,0/no DST’ instead in /var/www/vhosts/donmilani.it/httpdocs/avcpweb/class/gare.php on line 827 Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/Berlin’ for ‘CET/1,0/no DST’ instead in /var/www/vhosts/donmilani.it/httpdocs/avcpweb/class/gare.php on line 827

    Come posso risolvere?

    La versione 2.13 risolverebbe il problema?

    Anticipatamente grazie.

    • Salve,
      può installare le versioni aggiornate semplicemente sovrascrivendo i files della precedente, nel caso di modifiche al DB saranno comunicate sul blog e nello stesso changelog.
      Per risolvere il problema della timezone basta editare il file index.php e prima della direttiva session inserire date_default_timezone_set(‘Europe/Rome’); come si legge in seguito.

      
      ini_set('error_log',dirname(__FILE__).'/log/error.log');
      date_default_timezone_set('Europe/Rome');
      
      session_start();
      
      

      Saluti,
      Corrado.

  70. Buonasera Corrado. Due curiosità:

    1-come mai nel file indice c’è uno standalone=”yes” che però nelle specifiche non è riportato?

    2- L’anno di riferimento inserito è il 2014, mentre in altri software viene indicato 2013. E’ importante questa differenza?

    Grazie ancora,

    Pietro

    • Buonasera,
      sistemato lo standalone=”yes” che me lo porto dietro da una dichiarazione standard.
      Corretto annoRiferimento nel dataset indice impostato ad anno precedente all’eleborazione.

      • Buonasera Corrado, leggo solo ora perchè a me le notifiche arrivano a singhiozzi. Secondo te posso lasciare lo lo standalone=”yes” o è il caso eliminarlo? Per quanto riguarda la data credi sia il caso che corregga anche quella?

        Grazie,

        PC

        • Salve,
          può anche rimuoverlo, con la versione 2.14 è stata rimossa la direttiva e corretto l’anno di riferimento del dataset.
          Saluti,
          Corrado.

  71. Ciao, volevo segnalarti che utile dare come indicazione compatibilità Chrome e Firefox e IE dalla 10 in poi! Che ne pensi?

  72. Ciao Corrado, volevo chiederti se era possibile avere il lato front del software per dare la possibilità a tutti i cittadini di prendere visione dei dati inseriti. In altre parole, mi piacerebbe che i dati inseriti nel sw possano essere visibili, senza essere modificati, dagli utenti/cittadini per una maggiore trasparenza e dare la possibilit di un salvataggio dei dati stessi per esempio in pdf. Pensi che sia possibile farlo?

    • Salve,
      si può fare tutto, in fondo si tratta di visualizzare dati da un DB MySQL, semplicemente realizzabile con una pagina php. Tuttavia è doveroso ricordare che i dati resi disponibili tramite dataset xml rappresentano in sintesi i procedimenti adottati dalle aziende che, come impone la normativa inerente l'”Amministrazione Trasparente”, dovrebbero essere già visualizzabili all’utenza.
      Saluti,
      Corrado.

  73. Complimenti …. ottimo software…. non riesco tuttavia (con l’ultima versione pubblicata 2.14) ad aggiungere i gruppi tra i partecipanti….. sbaglio qualche cosa? grazie

    • Per inserire un raggruppamento bisogna cliccare sul pulsante Nuovo raggruppamento. Viene proposto un form per l’inserimento dei dati anagrafici del partecipante, se è già in archivio basta inserire i primi caratteri della ragione sociale per far comparire una lista dalla quale si può scegliere cliccando su un elemento a discesa. Inserendo anche il codice fiscale si forza l’inserimento di un nuovo partecipante. Solo nel caso dei raggruppamenti va inserito per primo il partecipante capogruppo selezionando dall’elenco a discesa 04-capogruppo. Per aggiungere un partecipante al raggruppamento NON si deve cliccare sul pulsante Nuovo Raggruppamento ma sul link del partecipante capogruppo nell’elenco dei partecipanti più in basso.

      Saluti,
      Corrado.

      • Grazie mille Corrado…. tutto chiaro …. ancora complimenti… Saluti Mauro

  74. Ciao Corrado, ho letto tutti i vecchi post sull’inserimento dei raggruppamenti.
    Ti volevo porre una questione diversa.

    Il problema riguarda l’introduzione non di 1 ma di più raggruppamenti.
    Quando si inserisce un primo raggruppamento tutto OK. Inserisco le varie associate utilizzando il link +04….; se però ora volessi inserire un secondo raggruppamento, non mi compare +04… e non posso quindi inserire le associate. In più se guardo nel database le due aziende capofile compaiono con lo stesso codice “raggruppamento”. Forse c’è qualcosa che non va?

    • Raggruppamenti
      Salve,
      non risultano comportamenti anomali con i raggruppamenti a parte quello che come primo partecipante va impostato 04-Capogruppo altrimenti non si può aggiudicare. Neanche nella versione 2.12.
      Se ci sono anomalie provi a fare un check del database.

      • Ho fatto la seguente prova:
        1 Rigenerato il data base (drop data base + rigenerazione ) per fare un test il il db vuoto;
        2 Ho inserito una gara test;
        3 Ho inserito un nuovo raggruppamento (tasto nero “+ Nuovo raggruppamento”, selezionando 04 CAPOGRUPPO – azienda ASDEP);
        4 Ho inserito un’ azienda associata (tramite il tasto tasto +04 CAPOGRUPPO a sinistra – azienda LOTUS) – OK sino a qui;
        5 Problema – Ho inserito un nuovo raggruppamento (tasto nero “+ Nuovo raggruppamento”, selezionando 04 CAPOGRUPPO – azienda Della Valle);

        Ottengo l’errore che vedi in figura: non mi appare il tasto +.
        Puoi vedere anche il db con i tre record.
        Sbaglio io la sequenza?? Per in serire un nuovo raggruppamento utilizzo di nuovo il tasto nero in altro a destra + Nuovo Raggruppamentoc:\buttare\avcp.png

    • Per darti più informazioni,
      1 ho inseguito in seguito cancellato l’azienda Della Valle (azioni X rossa)
      2 Provato ad inserire di nuovo il tasto nero + Nuovo Raggruppamento.
      Tuttavia la maschera che ottengo mi dice aggiungi partecipante al gruppo 1 (anche se di default mi propone 04-capogruppo) come puoi vedere http://www.sibillini.net/avcp1.png

      • l’ultima informazione che ti do riguarda l’id e la transizione della funzione nextRagg();

        Quando vado a premere + Nuovo raggruppamento, prima di cliccare osservo in basso l’indirizzo che si forma:
        …..&opt=save&id=1#addragg
        dando invio osservo che nella maschera di inserimento
        Aggiungi Partecipante, c’è una transizione da Raggruppamento 0 a Raggruppamento 1.
        La transizione dovrebbe invece forse essere da 1 a 2 ?
        Scusa se insisto, ma non saprei veramente cosa fare.

        A presto

        • Dunque, la prima azienda deve essere 04-CAPOGRUPPO, le altre invece associate o mandante, anche se viene proposto 04-CAPOGRUPPO, basta cambiare il ruolo.
          Per un nuovo raggruppamento è giusto cliccare su “+ Nuovo Raggruppamento”, la transizione a cui fai riferimento deve essere da 0 a 2 per il secondo raggruppamento poichè per default è 0. La funzione nextRagg() calcola il progressivo in relazione al lotto corrente. E’ sempre bene dare un’occhiata al log nella cartella log per individuare eventuali comportamenti anomali.

  75. Ciao Corrado, grazie al tuo lavoro siamo riusciti a compilare in tempo i file richiesti.

    Mi è venuto un paio di dubbi che ti volevo sottoporre:
    1) Sul file index è presente il tag anno di riferimento che viene automaticamente compilato su 2014 (forse è l’adempimento di questo anno)? E’ corretto anche se i dati si riferiscono a 2012 e 2013?

    2) L’anno prossimo andando a rigenerare il file ci sarà solo il dataset relativo al 2014 o li includerà tutti 2012,2013,2014?

    3) ci è capitato di scordare di inserire una gara, il call center ci ha indicato di lasciare i file intatti e comunicare via pec i dati relativi alla gara tralasciata. Questo mi ha fatto pensare che i tag siano importanti. Pertanto se nel prossimo anno verranno inclusi anche i dataset relativi al 2012 e 2013, forse è opportuno che la data sia quella vecchia e non venga aggiornata al momento di produzione del file. Che ne pensi? come si comporta il software?

    • Ciao Franco,
      annoRiferimento sul dataset indice è sempre l’anno precedente all’anno di generazione del dataset. Lo stesso vale per dataUltimoAggiornamento riferito ad ogni dataset compreso nell’indice. Tuttavia i dataset degli anni precedenti non vengono toccati dall’ultima generazione. Per ogni anno successivo è sufficiente generare solo l’anno precedente e l’indice.
      Probabilmente, ma non ne sono sicuro, dal prossimo anno verrà preso in considerazione solo l’anno precedente, anche se nell’indice sono inclusi tutti gli anni.
      Per quanto riguarda la conservazione della data per ogni dataset andrebbe storicizzata in una tabella. Magari in una prossima revisione si potrebbe realizzare un form di configurazione solo per l’amministratore che stabilisce le regole per la generazione e storicizzazione dei dataset.
      Saluti,
      Corrado.

  76. salve, è possibile generare con il software avcp, oltre l’xml, un report sottoforma di tabella (html, css) da pubblicare visualizzabile sul sito web?
    grazie
    Matteo

    • Salve,
      perchè generare un doppione? Mi vengono in mente due opzioni “on the fly”.
      La prima consiste nel creare un semplice visualizzatore tramite una singola pagina php, che legge il db e mostra le righe registrate.
      La seconda, un po più “cazzuta”, concedetemi il termine, consiste nel creare un foglio di stile miostile.xsl dove metteremo le direttive per la visualizzazione. Aggiungere infine in seconda riga ad ogni xml, o una loro copia per non interferire con l’AVCP, un bel

      <?xml-stylesheet type="text/xsl" href="miostyle.xsl"?>
      

      Quando il client aprirà il file xml verrà visualizzato secondo le direttive specificate nel file miostile.xsl.

      • Anche a me è stato chiesto da un istituto se è possibile avere una visualizzazione del contenuto del file xml in una pagina html. Il fatto è che non saprei fare il foglio di stile. 🙁

        • Salve,
          attualmente sono impegnato su più fronti, se riesco a ritagliarmi un po di tempo butto giù qualche riga di codice per un xsl standard.
          Ovviamente se qualche follower ha già realizzato qualcosa può tranquillamente condividere il lavoro.
          Saluti,
          Corrado.

  77. Ciao e anzitutto grazie mille, una domanda solo, non è possibile creare una vista della tabella gare, con ordinamento e ricerca anche dall’esterno? solo in visualizzazione….
    grazie ancora
    Manuel

    • E’ stata già affrontata la questione. Per ora nessuno ha condiviso qualcosa in merito. Io ci sto lavorando nei ritagli di tempo, che non è mai abbastanza.
      Saluti,
      Corrado.

  78. Ciao Corrado, scusa per il disturbo, volevo chiederti cosa dovrei fare per aggiornare il sw per la creazione degli xml dell’anno in corso (2014) e per gli anni successivi. Grazie

    • Ciao,
      semplicemente sostituire i sorgenti modificando opportunamente il config con i tuoi dati d’accesso al DB. Infine verificare se dalla versione precedente all’attuale ci sono stati cambiamenti al DB.
      Nel changelog c’è scritto tutto quanto è cambiato.

  79. Ciao Corrado, mi chiedevo, considerando le tue competenze, perchè non realizzi un software OpenSource di gestione delle fatture per la generazione della fattura elettronica? La Finanziaria 2008 ha stabilito che la fatturazione nei confronti delle amministrazioni dello stato debba avvenire esclusivamente in forma elettronica attraverso il Sistema di Interscambio. BASTEREBBE solo la creazione del file xml poi ciascu operatore economico potrebbe inviarle al SDI attraverso Pec dopo averlo firmato. saluti

  80. Ciao Corrado, scusami ancora, ho fatto come mi hai detto per quanto riguarda la creazione del file xml per gli anni successivi al 2013 (semplicemente sostituire i sorgenti modificando opportunamente il config con i tuoi dati d’accesso al DB. Infine verificare se dalla versione precedente all’attuale ci sono stati cambiamenti al DB. Nel changelog c’è scritto tutto quanto è cambiato.).
    Ma non si riesce a creare, validare alcun file xml per esempio per l’anno 2014. Cosa devo fare altro???
    Inoltre, considerando le nuove funzionalità del sw, quando vado a stampare mi esce questo errore: FPDF error: Not a PNG file: images/logo_azienda.png

    • Ciao,
      hai verificato che l’utente con cui gira apache (in genere apache/www-data) abbia i diritti di lettura/scrittura sulla cartella avcpweb ?

  81. Ciao Corrado al momento della generazione del dataset annuale è possibile scegliere da un elenco a discesa l’anno da considerare ma non trovo il 2014.
    Mi puoi aiutare?
    Grazie per la disponibilità

    • Salve,
      nell’elenco a discesa compaiono solo gli anni relativi alle gare registrate.
      Verifica l’anno scritto nella tabella.

      Saluti,
      Corrado.

  82. Salve Corrado,

    sto cominciando a utilizzare l’avcpweb per il prossimo anno.
    Dopo il 31 gennaio 2014, sono stati inseriti nuovi lotti con anno di riferimento 2014.
    Tuttavia dal menu XLM\Crea e valida sono presenti solo le voci 2012-2013.

    • E’ come prevede la normativa, consiglio la lettura delle FAQ

      http://www.avcp.it/portal/public/classic/FAQ/faq_legge190_2012

      Sezione A – FAQ riguardanti aspetti di carattere generale
      A1. Quali sono gli adempimenti previsti dall’art.1, comma 32, della legge 190 per gli enti aggiudicatori?

      La legge prevede altresì – entro il 31 gennaio di ogni anno – la pubblicazione di tabelle riassuntive dei dati riferiti agli anni precedenti, liberamente scaricabili in formato digitale standard aperto, da trasmettere digitalmente all’AVCP.

      Saluti,
      Corrado.

      • Ho letto la normativa ma avendo provato a registrare lotti relativi al 2014 (con data di inizio ad esempio 1.8.2014. e anno e di riferimento 2014) mi aspettavo di trovare nel menu a cascata la possibilità di generare il file xml realtivo ai lotti del 2014. Invece continua a comparire 2012-2013. Credo che sia lo stesso dubbio manifestato da “Anto” con la domanda precedente. Occorre forse aspettare l’entrata del 2015 per poter generare i file xml relativi al 2014? Il sistema non fa riferimento ai lotti già inseriti?

        • Salve,
          sconsiglio di creare i dataset per l’anno corrente in quanto potrebbe essere necessaria la modifica di alcuni lotti durante l’anno in corso. Tuttavia per “testare” la procedura si può intervenire manualmente sul codice al fine di creare i dataset anche per l’anno corrente. Va effettuata una sola modifica nel file class/xmlfun.php alla riga 426 dove inizia il ciclo for per la creazione della combobox includendo nel ciclo anche l’anno corrente con “< =" anzichè "<".
          for ($anno=$anno_inizio;$anno< $anno_fine;$anno++) { $dati[]=$anno; }

          Sostituire con


          for ($anno=$anno_inizio;$anno< =$anno_fine;$anno++) { $dati[]=$anno; }

  83. Ciao,
    mi complimento per l’ottimo lavoro e per averci fornito un aiuto validissimo per gli adempimenti cui siamo obbligati.
    Non ho capito, comunque, la procedura per la visualizzazione dell’elenco a discesa dei partecipanti già archiviati ai fini della relativa selezione per una nuova gara.

    Grazie

    • Salve,
      nel form di inserimento di un nuovo partecipante la casella di testo Ragione Sociale assume un comportamento di ricerca dinamica, digitando i primi caratteri della ragione sociale compare un elenco. Se il partecipante è nell’elenco basta selezionarlo e premere Aggiungi, N.B. Non digitare anche il codice fiscale. Il codice fiscale e la ragione sociale completa si digita per l’aggiunta di una nuova anagrafica partecipanti.

  84. Salve,
    innanzitutto grazie per aver messo a disposizione questo ottimo Tool per generare gli AVCP. Ho un problema quando provo a generare il file XML il sistma mi restituisce quest’errore:
    warning Errore 1839: Element ‘codiceFiscale’: [facet ‘pattern’] The value ” is not accepted by the pattern ‘[0-9]{11,11}’. on line 191
    warning Errore 1824: Element ‘codiceFiscale’: ” is not a valid value of the atomic type ‘{legge190_1_0}codiceFiscaleType’. on line 191
    warning Errore 1839: Element ‘codiceFiscale’: [facet ‘pattern’] The value ” is not accepted by the pattern ‘[0-9]{11,11}’. on line 201
    warning Errore 1824: Element ‘codiceFiscale’: ” is not a valid value of the atomic type ‘{legge190_1_0}codiceFiscaleType’. on line 201

    Come faccio a capire per quale ditta ho inserito un codice fiscale non valido?

    • Salve ho risolto andando a controllare il file che viene creato alla riga indicata e quindi ho messo a posto la gara che dava problemi.

      Colgo l’occasione per ringraziarla di nuovo per questo tool.

    • Salve,
      nelle ultime release è stato introdotto il controllo del codice fiscale al momento dell’inserimento, ma per quelli che sfuggono al controllo l’unico modo è individuare la ditta all’interno del file XML generato alla riga corrispondente “on line 191
      Sto lavorando ad una funzione aggiuntiva per controllare la congruenza dei lotti, controllo delle gare senza partecipanti, raggruppamenti errati, quanto prima seguirà un aggiornamento.

      Saluti,
      Corrado.

  85. Ciao Corrado. Ho già utilizzato il tuo software l’anno scorso e ha funzionato benissimo. Quest’anno in fase di creazione del file XML mi appare il seguente errore:
    Errori rilevati durante la validazione:
    fatal Errore 9: Input is not proper UTF-8, indicate encoding ! Bytes: 0xB0 0x74 0x72 0x69 on line 2062
    warning Errore 1872: The document has no document element. on line 0

    Potresti aiutarmi? Grazie!

    • Salve,
      probabilmente si tratta di un refuso di un copia incolla. In questo caso è necessario aprire il file xml, individuare la gara e correggere eventuali caratteri.
      Saluti,
      Corrado.

  86. Ciao, intanto complimenti per il lavoro svolto.
    Non riesco però a capire come funziona il discorso del raggruppamento: infatti se clicco sul relativo pulsante non succede nulla. In teoria (se ben comprendo) dovrebbe comparire una maschera dove inserire (o selezionare) i componenti di un raggruppamento… ma non accade nulla.
    Qualche suggerimento?

    Grazie e ciao!

    • Salve,
      se scorri in alto tra i commenti troverai la risposta. Comunque una volta cliccato su aggiungi raggruppamento va inserito il capofila. Per aggiungere altri partecipanti appartenenti al raggruppamento NON bisogna cliccare su aggiungi partecipante ma sul link del “partecipante” aggiunto come raggruppamento e visualizzato nella lista dei partecipanti.
      Saluti,
      Corrado.

  87. Buonasera, nell’utilizzo del software ci siamo scontrati con il limite massimo di 9.999.999,99€ negli importi delle gare. E’ un limite imposto dall’Autorità di Vigilanza?
    Per superare il problema ho modificato il db, tabella lotti, campi importoAggiudicazione ed importoLiquidato impostandoli a double(15,2) .
    Ho anche modificato gare.php, righe 928 e 939 impostando pattern=’\d{1,13}\.\d{1,2}’
    La generazione e validazione sembra andare a buon fine, c’è qualcos’aòtro a cui sarebbe il caso prestare attenzione?
    Grazie

    Cristiano

    • Grazie per l’aggiornamento, la prossima release sarà rilasciata con le nuove caratteristiche per l’importo.
      Si, effettivamente il tipo importo specificato nel TypesL190.xsd è 15,2.
      Saluti,
      Corrado.

  88. Complementi , è utilissimo il tuo software… se ci fosse anche l’esportazione delle gare per anno in html o in qualche altro formato (pdf, excel) sarebbe completo.
    Saluti ANGELO

  89. Anch’io sento molto la mancanza dell’esportazione delle gare divise per anno in formato leggibile, HTML o PDF (l’equivalente del signolo file in formato XML insomma). Poi il programma sarebbe praticamente perfetto! 😀

  90. Salve Corrado,
    i miei complimenti per l’ottimo applicativo! Vorrei chiederti se hai usato un framework particolare per lo sviluppo, mi piacerebbe infatti sviluppare un software che funziona con gli stessi presupposti di avcpweb. Complimenti per davvero.

    saluti
    Oreste

    • Grazie,
      l’esiguo lavoro del software non ha richiesto l’utilizzo di un framework che a mio parere lo avrebbe solo appesantito.
      Solo per la parte grafica ho utilizzato il framework Bootstrap. Lo chiamano framework perchè è un pacchetto personalizzabile completo di HTML, CSS e JS che nulla ha a che vedere con un framework applicativo tipo Zend per capirci.
      Saluti,
      Corrado.

      • Ho sbirciato nel codice, ho trovato la libreria di bootstrap e il sito di riferimento. Davvero un ottima scelta, ho trovato esempi di codice che potrebbero fare al caso mio. 🙂

        Grazie e ancora complimenti.

  91. Ciao Corrado
    ho testato la tua applicazione per il mio Dipartimento e devo dire che è veramente ben fatta e funziona a dovere e i miei dirigenti hanno pensato di estendere l’uso anche ad altre strutture.
    non potendo gestire più strutture contemporaneamente ho proivato a creare più istanze dell’applicativo e qui mi cominciano i problemi.
    Nel senso che se accedo alla prima istanza (http://localhost/m01_avcp) come amministratore1 (impostata una password diversa da admin) e successivamente in una nuova finestra accedo alla seconda istanza (http://localhost/m02_avcp) mi ritrovo già loggato come amministratore1.
    puoi darmi qualche indicazione per far si che possano coesistere più istanze dell’applicazione ognuna con le sue utenze?
    grazie in anticipo

    • Salve,
      così al volo, una soluzione veloce sarebbe modificare la variabile di sessione “autenticato” sulla riga 45 del file index.php per ogni istanza.
      if(!isset($_SESSION[‘autenticato_01’])) per l’istanza m01_avcp
      if(!isset($_SESSION[‘autenticato_02′])) per l’istanza m02_avcp

      E’ ovvio che anche il DB deve essere diverso per ogni sessione.

      Saluti,
      Corrado.

  92. Ciao Corrado
    dopo le modifiche effettuate su richiesta del collega Volpicelli è sopraggiunta una nuova necessità, ovvero :
    nel caso in cui la gara non sia stata aggiudicata per mancanza di partecipanti, il sistema segnala l’anomalia.
    La soluzione potrebbe essere quella di inserire sulla gara un flag “non aggiudicata” ed un eventuale campo note (da utilizzare per i casi più disparati, in questo caso per indicare la motivazione della non aggiudicazione) (occorrera modificare la tabella gare)
    l’utilizzo di questo flag permetterebbe così di bypassare il test sui partecipanti e quindi di passare il test di verifica ma soprattutto di mantenere tutti i CIG presi presso l’ANAC.
    queste due informazioni dovrebbero essere visibili anche sulla visualizzazione delle gare.
    oltre a ciò volevo segnalarti un bug : su alcune risoluzioni il footer nasconde le informazioni in basso.
    potresti effettuare queste modifiche?

  93. Ciao Corrado in merito al tuo applicativo mi hannoi fatto notare che l’inserimento di gare, per le quali è stato staccato un CIG, non aggiudicate per mancanza di partecipanti, per esempio, generano un errore in fase di validazione e mi hanno chiesto se era possibile trovare una soluzione. Soluzione che, a mio avviso, potrebbe essere quella di inserire sulla tabella delle gare due campi : un flag (non aggiudicata) e un campo note (da poter utilizzare per svariati motivi). Ciò comporterebbe anche la visualizzazione delle due colonne nell’elenco gare e conseguente modifica del css (quest’ultimo a risoluzioni basse genera la visualizzazione del footer sopra pulsanti e/o campi). Altro problema sentito dagli utenti è quello di rivolgersi al proprio amministratore per effettuare il cambio della password.
    hai la possibilità di apportare queste modifiche all’applicativo? per noi sarebbe molto utile.
    resto in attesa di una tua risposta e con l’occasione faccio tanti auguri di buone feste.

  94. Ciao Corrado, ho installato l’ultima versione del sw; un collega ha cominciato a caricare i dati per l’imminente scadenza del 31 gennaio. Quando va a creare e validare il file il sw da questo errore:
    warning Errore 1839: Element ‘codiceFiscaleProp’: [facet ‘pattern’] The value ‘CODICEFISCALE’ is not accepted by the pattern ‘[0-9]{11,11}’. on line 18
    warning Errore 1824: Element ‘codiceFiscaleProp’: ‘CODICEFISCALE’ is not a valid value of the atomic type ‘{legge190_1_0}codiceFiscaleType’. on line 18

    Le informazioni inserite sono corrette.
    Saluti

    • Ciao,
      modifica il file config.php con il tuo percorso preferito.
      //Cartella dove pubblicare i dataset
      define(‘XMLDIR’, “xmldir/”);

      Tanti Auguri

Comments are closed.