function fetchRow()
 {
     $array = $this->_conn->fetchRow();
     if ($array == false) {
         return false;
     }
     $trans = new MemberAccountTransaction();
     $trans->setMbrid($array["mbrid"]);
     $trans->setTransid($array["transid"]);
     $trans->setCreateDt($array["create_dt"]);
     $trans->setCreateUserid($array["create_userid"]);
     $trans->setTransactionTypeCd($array["transaction_type_cd"]);
     $trans->setTransactionTypeDesc($array["transaction_type_desc"]);
     $trans->setAmount($array["amount"]);
     $trans->setDescription($array["description"]);
     return $trans;
 }
 if ($histQ->errorOccurred()) {
     $histQ->close();
     displayErrorPage($histQ);
 }
 $histQ->insert($hist);
 if ($histQ->errorOccurred()) {
     $histQ->close();
     displayErrorPage($histQ);
 }
 $histQ->close();
 #**************************************************************************
 #*  Calc late fee if any
 #**************************************************************************
 if ($saveDaysLate > 0 and $dailyLateFee > 0) {
     $fee = $dailyLateFee * $saveDaysLate;
     $trans = new MemberAccountTransaction();
     $trans->setMbrid($saveMbrid);
     $trans->setCreateUserid($_SESSION["userid"]);
     $trans->setTransactionTypeCd("+c");
     $trans->setAmount($fee);
     $trans->setDescription($loc->getText("shelvingCartTrans", array("barcode" => $barcode)));
     $transQ = new MemberAccountQuery();
     $transQ->connect();
     if ($transQ->errorOccurred()) {
         $transQ->close();
         displayErrorPage($transQ);
     }
     $trans = $transQ->insert($trans);
     if ($transQ->errorOccurred()) {
         $transQ->close();
         displayErrorPage($transQ);
Beispiel #3
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);
 }
$loc = new Localize(OBIB_LOCALE, $tab);
#****************************************************************************
#*  Checking for post vars.  Go back to form if none found.
#****************************************************************************
if (count($_POST) == 0) {
    header("Location: ../circ/index.php");
    exit;
}
#****************************************************************************
#*  Retrieving get var
#****************************************************************************
$mbrid = $_POST["mbrid"];
#****************************************************************************
#*  Validate data
#****************************************************************************
$trans = new MemberAccountTransaction();
$trans->setMbrid($mbrid);
$trans->setCreateUserid($_SESSION["userid"]);
$trans->setTransactionTypeCd($_POST["transactionTypeCd"]);
$_POST["transactionTypeCd"] = $trans->getTransactionTypeCd();
$trans->setAmount($_POST["amount"]);
$_POST["amount"] = $trans->getAmount();
$trans->setDescription($_POST["description"]);
$_POST["description"] = $trans->getDescription();
$validData = $trans->validateData();
if (!$validData) {
    $pageErrors["amount"] = $trans->getAmountError();
    $pageErrors["description"] = $trans->getDescriptionError();
    $_SESSION["postVars"] = $_POST;
    $_SESSION["pageErrors"] = $pageErrors;
    header("Location: ../circ/mbr_account.php?mbrid=" . U($mbrid));