Приём платежей через ПочтаБанк

Закрыто
Ternia
Администратор
Сообщения: 62
Зарегистрирован: 14 дек 2017, 16:24

Приём платежей через ПочтаБанк

Сообщение Ternia » 25 июл 2018, 13:44

Выделите приведённый ниже код и вставьте его в формулярный раздел с заменной

Изображение


*** НАЧАЛО КОДА ******************************************************************************
*** ИМПОРТ *** ПОЧТА РОССИИ

УЧАСТОК="все участки"
СПИСОК=0
ЛицСчёт(0)
sele ЛицСчёт
inde on lic to tmp_lic

DirImp=ALLTRIM(s_org.dir_imp)

dat=1
do whil dat=1
do datimp1
endd
=MESSAGEBOX("Приём платежей окончен!","",64,1500)

*** процедуры ***
proc datimp1
filb=sys(2000,DirImp+"*.csv")
IF LEN(ALLT(FILB))>0
FILC=DirImp+ALLT(filb)
do eee
DELE FILE "&FILC"
ELSE
dat=0
ENDI

proc eee

CREATE TABLE tmp_xls (txt c(250) NULL, lic c(10), summ n(12,2))
sele tmp_xls

#Define xlCenter -4108
#Define xlSolid 1
#Define xlEdgeLeft 7
#Define xlEdgeTop 8
#Define xlEdgeBottom 9
#Define xlEdgeRight 10
#Define xlInsideVertical 11
#Define xlInsideHorizontal 12
#Define xlThin 2
#Define xlThick 4
#Define xlMedium -4138
#Define xlDouble -4119
Local lcPath, loExcel, lnRow
loExcel = Createobject("Excel.Application")

With loExcel
.Visible = .t.
.WorkBooks.open("&FILC")
.sheets(1).select
REESTR=str(.cells(1,2).Value,12)
REESTR=allt(REESTR)
DATE_R=.cells(2,2).Value

for i=5 to 999
ttt=.cells(i,1).Value
ttt=allt(ttt)
if left(ttt,3)="Общ"
i=1000
else
sele tmp_xls
appe blank
repl tmp_xls.txt with ttt
endi
endf
.WorkBooks.close()
.quit
Endwith
sele tmp_xls
scan
P1=AT(',"',tmp_xls.txt,1)
P2=AT(',"',tmp_xls.txt,2)+2
P3=AT(',"',tmp_xls.txt,3)
repl tmp_xls.lic with allt(left(tmp_xls.txt,P1-1))
ttt=SUBSTR(tmp_xls.txt,P2,P3-P2-1)
ttt=strtr(ttt,",",".")
repl tmp_xls.summ with val(ttt)
ends

СТРАНИЦА(0,15,10,10,10,"txt1") && СТРАНИЦА(A,B,C,D,E) , где A (0-книга/1-альбом), ПОЛЯ в мм: B-левое, C-верхнее, D-правое, E-нижнее
@PROW(), 0 say " \par \f0 Приём оплаты через "+allt(s_org.nam_org)+" "+REESTR
@PROW(), 0 say " \par \fs16 "
ssum=0
sele tmp_xls
scan
if val(tmp_xls.lic)>0
лс=right(allt(tmp_xls.lic),6)
ty=year(DATE_R)
tm=month(DATE_R)
if tm=1
tm=12
ty=ty-1
else
tm=tm-1
endi

@PROW(), 0 say " \par л/с "+лс+" "+SPACE_HOM(str(tmp_xls.summ,12,2),10)

t4=val(right(лс,5))
sele ЛицСчёт
seek t4
if found()
T2=VAL(LEFT(лс,1))
_m_fo=DBF_NAM(t4,"OPL",1,2)
SELECT 0
use &_m_fo ALIAS ТабОплата
SET ORDER TO 1
a=SYS(2015)
b=1
DO whil b=1
SEEK a
IF ! FOUND()
b=0
ENDIF
a=SYS(2015)
endd
=add()
REPLACE lic WITH t4, cod_opl WITH a, cod_grp WITH t2, nmes WITH tm, year WITH ty
REPLACE summ WITH tmp_xls.summ, d_opl WITH DATE_R, cod_org WITH s_org.cod_org, prot WITH REESTR
use
else
@PROW(), 0 say " ОШИБКА!"
endi
ssum=ssum+tmp_xls.summ
endi
ends
use
@PROW(), 0 say " \par \fs24 "
@PROW(), 0 say " \par Итого на сумму:"+str(ssum,12,2)

ПЕЧАТЬ("txt1") &&Вывод формы
=MESSAGEBOX("Продолжить приём","",64)

******* КОНЕЦ КОДА **************************************

Закрыто