Beispiel #1
0
 public static function getLogin()
 {
     if (!self::$user && isset($_SESSION[self::KEY_USER_ID])) {
         self::$user = \MemberQuery::create()->findOneById($_SESSION[self::KEY_USER_ID]);
     }
     return self::$user;
 }
Beispiel #2
0
 public function action_changeShort()
 {
     echo 'test2';
     return;
     $member = \MemberQuery::create()->findOneById(1);
     $con = \Propel::getConnection();
     if (!$con->beginTransaction()) {
         throw new \Exception('Could not begin transaction');
     }
     try {
         $transfer = \TransferQuery::create()->findOneById(1);
         if (!$transfer) {
             $transfer = new \Transfer();
             $transfer->setMemberId($member->getId());
             $transfer->save($con);
             $transfer = \TransferQuery::create()->findOneById(1);
         }
         $transfer->setAmount($transfer->getAmount() + 2);
         $transfer->save($con);
         if (!$con->commit()) {
             throw new \Exception('Could not commit transaction');
         }
     } catch (\Exception $e) {
         $con->rollBack();
         throw $e;
     }
     print_r('<pre>');
     print_r($transfer->toArray());
     print_r('</pre>');
 }
 public function action_allinvoices()
 {
     $members = \MemberQuery::create()->filterByDeletionDate(null, \Criteria::ISNULL)->filterByNum('101', \Criteria::NOT_EQUAL)->orderBy('num')->find();
     $result = '<div class="container"><div class="row sheet">
   <table class="table2Debug">
     <tbody>
         <tr>
           <th>Member</th>
           <th>Total</th>
           <th>Reasons Total</th>
           <th>Quantity</th>
           <th>Reasons</th>
         </tr>';
     $reasons = \Tbmt\Localizer::get('view.account.tabs.invoice.transaction_reasons');
     foreach ($members as $member) {
         $result .= '<tr>';
         $result .= '<td>' . $member->getNum() . ' - ' . $member->getFirstName() . ' - ' . $member->getLastName() . '</td>';
         $result .= '<td>' . \Tbmt\view\Factory::currencyArrToString($member->getOutstandingTotal()) . '</td>';
         $result .= '<td colspan="3"></td>';
         $result .= '</tr>';
         $transactions = \TransactionQuery::create()->join('Transfer')->useTransferQuery()->filterByMember($member)->endUse()->select(['Reason'])->withColumn('count(*)', 'Quantity')->withColumn('sum(Transaction.Amount)', 'Total')->groupBy('Transfer.Currency')->groupBy('Transaction.Reason')->find();
         foreach ($transactions as $transaction) {
             $result .= '<tr>';
             $result .= '<td colspan="2"></td>';
             $result .= '<td>' . \Tbmt\Localizer::numFormat($transaction['Total']) . '</td>';
             $result .= '<td>' . $transaction['Quantity'] . '</td>';
             $result .= '<td>' . $reasons[$transaction['Reason']] . '</td>';
             $result .= '</tr>';
         }
     }
     $result .= '</tbody></table></div></div>';
     return $result;
 }
 public function render(array $params = array())
 {
     if (!isset($params['member']) && !$params['member'] instanceof \Member) {
         throw new \Exception('Invalid param member for account index view.');
     }
     $this->members = \MemberQuery::create()->filterByPaidDate(null, \Criteria::ISNULL)->filterByDeletionDate(null, \Criteria::ISNULL)->find();
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.dev_paying.account.html', $params);
 }
 function insertMember($data)
 {
     $mbr = new Member();
     $mbrQ = new MemberQuery();
     $mbr->setFirstName($data[0]);
     $mbr->setLastName($data[1]);
     $mbr->setGender($data[2]);
     $mbr->setSchoolId($data[3]);
     $mbr->setStandard($data[4]);
     $mbr->setGrade($data[5]);
     $mbr->setRollNo($data[6]);
     $mbr->setParentName($data[7]);
     $mbr->setParentOccupation($data[8]);
     $mbr->setMotherTongue($data[9]);
     $barcode = $mbrQ->assignRollNumber($mbr);
     $mbr->setBarcodeNmbr($barcode);
     $mbr->setClassification(3);
     return $mbrQ->insert($mbr);
 }
Beispiel #6
0
 public static function validatePasswordResetForm(array $data = array())
 {
     $data = self::initPasswordResetForm($data);
     $res = \Tbmt\Validator::getErrors($data, self::$PASSWORD_RESET_FORM_FILTERS);
     if ($res !== false) {
         return [false, $res, null];
     }
     $recipient = \MemberQuery::create()->filterByDeletionDate(null, \Criteria::ISNULL)->findOneByNum($data['num']);
     if ($recipient == null) {
         return [false, ['num' => \Tbmt\Localizer::get('error.member_num')], null];
     }
     return [true, $data, $recipient];
 }
 public function render(array $params = array())
 {
     if (!isset($params['member']) && !$params['member'] instanceof \Member) {
         throw new \Exception('Invalid param "member" for account index view.');
     }
     $this->totalMemberCount = \MemberQuery::create()->count();
     $this->totalPaidMemberCount = \MemberQuery::create()->filterByPaidDate(null, \Criteria::ISNOTNULL)->count();
     $this->absoluteTransferredTotal = '';
     // $this->absoluteTransferredTotal = \MemberQuery::create()
     //   ->withColumn('count(*)', 'nbComments')
     //   ->count();
     $this->member = $params['member'];
     $this->members = \MemberQuery::create()->filterByType(-1, \Criteria::NOT_EQUAL)->orderBy(\MemberPeer::ID, \Criteria::ASC)->limit(300)->find();
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.total_invoice.account.html', $params);
 }
