Example #1
0
 /**
  * Returns existing users full info
  * 
  * @return array
  */
 protected function getUsersList()
 {
     $result = array();
     $allRealNames = zb_UserGetAllRealnames();
     $allContracts = zb_UserGetAllContracts();
     $allUserTags = $this->getAllUsersTags();
     $allUserNotes = zb_UserGetAllNotes();
     $allPaymentIds = $this->getAllUserPaymentIds();
     $allAddresBindings = $this->getAllAddressList();
     $allAptData = $this->getAllAptList();
     $allPhones = zb_UserGetAllPhoneData();
     $allEmails = zb_UserGetAllEmails();
     $allNethosts = $this->getNethostsData();
     $allNetworks = $this->getNetworksData();
     $allRegData = $this->getUserRegData();
     if (!empty($allContracts)) {
         $allContracts = array_flip($allContracts);
     }
     $allContractDates = zb_UserContractDatesGetAll();
     if (!empty($this->allUserData)) {
         foreach ($this->allUserData as $userLogin => $userData) {
             $result[$userLogin]['id'] = $userLogin;
             $result[$userLogin]['login'] = $userLogin;
             $result[$userLogin]['full_name'] = @$allRealNames[$userLogin];
             $result[$userLogin]['flag_corporate'] = 0;
             if ($userData['TariffChange']) {
                 $curMonth = date('n');
                 $curYear = date('Y');
                 $firstDayNextMonth = $curMonth == 12 ? mktime(0, 0, 0, 0, 0, $curYear + 1) : mktime(0, 0, 0, $curMonth + 1, 1);
                 $firstDayNextMonth = date("Y-m-d", $firstDayNextMonth);
             } else {
                 $firstDayNextMonth = '';
             }
             $result[$userLogin]['tariff']['current'][0]['id'] = $userData['Tariff'];
             if ($firstDayNextMonth) {
                 $result[$userLogin]['tariff']['current'][0]['date_finish'] = $firstDayNextMonth;
             }
             if ($userData['TariffChange']) {
                 $result[$userLogin]['tariff']['new'][0]['id'] = $userData['TariffChange'];
                 $result[$userLogin]['tariff']['new'][0]['date_start'] = $firstDayNextMonth;
             }
             $userContract = @$allContracts[$userLogin];
             if ($userContract) {
                 $result[$userLogin]['agreement'][0]['number'] = $userContract;
                 $contractDate = @$allContractDates[$userContract];
                 if ($contractDate) {
                     $result[$userLogin]['agreement'][0]['date'] = $contractDate;
                 }
             }
             $result[$userLogin]['account_number'] = @$allPaymentIds[$userLogin];
             // yep, this is something like Payment ID
             if (isset($allUserTags[$userLogin])) {
                 foreach ($allUserTags[$userLogin] as $tagIo => $eachTagid) {
                     $result[$userLogin]['group'][$tagIo] = $eachTagid;
                 }
             }
             $userNotes = @$allUserNotes[$userLogin];
             if ($userNotes) {
                 $result[$userLogin]['comment'] = $userNotes;
             }
             $result[$userLogin]['balance'] = $userData['Cash'];
             $result[$userLogin]['credit'] = $userData['Credit'];
             $userState = 5;
             // work
             if ($userData['Cash'] < '-' . $userData['Credit']) {
                 $userState = 1;
                 //nomoney
             }
             if ($userData['Passive'] == 1) {
                 $userState = 2;
                 // pause
             }
             if ($userData['Down'] == 1) {
                 $userState = 3;
                 // disable
             }
             if ($userData['Tariff'] == '*_NO_TARIFF_*') {
                 $userState = 4;
                 // new
             }
             $result[$userLogin]['state_id'] = $userState;
             if (isset($allRegData[$userLogin])) {
                 $result[$userLogin]['date_create'] = $allRegData[$userLogin];
                 $result[$userLogin]['date_connect'] = $allRegData[$userLogin];
             } else {
                 $result[$userLogin]['date_create'] = '';
                 $result[$userLogin]['date_connect'] = '';
             }
             $result[$userLogin]['date_activity'] = date("Y-m-d H:i:s", $userData['LastActivityTime']);
             $result[$userLogin]['traffic']['month']['up'] = $userData['U0'];
             $result[$userLogin]['traffic']['month']['down'] = $userData['D0'];
             $result[$userLogin]['discount'] = 0;
             // TODO: to many discount models at this time
             $userApartmentId = @$allAddresBindings[$userLogin];
             if ($userApartmentId) {
                 $aptData = $allAptData[$userApartmentId];
                 $result[$userLogin]['address'][0]['type'] = 'connect';
                 $result[$userLogin]['address'][0]['house_id'] = $aptData['buildid'];
                 $result[$userLogin]['address'][0]['apartment']['id'] = $userApartmentId;
                 $result[$userLogin]['address'][0]['apartment']['full_name'] = $aptData['apt'];
                 $result[$userLogin]['address'][0]['apartment']['number'] = vf($aptData['apt'], 3);
                 if ($aptData['entrance']) {
                     $result[$userLogin]['address'][0]['entrance'] = $aptData['entrance'];
                 }
                 if ($aptData['floor']) {
                     $result[$userLogin]['address'][0]['floor'] = $aptData['floor'];
                 }
             }
             $userPhoneData = @$allPhones[$userLogin];
             if (!empty($userPhoneData)) {
                 if (isset($userPhoneData['phone'])) {
                     $result[$userLogin]['phone'][0]['number'] = $userPhoneData['phone'];
                     $result[$userLogin]['phone'][0]['flag_main'] = 0;
                 }
                 if (isset($userPhoneData['mobile'])) {
                     $result[$userLogin]['phone'][1]['number'] = $userPhoneData['mobile'];
                     $result[$userLogin]['phone'][1]['flag_main'] = 1;
                 }
             }
             $userEmail = @$allEmails[$userLogin];
             if ($userEmail) {
                 $result[$userLogin]['email'][0]['address'] = $userEmail;
                 $result[$userLogin]['email'][0]['flag_main'] = 1;
             }
             $userIp = $userData['IP'];
             $userIp = ip2int($userIp);
             $result[$userLogin]['ip_mac'][0]['ip'] = $userIp;
             $nethostsData = @$allNethosts[$userData['IP']];
             if (!empty($nethostsData)) {
                 $subnetId = $nethostsData['netid'];
                 $userMac = $nethostsData['mac'];
                 $userMac = str_replace(':', '', $userMac);
                 $userMac = strtolower($userMac);
                 // mac lowercased withot delimiters
                 $result[$userLogin]['ip_mac'][0]['mac'] = $userMac;
                 $result[$userLogin]['ip_mac'][0]['ip_net'] = @$allNetworks[$subnetId]['desc'];
             }
             if (isset($this->allCfData[$userLogin])) {
                 $result[$userLogin]['additional_data'] = $this->allCfData[$userLogin];
             }
             //   die(print_r($result, true));
         }
     }
     return $result;
 }
