home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.texkom.ru
/
ftp.texkom.ru.tar
/
ftp.texkom.ru
/
kkm1
/
atol2lf.prg
< prev
next >
Wrap
Text File
|
2007-07-30
|
12KB
|
388 lines
LPARAM tKass,tLastSession
LOCAL i
FOR i=1 TO 100
FCLOSE(i)
ENDF
LOCAL lcProgram
PUBLIC oMyVar
* ╧≤≥ⁿ Ω LF. ╚τ φσσ τα∩≤±Ωα■≥± Γ±σ ⌠≤φΩ÷ΦΦ.
oMyVar=CREATEOBJECT('MyVar')
*CLOSE DATABASES ALL
LOCAL lnfh
lnfh=0
TRY
lnfh=FCREATE(oMyVar.cFlag)
CATCH
ENDTR
IF lnfh<=0
WAIT WINDOW [╧≡επ≡α∞∞α ≤µσ τα∩≤∙σφα] TIMEOUT 10
RETURN .F.
ENDIF
LOCAL oErr
TRY
setset()
IF !EMPTY(tKass)
=DoSale(tKass,tLastSession)
ELSE
FOR i=1 TO 3
=DoSale(i)
ENDFOR
ENDIF
CATCH TO oErr
* WAIT WINDOW [╬°ΦßΩα!!!] TIMEOUT 10
errmes='"╬°ΦßΩα ∩≡Φ Φ∞∩ε≡≥σ ∩≡εΣαµ: '+ [ Error: ] + STR(oErr.ERRORNO) +' | '+;
[ LineNo: ] + STR(oErr.LINENO) +' | '+;
[ Message: ] + oErr.MESSAGE +' | '+;
[ Procedure: ] + oErr.PROCEDURE +' | '+;
[ Details: ] + oErr.DETAILS +' | '+;
[ StackLevel: ] + STR(oErr.STACKLEVEL) +' | '+;
[ LineContents: ] + oErr.LINECONTENTS +' | '+;
[ UserValue: ] + oErr.USERVALUE
* WAIT WINDOW ([╬°ΦßΩα!!!]+CHR(13)+STRTRAN(errmes,'|',CHR(13))) TIMEOUT 10
MESSAGEBOX(STRTRAN(errmes,'|',CHR(13)),4096,'',10000)
*!* launchappandwait('net send adm-4 '+errmes)
*!* *!* launchappandwait('net send adm-1 '+errmes)
*!* launchappandwait('net send adm-3 '+errmes)
ENDTR
FCLOSE(lnfh)
PROCEDURE DoQuit
CLEAR EVENTS
QUIT
ENDPROC
PROCEDURE DoSale
LPARAM nKas,tLastSession
LOCAL lcViddoc,lcMember,lcPath,lcUser,ltTime,lcNomdoc,lnNomoper,lcDocument,lnSumma(1)
lcUser='Auto'
ltTime=DATETIME()
lcFlagExport=oMyVar.FlagExport
lcFileExport=oMyVar.FileExport
* nKas=2
lcPath=GetIni('kkm_sale.ini','Setting','─Φ≡σΩ≥ε≡Φ εß∞σφα Ωα±±√ '+TRANSFORM(nKas),"\\cash"+TRANSFORM(nKas)+"\exchg\",.T.)
IF EMPTY(lcPath)
msgstop('═σ ε∩≡σΣσδσφα ΣΦ≡σΩ≥ε≡Φ εß∞σφα',,5000)
RETURN .F.
ENDIF
lcFlagExport=ADDBS(lcPath)+lcFlagExport
lcFileExport=ADDBS(lcPath)+lcFileExport
DELETE FILE (lcFileExport)
IF !FILE(lcFlagExport)
lnFileFlag=FCREATE(lcFlagExport)
if lnFileFlag>0
*!* IF !EMPTY(tLastSession)
*!* =FPUTS(lnFileFlag,'$$$LASTSESSIONTRANSACTIONS')
*!* ENDIF
*!* =FPUTS(lnFileFlag,'$$$CURSESSIONTRANSACTIONS')
=FPUTS(lnFileFlag,'$$$TRANSACTIONSBYDATETIMERANGE')
if type('pdBeg')<>'D' or empty(pdbeg)
pdBeg=date()-1
pdEnd=date()
endif
=FPUTS(lnFileFlag,TRANSFORM(DAY(pdBeg))+'.'+TRANSFORM(MONTH(pdBeg))+'.'+TRANSFORM(YEAR(pdBeg))+' 00:00:00; '+;
TRANSFORM(DAY(pdEnd))+'.'+TRANSFORM(MONTH(pdEnd))+'.'+TRANSFORM(YEAR(pdEnd))+' 23:59:59;')
=FCLOSE(lnFileFlag)
else
msgstop('═σ ∞επ≤ ±ετΣα≥ⁿ ⌠αΘδ-⌠δαπ'+lcFlagExport,,5000)
RETURN .F.
endif
ENDIF
LOCAL i,lnTimeOut
i=1
lnTimeOut=10
DO WHILE FILE(lcFlagExport)
WAIT WINDOW [╬µΦΣαφΦσ Γ√π≡≤τΩΦ ]+lcPath nowait noclear
IF inkey(lnTimeOut,'M')=27 AND FILE(lcFlagExport)
wait clear
msgstop('╬µΦΣαφΦσ Γ√π≡≤τΩΦ ∩≡σ≡Γαφε',,5000)
RETURN .F.
ENDIF
wait clear
i=i+1
IF i>18
?[╬µΦΣαφΦσ Γ√π≡≤τΩΦ ∩≡σ≡Γαφε ]+lcPath
RETURN .F.
ENDIF
ENDDO
IF FILE(lcFileExport) AND safeuse('c_oper.dbf',,,.T.) AND safeuse('c_docs.dbf',,,.T.) AND safeuse('k_kkm',,,.T.)
LOCAL lnFile,laString(24),lcStr
lnFile=FOPEN(lcFileExport,0)
SELECT CD.nomdoc,CD.kkm,CD.lenta,CD.DATA,CD.SUMMA AS summach,SPACE(254) AS COMMENT,CD.skid,CD.pokup,CD.USER,CD.TIMESTAMP,CD.ID,CD.nomer,CD.skidsum,;
co.kodtov,co.NAME,co.kolvo,co.cena,co.nomtov,co.SUMMA,co.nom,co.cenap,SPACE(20) AS barkod;
FROM c_docs CD INNER JOIN c_oper co ON CD.nomdoc=co.nomdoc;
WHERE .F.;
INTO CURSOR NewChecks READWR
SELECT * FROM NewChecks INTO CURSOR tmpcheck READWR
lnKodTovLen=LEN(NewChecks.kodtov)
&&╧≡ε∩≤±Ωασ∞ ταπεδεΓεΩ
LOCAL i
FOR i=1 TO 3
lcStr=FGETS(lnFile)
ENDF
DO WHILE !FEOF(lnFile)
laString=''
lcStr=FGETS(lnFile)
SPLIT(@laString,lcStr,';')
*lnKKM=VAL(laString(5))
lnKKM=m.nKas
lnKassirID=VAL(laString(7))
ltDate=CTOT( laString(2)+' '+laString(3))
lnNomer=VAL(laString(6))
safeuse('k_kassir')
WAIT WINDOW [╚∞∩ε≡≥ ≥≡αφταΩ÷ΦΦ #]+laString(1) NOWAIT
LOCATE FOR kassirid=lnKassirID
IF FOUND()
lcKassir=k_kassir.kassirNAME
ELSE
lcKassir='╩α±±Φ≡ '+TRANSFORM(lnKassirID)
ENDIF
DO CASE
CASE INLIST(laString(4),'42','57') &&╬≥Ω≡√≥Φσ ≈σΩα, ┬ε±±≥αφεΓδσφΦσ ε≥δεµσφφεπε ≈σΩα
SELE tmpcheck
ZAP
CASE INLIST(laString(4),'55') &&╟αΩ≡√≥Φσ ≈σΩα
SELECT tmpcheck
lnLenta=VAL(laString(14))
UPDATE tmpcheck SET;
DATA = ltDate,;
kkm = lnKKM,;
pokup = laString(8),;
USER = lcKassir,;
summach = VAL(STRTRAN(laString(12),',','.')),;
lenta= lnLenta,;
nom=RECNO(),;
ID=lnKKM*100000000+lnLenta*100000+lnNomer
SELECT NewChecks
APPEND FROM DBF('tmpcheck')
CASE INLIST(laString(4),'11') &&╨σπΦ±≥≡α÷Φ
SELECT tmpcheck
APPEND BLANK
REPLACE ;
DATA WITH ltDate,;
kkm WITH lnKKM,;
USER WITH lcKassir,;
lenta WITH VAL(laString(14)),;
nomer WITH VAL(laString(6)),;
kodtov WITH PADL(ALLTRIM(laString(8)),lnKodTovLen,'0'),;
cenap WITH VAL(STRTRAN(laString(10),',','.')),;
kolvo WITH VAL(STRTRAN(laString(11),',','.')),;
cena WITH VAL(STRTRAN(laString(15),',','.')),;
SUMMA WITH VAL(STRTRAN(laString(16),',','.')),;
barkod WITH ALLTRIM(laString(19))
CASE INLIST(laString(4),'12') &&╤≥ε≡φε
lckodtov = PADL(ALLTRIM(laString(8)),lnKodTovLen,'0')
lnKolvo = VAL(STRTRAN(laString(11),',','.'))
lcbarkod = ALLTRIM(laString(19))
SELECT tmpcheck
LOCATE FOR kodtov=lckodtov AND barkod=lcbarkod
IF FOUND()
REPLACE kolvo WITH kolvo+lnKolvo IN tmpcheck
IF tmpcheck.kolvo=0
DELETE
ENDIF
ELSE
SELECT tmpcheck
APPEND BLANK
REPLACE ;
DATA WITH ltDate,;
kkm WITH lnKKM,;
USER WITH lcKassir,;
lenta WITH VAL(laString(14)),;
nomer WITH VAL(laString(6)),;
kodtov WITH PADL(ALLTRIM(laString(8)),lnKodTovLen,'0'),;
cenap WITH VAL(STRTRAN(laString(10),',','.')),;
kolvo WITH VAL(STRTRAN(laString(11),',','.')),;
cena WITH VAL(STRTRAN(laString(15),',','.')),;
SUMMA WITH VAL(STRTRAN(laString(16),',','.')),;
barkod WITH ALLTRIM(laString(19))
ENDIF
CASE INLIST(laString(4),'37') &&╤ΩΦΣΩα %
SELECT tmpcheck
UPDATE tmpcheck SET;
skid=VAL(STRTRAN(laString(11),',','.')),;
skidsum = VAL(STRTRAN(laString(12),',','.'))
ENDCASE
ENDDO
FCLOSE(lnFile)
* DELE FILE(lcFileExport)
WAIT CLEAR
LOCAL ldDate
ldDate=DATETIME()
SELECT * FROM NewChecks nc WHERE !EXIST(SELE * FROM c_docs CD WHERE ID=nc.ID AND lenta=nc.lenta AND CD.kkm=nc.kkm) INTO CURSOR NewChecks READWR
SELECT DISTI nomdoc,ID,nomer,kkm,lenta,DATA,summach AS SUMMA,skidsum,ldDate TIMESTAMP,skid,USER,COMMENT,pokup;
FROM NewChecks ;
INTO CURSOR checks READWRITE ;
ORDER BY 2
ALTER TABLE checks ALTER COMMENT m
REPLACE ALL COMMENT WITH ALLTRIM(COMMENT)
SELECT DISTI kkm FROM checks INTO CURSOR kkms
SELECT DISTI kkm FROM NewChecks INTO CURSOR kkms
*!* SELECT k1.kkm,k2.kkm netnum;
*!* FROM k_kkm k2 INNER JOIN kkms k1 ON k2.serialno=TRANSFORM(k1.kkm);
*!* INTO CURSOR newkkms
*!* USE IN kkms
*!* SCAN
*!* UPDATE NewChecks SET kkm=newkkms.netnum WHERE kkm=newkkms.kkm
*!* ENDSCAN
*!* USE
LOCAL lnNomDoc
lnNomDoc=INT(VAL(getnkey('GEP_SETU','C_DOCS','NOMDOC','C',.F.,RECCOUNT('checks'))))-1
SELECT checks
REPLACE ALL nomdoc WITH PADL(lnNomDoc+RECNO(),10,'0')
SELECT ch.nomdoc,nc.nom,ch.kkm,nc.kodtov,nc.nomtov,nc.nomer,;
k.NAME,nc.kolvo,;
nc.cena,nc.SUMMA,nc.cenap;
FROM NewChecks nc INNER JOIN checks ch ON nc.ID=ch.ID;
LEFT JOIN k_kodtov k ON nc.kodtov=k.kodtov;
ORDER BY 1,2;
INTO CURSOR items READWRITE
SELECT items
LOCATE FOR ISNULL(NAME)
IF FOUND()
*** ╬ßφεΓδσφΦσ Φτ∞σφσφφ√⌡ ΩεΣεΓ
ldModDate=DATE()-1
SELECT * FROM kod_ch WHERE TABLE='k_kodtov' AND TIMESTAMP>=ldModDate INTO CURSOR modkodtov
SELECT * FROM items WHERE ISNULL(NAME) INTO CURSOR errkodtov
SELECT errkodtov
SCAN
IF LOCATE('modkodtov','oldval',errkodtov.kodtov) AND LOCATE('k_kodtov','kodtov',modkodtov.newval)
UPDATE items SET kodtov=modkodtov.newval, NAME=k_kodtov.NAME WHERE kodtov=errkodtov.kodtov
ENDIF
ENDSCAN
UPDATE items SET NAME='' WHERE ISNULL(items.NAME)
************ ╩εφσ÷ εßφεΓδσφΦ
ENDIF
WAIT WINDOW '─εßαΓδ ■ ≥εΓα≡ ∩ε ≈σΩα∞' NOWAIT NOCLEAR
SELECT c_oper
APPEND FROM DBF('items')
WAIT WINDOW '─εßαΓδ ■ φεΓ√σ ≈σΩΦ' NOWAIT NOCLEAR
SELECT c_docs
APPEND FROM DBF('checks')
cacheclear()
SELECT pokup,CNT(*) ncheck,SUM(SUMMA) SUMMA,MAX(TTOD(DATA)) DATA;
FROM checks WHERE !EMPTY(pokup) GROUP BY 1 INTO CURSOR chs
SELECT pokup,CNT(*) npok;
FROM NewChecks WHERE !EMPTY(pokup) GROUP BY 1 INTO CURSOR poks
IF _TALLY>0
IF USED('ToUpdateDiscount')
INSERT INTO ToUpdateDiscount;
SELECT ch.*,p.npok;
FROM chs ch INNER JOIN poks p ON ch.pokup=ch.pokup
ELSE
SELECT ch.*,p.npok;
FROM chs ch INNER JOIN poks p ON ch.pokup=ch.pokup;
INTO CURSOR ToUpdateDiscount READWRITE
ENDIF
ENDIF
USE IN chs
USE IN poks
USE IN items
USE IN checks
ENDIF
*╬ßφεΓδσφΦσ ±≤∞∞ Γ ΣΦ±Ωεφ≥φ√⌡ Ωα≡≥α⌡
IF USED('ToUpdateDiscount') AND RECCOUNT('ToUpdateDiscount')>0
SELECT pokup,SUM(SUMMA) SUMMA,MAX(DATA) DATA,SUM(ncheck) ncheck,SUM(npok) npok;
FROM ToUpdateDiscount GROUP BY 1 INTO CURSOR ToUpdateDiscount
LOCAL loDiscount
SCAN
IF !LOCATE('discount','id',pokup)
APPEND BLANK
REPLACE ID WITH ToUpdateDiscount.pokup,DATA WITH ToUpdateDiscount.DATA
ENDIF
safeclose('curDictVal')
SELECT * FROM discount WHERE ID=ToUpdateDiscount.pokup INTO CURSOR curDictVal READWRITE
REPLACE SUMMA WITH SUMMA+ToUpdateDiscount.SUMMA,;
lastdate WITH ToUpdateDiscount.DATA,;
npokup WITH npokup+ToUpdateDiscount.npok,;
ncheck WITH ncheck+ToUpdateDiscount.ncheck,;
ACTIVE WITH .T.
* ▌≥α Ωα≡≥ε≈Ωα φσ φαΩε∩Φ≥σδⁿφα , α ∩≡ε±≥ε φα⌡εΣΦ≥± φα 20-Ωσ, ≈≥εß ΣαΓα≥ⁿ µσ±≥Ω≤■ ±ΩΦΣΩ≤;
*+Ωα≡≥ε≈Ωα ßστφαδⁿφεπε ΩδΦσφ≥α Γ Ωα⌠σ+
* Ωα≡≥√ Φφσ≥ ∞απατΦφα
IF !INLIST(ToUpdateDiscount.pokup,'294291931985','294285531795','294288606028','294291931986','291267785698')
DO CASE
CASE SUMMA>=150000 AND skid<10
REPLACE skid WITH 10
CASE SUMMA>=50000 AND skid<7
REPLACE skid WITH 7
CASE SUMMA>=15000 AND skid<5
REPLACE skid WITH 5
ENDCASE
ENDIF
IF beforechangediscount('Edit',,.T.)
SELECT curDictVal
SCATTER NAME loDiscount
SELECT discount
GATHER NAME loDiscount
ENDIF
ENDSCAN
ENDIF
safeclose('ToUpdateDiscount')
cacheclear()
DoSaleFromChecks()
ENDPROC
DEFINE CLASS MyVar AS CUSTOM
cProgram=''
cDirFrom=''
cViddoc=''
cRoznMember=''
cUser=''
dStartPeriod={}
cUslKod='FSALE'
cFlag=''
FileExport=''
FlagExport=''
PROCEDURE INIT
THIS.cProgram=GetIni('kkm_sale.ini','Setting','╧≡επ≡α∞∞α','S:\LF\PROGS\lf.exe',.T.)
THIS.cViddoc=GetIni('kkm_sale.ini','Setting','┬ΦΣ ΣεΩ≤∞σφ≥α ∩ε ≤∞εδ≈αφΦ■','00006',.T.)
THIS.cRoznMember=GetIni('kkm_sale.ini','Setting','╩εΣ ≡ετφΦ≈φεπε ∩εΩ≤∩α≥σδ ','00005',.T.)
THIS.cDirFrom=ADDBS(GetIni('kkm_sale.ini','Setting','╧≤≥ⁿ, πΣσ δσµα≥ ∩≡εΣαµΦ','c:\kkm_client\out\',.T.))
THIS.cUser='AutoMake'
THIS.dStartPeriod=DATE(YEAR(DATE()),1,1)
THIS.cFlag=GetIni('kkm_sale.ini','Setting','╘δαπ τα∩≤±Ωα','S:\L\kkm\kkm2lf.runned',.T.)
THIS.FlagExport=GetIni('kkm_sale.ini','Setting','╘δαπ Γ√π≡≤τΩΦ','pos_f.rep',.T.)
THIS.FileExport=GetIni('kkm_sale.ini','Setting','╘αΘδ Γ√π≡≤τΩΦ','pos.rep',.T.)
ENDPROC
ENDDEFINE