Создание в RS-Retail нефинансовых операций
Скачать (mac-файл; Размер - 4305)Обсудить в форуме
Описание
Создание в RS-Retail нескольких нефинансовых операций на основании нефинансовой операции-образца, которые "привязаны" к "объединяющей" операции.
Текст примера
import deprintr; file sb_algop ("sb_algop.dbt") write; file sb_typop ("sb_typop.dbt") write; const NullDate = date (0,0,0); const EtlNum = 321; const UpEtlNum = 300; const StartNumCurrent = 360; array NameOpers; macro InitNameOpers () NameOpers (0) = "Комиссии по ПК GOLD"; NameOpers (1) = "В стоп-лист"; NameOpers (2) = "Перевыпуск PIN"; NameOpers (3) = "Опротестование операции"; NameOpers (4) = "Запрос подтверждения"; NameOpers (5) = "Изменение лимита"; NameOpers (6) = "Блокировка карты"; NameOpers (7) = "Перекодировка карты"; NameOpers (8) = "Перевыпуск карты"; NameOpers (9) = "Информация по СМС"; NameOpers (10) = "Информация по И-нет"; NameOpers (11) = "Информация по телеф."; NameOpers (12) = "Информация (все)"; NameOpers (13) = "Получение выписки"; NameOpers (14) = "Повторная выписка"; NameOpers (15) = "Перерасход лимита"; /* 192 USD Получение информации по СМС 193 USD Получение информации по И-нет 194 USD Получение информации по телеф 195 USD Получение информации (все) 196 RUR Получение выписки 197 USD Повторное получение выписки 198 RUR Перерасход лимита */ end; Macro DelNotFinOp (IsCur, Kind) var stat, NumCurrent = StartNumCurrent, MaxCount = ASize (NameOpers) + StartNumCurrent, ErrStat = ""; sb_typop.IsCur = IsCur; sb_typop.Kind = Kind; sb_typop.NumOpert = NumCurrent; stat = GetEQ (sb_typop); if (stat) delete (sb_typop); end; status (ErrStat); NumCurrent = NumCurrent + 1; while (NumCurrent < MaxCount) sb_typop.IsCur = IsCur; sb_typop.Kind = Kind; sb_typop.NumOpert = NumCurrent; stat = GetEQ (sb_typop); if (stat) delete (sb_typop); end; status (ErrStat); sb_algop.IsCur = IsCur; sb_algop.Kind = Kind; sb_algop.NumOpert = NumCurrent; sb_algop.NumStepAlg = 0; sb_algop.BegDate = date (0,0,0); stat = GetGE (sb_algop); while (stat and (sb_algop.IsCur == IsCur ) and (sb_algop.Kind == Kind ) and (sb_algop.NumOpert == NumCurrent) ) stat = delete (sb_algop); status (ErrStat); stat = next (sb_algop); end; NumCurrent = NumCurrent + 1; end; end; macro InsNotFinOp (IsCur, Kind) var stat, NumCurrent = StartNumCurrent, MaxCount = ASize (NameOpers) + StartNumCurrent, ErrStat = ""; sb_typop.IsCur = IsCur; sb_typop.Kind = Kind; sb_typop.NumOpert = EtlNum; stat = GetEQ (sb_typop); sb_typop.NumOpert = NumCurrent; sb_typop.UpNumOpert = 0; sb_typop.czNameAlg = NameOpers (NumCurrent - StartNumCurrent); stat = insert (sb_typop); status (ErrStat); NumCurrent = NumCurrent + 1; while (NumCurrent < MaxCount) sb_typop.IsCur = IsCur; sb_typop.Kind = Kind; sb_typop.NumOpert = EtlNum; stat = GetEQ (sb_typop); sb_typop.NumOpert = NumCurrent; sb_typop.UpNumOpert = 300/*StartNumCurrent*/; sb_typop.czNameAlg = NameOpers (NumCurrent - StartNumCurrent); stat = insert (sb_typop); status (ErrStat); sb_algop.IsCur = IsCur; sb_algop.Kind = Kind; sb_algop.NumOpert = EtlNum; sb_algop.NumStepAlg = 0; sb_algop.BegDate = date (0,0,0); stat = GetGE (sb_algop); while (stat and (sb_algop.IsCur == IsCur ) and (sb_algop.Kind == Kind ) and (sb_algop.NumOpert == EtlNum) ) GetPos (sb_algop); sb_algop.NumOpert = NumCurrent; sb_algop.BegDate = date (0,0,0); /* MsgBox ("sb_algop.BegDate ", sb_algop.BegDate); */ stat = insert (sb_algop); status (ErrStat); GetDirect (sb_algop); stat = next (sb_algop); end; NumCurrent = NumCurrent + 1; end; end; InitNameOpers (); /* DelNotFinOp (0, "Шаблонный"); DelNotFinOp (1, "Шаблонный"); */ InsNotFinOp (0, "Шаблонный"); InsNotFinOp (1, "Шаблонный");