Перейти до

Финансовый отчет для кассира


Рекомендованные сообщения

Добрый день! 

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

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

Поэтому по-быстрому выпилил всё лишнее из оригинального модуля.

 

Особая благодарность разработчикам биллинга за возможность простой доработки 

чего угодно под свои нужды

 

Помощь по установке находится в файле readme.txt

 

Модуль имеет отдельные права доступа, поэтому можно их назначить только кассирам, например

Он выдает отчет кассы за сегодняшний день только для того кассира, который открыл этот модуль.

report_finance_public.zip

  • Like 3
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, strushke сказав:

Добрый день! 

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

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

Поэтому по-быстрому выпилил всё лишнее из оригинального модуля.

 

Особая благодарность разработчикам биллинга за возможность простой доработки 

чего угодно под свои нужды

 

Помощь по установке находится в файле readme.txt

 

Модуль имеет отдельные права доступа, поэтому можно их назначить только кассирам, например

Он выдает отчет кассы за сегодняшний день только для того кассира, который открыл этот модуль.

report_finance_public.zip 4 \u041a\u0431 · 2 скачування

 

Вы невероятно творчески подошли к решению вашей задачи. Было интересно пронаблюдать. Спасибо.

Из плохих новостей: вы умудрились сделать это самым сложным и непостижимым из всех возможных способом :)

 

1. Где-то 80% кода вашего модуля там не используется или попросту не работает от слова совсем. Методом просто хаотичного выкидывания всего что не работает, даже без вникания в суть происходящего, можно сократить его ровно вот до настолько небольшого куска чего-то: https://justpaste.lol/?v=ip85qaot

 

получив при этом идентичный(?) результат:

 

spacer.png

 

 

 

Ссылка на сообщение
Поделиться на других сайтах

2. Также напрашивается мысль, что ваши кассиры живут не одним днем. Возможно у них нету будущего, но у них точно было какое-то прошлое. Как минимум - "вчера".

Поэтому однозначно напрашивается что-то типа такого

 

spacer.png

 

что как бы реализуется в 3-4 строки на интерфейс и в две строки при выборке результатов

 

$renderDate = (ubRouting::checkPost('renderdate')) ? ubRouting::post('renderdate', 'mres') : curdate();
$paymentsDb->where('date', 'LIKE', $renderDate . '%');

 

Короче как-то так: https://justpaste.lol/?v=g3q9hgm8

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, strushke сказав:

Помощь по установке находится в файле readme.txt

3. Также, есть подозрение, что вы сами не в восторге от читания этого файла. Тем более, что пакуется это все очень удобно и просто в отчет "Мастера Отчетов" который никуда не девается при обновлениях. Что на практике должно выглядеть как-то так:

 

 

Прошу, вот ваш отчет: https://justpaste.lol/?v=fv9gdr5x

Разграничивать права на модуль штатно, перечисляя администраторов через запятую или замотать все это кучей в if (cfr('CASH'))  (у них же и так есть право работать с деньгами?) - уже дело десятое.

 

UPD: но вы все равно молодец. Самостоятельный и творческий подход к решению задач  - не может не делать из вас молодца :)

 

 

 

Відредаговано nightfly
Ссылка на сообщение
Поделиться на других сайтах
On 1/12/2023 at 12:52 PM, nightfly said:

3. Также, есть подозрение, что вы сами не в восторге от читания этого файла. Тем более, что пакуется это все очень удобно и просто в отчет "Мастера Отчетов" который никуда не девается при обновлениях. Что на практике должно выглядеть как-то так:

 

 

Прошу, вот ваш отчет: https://justpaste.lol/?v=fv9gdr5x

Разграничивать права на модуль штатно, перечисляя администраторов через запятую или замотать все это кучей в if (cfr('CASH'))  (у них же и так есть право работать с деньгами?) - уже дело десятое.

 

UPD: но вы все равно молодец. Самостоятельный и творческий подход к решению задач  - не может не делать из вас молодца :)

 

 

 

 

Привет! Я благодарен за столь развернутый и поучительный ответ, мне есть чему поучиться.

Просто ситуация была такая, что "в наличии "плоскогубцы и шуруп, который надо вкрутить прямо щас")

Пошел напролом)

 

А по поводу самостоятельности - да я вообще считаю, что тут стесняться не стоит - не на бумаге же пишем, можно и переписать) 

