forum.bitel.ru
http://forum.bitel.ru/

реализованы возвраты, новый интерфейс для дин.кода
http://forum.bitel.ru/viewtopic.php?f=28&t=12507
Страница 1 из 2

Автор:  dimOn [ 20 июн 2017, 18:27 ]
Заголовок сообщения:  реализованы возвраты, новый интерфейс для дин.кода

Для версий 5.2+ актуально на данный момент:
Возвраты работают через дин.код с новым интерфейсом CheckMaker. Старый интерфейс CheckBuilder тоже пока поддерживается, но возвраты работать не будут с ним.
События аналогично - поддерживаются пока, но без возвратов.

Обновиться.
Заменить:

Код:
import ru.bitel.bgbilling.plugins.cashcheck.server.CheckBuilder;

public class BlaBlaCheck
   implements CheckBuilder


на

Код:
import ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker;

public class BlaBlaCheck
   extends CheckMaker


Обратите внимание, что интерфейс заменён на абстрактный класс.
Добавить в этот дин.код метод(ы):

Код:
   @Override
   public void addPaymentRefund( Payment payment, Check check, Printer printer )
      throws BGException
   {
      // этот обязательно добавить, например так:
      check.addPayment( payment.getSumma(), payment.getContractTitle(), 0 );
   }

   @Override
   public void endCreateRefund( int cid, Check check, Printer printer )
      throws BGException
   {
      // этот не обязательно добавлять
   }


Внутри одного из этих методов подразумевается использовать те же самые методы типа:

Код:
check.setTax(1);
check.setPaymentType(1);
check.setCustomerEmail("test@test");
check.setOnlyElCheck(true);


Обновить сервер печати.
Конфиг плагина менять не обязательно, если класс не меняете, название параметра checkbuilder=... осталось старым.
Попробовать сделать возврат через добавление нового расхода.
Есть лог как платежей так и возвратов в админке биллинга.
Также есть возврат из списка чеков напечатанных там же - он запускает дин код как будто бы для печати чека, но потом делает возврат с теми же параметрами. Наверное им лучше не пользоваться, нужно подумать над этим.

Автор:  dimOn [ 20 июн 2017, 18:30 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

сюда писать косяки

Автор:  borin [ 23 июн 2017, 16:01 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Добрый день!
Огромная благодарность за добавление данного функционала.

Возникли вопросы:
1) Мапинг типов расхода на ККТ
Приход делается так:
Код:
# маппинг типов платежей на регистраторы
# pt.<id типа платежа>.fr=<список регистраторов, на которых разрешена печать платежа>
pt.3.fr=1
pt.4.fr=1

Как замапить расходы на ККТ?
client.gui.cashcheck.user.bov01.checkbox.mode=on Устанавливаем печатать чек безусловно, причем данная настройка влияет как на платеж так и на расход. Не все ведь расходы надо печатать.
2) Я так понимаю должны добавить типы расходов: Возврат по кассе и Возврат терминал
Теперь у нас есть два метода addPayment и addPaymentRefund, я так понимаю первый обрабатывает приход второй возврат.
В метод addPaymentRefund, передается объект Payment payment
payment.getPaymentTypeId() - будет возвращать тип расхода?
3) По поводу отправки чека на еmail, смотрю появились методы:
Код:
check.setCustomerEmail("test@test");
check.setOnlyElCheck(true);

Но ведь не всегда нужно отправлять чек на email, это по желанию абонента. Получается при добавления платежа, должен быть чек-бокс указывающий на это. А в дин коде мы уже должны обработать отправку электронной версии чека вместо печати.