Beispiel #8
0
 /**
  * Remind all unpaid members after 7 days.
  *
  * @return
  */
 public static function emailReminder($now = null, $allowedDays = '-7 days')
 {
     $con = \Propel::getConnection();
     if (!$con->beginTransaction()) {
         throw new \Exception('Could not begin transaction');
     }
     if ($now === null) {
         $now = time();
     }
     $before7Days = strtotime($allowedDays, $now);
     $result = '';
     try {
         $unpaidMembers = \MemberQuery::create()->filterByIsExtended(1)->filterByPaidDate(null, \Criteria::ISNULL)->filterBySignupDate($before7Days, \Criteria::LESS_EQUAL)->filterByDeletionDate(null, \Criteria::ISNULL)->joinReservedPaidEventRelatedByPaidId(null, \Criteria::LEFT_JOIN)->where(\ReservedPaidEventPeer::PAID_ID . ' is null', null)->joinMemberData(null, \Criteria::LEFT_JOIN)->with('MemberData')->condition('reminderMailIsNull', 'MemberData.FeeReminderEmail is null', null)->condition('reminderMailEqualZero', 'MemberData.FeeReminderEmail = ?', 0)->where(array('reminderMailIsNull', 'reminderMailEqualZero'), \Criteria::LOGICAL_OR)->find();
         $result .= "7 days reminder email job:\n\n";
         if (count($unpaidMembers) > 0) {
             $result .= "Found " . count($unpaidMembers) . " members:\n\n";
         } else {
             $result .= "No member to remind found.";
         }
         foreach ($unpaidMembers as $member) {
             $totalAdvertised = $member->getAdvertisedCountTotal();
             $result .= "Member: " . $member->getNum() . "\n";
             $result .= "Advertised count: " . $totalAdvertised . "\n";
             if ($totalAdvertised === 0) {
                 MailHelper::sendFeeReminder($member);
                 MailHelper::sendFeeReminderReferrer($member->getReferrerMember(), $member);
             } else {
                 MailHelper::sendFeeReminderWithAdvertisings($member);
                 MailHelper::sendFeeReminderWithAdvertisingsReferrer($member->getReferrerMember(), $member);
             }
             $data = $member->getMemberData();
             if (!$data) {
                 $data = new \MemberData();
                 $data->setMemberId($member->getId());
             }
             $data->setFeeReminderEmail(1);
             $data->save($con);
             $result .= "---------\n\n";
         }
         if (!$con->commit()) {
             throw new \Exception('Could not commit transaction');
         }
     } catch (\Exception $e) {
         $con->rollBack();
         throw $e;
     }
     return $result;
 }
Beispiel #9
0
 public static function validateBonusTransactionForm(array $data = array())
 {
     $data = self::initBonusTransactionForm($data);
     $res = \Tbmt\Validator::getErrors($data, self::$BONUS_TRANSACTION_FORM_FILTERS);
     if ($res !== false) {
         return [false, $res, null];
     }
     $recipient = \MemberQuery::create()->filterByDeletionDate(null, Criteria::ISNULL)->findOneByNum($data['recipient_num']);
     if ($recipient == null) {
         return [false, ['recipient_num' => \Tbmt\Localizer::get('error.member_num')], null];
     }
     if (!$recipient->hadPaid()) {
         return [false, ['recipient_num' => \Tbmt\Localizer::get('error.member_num_unpaid')], null];
     }
     return [true, $data, $recipient];
 }
Beispiel #10
0
 public static function validateInvitationForm(array $data = array())
 {
     $data = self::initInvitationForm($data);
     if ($data['type'] !== \Member::TYPE_SUB_PROMOTER) {
         $data['promoter_num'] = '';
     }
     if ($data['type'] === \Member::TYPE_SUB_PROMOTER && !$data['promoter_num']) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.empty')], null];
     }
     $recipient = \MemberQuery::create()->filterByDeletionDate(null, Criteria::ISNULL)->findOneByNum($data['promoter_num']);
     if ($recipient == null) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.member_num')], null];
     }
     if ($recipient->getType() !== \Member::TYPE_PROMOTER) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.sub_promoter_to_promoter')], null];
     }
     if (!$recipient->hadPaid()) {
         return [false, ['promoter_num' => \Tbmt\Localizer::get('error.member_num_unpaid')], null];
     }
     return [true, $data, $recipient];
 }