Хорошего дня! 

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

  • Схожий контент

    • Від mac
      Глюк в тому, що один (так - тільки один) mac адрес onu існує в білінгу у вигляді строки. Це трохи заважає.
      olt - bdcom gepon.
      Наскільки зрозумів, це виключно проблема реалізації snmpwalk у freebsd, де snmpwalk може на свій розсуд віддати mac адресу не як hex-string, а як звичайний string.
      Можливо snmpwalk тригериться на якомусь символі, мені невідомо.
       
      # tcpdump -vv -i em0 udp port 161 and host olt and host ub | grep "3320.101.10.4.1.1.241 ... olt.snmp > ub.47940: [udp sum ok] { SNMPv2c C="*****" { GetResponse(44) R=93278354 E:3320.101.10.4.1.1.241="8LO"W*" } } ub.47940 > olt.snmp: [udp sum ok] { SNMPv2c C="*****" { GetNextRequest(34) R=93278355 E:3320.101.10.4.1.1.241 } } snmpwalk -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = STRING: "8LO\"W*" snmpwalk -Ox -c***** -v2c -t5 olt .1.3.6.1.4.1.3320.101.10.4.1.1 SNMPv2-SMI::enterprises.3320.101.10.4.1.1.241 = Hex-STRING: 38 4C 4F 22 57 2A  
      Це стосується таких параметрів у snmp конфізі bdcom
       
      [signal] MACINDEX=".1.3.6.1.4.1.3320.101.10.4.1.1" [misc] ONUINDEX=".1.3.6.1.4.1.3320.101.11.1.1.3"  
      За для усунення глюку спробував трошки змінити код і завдати тип snmp параметру явно у ./api/libs/api.ponbdcom.php у function collect()
      Це працює. Мабуть станеться у нагоді:
       
      # diff api.ponbdcom.php{.new,.bak} 37c37 < $onuIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); --- > $onuIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $onuIndexOid, self::SNMPCACHE); 91c91 < $macIndex = $this->snmp->walk('-Ox ' . $oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE); --- > $macIndex = $this->snmp->walk($oltIp . ':' . self::SNMPPORT, $oltCommunity, $macIndexOID, self::SNMPCACHE);  
      P.S. Створив тему, а зараз міркую: а може це глюк у ПЗ olt. Оновлю фірмваре olt та перевірю...
       

    • Від Plastilin
      Вітаю. Маю наступний комплект. Ubilling на Debian + Mikrotik CHR як маршрутизатор. Наче все запустилось, але виникло питання яке не вдається розрулити. Читав Wiki, ковиряв, читав знову Wiki, знову ковиряв - не допомогло.
      Чи можливо якось визначити конкретну IP адресу з пулу який видає Mikrotik клієнту через Radius? Мені пропонує обрати наступну вільну адресу з пулу при спробі зміни адреси?
      З цього з'являється додаткове питання, чи можливо контролювати доступ користувачам у яких IP назначений статично, тобто прописаний вручну? Наприклад при зміні статусу не активний - пхати до Firewall Mikrotik правила заборони доступу з IP адреси визначеної вручну, навіть якщо вона не отримана по DHCP.
       
      UPD: з першою частиною знайшов: IP_CUSTOM=1 в alter.ini 
    • Від ppv
      Потрібно було витерти одну мережу, всі абоненти з неї були перенесені в іншу. Але світить що 6 IP зайняті, хоча вона повністю вільна.
       
      ID    Мережа/CID           RВсього IP        Використано IP ▾           Вільно IPСервіс
      6      172.16.70.0/23        506                    6                                       500
       
      Підкажіть як правильно це підчистити щоб видалити мережу.
    • Від sanyadnepr
      Приветствую всех.
      Подскажите пожалуйста где копнуть и нет ли проблемы со стороны протокола взаимодействия сити24 или возможно не учтена необходимая проверка в модуле сити24 в Ubilling, пока писал понял что похоже в проверке payID, но это не точно.  
      Недавно обнаружилось с сити24 начали прилетать дубликаты платежей, в целом платежей мало, два одинаковых запроса Pay с одинаковым transactionID и payID в одну секунду одному платежному ID при этом биллинг "думает" примерно чуть больше минуты и отвечает одним ответом <result>0</result>, сити24 утверждает что ответ они не получили и по протоколу дальше повторяет запросы дублем, биллинг ответ и так по кругу, сити24 спрашивает каким образом с одинаковым payID от сити24 билл продолжает обрабатывать запросы и пополнять абоненту счет раз в 5 минут примерно, на одну и туже сумму, ведь этот payID уже был обработан предполагают сити24 согласно протоколу.
      Конечно есть вопрос к сити24 зачем они дублем присылают два запроса, но они отвечают что эта ситуация учтена в протоколе и проблема на стороне биллинга, потому что он пополняет счет по уже обработанному одинаковому payID.
      При этом transactionID в дублях одинаковый, но с каждым новым дублем разный.
      Если зафаерволить запросы от сити24, но оставить возможность отвечать то после блокировки билл отправляет 2-3 минуты 6 ответов <account>0001</account>  <result>0</result>.
      После снятия блокировки, дубли и платежи нескольких проблемных абонентов прилетают так же по кругу, при этом и с некоторыми новыми пополнениями происходит аналогичная ситуация.
      В openpayz в платежах transactionID и не видно payID.
    • Від nightfly
      Ubilling 1.4.3 rev 9058 The Bladewood Grove
       
      Зміни в структурі БД. alter.ini: нові опції OPHANIMFLOW_ENABLED та OPHANIMFLOW_URLS котрі вмикають та керують інтеграцією з OphanimFlow. alter:ini: нова опція PHOTOSTORAGE_POSTPROCESSING, що вмикає післяобробку зображень при завантаженні в Сховище зображень. alter:ini: нова опція PHOTOSTORAGE_WATERMARK, що вмикає розміщення вотермарки на всіх зображеннях, що завантажуються. alter:ini: нова опція PHOTOSTORAGE_RECOMPRESS, що вмикає зміну компрессії завантажених зображень. alter:ini: нова опція PHOTOSTORAGE_AUTORESIZE, що вмикає автоматичне та лагідне масштабування зображень конячих розмірів. alter:ini: нова опція PHOTOSTORAGE_DRAWIMGINFO, що вмикає вдруковування в зображення відлагоджувальної інформації. alter.ini: нова опція ONDEMAND_CHARTS, що вмикає відкладене завантаження графіків завантаження користувацької смуги. userstats.ini: нова опція OPHANIM_ENABLED, що вмикає інтеграцію OphanimFlow в кабінеті користувача. Модуль Заздрість: тепер авторизаційні дані пристроїв, не відображаються в списку пристроїв. Модуль “Заздрість”: при створенні та редагуванні пристроїв, для полів “пароль” та “enable пароль” тепер використовуються інпути паролів. Модуль “Заздрість”: заздрісним пристроям додано нове поле “Порт”. Тепер в скриптах можна використовувати, відповідний макрос {PORT}. Модуль “Статистика трафіку користувача”: проведено радикальний рефакторинг. Модуль “Статистика трафіку користувача”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Статистика трафіку користувача”: виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Модуль “Статистика трафіку користувача”: додано можливість відображення графіків за останню годину з OphanimFlow. Модуль “Користувачі”: додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Модуль “Сховище зображень”: тепер додатково перевіряє завантажувані зображення на тему їх валідності. Модуль “Фінансові операції”: виправлено відображення суми платежів користувача. Remote API: новий виклик ophanimtraff, який просто бере і синхронізує локальну БД з віддаленими джерелами OphanimFlow. Remote API: виклик userbynum тепер також опційно містить поле з “Платіжним ID” користувача. Глобально: у всіх полях вводу паролів, окрім форми входу, тепер відображається елемент керування “показати/приховати” пароль. Кабінет користувача: в модулі “Трафік” додано опційну можливість, відображення трафіку отриманого з OphanimFlow. Кабінет користувача: в модулі “Трафік” виправлено проблему невірного відображення залишку коштів на кінець місяця, при використанні Ішимури. Кабінет користувача: в модулі “Відеоспостереження” для NVR WolfRecorder замінено розділювач попередньо заповнених даних авторизації. OpenPayz: додано frontend portmonemulti, для отримання платежів від різних контрагентів. Інформацію по контрагентам бере з біллінгу, також використовую розширену інформацію контрагента. Платіжна система в контрагенті мусить бути створена, як PORTMONE 1984tech: додано функціонал генерації RPZ для isc-bind, спасибі @misterromanbush  
      Повний чейнджлог
      Оновлена демка
       

×
×
  • Створити нове...