Esempio n. 1
0
 public function executeDoOrder()
 {
     $return_module = $this->getRequestParameter('return_module');
     $return_action = $this->getRequestParameter('return_action');
     $member_id = $this->getRequestParameter('member_id');
     $col_item_id = $this->getRequestParameter('id');
     $order_type = $this->getRequestParameter('order_type');
     $length = $this->getRequestParameter('length');
     $c = new Criteria();
     $c->add(ColStatusPeer::CODE, $order_type, Criteria::EQUAL);
     $col_status = ColStatusPeer::doSelectOne($c);
     $col_item = ColItemPeer::retrieveByPK($col_item_id);
     $this->forward404Unless($member_id && $col_item && $col_status);
     $col_item->setColStatus($col_status);
     $now = time();
     if ($order_type == 'available') {
         $col_item->setMemberId(null);
         $col_item->setColConditionId($this->getRequestParameter('col_condition_id'));
         $c = new Criteria();
         $c->add(CirHistoryPeer::MEMBER_ID, $member_id);
         $c->add(CirHistoryPeer::COL_ITEM_ID, $col_item_id);
         $c->add(CirHistoryPeer::RETURN_DATE, null);
         $cir_hist = CirHistoryPeer::doSelectOne($c);
         $cir_hist->setReturnDate(date('Y-m-d H:i:s', $now));
         $cir_hist->setReturnNote($this->getRequestParameter('return_note'));
         $cir_hist->setFine($this->getRequestParameter('fine'));
         $cir_hist->setMiscFine($this->getRequestParameter('misc_fine'));
         $cir_hist->save();
     } else {
         $col_item->setMemberId($member_id);
         $cir_hist = new CirHistory();
         $cir_hist->setColItem($col_item);
         $cir_hist->setMemberId($member_id);
         $cir_hist->setColStatus($col_status);
         $cir_hist->setOrderDate(date('Y-m-d H:i:s', $now));
         $cir_hist->setOrderNote($this->getRequestParameter('order_note'));
         if (!$length || $length != null) {
             $cir_hist->setDueDate(date('Y-m-d H:i:s', $length * 60 * 60 * 24 + $now));
         } else {
             $cir_hist->setDueDate(date('Y-m-d H:i:s', $cir_hist->getRegulation()->getLoanLength() * 60 * 60 * 24 + $now));
         }
         $cir_hist->save();
     }
     $col_item->save();
     $this->forward($return_module, $return_action);
 }