Beispiel #11
0
 public static function pushRootAccounts()
 {
     $con = \Propel::getConnection();
     if (!$con->beginTransaction()) {
         throw new \Exception('Could not begin transaction');
     }
     $now = time();
     try {
         $rootAccountNums = \SystemStats::$ROOT_ACCOUNTS_NUM;
         $rootAccounts = \MemberQuery::create()->filterByNum($rootAccountNums, \Criteria::IN)->filterByDeletionDate(null, \Criteria::ISNULL)->find();
         $arrRootAccounts = [];
         foreach ($rootAccounts as $account) {
             $transfers = $account->getOpenCollectingTransfers($con);
             $arrTransfers = [];
             foreach ($transfers as $transfer) {
                 $transfer->executeTransfer($account);
                 $transfer->save($con);
                 $arrTransfers[] = $transfer->toArray();
             }
             if (count($arrTransfers) === 0) {
                 continue;
             }
             $account->save($con);
             $arrRootAccounts[] = $account->toArray() + ['Transfers' => $arrTransfers];
         }
         $client = new ApiClient();
         print_r('<pre>');
         print_r([$client->pushRootAccounts($arrRootAccounts)]);
         print_r('</pre>');
         throw new \Exception('test');
         if (!$con->commit()) {
             throw new \Exception('Could not commit transaction');
         }
     } catch (\Exception $e) {
         $con->rollBack();
         throw $e;
     }
 }
 public function render(array $params = array())
 {
     if (!isset($params['member']) && !$params['member'] instanceof \Member) {
         throw new \Exception('Invalid param member for account index view.');
     }
     $this->member = $params['member'];
     $this->recipient = isset($params['recipient']) ? $params['recipient'] : null;
     $this->formVal = \Member::initBonusLevelForm(isset($params['formVal']) ? $params['formVal'] : $_REQUEST);
     $this->formErrors = isset($params['formErrors']) ? $params['formErrors'] : [];
     $this->successmsg = isset($params['successmsg']) ? true : false;
     $query = \MemberQuery::create()->joinActivity()->select(['Num', 'BonusLevel', 'Activity.Meta', 'Activity.Date'])->where('Activity.MemberId = ?', $this->member->getId())->orderBy('Activity.Date', \Criteria::DESC)->limit(100);
     $objBonusMembers = $query->find();
     $arrBonusMembers = [];
     $currencySymbol = \Tbmt\Localizer::get('currency_symbol.' . \Transaction::$BASE_CURRENCY);
     $dateFormat = \Tbmt\Localizer::get('datetime_format_php.long');
     foreach ($objBonusMembers as $bonusMembers) {
         $meta = json_decode($bonusMembers['Activity.Meta'], true);
         $amount = isset($meta[\Activity::MK_BONUS_PAYMENT_AMOUNT]) ? \Tbmt\Localizer::currencyFormat($meta[\Activity::MK_BONUS_PAYMENT_AMOUNT], $currencySymbol) : ' - ';
         $arrBonusMembers[] = [$bonusMembers['Num'], $amount, (new \DateTime($bonusMembers['Activity.Date']))->format($dateFormat)];
     }
     $this->bonusMembers = $arrBonusMembers;
     return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.bonus_levels.account.html', $params);
 }
 public function validateSignupForm(array $data = array())
 {
     $data['referral_member_num'] = Session::hasValidToken();
     $data = $this->initSignupForm($data);
     if ($data['password'] !== $data['password2']) {
         return [false, ['password' => \Tbmt\Localizer::get('error.password_unequal')], null, null];
     }
     $res = \Tbmt\Validator::getErrors($data, $this->SIGNUP_FORM_FILTERS);
     if ($res !== false) {
         return [false, $res, null, null];
     }
     // Validate member number exists
     $parentMember = \MemberQuery::create()->filterByDeletionDate(null, \Criteria::ISNULL)->filterByType(\Member::TYPE_SYSTEM, \Criteria::NOT_EQUAL)->findOneByHash($data['referral_member_num'])->findOneByIsExtended(1);
     if ($parentMember == null || $parentMember->getNum() == 0) {
         return [false, ['referral_member_num' => \Tbmt\Localizer::get('error.referral_member_num')], null, null];
     }
     // else if ( $parentMember->hadPaid() ) {
     //   return [false, ['referral_member_num' => \Tbmt\Localizer::get('error.referrer_paiment_outstanding')], null];
     // }
     $invitation = null;
     if ($data['invitation_code'] !== '') {
         $invitation = \InvitationQuery::create()->findOneByHash($data['invitation_code']);
         if ($parentMember == null) {
             return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_inexisting')], null, null];
         }
         if ($invitation->getMemberId() != $parentMember->getId()) {
             return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_invalid')], null, null];
         }
         if ($invitation->getAcceptedMemberId()) {
             return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_used')], null, null];
         }
     }
     if (!isset($data['email'])) {
         $data['email'] = '';
     }
     return [true, $data, $parentMember, $invitation];
 }
        $trans = $transQ->insert($trans);
        if ($transQ->errorOccurred()) {
            $transQ->close();
            displayErrorPage($transQ);
        }
        // Set fee message
        if (OBIB_LOCALE == 'th') {
            $balText = number_format($fee, 2) . ' บาท';
        } else {
            $balText = moneyFormat($fee, 2);
        }
        $_SESSION['feeMsg'] = "<font class=\"error\">" . $loc->getText("mbrViewBalMsg2", array("fee" => $balText)) . " <a href=\"../circ/mbr_account.php?mbrid=" . $saveMbrid . "&reset=Y\">" . $loc->getText('mbrAccountLink') . "</a></font><br><br>";
        $transQ->close();
    }
    // Update activity
    $mbrQ = new MemberQuery();
    $mbrQ->connect();
    $mbrQ->updateActivity($saveMbrid);
    $mbrQ->close();
}
#**************************************************************************
#*  Destroy form values and errors
#**************************************************************************
unset($_SESSION["postVars"]);
unset($_SESSION["pageErrors"]);
#**************************************************************************
#*  Go back to member view
#**************************************************************************
if ($holdQ->getRowCount() > 0) {
    header("Location: ../circ/hold_message.php?barcode=" . U($barcode));
} else {
Beispiel #15
0
    *  Javascript to post checkin form
    ************************************************************************** -->
<script language="JavaScript" type="text/javascript">
<!--
function checkin(massCheckinFlg)
{
  document.checkinForm.massCheckin.value = massCheckinFlg;
  document.checkinForm.submit();
}
-->
</script>

<?php 
if (isset($_GET['barcode'])) {
    if (isset($_GET['mbrid']) and $_GET['mbrid']) {
        $memberQ = new MemberQuery();
        $mbr = $memberQ->get($_GET['mbrid']);
        echo '<p>';
        echo $loc->getText("Checked in %barcode% for ", array('barcode' => $_GET['barcode']));
        echo '<a href="../circ/mbr_view.php?mbrid=' . HURL($mbr->getMbrid()) . '&amp;reset=Y">';
        echo $loc->getText("%fname% %lname%", array('fname' => $mbr->getFirstName(), 'lname' => $mbr->getLastName()));
        echo '</a>.';
        echo '</p>';
        if (isset($_GET['late']) and $_GET['late']) {
            echo '<p><font class="error">' . $loc->getText("mbrViewOutHdr7") . ': ' . $_GET['late'] . '</font></p>';
        }
        $acctQ = new MemberAccountQuery();
        $balance = $acctQ->getBalance($mbr->getMbrid());
        $balMsg = "";
        if ($balance > 0) {
            $balText = moneyFormat($balance, 2);
#*  Checking for query string.  Go back to list if none found.
#****************************************************************************
if (!isset($_REQUEST["code"])) {
    header("Location: ../admin/member_fields_list.php");
    exit;
}
$code = $_REQUEST["code"];
$description = $_REQUEST["desc"];
#**************************************************************************
#*  Delete row
#**************************************************************************
$dmQ = new DmQuery();
$dmQ->connect();
$dmQ->delete("member_fields_dm", $code);
$dmQ->close();
$memberQ = new MemberQuery();
$memberQ->connect();
$memberQ->deleteCustomField($code);
$dmQ->close();
#**************************************************************************
#*  Show success page
#**************************************************************************
require_once "../shared/header.php";
echo $loc->getText("Member field, %desc%, has been deleted.", array('desc' => $description));
?>
<br><br>
<a href="../admin/member_fields_list.php"><?php 
echo $loc->getText("return to member field list");
?>
</a>
Beispiel #17
0
 public static function setUpBonusMembers($doReset = true, $options = false)
 {
     if (!\MemberQuery::create()->findOneByNum(SystemStats::ACCOUNT_NUM_SYSTEM)) {
         \Tbmt\SystemSetup::setCon(self::$con);
         \Tbmt\SystemSetup::doSetup();
     }
     $options = array_merge(['IT' => true, 'VL' => true, 'OL' => true, 'PM' => true, 'VS2' => true, 'VS1' => true], $options ? $options : []);
     $currentParent = null;
     $currentBonusIds = '[]';
     /* it specialists
        ---------------------------------------------*/
     $IT_t = 0;
     $IT = null;
     if ($options['IT']) {
         if ($doReset === true || self::$it_member === null) {
             $IT_t = 0;
             $IT = self::$it_member = DbEntityHelper::createMember($currentParent, ['Type' => Member::TYPE_ITSPECIALIST, 'FundsLevel' => Member::FUNDS_LEVEL2]);
         } else {
             $IT = self::$it_member;
             $IT_t = self::$it_member->getOutstandingTotal()[DbEntityHelper::$currency];
         }
         $currentBonusIds = MemberBonusIds::populate($IT, '[]');
     }
     /* marketing leader
        ---------------------------------------------*/
     $VL_t = 0;
     $VL = null;
     if ($options['VL']) {
         $VL = DbEntityHelper::createMember($currentParent, ['Type' => Member::TYPE_MARKETINGLEADER, 'FundsLevel' => Member::FUNDS_LEVEL2, 'BonusIds' => $currentBonusIds]);
         $currentBonusIds = MemberBonusIds::populate($VL, $VL->getBonusIds());
         $currentParent = $VL;
     }
     /* org leader
        ---------------------------------------------*/
     $OL_t = 0;
     $OL = null;
     if ($options['OL']) {
         $OL = DbEntityHelper::createMember($currentParent, ['Type' => Member::TYPE_ORGLEADER, 'FundsLevel' => Member::FUNDS_LEVEL2, 'BonusIds' => $currentBonusIds]);
         $currentBonusIds = MemberBonusIds::populate($OL, $OL->getBonusIds());
         $currentParent = $OL;
     }
     /* promoter
        ---------------------------------------------*/
     $PM_t = 0;
     $PM = null;
     if ($options['PM']) {
         $IT_t += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS);
         $VL_t += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS);
         if (!$OL) {
             $OL_t =& $VL_t;
         }
         $OL_t += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2) + Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS);
         // TODO question:
         // kriegt der ol in diesem fall 22 oder 21 euro ?
         // 22 weil der ja den bonus der promoters kriegt wenn er jemand
         // wirbt ohne das ein promoter dazwischen ist?
         if ($currentParent) {
             $PM = DbEntityHelper::createSignupMember($currentParent);
         } else {
             $PM = DbEntityHelper::createMember($currentParent, ['BonusIds' => $currentBonusIds]);
             $IT_t -= Transaction::getAmountForReason(Transaction::REASON_IT_BONUS);
             $VL_t -= Transaction::getAmountForReason(Transaction::REASON_VL_BONUS);
             $OL_t -= Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2) + Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS);
         }
         $PM->setType(Member::TYPE_PROMOTER)->setFundsLevel(Member::FUNDS_LEVEL2)->save(self::$con);
         $currentParent = $PM;
     }
     /* funds level 2
        ---------------------------------------------*/
     $VS2_t = 0;
     $VS2 = null;
     if ($options['VS2']) {
         $IT_t += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS) * 3;
         $VL_t += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS) * 3;
         if (!$OL) {
             $OL_t =& $VL_t;
         }
         $OL_t += Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) * 3;
         if (!$PM) {
             $PM_t =& $OL_t;
         }
         $PM_t += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS) + 2 * (Transaction::getAmountForReason(Transaction::REASON_PM_BONUS) + Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_INDIRECT));
         $VS2_t += 2 * Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL1);
         $VS2 = DbEntityHelper::createSignupMember($currentParent);
         DbEntityHelper::createSignupMember($VS2);
         DbEntityHelper::createSignupMember($VS2);
         $currentParent = $VS2;
     }
     /* funds level 1
        ---------------------------------------------*/
     $VS1_t = 0;
     $VS1 = null;
     if ($options['VS1']) {
         $IT_t += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS);
         $VL_t += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS);
         if (!$OL) {
             $OL_t =& $VL_t;
         }
         $OL_t += Transaction::getAmountForReason(Transaction::REASON_OL_BONUS);
         if (!$PM) {
             $PM_t =& $OL_t;
         }
         $PM_t += Transaction::getAmountForReason(Transaction::REASON_PM_BONUS);
         if (!$VS2) {
             $VS2_t =& $PM_t;
         }
         $VS2_t += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2);
         $VS1 = DbEntityHelper::createSignupMember($currentParent);
     }
     return [[$IT, $VL, $OL, $PM, $VS2, $VS1], [$IT_t, $VL_t, $OL_t, $PM_t, $VS2_t, $VS1_t]];
 }
