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

Generated on Fri Dec 13 2013 11:57:58 for ILIAS Release_3_6_x_branch .rev 46809 by  doxygen 1.7.1