/**
  * La funzione riceve un array associativo preventivo e restituisce un oggetto preventivo
  * @param type $item
  * @return \Preventivo
  */
 public function convertToPreventivo($item)
 {
     //print_r($item);
     $p = new Preventivo();
     $p->setData($item['data']);
     $p->setIdUtente($item['idUser']);
     $p->setNomeRivenditore($item['rivenditore']);
     $p->setClienteNome($item['clienteNome']);
     $p->setClienteVia($item['clienteVia']);
     $p->setClienteTel($item['clienteTel']);
     $p->setSpesaTotale($item['totale']);
     $p->setNote($item['note']);
     $p->setTipo($item['tipo']);
     $p->setClienteTipo($item['clienteTipo']);
     $p->setClienteEmail($item['clienteEmail']);
     $p->setClienteCF($item['clienteCF']);
     $p->setCodiceRivenditore($item['codiceRivenditore']);
     $p->setAgente($item['agente']);
     $p->setScontoRivenditore($item['scontoRivenditore']);
     $p->setTrasporto($item['trasporto']);
     //gli ho passato un array di nomi di foto
     //NB. Non è un oggetto foto
     //NB2. Potrebbero non aver incluso foto
     if (isset($item['foto'])) {
         $fotos = array();
         foreach ($item['foto'] as $nomeFoto) {
             array_push($fotos, $nomeFoto);
         }
         $p->setFoto($fotos);
     } else {
         $p->setFoto(null);
     }
     $infissi = array();
     foreach ($item['infissi'] as $item) {
         array_push($infissi, $this->convertToInfisso($item));
     }
     $p->setInfissi($infissi);
     return $p;
 }
 /**
  * La funzione salva nel database un preventivo restituendo in caso di successo 
  * l'id del record nel database
  * @param Preventivo $p
  * @return type
  */
 public function savePreventivo(Preventivo $p)
 {
     try {
         //imposto il timezone
         date_default_timezone_set('Europe/Rome');
         $timestamp = date('Y-m-d H:i:s', strtotime("now"));
         $this->wpdb->insert($this->table, array('data' => $timestamp, 'id_utente' => $p->getIdUtente(), 'nome_rivenditore' => $p->getNomeRivenditore(), 'cliente_nome' => $p->getClienteNome(), 'cliente_via' => $p->getClienteVia(), 'cliente_tel' => $p->getClienteTel(), 'spesa_totale' => $p->getSpesaTotale(), 'visionato' => 0, 'note' => $p->getNote(), 'tipo' => $p->getTipo(), 'cliente_tipo' => $p->getClienteTipo(), 'cliente_email' => $p->getClienteEmail(), 'cliente_cf' => $p->getClienteCF(), 'codice_rivenditore' => $p->getCodiceRivenditore(), 'agente' => $p->getAgente(), 'sconto_rivenditore' => $p->getScontoRivenditore(), 'trasporto' => $p->getTrasporto()), array('%s', '%d', '%s', '%s', '%s', '%s', '%f', '%d', '%s', '%d', '%s', '%s', '%s', '%s', '%s', '%f', '%f'));
         //restituisco l'id del record di preventivo inserito
         return $this->wpdb->insert_id;
     } catch (Exception $ex) {
         _e($ex);
         return false;
     }
 }
 public function createBody(Preventivo $p, $ordine = false)
 {
     define('EURO', chr(128));
     //scrivo i dati generali del preventivo
     $infissi = $p->getInfissi();
     //creo l'array associativo
     $info_preventivo = array();
     $info_preventivo['Data'] = getTime($p->getData());
     $info_preventivo['Codice Rivenditore'] = $p->getCodiceRivenditore();
     $info_preventivo['Rivenditore'] = $p->getNomeRivenditore();
     $info_preventivo['Agente'] = $p->getAgente();
     $info_preventivo['Tipo Cliente'] = $p->getClienteTipo();
     $info_preventivo['Riferimento'] = $p->getClienteNome();
     $info_preventivo['CF/PIVA'] = $p->getClienteCF();
     $info_preventivo['Indirizzo'] = $p->getClienteVia();
     $info_preventivo['Telefono'] = $p->getClienteTel();
     $info_preventivo['Email'] = $p->getClienteEmail();
     $tipo = "";
     if ($ordine == false) {
         if ($p->getTipo() == 0) {
             $tipo = 'Preventivo';
         } else {
             $tipo = 'Conferma Ordine';
         }
     } else {
         $tipo = "Conferma Ordine";
     }
     $info_preventivo['Documento'] = $tipo;
     //conto tutti gli infissi ordinati comprensivi di copie
     $countInfissi = 0;
     foreach ($infissi as $i) {
         $inf = new Infisso();
         $inf = $i;
         $countInfissi += $inf->getNInfisso();
     }
     $info_preventivo['Totale Infissi'] = $countInfissi;
     $info_preventivo['Totale'] = EURO . ' ' . $p->getSpesaTotale();
     if ($p->getScontoRivenditore() != '' && $p->getScontoRivenditore() != 0) {
         $totaleScontato = number_format($p->getSpesaTotale() - floatval($p->getScontoRivenditore()) * $p->getSpesaTotale() / 100, 2);
     } else {
         $totaleScontato = ' ';
     }
     $sconto = '';
     if ($p->getScontoRivenditore() != 0) {
         $sconto = $p->getScontoRivenditore() . ' %';
     }
     $info_preventivo['Sconto Rivenditore'] = $sconto;
     $info_preventivo['Totale scontato'] = EURO . ' ' . $totaleScontato;
     $trasporto = ' ';
     if ($p->getTrasporto() != '' && $p->getTrasporto() != 0) {
         $trasporto = number_format($p->getTrasporto(), 2);
     }
     $info_preventivo['Costo trasporto'] = EURO . ' ' . $trasporto;
     $info_preventivo['Note'] = $p->getNote();
     $this->printPdfTable($info_preventivo);
     /*
     //stampo una linea
         $this->Ln(3);
         $this->Cell(180,0,'',1);
         $this->Ln(3);
     */
     //scrivo la tabella per gli infissi
     $this->printTableInfissi($infissi);
 }