function pps_ajax_callback()
{
    $tprezzi = new TabellaPrezziController();
    if (isset($_POST['id_type'])) {
        //riconosciuto il parametro POST che identifica il tipo di infisso
        //si può avere id_type = F per una finestra e id_type = P per una portafinestra
        //bisogna eseguire una query che ritorni il numero di ante a seconda tel type
        $parameters['type'] = $_POST['id_type'];
        unset($_POST['id_type']);
        $result = $tprezzi->getAnte($parameters);
        echo json_encode($result);
    }
    if (isset($_POST['id_type_2']) && isset($_POST['ante'])) {
        $parameters['type'] = $_POST['id_type_2'];
        $parameters['ante'] = $_POST['ante'];
        unset($_POST['id_type_2']);
        unset($_POST['ante']);
        $result = $tprezzi->getTabelleByParameters($parameters);
        echo json_encode($result);
    }
    if (isset($_POST['id_tabella'])) {
        //ottengo i dati relativi ad una determinata tabella
        $result = $tprezzi->getTabellaById($_POST['id_tabella']);
        unset($_POST['id_tabella']);
        echo json_encode($result);
    }
    if (isset($_POST['id_tabella_2']) && isset($_POST['row']) && isset($_POST['col'])) {
        $result = $tprezzi->getPrezzo($_POST['id_tabella_2'], $_POST['row'], $_POST['col']);
        unset($_POST['col']);
        unset($_POST['row']);
        unset($_POST['id_tabella_2']);
        echo json_encode($result);
    }
    if (isset($_POST['preventivo'])) {
        global $DIR_TEMP_IMG_PREVENTIVI;
        global $DIR_TEMP_IMG_PREVENTIVI_THUMB;
        global $DIR_IMG_PREVENTIVI;
        global $DIR_IMG_PREVENTIVI_THUMB;
        global $URL_IMG_PREVENTIVI;
        $pController = new PreventivoController();
        $preventivo = $_POST['preventivo'];
        $p = new Preventivo();
        $p = $pController->convertToPreventivo($preventivo);
        //1. salvare i dati nel database
        //2. comporre il pdf
        //3. creare la mail e allegarci il pdf
        $result = array();
        //1. salvo il preventivo nel database
        $idPreventivo = $pController->savePreventivo($p);
        if ($idPreventivo != false) {
            $result['salvato'] = true;
            //1a. Salvo le immagini del preventivo nel DB
            $temp = $p->getFoto();
            //ho ottenuto un array di nomi di foto
            //potrebbero anche non esserci foto, in quel caso $temp = null
            if ($temp != null) {
                foreach ($temp as $item) {
                    $foto = new Foto();
                    $foto->setIdPreventivo($idPreventivo);
                    $foto->setNomeFoto($item);
                    //salvo la voto
                    if ($pController->saveFoto($foto) != false) {
                        //la foto è stata salvata.
                        //devo copiare la foto dalla cartella temporanea alla cartella definitiva
                        copy($DIR_TEMP_IMG_PREVENTIVI . $item, $DIR_IMG_PREVENTIVI . $item);
                        copy($DIR_TEMP_IMG_PREVENTIVI_THUMB . $item, $DIR_IMG_PREVENTIVI_THUMB . $item);
                        //devo eliminare la foto e il thumb dalla cartella temporanea
                        unlink($DIR_TEMP_IMG_PREVENTIVI_THUMB . $item);
                        unlink($DIR_TEMP_IMG_PREVENTIVI . $item);
                    }
                }
            }
            //2. compongo il pdf
            $pdf = $pController->createPDF($idPreventivo);
            if ($pdf['url'] != false) {
                //inserisco l'url del pdf nel record del preventivo appena salvato
                $pController->updateUrlPdf($idPreventivo, $pdf['url']);
                $result['pdf'] = $pdf['url'];
                //3. Invio della mail
                if ($pController->sendEmailtoAdmin($idPreventivo, $pdf['dir'])) {
                    $result['mail'] = true;
                } else {
                    $result['mail'] = false;
                }
            } else {
                $result['pdf'] = false;
            }
        } else {
            $result['salvato'] = false;
        }
        echo json_encode($result);
    }
    //ascoltatore sul cancella file
    if (isset($_POST['nomeFile'])) {
        global $DIR_TEMP_IMG_PREVENTIVI;
        global $DIR_TEMP_IMG_PREVENTIVI_THUMB;
        //rimuovo il thumbnail
        unlink($DIR_TEMP_IMG_PREVENTIVI_THUMB . $_POST['nomeFile']);
        unlink($DIR_TEMP_IMG_PREVENTIVI . $_POST['nomeFile']);
    }
}
 /**
  * La funzione esegue una query sul db per ottenere tutte le foto di un determinato
  * preventivo e restituisce un array di oggetti foto
  * @param type $idPreventivo
  * @return array
  */
 public function getFotoPreventivo($idPreventivo)
 {
     $results = array();
     $foto = $this->fDAO->getFotoPreventivo($idPreventivo);
     foreach ($foto as $item) {
         $i = new Foto();
         $i->setIdPreventivo($item->id_preventivo);
         $i->setNomeFoto($item->nome_foto);
         $i->setUrlFoto($item->url_foto);
         $i->setUrlThumbFoto($item->url_thumb_foto);
         array_push($results, $i);
     }
     return $results;
 }