Example #2
0
        nq($conn2, $ps_constr);
    } else {
        // ухты, нету такого тарифа еще, давайте добавим
        $ps_constr = "insert into tbl_group (CODE,GROUPNAME,PRICE,TRAFEX,TRAFBUH,ABON,ABONDAY,SPEEDRX,SPEEDTX,ISUPD) values ('" . $pmas_group[$pi1][1] . "','" . $pmas_group[$pi1][2] . "'," . $pmas_group[$pi1][3] . "," . $pmas_group[$pi1][4] . "," . $pmas_group[$pi1][5] . "," . $pmas_group[$pi1][6] . "," . $pmas_group[$pi1][7] . "," . $pmas_group[$pi1][8] . "," . $pmas_group[$pi1][9] . ",1);";
        printlog_sql($ps_constr);
        nq($conn2, $ps_constr);
    }
}
//Удаляем необновленные (значит такой тариф уже удален в биллинге и нужно удалить его в UserSide)
nq($conn2, "delete from tbl_group where ISUPD=0");
printlog("вносим данные о группах в БД UserSide. ОКОНЧАНИЕ");
// Достаем из Ubilling всякие штуки которые нам понадобятся потом
$allcontracts = zb_UserGetAllContracts($conn1);
$allregs = zb_UserGetAllUserregDates($conn1);
$allrealnames = zb_UserGetAllRealnames($conn1);
$allnotes = zb_UserGetAllNotes($conn1);
$alladdress = us_AddressGetFulladdresslist($conn1);
$allphones = zb_UserGetAllPhones($conn1);
$allnethosts = us_NethostsGetAll($conn1);
$allstreets = us_AddressGetStreetsAll($conn1);
$allbuilds = us_AddressGetBuildAll($conn1);
/*
#================================================================================================================
# Обработка домов (при условии, что биллинг хранит информацию об адресах абонентов
# Логика работы с адресами может значительно отличаться в разных биллингах. Следует просто понять принципы учета адресов в UserSide и 
# подстроить скрипт под свои фактические потребности.
# В UserSide:
# tbl_street - это таблица с улицами
# tbl_house - это таблица с домами, где tbl_house.STREETCODE=tbl_street.CODE
# tbl_base - это таблица с абонентами, где tbl_base.HOUSECODE=tbl_house.CODE, tbl_base.APART - номер квартиры, tbl_base.FLOOR - этаж, tbl_base.PODEZD - номер подъезда
#================================================================================================================