//define el tipo de busqueda
switch ($searchType) {
    case "cduclvsearch":
        $sType = OBIB_SEARCH_CDU_CLV;
        break;
    case "cdunumsearch":
        $sType = OBIB_SEARCH_CDU_NUM;
        break;
    case 'cdudessearch':
        $sType = OBIB_SEARCH_CDU_DES;
        break;
}
#****************************************************************************
#*  Search database
#****************************************************************************
$mbrQ = new MemberQuery();
$mbrQ->setItemsPerPage(OBIB_ITEMS_PER_PAGE);
$mbrQ->connect();
$mbrQ->execSearch($sType, $searchText, $currentPageNmbr);
#**************************************************************************
#*  Show member view screen if only one result from barcode query
#**************************************************************************
if ($sType == OBIB_SEARCH_BARCODE && $mbrQ->getRowCount() == 0) {
    $mbr = $mbrQ->fetchMember();
    $mbrQ->close();
    header("Location: ../catalog/cdu_view.php?mbrid=" . U($mbr->getMbrid()) . "&reset=Y");
    exit;
}
#**************************************************************************
#*  Show search results
#**************************************************************************
} else {
    $msg = "";
}
#****************************************************************************
#*  Loading a few domain tables into associative arrays
#****************************************************************************
$dmQ = new DmQuery();
$dmQ->connect();
$mbrClassifyDm = $dmQ->getAssoc("mbr_classify_dm");
$materialTypeDm = $dmQ->getAssoc("material_type_dm");
$materialImageFiles = $dmQ->getAssoc("material_type_dm", "image_file");
$dmQ->close();
#****************************************************************************
#*  Search database for member
#****************************************************************************
$mbrQ = new MemberQuery();
$mbrQ->connect();
$mbr = $mbrQ->get($mbrid);
$mbrQ->close();
#**************************************************************************
#*  Show member checkouts
#**************************************************************************
?>
<html>
<head>
<style type="text/css">
  <?php 
