Esempio n. 1
0
 /**
  * Assign all taxes to reservation
  * 
  * @param RM_Reservation_Row $reservation
  * @param RM_Reservation_Details_Row $detailRow
  * @return bool
  */
 function assign(RM_Reservation_Details $detail, RM_Reservation_Details_Row $detailRow)
 {
     $detailsPrice = $detail->getTotal();
     $summaryModel = new RM_ReservationSummary();
     $summaryRows = $summaryModel->fetchByReservationDetail($detailRow);
     foreach ($summaryRows as $summaryRow) {
         if ($summaryRow->type !== self::SUMMARY_TYPE) {
             $detailsPrice += $summaryRow->total_amount;
         }
     }
     $model = new RM_Taxes();
     $taxes = $model->getByUnit($detail->getUnit());
     foreach ($taxes as $tax) {
         $summaryModel->insert(array('row_id' => $tax->id, 'type' => self::SUMMARY_TYPE, 'reservation_id' => null, 'reservation_detail_id' => $detailRow->id, 'total_amount' => $tax->calculate($detailsPrice, $detail), 'name' => $tax->getName(RM_Environment::getInstance()->getLocale())));
     }
 }
Esempio n. 2
0
 /**
  * Assign extras to reservation
  *
  * @param RM_Reservation_Details $detail
  * @param RM_Reservation_Details_Row $detailRow
  * @return void
  */
 public function assign(RM_Reservation_Details $detail, RM_Reservation_Details_Row $detailRow)
 {
     $extras = $detail->getExtras();
     foreach ($extras as $extra) {
         if ($extra instanceof RM_Extras_Object) {
             $summaryModel = new RM_ReservationSummary();
             $summaryModel->insert(array('row_id' => $extra->getID(), 'type' => self::SUMMARY_TYPE, 'reservation_detail_id' => $detailRow->id, 'value' => $extra->getValue(), 'total_amount' => $extra->getPrice(), 'name' => $extra->getName()));
             // insert the extra tax
             $summaryModel->insert(array('row_id' => $extra->getID(), 'type' => self::SUMMARY_TYPE_TAX, 'reservation_detail_id' => $detailRow->id, 'value' => $extra->getValue(), 'total_amount' => $extra->getTax(), 'name' => "Extras Tax"));
         }
     }
 }