Автор:  dimOn [ 23 июн 2017, 16:29 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

мапинга нет, планировалось как более упрощённая схема, чем печать чеков, т.к. эта функция скорее исключение, чем правило (например, "очереди" соответственно тоже нет)
это реально нужно, да?

Цитата:
client.gui.cashcheck.user.bov01.checkbox.mode=on Устанавливаем печатать чек безусловно, причем данная настройка влияет как на платеж так и на расход. Не все ведь расходы надо печатать.

это да, тут косяк, про эту галку помнилось, но для скорости пока оставили. надо убрать или сделать настройку для расходов отдельно? хотя там реально on никогда не нужно вроде как. ваши предложения?

Цитата:
2) Я так понимаю должны добавить типы расходов: Возврат по кассе и Возврат терминал
Теперь у нас есть два метода addPayment и addPaymentRefund, я так понимаю первый обрабатывает приход второй возврат.
В метод addPaymentRefund, передается объект Payment payment
payment.getPaymentTypeId() - будет возвращать тип расхода?
Да, всё так, в оба метода приходит Payment , но в рефунде там данные из расхода. В явадоке по клаассу прописано это.
Он просто исторически остался так называться,не хотелось пока делать полный клон объекта с теми же полями и другим названием. Наверное, его как-то переименовать надо в идеаде. Или отнаследовать просто с переименованием пары методов.

Цитата:
Но ведь не всегда нужно отправлять чек на email, это по желанию абонента. Получается при добавления платежа, должен быть чек-бокс указывающий на это. А в дин коде мы уже должны обработать отправку электронной версии чека вместо печати.
(Для электронных написано, что всегда.)
Да, сейчас нет пока такого в GUI, надо по идее добавить в приход куда-то рядом со вводом суммы от клиента итд. И тогда уже передавать это в скрипт, где вы что-то сможете сделать с ним, например сделать setCustomerEmail. Вероятно, вы не совсем поняли назначение setOnlyElCheck и понятия "электронный чек". Если вы печатаете чек по галочке при добавлении прихода - вам не надо указывать setOnlyElCheck, это указание не печатать чек на бумаге! Или так можно в магазине например? Типа не печатать на бумаге, а чтобы только ушло на мыло чек и всё? Подразумевалось что это для платежей через всякие платёжные системы будет использоваться.
setCustomerEmail будет использоваться в любом случае же, это просто добавление одного атрибута, чтобы ККМ отправил его в ОФД, а ОФД отправил на мыло чек. Возможно в дополнение к бумажному.

