Просмотр Исходного

{tip}*Время выполнения инструкции*: до 10 секунд на абонента,а так же до 1 минуты на инициализацию скрипта, общее время зависит от загруженности сервера и количества абонентов{tip}

{panel}chroot /app/asr_billing

python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc {color:green}{*}sync_balance.conf{*}{color} {color:blue}{*}balances.csv{*}{color} sync_balance{panel}
Вместо *sync_balance.conf* и *balances.csv* укажите имена Ваших файлов: конфигурационного и с балансами для синхронизации
Синхронизация проводится по полю "Баланс", в соответствии со статьей по [миграции|Миграция из CSV файла]
Пример конфигурационного файла для синхронизации балансов находится в контейнере /app/asr_billing/ в директории /usr/lib/python2.7/site-packages/carbon_migration_scripts/import_csv_sync_balance.config.example

h6. Для получения информации из биллинга Carbon Billing5 в формате "Номер договора - текущий баланс", необходимо выполнить отчёт:
{code}
select
distinct
A.CONTRACT_NUMBER as "Договор",
round((aa.ostatok+aa.debit-aa.credit) / cast((10000000000) as numeric(18,5)), 2) as "Текущий баланс"
from ABONENTS A
left join ADMIN_ACCOUNTS AA on AA.ID=A.ACCOUNT_ID
where A.IS_FOLDER=0
and a.deleted=0
{code}
h6. Для получения информации из биллинга Carbon Billing4 в формате "Номер договора - текущий баланс", необходимо выполнить отчёт:
{code}
select contract_number, (DEBIT + OSTATOK - CREDIT)/10000000000.00 from users
where id<100000 and deleted=0 and end_user=1
{code}
h6. Пример sync_balance.conf
{code}
{
"fields": {
"Номер договора": 0,
"Баланс": 1
},

"options":{
"Разделитель csv": ";",
"Наследовать параметры от родительской папки": "True",
"Формат даты": "%d.%m.%Y",
"Следующее списание": "01.03.2015"
}
}
{code}
h1. Синхронизация балансов при миграции из Carbon Billing 4.
В случае, если между тестовой миграцией абонентов из Carbon Billing 4 и запуском Carbon Billing 5 в коммерческую эксплуатацию прошло некоторое время и балансы абонентов изменились, может потребоваться синхронизация балансов без перемиграции всей базы данных. В таком случае синхронизацию можно проводить по csv файлу, полученному при экспорте из [Carbon Billing4|CarbonBilling:Миграция абонентов из Carbon Billing 4]:
h6. 1) Получаем данные из биллинга 4й версии
Для примера:
IP биллинга 4-ой версии: 1.1.1.1
Пароль БД: servicem
{code}
chroot /app/asr_billing/
python /usr/lib/python2.7/site-packages/carbon_migration_scripts/crb4_csv_export/main.pyc 1.1.1.1 servicem
{code}
h6. 2) Создаем и открываем файл sync_balance.conf. В примере используется текстовый редактор *vim*. Можете использовать любой удобный для Вас текстовый редактор.
{code}
vim /root/sync_balance.conf
{code}
h6. 3)Записываем туда следующие данные без изменений и сохраняем файл(Поля в точно таком же порядке) :
{code}
{
"fields": {
"Номер договора": 3,
"Баланс": 9,
"Следующее списание": 69
},

"options":{
"Разделитель csv": ";",
"Наследовать параметры от родительской папки": "True",
"Формат даты": "%d.%m.%Y"
}
}
{code}
h6. 4)Запускаем синхронизацию балансов по файлу, полученному в пункте 1, /root/new_migration/csv_output/abonent.csv
{info}
В этом файле в 3 столбце будет номер договора, в 9 баланс, следующее списания в 69(отсчет идет с 0)
{info}
{code}
python2.7 /usr/lib/python2.7/site-packages/carbon_migration_scripts/file_client/import_csv.pyc /root/sync_balance.conf /root/new_migration/csv_output/abonent.csv sync_balance
{code}