00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
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
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
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
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
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
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
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
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
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
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
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 }
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
00670 $this->addVendorWorksheet($pewa);
00671 $this->addStatisticWorksheet($pewa);
00672
00673
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
00735
00736
00737
00738
00739
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
01247 function __showStatisticTable($a_result_set)
01248 {
01249 $tbl =& $this->__initTableGUI();
01250 $tpl =& $tbl->getTemplateObject();
01251
01252
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
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
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
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 }
01491 ?>