Автор:  dimOn [ 23 июн 2017, 16:43 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

явадоки нет пока там, вот полный интерфейс CheckMaker:
Код:
package ru.bitel.bgbilling.plugins.cashcheck.server;

import java.sql.Connection;
import java.util.Set;

import ru.bitel.bgbilling.common.BGException;
import ru.bitel.bgbilling.plugins.cashcheck.common.Payment;
import ru.bitel.bgbilling.plugins.cashcheck.common.Printer;
import ru.bitel.bgbilling.plugins.cashcheck.server.bean.Check;
import ru.bitel.bgbilling.server.util.Setup;

/**
 * Интерфейс (на самом деле абстрактный класс) для динамического кода - формирование чека, чека возврата.
 * @author dimon
 */
public abstract class CheckMaker
{
   /**
    * Инициализация.
    * Перегружать не обязательно.
    * @param setup сетап серверный.
    * @param con коннекшен.
    * @param conSlave слейв-коннекшен.
    * @throws BGException бросается при ошибке.
    */
   public void init( Setup setup, Connection con, Connection conSlave )
      throws BGException
   {
      // в принципе необязательно
   }

   /**
    * Добавление позиции в чек. Для формирования вида каждой позиции в чеке -
    * добавление каментов может каких итд итп.
    * Перегружать обязательно.
    * @param payment объект паймент (расширеный, используемый в плагине CashCheck).
    * @param check чек, который надо сформировать в этом методе.
    * @param printer текущий принтер, на который собираемся печатать.
    * @throws BGException бросается при ошибке.
    */
   public abstract void addPayment( Payment payment, Check check, Printer printer )
      throws BGException;
   
   /**
    * Завершение формирование чека, подвал чека. Для формирования вида подвала
    * чека - можно там что-то написать или просто или в зависимости от условий
    * из чека.
    * Перегружать не обязательно.
    *
    * @param cids
    *            один или несколько контрактИд. Несколько разных может быть,
    *            если договоры платежей в одном чеке зависимые друг от друга.
    * @param check
    *            чек, который надо сформировать в этом методе.
    * @param printer
    *            текущий принтер, на который собираемся печатать.
    * @throws BGException
    *             бросается при ошибке.
    */
   public void endCreate( Set<Integer> cids, Check check, Printer printer )
      throws BGException
   {
      // в принципе необязательно
   }
   
   /**
    * Добавление позиции в чек возврата платежа.
    * В отличие от платёжного чека обычно нельзя печатать строки итд, потому должно быть
    * там просто один addPayment внутри и установка доп.атрибутов (налоги, адрес покупателя итд).
    * Перегружать обязательно.
    * @param payment объект паймент (расширеный, используемый в плагине CashCheck, но там на самом деле все ид и типы для РАСХОДА из биллинга).
    * @param check чек, который надо сформировать в этом методе.
    * @param printer текущий принтер, на который собираемся печатать.
    * @throws BGException бросается при ошибке.
    */
   public abstract void addPaymentRefund( Payment payment, Check check, Printer printer )
      throws BGException;
   
   /**
    * Завершение формирование чека возврата, подвал чека возврата.
    * Возможно, для каких-то целей.
    * Перегружать не обязательно.
    *
    * @param cid
    *            один контрактИд. Несколько разных в отличие от чека платежного быть не может.
    * @param check
    *            чек, который надо сформировать в этом методе.
    * @param printer
    *            текущий принтер, на который собираемся печатать.
    * @throws BGException
    *             бросается при ошибке.
    */
   public void endCreateRefund( int cid, Check check, Printer printer )
      throws BGException
   {
      // в принципе необязательно
   }
}

Автор:  borin [ 23 июн 2017, 17:20 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

dimOn писал(а):
мапинга нет, планировалось как более упрощённая схема, чем печать чеков, т.к. эта функция скорее исключение, чем правило (например, "очереди" соответственно тоже нет) это реально нужно, да?

У нас всего один ККТ, и чек ВОЗВРАТ ПРИХОДА он будет печатать на принтер на котором печатается чек ПРИХОД, то можно оставлять как есть
dimOn писал(а):
Цитата:
client.gui.cashcheck.user.bov01.checkbox.mode=on Устанавливаем печатать чек безусловно, причем данная настройка влияет как на платеж так и на расход. Не все ведь расходы надо печатать.

это да, тут косяк, про эту галку помнилось, но для скорости пока оставили. надо убрать или сделать настройку для расходов отдельно? хотя там реально on никогда не нужно вроде как. ваши предложения?

Тут получается, всегда будет вызываться addPaymentRefund, а следовательно если будет выбран тип расхода, который не нужно печатать на ККТ (обработка в дин.коде), то на ККТ ни чего отправлено не будет. А значит тоже можно оставить как есть.
dimOn писал(а):
Да, всё так, в оба метода приходит Payment , но в рефунде там данные из расхода. В явадоке по клаассу прописано это.
Он просто исторически остался так называться,не хотелось пока делать полный клон объекта с теми же полями и другим названием. Наверное, его как-то переименовать надо в идеаде. Или отнаследовать просто с переименованием пары методов.

Ну это можно просто задокументировать, чтобы у других не было вопросов.
dimOn писал(а):
(Для электронных написано, что всегда.)
Да, сейчас нет пока такого в GUI, надо по идее добавить в приход куда-то рядом со вводом суммы от клиента итд. И тогда уже передавать это в скрипт, где вы что-то сможете сделать с ним, например сделать setCustomerEmail. Вероятно, вы не совсем поняли назначение setOnlyElCheck и понятия "электронный чек". Если вы печатаете чек по галочке при добавлении прихода - вам не надо указывать setOnlyElCheck, это указание не печатать чек на бумаге! Или так можно в магазине например? Типа не печатать на бумаге, а чтобы только ушло на мыло чек и всё? Подразумевалось что это для платежей через всякие платёжные системы будет использоваться.
setCustomerEmail будет использоваться в любом случае же, это просто добавление одного атрибута, чтобы ККМ отправил его в ОФД, а ОФД отправил на мыло чек. Возможно в дополнение к бумажному.

Вот, что мне по этому поводу ответила бухгалтер.
Цитата:
Расчеты с покупателями
При расчетах с каждым покупателем кассир-операционист обязан:
– определить итоговую сумму покупки по показаниям индикатора кассовой машины и назвать ее покупателю;
– получить деньги, четко назвать их сумму и положить эти деньги отдельно на виду у покупателя;
– провести операцию через онлайн-ККТ на полученную сумму;
– назвать сумму причитающейся сдачи и выдать ее покупателю вместе с чеком или бланком строгой отчетности.

Чек или бланк строгой отчетности выдайте:

на бумажном носителе. То есть документ распечатайте на ККТ;
и (или) в электронной форме. Документ на ККТ не печатайте, а перешлите его на абонентский номер или адрес электронной почты покупателя. Это возможно, если покупатель предоставил такую информацию до момента расчета.
Если покупатель до расчета не сообщил, что ему нужен электронный чек, вы не обязаны его оформлять.
Это следует из статьи 1.2, пункта 2 статьи 5 Закона от 22 мая 2003 г. № 54-ФЗ, пункта 4.1 Типовых правил, утвержденных письмом Минфина России от 30 августа 1993 г. № 104, пункта 5 протокола Минфина России от 24 ноября 2016 № 10.

Т.е получается печать электронного чека и|или. В принципе, если в карточке договора указан email для чеков, то можно дублировать его туда. А сейчас динкод это позволяет )

Автор:  dimOn [ 23 июн 2017, 17:32 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Цитата:
Тут получается, всегда будет вызываться addPaymentRefund, а следовательно если будет выбран тип расхода, который не нужно печатать на ККТ (обработка в дин.коде), то на ККТ ни чего отправлено не будет. А значит тоже можно оставить как есть.
ну вообще-то нет, если вы ставите галку - то получается вы дальше не сможете управлять печатать или не печатать чек. как вы в дин.коде это будете обрабатывать, поясните? И выбирать какой нужно печатать а какой нет.

про электронный чек понятно. т.е. если ввели мыло - можно ставить только электронный и всё. но это всё в скрипте каждый сам может сделать как раз. главное чтобы мыло передавалось из gui в скрипт каким-то образом, работы сейчас ведутся.


ну да, из параметров договора или ещё откуда-то -- можно уже сейчас вытягивать адрес и отправлять в ККМ при желании.

Автор:  borin [ 23 июн 2017, 18:00 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

dimOn писал(а):
Цитата:
Тут получается, всегда будет вызываться addPaymentRefund, а следовательно если будет выбран тип расхода, который не нужно печатать на ККТ (обработка в дин.коде), то на ККТ ни чего отправлено не будет. А значит тоже можно оставить как есть.
ну вообще-то нет, если вы ставите галку - то получается вы дальше не сможете управлять печатать или не печатать чек. как вы в дин.коде это будете обрабатывать, поясните? И выбирать какой нужно печатать а какой нет.

Да все верно, проверили, управление чекбоксом для расхода надо управлять отдельно от прихода. Тут попробовали сделать расход, вылезло окно сумма от клиента, нажали ок и ККТ выдал "Чек анулирован". Если нажать отмена, то расход заносится, а на ККТ ни чего не передается. Но лучше сделать раздельное управление чекбоксом для прихода и расхода.

Автор:  borin [ 23 июн 2017, 18:08 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

dimOn писал(а):
про электронный чек понятно. т.е. если ввели мыло - можно ставить только электронный и всё. но это всё в скрипте каждый сам может сделать как раз. главное чтобы мыло передавалось из gui в скрипт каким-то образом, работы сейчас ведутся.

А тут все просто connection у нас есть, id договора мы знаем, а уж вытащить нужный параметр это несколько строк, все необходимые классы есть. Каждый реализует как ему удобно.
Код:
ContractParameterManager cmp = new ContractParameterManager(connection);
cmp.getEmailParam(cid, pid);

Автор:  dimOn [ 23 июн 2017, 18:16 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

ну это не очень удобно - забивать мыло в параметры в прямом эфире. лучше, наверное, чтобы можно было при печати чека его ввести, нет? а дальше уже в скрипте делаете что хотите.

Автор:  borin [ 23 июн 2017, 18:25 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

dimOn писал(а):
ну это не очень удобно - забивать мыло в параметры в прямом эфире. лучше, наверное, чтобы можно было при печати чека его ввести, нет? а дальше уже в скрипте делаете что хотите.

Цитата:
То есть документ распечатайте на ККТ; и (или) в электронной форме. Документ на ККТ не печатайте, а перешлите его на абонентский номер или адрес электронной почты покупателя. Это возможно, если покупатель предоставил такую информацию до момента расчета.
Если покупатель до расчета не сообщил, что ему нужен электронный чек, вы не обязаны его оформлять.

Все удобно, приходит абонент, сообщает, что хочет получать электронные чеки, оператор вносит это в карточку абонента, профит. Email вбивается один раз, ИМХО очень удобно.
И еще в приложении от ФНС "Проверка чеков", есть визитная карточка, оператор сканером, сканирует штрихкод, тем самым заносит его в договор.
А вот, если абонент захочет получить чек на сотовый, честно не знаю как это выглядит, но в законе указано, что такое он может попросить.

Автор:  dimOn [ 23 июн 2017, 18:57 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

сотовый - без проблем, вместо мыла туда же вбивается номер и всё, оно уходит в ОФД там оно шлёт СМС, так уже юзают люди

Автор:  borin [ 26 июн 2017, 18:41 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Проверил отправка на email и телефон работает, параметры берутся из договора. Спасибо!
Остался только вопрос с добавлением расхода, "Печать чека возврата" не всегда нужна, но зависит от опции "Печать чека"

PS. Вдруг кому нужен готовый класс CheckMaker, могу поделиться.

Автор:  dimOn [ 27 июн 2017, 18:37 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Код:
client.gui.cashcheck.user.dimon.checkbox.refund.mode=defaultoff
client.gui.cashcheck.default.checkbox.refund.mode=defaultoff

Автор:  borin [ 27 июн 2017, 18:47 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Спасибо! Завтра протестируем )

Автор:  borin [ 30 июн 2017, 11:09 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Спасибо, все работает.
Единственно чего не хватает, это снятие отчетов с гашением, без гашения, по секциям от имени администратора. А то кассир не может снимать отчеты из интерфейса BGBilling, приходится пользоваться тест драйвером.
Код:
client.gui.cashcheck.admin.password=30

Автор:  dimOn [ 30 июн 2017, 13:04 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Хм, а почему не перелогиниться в интерфейсе BGBilling просто с паролем админским (30) в конце дня и не снять эти отчёты? Как это на всех кассах обычно и делается, собственно. В тестдрайвере вы также 30 ведь и вводите?

Автор:  borin [ 30 июн 2017, 16:00 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

dimOn писал(а):
Хм, а почему не перелогиниться в интерфейсе BGBilling просто с паролем админским (30) в конце дня и не снять эти отчёты? Как это на всех кассах обычно и делается, собственно. В тестдрайвере вы также 30 ведь и вводите?

- Лишний раз перелогиниваться, во первых лишние действия, а во вторых увеличивает шанс на ошибку, оператор может забыть потом заново зайти под собой
- При подключении к ККТ, ККТ делает отрезку чека порядка 5мм, и этот кусочек остается в самом ККТ, как мусор
- В течении дня, оператор так же делает отчеты без гашения для сверки
- Тест-драйвера запоминает пароль администратора.

Автор:  dimOn [ 30 июн 2017, 16:38 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

всё равно не уверен что это хорошая идея , как-то это кривовато выглядит

Автор:  borin [ 30 июн 2017, 17:02 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

dimOn писал(а):
всё равно не уверен что это хорошая идея , как-то это кривовато выглядит

ИМХО, если ККТ выполняет определенные команды только из под администратора, из под КАССИРА выходит ошибка, то почему бы не выполнять , данные операции изначально с повышением привилегий. И ведь это опционально, если кому то не нужно, можно не указывать пароль администратора в конфигурации, и операция будет выполнена с правами текущего пользователя.

Автор:  dimOn [ 30 июн 2017, 17:06 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

ну тогда это надо в сервер печати настройку то делать, потому что откуда клиент биллинга (да и сервер) знает какую команду с каким паролем то выполнять, тем более для каждой конкретной ккм

Автор:  dimOn [ 30 июн 2017, 17:08 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Цитата:
ИМХО, если ККТ выполняет определенные команды только из под администратора, из под КАССИРА выходит ошибка, то почему бы не выполнять , данные операции изначально с повышением привилегий.
ну как бы о том и речь, что эти команды неспроста от имени отдельных юзеров выполняются, ну и это не ошибка, получается, а просто сообщение об этом факте.
в принципе можно наверно настройку сделать.
но вообще в кассе для каждого юзера можно вроде как права настроить же как-то через родную утилиту. и в атоле и в штрихе, только не помню что именно там настраивается.

Автор:  borin [ 30 июн 2017, 17:20 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Вложение:
2017-06-30 at 16-18-48.png
2017-06-30 at 16-18-48.png [ 22.32 КБ | Просмотров: 18378 ]

Нет, в настройках указываются два пароля, один кассира, второй администратора, если операция требует повышения прав, то используется пароль администратора.

Автор:  dimOn [ 30 июн 2017, 17:52 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

не, я имею в виду, что для каждого пароля/кассира настраивается что он может сделать, как его зовут итд.

а про настройку в сервере печати всё же что скажете? как раз только сам драйвер сервера печати знает какая операция требует админского пароля. но это как-то отдельной доработкой выглядит с этим всем не связанной, пишите в HD пожалуй

Автор:  borin [ 30 июн 2017, 18:18 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

dimOn писал(а):
не, я имею в виду, что для каждого пароля/кассира настраивается что он может сделать, как его зовут итд.
а про настройку в сервере печати всё же что скажете? как раз только сам драйвер сервера печати знает какая операция требует админского пароля. но это как-то отдельной доработкой выглядит с этим всем не связанной, пишите в HD пожалуй

В тест драйвере настраивается лишь как зовут кассира и его пароль.
Вопрос лишь в том, чтобы лишь 3 отчета снимались с привилегиями администратора. Не надо лезть в драйвер.
В классе cashcheck.jar!\ru\bitel\bgbilling\plugins\cashcheck\server\CashcheckServiceImpl.class
В методах: divReport(), XReport(), ZReport(), добавить:
Код:
String defaultPassword = this.getSetup().get("client.gui.cashcheck.default.password");
String adminpass = (defaultPassword == null) ? PrinterManager.getCurrentRegistratorPassword() : defaultPassword;

Автор:  dimOn [ 01 июл 2017, 02:13 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

выглядит как костыль по запросу

Автор:  dimOn [ 03 июл 2017, 15:23 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Пара скриптов как попытка обработки онлайн-платежей на своей стороне и на своём ККМ:

http://wiki.bitel.ru/index.php/%D0%9F%D ... 0%B5%D0%B9

Автор:  dimOn [ 11 июл 2017, 13:34 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Для 5.1 тоже сделано, через события, дин.кода там нет.
В событии AddPaymentCheckEvent добавлен метод isRefund() - если это не платёж, а возврат, его надо проверять и формировать чек как раньше либо новый чек возврата (ну там один addPayment видимо надо сделать)
Очереди нету, понятное дело. Ну и привязки в конфиге нету (как и в новых версиях).
В EndCreateCheckEvent не стали ничего добавлять, он не будет вызываться, там нечего делать, все параметры в AddPaymentCheckEvent делайте, он всё равно ровно 1 раз вызывается для возвратов всегда.

Автор:  Cromeshnic [ 24 июл 2017, 08:00 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

Хм, а может лучше сделать возвраты не через расходы, а через платежи других типов? Ну или опционально хотя бы.
Так было бы удобнее в отчётах выборки делать: в данном случае платежи и возвараты в одной "корзинке" должны лежать в отчётности.
Сейчас делаем веб-сервис для сверки платежей с 1С: раньше просто выбирал платежи, а сейчас придётся костылить "...а также возьми некоторые расходы".

Автор:  dimOn [ 24 июл 2017, 12:41 ]
Заголовок сообщения:  Re: реализованы возвраты, новый интерфейс для дин.кода

ну как так через платежи? денег то уменьшается с возвратом.
платежи с отрицательной суммой?

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/