Биллинговая система Nodeny
21 Ноября 2024, 19:12:14 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3
  Печать  
Автор Тема: Платежи из файла  (Прочитано 16241 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« : 26 Июня 2019, 23:09:25 »

Пока тестируется

http://nodeny.com.ua/wiki/index.php/%D0%9F%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%B8_%D0%B8%D0%B7_%D1%84%D0%B0%D0%B9%D0%BB%D0%B0
Записан
WideAreaNetwork
Старожил
****

Карма: 1
Offline Offline

Сообщений: 358


Просмотр профиля Email
« Ответ #1 : 28 Июня 2019, 08:41:45 »

я правильно понимаю что это для импорта в биллинг выписки с банка?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #2 : 28 Июня 2019, 13:30:30 »

я правильно понимаю что это для импорта в биллинг выписки с банка?
да
Записан
uaapollo
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 11


Просмотр профиля Email
« Ответ #3 : 22 Августа 2019, 10:27:56 »

Добрый день!

у меня была проблема, если в файле встречаются кавычки, то говорит что не корректная строка.

добавил $line =~ s/"//g;

проблема решена.
Записан
uaapollo
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 11


Просмотр профиля Email
« Ответ #4 : 22 Августа 2019, 10:35:57 »

И вот еще.
Это пофиксил так
$amount =~ s/\s+//g;


Truncated incorrect DOUBLE value: '1 000.00'

{
  'param' => [
    '1 000.00',
    '1 000.00',
    '1413'
  ],
  'sql' => 'UPDATE users SET state = IF(balance+(?) >= limit_balance, \'on\', state), balance=balance+(?) WHERE id=?'
};
 
 UPDATE users SET state = IF(balance+('1 000.00') >= limit_balance, 'on', state), balance=balance+('1 000.00') WHERE id='1413'
« Последнее редактирование: 22 Августа 2019, 11:09:18 от uaapollo » Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #5 : 07 Сентября 2019, 00:20:30 »

Установил модуль "Платежи из файла"
Установил модуль перл "Text::CSV   2.00" согласно документации  
Код:
cd /usr/ports/textproc/p5-Text-CSV && make install clean

Debug выдает ошибку "Can't locate Text/CSV_XS.pm in @INC (you may need to install the Text::CSV_XS module)"

Проблема решена установкой соответствующего модуля:
Код:
cd /usr/ports/textproc/p5-Text-CSV_XS && make install clean


Прошу отразить в документации необходимость установки дополнительного модуля. Спасибо

Записан
garik24
NoDeny
Пользователь
*

Карма: 1
Offline Offline

Сообщений: 73



Просмотр профиля
« Ответ #6 : 21 Сентября 2019, 13:06:30 »

И вот еще.
Это пофиксил так
$amount =~ s/\s+//g;


Truncated incorrect DOUBLE value: '1 000.00'

{
  'param' => [
    '1 000.00',
    '1 000.00',
    '1413'
  ],
  'sql' => 'UPDATE users SET state = IF(balance+(?) >= limit_balance, \'on\', state), balance=balance+(?) WHERE id=?'
};
 
 UPDATE users SET state = IF(balance+('1 000.00') >= limit_balance, 'on', state), balance=balance+('1 000.00') WHERE id='1413'

Подтверждаю, символы " в выписке приводят к ошибке.

Кроме того, некоторые бюджетники любят злоупотреблять ; в назначении платежа.

Не разобрался какие именно строки править.

uaapollo, Вы могли бы поделиться diff'ом?
Записан
WideAreaNetwork
Старожил
****

Карма: 1
Offline Offline

Сообщений: 358


Просмотр профиля Email
« Ответ #7 : 22 Сентября 2019, 07:05:26 »

тут скорее не править нужно, а модуль доработать
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #8 : 22 Сентября 2019, 11:19:44 »

Ну попросите, может стандарт csv под вас изменят: http://www.rfc-editor.org/rfc/rfc4180.txt - написано, что двойные кавычки в тексте должны дублироваться. Парсит csv модуль не биллинга, а perl, протестированный тысячами людей
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #9 : 22 Сентября 2019, 11:24:39 »

добавил $line =~ s/"//g;
"исправив" таким образом ты породил другую проблему. Было, например:
Цитировать
"Привет;друг";10грн
Станет
Цитировать
Привет;друг;10грн
и во втором поле парсер вместо 10грн увидит "друг". Предлагаю просто давать входные данные по стандарту csv - почитайте википедию, там страница текста всего
Записан
dolphin.zp
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 5


Просмотр профиля
« Ответ #10 : 23 Декабря 2019, 10:14:21 »

как взять из другой таблицы имя поля в базе данных , в котором хранится идентификатор абонента (user_field_in_db) ? например нужен  users.name 
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #11 : 23 Декабря 2019, 12:15:49 »

Пока никак. Усовершенствую модуль. Сообщу
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #12 : 23 Декабря 2019, 14:41:43 »

Скачай модуль заново. Документацию обновил
Записан
dolphin.zp
Пользователь
**

Карма: 0
Offline Offline

Сообщений: 5


Просмотр профиля
« Ответ #13 : 23 Декабря 2019, 15:44:19 »

Скачай модуль заново. Документацию обновил
спасибо
Записан
Maks
NoDeny
Ветеран
*

Карма: 13
Offline Offline

Сообщений: 575


Скажи спасибо - подними карму.

https://t.me/smv https://t.me/smv_wz
Просмотр профиля Email
« Ответ #14 : 01 Июня 2021, 14:04:16 »

Подскажите, а где можно проверить работу модуля. Посмотреть как он парсит.

Попробовал в демке, но там Загрузить из файла не работает.

Или кто уже пользуется подскажите как парсит модуль.

Я так понимают выполняется поиск по номеру договора ?
А как быть если договор написан не полностью.

К примеру есть договор 1234 как будет распознан если в номере договора (варианты):
- 1234
- 1234.20
- №1234
- 12345


И что будет с теми что парсер не нашел, можно ли сразу их отметить верным номером договора
Записан

Nodeny общение
https://t.me/nodeny_chat
Страниц: [1] 2 3
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!