CftClub.ru
Клуб специалистов ЦФТ-Банк

Не проводятся автоматически коммиссии Faktura
На страницу Пред.  1, 2
 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение
Предыдущая тема :: Следующая тема  
Автор Сообщение
arkazar
Участник со стажем


Вступление в Клуб: 27.09.2010
СообщениеВт Июн 18, 2013 13:55    Ответить с цитатой
Полезность: Нет оценки
Цитата:
то документ комиссии не должен уходить на подтверждение.


а как это реализовать, не подскажете?
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеВт Июн 18, 2013 14:04    Ответить с цитатой
Полезность: Нет оценки
Реализуется некая операция в любом типе, я делаю групповые в набором параметров идентичных параметрам ХУКа.
Далее в теле операции описывается функционал.
Затем в справочнике "Расширения и перекрытия. Точки вызова" данная операция фиксируется в массиве "Методы" соответствующей точки вызова.
_________________
всегда есть как минимум 2 выхода
arkazar
Участник со стажем


Вступление в Клуб: 27.09.2010
СообщениеВт Июн 18, 2013 14:18    Ответить с цитатой
Полезность: Нет оценки
Меня в смысле интересует сам функционал. Как перехватывать коммиссию, чтобы она не уходила на подтверждение?

Последний раз редактировалось: arkazar (Вт Июн 18, 2013 15:17), всего редактировалось 1 раз
Alexsey
Эксперт


Вступление в Клуб: 06.09.2007
СообщениеВт Июн 18, 2013 14:45    Ответить с цитатой
Полезность: Нет оценки
arkazar пишет:
Меня в смысле интересует сам функционал. Как перехватывать комиссию, чтобы она не уходила на подтверждение?

В Функционале описываете в каких случаях система должна останавливать документы комиссии на подтверждение, все остальное пройдет без задержек.

Пример:
Код:

Type Docum is
      select IdDoc
            ( IdDoc                                       : Id
            , IdDoc%state                                 : DocState

            , IdDoc.[HISTORY_STATE]                           : HistoryState
            , IdDoc.[DOCUMENT_USER]                           : CreateUser
            , IdDoc.[VID_DOC].[TYPE_DOC]                        : TypeDoc
            , IdDoc.[KL_DT].[0]                              : kl_dt_0
            , IdDoc.[KL_KT].[0]                              : kl_kt_0
            )
         in ::[MAIN_DOCUM] all
       where IdDoc = DOCUMENT;
   
   IdDoc       Docum%rowtype;
   vUser    ref [USER];
   HState       [HISTORY_STATES];
   ST_FORM       string(16) := 'FORM';
   ST_PODTV    string(16) := 'PODTV';
   ST_WAIT       string(16) := 'WAIT_DVALUT';
   vIsPodtvDt   boolean;
   vIsPodtvKt   boolean;
begin
   if P_MESS = 'BEGIN' then   
      vUser := stdlib.userid;
      
      vIsPodtvDt := false;
      vIsPodtvKt := false;
      
      for CurDoc in cursor Docum loop
         IdDoc := CurDoc;
         exit;
      end loop;
      
      -- Проверка необходимости подтверждения документа по счету в продукте "Обслуживание счетов банка"
      vIsPodtvDt := is_control(ACCOUNT_DT, true); -- счет Дк
      vIsPodtvKt := is_control(ACCOUNT_CT, false); -- Счет Кт
      
      -- Считывание настройки ребуется ли подтверждение документа в продукте "Обслуживание счетов банка"
      if IdDoc.TypeDoc = [TYPE_PAYDOC]([ CODE] = 'MAIN_DOCUM') then
         if IdDoc.kl_dt_0 = 1 and IdDoc.kl_kt_0 = 1 then -- Внутренний
            if not ::[BANK].[GET_BOOL_TUNING]('I_PODTV', DOCUMENT.[DEPART]) then
               ST_PODTV := null;
            end if;
         else
            if not ::[BANK].[GET_BOOL_TUNING]('PODTV', DOCUMENT.[DEPART]) then
               ST_PODTV := null;
            end if;
         end if;            
      elsif IdDoc.TypeDoc = [TYPE_PAYDOC]([ CODE] = 'KASSA_DOCUM') then
         if not ::[BANK].[GET_BOOL_TUNING]('K_PODTV', DOCUMENT.[DEPART]) then
            ST_PODTV := null;
         end if;
      elsif IdDoc.TypeDoc = [TYPE_PAYDOC]([ CODE] = 'OUTBALANCE_DOC') then
         if not ::[BANK].[GET_BOOL_TUNING]('V_PODTV', DOCUMENT.[DEPART]) then
            ST_PODTV := null;
         end if;
      end if;
      
      if not vIsPodtvDt and not vIsPodtvKt then
         ST_PODTV := null;
      end if;
      
      -- Постановка документа в состояние "На подтверждение".
      if IdDoc.DocState in (ST_FORM, ST_WAIT, 'TO_RKO_CUR')  and ST_PODTV is not null then
         HState.[STATE] := ST_PODTV;
         DOCUMENT%state := ST_PODTV;
         INSERT HState INTO IdDoc.HistoryState;
         if HState.[STATE] != DOCUMENT%state then                  
            return;
         end if;
      end if;
      
      
   end if; --P_MESS = 'BEGIN'
end;

_________________
всегда есть как минимум 2 выхода
prog
Эксперт


Вступление в Клуб: 03.03.2008
СообщениеПн Июн 24, 2013 07:51   Re: Не проводятся автоматически коммиссии Faktura Ответить с цитатой
Полезность: Нет оценки
arkazar пишет:
Добрый день!

Подскажите, не могу понть в чём проблема. Через раз проводятся коммиссии по платежам Faktura. Используем дистрибутивный функционал.

Ситуация в следующем, создаётся документ вручную, комиссия создаётся под пользователем фактура, а основное документ под тем кто создал руками. При завершении автоматической обработки документов, основной документ в статусе "проведён", а комиссия в статусе "на подтверждении".

Подскажите хоть куда копать Smile спасибо.


В версии 13.4 была ошибка. Не проводились автоматически документы по фактуре (в том числе и комиссии)
arkazar
Участник со стажем


Вступление в Клуб: 27.09.2010
СообщениеСр Июн 26, 2013 16:16    Ответить с цитатой
Полезность: Нет оценки
prog, Alexsey. Спасибо!
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Настройка и сопровождение Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах