Questo invece è il file Ordine.class.php
Codice PHP:
<?php
require_once( 'php/entity/Cliente.class.php' );
require_once( 'php/entity/Prodotto.class.php' );
require_once( 'php/database/Archivio.class.php' );
class Ordine {
private $_id;
private $_data;
private $_stato;
private $_Totale;
private $_cliente;
private $_prodotti = array( );
private function get_array_vars( )
{
$vars = array( );
$vars = $this->get_array_vars_ordine( );
$vars[prodotti] = $this->getProdotti( );
return $vars;
}
private function get_array_vars_ordine( )
{
$vars_ordine = array
(
id => $this->getId( ),
stato => $this->getStato( ),
Totale => $this->getTotale( ),
data => $this->getData( ),
cliente => $this->getCliente( )->getCodiceFiscale( )
);
return $vars_ordine;
}
private function get_array_vars_partecipazione( )
{
foreach( $this->getProdotti( ) as $prodotto )
{
$vars_partecipazione[] = array
(
ordine => $this->getId( ),
prodotto => $prodotto[prodotto]->getCodice( ),
copie => $prodotto[copie]
);
}
return $vars_partecipazione;
}
public function __construct( & $cliente, & $prodottiOrdinati )
{
$this->setId( 0 );
$this->setData( "" );
$this->setTotale( $ordine->Totale );
$this->setStato( "" );
$this->setCliente( $cliente );
$this->setProdotti( $prodottiOrdinati );
}
public function setId( $id )
{
$this->_id = $id;
}
public function setData( $data )
{
$this->_data = $data;
}
public function setTotale( $Totale )
{
$this->_totale = $Totale;
}
public function setStato( $stato )
{
$this->_stato = $stato;
}
public function setSimo( $simo )
{
$this->_simo = $simo;
}
public function setCliente( & $cliente )
{
$this->_cliente = $cliente;
}
public function setProdotti( & $prodotti )
{
$this->_prodotti = $prodotti;
}
public function getId( )
{
return $this->_id;
}
public function getData( )
{
return $this->_data;
}
public function getTotale( )
{
return $this->_Totale;
}
public function getStato( )
{
return $this->_stato;
}
public function getCliente( )
{
return $this->_cliente;
}
public function getProdotti( )
{
return $this->_prodotti;
}
public function creaScheda( )
{
$schedaOrdine =& new SchedaOrdine;
$schedaOrdine->crea( $this->get_array_vars( ) );
return $schedaOrdine;
}
public function salvaDati( )
{
Archivio::inserisci( "ordini", $this->get_array_vars_ordine( ) );
foreach( $this->get_array_vars_partecipazione( ) as $var_partecipazione )
{
Archivio::inserisci( "partecipazioni", $var_partecipazione );
}
}
public function modificaStato( $statoStr )
{
$tabellaStr = "ordini";
$valoriArr = array( stato => $statoStr );
$condizioniArr = array( id => $this->getId( ) );
Archivio::modifica( $tabellaStr, $valoriArr, $condizioniArr );
}
}
?>
questo è il file ArchivioOrdini.class.php
Codice PHP:
<?php
require_once( 'php/database/Archivio.class.php' );
require_once( 'php/database/ArchivioClienti.class.php' );
require_once( 'php/database/ArchivioProdotti.class.php' );
require_once( 'php/entity/Ordine.class.php' );
abstract class ArchivioOrdini extends Archivio {
public static function generaIdUnivoco( )
{
$selezioni = array
(
"id"
);
$tabelle = array
(
"ordini"
);
$condizioni = array
(
);
$risultato = parent::ricerca( $selezioni, $tabelle, $condizioni );
return parent::contaRighe( $risultato ) + 1;
}
public static function inserisciOrdine( & $ordine )
{
$ordine->setId( self::generaIdUnivoco( ) );
$valoriOrdine = array
(
"id" => $ordine->getId( ),
"stato" => $ordine->getStato( ),
"Totale" => $ordine->getTotale( ),
"data" => $ordine->getData( ),
"cliente" => $ordine->getCliente( )->getCodiceFiscale( )
);
$risultato1 = Archivio::inserisci( "ordini", $valoriOrdine );
foreach( $ordine->getProdotti( ) as $prodotto )
{
$valoriPartecipazione = array
(
"ordine" => $ordine->getId( ),
"prodotto" => $prodotto[prodotti]->getCodice( ),
// GESTIRE BENE LE COPIE
"copie" => $prodotto[copie]
);
$risultato2 = Archivio::inserisci( "partecipazioni", $valoriPartecipazione );
}
}
public static function cercaOrdinePerStato( $stato )
{
$condizioni = array
(
"stato" => $stato
);
return self::cercaOrdine( $condizioni );
}
public static function cercaOrdine( $condizioniOrdine )
{
$selezioniOrdine = array
(
);
$tabelleOrdine = array
(
"ordini"
);
$risultatoOrdine = Archivio::ricerca( $selezioniOrdine, $tabelleOrdine, $condizioniOrdine );
$ordiniTrovati = array( );
for( $i = 0; $i < Archivio::contaRighe( $risultatoOrdine ); $i++ )
{
$riga = Archivio::recuperaRighe( $risultatoOrdine );
$cliente =& new Cliente;
$prodotti = array( );
$ordiniTrovati[$i] =& new Ordine( $cliente, $prodotti );
$ordiniTrovati[$i]->setId( $riga[id] );
$ordiniTrovati[$i]->setStato( $riga[stato] );
$ordiniTrovati[$i]->setTotale( $riga[Totale] );
$ordiniTrovati[$i]->setData( $riga[data] );
$cliente = ArchivioClienti::cercaClientePerCodiceFiscale( $riga[cliente] );
$ordiniTrovati[$i]->setCliente( $cliente );
}
foreach( $ordiniTrovati as $ordineTrovato )
{
$selezioniPartecipazione = array
(
"prodotto",
"copie"
);
$tabellePartecipazione = array
(
"partecipazioni"
);
$condizioniPartecipazione = array
(
"ordine" => $ordineTrovato->getId( )
);
$risultatoPartecipazione = Archivio::ricerca( $selezioniPartecipazione, $tabellePartecipazione, $condizioniPartecipazione );
$prodotti = array( );
for( $i = 0; $i < Archivio::contaRighe( $risultatoPartecipazione ); $i++ )
{
$riga = Archivio::recuperaRighe( $risultatoPartecipazione );
$prodotti[$i][prodotti] = ArchivioProdotti::cercaProdottoPerCodice( $riga[prodotto] );
$prodotti[$i][copie] = $riga[copie];
}
$ordineTrovato->setProdotti( $prodotti );
}
return $ordiniTrovati;
}
public static function modificaStatoOrdine( $stato, $id )
{
$valori = array
(
"stato" => $stato
);
$condizioni = array
(
"id" => $id
);
parent::modifica( "ordini", $valori, $condizioni );
}
}
?>
Grazie.. mi potreste dare una mano?
G