<?php StaffWidgets('fsa_status_active'); StaffWidgets('fsa_barcode'); StaffWidgets('fsa_exists_Y'); Search('staff_id', $extra); if ($_REQUEST['modfunc'] == 'submit') { if ($_REQUEST['submit']['cancel']) { if (DeletePromptX(_('Sale'), _('Cancel'))) { unset($_SESSION['FSA_sale']); } } elseif ($_REQUEST['submit']['save']) { if (count($_SESSION['FSA_sale'])) { $items_RET = DBGet(DBQuery("SELECT DESCRIPTION,SHORT_NAME,PRICE_STAFF FROM FOOD_SERVICE_ITEMS WHERE SCHOOL_ID='" . UserSchool() . "'"), array(), array('SHORT_NAME')); // get next transaction id $id = DBGet(DBQuery('SELECT ' . db_seq_nextval('FOOD_SERVICE_STAFF_TRANSACTIONS_SEQ') . ' AS SEQ_ID ' . FROM_DUAL)); $id = $id[1]['SEQ_ID']; $item_id = 0; foreach ($_SESSION['FSA_sale'] as $item_sn) { $price = $items_RET[$item_sn][1]['PRICE_STAFF']; $fields = 'ITEM_ID,TRANSACTION_ID,AMOUNT,SHORT_NAME,DESCRIPTION'; $values = "'" . $item_id++ . "','" . $id . "','-" . $price . "','" . $items_RET[$item_sn][1]['SHORT_NAME'] . "','" . $items_RET[$item_sn][1]['DESCRIPTION'] . "'"; $sql = "INSERT INTO FOOD_SERVICE_STAFF_TRANSACTION_ITEMS (" . $fields . ") values (" . $values . ")"; DBQuery($sql); } $sql1 = "UPDATE FOOD_SERVICE_STAFF_ACCOUNTS SET TRANSACTION_ID='" . $id . "',BALANCE=BALANCE+(SELECT sum(AMOUNT) FROM FOOD_SERVICE_STAFF_TRANSACTION_ITEMS WHERE TRANSACTION_ID='" . $id . "') WHERE STAFF_ID='" . UserStaffID() . "'"; $fields = 'TRANSACTION_ID,STAFF_ID,SYEAR,SCHOOL_ID,BALANCE,TIMESTAMP,SHORT_NAME,DESCRIPTION,SELLER_ID'; $values = "'" . $id . "','" . UserStaffID() . "','" . UserSyear() . "','" . UserSchool() . "',(SELECT BALANCE FROM FOOD_SERVICE_STAFF_ACCOUNTS WHERE STAFF_ID='" . UserStaffID() . "'),CURRENT_TIMESTAMP,'" . $menus_RET[$_REQUEST['menu_id']][1]['TITLE'] . "','" . $menus_RET[$_REQUEST['menu_id']][1]['TITLE'] . ' - ' . DBDate() . "','" . User('STAFF_ID') . "'"; $sql2 = 'INSERT INTO FOOD_SERVICE_STAFF_TRANSACTIONS (' . $fields . ') values (' . $values . ')'; DBQuery('BEGIN; ' . $sql1 . '; ' . $sql2 . '; COMMIT'); unset($_SESSION['FSA_sale']);
<?php DrawHeader(ProgramTitle()); include 'Menu.php'; if (UserStaffID()) { $profile = DBGet(DBQuery("SELECT PROFILE_ID,PROFILE FROM STAFF WHERE STAFF_ID='" . UserStaffID() . "'")); if ($profile[1]['PROFILE_ID'] || $profile[1]['PROFILE'] == 'none') { unset($_SESSION['staff_id']); echo '<script language=JavaScript>parent.side.location="' . $_SESSION['Side_PHP_SELF'] . '?modcat="+parent.side.document.forms[0].modcat.value;</script>'; } } StaffWidgets('permissions_N'); Search('staff_id', $extra); $user_id = UserStaffID(); $profile = DBGet(DBQuery("SELECT PROFILE FROM STAFF WHERE STAFF_ID='{$user_id}'")); $xprofile = $profile[1]['PROFILE']; $exceptions_RET = DBGet(DBQuery("SELECT MODNAME,CAN_USE,CAN_EDIT FROM STAFF_EXCEPTIONS WHERE USER_ID='{$user_id}'"), array(), array('MODNAME')); if ($_REQUEST['modfunc'] == 'update' && AllowEdit()) { $tmp_menu = $menu; $categories_RET = DBGet(DBQuery("SELECT ID,TITLE FROM STUDENT_FIELD_CATEGORIES")); foreach ($categories_RET as $category) { $file = 'Students/Student.php&category_id=' . $category['ID']; $tmp_menu['Students'][$xprofile][$file] = ' › ' . $category['TITLE']; } $categories_RET = DBGet(DBQuery("SELECT ID,TITLE FROM STAFF_FIELD_CATEGORIES")); foreach ($categories_RET as $category) { $file = 'Users/User.php&category_id=' . $category['ID']; $tmp_menu['Users'][$xprofile][$file] = ' › ' . $category['TITLE']; } foreach ($tmp_menu as $modcat => $profiles) { $values = $profiles[$xprofile];
function StaffWidgets($item, &$myextra = NULL) { global $extra, $_ROSARIO, $RosarioModules; if (isset($myextra)) { $extra =& $myextra; } if (!is_array($_ROSARIO['StaffWidgets'])) { $_ROSARIO['StaffWidgets'] = array(); } if (!is_array($extra['functions'])) { $extra['functions'] = array(); } if ((User('PROFILE') == 'admin' || User('PROFILE') == 'teacher') && !$_ROSARIO['StaffWidgets'][$item]) { switch ($item) { case 'all': //modif Francois: css WPadmin // $extra['search'] .= '<TR><TD>'; $extra['search'] .= '<TR><TD><TABLE style="border-collapse:separate; border-spacing:2px" class="width-100p cellpadding-2">'; if ($RosarioModules['Users'] && !$_ROSARIO['StaffWidgets']['permissions']) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'users_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="users_table_arrow" height="12"> <B>' . _('Users') . '</B></A><BR /><TABLE id="users_table" style="display:none;" class="widefat width-100p cellspacing-0">'; StaffWidgets('permissions', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Food_Service'] && (!$_ROSARIO['StaffWidgets']['fsa_balance'] || !$_ROSARIO['StaffWidgets']['fsa_status'] || !$_ROSARIO['StaffWidgets']['fsa_barcode'])) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'food_service_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="food_service_table_arrow" height="12"> <B>' . _('Food Service') . '</B></A><BR /><TABLE id="food_service_table" style="display:none;" class="widefat width-100p cellspacing-0">'; StaffWidgets('fsa_balance', $extra); StaffWidgets('fsa_status', $extra); StaffWidgets('fsa_barcode', $extra); StaffWidgets('fsa_exists', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } $extra['search'] .= '</TABLE></TD></TR>'; break; case 'user': $widgets_RET = DBGet(DBQuery("SELECT TITLE FROM PROGRAM_USER_CONFIG WHERE USER_ID='" . User('STAFF_ID') . "' AND PROGRAM='StaffWidgetsSearch'" . (count($_ROSARIO['StaffWidgets']) ? " AND TITLE NOT IN ('" . implode("','", array_keys($_ROSARIO['StaffWidgets'])) . "')" : ''))); foreach ($widgets_RET as $widget) { StaffWidgets($widget['TITLE'], $extra); } break; case 'permissions_Y': case 'permissions_N': $value = mb_substr($item, 12); $item = 'permissions'; case 'permissions': if ($RosarioModules['Users']) { if ($_REQUEST['permissions']) { $extra['WHERE'] .= " AND s.PROFILE_ID IS " . ($_REQUEST['permissions'] == 'Y' ? 'NOT' : '') . " NULL AND s.PROFILE!='none'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<span style="color:gray"><b>' . Localize('colon', _('Permissions')) . ' </b></span>' . ($_REQUEST['permissions'] == 'Y' ? _('Profile') : _('Custom')) . '<BR />'; } } //modif Francois: add <label> on radio $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Permissions') . '</TD><TD><label><INPUT type="radio" name="permissions" value=""' . (!$value ? ' checked' : '') . '> ' . _('All') . '</label> <label><INPUT type="radio" name="permissions" value="Y"' . ($value == 'Y' ? ' checked' : '') . '> ' . _('Profile') . '</label> <label><INPUT type="radio" name="permissions" value="N"' . ($value == 'N' ? ' checked' : '') . '> ' . _('Custom') . '</label></TD></TR>'; } break; case 'fsa_balance_warning': $value = $GLOBALS['warning']; $item = 'fsa_balance'; case 'fsa_balance': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_balance'] != '') { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ',FOOD_SERVICE_STAFF_ACCOUNTS fssa'; $extra['WHERE'] .= ' AND fssa.STAFF_ID=s.STAFF_ID'; } $extra['WHERE'] .= " AND fssa.BALANCE" . ($_REQUEST['fsa_bal_gt'] == 'Y' ? '>=' : '<') . "'" . round($_REQUEST['fsa_balance'], 2) . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<span style="color:gray"><b>' . Localize('colon', _('Food Service Balance')) . ' </b></span><span class="sizep2">' . ($_REQUEST['fsa_bal_ge'] == 'Y' ? '≥' : '<') . '</span>' . number_format($_REQUEST['fsa_balance'], 2) . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Balance') . '</TD><TD><table class="cellpadding-0 cellspacing-0"><tr><td><label><span class="sizep2"><</span> <INPUT type="radio" name="fsa_bal_ge" value="" checked /></label></td><td rowspan="2"><INPUT type="text" name="fsa_balance" size="10"' . ($value ? ' value="' . $value . '"' : '') . '></td></tr><tr><td><label><span class="sizep2">≥</span> <INPUT type="radio" name="fsa_bal_ge" value="Y"></label></td></tr></table></TD></TR>'; } break; case 'fsa_status_active': $value = 'active'; $item = 'fsa_status'; case 'fsa_status': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_status']) { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ',FOOD_SERVICE_STAFF_ACCOUNTS fssa'; $extra['WHERE'] .= ' AND fssa.STAFF_ID=s.STAFF_ID'; } if ($_REQUEST['fsa_status'] == 'Active') { $extra['WHERE'] .= ' AND fssa.STATUS IS NULL'; } else { $extra['WHERE'] .= ' AND fssa.STATUS=\'' . $_REQUEST['fsa_status'] . '\''; } if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<span style="color:gray"><b>' . Localize('colon', _('Food Service Status')) . ' </b></span>' . $_REQUEST['fsa_status'] . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Account Status') . '</TD><TD><SELECT name="fsa_status"><OPTION value="">' . _('Not Specified') . '</OPTION><OPTION value="Active"' . ($value == 'active' ? ' SELECTED="SELECTED"' : '') . '>' . _('Active') . '</OPTION><OPTION value="Inactive">' . _('Inactive') . '</OPTION><OPTION value="Disabled">' . _('Disabled') . '</OPTION><OPTION value="Closed">' . _('Closed') . '</OPTION></SELECT></TD></TR>'; } break; case 'fsa_barcode': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_barcode']) { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ',FOOD_SERVICE_STAFF_ACCOUNTS fssa'; $extra['WHERE'] .= ' AND fssa.STAFF_ID=s.STAFF_ID'; } $extra['WHERE'] .= ' AND fssa.BARCODE=\'' . $_REQUEST['fsa_barcode'] . '\''; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<span style="color:gray"><b>' . Localize('colon', _('Food Service Barcode')) . ' </b></span>' . $_REQUEST['fsa_barcode'] . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Barcode') . '</TD><TD><INPUT type="text" name="fsa_barcode" size="15"></TD></TR>'; } break; case 'fsa_exists_N': case 'fsa_exists_Y': $value = mb_substr($item, 11); $item = 'fsa_exists'; case 'fsa_exists': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_exists']) { $extra['WHERE'] .= ' AND ' . ($_REQUEST['fsa_exists'] == 'N' ? 'NOT ' : '') . 'EXISTS (SELECT \'exists\' FROM FOOD_SERVICE_STAFF_ACCOUNTS WHERE STAFF_ID=s.STAFF_ID)'; if (!$extra['NoSearchTerms']) { //modif Francois: add translation $_ROSARIO['SearchTerms'] .= Localize('colon', _('Food Service Account Exists')) . ' ' . ($_REQUEST['fsa_exists'] == 'Y' ? _('Yes') : _('No')) . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Has Account') . '</TD><TD><label><INPUT type="radio" name="fsa_exists" value=""' . (!$value ? ' checked' : '') . '>' . _('All') . '</label> <label><INPUT type="radio" name="fsa_exists" value="Y"' . ($value == 'Y' ? ' checked' : '') . '>' . _('Yes') . '</label> <label><INPUT type="radio" name="fsa_exists" value="N"' . ($value == 'N' ? ' checked' : '') . '>' . _('No') . '</label></TD></TR>'; } break; } $_ROSARIO['StaffWidgets'][$item] = true; } }
PopTable('footer'); break; default: echo User('PROFILE'); } } else { if (!$_REQUEST['next_modname']) { $_REQUEST['next_modname'] = 'Users/User.php'; } if (User('PROFILE') == 'admin') { if (!isset($extra)) { $extra = array(); } StaffWidgets('user', $extra); if ($_REQUEST['advanced'] == 'Y') { StaffWidgets('all', $extra); } } if (!$extra['NoSearchTerms']) { if ($_REQUEST['_search_all_schools'] == 'Y') { $_ROSARIO['SearchTerms'] .= '<span style="color:gray"><b>' . _('Search All Schools') . '</b></span><BR />'; } } $extra['WHERE'] .= appendStaffSQL('', array('NoSearchTerms' => $extra['NoSearchTerms'])); $extra['WHERE'] .= CustomFields('where', 'staff', array('NoSearchTerms' => $extra['NoSearchTerms'])); if (!isset($_ROSARIO['DrawHeader'])) { DrawHeader(_('Choose A User')); } $staff_RET = GetStaffList($extra); if ($extra['profile']) { // DO NOT translate those strings since they will be passed to ListOutput ultimately
function StaffWidgets($item, &$myextra) { global $extra, $_CENTRE, $CentreModules; if (isset($myextra)) { $extra =& $myextra; } if (!is_array($_CENTRE['StaffWidgets'])) { $_CENTRE['StaffWidgets'] = array(); } if (!is_array($extra['functions'])) { $extra['functions'] = array(); } if ((User('PROFILE') == 'admin' || User('PROFILE') == 'teacher') && !$_CENTRE['StaffWidgets'][$item]) { switch ($item) { case 'all': $extra['search'] .= '<TR><TD>'; if ($CentreModules['Users'] && !$_CENTRE['StaffWidgets']['permissions']) { $extra['search'] .= '<A onclick="switchMenu(\'users_table\');"><IMG SRC=assets/arrow_right.gif id=users_table_arrow> <B>' . _('Users') . '</B></A><BR><TABLE bgcolor=#f8f8f9 width=100% id=users_table style="display:none;">'; StaffWidgets('permissions', $extra); $extra['search'] .= '</TABLE>'; } if ($CentreModules['Food_Service'] && (!$_CENTRE['StaffWidgets']['fsa_balance'] || !$_CENTRE['StaffWidgets']['fsa_status'] || !$_CENTRE['StaffWidgets']['fsa_barcode'])) { $extra['search'] .= '<A onclick="switchMenu(\'food_service_table\');"><IMG SRC=assets/arrow_right.gif id=food_service_table_arrow> <B>' . _('Food Service') . '</B></A><BR><TABLE bgcolor=#f8f8f9 width=100% id=food_service_table style="display:none;">'; StaffWidgets('fsa_balance', $extra); StaffWidgets('fsa_status', $extra); StaffWidgets('fsa_barcode', $extra); StaffWidgets('fsa_exists', $extra); $extra['search'] .= '</TABLE>'; } $extra['search'] .= '</TD></TR>'; break; case 'user': $widgets_RET = DBGet(DBQuery("SELECT TITLE FROM PROGRAM_USER_CONFIG WHERE USER_ID='" . User('STAFF_ID') . "' AND PROGRAM='StaffWidgetsSearch'" . (count($_CENTRE['StaffWidgets']) ? " AND TITLE NOT IN ('" . implode("','", array_keys($_CENTRE['StaffWidgets'])) . "')" : ''))); foreach ($widgets_RET as $widget) { StaffWidgets($widget['TITLE'], $extra); } break; case 'permissions_Y': case 'permissions_N': $value = substr($item, 12); $item = 'permissions'; case 'permissions': if ($CentreModules['Users']) { if ($_REQUEST['permissions']) { $extra['WHERE'] .= " AND s.PROFILE_ID IS " . ($_REQUEST['permissions'] == 'Y' ? 'NOT' : '') . " NULL AND s.PROFILE!='none'"; if (!$extra['NoSearchTerms']) { $_CENTRE['SearchTerms'] .= '<font color=gray><b>' . Localize('colon', _('Permissions')) . ' </b></font>' . ($_REQUEST['permissions'] == 'Y' ? _('Profile') : _('Custom')) . '<BR>'; } } $extra['search'] .= '<TR><TD align=right width=120>' . _('Permissions') . '</TD><TD><INPUT type=radio name=permissions value=""' . (!$value ? ' CHECKED' : '') . '>' . _('All') . ' <INPUT type=radio name=permissions value=Y' . ($value == 'Y' ? ' CHECKED' : '') . '>' . _('Profile') . ' <INPUT type=radio name=permissions value=N' . ($value == 'N' ? ' CHECKED' : '') . '>' . _('Custom') . '</TD></TR>'; } break; case 'fsa_balance_warning': $value = $GLOBALS['warning']; $item = 'fsa_balance'; case 'fsa_balance': if ($CentreModules['Food_Service']) { if ($_REQUEST['fsa_balance'] != '') { if (!strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ',FOOD_SERVICE_STAFF_ACCOUNTS fssa'; $extra['WHERE'] .= ' AND fssa.STAFF_ID=s.STAFF_ID'; } $extra['WHERE'] .= " AND fssa.BALANCE" . ($_REQUEST['fsa_bal_gt'] == 'Y' ? '>=' : '<') . "'" . round($_REQUEST['fsa_balance'], 2) . "'"; if (!$extra['NoSearchTerms']) { $_CENTRE['SearchTerms'] .= '<font color=gray><b>' . Localize('colon', _('Food Service Balance')) . ' </b></font>' . ($_REQUEST['fsa_bal_ge'] == 'Y' ? '≥' : '<') . number_format($_REQUEST['fsa_balance'], 2) . '<BR>'; } } $extra['search'] .= '<TR><TD align=right width=120>' . _('Balance') . '</TD><TD><table cellpadding=0 cellspacing=0><tr><td><<INPUT type=radio name=fsa_bal_ge value="" CHECKED></td><td rowspan=2><INPUT type=text name=fsa_balance size=10' . ($value ? ' value="' . $value . '"' : '') . '></td></tr><tr><td>≥<INPUT type=radio name=fsa_bal_ge value=Y></td></tr></table></TD></TR>'; } break; case 'fsa_status_active': $value = 'active'; $item = 'fsa_status'; case 'fsa_status': if ($CentreModules['Food_Service']) { if ($_REQUEST['fsa_status']) { if (!strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ',FOOD_SERVICE_STAFF_ACCOUNTS fssa'; $extra['WHERE'] .= ' AND fssa.STAFF_ID=s.STAFF_ID'; } if ($_REQUEST['fsa_status'] == 'Active') { $extra['WHERE'] .= ' AND fssa.STATUS IS NULL'; } else { $extra['WHERE'] .= ' AND fssa.STATUS=\'' . $_REQUEST['fsa_status'] . '\''; } if (!$extra['NoSearchTerms']) { $_CENTRE['SearchTerms'] .= '<font color=gray><b>' . Localize('colon', _('Food Service Status')) . ' </b></font>' . $_REQUEST['fsa_status'] . '<BR>'; } } $extra['search'] .= '<TR><TD align=right width=120>' . _('Account Status') . '</TD><TD><SELECT name=fsa_status><OPTION value="">' . _('Not Specified') . '</OPTION><OPTION value="Active"' . ($value == 'active' ? ' SELECTED' : '') . '>' . _('Active') . '</OPTION><OPTION value="Inactive">' . _('Inactive') . '</OPTION><OPTION value="Disabled">' . _('Disabled') . '</OPTION><OPTION value="Closed">' . _('Closed') . '</OPTION></SELECT></TD></TR>'; } break; case 'fsa_barcode': if ($CentreModules['Food_Service']) { if ($_REQUEST['fsa_barcode']) { if (!strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ',FOOD_SERVICE_STAFF_ACCOUNTS fssa'; $extra['WHERE'] .= ' AND fssa.STAFF_ID=s.STAFF_ID'; } $extra['WHERE'] .= ' AND fssa.BARCODE=\'' . $_REQUEST['fsa_barcode'] . '\''; if (!$extra['NoSearchTerms']) { $_CENTRE['SearchTerms'] .= '<font color=gray><b>' . Localize('colon', _('Food Service Barcode')) . ' </b></font>' . $_REQUEST['fsa_barcode'] . '<BR>'; } } $extra['search'] .= '<TR><TD align=right width=120>' . _('Barcode') . '</TD><TD><INPUT type="text" name=fsa_barcode size="15"></TD></TR>'; } break; case 'fsa_exists_N': case 'fsa_exists_Y': $value = substr($item, 11); $item = 'fsa_exists'; case 'fsa_exists': if ($CentreModules['Food_Service']) { if ($_REQUEST['fsa_exists']) { $extra['WHERE'] .= ' AND ' . ($_REQUEST['fsa_exists'] == 'N' ? 'NOT ' : '') . 'EXISTS (SELECT \'exists\' FROM FOOD_SERVICE_STAFF_ACCOUNTS WHERE STAFF_ID=s.STAFF_ID)'; if (!$extra['NoSearchTerms']) { $_CENTRE['SearchTerms'] .= '<font color=gray><b>' . Localize('colon', _('Food Service Account Exists')) . ' </b></font>' . $_REQUEST['fsa_exists'] . '<BR>'; } } $extra['search'] .= '<TR><TD align=right width=120>' . _('Has Account') . '</TD><TD><INPUT type=radio name=fsa_exists value=""' . (!$value ? ' CHECKED' : '') . '>' . _('All') . ' <INPUT type=radio name=fsa_exists value=Y' . ($value == 'Y' ? ' CHECKED' : '') . '>' . _('Yes') . ' <INPUT type=radio name=fsa_exists value=N' . ($value == 'N' ? ' CHECKED' : '') . '>' . _('No') . '</TD></TR>'; } break; } $_CENTRE['StaffWidgets'][$item] = true; } }