Source of file api.cess.php
Size: 51,515 Bytes - Last Modified: 2024-04-27T15:26:05+03:00
/tmp/current_snapshot/api/libs/api.cess.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413 | <?php /** * Creates new contrahent in database * * @param string $bankacc * @param string $bankname * @param string $bankcode * @param string $edrpo * @param string $ipn * @param string $licensenum * @param string $juraddr * @param string $phisaddr * @param string $phone * @param string $contrname * @param string $agnameabbr * @param string $agsignatory * @param string $agsignatory2 * @param string $agbasis * @param string $agmail * @param string $siteurl * * @return void */ function zb_ContrAhentAdd($bankacc, $bankname, $bankcode, $edrpo, $ipn, $licensenum, $juraddr, $phisaddr, $phone, $contrname, $agnameabbr, $agsignatory, $agsignatory2, $agbasis, $agmail, $siteurl) { $bankacc = ubRouting::filters($bankacc, 'mres'); $bankname = ubRouting::filters($bankname, 'mres'); $bankcode = ubRouting::filters($bankcode, 'mres'); $edrpo = ubRouting::filters($edrpo, 'mres'); $ipn = ubRouting::filters($ipn, 'mres'); $licensenum = ubRouting::filters($licensenum, 'mres'); $juraddr = ubRouting::filters($juraddr, 'mres'); $phisaddr = ubRouting::filters($phisaddr, 'mres'); $phone = ubRouting::filters($phone, 'mres'); $contrnameF = ubRouting::filters($contrname, 'mres'); $agnameabbr = ubRouting::filters($agnameabbr, 'mres'); $agsignatory = ubRouting::filters($agsignatory, 'mres'); $agsignatory2 = ubRouting::filters($agsignatory2, 'mres'); $agbasis = ubRouting::filters($agbasis, 'mres'); $agmail = ubRouting::filters($agmail, 'mres'); $siteurl = ubRouting::filters($siteurl, 'mres'); $agentsDb = new NyanORM('contrahens'); $agentsDb->data('bankacc', $bankacc); $agentsDb->data('bankname', $bankname); $agentsDb->data('bankcode', $bankcode); $agentsDb->data('edrpo', $edrpo); $agentsDb->data('ipn', $ipn); $agentsDb->data('licensenum', $licensenum); $agentsDb->data('juraddr', $juraddr); $agentsDb->data('phisaddr', $phisaddr); $agentsDb->data('phone', $phone); $agentsDb->data('contrname', $contrnameF); $agentsDb->data('agnameabbr', $agnameabbr); $agentsDb->data('agsignatory', $agsignatory); $agentsDb->data('agsignatory2', $agsignatory2); $agentsDb->data('agbasis', $agbasis); $agentsDb->data('agmail', $agmail); $agentsDb->data('siteurl', $siteurl); $agentsDb->create(); $newId = $agentsDb->getLastId(); log_register('AGENT CREATE `' . $contrname . '` AS [' . $newId . ']'); } /** * Changes existing contrahent record in database * * @param string $bankacc * @param string $bankname * @param string $bankcode * @param string $edrpo * @param string $ipn * @param string $licensenum * @param string $juraddr * @param string $phisaddr * @param string $phone * @param string $contrname * @param string $agnameabbr * @param string $agsignatory * @param string $agsignatory2 * @param string $agbasis * @param string $agmail * @param string $siteurl * * @return void */ function zb_ContrAhentChange($ahentid, $bankacc, $bankname, $bankcode, $edrpo, $ipn, $licensenum, $juraddr, $phisaddr, $phone, $contrname, $agnameabbr, $agsignatory, $agsignatory2, $agbasis, $agmail, $siteurl) { $ahentid = ubRouting::filters($ahentid, 'int'); $bankacc = ubRouting::filters($bankacc, 'mres'); $bankname = ubRouting::filters($bankname, 'mres'); $bankcode = ubRouting::filters($bankcode, 'mres'); $edrpo = ubRouting::filters($edrpo, 'mres'); $ipn = ubRouting::filters($ipn, 'mres'); $licensenum = ubRouting::filters($licensenum, 'mres'); $juraddr = ubRouting::filters($juraddr, 'mres'); $phisaddr = ubRouting::filters($phisaddr, 'mres'); $phone = ubRouting::filters($phone, 'mres'); $contrnameF = ubRouting::filters($contrname, 'mres'); $agnameabbr = ubRouting::filters($agnameabbr, 'mres'); $agsignatory = ubRouting::filters($agsignatory, 'mres'); $agsignatory2 = ubRouting::filters($agsignatory2, 'mres'); $agbasis = ubRouting::filters($agbasis, 'mres'); $agmail = ubRouting::filters($agmail, 'mres'); $siteurl = ubRouting::filters($siteurl, 'mres'); $agentsDb = new NyanORM('contrahens'); $agentsDb->data('bankacc', $bankacc); $agentsDb->data('bankname', $bankname); $agentsDb->data('bankcode', $bankcode); $agentsDb->data('edrpo', $edrpo); $agentsDb->data('ipn', $ipn); $agentsDb->data('licensenum', $licensenum); $agentsDb->data('juraddr', $juraddr); $agentsDb->data('phisaddr', $phisaddr); $agentsDb->data('phone', $phone); $agentsDb->data('contrname', $contrnameF); $agentsDb->data('agnameabbr', $agnameabbr); $agentsDb->data('agsignatory', $agsignatory); $agentsDb->data('agsignatory2', $agsignatory2); $agentsDb->data('agbasis', $agbasis); $agentsDb->data('agmail', $agmail); $agentsDb->data('siteurl', $siteurl); $agentsDb->where('id', '=', $ahentid); $agentsDb->save(); log_register('AGENT CHANGE `' . $contrname . '` AS [' . $ahentid . ']'); } /** * Deletes existing contrahent from database * * @param int $id * * @return void */ function zb_ContrAhentDelete($id) { $id = ubRouting::filters($id, 'int'); $agentsDb = new NyanORM('contrahens'); $agentsDb->where('id', '=', $id); $agentsDb->delete(); log_register('AGENT DELETE [' . $id . ']'); } /** * Returns contrahent data as array * * @param int $id * * @return array */ function zb_ContrAhentGetData($id) { $id = vf($id); $query = "SELECT * from `contrahens` WHERE `id`='" . $id . "'"; $result = simple_query($query); return($result); } /** * Returns full contrahent data array * * @return array */ function zb_ContrAhentGetAllData() { $query = "SELECT * from `contrahens`"; $result = simple_queryall($query); return ($result); } /** * Renders contrahents list with required controls * * @return string */ function zb_ContrAhentShow() { global $ubillingConfig; $allcontr = zb_ContrAhentGetAllData(); // construct needed editor $titles = array( 'ID', 'Bank account', 'Bank name', 'Bank code', 'EDRPOU', 'IPN', 'License number', 'Juridical address', 'Phisical address', 'Phone', 'Contrahent name', ); $keys = array( 'id', 'bankacc', 'bankname', 'bankcode', 'edrpo', 'ipn', 'licensenum', 'juraddr', 'phisaddr', 'phone', 'contrname' ); if ($ubillingConfig->getAlterParam('AGENTS_EXTINFO_ON')) { $extactbutton = wf_img('skins/icons/articlepost.png', __('Extended info')); $result = web_GridEditor($titles, $keys, $allcontr, 'contrahens', true, true, '', 'extinfo', $extactbutton, true); } else { $result = web_GridEditor($titles, $keys, $allcontr, 'contrahens', true, true, '', '', '', true); } return($result); } /** * Renders contrahent creation form * * @return string */ function zb_ContrAhentAddForm() { $sup = wf_tag('sup') . '*' . wf_tag('sup', true); $inputs = ''; $inputs .= wf_TextInput('newcontrname', __('Contrahent name') . $sup, '', true, 20); $inputs .= wf_TextInput('newbankacc', __('Bank account'), '', true, 20); $inputs .= wf_TextInput('newbankname', __('Bank name'), '', true, 20); $inputs .= wf_TextInput('newbankcode', __('Bank code'), '', true, 20); $inputs .= wf_TextInput('newedrpo', __('EDRPOU'), '', true, 20); $inputs .= wf_TextInput('newipn', __('IPN'), '', true, 20); $inputs .= wf_TextInput('newlicensenum', __('License number'), '', true, 20); $inputs .= wf_TextInput('newjuraddr', __('Juridical address'), '', true, 20); $inputs .= wf_TextInput('newphisaddr', __('Phisical address'), '', true, 20); $inputs .= wf_TextInput('newphone', __('Phone'), '', true, 20); $inputs .= wf_TextInput('newagnameabbr', __('Short name'), '', true, 20); $inputs .= wf_TextInput('newagsignatory', __('Signatory'), '', true, 20); $inputs .= wf_TextInput('newagsignatory2', __('Signatory') . ' 2', '', true, 20); $inputs .= wf_TextInput('newagbasis', __('Basis'), '', true, 20); $inputs .= wf_TextInput('newagmail', __('Mail'), '', true, 20, 'email'); $inputs .= wf_TextInput('newsiteurl', __('Site URL'), '', true, 20, 'url'); $inputs .= wf_Submit(__('Create')); $result = wf_Form("", 'POST', $inputs, 'glamour'); return($result); } /** * Renders existing ahent editing form * * @param int $ahentid * * @return string */ function zb_ContrAhentEditForm($ahentid) { $ahentid = vf($ahentid, 3); $cdata = zb_ContrAhentGetData($ahentid); $sup = wf_tag('sup') . '*' . wf_tag('sup', true); $inputs = ''; $inputs .= wf_TextInput('changecontrname', __('Contrahent name') . $sup, $cdata['contrname'], true); $inputs .= wf_TextInput('changebankacc', __('Bank account'), $cdata['bankacc'], true); $inputs .= wf_TextInput('changebankname', __('Bank name'), $cdata['bankname'], true); $inputs .= wf_TextInput('changebankcode', __('Bank code'), $cdata['bankcode'], true); $inputs .= wf_TextInput('changeedrpo', __('EDRPOU'), $cdata['edrpo'], true); $inputs .= wf_TextInput('changeipn', __('IPN'), $cdata['ipn'], true); $inputs .= wf_TextInput('changelicensenum', __('License number'), $cdata['licensenum'], true); $inputs .= wf_TextInput('changejuraddr', __('Juridical address'), $cdata['juraddr'], true); $inputs .= wf_TextInput('changephisaddr', __('Phisical address'), $cdata['phisaddr'], true); $inputs .= wf_TextInput('changephone', __('Phone'), $cdata['phone'], true); $inputs .= wf_TextInput('changeagnameabbr', __('Short name'), $cdata['agnameabbr'], true, 20); $inputs .= wf_TextInput('changeagsignatory', __('Signatory'), $cdata['agsignatory'], true, 20); $inputs .= wf_TextInput('changeagsignatory2', __('Signatory') . ' 2', $cdata['agsignatory2'], true, 20); $inputs .= wf_TextInput('changeagbasis', __('Basis'), $cdata['agbasis'], true, 20); $inputs .= wf_TextInput('changeagmail', __('Mail'), $cdata['agmail'], true, 20, 'email'); $inputs .= wf_TextInput('changesiteurl', __('Site URL'), $cdata['siteurl'], true, 20, 'url'); $inputs .= wf_Submit(__('Save')); $result = wf_Form("", 'POST', $inputs, 'glamour'); return ($result); } /** * Returns ahent selector widget * * @return string */ function zb_ContrAhentSelect() { $allagents = zb_ContrAhentGetAllData(); $params = array(); if (!empty($allagents)) { foreach ($allagents as $io => $eachagent) { $params[$eachagent['id']] = $eachagent['contrname']; } } $result = wf_Selector('ahentsel', $params, __('Contrahent name'), false, false); return ($result); } /** * Returns agent selector with preset agent ID * * @param int $currentId * @return string */ function zb_ContrAhentSelectPreset($currentId = '') { $allagents = zb_ContrAhentGetAllData(); $tmpArr = array(); if (!empty($allagents)) { foreach ($allagents as $io => $eachagent) { $tmpArr[$eachagent['id']] = $eachagent['contrname']; } } $select = wf_Selector('ahentsel', $tmpArr, '', $currentId, false); return($select); } /** * Returns array of all agent=>street assigns * * @param string $order * * @return array */ function zb_AgentAssignGetAllData($order = '') { $query = "SELECT * from `ahenassign` " . $order; $allassigns = simple_queryall($query); return($allassigns); } /** * Returns array of existing agent strict assigns as login=>agentid * * @return array */ function zb_AgentAssignStrictGetAllData() { $result = array(); $query = "SELECT * from `ahenassignstrict`"; $all = simple_queryall($query); if (!empty($all)) { foreach ($all as $io => $each) { $result[$each['login']] = $each['agentid']; } } return ($result); } /** * Deletes existing agent assign database record * * @param int $id * * @return void */ function zb_AgentAssignDelete($id) { $id = vf($id, 3); $query = "DELETE from `ahenassign` where `id`='" . $id . "'"; nr_query($query); log_register("AGENTASSIGN DELETE [" . $id . "]"); } /** * Creates new agent=>street assign in database * * @param int $ahenid * @param string $streetname * * @return void */ function zb_AgentAssignAdd($ahenid, $streetname) { $ahenid = vf($ahenid, 3); $streetname = mysql_real_escape_string($streetname); $query = "INSERT INTO `ahenassign` ( `id` , `ahenid` ,`streetname`) VALUES (NULL , '" . $ahenid . "', '" . $streetname . "');"; nr_query($query); log_register("AGENTASSIGN CREATE [" . $ahenid . '] `' . $streetname . '`'); } /** * Renders ahent assign form * * @return string */ function web_AgentAssignForm() { $sup = wf_tag('sup') . '*' . wf_tag('sup', true); $inputs = zb_ContrAhentSelect(); $inputs .= wf_tag('br'); $inputs .= wf_TextInput('newassign', __('Street name') . $sup, '', true); $inputs .= wf_Submit(__('Save')); $result = wf_Form("", 'POST', $inputs, 'glamour'); return($result); } /** * Renders list of available ahent assigns with required controls * * @return string */ function web_AgentAssignShow() { $allassigns = zb_AgentAssignGetAllData("ORDER BY `id` DESC"); $allahens = zb_ContrAhentGetAllData(); $usedStreets = array(); $agentnames = array(); if (!empty($allahens)) { foreach ($allahens as $io => $eachahen) { $agentnames[$eachahen['id']] = $eachahen['contrname']; } } $cells = wf_TableCell(__('ID')); $cells .= wf_TableCell(__('Contrahent name')); $cells .= wf_TableCell(__('Street name')); $cells .= wf_TableCell(__('Actions')); $rows = wf_TableRow($cells, 'row1'); if (!empty($allassigns)) { foreach ($allassigns as $io2 => $eachassign) { $rowColor = (isset($usedStreets[$eachassign['streetname']])) ? 'ukvbankstadup' : 'row5'; $cells = wf_TableCell($eachassign['id']); $cells .= wf_TableCell(@$agentnames[$eachassign['ahenid']]); $cells .= wf_TableCell($eachassign['streetname']); $actLinks = wf_JSAlert('?module=contrahens&deleteassign=' . $eachassign['id'], web_delete_icon(), __('Removing this may lead to irreparable results')); $cells .= wf_TableCell($actLinks); $rows .= wf_TableRow($cells, $rowColor); $usedStreets[$eachassign['streetname']] = $eachassign['ahenid']; } } $result = wf_TableBody($rows, '100%', '0', 'sortable'); return($result); } /** * Renders list of strict login=>agent assigns with some controls * * @return string */ function web_AgentAssignStrictShow() { $allassigns = zb_AgentAssignStrictGetAllData(); $allahens = zb_ContrAhentGetAllData(); $allrealnames = zb_UserGetAllRealnames(); $alladdress = zb_AddressGetFulladdresslistCached(); $allusertariffs = zb_TariffsGetAllUsers(); $countTotal = 0; $agentnames = array(); if (!empty($allahens)) { foreach ($allahens as $io => $eachahen) { $agentnames[$eachahen['id']] = $eachahen['contrname']; } } $cells = wf_TableCell(__('Login')); $cells .= wf_TableCell(__('Full address')); $cells .= wf_TableCell(__('Real Name')); $cells .= wf_TableCell(__('Tariff')); $cells .= wf_TableCell(__('Contrahent name')); $cells .= wf_TableCell(__('Actions')); $rows = wf_TableRow($cells, 'row1'); if (!empty($allassigns)) { foreach ($allassigns as $eachlogin => $eachagent) { $loginLink = wf_Link('?module=userprofile&username=' . $eachlogin, web_profile_icon() . ' ' . $eachlogin, false, ''); $cells = wf_TableCell($loginLink); $cells .= wf_TableCell(@$alladdress[$eachlogin]); $cells .= wf_TableCell(@$allrealnames[$eachlogin]); $cells .= wf_TableCell(@$allusertariffs[$eachlogin]); $cells .= wf_TableCell(@$agentnames[$eachagent]); $actLinks = wf_JSAlert('?module=contractedit&username=' . $eachlogin, web_edit_icon(), __('Are you serious')); $cells .= wf_TableCell($actLinks); $rows .= wf_TableRow($cells, 'row5'); $countTotal++; } } $result = wf_TableBody($rows, '100%', '0', 'sortable'); $result .= __('Total') . ': ' . $countTotal; return($result); } /** * Returns agent id or false for user ahent assign check * * @param string $login * @param array $allassigns * @param array $alladdress * @return int/bool */ function zb_AgentAssignCheckLogin($login, $allassigns, $alladdress) { $alter_cfg = rcms_parse_ini_file(CONFIG_PATH . "alter.ini"); $result = false; // если пользователь куда-то заселен if (isset($alladdress[$login])) { // возвращаем дефолтного агента если присваиваний нет вообще if (empty($allassigns)) { $result = $alter_cfg['DEFAULT_ASSIGN_AGENT']; } else { //если какие-то присваивалки есть $useraddress = $alladdress[$login]; // проверяем для каждой присваивалки попадает ли она под нашего абонента foreach ($allassigns as $io => $eachassign) { if (strpos($useraddress, $eachassign['streetname']) !== false) { $result = $eachassign['ahenid']; } else { // и если не нашли - возвращаем умолчательного $result = $alter_cfg['DEFAULT_ASSIGN_AGENT']; } } } } // если присваивание выключено возвращаем умолчального if (!$alter_cfg['AGENTS_ASSIGN']) { $result = $alter_cfg['DEFAULT_ASSIGN_AGENT']; } return($result); } /** * Performs fast agent assing check for some user login * * @global object $ubillingConfig * @param string $login * @param array $allassigns * @param string $address * @param array $allassignsstrict * @return array */ function zb_AgentAssignCheckLoginFast($login, $allassigns, $address, $allassignsstrict) { global $ubillingConfig; $alter_cfg = $ubillingConfig->getAlter(); $result = array(); //быстренько проверяем нету ли принудительной привязки по логину if (isset($allassignsstrict[$login])) { $result = $allassignsstrict[$login]; return ($result); } // если пользователь куда-то заселен if (!empty($address)) { // возвращаем дефолтного агента если присваиваний нет вообще if (empty($allassigns)) { $result = $alter_cfg['DEFAULT_ASSIGN_AGENT']; } else { //если какие-то присваивалки есть $useraddress = $address; // проверяем для каждой присваивалки попадает ли она под нашего абонента foreach ($allassigns as $io => $eachassign) { if (strpos($useraddress, $eachassign['streetname']) !== false) { $result = $eachassign['ahenid']; break; } else { // и если не нашли - возвращаем умолчательного $result = $alter_cfg['DEFAULT_ASSIGN_AGENT']; } } } } else { //если пользователь бомжует - возвращаем тоже умолчательного $result = $alter_cfg['DEFAULT_ASSIGN_AGENT']; } // если присваивание выключено возвращаем умолчального if (!$alter_cfg['AGENTS_ASSIGN']) { $result = $alter_cfg['DEFAULT_ASSIGN_AGENT']; } return($result); } /** * Returns content of export template * * @param string $filename * @return string */ function zb_ExportLoadTemplate($filename) { $template = file_get_contents($filename); return($template); } /** * Returns array of all users tariffs array as login=>tariff * * @return array */ function zb_ExportTariffsLoadAll() { $allstgdata = zb_UserGetAllStargazerData(); $result = array(); if (!empty($allstgdata)) { foreach ($allstgdata as $io => $eachuser) { $result[$eachuser['login']] = $eachuser['Tariff']; } } return($result); } /** * Returns array of all users contract data * * @return array */ function zb_ExportContractsLoadAll() { $query = "SELECT `login`,`contract` from `contracts`"; $allcontracts = simple_queryall($query); $queryDates = "SELECT `contract`,`date` from `contractdates`"; $alldates = simple_queryall($queryDates); $result = array(); $dates = array(); if (!empty($alldates)) { foreach ($alldates as $ia => $eachdate) { $dates[$eachdate['contract']] = $eachdate['date']; } } if (!empty($allcontracts)) { foreach ($allcontracts as $io => $eachcontract) { $result[$eachcontract['login']]['contractnum'] = $eachcontract['contract']; if (isset($dates[$eachcontract['contract']])) { $rawdate = $dates[$eachcontract['contract']]; $timestamp = strtotime($rawdate); $newDate = date("Y-m-d\T00:00:00", $timestamp); $result[$eachcontract['login']]['contractdate'] = $newDate; } else { $result[$eachcontract['login']]['contractdate'] = '1970-01-01T00:00:00'; } } } return($result); } /** * Performs export template processing with some userdata * * @param string $templatebody * @param array $templatedata * * @return string */ function zb_ExportParseTemplate($templatebody, $templatedata) { foreach ($templatedata as $field => $data) { $templatebody = str_ireplace($field, $data, $templatebody); } return($templatebody); } /** * Returns array of all ahent data for exports processing * * @return array */ function zb_ExportAgentsLoadAll() { $allagents = zb_ContrAhentGetAllData(); $result = array(); if (!empty($allagents)) { foreach ($allagents as $io => $eachagent) { $result[$eachagent['id']]['contrname'] = $eachagent['contrname']; @$result[$eachagent['id']]['edrpo'] = $eachagent['edrpo']; @$result[$eachagent['id']]['bankacc'] = $eachagent['bankacc']; } return($result); } } /** * Renders export form body * * @return string */ function zb_ExportForm() { $curdate = curdate(); $yesterday = date("Y-m-d", time() - 86400); $inputs = __('From'); $inputs .= wf_DatePickerPreset('fromdate', $yesterday); $inputs .= __('To'); $inputs .= wf_DatePickerPreset('todate', $curdate); $inputs .= wf_Submit('Export'); $form = wf_Form("", 'POST', $inputs, 'glamour'); return($form); } /** * Performs payments export between two dates * * @param string $from_date * @param string $to_date * * @return string */ function zb_ExportPayments($from_date, $to_date) { // reading export options $alter_conf = rcms_parse_ini_file(CONFIG_PATH . "alter.ini"); $default_assign_agent = $alter_conf['DEFAULT_ASSIGN_AGENT']; $export_template = $alter_conf['EXPORT_TEMPLATE']; $export_template_head = $alter_conf['EXPORT_TEMPLATE_HEAD']; $export_template_end = $alter_conf['EXPORT_TEMPLATE_END']; $export_only_positive = $alter_conf['EXPORT_ONLY_POSITIVE']; $export_format = $alter_conf['EXPORT_FORMAT']; $export_encoding = $alter_conf['EXPORT_ENCODING']; $import_encoding = $alter_conf['IMPORT_ENCODING']; $export_from_time = $alter_conf['EXPORT_FROM_TIME']; $export_to_time = $alter_conf['EXPORT_TO_TIME']; $citydisplay = $alter_conf['CITY_DISPLAY']; if ($citydisplay) { $address_offset = 1; } else { $address_offset = 0; } // loading templates $template_head = zb_ExportLoadTemplate($export_template_head); $template = zb_ExportLoadTemplate($export_template); $template_end = zb_ExportLoadTemplate($export_template_end); // load all needed data $allassigns = zb_AgentAssignGetAllData(); $alladdress = zb_AddressGetFulladdresslist(); $allrealnames = zb_UserGetAllRealnames(); $allagentsdata = zb_ExportAgentsLoadAll(); $allcontracts = zb_ExportContractsLoadAll(); $alltariffs = zb_ExportTariffsLoadAll(); //main code $qfrom_date = $from_date . ' ' . $export_from_time; $qto_date = $to_date . ' ' . $export_to_time; $query = "SELECT * from `payments` WHERE `date` >= '" . $qfrom_date . "' AND `date`<= '" . $qto_date . "'"; $allpayments = simple_queryall($query); $parse_data = array(); $parse_data['{FROMDATE}'] = $from_date; $parse_data['{FROMTIME}'] = $export_from_time; $parse_data['{TODATE}'] = $to_date; $parse_data['{TOTIME}'] = $export_to_time; $export_result = zb_ExportParseTemplate($template_head, $parse_data); if (!empty($allpayments)) { foreach ($allpayments as $io => $eachpayment) { // forming export data $paylogin = $eachpayment['login']; @$payrealname = $allrealnames[$eachpayment['login']]; $payid = $eachpayment['id']; $paytariff = @$alltariffs[$paylogin]; $paycontractdata = $allcontracts[$paylogin]; $paycontract = $paycontractdata['contractnum']; $paycontractdate = $paycontractdata['contractdate']; $paycity = 'debug city'; $payregion = 'debug region'; $paydrfo = ''; $payjurface = 'false'; $paydatetime = $eachpayment['date']; $paysumm = $eachpayment['summ']; $paynote = $eachpayment['note']; $paytimesplit = explode(' ', $paydatetime); $paydate = $paytimesplit[0]; $paytime = $paytimesplit[1]; @$payaddr = $alladdress[$paylogin]; @$splitaddr = explode(' ', $payaddr); @$paystreet = $splitaddr[0 + $address_offset]; @$splitbuild = explode('/', $splitaddr[1 + $address_offset]); @$paybuild = $splitbuild[0]; @$payapt = $splitbuild[1]; $agent_assigned = zb_AgentAssignCheckLogin($paylogin, $allassigns, $alladdress); @$agent_bankacc = $allagentsdata[$agent_assigned]['bankacc']; @$agent_edrpo = $allagentsdata[$agent_assigned]['edrpo']; @$agent_name = $allagentsdata[$agent_assigned]['contrname']; // construct template data $parse_data['{PAYID}'] = md5($payid); $parse_data['{AGENTNAME}'] = $agent_name; $parse_data['{AGENTEDRPO}'] = $agent_edrpo; $parse_data['{PAYDATE}'] = $paydate; $parse_data['{PAYTIME}'] = $paytime; $parse_data['{PAYSUMM}'] = $paysumm; $parse_data['{CONTRACT}'] = $paycontract; $parse_data['{CONTRACTDATE}'] = $paycontractdate; $parse_data['{REALNAME}'] = $payrealname; $parse_data['{DRFO}'] = $paydrfo; $parse_data['{JURFACE}'] = $payjurface; $parse_data['{STREET}'] = $paystreet; $parse_data['{BUILD}'] = $paybuild; $parse_data['{APT}'] = $payapt; $parse_data['{NOTE}'] = $paynote; $parse_data['{CITY}'] = $paycity; $parse_data['{REGION}'] = $payregion; $parse_data['{TARIFF}'] = $paytariff; // custom positive payments export if ($export_only_positive) { // check is that pos payment if ($paysumm > 0) { $export_result .= zb_ExportParseTemplate($template, $parse_data); } } else { //or anyway export it $export_result .= zb_ExportParseTemplate($template, $parse_data); } } } $export_result .= zb_ExportParseTemplate($template_end, $parse_data); if ($import_encoding != $export_encoding) { $export_result = iconv($import_encoding, $export_encoding, $export_result); } return($export_result); } /** * Returns array of ahent data by the users login * * @param string $login * @return array */ function zb_AgentAssignedGetData($login) { $login = vf($login); $allassigns = zb_AgentAssignGetAllData(); $alladdress = zb_AddressGetFulladdresslist(); $assigned_agent = zb_AgentAssignCheckLogin($login, $allassigns, $alladdress); $result = zb_ContrAhentGetData($assigned_agent); return($result); } /** * Returns array of ahent data associated with some user by login/address pair * * @param string $login * @param string $address * @return array */ function zb_AgentAssignedGetDataFast($login, $address) { $allassigns = zb_AgentAssignGetAllData(); $allassignsStrict = zb_AgentAssignStrictGetAllData(); $assigned_agent = zb_AgentAssignCheckLoginFast($login, $allassigns, $address, $allassignsStrict); $result = zb_ContrAhentGetData($assigned_agent); return($result); } /** * Returns array of payment data by its ID * * @param int $paymentid * @return array */ function zb_PaymentGetData($paymentid) { $paymentid = vf($paymentid, 3); $result = array(); $query = "SELECT * from `payments` WHERE `id`='" . $paymentid . "'"; $result = simple_query($query); return($result); } /** * Returns content of sales slip HTML template * * @return string */ function zb_PrintCheckLoadTemplate() { $template = file_get_contents(CONFIG_PATH . 'printcheck.tpl'); return($template); } /** * Returns some cashiers data (deprecated) * * @param string $whoami * * @return array/string */ function zb_PrintCheckLoadCassNames($whoami = false) { $names = rcms_parse_ini_file(CONFIG_PATH . 'cass.ini'); if (empty($whoami)) { return $names; } else { $iam = whoami(); return $names[$iam]; } } /** * Returns payment number per day * * @param int $payid * @param string $paymentdate * * @return string */ function zb_PrintCheckGetDayNum($payid, $paymentdate) { $payid = vf($payid, 3); $result = 'EXCEPTION'; $onlyday = $paymentdate; $onlyday = strtotime($onlyday); $onlyday = date("Y-m-d", $onlyday); $date_q = "SELECT `id` from `payments` where `date` LIKE '" . $onlyday . "%' ORDER BY `id` ASC LIMIT 1;"; $firstbyday = simple_query($date_q); if (!empty($firstbyday)) { $firstbyday = $firstbyday['id']; $currentnumber = $payid - $firstbyday; $currentnumber = $currentnumber + 1; $result = $currentnumber; } return ($result); } /** * Renders printable HTML sales slip * * @param int $paymentid * @return string */ function zb_PrintCheck($paymentid, $realpaymentId = false) { $paymentdata = zb_PaymentGetData($paymentid); $login = $paymentdata['login']; $userData = zb_UserGetAllData($login); $userData = $userData[$login]; $templatebody = zb_PrintCheckLoadTemplate(); $alladdress = zb_AddressGetFullCityaddresslist(); $useraddress = $alladdress[$login]; $agent_data = zb_AgentAssignedGetDataFast($login, $useraddress); $cassnames = zb_PrintCheckLoadCassNames(); if ($realpaymentId) { $userPaymentId = zb_PaymentIDGet($login); } else { $userPaymentId = ip2int($userData['ip']); } $cday = date("d"); $cmonth = date("m"); $month_array = months_array(); $cmonth_name = $month_array[$cmonth]; $cyear = curyear(); $morph = new UBMorph(); //forming template data @$templatedata['{PAYID}'] = $paymentdata['id']; @$templatedata['{PAYIDENC}'] = zb_NumEncode($paymentdata['id']); @$templatedata['{PAYMENTID}'] = $userPaymentId; @$templatedata['{PAYDATE}'] = $paymentdata['date']; @$templatedata['{PAYSUMM}'] = $paymentdata['summ']; @$templatedata['{PAYSUMM_LIT}'] = $morph->sum2str($paymentdata['summ']); // omg omg omg @$templatedata['{REALNAME}'] = $userData['realname']; @$templatedata['{BUHNAME}'] = 'а відки я знаю?'; @$templatedata['{CASNAME}'] = $cassnames[whoami()]; @$templatedata['{PAYTARGET}'] = 'Оплата за послуги / ' . $paymentdata['date']; @$templatedata['{FULLADDRESS}'] = $useraddress; @$templatedata['{CDAY}'] = $cday; @$templatedata['{CMONTH}'] = rcms_date_localise($cmonth_name); @$templatedata['{CYEAR}'] = $cyear; @$templatedata['{DAYPAYID}'] = zb_PrintCheckGetDayNum($paymentdata['id'], $paymentdata['date']); //contragent full data @$templatedata['{AGENTEDRPO}'] = $agent_data['edrpo']; @$templatedata['{AGENTNAME}'] = $agent_data['contrname']; @$templatedata['{AGENTID}'] = $agent_data['id']; @$templatedata['{AGENTBANKACC}'] = $agent_data['bankacc']; @$templatedata['{AGENTBANKNAME}'] = $agent_data['bankname']; @$templatedata['{AGENTBANKCODE}'] = $agent_data['bankcode']; @$templatedata['{AGENTIPN}'] = $agent_data['ipn']; @$templatedata['{AGENTLICENSE}'] = $agent_data['licensenum']; @$templatedata['{AGENTJURADDR}'] = $agent_data['juraddr']; @$templatedata['{AGENTPHISADDR}'] = $agent_data['phisaddr']; @$templatedata['{AGENTPHONE}'] = $agent_data['phone']; //parsing result $result = zb_ExportParseTemplate($templatebody, $templatedata); return($result); } /** * Returns ahent selector for registration form * * @param string $name * @param int $selected * @return string */ function zb_RegContrAhentSelect($name, $selected = '') { $allagents = zb_ContrAhentGetAllData(); $agentArr = array(); if (!empty($allagents)) { foreach ($allagents as $io => $eachagent) { $agentArr[$eachagent['id']] = $eachagent['contrname']; } } $select = wf_Selector($name, $agentArr, '', $selected, false); return($select); } /** * Renders agent strict assign form * * @return string */ function web_AgentAssignStrictForm($login, $currentassign) { if (!empty($currentassign)) { $agentData = zb_ContrAhentGetData($currentassign); @$currentAgentName = $agentData['contrname']; } else { $currentAgentName = __('No'); } $inputs = zb_ContrAhentSelectPreset($currentassign); $inputs .= wf_HiddenInput('assignstrictlogin', $login); $deleteCheckbox = wf_CheckInput('deleteassignstrict', __('Delete'), false, false); $cells = wf_TableCell(__('Service provider'), '', 'row2'); $cells .= wf_TableCell($currentAgentName, '', 'row3'); $rows = wf_tablerow($cells); $cells = wf_TableCell(__('New assign'), '', 'row2'); $cells .= wf_TableCell($inputs, '', 'row3'); $rows .= wf_tablerow($cells); $cells = wf_TableCell('', '', 'row2'); $cells .= wf_TableCell($deleteCheckbox, '', 'row3'); $rows .= wf_tablerow($cells); $form = wf_TableBody($rows, '100%', 0); $form .= wf_Submit('Save'); $result = wf_Form("", 'POST', $form, ''); return ($result); } /** * Deletes existing ahent strict assign from database * * @param string $login * * @return void */ function zb_AgentAssignStrictDelete($login) { $login = mysql_real_escape_string($login); $query = "DELETE from `ahenassignstrict` WHERE `login`='" . $login . "';"; nr_query($query); log_register("AGENTASSIGNSTRICT DELETE (" . $login . ")"); } /** * Creates ahent strict assign record in database * * @param string $login * @param int $agentid * * @return void */ function zb_AgentAssignStrictCreate($login, $agentid) { zb_AgentAssignStrictDelete($login); $clearLogin = mysql_real_escape_string($login); $agentid = vf($agentid, 3); $query = "INSERT INTO `ahenassignstrict` (`id` , `agentid` ,`login`) VALUES (NULL , '" . $agentid . "', '" . $clearLogin . "');"; nr_query($query); log_register("AGENTASSIGNSTRICT ADD (" . $login . ") [" . $agentid . "]"); } /** * Renders agent assigned users stats * * @param string $mask Optional tariff mask to separate users * * @return string */ function zb_AgentStatsRender($mask = '') { /** * Seems that waz written with Paranormal Helicopter Porn */ $result = ''; $allUsers = zb_UserGetAllStargazerDataAssoc(); $tmpArr = array(); // contains all user assigns as login=>agentid $agentCounters = array(); //contains binding stats as AgentId = > userCount $maskCounters = array(); //contains binding stats as AgentId mask=>all/active if (!empty($allUsers)) { $allAddress = zb_AddressGetFullCityaddresslist(); $allAssigns = zb_AgentAssignGetAllData(); $strictAssigns = zb_AgentAssignStrictGetAllData(); $allAgentData = zb_ContrAhentGetAllData(); $allAgentNames = array(); //agentid=>contrname if (!empty($allAgentData)) { //shitty preprocessing here foreach ($allAgentData as $io => $eachAgentData) { $allAgentNames[$eachAgentData['id']] = $eachAgentData['contrname']; } } foreach ($allUsers as $eachLogin => $eachUserData) { $assignedAgentId = zb_AgentAssignCheckLoginFast($eachLogin, $allAssigns, @$allAddress[$eachLogin], $strictAssigns); if (!empty($assignedAgentId)) { $tmpArr[$eachLogin] = $assignedAgentId; } } if (!empty($tmpArr)) { foreach ($tmpArr as $eachUser => $eachAgentId) { $userData = $allUsers[$eachUser]; if (($userData['Cash'] >= '-' . $userData['Credit']) AND ( $userData['AlwaysOnline'] == 1) AND ( $userData['Passive'] == 0) AND ( $userData['Down'] == 0)) { $active = 1; } else { $active = 0; } if (isset($agentCounters[$eachAgentId])) { $agentCounters[$eachAgentId]['total'] ++; $agentCounters[$eachAgentId]['active'] += $active; } else { $agentCounters[$eachAgentId]['total'] = 1; $agentCounters[$eachAgentId]['active'] = $active; } if (!empty($mask)) { if (ispos($userData['Tariff'], $mask)) { if (isset($maskCounters[$eachAgentId][$mask])) { $maskCounters[$eachAgentId][$mask]['all'] ++; $maskCounters[$eachAgentId][$mask]['active'] += $active; } else { $maskCounters[$eachAgentId][$mask]['all'] = 1; $maskCounters[$eachAgentId][$mask]['active'] = $active; } } } } } if (!empty($agentCounters)) { $cells = wf_TableCell(__('Contrahent name')); $cells .= wf_TableCell(__('Users')); $cells .= wf_TableCell(__('Active')); if ($mask) { $cells .= wf_TableCell($mask . ': ' . __('Total') . ' / ' . __('Active')); } $rows = wf_TableRow($cells, 'row1'); foreach ($agentCounters as $agentId => $userCount) { $cells = wf_TableCell(@$allAgentNames[$agentId]); $cells .= wf_TableCell($userCount['total']); $cells .= wf_TableCell($userCount['active']); if ($mask) { $cells .= wf_TableCell(@$maskCounters[$agentId][$mask]['all'] . ' / ' . @$maskCounters[$agentId][$mask]['active']); } $rows .= wf_TableRow($cells, 'row5'); } $result .= wf_TableBody($rows, '100%', 0, 'sortable'); } else { $messages = new UbillingMessageHelper(); $result .= $messages->getStyledMessage(__('Nothing to show'), 'warning'); } } return($result); } /** * Returns extended agent info filtered by $recID or $agentID. * If no $recID or $agentID parameter given - all available records returned. * * @param string $recID * @param string $agentID * @param false $getBaseAgentInfo * * @return array */ function zb_GetAgentExtInfo($recID = '', $agentID = '', $getBaseAgentInfo = false, $whereRawStr = '', $assocByField = '') { $tabAgentExtInfo = new NyanORM('contrahens_extinfo'); if ($getBaseAgentInfo) { $tabAgentExtInfo->selectable(array('`contrahens_extinfo`.*', '`contrahens`.`bankacc`', '`contrahens`.`bankname`', '`contrahens`.`bankcode`', '`contrahens`.`edrpo`', '`contrahens`.`ipn`', '`contrahens`.`licensenum`', '`contrahens`.`juraddr`', '`contrahens`.`phisaddr`', '`contrahens`.`phone`', '`contrahens`.`contrname`', '`contrahens`.`agnameabbr`', '`contrahens`.`agsignatory`', '`contrahens`.`agsignatory2`', '`contrahens`.`agbasis`', '`contrahens`.`agmail`', '`contrahens`.`siteurl`' )); $tabAgentExtInfo->joinOn('LEFT', 'contrahens', " `contrahens_extinfo`.`agentid` = `contrahens`.`id` "); } if (!empty($recID)) { $tabAgentExtInfo->where('id', '=', $recID); } if (!empty($agentID)) { $tabAgentExtInfo->where('agentid', '=', $agentID); } if (!empty($whereRawStr)) { $tabAgentExtInfo->whereRaw($whereRawStr); } $result = $tabAgentExtInfo->getAll($assocByField); return ($result); } /** * Creates new contragent extended info record in DB * * @param $extinfoAgentID * @param $extinfoSrvType * @param $extinfoPaySysName * @param $extinfoPaySysID * @param $extinfoPaySysSrvID * @param $extinfoPaySysToken * @param $extinfoPaySysSecretKey * @param $extinfoPaySysPassword * * @return void * @throws Exception */ function zb_CreateAgentExtInfoRec($extinfoAgentID, $extinfoSrvType = '', $extinfoPaySysName = '', $extinfoPaySysID = '', $extinfoPaySysSrvID = '', $extinfoPaySysToken = '', $extinfoPaySysSecretKey = '', $extinfoPaySysPassword = '') { $tabAgentExtInfo = new NyanORM('contrahens_extinfo'); $tabAgentExtInfo->dataArr(array( 'agentid' => $extinfoAgentID, 'service_type' => $extinfoSrvType, 'internal_paysys_name' => $extinfoPaySysName, 'internal_paysys_id' => $extinfoPaySysID, 'internal_paysys_srv_id' => $extinfoPaySysSrvID, 'paysys_token' => $extinfoPaySysToken, 'paysys_secret_key' => $extinfoPaySysSecretKey, 'paysys_password' => $extinfoPaySysPassword ) ); $tabAgentExtInfo->create(); $recID = $tabAgentExtInfo->getLastId(); log_register('AGENT EXTEN INFO CREATE [' . $recID . ']'); } /** * Changes contragent extended info record in DB by given record ID * * @param $recID * @param $extinfoAgentID * @param $extinfoSrvType * @param $extinfoPaySysName * @param $extinfoPaySysID * @param $extinfoPaySysSrvID * @param $extinfoPaySysToken * @param $extinfoPaySysSecretKey * @param $extinfoPaySysPassword * * @return void * @throws Exception */ function zb_EditAgentExtInfoRec($recID, $extinfoAgentID, $extinfoSrvType = '', $extinfoPaySysName = '', $extinfoPaySysID = '', $extinfoPaySysSrvID = '', $extinfoPaySysToken = '', $extinfoPaySysSecretKey = '', $extinfoPaySysPassword = '') { $tabAgentExtInfo = new NyanORM('contrahens_extinfo'); $tabAgentExtInfo->dataArr(array( 'id' => $recID, 'agentid' => $extinfoAgentID, 'service_type' => $extinfoSrvType, 'internal_paysys_name' => $extinfoPaySysName, 'internal_paysys_id' => $extinfoPaySysID, 'internal_paysys_srv_id' => $extinfoPaySysSrvID, 'paysys_token' => $extinfoPaySysToken, 'paysys_secret_key' => $extinfoPaySysSecretKey, 'paysys_password' => $extinfoPaySysPassword ) ); $tabAgentExtInfo->where('id', '=', $recID); $tabAgentExtInfo->save(true, true); log_register('AGENT EXTEN INFO EDIT [' . $recID . ']'); } /** * Removes contragent extended info record from DB by given record ID * * @param $recID * * @return void * @throws Exception */ function zb_DeleteAgentExtInfoRec($recID) { $tabAgentExtInfo = new NyanORM('contrahens_extinfo'); $tabAgentExtInfo->where('id', '=', $recID); $tabAgentExtInfo->delete(); log_register('AGENT EXTEN INFO DELETE [' . $recID . ']'); } /** * Returns extended agent info edit form * * @param string $recID * * @return string */ function zb_AgentEditExtInfoForm($recID = '') { $extinfoData = (empty($recID) ? array() : zb_GetAgentExtInfo($recID)); $extinfoEditMode = !empty($extinfoData); $extinfoRecID = ''; $extinfoAgentID = ubRouting::checkGet('extinfo') ? ubRouting::get('extinfo') : ''; $extinfoSrvType = ''; $extinfoPaySysName = ''; $extinfoPaySysID = ''; $extinfoPaySysSrvID = ''; $extinfoPaySysToken = ''; $extinfoPaySysSecretKey = ''; $extinfoPaySysPassword = ''; $allPaySys = array(); $srvtypeSelectorID = wf_InputId(); $openpayzSelectorID = wf_InputId(); $paysysControlID = wf_InputId(); if ($extinfoEditMode) { $extinfoRecID = $extinfoData[0]['id']; $extinfoAgentID = $extinfoData[0]['agentid']; $extinfoSrvType = $extinfoData[0]['service_type']; $extinfoPaySysName = $extinfoData[0]['internal_paysys_name']; $extinfoPaySysID = $extinfoData[0]['internal_paysys_id']; $extinfoPaySysSrvID = $extinfoData[0]['internal_paysys_srv_id']; $extinfoPaySysToken = $extinfoData[0]['paysys_token']; $extinfoPaySysSecretKey = $extinfoData[0]['paysys_secret_key']; $extinfoPaySysPassword = $extinfoData[0]['paysys_password']; } else { // load existing OpenPayz payment systems $query = 'select distinct `paysys` from `op_transactions`'; $all = simple_queryall($query); if (!empty($all)) { foreach ($all as $io => $each) { $allPaySys[$each['paysys']] = $each['paysys']; } } // check if PrivatBank invoices sending is on global $ubillingConfig; $rmdPBInvoicesON = $ubillingConfig->getAlterParam('REMINDER_PRIVATBANK_INVOICE_PUSH', false); if ($rmdPBInvoicesON) { $allPaySys['PRIVAT_INVOICE_PUSH'] = 'PRIVAT_INVOICE_PUSH'; } } $inputs = wf_Selector('extinfsrvtype', array('Internet' => __('Internet'), 'UKV' => __('UKV')), __('Choose service type'), $extinfoSrvType, true, false, $srvtypeSelectorID); $inputs.= ($extinfoEditMode) ? '' : wf_Selector('extinfoppaysys', $allPaySys, __('You may select OpenPayz payment system name'), '', true, false, $openpayzSelectorID); $inputs.= wf_TextInput('extinfintpaysysname', __('Payment system name'), $extinfoPaySysName, true, '', '', '', $paysysControlID); $inputs.= wf_TextInput('extinfintpaysysid', __('Contragent code within payment system'), $extinfoPaySysID, true); $inputs.= wf_TextInput('extinfintpaysyssrvid', __('Service code within payment system'), $extinfoPaySysSrvID, true); $inputs.= wf_TextInput('extinfintpaysystoken', __('Service token'), $extinfoPaySysToken, true); $inputs.= wf_TextInput('extinfintpaysyskey', __('Service secret key'), $extinfoPaySysSecretKey, true); $inputs.= wf_TextInput('extinfintpaysyspasswd', __('Service password'), $extinfoPaySysPassword, true); $inputs.= wf_HiddenInput('extinfrecid', $extinfoRecID); $inputs.= wf_HiddenInput('extinfagentid', $extinfoAgentID); $inputs.= wf_HiddenInput('extinfeditmode', $extinfoEditMode); $inputs.= wf_Submit(($extinfoEditMode) ? __('Edit') : __('Create')); if (!$extinfoEditMode) { $tmpJS = " $(document).ready(function() { if ($('#" . $srvtypeSelectorID . " option:selected').val() == 'Internet') { $('#" . $openpayzSelectorID . "').prop('disabled', false); } else { $('#" . $openpayzSelectorID . "').prop('disabled', true); } $('#" . $srvtypeSelectorID . "').on('change', function() { console.log($('#" . $srvtypeSelectorID . " option:selected').val()); let opz_disabled = ($('#" . $srvtypeSelectorID . " option:selected').val() != 'Internet'); $('#" . $openpayzSelectorID . "').prop('disabled', opz_disabled); }); $('#" . $openpayzSelectorID . "').on('change', function() { $('#" . $paysysControlID . "').val($('#" . $openpayzSelectorID . " option:selected').val()); }); }); "; $inputs .= wf_EncloseWithJSTags($tmpJS); } $result = wf_Form("", 'POST', $inputs, 'glamour'); return($result); } /** * Returns all available extended agent info for a particular $agentID * * @param $agentID * * @return string */ function zb_RenderAgentExtInfoTable($agentID) { $extinfoData = zb_GetAgentExtInfo('', $agentID, true); // construct needed editor $titles = array( 'ID', 'Contrahent name', 'Service type', 'Payment system name', 'Contragent code within payment system', 'Service code within payment system', 'Service token', 'Service secret key', 'Service password' ); $keys = array( 'id', 'contrname', 'service_type', 'internal_paysys_name', 'internal_paysys_id', 'internal_paysys_srv_id', 'paysys_token', 'paysys_secret_key', 'paysys_password' ); $result = web_GridEditor($titles, $keys, $extinfoData, 'contrahens&extinfo=' . $agentID, true, true); return($result); } ?> |