include "../css/style.php";
?>
</style>
<meta name="description" content="EspaBiblio Gestion de Bibliotecas">
Beispiel #20
0
 function _checkout_e($mbcode, $bcode, $due, $date, $force)
 {
     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 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 ($due !== NULL) {
         list($due, $err) = Date::read_e($due);
         if ($err) {
             return new Error($this->_loc->getText("Can't understand date: %err%", array('err' => $err->toStr())));
         }
     }
     if ($earliest > time()) {
         return new Error($this->_loc->getText("Won't do checkouts for future dates."));
     }
     $mbrQ = new MemberQuery();
     $mbr = $mbrQ->maybeGetByBarcode($mbcode);
     if (!$mbr) {
         return new Error($this->_loc->getText("Bad member barcode: %bcode%", array('bcode' => $mbcode)));
     }
     $mbrid = $mbr->getMbrid();
     if (!$force && OBIB_BLOCK_CHECKOUTS_WHEN_FINES_DUE) {
         $acctQ = new MemberAccountQuery();
         $balance = $acctQ->getBalance($mbrid);
         if ($balance > 0) {
             return new Error($this->_loc->getText("Member owes fines: checkout not allowed"));
         }
     }
     $copyQ = new BiblioCopyQuery();
     $copy = $copyQ->maybeGetByBarcode($bcode);
     if (!$copy) {
         return new Error($this->_loc->getText("Bad copy barcode: %bcode%", array('bcode' => $bcode)));
     }
     if ($copy->getStatusCd() == OBIB_STATUS_OUT) {
         if ($copy->getMbrid() == $mbrid) {
             # Renewal
             $reachedLimit = $copyQ->hasReachedRenewalLimit($mbrid, $mbr->getClassification(), $copy);
             if (!$force && $reachedLimit) {
                 return new Error($this->_loc->getText("Item %bcode% has reached its renewal limit.", array('bcode' => $bcode)));
             } else {
                 if (!$force && $copy->getDaysLate() > 0) {
                     return new Error($this->_loc->getText("Item %bcode% is late and cannot be renewed.", array('bcode' => $bcode)));
                 } else {
                     $copy->setRenewalCount($copy->getRenewalCount() + 1);
                 }
             }
         } else {
             if ($force) {
                 list($dummy, $err) = $this->shelving_cart_e($bcode, $date, $force);
                 if ($err) {
                     return $err;
                 }
                 $copy = $copyQ->maybeGetByBarcode($bcode);
                 if (!$copy) {
                     Fatal::internalError("Copy disappeared mysteriously.");
                 }
             } else {
                 return new Error($this->_loc->getText("Item %bcode% is already checked out to another member.", array('bcode' => $bcode)));
             }
         }
     } else {
         $copy->setRenewalCount(0);
         $reachedLimit = $copyQ->hasReachedCheckoutLimit($mbrid, $mbr->getClassification(), $copy->getBibid());
         if (!$force && $reachedLimit) {
             return new Error($this->_loc->getText("Member has reached checkout limit for this collection."));
         }
     }
     $days = $copyQ->getDaysDueBack($copy);
     if ($days <= 0) {
         if ($force) {
             # the checkout has probably already happened, just guess - FIXME?
             $days = 14;
         } else {
             return new Error($this->_loc->getText("Checkouts are disallowed for this collection."));
         }
     }
     if ($copy->getStatusCd() == OBIB_STATUS_ON_HOLD) {
         $holdQ = new BiblioHoldQuery();
         $hold = $holdQ->maybeGetFirstHold($copy->getBibid(), $copy->getCopyid());
         if ($hold) {
             // FIXME: Y2K38. Before 2038, timestamp won't be outside valid range.
             $holdAge = Date::daysLater($date, $hold->getHoldBeginDt());
             if (OBIB_HOLD_MAX_DAYS > 0 && $holdAge > OBIB_HOLD_MAX_DAYS) {
                 $tooOld = true;
             } else {
                 $tooOld = false;
             }
             if ($tooOld || $mbrid == $hold->getMbrid()) {
                 $holdQ->delete($hold->getBibid(), $hold->getCopyid(), $hold->getHoldid());
             } else {
                 if (!$force) {
                     return new Error($this->_loc->getText("Item is on hold for another member."));
                 }
             }
         }
     }
     $oldtime = strtotime($copy->getStatusBeginDt());
     if ($oldtime > $latest) {
         return new Error($this->_loc->getText("Can't change status to an earlier date on item %bcode%.", array('bcode' => $bcode)));
     } else {
         if ($oldtime == $latest) {
             return 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->setStatusCd(OBIB_STATUS_OUT);
     $copy->setMbrid($mbrid);
     $copy->setStatusBeginDt($time);
     if ($due === NULL) {
         $copy->setDueBackDt(Date::addDays($date, $days));
     } else {
         $copy->setDueBackDt($due);
     }
     if (!$copyQ->updateStatus($copy)) {
         Fatal::InternalError("Impossible copyQ update 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($copy->getMbrid());
     $hist->setRenewalCount($copy->getRenewalCount());
     $histQ = new BiblioStatusHistQuery();
     $histQ->insert($hist);
 }
require_once "../classes/CircQuery.php";
require_once "../classes/Date.php";
require_once "../functions/errorFuncs.php";
require_once "../functions/formatFuncs.php";
require_once "../classes/Localize.php";
$loc = new Localize(OBIB_LOCALE, $tab);
if (count($_GET) != 0) {
    $_POST = $_GET;
}
if (count($_POST) == 0) {
    header("Location: ../circ/index.php");
    exit;
}
$barcode = trim($_POST["barcodeNmbr"]);
$mbrid = trim($_POST["mbrid"]);
$mbrQ = new MemberQuery();
$mbr = $mbrQ->get($mbrid);
$postVars = $_POST;
$pageErrors = array();
function checkerror($field, $err)
{
    global $mbrid, $postVars, $pageErrors;
    if (!$err) {
        return;
    }
    $pageErrors[$field] = $err->toStr();
    $_SESSION["postVars"] = $postVars;
    $_SESSION["pageErrors"] = $pageErrors;
    header("Location: ../circ/mbr_view.php?mbrid=" . U($mbrid));
    exit;
}
Beispiel #22
0
}
$sclid = $_POST["schoolId"];
//    if (isset($_GET["sclid"])){
//    $sclid = $_GET["sclid"];
//  } else {
//    require("../shared/get_form_vars.php");
//    $sclid = $postVars["sclid"];
//  }
$schoolid = $_POST["schoolId"];
#****************************************************************************
#*  Validate data
#****************************************************************************
#**************************************************************************
#*  Insert new library school
#**************************************************************************
$standardLevel = $_POST["standardLevel"];
$_POST["standardLevel"] = $standardLevel;
$standardGrade = $_POST["standardGrade"];
$_POST["standardGrade"] = $standardGrade;
$mbrQ = new MemberQuery();
$mbrQ->connect();
$mbrQ->updateStandards($schoolid, $standardLevel, $standardGrade);
$mbrQ->close();
#**************************************************************************
#*  Destroy form values and errors
#**************************************************************************
unset($_SESSION["postVars"]);
unset($_SESSION["pageErrors"]);
$msg = $loc->getText("sclPromoteSuccess", array("grade" => $standardLevel . "" . $standardGrade));
header("Location: ../circ/scl_view.php?sclid=" . U($sclid) . "&reset=Y&msg=" . U($msg));
exit;
$restrictToMbrAuth = TRUE;
$nav = "deletedone";
$restrictInDemo = true;
require_once "../shared/logincheck.php";
require_once "../classes/MemberQuery.php";
require_once "../classes/BiblioStatusHistQuery.php";
require_once "../classes/MemberAccountQuery.php";
require_once "../functions/errorFuncs.php";
require_once "../classes/Localize.php";
$loc = new Localize(OBIB_LOCALE, $tab);
$mbrid = $_GET["mbrid"];
$mbrName = $_GET["name"];
#**************************************************************************
#*  Delete library member
#**************************************************************************
$mbrQ = new MemberQuery();
$mbrQ->connect();
$mbrQ->delete($mbrid);
$mbrQ->close();
#**************************************************************************
#*  Delete Member History
#**************************************************************************
$histQ = new BiblioStatusHistQuery();
$histQ->connect();
if ($histQ->errorOccurred()) {
    $histQ->close();
    displayErrorPage($histQ);
}
if (!$histQ->deleteByMbrid($mbrid)) {
    $histQ->close();
    displayErrorPage($histQ);
Beispiel #24
0
 function render($rpt)
 {
     list($rpt, $errs) = $rpt->variant_el(array('order_by' => 'member'));
     if (!empty($errs)) {
         Fatal::internalError('Unexpected report error');
     }
     $mbrQ = new MemberQuery();
     $lay = new Lay();
     $lay->pushFont('Helvetica', 10);
     $lay->container('Columns', array('margin-left' => '1in', 'margin-right' => '1in', 'margin-top' => '1in', 'margin-bottom' => '1in'));
     $mbr = NULL;
     $oldmbr = NULL;
     while ($row = $rpt->each()) {
         if ($row['mbrid'] != $oldmbr) {
             if ($oldmbr !== NULL) {
                 $lay->close();
                 $lay->container('Columns', array('margin-left' => '1in', 'margin-right' => '1in', 'margin-top' => '1in', 'margin-bottom' => '1in'));
             }
             $mbr = $mbrQ->get($row['mbrid']);
             $oldmbr = $row['mbrid'];
             $lay->container('Column', array('margin-left' => '3.25in'));
             $lay->container('TextLine');
             $lay->text(date('m/d/Y'));
             $lay->close();
             $lay->element('Spacer', array('height' => 14));
             $lines = array(OBIB_LIBRARY_NAME, '101 1st Street', 'Busytown, IA 11111-2222', 'phone: ' . OBIB_LIBRARY_PHONE, 'hours: ' . OBIB_LIBRARY_HOURS);
             foreach ($lines as $l) {
                 $lay->container('TextLine');
                 $lay->text($l);
                 $lay->close();
             }
             $lay->close();
             $lay->element('Spacer', array('height' => 14));
             $lay->container('TextLine');
             $lay->text($mbr->getFirstName() . ' ' . $mbr->getLastName());
             $lay->close();
             foreach (explode("\n", $mbr->getAddress()) as $l) {
                 $lay->container('TextLine');
                 $lay->text($l);
                 $lay->close();
             }
             $lay->element('Spacer', array('height' => 14));
             $lay->container('TextLine');
             $lay->text('Dear ' . $mbr->getFirstName() . ' ' . $mbr->getLastName() . ':');
             $lay->close();
             $lay->element('Spacer', array('height' => 9));
             $lay->container('Paragraph');
             $lay->container('TextLines');
             $lay->text('Our records show that the following library items ' . 'are checked out under your name and are past due.  Please ' . 'return them as soon as possible and pay any late fees due.');
             $lay->close();
             $lay->close();
             $lay->element('Spacer', array('height' => 28));
             $lay->container('TextLine');
             $lay->text('Sincerely,');
             $lay->close();
             $lay->element('Spacer', array('height' => 14));
             $lay->container('TextLine');
             $lay->text('The library staff at ' . OBIB_LIBRARY_NAME);
             $lay->close();
             $lay->element('Spacer', array('height' => 14));
             $lay->pushFont('Times-Italic', 12);
             $lay->container('Line');
             $lay->container('TextLine', array('width' => '1.5in', 'underline' => 1));
             $lay->text('Title');
             $lay->close();
             $lay->container('TextLine', array('width' => '1.5in', 'underline' => 1));
             $lay->text('Author');
             $lay->close();
             $lay->container('TextLine', array('width' => '1in', 'underline' => 1));
             $lay->text('Due Date');
             $lay->close();
             $lay->container('TextLine', array('width' => '0.75in', 'underline' => 1));
             $lay->text('Days Late');
             $lay->close();
             $lay->close();
             $lay->popFont();
         }
         $lay->container('Line');
         $lay->container('TextLine', array('width' => '1.5in'));
         $lay->text($row['title']);
         $lay->close();
         $lay->container('TextLine', array('width' => '1.5in'));
         $lay->text($row['author']);
         $lay->close();
         $lay->container('TextLine', array('width' => '1in'));
         $lay->text(date('m/d/y', strtotime($row['due_back_dt'])));
         $lay->close();
         $lay->container('TextLine', array('width' => '0.75in'));
         $lay->text($row['days_late']);
         $lay->close();
         $lay->close();
     }
     $lay->close();
     $lay->popFont();
     $lay->close();
 }
Beispiel #25
0
<?php

echo 'test1';
include dirname(__FILE__) . '/bootstrap.php';
$member = \MemberQuery::create()->findOneById(1);
$con = \Propel::getConnection();
if (!$con->beginTransaction()) {
    throw new \Exception('Could not begin transaction');
}
try {
    $transfer = \TransferQuery::create()->findOneById(1);
    if (!$transfer) {
        $transfer = new \Transfer();
        $transfer->setMemberId($member->getId());
        $transfer->save($con);
        $transfer = \TransferQuery::create()->findOneById(1);
    }
    $transfer->setAmount($transfer->getAmount() + 2);
    $transfer->save($con);
    if (!$con->commit()) {
        throw new \Exception('Could not commit transaction');
    }
} catch (\Exception $e) {
    $con->rollBack();
    throw $e;
}
print_r('<pre>');
print_r($transfer->toArray());
print_r('</pre>');
echo "\n CONSISTENCY 2\n";
Beispiel #26
0
    }
}
$validData = $mbr->validateData();
if (!$validData) {
    //    $pageErrors["barcodeNmbr"] = $mbr->getBarcodeNmbrError();
    $pageErrors["lastName"] = $mbr->getLastNameError();
    $pageErrors["firstName"] = $mbr->getFirstNameError();
    $_SESSION["postVars"] = $_POST;
    $_SESSION["pageErrors"] = $pageErrors;
    header("Location: ../circ/mbr_new_form.php");
    exit;
}
#**************************************************************************
#*  Check for duplicate barcode number
#**************************************************************************
$mbrQ = new MemberQuery();
$mbrQ->connect();
//   $dupBarcode = $mbrQ->DupBarcode($mbr->getBarcodeNmbr(),$mbr->getMbrid());
//   if ($dupBarcode) {
//     $pageErrors["barcodeNmbr"] = $loc->getText("mbrDupBarcode",array("barcode"=>$mbr->getBarcodeNmbr()));
//     $_SESSION["postVars"] = $_POST;
//     $_SESSION["pageErrors"] = $pageErrors;
//     header("Location: ../circ/mbr_new_form.php");
//     exit();
//   }
#**************************************************************************
#*  Insert new library member
#**************************************************************************
$mbrid = $mbrQ->insert($mbr);
$mbrQ->close();
#**************************************************************************
}
$validData = $mbr->validateDataUser();
if (!$validData) {
    $pageErrors["barcodeNmbr"] = $mbr->getBarcodeNmbrError();
    $pageErrors["lastName"] = $mbr->getLastNameError();
    $pageErrors["firstName"] = $mbr->getFirstNameError();
    $pageErrors["status"] = $mbr->getStatusError();
    $_SESSION["postVars"] = $_POST;
    $_SESSION["pageErrors"] = $pageErrors;
    header("Location: ../user/user_edit_form.php");
    exit;
}
#**************************************************************************
#*  Check for duplicate barcode number
#**************************************************************************
$mbrQ = new MemberQuery();
$mbrQ->connect();
$dupBarcode = $mbrQ->DupBarcode($mbr->getBarcodeNmbr(), $mbr->getMbrid());
if ($dupBarcode) {
    $pageErrors["barcodeNmbr"] = $loc->getText("mbrDupBarcode", array("barcode" => $mbr->getBarcodeNmbr()));
    $_SESSION["postVars"] = $_POST;
    $_SESSION["pageErrors"] = $pageErrors;
    header("Location: ../user/user_edit_form.php");
    exit;
}
#**************************************************************************
#*  Update library member
#**************************************************************************
$mbrQ->update($mbr);
$mbrQ->updateActivity($mbrid);
$mbrQ->close();
require_once "../classes/Localize.php";
$loc = new Localize(OBIB_LOCALE, $tab);
$foundError = false;
#****************************************************************************
#*  Checking for post or get vars.  Go back to form if none found.
#****************************************************************************
if (count($_GET) != 0) {
    $_POST = $_GET;
}
if (count($_POST) == 0) {
    header("Location: ../circ/index.php");
    exit;
}
$barcode = trim($_POST["barcodeNmbr"]);
$mbrid = trim($_POST["mbrid"]);
$mbrQ = new MemberQuery();
$mbrQ->connect();
$mbr = $mbrQ->get($mbrid);
$mbrClassification = $mbr->getClassification();
if (strcmp($mbr->getStatus(), "N") == 0) {
    $foundError = TRUE;
    $pageErrors["barcodeNmbr"] = $loc->getText("checkoutErr9");
}
if (isset($_POST["renewal"])) {
    $renewal = true;
} else {
    $renewal = false;
}
#****************************************************************************
#*  Make sure member does not have outstanding balance due
#****************************************************************************
require_once "../classes/MemberQuery.php";
require_once "../functions/errorFuncs.php";
require_once "../classes/Localize.php";
$loc = new Localize(OBIB_LOCALE, $tab);
#****************************************************************************
#*  Checking for post vars.  Go back to form if none found.
#****************************************************************************
if (count($_POST) == 0) {
    header("Location: ../admin/locationMembers.php");
    exit;
}
#****************************************************************************
#*  Validate data
#****************************************************************************
$location = $_POST["locationid"];
$memQ = new MemberQuery();
$memQ->connect();
$members = $memQ->getMembersList($location);
$my_file = '../layouts/default/MembersLocationFile.csv';
$handle = fopen($my_file, 'w') or die('Cannot open file:  ' . $my_file);
foreach ($members as $member) {
    $line = array($member['first_name'], $member['last_name'], $member['barcode_nmbr'], $member['work_phone'], $member['email']);
    fputcsv($handle, $line);
}
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Length: ' . filesize($my_file));
header('Content-Disposition: attachment; filename="' . 'MembersLocationFile.csv' . '"');
readfile($my_file);
/**
* 
 public function action_ajax_tree(array $params = array())
 {
     $ids = Arr::init($_REQUEST, 'ids', TYPE_ARRAY);
     $bonusOnly = Arr::init($_REQUEST, 'bonusOnly', TYPE_BOOL);
     $rowCount = Arr::init($_REQUEST, 'count', TYPE_INT, 100);
     $byColumn = Arr::init($_REQUEST, 'column', TYPE_STRING, 'ParentId');
     $filterByColumn = "filterBy{$byColumn}";
     $comparisonOperator = \Criteria::IN;
     $memberTypes = Localizer::get('common.member_types');
     $rows = [];
     for ($i = 0; $i < $rowCount; $i++) {
         $members = \MemberQuery::create()->{$filterByColumn}($ids, $comparisonOperator)->orderBy(\MemberPeer::SIGNUP_DATE, \Criteria::ASC);
         if ($bonusOnly) {
             $members->filterByType(\Member::TYPE_MEMBER, \Criteria::GREATER_THAN);
         }
         $members = $members->find();
         if (count($members) === 0) {
             break;
         }
         $row = $members->toArray();
         $newIds = [];
         foreach ($members as $i => $member) {
             $row[$i]['TypeTranslated'] = $memberTypes[$member->getType()];
             $newIds[] = $member->getId();
         }
         $rows[] = $row;
         $ids = $newIds;
     }
     return new ControllerActionAjax($rows);
 }