Check301(oe2,oe1,if(summa>0,.t.,.f.),vt) ***************** Func Check301(oe1,oe2,siges,toksi) local ret:=.f. local olina:=padl(alltrim(str(oe1*100,9)),9,"0") local olina1:=padl(alltrim(str(oe1*100,10)),10,"0") local olina2:=padl(alltrim(str(oe2*100,10)),10,"0") local old_nch:="" local pris:="" local xbva local new_nch:="" local use_ok:=.f. local old_scr:=savescreen(10,20,13,61) local old_color:=setcolor() local tvr:='Продтовары ' do while .t. setcolor("b/b") v_box(10,20,12,60,1,1) @ 11,21 say padc("Передача данных в кассу.....",40) color "gr+/b" close_301() if open_301() if KasPasw() millisec(kas_zad) com_send(kas_port,CHR(253)+'CONF'+CHR(5)+CHR(254)) millisec(kas_zad) pris:=COM_READ(kas_port) xbva:=at('CONF',pris) pris:=substr(pris,xbva) old_nch:=val(substr(pris,95,12)) if v_kassa('PREP','1') if !siges v_kassa('FINF',"Возврат денег") endif if v_kassa(if(siges,'FISC','BFIS'),; if(siges,if(toksi==1,tvr,if(toksi==2,tvr,'Аренда ')),'покупателю '),; olina,; olina,'00000','1','0',; 'А12000','000000','000000','000000',; '000000','000000','000000','000000') com_send(kas_port,CHR(253)+'CONF'+CHR(5)+CHR(254)) millisec(kas_zad) pris:=COM_READ(kas_port) xbva:=at('CONF',pris) pris:=substr(pris,xbva) new_nch:=val(substr(pris,95,12)) if new_nch-old_nch==1 use_ok:=.t. else v_kassa('CANC') endif if v_kassa('COMP',if(siges,olina1,'0000000000'),if(siges,'0000000000',olina1),; '0000000000','0000000000','0000000000',olina2) if use_ok nwzntstw(new_nch,siges,toksi) restscreen(10,20,13,61,old_scr) ok() else bad() restscreen(10,20,13,61,old_scr) soob('Чек не проведен.......','r/r','gr+/r') endif endif endif endif endif endif close_301() exit enddo restscreen(10,20,13,61,old_scr) setcolor(old_color) return ret ******************** Func Open_301(tilik) local ret:=.f. local prisen:="" local popi_1:=0 local dtqad:={'WAIT','DONE','READY','SYNC'} *set cons on *setcolor('w/n') if COM_OPEN(kas_port,255,255) com_dtr(kas_port,.t.) if COM_INIT(kas_port,kas_speed,"E",8,2) com_dtr(kas_port,.t.) *MILLISEC(5) com_send(kas_port,chr(85)) MILLISEC(2) com_send(kas_port,chr(85)) MILLISEC(2) com_send(kas_port,chr(85)) MILLISEC(2) com_send(kas_port,chr(253)+chr(85)+chr(254)) ******* ************ do while .t. if tilik#nil MILLISEC(kas_zad) com_send(kas_port,CHR(253)+'SYNC'+CHR(5)+CHR(254)) endif com_send(kas_port,CHR(253)+'SYNC'+CHR(5)+CHR(254)) MILLISEC(200) prisen:=COM_READ(kas_port) if dtqad[2]$prisen .and. dtqad[3]$prisen .and. dtqad[4]$prisen ret:=.t. exit else popi_1++ if popi_1>15 if msg_z({"Связь не установлена !",; "Возможно закончилась бумага или рулон",; "установлен не верно........",; "Или касса не включена.",; " ",; "Повторить попытку связи еще раз ?"},,"Внимание")#1 exit endif popi_1:=0 MILLISEC(2) com_send(kas_port,chr(85)) MILLISEC(2) com_send(kas_port,chr(85)) endif endif enddo else soob("Не могу инициализировать порт.......","r/r","gr+/r") endif else soob("Порт не доступен.......","r/r","gr+/r") endif return ret
|