Пример #1
0
#****************************************************************************
$mbrid = $_GET["mbrid"];
#****************************************************************************
#*  Loading a few domain tables into associative arrays
#****************************************************************************
$dmQ = new DmQuery();
$dmQ->connect();
$mbrClassifyDm = $dmQ->getAssoc("mbr_classify_dm");
$biblioStatusDm = $dmQ->getAssoc("biblio_status_dm");
$materialTypeDm = $dmQ->getAssoc("material_type_dm");
$materialImageFiles = $dmQ->getAssoc("material_type_dm", "image_file");
$dmQ->close();
#****************************************************************************
#*  Search database for member history
#****************************************************************************
$histQ = new BiblioStatusHistQuery();
$histQ->connect();
if ($histQ->errorOccurred()) {
    $histQ->close();
    displayErrorPage($histQ);
}
if (!$histQ->queryByMbrid($mbrid)) {
    $histQ->close();
    displayErrorPage($histQ);
}
#**************************************************************************
#*  Show biblio checkout history
#**************************************************************************
require_once "../shared/header.php";
?>
Пример #2
0
 function _shelving_cart_e($bcode, $date, $force)
 {
     $info = array('mbrid' => NULL, 'bibid' => NULL, 'hold' => NULL);
     if ($date === NULL) {
         list($date, $err) = Date::read_e('today');
         if ($err) {
             Fatal::internalError("Unexpected date error: " . $err);
         }
         $earliest = $latest = time();
     } else {
         list($date, $err) = Date::read_e($date);
         if ($err) {
             return array($info, new Error($this->_loc->getText("Can't understand date: %err%", array('err' => $err->toStr()))));
         }
         $earliest = strtotime($date . " 00:00:00");
         $latest = strtotime($date . " 23:59:59");
     }
     if ($earliest > time()) {
         return array($info, new Error($this->_loc->getText("Won't do checkins for future dates.")));
     }
     $copyQ = new BiblioCopyQuery();
     $copy = $copyQ->maybeGetByBarcode($bcode);
     if (!$copy) {
         return array($info, new Error($this->_loc->getText("Bad copy barcode: %bcode%", array('bcode' => $bcode))));
     }
     $info['bibid'] = $copy->getBibid();
     $fee = $copyQ->getDailyLateFee($copy);
     $mbrid = $info['mbrid'] = $copy->getMbrid();
     if ($copy->getDueBackDt()) {
         // FIXME: Y2K38. This temporary fix should prevent unjust late fee when Override Due Date was used.
         if (strtotime($copy->getDueBackDt()) != false && strtotime($copy->getDueBackDt()) != -1) {
             $late = $info['late'] = Date::daysLater($date, $copy->getDueBackDt());
         }
     }
     $holdQ = new BiblioHoldQuery();
     $hold = $info['hold'] = $holdQ->maybeGetFirstHold($copy->getBibid(), $copy->getCopyid());
     if ($hold) {
         $copy->setStatusCd(OBIB_STATUS_ON_HOLD);
     } else {
         $copy->setStatusCd(OBIB_STATUS_SHELVING_CART);
     }
     $oldtime = strtotime($copy->getStatusBeginDt());
     if ($oldtime > $latest) {
         return array($info, new Error($this->_loc->getText("Can't change status to an earlier date on item %bcode%.", array('bcode' => $bcode))));
     } else {
         if ($oldtime == $latest) {
             return array($info, new Error($this->_loc->getText("Can't change status more than once per second on item %bcode%.", array('bcode' => $bcode))));
         } else {
             if ($oldtime < $earliest) {
                 $time = date('Y-m-d H:i:s', $earliest);
             } else {
                 $time = date('Y-m-d H:i:s', $oldtime + 1);
             }
         }
     }
     $copy->setMbrid("");
     $copy->setStatusBeginDt($time);
     $copy->setDueBackDt("");
     if (!$copyQ->updateStatus($copy)) {
         Fatal::InternalError("Impossible copyQ update error.");
     }
     if ($mbrid != "" and $late > 0 and $fee > 0) {
         $trans = new MemberAccountTransaction();
         $trans->setMbrid($mbrid);
         $trans->setCreateUserid($_SESSION['userid']);
         $trans->setTransactionTypeCd("+c");
         $trans->setAmount($fee * $late);
         $trans->setDescription($this->_loc->getText("Late fee (barcode=%barcode%)", array('barcode' => $bcode)));
         $transQ = new MemberAccountQuery();
         if (!$transQ->insert($trans)) {
             Fatal::internalError("Impossible transQ insert error.");
         }
     }
     $hist = new BiblioStatusHist();
     $hist->setBibid($copy->getBibid());
     $hist->setCopyid($copy->getCopyid());
     $hist->setStatusCd($copy->getStatusCd());
     $hist->setStatusBeginDt($copy->getStatusBeginDt());
     $hist->setDueBackDt($copy->getDueBackDt());
     $hist->setMbrid($mbrid);
     $histQ = new BiblioStatusHistQuery();
     if (!$histQ->insert($hist)) {
         Fatal::internalError("Impossible histQ insert error.");
     }
     return array($info, NULL);
 }