Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    7

    Calcolo costo...sarà facile eppur mi son impuntato

    Calcolo costo...lo so è facile ma mi sono impuntato

    --------------------------------------------------------------------------------

    Ciao a tutti... sto implementando un progetto per l'acquisto online di materiale per Hometheater... e vengo subito al dunque...
    Adesso ho un problema.. praticamente tramite questo codice mi sono riesco a calcolare il costo per ogni singolo prodotto ad esempio se compro 2 amplificatori mi moltiplica semplicemente 2*costoampli e me lo mostra a video... questa routine viene fatta per ciascun prodotto messo nel carrello quindi a video ho una cosa del genere

    Nel tuo carrello hai 2 prodotti.

    216 cuffie BALANCE K216 AFC costo/unita € 142 ( 2 ) 284€

    2106 amplificatore AVR-2106 costo/unita € 561 ( 4 ) 2244€

    adesso io vorrei fare il calcolo del costo totale .. ma siceramente non so come fare? lo so che è una domanda banale.. ma mi date una mano?


    ecco il codice del programma (la variabile del costo per ogni singola prodotto si chiama Totale)


    Citazione:
    <?php

    require_once( 'Interfaccia.inc.php' );

    class BookSchedaCarrello extends BookScheda {

    public function __construct( $carrello )
    {
    parent::__construct( );
    $prodotti =& $carrello->getProdotti( );
    if( count( $prodotti ) == 0 || $prodotti == null )
    {
    $testo = "Carrello vuoto";
    }
    else if( count( $prodotti ) == 1 )
    {
    $testo = "Nel tuo carrello hai 1 prodotto.";
    }
    else
    {
    $testo = "Nel tuo carrello hai " . count( $prodotti ) . " prodotti.";
    }
    $this->aggiungiRigaSpan3( $testo, "titoloScheda" );
    $this->aggiungiRigaVuota( );
    if( count( $prodotti ) != 0 && $prodotti != null )
    {
    for( $i = 0; $i < count( $prodotti ); $i++ )
    {
    // Crea l'icona di eliminazione
    $elimina =& new htmlLink;
    $eliminaImg =& new htmlImage;
    $eliminaImg->setWidth( "22px" );
    $eliminaImg->setUrl( "images/elimina.png" );
    $eliminaImg->setTitle( "Elimina il prodotto dal carrello" );
    $eliminaImg->setAlternate( "" );
    $url = "eliminaDalCarrello.php?id=$i";
    $elimina->setUrl( $url );
    $elimina->append( $eliminaImg );

    // Crea l'icona di aumento della quantità
    $up =& new htmlLink;
    $upImg =& new htmlImage;
    $upImg->setWidth( "22px" );
    $upImg->setUrl( "images/up.png" );
    $upImg->setTitle( "Aggiungi una unità" );
    $upImg->setAlternate( "" );
    // SISTEMARE L'URL
    $url = "modificaCopie.php?id=$i&copie=su";
    $up->setUrl( $url );
    $up->append( $upImg );

    // Crea l'icona di diminuzione della quantità
    $down =& new htmlLink;
    $downImg =& new htmlImage;
    $downImg->setWidth( "22px" );
    $downImg->setUrl( "images/down.png" );
    $downImg->setTitle( "Elimina una unità" );
    $downImg->setAlternate( "" );
    // SISTEMARE L'URL
    $url = "modificaCopie.php?id=$i&copie=giu";
    $down->setUrl( $url );
    $down->append( $downImg );

    // Crea la tabellina ed appende ad essa le 3 icone
    $tabellina =& new htmlTable;
    $tabellina->setSize( 1, 3 );
    $tabellina->setBorder( 0 );
    $tabellina->Cells[0][0]->append( $elimina );
    $tabellina->Cells[0][1]->append( $up );
    $tabellina->Cells[0][2]->append( $down );

    // Conteggia il costo totale
    $numberProdotticarrello = $prodotti[$i][copie] ;
    $costoProdottocarrello = $prodotti[$i][prodotti]->getprezzoVendita( );
    $Totale = $numberProdotticarrello*$costoProdottocarrello;

    // Crea il titolo con associata la quantità
    $titoloProdotto = $prodotti[$i][prodotti]->getTipologia( ) ." " . $prodotti[$i][prodotti]->getTitolo( ) . " costo/unita € ". $prodotti[$i][prodotti]->getprezzoVendita( ) . " ( " . $prodotti[$i][copie] . " ) ". $Totale ;

    // Aggiunge alla scheda la riga con codice del libro, titolo e pulsanti
    $this->aggiungiRigaSpan111( $prodotti[$i][prodotti]->getCodice( ), $titoloProdotto, $tabellina, "", "valoreScheda", "" );
    }
    }
    }
    //$this->aggiungiRigaSpan111( "", "", $importo, "", "", "valoreScheda" );
    }

    ?>




    Grazie

    Simo

  2. #2
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Non ho letto il tuo codice ma basta che fai la somma della roba che ha comprato un cliente
    Esempio banalissimo

    $query = "SELECT SUM(quantita*prezzo) FROM prodotti WHERE cliente='01' "
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    7
    il problema è che nel momento in cui l utente fa l'ordine i dati relativi a quell 'ordine non sono ancora salvati all'interno del database ordini e di conseguenza non posso fare la query... qualche altra soluzione?...

  4. #4
    Utente di HTML.it L'avatar di ivy_76
    Registrato dal
    Dec 2004
    Messaggi
    1,822
    Io faccio diversamente da te. Io salvo di dati che il cliente ordina in una tabella "temporanea" cioè una tabella non definitiva. Tramite questa tabella posso calcolare qualsiasi cosa. Poi se l'utente conferma l'ordine quei dati vengono copiati nella tabella effettiva e svuoto la tabella temporanea altrimenti la tabella temporanea viene svuotata cosi come gli ordini fittizi che sono stati fatti.
    TORTA DI RISO .. F I N I T A !!

    Da M.C.S.A. a impiegato pubblico :-(

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    7
    grazie ad un guru del php... sono riuscito a trovare l'inghippo.... ma adesso avrei quest'altro problemino... mica mi potresti dare una mano?

    Grazie

    Simo


    ciao a tutti... ho il seguente problema. .vorrei salvare il valore della variabile $Totale del file bookschedacarello.php dentro in mysql all 'interno del database "ordini" appunto sotto il campo "spesa" tramite il file ordina.php ...
    come posso fare una cosa del genere?

    Mi date una mano?




    Questo è il file bookschedacarello.php (quello relativo al tasto ordina una volta visualizzato il carrello)



    Codice PHP:
    <?php

    require_once( 'Interfaccia.inc.php' );

    class 
    BookSchedaCarrello extends BookScheda {

    public function 
    __construct$carrello )
    {
    parent::__construct( );
    $prodotti =& $carrello->getProdotti( );
    if( 
    count$prodotti ) == || $prodotti == null )
    {
    $testo "Carrello vuoto";
    }
    else if( 
    count$prodotti ) == )
    {
    $testo "Nel tuo carrello hai 1 prodotto.";
    }
    else
    {
    $testo "Nel tuo carrello hai " count$prodotti ) . " prodotti.";
    }
    $this->aggiungiRigaSpan3$testo"titoloScheda" );
    $this->aggiungiRigaVuota( );
    if( 
    count$prodotti ) != && $prodotti != null )
    {
    for( 
    $i 0$i count$prodotti ); $i++ )
    {
    // Crea l'icona di eliminazione
    $elimina =& new htmlLink;
    $eliminaImg =& new htmlImage;
    $eliminaImg->setWidth"22px" );
    $eliminaImg->setUrl"images/elimina.png" );
    $eliminaImg->setTitle"Elimina il prodotto dal carrello" );
    $eliminaImg->setAlternate"" );
    $url "eliminaDalCarrello.php?id=$i";
    $elimina->setUrl$url );
    $elimina->append$eliminaImg );

    // Crea l'icona di aumento della quantità
    $up =& new htmlLink;
    $upImg =& new htmlImage;
    $upImg->setWidth"22px" );
    $upImg->setUrl"images/up.png" );
    $upImg->setTitle"Aggiungi una unità" );
    $upImg->setAlternate"" );
    // SISTEMARE L'URL
    $url "modificaCopie.php?id=$i&copie=su";
    $up->setUrl$url );
    $up->append$upImg );

    // Crea l'icona di diminuzione della quantità
    $down =& new htmlLink;
    $downImg =& new htmlImage;
    $downImg->setWidth"22px" );
    $downImg->setUrl"images/down.png" );
    $downImg->setTitle"Elimina una unità" );
    $downImg->setAlternate"" );
    // SISTEMARE L'URL
    $url "modificaCopie.php?id=$i&copie=giu";
    $down->setUrl$url );
    $down->append$downImg );

    // Crea la tabellina ed appende ad essa le 3 icone
    $tabellina =& new htmlTable;
    $tabellina->setSize1);
    $tabellina->setBorder);
    $tabellina->Cells[0][0]->append$elimina );
    $tabellina->Cells[0][1]->append$up );
    $tabellina->Cells[0][2]->append$down );

    // Conteggia il costo totale
    $numberProdotticarrello $prodotti[$i][copie] ;
    $costoProdottocarrello $prodotti[$i][prodotti]->getprezzoVendita( );
    $Singolo $numberProdotticarrello*$costoProdottocarrello;
    $Totale += $Singolo;


    // Crea il titolo con associata la quantità
    // $titoloProdotto = $prodotti[$i][prodotti]->getTipologia( ) ." " . $prodotti[$i][prodotti]->getTitolo( ) ." --> " .$Singolo. "€ /". $prodotti[$i][copie]." unità."." Fin qui il totale è di € ".$Totale ;
    $titoloProdotto $prodotti[$i][prodotti]->getTipologia( ) ." " $prodotti[$i][prodotti]->getTitolo( ) ." --> " .$Singolo"€ /"$prodotti[$i][copie]." unità." ;

    // Aggiunge alla scheda la riga con codice del prodotto, titolo e pulsanti
    // $this->aggiungiRigaSpan111( $prodotti[$i][prodotti]->getCodice( ), $titoloProdotto, $tabellina, "coloreCodice", "coloreCosto", "" );
    $this->aggiungiRigaSpan111$titoloProdotto" Fin qui il totale è di € ".$Totale$tabellina"coloreCodice""coloreCosto""" );
    }
    }
    }
    //$this->aggiungiRigaSpan111( "", "", $importo, "", "", "valoreScheda" );
    }

    ?>


    questo è il file ordina.php



    Codice PHP:
    <?php

    require_once( 'php/boundary/Interfaccia.inc.php' );
    require_once( 
    'php/database/ArchivioOrdini.class.php' );
    require_once( 
    'php/database/ArchivioClienti.class.php' );
    require_once( 
    'php/entity/Carrello.class.php' );
    require_once( 
    'php/entity/Ordine.class.php' );
    require_once( 
    'php/entity/Cliente.class.php' );

    session_start( );

    if( isset( 
    $_SESSION['username'] ) && $_SESSION['utente'] == )
    {
        
    $identificatore Archivio::connetti();

        
    $carrello =& new Carrello;
        
    $carrello->caricaSessione( );

        if( 
    count$carrello->getProdotti( ) ) != || $carrello->getProdotti( ) != null )
        {
            
    $username $_SESSION['username'];
            
    $cliente ArchivioClienti::cercaClientePerUsername$username );
            
    $ordine =& new Ordine$cliente$carrello->getProdotti( ) );
            
    $ordine->setStato"pendente" );
            
    $ordine->Simo$carrello->getTotale() ;
            
    $risultato ArchivioOrdini::inserisciOrdine$ordine );
            
    $_SESSION['prodottiCarrello'] = null;
            
    $scheda =& new BookSchedaOrdine$ordine);
            
    $pagina =& new PaginaClassica;
            
    $pagina->aggiungiContenutoCn$scheda );
            
    $pagina->fine( );
        }
        else
        {
            
    $link =& new htmlLink;
            
    $link->setUrl"apriCarrello.php" );
            
    $link->redirect( );
        }

        
    Archivio::disconnetti$identificatore );
    }
    else
    {
        
    $link =& new htmlLink;
        
    $link->setUrl"login.php" );
        
    $link->redirect( );
    }
    ?>

    continua..

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    7
    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);
            
    $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->setIdself::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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.