• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

payment/classes/class.ilObjPaymentSettingsGUI.php

Go to the documentation of this file.
00001 <?php
00002 /*
00003         +-----------------------------------------------------------------------------+
00004         | ILIAS open source                                                           |
00005         +-----------------------------------------------------------------------------+
00006         | Copyright (c) 1998-2001 ILIAS open source, University of Cologne            |
00007         |                                                                             |
00008         | This program is free software; you can redistribute it and/or               |
00009         | modify it under the terms of the GNU General Public License                 |
00010         | as published by the Free Software Foundation; either version 2              |
00011         | of the License, or (at your option) any later version.                      |
00012         |                                                                             |
00013         | This program is distributed in the hope that it will be useful,             |
00014         | but WITHOUT ANY WARRANTY; without even the implied warranty of              |
00015         | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               |
00016         | GNU General Public License for more details.                                |
00017         |                                                                             |
00018         | You should have received a copy of the GNU General Public License           |
00019         | along with this program; if not, write to the Free Software                 |
00020         | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. |
00021         +-----------------------------------------------------------------------------+
00022 */
00023 
00036 require_once "./classes/class.ilObjectGUI.php";
00037 
00038 class ilObjPaymentSettingsGUI extends ilObjectGUI
00039 {
00040         var $user_obj = null;
00041         var $pobject = null;
00042 
00047         function ilObjPaymentSettingsGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output = true)
00048         {
00049                 global $ilias;
00050 
00051                 $this->user_obj =& $ilias->account;
00052 
00053                 include_once "./payment/classes/class.ilPaymentObject.php";
00054 
00055                 $this->pobject =& new ilPaymentObject($this->user_obj);
00056 
00057 
00058                 $this->type = "pays";
00059                 $this->ilObjectGUI($a_data,$a_id,$a_call_by_reference,$a_prepare_output);
00060 
00061                 $this->lng->loadLanguageModule('payment');
00062         }
00063 
00064         function gatewayObject()
00065         {
00066                 switch($_POST["action"])
00067                 {
00068                         case "deleteVendorsObject":
00069                                 $this->deleteVendors();
00070                                 break;
00071 
00072                         case "editVendorObject":
00073                                 $this->editVendor();
00074                                 break;
00075 
00076                         case "performEditVendorObject":
00077                                 $this->performEditVendorObject();
00078                                 break;
00079 
00080                         default:
00081                                 $this->vendorsObject();
00082                                 break;
00083                 }
00084                 return true;
00085         }
00086 
00087         function resetFilterObject()
00088         {
00089                 unset($_SESSION["pay_statistics"]);
00090                 unset($_POST["transaction_type"]);
00091                 unset($_POST["transaction_value"]);
00092                 unset($_POST["from"]["day"]);
00093                 unset($_POST["from"]["month"]);
00094                 unset($_POST["from"]["year"]);
00095                 unset($_POST["til"]["day"]);
00096                 unset($_POST["til"]["month"]);
00097                 unset($_POST["til"]["year"]);
00098                 unset($_POST["payed"]);
00099                 unset($_POST["access"]);
00100                 unset($_POST["customer"]);
00101 
00102                 sendInfo($this->lng->txt('paya_filter_reseted'));
00103 
00104                 return $this->statisticObject();
00105         }
00106 
00107         function statisticObject()
00108         {
00109                 global $rbacsystem;
00110 
00111                 // MINIMUM ACCESS LEVEL = 'read'
00112                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
00113                 {
00114                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00115                 }
00116 
00117                 if ($_POST["updateView"] == 1)
00118                 {
00119                         $_SESSION["pay_statistics"]["transaction_type"] = $_POST["transaction_type"];
00120                         $_SESSION["pay_statistics"]["transaction_value"] = $_POST["transaction_value"];
00121                         $_SESSION["pay_statistics"]["from"]["day"] = $_POST["from"]["day"];
00122                         $_SESSION["pay_statistics"]["from"]["month"] = $_POST["from"]["month"];
00123                         $_SESSION["pay_statistics"]["from"]["year"] = $_POST["from"]["year"];
00124                         $_SESSION["pay_statistics"]["til"]["day"] = $_POST["til"]["day"];
00125                         $_SESSION["pay_statistics"]["til"]["month"] = $_POST["til"]["month"];
00126                         $_SESSION["pay_statistics"]["til"]["year"] = $_POST["til"]["year"];
00127                         $_SESSION["pay_statistics"]["payed"] = $_POST["payed"];
00128                         $_SESSION["pay_statistics"]["access"] = $_POST["access"];
00129                         $_SESSION["pay_statistics"]["customer"] = $_POST["customer"];
00130                         $_SESSION["pay_statistics"]["vendor"] = $_POST["vendor"];
00131                 }
00132 
00133                 $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.paya_adm_statistic.html','payment');
00134                 
00135                 $this->tpl->setVariable("TXT_FILTER",$this->lng->txt('pay_filter'));
00136                 $this->tpl->setVariable("FORM_ACTION",$this->ctrl->getFormAction($this));
00137                 $this->tpl->setVariable("TXT_TRANSACTION",$this->lng->txt('paya_transaction'));
00138                 $this->tpl->setVariable("TXT_STARTING",$this->lng->txt('pay_starting'));
00139                 $this->tpl->setVariable("TXT_ENDING",$this->lng->txt('pay_ending'));
00140                 $this->tpl->setVariable("TXT_PAYED",$this->lng->txt('paya_payed'));
00141                 $this->tpl->setVariable("TXT_ALL",$this->lng->txt('pay_all'));
00142                 $this->tpl->setVariable("TXT_YES",$this->lng->txt('yes'));
00143                 $this->tpl->setVariable("TXT_NO",$this->lng->txt('no'));
00144                 $this->tpl->setVariable("TXT_CUSTOMER",$this->lng->txt('paya_customer'));
00145                 $this->tpl->setVariable("TXT_VENDOR",$this->lng->txt('paya_vendor'));
00146                 $this->tpl->setVariable("TXT_ACCESS",$this->lng->txt('paya_access'));
00147                 $this->tpl->setVariable("TXT_ORDER_DATE_FROM",$this->lng->txt('pay_order_date_from'));
00148                 $this->tpl->setVariable("TXT_ORDER_DATE_TIL",$this->lng->txt('pay_order_date_til'));
00149                 $this->tpl->setVariable("TXT_UPDATE_VIEW",$this->lng->txt('pay_update_view'));
00150                 $this->tpl->setVariable("TXT_RESET_FILTER",$this->lng->txt('pay_reset_filter'));
00151 
00152                 $this->tpl->setVariable("TRANSACTION_TYPE_" . $_SESSION["pay_statistics"]["transaction_type"], " selected");
00153                 $this->tpl->setVariable("TRANSACTION_VALUE", ilUtil::prepareFormOutput($_SESSION["pay_statistics"]["transaction_value"], true));
00154                 $this->tpl->setVariable("PAYED_" . $_SESSION["pay_statistics"]["payed"], " selected");
00155                 $this->tpl->setVariable("ACCESS_" . $_SESSION["pay_statistics"]["access"], " selected");
00156                 $this->tpl->setVariable("CUSTOMER", ilUtil::prepareFormOutput($_SESSION["pay_statistics"]["customer"], true));
00157                 $this->tpl->setVariable("VENDOR", ilUtil::prepareFormOutput($_SESSION["pay_statistics"]["vendor"], true));
00158 
00159                 for ($i = 1; $i <= 31; $i++)
00160                 {
00161                         $this->tpl->setCurrentBlock("loop_from_day");
00162                         $this->tpl->setVariable("LOOP_FROM_DAY", $i < 10 ? "0" . $i : $i);
00163                         if ($_SESSION["pay_statistics"]["from"]["day"] == $i)
00164                         {
00165                                 $this->tpl->setVariable("LOOP_FROM_DAY_SELECTED", " selected");
00166                         }
00167                         $this->tpl->parseCurrentBlock("loop_from_day");
00168                         $this->tpl->setCurrentBlock("loop_til_day");
00169                         $this->tpl->setVariable("LOOP_TIL_DAY", $i < 10 ? "0" . $i : $i);
00170                         if ($_SESSION["pay_statistics"]["til"]["day"] == $i)
00171                         {
00172                                 $this->tpl->setVariable("LOOP_TIL_DAY_SELECTED", " selected");
00173                         }
00174                         $this->tpl->parseCurrentBlock("loop_til_day");
00175                 }
00176                 for ($i = 1; $i <= 12; $i++)
00177                 {
00178                         $this->tpl->setCurrentBlock("loop_from_month");
00179                         $this->tpl->setVariable("LOOP_FROM_MONTH", $i < 10 ? "0" . $i : $i);
00180                         if ($_SESSION["pay_statistics"]["from"]["month"] == $i)
00181                         {
00182                                 $this->tpl->setVariable("LOOP_FROM_MONTH_SELECTED", " selected");
00183                         }
00184                         $this->tpl->parseCurrentBlock("loop_from_month");
00185                         $this->tpl->setCurrentBlock("loop_til_month");
00186                         $this->tpl->setVariable("LOOP_TIL_MONTH", $i < 10 ? "0" . $i : $i);
00187                         if ($_SESSION["pay_statistics"]["til"]["month"] == $i)
00188                         {
00189                                 $this->tpl->setVariable("LOOP_TIL_MONTH_SELECTED", " selected");
00190                         }
00191                         $this->tpl->parseCurrentBlock("loop_til_month");
00192                 }
00193                 for ($i = 2004; $i <= date("Y"); $i++)
00194                 {
00195                         $this->tpl->setCurrentBlock("loop_from_year");
00196                         $this->tpl->setVariable("LOOP_FROM_YEAR", $i);
00197                         if ($_SESSION["pay_statistics"]["from"]["year"] == $i)
00198                         {
00199                                 $this->tpl->setVariable("LOOP_FROM_YEAR_SELECTED", " selected");
00200                         }
00201                         $this->tpl->parseCurrentBlock("loop_from_year");
00202                         $this->tpl->setCurrentBlock("loop_til_year");
00203                         $this->tpl->setVariable("LOOP_TIL_YEAR", $i);
00204                         if ($_SESSION["pay_statistics"]["til"]["year"] == $i)
00205                         {
00206                                 $this->tpl->setVariable("LOOP_TIL_YEAR_SELECTED", " selected");
00207                         }
00208                         $this->tpl->parseCurrentBlock("loop_til_year");
00209                 }
00210 
00211                 $this->__initBookingObject();
00212 
00213                 if(!count($bookings = $this->booking_obj->getBookings()))
00214                 {
00215                         sendInfo($this->lng->txt('paya_no_bookings'));
00216 
00217                         return true;
00218                 }
00219                 else
00220                 {
00221                         $this->__showButton('exportVendors',$this->lng->txt('excel_export'));
00222                 }
00223                 $img_change = "<img src=\"".ilUtil::getImagePath("edit.gif")."\" alt=\"".
00224                         $this->lng->txt("edit")."\" title=\"".$this->lng->txt("edit").
00225                         "\" border=\"0\" vspace=\"0\"/>";
00226                 
00227                 $counter = 0;
00228                 foreach($bookings as $booking)
00229                 {
00230                         $tmp_obj =& ilObjectFactory::getInstanceByRefId($booking['ref_id']);
00231                         $tmp_vendor =& ilObjectFactory::getInstanceByObjId($booking['b_vendor_id']);
00232                         $tmp_purchaser =& ilObjectFactory::getInstanceByObjId($booking['customer_id']);
00233                         
00234                         $f_result[$counter][] = $booking['transaction_extern'];
00235                         $f_result[$counter][] = $tmp_obj->getTitle();
00236                         $f_result[$counter][] = '['.$tmp_vendor->getLogin().']';
00237                         $f_result[$counter][] = '['.$tmp_purchaser->getLogin().']';
00238                         $f_result[$counter][] = date('Y m d H:i:s',$booking['order_date']);
00239                         $f_result[$counter][] = $booking['duration'];
00240                         $f_result[$counter][] = $booking['price'];
00241 
00242                         $payed_access = $booking['payed'] ? 
00243                                 $this->lng->txt('yes') : 
00244                                 $this->lng->txt('no');
00245 
00246                         $payed_access .= '/';
00247                         $payed_access .= $booking['access'] ?
00248                                 $this->lng->txt('yes') : 
00249                                 $this->lng->txt('no');
00250 
00251                         $f_result[$counter][] = $payed_access;
00252 
00253                         $this->ctrl->setParameter($this,"booking_id",$booking['booking_id']);
00254                         $link_change = "<a href=\"".$this->ctrl->getLinkTarget($this,"editStatistic")."\"> ".
00255                                 $img_change."</a>";
00256 
00257                         $f_result[$counter][] = $link_change;
00258 
00259                         unset($tmp_obj);
00260                         unset($tmp_vendor);
00261                         unset($tmp_purchaser);
00262 
00263                         ++$counter;
00264                 }
00265                 return $this->__showStatisticTable($f_result);
00266         }
00267         
00268         function editStatisticObject($a_show_confirm_delete = false)
00269         {
00270                 if(!isset($_GET['booking_id']))
00271                 {
00272                         sendInfo($this->lng->txt('paya_no_booking_id_given'));
00273                         $this->showStatistics();
00274 
00275                         return true;
00276                 }
00277 
00278                 $this->__showButton('statistic',$this->lng->txt('back'));
00279 
00280                 $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.paya_adm_edit_statistic.html','payment');
00281                 $this->ctrl->setParameter($this,'booking_id',(int) $_GET['booking_id']);
00282 
00283                 // confirm delete
00284                 if($a_show_confirm_delete)
00285                 {
00286                         $this->tpl->setCurrentBlock("confirm_delete");
00287                         $this->tpl->setVariable("CONFIRM_FORMACTION",$this->ctrl->getFormAction($this));
00288                         $this->tpl->setVariable("TXT_CANCEL",$this->lng->txt('cancel'));
00289                         $this->tpl->setVariable("CONFIRM_CMD",'performDelete');
00290                         $this->tpl->setVariable("TXT_CONFIRM",$this->lng->txt('confirm'));
00291                         $this->tpl->parseCurrentBlock();
00292                 }
00293                         
00294 
00295                 $this->__initBookingObject();
00296                 $bookings = $this->booking_obj->getBookings();
00297                 $booking = $bookings[(int) $_GET['booking_id']];
00298 
00299                 // get customer_obj
00300                 $tmp_user =& ilObjectFactory::getInstanceByObjId($booking['customer_id']);
00301 
00302 
00303 
00304                 $this->tpl->setVariable("STAT_FORMACTION",$this->ctrl->getFormAction($this));
00305                 $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_usr_b.gif'));
00306                 $this->tpl->setVariable("ALT_IMG",$this->lng->txt('obj_usr'));
00307                 $this->tpl->setVariable("TITLE",$tmp_user->getFullname().' ['.$tmp_user->getLogin().']');
00308 
00309                 // TXT
00310                 $this->tpl->setVariable("TXT_TRANSACTION",$this->lng->txt('paya_transaction'));
00311                 $this->tpl->setVariable("TXT_VENDOR",$this->lng->txt('paya_vendor'));
00312                 $this->tpl->setVariable("TXT_PAY_METHOD",$this->lng->txt('paya_pay_method'));
00313                 $this->tpl->setVariable("TXT_ORDER_DATE",$this->lng->txt('paya_order_date'));
00314                 $this->tpl->setVariable("TXT_DURATION",$this->lng->txt('duration'));
00315                 $this->tpl->setVariable("TXT_PRICE",$this->lng->txt('price_a'));
00316                 $this->tpl->setVariable("TXT_PAYED",$this->lng->txt('paya_payed'));
00317                 $this->tpl->setVariable("TXT_ACCESS",$this->lng->txt('paya_access'));
00318 
00319                 $this->tpl->setVariable("TRANSACTION",$booking['transaction']);
00320 
00321                 $tmp_vendor =& ilObjectFactory::getInstanceByObjId($booking['b_vendor_id']);
00322 
00323                 $this->tpl->setVariable("VENDOR",$tmp_vendor->getFullname().' ['.$tmp_vendor->getLogin().']');
00324 
00325                 switch($booking['b_pay_method'])
00326                 {
00327                         case $this->pobject->PAY_METHOD_BILL:
00328                                 $this->tpl->setVariable("PAY_METHOD",$this->lng->txt('pays_bill'));
00329                                 break;
00330 
00331                         case $this->pobject->PAY_METHOD_BMF:
00332                                 $this->tpl->setVariable("PAY_METHOD",$this->lng->txt('pays_bmf'));
00333                                 break;
00334 
00335                         default:
00336                                 $this->tpl->setVariable("PAY_METHOD",$this->lng->txt('paya_pay_method_not_specified'));
00337                                 break;
00338                 }
00339                 $this->tpl->setVariable("ORDER_DATE",date('Y m d H:i:s',$booking['order_date']));
00340                 $this->tpl->setVariable("DURATION",$booking['duration'].' '.$this->lng->txt('paya_months'));
00341                 $this->tpl->setVariable("PRICE",$booking['price']);
00342                 
00343                 $yes_no = array(0 => $this->lng->txt('no'),1 => $this->lng->txt('yes'));
00344 
00345                 $this->tpl->setVariable("PAYED",ilUtil::formSelect((int) $booking['payed'],'payed',$yes_no,false,true));
00346                 $this->tpl->setVariable("ACCESS",ilUtil::formSelect((int) $booking['access'],'access',$yes_no,false,true));
00347 
00348                 // buttons
00349                 $this->tpl->setVariable("INPUT_CMD",'updateStatistic');
00350                 $this->tpl->setVariable("INPUT_VALUE",$this->lng->txt('save'));
00351 
00352                 $this->tpl->setVariable("DELETE_CMD",'deleteStatistic');
00353                 $this->tpl->setVariable("DELETE_VALUE",$this->lng->txt('delete'));
00354         }
00355         function updateStatisticObject()
00356         {
00357                 if(!isset($_GET['booking_id']))
00358                 {
00359                         sendInfo($this->lng->txt('paya_no_booking_id_given'));
00360                         $this->statisticObject();
00361 
00362                         return true;
00363                 }
00364                 $this->__initBookingObject();
00365 
00366                 $this->booking_obj->setBookingId((int) $_GET['booking_id']);
00367                 $this->booking_obj->setAccess((int) $_POST['access']);
00368                 $this->booking_obj->setPayed((int) $_POST['payed']);
00369                 
00370                 if($this->booking_obj->update())
00371                 {
00372                         sendInfo($this->lng->txt('paya_updated_booking'));
00373 
00374                         $this->statisticObject();
00375                         return true;
00376                 }
00377                 else
00378                 {
00379                         sendInfo($this->lng->txt('paya_error_update_booking'));
00380 
00381                         $this->statisticObject();
00382                         
00383                         return true;
00384                 }
00385         }
00386 
00387         function deleteStatisticObject()
00388         {
00389                 if(!isset($_GET['booking_id']))
00390                 {
00391                         sendInfo($this->lng->txt('paya_no_booking_id_given'));
00392                         $this->statisticObject();
00393 
00394                         return true;
00395                 }
00396                 sendInfo($this->lng->txt('paya_sure_delete_stat'));
00397 
00398                 $this->editStatisticObject(true);
00399 
00400                 return true;
00401         }
00402         function performDeleteObject()
00403         {
00404                 if(!isset($_GET['booking_id']))
00405                 {
00406                         sendInfo($this->lng->txt('paya_no_booking_id_given'));
00407                         $this->statisticObject();
00408 
00409                         return true;
00410                 }
00411 
00412                 $this->__initBookingObject();
00413                 $this->booking_obj->setBookingId((int) $_GET['booking_id']);
00414                 if(!$this->booking_obj->delete())
00415                 {
00416                         die('Error deleting booking');
00417                 }
00418                 sendInfo($this->lng->txt('pay_deleted_booking'));
00419 
00420                 $this->statisticObject();
00421 
00422                 return true;
00423         }
00424 
00425 
00431         function getTabs(&$tabs_gui)
00432         {
00433                 // tabs are defined manually here. The autogeneration via objects.xml will be deprecated in future
00434                 // for usage examples see ilObjGroupGUI or ilObjSystemFolderGUI
00435         }
00436 
00437         function generalSettingsObject($a_show_confirm = false)
00438         {
00439                 include_once './payment/classes/class.ilGeneralSettings.php';
00440 
00441                 $genSet = new ilGeneralSettings();
00442                 $genSetData = $genSet->getAll();
00443 
00444                 global $rbacsystem;
00445 
00446                 // MINIMUM ACCESS LEVEL = 'read'
00447                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
00448                 {
00449                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00450                 }
00451 
00452                 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.pays_general_settings.html",'payment');
00453 
00454                 $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
00455                 $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_pays.gif'));
00456                 $this->tpl->setVariable("ALT_IMG",$this->lng->txt('obj_pays'));
00457                 $this->tpl->setVariable("TITLE",$this->lng->txt('pays_general_settings'));
00458                 $this->tpl->setVariable("TXT_CURRENCY_UNIT",$this->lng->txt('pays_currency_unit'));
00459                 $this->tpl->setVariable("TXT_CURRENCY_SUBUNIT",$this->lng->txt('pays_currency_subunit'));
00460                 $this->tpl->setVariable("TXT_ADDRESS",$this->lng->txt('pays_address'));
00461                 $this->tpl->setVariable("TXT_BANK_DATA",$this->lng->txt('pays_bank_data'));
00462                 $this->tpl->setVariable("TXT_ADD_INFO",$this->lng->txt('pays_add_info'));
00463                 $this->tpl->setVariable("TXT_VAT_RATE",$this->lng->txt('pays_vat_rate'));
00464                 $this->tpl->setVariable("TXT_PDF_PATH",$this->lng->txt('pays_pdf_path'));
00465                 $this->tpl->setVariable("CURRENCY_UNIT",
00466                                                                 $this->error != "" && isset($_POST['currency_unit'])
00467                                                                 ? ilUtil::prepareFormOutput($_POST['currency_unit'],true)
00468                                                                 : ilUtil::prepareFormOutput($genSetData['currency_unit'],true));
00469                 $this->tpl->setVariable("CURRENCY_SUBUNIT",
00470                                                                 $this->error != "" && isset($_POST['currency_subunit'])
00471                                                                 ? ilUtil::prepareFormOutput($_POST['currency_subunit'],true)
00472                                                                 : ilUtil::prepareFormOutput($genSetData['currency_subunit'],true));
00473                 $this->tpl->setVariable("ADDRESS",
00474                                                                 $this->error != "" && isset($_POST['address'])
00475                                                                 ? ilUtil::prepareFormOutput($_POST['address'],true)
00476                                                                 : ilUtil::prepareFormOutput($genSetData['address'],true));
00477                 $this->tpl->setVariable("BANK_DATA",
00478                                                                 $this->error != "" && isset($_POST['bank_data'])
00479                                                                 ? ilUtil::prepareFormOutput($_POST['bank_data'],true)
00480                                                                 : ilUtil::prepareFormOutput($genSetData['bank_data'],true));
00481                 $this->tpl->setVariable("ADD_INFO",
00482                                                                 $this->error != "" && isset($_POST['add_info'])
00483                                                                 ? ilUtil::prepareFormOutput($_POST['add_info'],true)
00484                                                                 : ilUtil::prepareFormOutput($genSetData['add_info'],true));
00485                 $this->tpl->setVariable("VAT_RATE",
00486                                                                 $this->error != "" && isset($_POST['vat_rate'])
00487                                                                 ? ilUtil::prepareFormOutput($_POST['vat_rate'],true)
00488                                                                 : ilUtil::prepareFormOutput($genSetData['vat_rate'],true));
00489                 $this->tpl->setVariable("PDF_PATH",
00490                                                                 $this->error != "" && isset($_POST['pdf_path'])
00491                                                                 ? ilUtil::prepareFormOutput($_POST['pdf_path'],true)
00492                                                                 : ilUtil::prepareFormOutput($genSetData['pdf_path'],true));
00493                 
00494                 // footer
00495                 $this->tpl->setVariable("COLUMN_COUNT",2);
00496                 $this->tpl->setVariable("PBTN_NAME",'saveGeneralSettings');
00497                 $this->tpl->setVariable("PBTN_VALUE",$this->lng->txt('save'));
00498                 
00499         }
00500         
00501         function saveGeneralSettingsObject()
00502         {
00503                 include_once './payment/classes/class.ilGeneralSettings.php';
00504 
00505                 $genSet = new ilGeneralSettings();
00506 
00507                 global $rbacsystem;
00508 
00509                 // MINIMUM ACCESS LEVEL = 'read'
00510                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
00511                 {
00512                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00513                 }
00514 
00515                 if ($_POST["currency_unit"] == "" ||
00516                         $_POST["currency_subunit"] == "" ||
00517                         $_POST["address"] == "" ||
00518                         $_POST["bank_data"] == "" ||
00519                         $_POST["pdf_path"] == "")
00520                 {
00521                         $this->error = $this->lng->txt('pays_general_settings_not_valid');
00522                         sendInfo($this->error);
00523                         $this->generalSettingsObject();
00524                         return;
00525                 }
00526 
00527                 $genSet->clearAll();
00528                 $values = array(
00529                         "currency_unit" => $_POST['currency_unit'],
00530                         "currency_subunit" => $_POST['currency_subunit'],
00531                         "address" => $_POST['address'],
00532                         "bank_data" => $_POST['bank_data'],
00533                         "add_info" => $_POST['add_info'],
00534                         "vat_rate" => (float) str_replace(",", ".", $_POST['vat_rate']),
00535                         "pdf_path" => $_POST['pdf_path']
00536                 );
00537                 $genSet->setAll($values);
00538                 $this->generalSettingsObject();
00539 
00540                 sendInfo($this->lng->txt('pays_updated_general_settings'));
00541 
00542                 return true;
00543         }
00544 
00545         function vendorsObject($a_show_confirm = false)
00546         {
00547                 include_once './payment/classes/class.ilPaymentBookings.php';
00548         
00549                 global $rbacsystem;
00550 
00551                 // MINIMUM ACCESS LEVEL = 'read'
00552                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
00553                 {
00554                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00555                 }
00556 
00557                 $_SESSION['pays_vendor'] = is_array($_SESSION['pays_vendor']) ?  $_SESSION['pays_vendor'] : array();
00558                 
00559 
00560                 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.pays_vendors.html",'payment');
00561                 
00562                 $this->__showButton('searchUser',$this->lng->txt('search_user'));
00563 
00564                 $this->object->initPaymentVendorsObject();
00565                 if(!count($vendors = $this->object->payment_vendors_obj->getVendors()))
00566                 {
00567                         sendInfo($this->lng->txt('pay_no_vendors_created'));
00568                 }
00569                 else
00570                 {
00571                         $this->__showButton('exportVendors',$this->lng->txt('excel_export'));
00572                 }
00573 
00574 
00575 
00576                 if($a_show_confirm)
00577                 {
00578                         $this->tpl->setCurrentBlock("confirm_delete");
00579                         $this->tpl->setVariable("CONFIRM_FORMACTION",$this->ctrl->getFormAction($this));
00580                         $this->tpl->setVariable("TXT_CANCEL",$this->lng->txt('cancel'));
00581                         $this->tpl->setVariable("CONFIRM_CMD",'performDeleteVendors');
00582                         $this->tpl->setVariable("TXT_CONFIRM",$this->lng->txt('delete'));
00583                         $this->tpl->parseCurrentBlock();
00584                 }
00585 
00586                 $counter = 0;
00587                 $f_result = array();
00588                 foreach($vendors as $vendor)
00589                 {
00590                         // GET USER OBJ
00591                         if($tmp_obj = ilObjectFactory::getInstanceByObjId($vendor['vendor_id'],false))
00592                         {
00593                                 $f_result[$counter][]   = ilUtil::formCheckbox(in_array($vendor['vendor_id'],$_SESSION['pays_vendor']) ? 1 : 0,
00594                                                                                                                            "vendor[]",
00595                                                                                                                            $vendor['vendor_id']);
00596                                 $f_result[$counter][]   = $tmp_obj->getLogin();
00597                                 $f_result[$counter][]   = $vendor['cost_center'];
00598                                 $f_result[$counter][]   = ilPaymentBookings::_getCountBookingsByVendor($vendor['vendor_id']);
00599                                 
00600                                 unset($tmp_obj);
00601                                 ++$counter;
00602                         }
00603                         $this->__showVendorsTable($f_result);
00604 
00605                 } // END VENDORS TABLE
00606 
00607                 return true;
00608         }
00609 
00610         function exportVendorsObject()
00611         {
00612                 include_once './payment/classes/class.ilPaymentExcelWriterAdapter.php';
00613 
00614                 $pewa =& new ilPaymentExcelWriterAdapter('payment_vendors.xls');
00615 
00616                 // add/fill worksheet
00617                 $this->addVendorWorksheet($pewa);
00618                 $this->addStatisticWorksheet($pewa);
00619 
00620                 // HEADER SENT
00621                 
00622                 $workbook =& $pewa->getWorkbook();
00623                 $workbook->close();
00624         }
00625 
00626         function addStatisticWorksheet(&$pewa)
00627         {
00628                 include_once './payment/classes/class.ilPaymentVendors.php';
00629 
00630                 $this->__initBookingObject();
00631 
00632                 if(!count($bookings = $this->booking_obj->getBookings()))
00633                 {
00634                         return false;
00635                 }
00636 
00637                 $workbook =& $pewa->getWorkbook();
00638                 $worksheet =& $workbook->addWorksheet($this->lng->txt('paya_statistic'));
00639                 
00640                 $worksheet->mergeCells(0,0,0,8);
00641                 $worksheet->setColumn(0,0,32);
00642                 $worksheet->setColumn(0,1,32);
00643                 $worksheet->setColumn(0,2,16);
00644                 $worksheet->setColumn(0,3,16);
00645                 $worksheet->setColumn(0,4,16);
00646                 $worksheet->setColumn(0,5,24);
00647                 $worksheet->setColumn(0,6,8);
00648                 $worksheet->setColumn(0,7,12);
00649                 $worksheet->setColumn(0,8,16);
00650 
00651                 $title = $this->lng->txt('paya_statistic');
00652                 $title .= ' '.$this->lng->txt('as_of');
00653                 $title .= strftime('%Y-%m-%d %R',time());
00654 
00655                 $worksheet->writeString(0,0,$title,$pewa->getFormatTitle());
00656 
00657                 $worksheet->writeString(1,0,$this->lng->txt('paya_transaction'),$pewa->getFormatHeader());
00658                 $worksheet->writeString(1,1,$this->lng->txt('title'),$pewa->getFormatHeader());
00659                 $worksheet->writeString(1,2,$this->lng->txt('paya_vendor'),$pewa->getFormatHeader());
00660                 $worksheet->writeString(1,3,$this->lng->txt('pays_cost_center'),$pewa->getFormatHeader());
00661                 $worksheet->writeString(1,4,$this->lng->txt('paya_customer'),$pewa->getFormatHeader());
00662                 $worksheet->writeString(1,5,$this->lng->txt('paya_order_date'),$pewa->getFormatHeader());
00663                 $worksheet->writeString(1,6,$this->lng->txt('duration'),$pewa->getFormatHeader());
00664                 $worksheet->writeString(1,7,$this->lng->txt('price_a'),$pewa->getFormatHeader());
00665                 $worksheet->writeString(1,8,$this->lng->txt('paya_payed_access'),$pewa->getFormatHeader());
00666 
00667                 $counter = 2;
00668                 foreach($bookings as $booking)
00669                 {
00670                         $tmp_obj =& ilObjectFactory::getInstanceByRefId($booking['ref_id']);
00671                         $tmp_vendor =& ilObjectFactory::getInstanceByObjId($booking['b_vendor_id']);
00672                         $tmp_purchaser =& ilObjectFactory::getInstanceByObjId($booking['customer_id']);
00673                         
00674                         $worksheet->writeString($counter,0,$booking['transaction_extern']);
00675                         $worksheet->writeString($counter,1,$tmp_obj->getTitle());
00676                         $worksheet->writeString($counter,2,$tmp_vendor->getLogin());
00677                         $worksheet->writeString($counter,3,ilPaymentVendors::_getCostCenter($tmp_vendor->getId()));
00678                         $worksheet->writeString($counter,4,$tmp_purchaser->getLogin());
00679                         $worksheet->writeString($counter,5,strftime('%Y-%m-%d %R',$booking['order_date']));
00680                         /*
00681                         $worksheet->write($counter,5,ilUtil::excelTime(date('Y',$booking['order_date']),
00682                                                                                                                    date('m',$booking['order_date']),
00683                                                                                                                    date('d',$booking['order_date']),
00684                                                                                                                    date('H',$booking['order_date']),
00685                                                                                                                    date('i',$booking['order_date']),
00686                                                                                                                    date('s',$booking['order_date'])),$pewa->getFormatDate());
00687                         */
00688                         $worksheet->writeString($counter,6,$booking['duration']);
00689                         $worksheet->writeString($counter,7,$booking['price']);
00690                         
00691                         $payed_access = $booking['payed'] ? 
00692                                 $this->lng->txt('yes') : 
00693                                 $this->lng->txt('no');
00694 
00695                         $payed_access .= '/';
00696                         $payed_access .= $booking['access'] ?
00697                                 $this->lng->txt('yes') : 
00698                                 $this->lng->txt('no');
00699 
00700                         $worksheet->writeString($counter,8,$payed_access);
00701 
00702                         unset($tmp_obj);
00703                         unset($tmp_vendor);
00704                         unset($tmp_purchaser);
00705 
00706                         ++$counter;
00707                 }
00708         }               
00709 
00710         function addVendorWorksheet(&$pewa)
00711         {
00712                 $this->object->initPaymentVendorsObject();
00713                 if(!count($vendors = $this->object->payment_vendors_obj->getVendors()))
00714                 {
00715                         return false;
00716                 }
00717 
00718                 $workbook =& $pewa->getWorkbook();
00719                 $worksheet =& $workbook->addWorksheet($this->lng->txt('pays_vendor'));
00720 
00721                 // SHOW HEADER
00722                 $worksheet->mergeCells(0,0,0,2);
00723                 $worksheet->setColumn(1,0,32);
00724                 $worksheet->setColumn(1,1,32);
00725                 $worksheet->setColumn(1,2,32);
00726 
00727                 $title = $this->lng->txt('paya_vendor_list');
00728                 $title .= ' '.$this->lng->txt('as_of');
00729                 $title .= strftime('%Y-%m-%d %R',time());
00730 
00731                 $worksheet->writeString(0,0,$title,$pewa->getFormatTitle());
00732 
00733                 $worksheet->writeString(1,0,$this->lng->txt('login'),$pewa->getFormatHeader());
00734                 $worksheet->writeString(1,1,$this->lng->txt('fullname'),$pewa->getFormatHeader());
00735                 $worksheet->writeString(1,2,$this->lng->txt('pays_cost_center'),$pewa->getFormatHeader());
00736 
00737                 $counter = 2;
00738                 foreach($vendors as $vendor)
00739                 {
00740                         // GET USER OBJ
00741                         if($tmp_obj = ilObjectFactory::getInstanceByObjId($vendor['vendor_id'],false))
00742                         {
00743                                 $worksheet->writeString($counter,0,$tmp_obj->getLogin());
00744                                 $worksheet->writeString($counter,1,$tmp_obj->getFullname());
00745                                 $worksheet->writeString($counter,2,$vendor['cost_center']);
00746                         }
00747                         unset($tmp_obj);
00748                         ++$counter;
00749                 }
00750         }               
00751         
00752         function payMethodsObject()
00753         {
00754                 include_once './payment/classes/class.ilPayMethods.php';
00755 
00756                 global $rbacsystem;
00757 
00758                 // MINIMUM ACCESS LEVEL = 'read'
00759                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
00760                 {
00761                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00762                 }
00763 
00764                 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.pays_pay_methods.html",'payment');
00765 
00766                 $this->tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
00767                 $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_pays.gif'));
00768                 $this->tpl->setVariable("ALT_IMG",$this->lng->txt('obj_pays'));
00769                 $this->tpl->setVariable("TITLE",$this->lng->txt('pays_pay_methods'));
00770                 $this->tpl->setVariable("TXT_OFFLINE",$this->lng->txt('pays_offline'));
00771                 $this->tpl->setVariable("TXT_BILL",$this->lng->txt('pays_bill'));
00772                 $this->tpl->setVariable("BILL_CHECK",ilUtil::formCheckbox(
00773                                                                         (int) ilPayMethods::_enabled('pm_bill') ? 1 : 0,'pm_bill',1,true));
00774 
00775                 $this->tpl->setVariable("TXT_ENABLED",$this->lng->txt('enabled'));
00776                 $this->tpl->setVariable("TXT_ONLINE",$this->lng->txt('pays_online'));
00777                 $this->tpl->setVariable("TXT_BMF",$this->lng->txt('pays_bmf'));
00778                 $this->tpl->setVariable("ONLINE_CHECK",ilUtil::formCheckbox((int) ilPayMethods::_enabled('pm_bmf'),'pm_bmf',1));
00779                 
00780                 // footer
00781                 $this->tpl->setVariable("COLUMN_COUNT",3);
00782                 $this->tpl->setVariable("PBTN_NAME",'savePayMethods');
00783                 $this->tpl->setVariable("PBTN_VALUE",$this->lng->txt('save'));
00784                 
00785         }
00786 
00787         function savePayMethodsObject()
00788         {
00789                 include_once './payment/classes/class.ilPayMethods.php';
00790                 include_once './payment/classes/class.ilPaymentObject.php';
00791 
00792 
00793                 global $rbacsystem;
00794 
00795                 // MINIMUM ACCESS LEVEL = 'read'
00796                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
00797                 {
00798                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
00799                 }
00800                 
00801 
00802                 // check current payings
00803                 if(ilPayMethods::_enabled('pm_bill') and !$_POST['pm_bill'])
00804                 {
00805                         if(ilPaymentObject::_getCountObjectsByPayMethod('pm_bill'))
00806                         {
00807                                 sendInfo($this->lng->txt('pays_objects_bill_exist'));
00808                                 $this->payMethodsObject();
00809 
00810                                 return false;
00811                         }
00812                 }
00813 
00814                 if(ilPayMethods::_enabled('pm_bmf') and !$_POST['pm_bmf'])
00815                 {
00816                         if(ilPaymentObject::_getCountObjectsByPayMethod('pm_bmf'))
00817                         {
00818                                 sendInfo($this->lng->txt('pays_objects_bmf_exist'));
00819                                 $this->payMethodsObject();
00820 
00821                                 return false;
00822                         }
00823                 }
00824 
00825                 ilPayMethods::_disableAll();
00826                 if(isset($_POST['pm_bill']))
00827                 {
00828                         ilPayMethods::_enable('pm_bill');
00829                 }
00830                 if(isset($_POST['pm_bmf']))
00831                 {
00832                         ilPayMethods::_enable('pm_bmf');
00833                 }
00834                 $this->payMethodsObject();
00835 
00836                 sendInfo($this->lng->txt('pays_updated_pay_method'));
00837 
00838                 return true;
00839         }
00840 
00841         function cancelDeleteVendorsObject()
00842         {
00843                 unset($_SESSION['pays_vendor']);
00844                 $this->vendorsObject();
00845 
00846                 return true;
00847         }
00848 
00849         function deleteVendors()
00850         {
00851                 include_once './payment/classes/class.ilPaymentBookings.php';
00852 
00853                 if(!count($_POST['vendor']))
00854                 {
00855                         sendInfo($this->lng->txt('pays_no_vendor_selected'));
00856                         $this->vendorsObject();
00857 
00858                         return true;
00859                 }
00860                 // CHECK BOOKINGS
00861                 foreach($_POST['vendor'] as $vendor)
00862                 {
00863                         if(ilPaymentBookings::_getCountBookingsByVendor($vendor))
00864                         {
00865                                 sendInfo($this->lng->txt('pays_active_bookings'));
00866                                 $this->vendorsObject();
00867 
00868                                 return true;
00869                         }
00870                 }
00871                 
00872                 $_SESSION["pays_vendor"] = $_POST["vendor"];
00873                 sendInfo($this->lng->txt("pays_sure_delete_selected_vendors"));
00874                 $this->vendorsObject(true);
00875 
00876                 return true;
00877         }
00878         function performDeleteVendorsObject()
00879         {
00880                 include_once './payment/classes/class.ilPaymentTrustees.php';
00881                 
00882                 global $rbacsystem;
00883 
00884                 // MINIMUM ACCESS LEVEL = 'read'
00885                 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00886                 {
00887                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
00888                 }
00889 
00890                 $this->object->initPaymentVendorsObject();
00891 
00892                 foreach($_SESSION['pays_vendor'] as $vendor)
00893                 {
00894                         $this->object->payment_vendors_obj->delete($vendor);
00895                         ilPaymentTrustees::_deleteTrusteesOfVendor($vendor);
00896                 }
00897 
00898                 sendInfo($this->lng->txt('pays_deleted_number_vendors').' '.count($_SESSION['pays_vendor']));
00899                 unset($_SESSION['pays_vendor']);
00900                 
00901                 $this->vendorsObject();
00902 
00903                 return true;
00904         }
00905 
00906         function editVendor()
00907         {
00908                 global $rbacsystem;
00909 
00910                 // MINIMUM ACCESS LEVEL = 'read'
00911                 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00912                 {
00913                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
00914                 }
00915 
00916                 if(!count($_POST['vendor']))
00917                 {
00918                         sendInfo($this->lng->txt('pays_no_vendor_selected'));
00919                         $this->vendorsObject();
00920 
00921                         return true;
00922                 }
00923                 if(count($_POST['vendor']) > 1)
00924                 {
00925                         sendInfo($this->lng->txt('pays_too_many_vendors_selected'));
00926                         $this->vendorsObject();
00927 
00928                         return true;
00929                 }
00930 
00931                 $_SESSION["pays_vendor"] = $_POST["vendor"][0];
00932 
00933                 $this->object->initPaymentVendorsObject();
00934 
00935                 if (!is_array($this->object->payment_vendors_obj->vendors[$_SESSION["pays_vendor"]]))
00936                 {
00937                         $this->vendorsObject();
00938 
00939                         return true;
00940                 }
00941 
00942                 $this->tpl->addBlockfile('ADM_CONTENT','adm_content','tpl.pays_vendor.html','payment');
00943 
00944                 $this->tpl->setVariable("VENDOR_FORMACTION",$this->ctrl->getFormAction($this));
00945 
00946                 // set table header
00947                 $this->tpl->setVariable("TYPE_IMG",ilUtil::getImagePath('icon_usr_b.gif'));
00948                 $this->tpl->setVariable("ALT_IMG",$this->lng->txt('obj_usr'));
00949                 $this->tpl->setVariable("TITLE",$this->lng->txt('pays_vendor'));
00950 
00951                 // set plain text variables
00952                 $this->tpl->setVariable("TXT_VENDOR",$this->lng->txt('pays_vendor'));
00953                 $this->tpl->setVariable("TXT_COST_CENTER",$this->lng->txt('pays_cost_center'));
00954 
00955                 $this->tpl->setVariable("INPUT_VALUE",ucfirst($this->lng->txt('save')));
00956 
00957                 // fill defaults
00958 
00959                 $this->tpl->setVariable("VENDOR",
00960                                                                 ilObjUser::getLoginByUserId($this->object->payment_vendors_obj->vendors[$_SESSION["pays_vendor"]]["vendor_id"]), true);
00961                 $this->tpl->setVariable("COST_CENTER",
00962                                                                 $this->error != "" && isset($_POST['cost_center'])
00963                                                                 ? ilUtil::prepareFormOutput($_POST['cost_center'],true)
00964                                                                 : ilUtil::prepareFormOutput($this->object->payment_vendors_obj->vendors[$_SESSION["pays_vendor"]]["cost_center"],true));
00965 
00966                 // Button
00967                 $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
00968                 $this->tpl->setCurrentBlock("btn_cell");
00969                 $this->tpl->setVariable("BTN_LINK", $this->ctrl->getLinkTarget($this, "vendors"));
00970                 $this->tpl->setVariable("BTN_TXT", $this->lng->txt('pay_bmf_back'));
00971                 $this->tpl->parseCurrentBlock("btn_cell");
00972 
00973         }
00974         function performEditVendorObject()
00975         {
00976                 global $rbacsystem;
00977 
00978                 // MINIMUM ACCESS LEVEL = 'read'
00979                 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
00980                 {
00981                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
00982                 }
00983 
00984                 if(!count($_SESSION['pays_vendor']))
00985                 {
00986                         sendInfo($this->lng->txt('pays_no_vendor_selected'));
00987                         $this->vendorsObject();
00988 
00989                         return true;
00990                 }
00991                 if(count($_SESSION['pays_vendor']) > 1)
00992                 {
00993                         sendInfo($this->lng->txt('pays_too_many_vendors_selected'));
00994                         $this->vendorsObject();
00995 
00996                         return true;
00997                 }
00998 
00999                 $this->object->initPaymentVendorsObject();
01000 
01001                 if (!is_array($this->object->payment_vendors_obj->vendors[$_SESSION["pays_vendor"]]))
01002                 {
01003                         $this->vendorsObject();
01004 
01005                         return true;
01006                 }
01007 
01008                 if ($_POST["cost_center"] == "")
01009                 {
01010                         $this->error = $this->lng->txt('pays_cost_center_not_valid');
01011                         sendInfo($this->error);
01012                         $_POST["vendor"] = array($_SESSION["pays_vendor"]);
01013                         $this->editVendor();
01014                         return;
01015                 }
01016 
01017                 $this->object->initPaymentVendorsObject();
01018                 $this->object->payment_vendors_obj->update($_SESSION["pays_vendor"], $_POST["cost_center"]);
01019 
01020                 unset($_SESSION['pays_vendor']);
01021 
01022                 $this->vendorsObject();
01023 
01024                 return true;
01025         }
01026 
01027         function searchUserObject()
01028         {
01029                 global $rbacsystem;
01030 
01031                 // MINIMUM ACCESS LEVEL = 'read'
01032                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
01033                 {
01034                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
01035                 }
01036 
01037                 $this->tpl->addBlockFile("ADM_CONTENT","adm_content","tpl.pays_user_search.html",'payment');
01038 
01039                 $this->lng->loadLanguageModule('search');
01040 
01041                 $this->tpl->setVariable("F_ACTION",$this->ctrl->getFormAction($this));
01042                 $this->tpl->setVariable("SEARCH_ASSIGN_USR",$this->lng->txt("crs_search_members"));
01043                 $this->tpl->setVariable("SEARCH_SEARCH_TERM",$this->lng->txt("search_search_term"));
01044                 $this->tpl->setVariable("SEARCH_VALUE",$_SESSION["pays_search_str"] ? $_SESSION["pays_search_str"] : "");
01045                 $this->tpl->setVariable("BTN2_VALUE",$this->lng->txt("cancel"));
01046                 $this->tpl->setVariable("BTN1_VALUE",$this->lng->txt("search"));
01047 
01048                 return true;
01049         }
01050 
01051         function searchObject()
01052         {
01053                 global $rbacsystem,$tree;
01054 
01055                 if(!$rbacsystem->checkAccess("read", $this->object->getRefId()))
01056                 {
01057                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
01058                 }
01059 
01060                 $_SESSION["pays_search_str"] = $_POST["search_str"] = $_POST["search_str"] ? $_POST["search_str"] : $_SESSION["pays_search_str"];
01061 
01062                 if(!isset($_POST["search_str"]))
01063                 {
01064                         sendInfo($this->lng->txt("crs_search_enter_search_string"));
01065                         $this->searchUserObject();
01066                         
01067                         return false;
01068                 }
01069                 if(!count($result = $this->__search(ilUtil::stripSlashes($_POST["search_str"]))))
01070                 {
01071                         sendInfo($this->lng->txt("crs_no_results_found"));
01072                         $this->searchUserObject();
01073 
01074                         return false;
01075                 }
01076 
01077                 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.pays_usr_selection.html",'payment');
01078                 $this->__showButton("searchUser",$this->lng->txt("crs_new_search"));
01079                 
01080                 $counter = 0;
01081                 $f_result = array();
01082                 foreach($result as $user)
01083                 {
01084                         if(!$tmp_obj = ilObjectFactory::getInstanceByObjId($user["id"],false))
01085                         {
01086                                 continue;
01087                         }
01088                         $f_result[$counter][] = ilUtil::formCheckbox(0,"user[]",$user["id"]);
01089                         $f_result[$counter][] = $tmp_obj->getLogin();
01090                         $f_result[$counter][] = $tmp_obj->getLastname();
01091                         $f_result[$counter][] = $tmp_obj->getFirstname();
01092 
01093                         unset($tmp_obj);
01094                         ++$counter;
01095                 }
01096                 $this->__showSearchUserTable($f_result);
01097 
01098                 return true;
01099         }
01100         function addVendorObject()
01101         {
01102                 global $rbacsystem;
01103 
01104                 // MINIMUM ACCESS LEVEL = 'administrate'
01105                 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
01106                 {
01107                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
01108                 }
01109                 if(!$_POST['vendor_login'])
01110                 {
01111                         sendInfo($this->lng->txt('pays_no_username_given'));
01112                         $this->vendorsObject();
01113 
01114                         return true;
01115                 }
01116                 if(!($usr_id = ilObjUser::getUserIdByLogin(ilUtil::stripSlashes($_POST['vendor_login']))))
01117                 {
01118                         sendInfo($this->lng->txt('pays_no_valid_username_given'));
01119                         $this->vendorsObject();
01120 
01121                         return true;
01122                 }
01123                 
01124                 $this->object->initPaymentVendorsObject();
01125 
01126                 if($this->object->payment_vendors_obj->isAssigned($usr_id))
01127                 {
01128                         sendInfo($this->lng->txt('pays_user_already_assigned'));
01129                         $this->vendorsObject();
01130 
01131                         return true;
01132                 }
01133                 $this->object->payment_vendors_obj->add($usr_id);
01134 
01135                 sendInfo($this->lng->txt('pays_added_vendor'));
01136                 $this->vendorsObject();
01137                 
01138                 return true;
01139         }
01140                 
01141         function addUserObject()
01142         {
01143                 global $rbacsystem;
01144 
01145                 // MINIMUM ACCESS LEVEL = 'administrate'
01146                 if(!$rbacsystem->checkAccess("write", $this->object->getRefId()))
01147                 {
01148                         $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"),$this->ilias->error_obj->MESSAGE);
01149                 }
01150 
01151                 $this->lng->loadLanguageModule('crs');
01152                 if(!is_array($_POST["user"]))
01153                 {
01154                         sendInfo($this->lng->txt("crs_no_users_selected"));
01155                         $this->searchObject();
01156 
01157                         return false;
01158                 }
01159                 
01160                 $this->object->initPaymentVendorsObject();
01161 
01162                 $already_assigned = $assigned = 0;
01163                 foreach($_POST['user'] as $usr_id)
01164                 {
01165                         if($this->object->payment_vendors_obj->isAssigned($usr_id))
01166                         {
01167                                 ++$already_assigned;
01168 
01169                                 continue;
01170                         }
01171                         $this->object->payment_vendors_obj->add($usr_id);
01172                         ++$assigned;
01173                         
01174                         // TODO: SEND NOTIFICATION
01175                 }
01176                 $message = '';
01177                 if($assigned)
01178                 {
01179                         $message .= $this->lng->txt('pays_assigned_vendors').' '.$assigned;
01180                 }
01181                 if($already_assigned)
01182                 {
01183                         $message .= '<br />'.$this->lng->txt('pays_already_assigned_vendors').' '.$already_assigned;
01184                 }
01185 
01186                 sendInfo($message);
01187                 $this->vendorsObject();
01188 
01189                 return true;
01190         }               
01191 
01192 
01193         // PRIVATE
01194         function __showStatisticTable($a_result_set)
01195         {
01196                 $tbl =& $this->__initTableGUI();
01197                 $tpl =& $tbl->getTemplateObject();
01198 
01199                 // SET FORMAACTION
01200                 $tpl->setCurrentBlock("tbl_form_header");
01201 
01202                 $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
01203                 $tpl->parseCurrentBlock();
01204 
01205 
01206                 $tbl->setTitle($this->lng->txt("paya_statistic"),"icon_pays_b.gif",$this->lng->txt("paya_statistic"));
01207                 $tbl->setHeaderNames(array($this->lng->txt("paya_transaction"),
01208                                                                    $this->lng->txt("title"),
01209                                                                    $this->lng->txt("paya_vendor"),
01210                                                                    $this->lng->txt("paya_customer"),
01211                                                                    $this->lng->txt("paya_order_date"),
01212                                                                    $this->lng->txt("duration"),
01213                                                                    $this->lng->txt("price_a"),
01214                                                                    $this->lng->txt("paya_payed_access"),
01215                                                                    $this->lng->txt("edit")));
01216 
01217                 $tbl->setHeaderVars(array("transaction",
01218                                                                   "title",
01219                                                                   "vendor",
01220                                                                   "customer",
01221                                                                   "order_date",
01222                                                                   "duration",
01223                                                                   "price",
01224                                                                   "payed_access",
01225                                                                   "options"),
01226                                                         $this->ctrl->getParameterArray($this,"statistic",false));
01227 
01228                 $offset = $_GET["offset"];
01229                 $order = $_GET["sort_by"];
01230                 $direction = $_GET["sort_order"] ? $_GET['sort_order'] : 'desc';
01231 
01232                 $tbl->setOrderColumn($order,'order_date');
01233                 $tbl->setOrderDirection($direction);
01234                 $tbl->setOffset($offset);
01235                 $tbl->setLimit($_GET["limit"]);
01236                 $tbl->setMaxCount(count($a_result_set));
01237                 $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
01238                 $tbl->setData($a_result_set);
01239 
01240 
01241                 $tbl->render();
01242 
01243                 $this->tpl->setVariable("STATISTIC_TABLE",$tbl->tpl->get());
01244 
01245                 return true;
01246         }
01247 
01248         function __initBookingObject()
01249         {
01250                 include_once './payment/classes/class.ilPaymentBookings.php';
01251 
01252                 $this->booking_obj =& new ilPaymentBookings($this->user_obj->getId(),true);
01253         }
01254 
01255         function __showVendorsTable($a_result_set)
01256         {
01257                 $actions = array(
01258                         "editVendorObject"      => $this->lng->txt("pays_edit_vendor"),
01259                         "deleteVendorsObject"   => $this->lng->txt("pays_delete_vendor")
01260                 );
01261 
01262                 $tbl =& $this->__initTableGUI();
01263                 $tpl =& $tbl->getTemplateObject();
01264 
01265                 // SET FORMAACTION
01266                 $tpl->setCurrentBlock("tbl_form_header");
01267 
01268                 $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
01269                 $tpl->parseCurrentBlock();
01270 
01271                 $tpl->setCurrentBlock("tbl_action_row");
01272 
01273                 $tpl->setCurrentBlock("input_text");
01274                 $tpl->setVariable("PB_TXT_NAME",'vendor_login');
01275                 $tpl->parseCurrentBlock();
01276 
01277                 $tpl->setCurrentBlock("plain_button");
01278                 $tpl->setVariable("PBTN_NAME","addVendor");
01279                 $tpl->setVariable("PBTN_VALUE",$this->lng->txt("pays_add_vendor"));
01280                 $tpl->parseCurrentBlock();
01281                 $tpl->setCurrentBlock("plain_buttons");
01282                 $tpl->parseCurrentBlock();
01283 
01284                 $tpl->setVariable("COLUMN_COUNTS",4);
01285 
01286                 $tpl->setVariable("IMG_ARROW", ilUtil::getImagePath("arrow_downright.gif"));
01287 
01288                 $tpl->setCurrentBlock("tbl_action_select");
01289                 $tpl->setVariable("SELECT_ACTION",ilUtil::formSelect(1,"action",$actions,false,true));
01290                 $tpl->setVariable("BTN_NAME","gateway");
01291                 $tpl->setVariable("BTN_VALUE",$this->lng->txt("execute"));
01292                 $tpl->parseCurrentBlock();
01293                 $tpl->setCurrentBlock("tbl_action_row");
01294                 $tpl->setVariable("TPLPATH",$this->tpl->tplPath);
01295                 $tpl->parseCurrentBlock();
01296 
01297                 $tbl->setTitle($this->lng->txt("vendors"),"icon_usr_b.gif",$this->lng->txt("vendors"));
01298                 $tbl->setHeaderNames(array('',
01299                                                                    $this->lng->txt("pays_vendor"),
01300                                                                    $this->lng->txt("pays_cost_center"),
01301                                                                    $this->lng->txt("pays_number_bookings")));
01302                 $tbl->setHeaderVars(array("",
01303                                                                   "login",
01304                                                                   "cost_center",
01305                                                                   "bookings"),
01306                                                         array("ref_id" => $this->object->getRefId(),
01307                                                                   "cmd" => "vendors",
01308                                                                   "update_members" => 1,
01309                                                                   "cmdClass" => "ilobjpaymentsettingsgui",
01310                                                                   "cmdNode" => $_GET["cmdNode"]));
01311 #               $tbl->setColumnWidth(array("4%","48%","25%","24%"));
01312 
01313 
01314                 $this->__setTableGUIBasicData($tbl,$a_result_set);
01315                 $tbl->render();
01316 
01317                 $this->tpl->setVariable("VENDOR_TABLE",$tbl->tpl->get());
01318 
01319                 return true;
01320         }
01321 
01322 
01323         function __showSearchUserTable($a_result_set,$a_cmd = "search")
01324         {
01325                 $tbl =& $this->__initTableGUI();
01326                 $tpl =& $tbl->getTemplateObject();
01327 
01328 
01329                 // SET FORMACTION
01330                 $tpl->setCurrentBlock("tbl_form_header");
01331                 $tpl->setVariable("FORMACTION",$this->ctrl->getFormAction($this));
01332                 $tpl->parseCurrentBlock();
01333 
01334                 $tpl->setCurrentBlock("tbl_action_btn");
01335                 $tpl->setVariable("BTN_NAME","vendors");
01336                 $tpl->setVariable("BTN_VALUE",$this->lng->txt("cancel"));
01337                 $tpl->parseCurrentBlock();
01338 
01339                 $tpl->setCurrentBlock("tbl_action_btn");
01340                 $tpl->setVariable("BTN_NAME","addUser");
01341                 $tpl->setVariable("BTN_VALUE",$this->lng->txt("add"));
01342                 $tpl->parseCurrentBlock();
01343 
01344                 $tpl->setCurrentBlock("tbl_action_row");
01345                 $tpl->setVariable("COLUMN_COUNTS",5);
01346                 $tpl->setVariable("IMG_ARROW",ilUtil::getImagePath("arrow_downright.gif"));
01347                 $tpl->parseCurrentBlock();
01348 
01349                 $tbl->setTitle($this->lng->txt("pays_header_select_vendor"),"icon_usr_b.gif",$this->lng->txt("pays_header_select_vendor"));
01350                 $tbl->setHeaderNames(array("",
01351                                                                    $this->lng->txt("login"),
01352                                                                    $this->lng->txt("firstname"),
01353                                                                    $this->lng->txt("lastname")));
01354                 $tbl->setHeaderVars(array("",
01355                                                                   "login",
01356                                                                   "firstname",
01357                                                                   "lastname"),
01358                                                         array("ref_id" => $this->object->getRefId(),
01359                                                                   "cmd" => $a_cmd,
01360                                                                   "cmdClass" => "ilobjpaymentsettingsgui",
01361                                                                   "cmdNode" => $_GET["cmdNode"]));
01362 
01363                 $tbl->setColumnWidth(array("3%","32%","32%","32%"));
01364 
01365                 $this->__setTableGUIBasicData($tbl,$a_result_set);
01366                 $tbl->render();
01367                 
01368                 $this->tpl->setVariable("SEARCH_RESULT_TABLE",$tbl->tpl->get());
01369 
01370                 return true;
01371         }
01372 
01373         function __showButton($a_cmd,$a_text,$a_target = '')
01374         {
01375                 $this->tpl->addBlockfile("BUTTONS", "buttons", "tpl.buttons.html");
01376                 
01377                 // display button
01378                 $this->tpl->setCurrentBlock("btn_cell");
01379                 $this->tpl->setVariable("BTN_LINK",$this->ctrl->getLinkTarget($this,$a_cmd));
01380                 $this->tpl->setVariable("BTN_TXT",$a_text);
01381                 if($a_target)
01382                 {
01383                         $this->tpl->setVariable("BTN_TARGET",$a_target);
01384                 }
01385 
01386                 $this->tpl->parseCurrentBlock();
01387         }               
01388 
01389         function &__initTableGUI()
01390         {
01391                 include_once "./classes/class.ilTableGUI.php";
01392 
01393                 return new ilTableGUI(0,false);
01394         }
01395 
01396         function __setTableGUIBasicData(&$tbl,&$result_set,$from = "")
01397         {
01398 
01399                 $offset = $_GET["offset"];
01400                 $order = $_GET["sort_by"];
01401                 $direction = $_GET["sort_order"];
01402 
01403                 $tbl->setOrderColumn($order);
01404                 $tbl->setOrderDirection($direction);
01405                 $tbl->setOffset($offset);
01406                 $tbl->setLimit($_GET["limit"]);
01407                 $tbl->setMaxCount(count($result_set));
01408                 $tbl->setFooter("tblfooter",$this->lng->txt("previous"),$this->lng->txt("next"));
01409                 $tbl->setData($result_set);
01410         }
01411 
01412         function __search($a_search_string)
01413         {
01414                 include_once("./classes/class.ilSearch.php");
01415 
01416                 $this->lng->loadLanguageModule("content");
01417 
01418                 $search =& new ilSearch($_SESSION["AccountId"]);
01419                 $search->setPerformUpdate(false);
01420                 $search->setSearchString(ilUtil::stripSlashes($a_search_string));
01421                 $search->setCombination("and");
01422                 $search->setSearchFor(array(0 => 'usr'));
01423                 $search->setSearchType('new');
01424 
01425                 if($search->validate($message))
01426                 {
01427                         $search->performSearch();
01428                 }
01429                 else
01430                 {
01431                         sendInfo($message,true);
01432                         $this->ctrl->redirect($this,"searchUser");
01433                 }
01434                 return $search->getResultByType('usr');
01435         }               
01436         
01437 } // END class.ilObjPaymentSettingsGUI
01438 ?>

Generated on Fri Dec 13 2013 09:06:37 for ILIAS Release_3_4_x_branch .rev 46804 by  doxygen 1.7.1