+ Rispondi alla Discussione
Risultati da 1 a 2 di 2

Funzione di calcolo prezzo di una camera in un range di date

Ultimo Messaggio di flaviors200 il:
  1. #1
    User
    Data Registrazione
    Oct 2006
    Messaggi
    100

    Funzione di calcolo prezzo di una camera in un range di date

    Ciao a tutti, sto cercando di modificare una funzione di calcolo presa da uno script php realizzato con CodeIgniter che mi dia il risultato del prezzo totale di una camera in relazione ad una data di arrivo ed una di partenza.
    Ho due tabelle:
    La prima "room" che ha dei prezzi base settimanali ( price_mon,price_tue,price_wed,price_thu,price_fri, price_sat,price_sun )
    La seconda "room_custom_price" che ha prezzi personalizzati in base alla data ( certain_date, price )
    La funzione dovrebbe calcolare prima il prezzo base e poi controllare se ci sono prezzi personalizzati per poi fornire il totale.

    Questa è la funzione.
    Codice PHP:
    function calcProcess($roomId$startDate$endDate)    {    
    $startDate = new DateTime($startDate->date('Y-m-d'));        
    $result['totalNight'] = 0;        
    $result['totalPrice'] = 0
    $statement " SELECT                
    price_sun AS d0,                
    price_mon AS d1,                
    price_tue AS d2,                
    price_wed AS d3,                
    price_thu AS d4,                
    price_fri AS d5,                
    price_sat AS d6            
    FROM                
    room            
    WHERE                
    id = 
    $roomId ";        
    $statement->execute(array(                        
    ':id' => $roomId        
    ));        
    $defaultPrice $statement->fetchAssociativeArray();        
    $statement->close();        
    // fine
    // calcolo custom price        
    $statement "            
    SELECT                
    certain_date,                
    price            
    FROM                
    room_custom_price            
    WHERE                
    room_id = 
    $roomId AND                
    (certain_date BETWEEN :startDate AND :endDate)"
    ;        
    $statement->execute(array(            
    ':roomId' => $roomId,            
    ':startDate' => $startDate->date('Y-m-d'),            
    ':endDate' => $endDate->date('Y-m-d')        
    ));        
    $rows $statement->fetchAllAssociative();        
    $statement->close();        
    $customPriceArray = array();        
    foreach (
    $rows as $row) {            
    $customPriceArray[$row['certain_date']] = $row['price'];        
    }        
    // fine
    while ($startDate->format('Y-m-d') != $endDate->date('Y-m-d')) {            
    $result['totalNight']++;     
     if (
    array_key_exists($startDate->format('Y-m-d'), $customPriceArray)) {                
    $result['totalPrice'] += $customPriceArray[$startDate->date('Y-m-d')];            
    }           
     else {                
    $result['totalPrice'] += $defaultPrice['d'.$startDate->date('w')];            
    }
    $startDate->modify('+1 day');        
    }
    return 
    $result;                
    }
    var_dump($result); 
    Spero qualcuno possa aiutarmi. Grazie!
    Ultima modifica di maxnegri; 19-01-19 alle 20:11

  2. #2
    Utente Premium
    Data Registrazione
    Nov 2018
    Località
    Ragusa
    Messaggi
    151
    Aggiungi flaviors200 su Google+ Aggiungi flaviors200 su Facebook Aggiungi flaviors200 su Linkedin
    Ciao max,

    scusa ma non capisco bene se c'è una condizione affinchè si debbano mostrare o i prezzi base o quelli personalizzati. Bisogna mostrare il prezzo più basso? In relazione a cosa?
    Sviluppo siti web per aziende e professionisti

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.