Files
roagest/Programe/gestiuni.prg

1042 lines
30 KiB
Plaintext

*!* *--------------------------
*!* Procedure LIST_SCHIMBPRET
*!* Parameters M.NRACT1
*!* Sele act
*!* Loca For Val(nnir)=m.NRACT1 And Left(scd,3)='371' And Left(scc,3)='378'
*!* If !Found()
*!* Do mesaj With 'Nu a fost inregistrat nici un NIR','in luna curenta, cu numarul '+Allt(Str(m.NRACT1))
*!* Return
*!* Endif
*!* Scatter Fields cod,DATAACT Memvar
*!* Select CODMAT,DENUMIRE,Iif(CANT=0,CANTE,CANT) As CANT,Sum(Iif(CANT#0,0,pretvTVA)) As pretv,Sum(Iif(CANT=0,0,pretvTVA)) As pretvnou;
*!* FROM rull Where cod=M.cod ;
*!* INTO Table &loc/&nfscurt/tempo/schimbp Group By DENUMIRE,CODMAT
*!* Select schimbp
*!* Report Form schimbpret To Printer Prompt Preview
*!* Use In schimbp
*!* Do STERGE
*!* Return
*!* *--------------------------
*!* Procedure LIST_NIR
*!* Parameters M.NNIR,DECARE
*!* m.nnir=Allt(M.NNIR)
*!* LOCAL M.SUM1,M.SUM2
*!* STORE 0 TO M.SUM1,M.SUM2
*!* SELECT ACT
*!* SET ORDER TO TAG COD
*!* Sele rull
*!* Set Filter To
*!* Go Top
*!* Loca For Val(nnir)=Val(m.nnir) And CANT#0 And CANTE=0
*!* If !Found()
*!* Do mesaj With 'Nu a fost inregistrat nici un NIR','in luna curenta, cu numarul '+m.nnir
*!* Return
*!* Else
*!* Sele rull
*!* Scat Fiel cod Memv
*!* Sele act
*!* Set Filter To
*!* SEEK m.cod
*!* If Found()
*!* Scat Memv
*!* Endif
*!* Loca For cod=m.cod And scc='767 '
*!* If Found()
*!* Do tva
*!* Sele act
*!* m.sum1=suma
*!* m.sum2=m.sum1*(m.ctva-1)
*!* Else
*!* Store 0 To m.sum1,m.sum2
*!* Endif
*!* m.T='NIRURI'
*!* Select Distinct act.nume,act.fdoc,act.nract,act.dataireg,act.DATAACT,ACT.COD From act;
*!* WHERE cod=M.cod AND LEFT(ACT.SCC,2)='40' Into Cursor FF1
*!*
*!* SELECT * from ff1 WHERE RECNO() = 1 INTO CURSOR ff
*!* USE IN ff1
*!* Select RULL.*,FF.*,RULL.nnir+Str(RULL.gest) AS NGEST;
*!* from FF,rull;
*!* where FF.cod=rull.cod And Val(rull.nnir)=Val(m.nnir) And rull.CANTE=0 And rull.CANT#0;
*!* into CURSOR ra ORDER BY NGEST
*!* *!* Select RULL.*,FF.*;
*!* *!* from FF,rull;
*!* *!* where FF.cod=rull.cod And Val(rull.nnir)=Val(m.nnir) And rull.CANTE=0 And rull.CANT#0;
*!* *!* into TABLE &loc\&nfscurt\tempo\ra
*!* *Sele ra
*!* *Index On nnir+Str(gest) Tag ngest Of &loc\&nfscurt\tempo\ra
*!* *Sele ra
*!* *Set Order To Tag ngest
*!* sele optiuni
*!* loca for optiune='NIR STANDARD'
*!* nir_standard = da
*!* SELECT ra
*!* DO CASE
*!* CASE DECARE=1
*!* If !NIR_STANDARD
*!* Report Format NIRMATD.FRX To Printer Prompt Preview
*!* Else
*!* Report Format NIRTOT.FRX To Printer Prompt Preview
*!* ENDIF
*!* CASE DECARE=2
*!* Report Format NIRMARFNIR.FRX To Printer Prompt Preview
*!* ENDCASE
*!* Use In ra
*!* Use In FF
*!* ENDIF
*!* SELECT ACT
*!* SET ORDER TO TAG DATAIREG
*!* Do STERGE
*!* Return
*!* *--------------------------
*!* Procedure LIST_BON_achi
*!* Parameters M.NNIR
*!* Sele rull
*!* Loca For Val(rull.nnir)==VAL(m.NNIR) AND CANTE#0
*!* If !Found()
*!* Do mesaj With 'Nu a fost inregistrat nici un bon','cu numarul '+M.NNIR
*!* Return
*!* ENDIF
*!* M.COD=COD
*!* m.T='BONURI'
*!* SELECT DISTINCT NUME_2 As RESPONS,COD;
*!* WHERE COD=M.COD;
*!* FROM ACT INTO CURSOR FF
*!* Select Distinct rull.*,FF.*;
*!* from FF,rull;
*!* where FF.cod=rull.cod And Val(rull.nnir)=VAL(m.NNIR) And rull.cante # 0 And rull.cant=0;
*!* into Table &loc\&nfscurt\tempo\ra
*!* Sele ra
*!* Index On Str(gest,2)+nnir To &loc\&nfscurt\tempo\ra
*!* Report Format BONCONS.FRX To Printer Prompt Preview
*!* Use In ra
*!* USE IN FF
*!* DO STERGE
*!* RETURN
*!* *--------------------------
*!* Procedure LIST_BON
*!* Parameters M.NNIR
*!* Sele act
*!* Loca For Val(nnir)==VAL(m.NNIR) AND INLIST(ID_SET,0,56,61,78,80,88,90) &&NUMAI BONURI (NOI SAU VECHI)
*!* If !Found()
*!* Do mesaj With 'Nu a fost inregistrat nici un bon','cu numarul '+M.NNIR
*!* Return
*!* ENDIF
*!* M.COD=COD
*!* m.T='BONURI'
*!* SELECT DISTINCT NUME_2 As RESPONS,COD;
*!* WHERE COD=M.COD;
*!* FROM ACT INTO CURSOR FF
*!* Select Distinct rull.*,FF.*;
*!* from FF,rull;
*!* where FF.cod=rull.cod And Val(rull.nnir)=VAL(m.NNIR) And rull.cante # 0 And rull.cant=0;
*!* into Table &loc\&nfscurt\tempo\ra
*!* Sele ra
*!* Index On Str(gest,2)+nnir To &loc\&nfscurt\tempo\ra
*!* If !BON_ACHI
*!* Report Format BONLI.FRX To Printer Prompt Preview
*!* Else
*!* Report Format BONCONS.FRX To Printer Prompt Preview
*!* Endif
*!* Use In ra
*!* USE IN FF
*!* DO STERGE
*!* RETURN
*!* *-------------------------------------------------------------
*!* PROCEDURE list_pvoi
*!* PARAMETERS m.nnir
*!* Sele act
*!* Set Order To Tag cod
*!* Loca For Val(nnir)=VAL(m.nnir) AND INLIST(ID_SET,82,55)
*!* If Found()
*!* Scatter Memvar
*!* Sele rull
*!* Set Filt To cod=m.cod AND LEFT(scd,1) = '3'
*!* Report Format PVOI.FRX To Printer Prompt Preview
*!* Sele act
*!* Set Order To Tag dataireg
*!* Else
*!* Do mesaj With 'Numar inexistent!',''
*!* Endif
*!* Do STERGE
*!* SELECT rull
*!* SET FILTER TO
*!* RETURN
*!* *-------------------------------------------------------------
*!* PROCEDURE list_fact
*!* PARAMETERS m.nract1
*!* SELE FIRMA
*!* LOCA FOR NFSCURT=FSCURT
*!* SCAT MEMV
*!* FCOD_FISCAL=M.COD_FISCAL
*!* SELE act
*!* LOCA for nract=m.nract1 and LEFT(scd,3)='411'
*!* IF found()
*!* SCAT memv
*!* SELE clienti
*!* LOCA for nume=m.nume
*!* IF found()
*!* SCAT fiel COD_FISCAL memv
*!* ELSE
*!* m.COD_FISCAL=''
*!* ENDIF
*!*
*!* DO FORM DATEFACT
*!*
*!* SELECT respon
*!* LOCATE FOR ales
*!* SCATTER MEMVAR
*!*
*!* SELE RULl
*!*
*!* SET FILTER TO cod=m.cod AND CANTE#0
*!*
*!* *and left(scd,3)='371'
*!* sele optiuni
*!* loca for optiune='FORMAT A4'
*!* IF DA
*!* SELE RULl
*!* REPORT FORM FACTvanz TO PRINTER PROMPT PREVIEW
*!* ELSE
*!* SELE RULl
*!* REPORT FORM FACTvanz_A5 TO PRINTER PROMPT PREVIEW
*!* ENDIF
*!* ELSE
*!* DO mesaj with 'Factura '+allt(str(m.nract1))+' nu este','inregistrata in aceasta luna!'
*!* ENDIF
*!* DO sterge
*!* SELECT rul
*!* SET FILTER TO
*!* RETURN
*!* *--------------------------
*!* Procedure LIST_pv_prod
*!* Parameters M.NNIR
*!* m.nnir=Allt(M.NNIR)
*!* LOCAL M.SUM1,M.SUM2
*!* STORE 0 TO M.SUM1,M.SUM2
*!* SELECT ACT
*!* SET ORDER TO TAG COD
*!* Sele rull
*!* Set Filter To
*!* Go Top
*!* Loca For Val(nnir)=Val(m.nnir) And CANT#0 And CANTE=0
*!* If !Found()
*!* Do mesaj With 'Nu a fost inregistrat nici un PV','in luna curenta, cu numarul '+m.nnir
*!* Return
*!* Else
*!* Sele rull
*!* Scat Fiel cod Memv
*!* Sele act
*!* Set Filter To
*!* SEEK m.cod
*!* If Found()
*!* Scat Memv
*!* Endif
*!* Loca For cod=m.cod
*!* If Found()
*!* Do tva
*!* Sele act
*!* m.sum1=suma
*!* m.sum2=m.sum1*(m.ctva-1)
*!* Else
*!* Store 0 To m.sum1,m.sum2
*!* Endif
*!* *m.T='NIRURI'
*!* Select Distinct act.nume,act.fdoc,act.nract,act.dataireg,act.DATAACT,ACT.COD From act;
*!* WHERE cod=M.cod AND ID_SET=81 Into Cursor FF
*!*
*!* Select RULL.*,FF.*,RULL.nnir+Str(RULL.gest) AS NGEST;
*!* from FF,rull;
*!* where FF.cod=rull.cod And Val(rull.nnir)=Val(m.nnir) And rull.CANTE=0 And rull.CANT#0;
*!* into CURSOR ra ORDER BY NGEST
*!* *!* Select RULL.*,FF.*;
*!* *!* from FF,rull;
*!* *!* where FF.cod=rull.cod And Val(rull.nnir)=Val(m.nnir) And rull.CANTE=0 And rull.CANT#0;
*!* *!* into TABLE &loc\&nfscurt\tempo\ra
*!* *Sele ra
*!* *Index On nnir+Str(gest) Tag ngest Of &loc\&nfscurt\tempo\ra
*!* *Sele ra
*!* *Set Order To Tag ngest
*!*
*!* *sele optiuni
*!* *loca for optiune='FORMAT A4'
*!* *IF DA
*!* Sele ra
*!* Report Format PV_PROD.FRX To Printer Prompt Preview
*!* *ELSE
*!* * Sele ra
*!* * Report Format PV_PROD_A5.FRX To Printer Prompt Preview
*!* *ENDIF
*!* Use In ra
*!* Use In FF
*!* ENDIF
*!* SELECT ACT
*!* SET ORDER TO TAG DATAIREG
*!* Do STERGE
*!* RETURN
*!* *-------------------------------------------------------------
*!* PROCEDURE LIST_RETUR
*!* PARAMETERS M.NRACT1,DECARE
*!* sele act
*!* loca for nract=m.nract1
*!* if found()
*!* scat memv
*!* m.numegest=m.explicatia
*!* SELE RULL
*!* *SET FILTER TO cod=m.cod
*!* sele rulL.* from rulL where cod=m.cod and LEFT(scd,1) = '3' into table &loc\&nfscurt\tempo\ra
*!* sele ra
*!* repl all cante with -cante
*!* IF DECARE=5
*!* REPORT FORMAT RETURMAT.FRX TO PRINTER PROMPT PREVIEW
*!* ELSE
*!* REPORT FORMAT RETUR.FRX TO PRINTER PROMPT PREVIEW
*!* ENDIF
*!* else
*!* do mesaj with 'Nu a fost emisa nota cu nr.'+allt(str(m.nract1)),'in aceasta luna.'
*!* endif
*!* DO STERGE
*!* RETURN
*!* *-------------------------------
*!* PROCEDURE LIST_TRANSFER
*!* PARAMETERS M.NRACT1,DECARE
*!* sele act
*!* loca for nract=m.nract1 and INLIST(id_set,74,75,76,89)
*!* if found()
*!* scat memv
*!* m.numegest=m.explicatia
*!* SELE RULl
*!* SET ORDER TO tag cod
*!* *loca for cod=m.cod
*!* SEEK m.cod
*!* if !found()
*!* DO MESAJ WITH 'Nu exista aceasta nota de transfer',''
*!* return
*!* ELSE
*!* IF decare # 26
*!* SET FILTER TO cod=m.cod and !empty(cante)
*!* IF NR_GEST=6 OR DECARE=18
*!* report form nirtransferl to printer prompt preview
*!* ELSE
*!* report form nirtransferMATl to printer prompt preview
*!* ENDIF
*!* ELSE
*!* LOCATE FOR cod=m.cod AND !EMPTY(cant)
*!* m.nume_2 = nresp
*!* SET FILTER TO cod=m.cod and !empty(cante)
*!* LOCATE
*!* pcResp = nresp
*!* report form transfer8039 to printer prompt preview
*!* ENDIF
*!* endif
*!* ELSE
*!* DO MESAJ WITH 'Nu exista aceasta nota de transfer',''
*!* ENDIF
*!* sele act
*!* set filter to
*!* SELECT RULl
*!* SET ORDER TO
*!* SET FILTER TO
*!* DO STERGE
*!* RETURN
*!* *-------------------------------------------------------
*!* PROCEDURE FIFO
*!* PARAMETERS TCOD,TMAT,TDATA,tpret,tcant
*!* tmat=UPPER(ALLTRIM(tmat))
*!* tcod=UPPER(ALLTRIM(tcod))
*!* SELECT DISTINCT denumire,codmat,pret FROM fifo INTO CURSOR verif
*!* SELECT verif
*!* SCAN
*!* SCATTER NAME ver
*!* SELECT iesiri
*!* GO TOP
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=UPPER(ALLTRIM(ver.denumire)) AND UPPER(ALLTRIM(codmat))=UPPER(ALLTRIM(ver.codmat)) AND pret=ver.pret
*!* IF !FOUND()
*!* SELECT fifo
*!* REPLACE ALL dataout WITH {},cante WITH 0,incomplet WITH .f.;
*!* FOR UPPER(ALLTRIM(denumire))=UPPER(ALLTRIM(ver.denumire)) AND UPPER(ALLTRIM(codmat))=UPPER(ALLTRIM(ver.codmat)) AND pret=ver.pret
*!* ENDIF
*!* SELECT verif
*!* ENDSCAN
*!* RELEASE ver
*!* USE IN verif
*!* SELECT fifo
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod
*!* IF !FOUND()
*!* IF USED('cfifo')
*!* USE IN cfifo
*!* ENDIF
*!*
*!* SELECT denumire,codmat,pret,cants+cant-cante as cant,cante,datain,dataout,curs as idf;
*!* FROM stoc;
*!* WHERE ALLTRIM(UPPER(denumire))==tmat AND ALLTRIM(UPPER(codmat))==tcod ;
*!* AND cants+cant-cante>0 AND gest=m.gest;
*!* INTO TABLE &loc\&nfscurt\tempo\cfifo ORDER BY datain
*!* SELECT CFIFO
*!* REPLACE ALL cante WITH 0,dataout WITH {}
*!* CALCULATE MIN(datain) TO mindata
*!* IF tdata>mindata
*!* DO mesaj WITH 'ATENTIE !','Nu se respecta metoda FIFO !'
*!* MARCA=.T.
*!* RETURN
*!* ENDIF
*!*
*!* SELECT fifo
*!* APPEND FROM &loc\&nfscurt\tempo\cfifo
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod AND pret=tpret
*!* REPLACE dataout WITH DATE()&&,cante WITH tcant
*!* *!* IF cant-cante>0
*!* *!* REPLACE incomplet WITH .t.
*!* *!* ENDIF
*!* ELSE
*!* SELECT fifo
*!* CALCULATE MIN(datain) TO mindata FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod AND (EMPTY(dataout) OR incomplet)
*!* GO TOP
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod AND pret=tpret &&AND (EMPTY(dataout) OR incomplet)
*!* IF tdata>mindata
*!* DO mesaj WITH 'ATENTIE !','Nu se respecta metoda FIFO'
*!* MARCA=.T.
*!* RETURN
*!* ENDIF
*!* REPLACE dataout WITH DATE()&&,cante WITH tcant
*!* *!* IF cant-cante>0
*!* *!* REPLACE incomplet WITH .t.
*!* *!* ELSE
*!* *!* REPLACE incomplet WITH .f.
*!* *!* ENDIF
*!* ENDIF
*!* ENDPROC
*!* *-------------------------------------------------------
*!* PROCEDURE LIFO
*!* PARAMETERS TCOD,TMAT,TDATA,tpret
*!* tmat=UPPER(ALLTRIM(tmat))
*!* tcod=UPPER(ALLTRIM(tcod))
*!* SELECT DISTINCT denumire,codmat,pret FROM fifo INTO CURSOR verif
*!* SELECT verif
*!* SCAN
*!* SCATTER NAME ver
*!* SELECT iesiri
*!* GO TOP
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=UPPER(ALLTRIM(ver.denumire)) AND UPPER(ALLTRIM(codmat))=UPPER(ALLTRIM(ver.codmat)) AND pret=ver.pret
*!* IF !FOUND()
*!* SELECT fifo
*!* REPLACE ALL dataout WITH {},cante WITH 0,incomplet WITH .f.;
*!* FOR UPPER(ALLTRIM(denumire))=UPPER(ALLTRIM(ver.denumire)) AND UPPER(ALLTRIM(codmat))=UPPER(ALLTRIM(ver.codmat)) AND pret=ver.pret
*!* ENDIF
*!* SELECT verif
*!* ENDSCAN
*!* RELEASE ver
*!* USE IN verif
*!* SELECT fifo
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod
*!* IF !FOUND()
*!* IF USED('cfifo')
*!* USE IN cfifo
*!* ENDIF
*!*
*!* SELECT denumire,codmat,pret,cants+cant-cante as cant,cante,datain,dataout,curs as idf;
*!* FROM stoc;
*!* WHERE ALLTRIM(UPPER(denumire))==tmat AND ALLTRIM(UPPER(codmat))==tcod ;
*!* AND cants+cant-cante>0 AND gest=m.gest;
*!* INTO TABLE &loc\&nfscurt\tempo\cfifo ORDER BY datain
*!* SELECT CFIFO
*!* REPLACE ALL cante WITH 0,dataout WITH {}
*!* CALCULATE Max(datain) TO maxdata
*!* IF tdata<maxdata
*!* DO mesaj WITH 'ATENTIE !','Nu se respecta metoda LIFO !'
*!* MARCA=.T.
*!* RETURN
*!* ENDIF
*!*
*!* SELECT fifo
*!* APPEND FROM &loc\&nfscurt\tempo\cfifo
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod AND pret=tpret
*!* REPLACE dataout WITH DATE()
*!* ELSE
*!* SELECT fifo
*!* CALCULATE max(datain) TO maxdata FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod AND (EMPTY(dataout) OR incomplet)
*!* GO TOP
*!* LOCATE FOR UPPER(ALLTRIM(denumire))=tmat AND UPPER(ALLTRIM(codmat))=tcod AND pret=tpret &&AND (EMPTY(dataout) OR incomplet)
*!* IF tdata<maxdata
*!* DO mesaj WITH 'ATENTIE !','Nu se respecta metoda LIFO'
*!* MARCA=.T.
*!* RETURN
*!* ENDIF
*!* REPLACE dataout WITH DATE()
*!* ENDIF
*!* ENDPROC
*!* *________________________________________________________________________
*!* PROCEDURE fisa_magazie_FIFO
*!* PARAMETERS tcod,tmat,tfis1,tfis2,tccond
*!* SET DATE TO DMY
*!* tcod=UPPER(ALLTRIM(tcod))
*!* tmat=UPPER(ALLTRIM(tmat))
*!* CREATE TABLE &loc\&nfscurt\tempo\fisa_stoc (ldata d,nrdoc c(15),cantin n(12,3),pretin n(12,3),valin n(14,2),;
*!* cantout n(12,3),pretout n(12,3),valout n(14,2),cantf n(12,3),pretf n(12,3),valf n(14,2),idf n(3))
*!* && -----------------------&tfis1 = stocul
*!* buton=2
*!* ON ERROR do mesaj with 'Reindexati fisierele din luna '+loLuna.NL+' '+loLuna.AN,'' && daca nu are campul datain
*!* SELECT &tfis1..CANTS AS CANTF,&tfis1..PRET AS pretf,&tfis1..CANTS*&tfis1..PRET AS VALF,&tfis1..datain;
*!* from &tfis1 WHERE UPPER(ALLTRIM(&tfis1..codmat))=tcod AND UPPER(ALLTRIM(&tfis1..denumire))=tmat;
*!* into TABLE &loc\&nfscurt\tempo\cstoc ORDER BY &tfis1..datain
*!* ON ERROR
*!* IF buton=1
*!* RETURN
*!* ENDIF
*!* && -----------------------
*!* SELECT cstoc
*!* DELETE ALL FOR cantf=0
*!* SELECT FISA_StOC
*!* APPEND FROM &loc\&nfscurt\tempo\CSTOC FOR !DELETED()
*!* SELECT fisa_stoc
*!* GO top
*!* IF EOF()
*!* APPEND BLANK
*!* ENDIF
*!* SUM CANTF TO lnCantf
*!* SUM valf TO lnValf
*!* GO TOP
*!* REPLACE CANTIn WITH lnCantf, valin WITH lnValf,nrdoc WITH 'Stoc initial'
*!* REPLACE ALL idf WITH 1
*!* IF lncantf#0
*!* REPLACE pretin WITH lnValf/lnCantf
*!* ENDIF
*!* &&----------------------&tfis2 = rulajele
*!* SELECT * from &tfis2 WHERE UPPER(ALLTRIM(&tfis2..codmat))=tcod AND UPPER(ALLTRIM(&tfis2..denumire))=tmat AND &TCCOND;
*!* into TABLE &loc\&nfscurt\tempo\trulaj ORDER BY &tfis2..dataACT
*!* SELECT trulaj
*!* SCAN
*!* SCATTER NAME xrul
*!* SELECT fisa_stoc
*!* CALCULATE MAX(idf) TO lnMax
*!* lnMaX=lnMax+1
*!* APPEND FROM &loc\&nfscurt\tempo\cstoc FOR !DELETED()
*!* REPLACE ALL idf WITH lnMax FOR EMPTY(idf)
*!* DO CASE
*!* CASE xrul.cant#0 &&AND !INLIST(xrul.pret,&lista)
*!* LOCATE FOR pretf=xrul.pret AND idf=lnMaX
*!* IF !FOUND()
*!* SELECT fisa_stoc
*!* APPEND BLANK
*!* REPLACE cantin WITH xrul.cant,pretin WITH xrul.pret,valin WITH xrul.cant*xrul.pret
*!* REPLACE cantf WITH xrul.cant,pretf WITH xrul.pret,valf WITH xrul.cant*xrul.pret
*!* REPLACE idf WITH lnMax,ldata WITH xrul.datain,nrdoc WITH xrul.nnir
*!*
*!* SELECT cstoc
*!* APPEND BLANK
*!* REPLACE cantf WITH xrul.cant,pretf WITH xrul.pret,valf WITH xrul.cant*xrul.pret
*!* ELSE
*!* REPLACE cantin WITH xrul.cant,pretin WITH xrul.pret,valin WITH xrul.cant*xrul.pret
*!* REPLACE cantf WITH cantf+cantin,valf WITH valf+valin
*!* REPLACE ldata WITH xrul.datain,nrdoc WITH xrul.nnir
*!*
*!* SELECT cstoc
*!* LOCATE FOR pretf=xrul.pret
*!* REPLACE cantf WITH cantf+xrul.cant,valf WITH valf+xrul.cant*xrul.pret
*!* ENDIF
*!* CASE xrul.cante#0
*!* SELECT fisa_stoc
*!* LOCATE FOR pretf=xrul.pret AND idf=lnMaX
*!* IF !FOUND()
*!* *DO mesaj WITH 'Stoc negativ',''
*!* APPEND BLANK
*!* REPLACE idf WITH lnMax
*!* ENDIF
*!*
*!* REPLACE cantout WITH xrul.cante,pretout WITH xrul.pret,valout WITH xrul.cante*xrul.pret
*!* REPLACE cantf WITH cantf-cantout,pretf WITH xrul.pret,valf WITH valf-valout
*!* REPLACE ldata WITH xrul.dataout,nrdoc WITH xrul.nnir
*!*
*!* SELECT cstoc
*!* LOCATE FOR pretf=xrul.pret
*!* IF !FOUND()
*!* *DO mesaj WITH 'Stoc negativ',''
*!* APPEND BLANK
*!* ENDIF
*!* REPLACE cantf WITH cantf-xrul.cante,pretf WITH xrul.pret,valf WITH valf-xrul.cante*xrul.pret
*!*
*!* ENDCASE
*!* SELECT cstoc
*!* DELETE ALL FOR cantf=0
*!* RELEASE xrul
*!* SELECT trulaj
*!* ENDSCAN
*!* SELECT fisa_stoc
*!* ENDPROC &&fisa_magazie_FIFO
*!* *___________________________________________________________________________________________________________
*!* PROCEDURE evidenta_comenzi
*!* PRIVATE pncom1,pncom2
*!* STORE 0 TO pncom1,pncom2
*!* DO cereDATE WITH 'NR.COMENZII:','pncom1','pncom2','Nmarul initial','Numarul final'
*!* CREATE TABLE &loc\&nfscurt\tempo\lista_comenzi.dbf (comanda c(12),val_mat n(14),val_marja n(14),val_prod n(14),val_fact n(14),;
*!* val_tva n(14),totfact n(14),nract n(12),dataact d,nume c(30))
*!* SELECT DISTINCT nrord as comanda FROM actan WHERE BETWEEN(VAL(nrord),pncom1,pncom2) INTO CURSOR comenzi
*!* SELECT comenzi
*!* SCAN
*!* lccomanda=ALLTRIM(comanda)
*!* SELECT actan
*!* LOCATE FOR scd='411 ' AND scc='701 ' AND ALLTRIM(nrord)=lccomanda
*!* m.nract=actan.nract
*!* m.dataact=actan.dataact
*!* m.nume=actan.nume
*!* CALCULATE sum(suma) TO m.val_mat FOR LEFT(scd,3)='601' AND LEFT(scc,3)='301' AND ALLTRIM(nrord)=lccomanda
*!* CALCULATE sum(suma) TO m.val_prod FOR scd='345 ' AND scc='711 ' AND ALLTRIM(nrord)=lccomanda
*!* CALCULATE sum(suma) TO m.val_fact FOR scd='411 ' AND scc='701 ' AND ALLTRIM(nrord)=lccomanda
*!* CALCULATE sum(suma) TO m.val_tva FOR scd='411 ' AND scc='4427 ' AND ALLTRIM(nrord)=lccomanda
*!*
*!* SELECT lista_comenzi
*!* APPEND BLANK
*!* GATHER MEMVAR
*!* SELECT lista_comenzi
*!* REPLACE totfact WITH val_fact+val_tva
*!* REPLACE comanda WITH lccomanda
*!* REPLACE val_marja WITH val_prod-val_mat FOR !EMPTY(val_prod)
*!* SELECT comenzi
*!* ENDSCAN
*!* SELECT lista_comenzi
*!* REPORT FORM lista_comenzi TO PRINTER PROMPT PREVIEW
*!* USE IN comenzi
*!* USE IN lista_comenzi
*!* ENDPROC && evidenta_comenzi
*!* *_____________________________________________________________________________________________________
*!* PROCEDURE list_marf_furn_grupe
*!* PARAMETERS numar_raport
*!* SELECT cod,nume,nract from act WHERE scd='371 ' AND INLIST(scc,'401 ','408 ') INTO CURSOR tact
*!* SELECT t.*, r.*, STR(r.id_articol) + t.nume as cod_nume_mat ;
*!* from tact t JOIN rull r ON r.cod=t.cod WHERE r.cante=0 AND r.cant#0 AND !INLIST(r.id_set, 74, 75, 76) ;
*!* INTO CURSOR trul ORDER BY cod_nume_mat
*!* USE IN tact
*!* IF numar_raport=1
*!* SELECT trul
*!* TOTAL TO &loc\&nfscurt\tempo\list_marf ON cod_nume_mat FIELDS cant,pret
*!* USE &loc\&nfscurt\tempo\list_marf IN 0 SHARED
*!* ELSE
*!* SELECT trul
*!* lc_dbf=DBF('trul')
*!* USE (lc_dbf) IN 0 shared AGAIN ALIAS list_marf
*!* ENDIF
*!* SELECT l.id_articol,l.id_grupa,l.id_sbgrupa,a.dn_grupa,b.dn_sbgrupa ;
*!* FROM ((listast l LEFT JOIN art_gr a ON l.id_grupa=a.id_grupa ) ;
*!* LEFT JOIN art_sbgr b ON l.id_grupa=b.id_grupa AND l.id_sbgrupa=b.id_sbgrupa) ;
*!* INTO CURSOR tlista
*!* SELECT a.denumire,a.codmat,a.pret,a.um,a.cant,a.gest,a.nume,a.dataact,a.nract,b.* ;
*!* FROM list_marf a JOIN tlista b ON a.id_articol=b.id_articol INTO CURSOR tfinal
*!* IF numar_raport=1
*!* titlu='APROVIZIONARE PRODUSE LUNA '+m.nl+' '+m.an
*!* SELECT tfinal
*!* INDEX ON nume + STR(id_grupa) + STR(id_sbgrupa) TO &loc\&nfscurt\tempo\index_art.idx
*!* SELECT tfinal
*!* REPORT FORM stoc_furniz TO PRINTER PROMPT PREVIEW
*!* ELSE
*!* titlu='CUMPARARI PRODUSE LUNA '+m.nl+' '+m.an
*!* SELECT tfinal
*!* INDEX ON DENUMIRE TO &loc\&nfscurt\tempo\index_art.idx
*!* *BROWSE
*!* SELECT tfinal
*!* REPORT FORM stoc_fact TO PRINTER PROMPT PREVIEW
*!* ENDIF
*!* USE IN list_marf
*!* USE IN tlista
*!* USE IN tfinal
*!* ENDPROC && list_marf_furn_grupe
*!* *__________________________________________________________________________________________________
*!* PROCEDURE list_articole_gr
*!* lcCond = '.t.'
*!* PRIVATE pddata1, pddata2
*!* STORE DATE() TO pddata1, pddata2
*!* DO cereDATE WITH 'Selectati perioada:','pddata1','pddata2','Data initiala','Data finala'
*!*
*!* SELECT DISTINCT * FROM art_gr INTO CURSOR tgrupa READWRITE ORDER BY dn_grupa
*!* SELECT tgrupa
*!* APPEND blan
*!* REPLACE dn_grupa WITH ' <TOATE>'
*!* SCATTER MEMVAR BLANK
*!*
*!* DO CAUT_ALFa_cursor WITH "tgrupa","dn_grupa",'Alegeti grupa:',''
*!* USE IN tgrupa
*!*
*!* IF buton = 2
*!* RETURN
*!* ENDIF
*!* IF ALLTRIM(m.dn_grupa) # '<TOATE>'
*!* lcCond = lcCond + [ and id_grupa = m.id_grupa]
*!* ENDIF
*!*
*!* SELECT DISTINCT dn_sbgrupa, id_sbgrupa FROM art_sbgr WHERE id_grupa = m.id_grupa INTO CURSOR tgrupa READWRITE ORDER BY dn_sbgrupa
*!* SELECT tgrupa
*!* APPEND blan
*!* REPLACE dn_sbgrupa WITH ' <TOATE>'
*!* SCATTER MEMVAR BLANK
*!*
*!* DO CAUT_ALFa_cursor WITH "tgrupa","dn_sbgrupa",'Alegeti subgrupa:',''
*!* USE IN tgrupa
*!*
*!* IF buton = 2
*!* RETURN
*!* ENDIF
*!* IF ALLTRIM(m.dn_sbgrupa) # '<TOATE>'
*!* lcCond = lcCond + [ and id_sbgrupa = m.id_sbgrupa]
*!* ENDIF
*!*
*!* SELECT DISTINCT id_articol, denumire, codmat, um, id_grupa, id_sbgrupa ;
*!* FROM listast WHERE &lccond INTO CURSOR tlist READWRITE ORDER BY id_grupa, id_sbgrupa, denumire, codmat
*!*
*!* SELECT t.*, g.dn_grupa, s.dn_sbgrupa ;
*!* FROM ((tlist t LEFT JOIN art_gr g ON t.id_grupa = g.id_grupa ) ;
*!* LEFT JOIN art_sbgr s ON t.id_sbgrupa = s.id_sbgrupa AND t.id_grupa = s.id_grupa ) ;
*!* INTO CURSOR tlista
*!* USE IN tlist
*!*
*!* SELECT t.*, sum(r.pret*r.cant) as valoare, sum(r.cant) as intrari FROM rul r JOIN tlista t ON r.id_articol = t.id_articol ;
*!* WHERE BETWEEN(r.dataact,pdData1, pdData2) AND r.cant#0 AND LEFT(ALLTRIM(r.scd),3) = '371' AND !INLIST(r.id_set, 74, 75, 76) ;
*!* INTO CURSOR trez ;
*!* GROUP BY r.id_articol ;
*!* ORDER BY t.dn_grupa, t.dn_sbgrupa, t.denumire, t.codmat
*!*
*!* titlu = 'Intrari de la ' + DTOC(pdData1) + ' la ' + DTOC(pdData2)
*!*
*!* SELECT trez
*!* REPORT FORM stoc_grupe TO PRINTER PROMPT PREVIEW
*!*
*!* USE IN tlista
*!* USE IN trez
*!* ENDPROC && list_articole_gr
*!* *__________________________________________________________________________________________________
*!*
*!* PROCEDURE list_stoc_articol
*!* SELECT s.denumire,s.codmat,s.um,s.gest,ALLTRIM(STR(s.id_articol))+ALLTRIM(STR(s.gest))+ALLTRIM(s.denumire)+ALLTRIM(s.codmat) as articol,sum(s.cants+s.cant-s.cante) as cantitate,g.numegest;
*!* from stoc s,numegest g ;
*!* WHERE s.gest=g.gest;
*!* GROUP BY articol INTO CURSOR tstoc ORDER BY denumire
*!* SELECT tstoc
*!* *BROWSE
*!* REPORT FORM stoc_articol TO PRINTER PROMPT PREVIEW
*!* USE IN tstoc
*!* ENDPROC && list_stoc_articol
*!* *__________________________________________________________________________________________________
*!* PROCEDURE fisa_magazie_simpla
*!* LOCAL ln_stoci
*!* STORE 0 TO ln_stoci
*!* SELECT rull
*!* SCATTER NAME oru
*!* SELECT DISTINCT r.nnir,r.cante,r.cant,r.dataact,a.nract,r.cant AS STOCI,r.cant AS STOCF ;
*!* FROM rull r LEFT JOIN act a ON r.cod=a.cod ;
*!* WHERE (denumire=oru.denumire AND codmat=oru.codmat AND gest=oru.gest) AND id_articol=oru.id_articol ;
*!* INTO TABLE &loc\&nfscurt\tempo\fisa_stoc ORDER BY r.dataact
*!* SELECT FISA_STOC
*!* REPLACE ALL STOCI WITH 0,stocf WITH 0
*!* SELECT stoc
*!* LOCATE FOR (denumire=oru.denumire AND codmat=oru.codmat AND gest=oru.gest) AND id_articol=oru.id_articol
*!* IF FOUND()
*!* ln_stoci=cants
*!* ENDIF
*!* SELECT fisa_stoc
*!* GO top
*!* REPLACE stoci WITH ln_stoci &&,stocf WITH ln_stoci+cant-cante
*!* SCAN
*!* REPLACE stocf WITH ln_stoci+cant-cante
*!* ln_stoci=stocf
*!* ENDSCAN
*!* SELECT listast
*!* LOCATE FOR id_articol=oru.id_articol
*!* Lnid_grupa=id_grupa
*!* Lnid_sbgrupa=id_sbgrupa
*!* *WAIT WINDOW STR(oru.gest)
*!* SELECT numegest.numegest,art_gr.dn_grupa,art_sbgr.dn_sbgrupa FROM numegest,art_gr ,art_sbgr;
*!* where numegest.gest=oru.gest AND art_gr.id_grupa=Lnid_grupa AND art_sbgr.id_sbgrupa=Lnid_sbgrupa ;
*!* INTO CURSOR tdate
*!* *BROWSE
*!* SELECT fisa_stoc
*!* REPORT FORM fisa_magazie_simpla TO PRINTER PROMPT PREVIEW
*!* RELEASE oru
*!* USE IN fisa_stoc
*!* USE IN tdate
*!* ENDPROC && fisa_magazie_simpla
*!* *____________________________________________________________________________________________
*!* PROCEDURE list_stoc_art
*!* PARAMETERS tc_cond
*!* tc_cond=ALLTRIM(tc_cond)
*!* IF USED('tstoc')
*!* USE IN tstoc
*!* ENDIF
*!* SELECT *,sum(cants+cant-cante) as stocf,SUM((CANTs+cant-cante)*PRET) AS VALoare, ;
*!* ALLTRIM(denumire)+ALLTRIM(codmat)+ALLTRIM(STR(id_articol)) as indexul ;
*!* FROM stoc WHERE &tc_cond ;
*!* GROUP BY indexul ;
*!* INTO CURSOR tstoc
*!* SELECT tstoc
*!* ENDPROC && list_stoc_art
*!* *____________________________________________________________________________________________
*!* PROCEDURE raport_material_furnizor
*!* PRIVATE poConditie, lddata1, lddata2
*!* DO FORM frm_filtru_text WITH 'r.denumire','Denumirea materialului',1 TO pcConditie
*!* *!* IF .filtru = ""
*!* *!* .Value = 0
*!* *!* ENDIF
*!*
*!* loLuna=ret_luna("Selectati luna de inceput")
*!* lddata1=CTOD('01/'+loLuna.nl+'/'+loLuna.an) && 01/01/2003
*!* loLuna=ret_luna("Selectati luna de sfarsit")
*!* lddata2=CTOD('01/'+loLuna.nl+'/'+loLuna.an) && 01/01/2003
*!* *lddata2=GOMONTH(CTOD('01/'+m.Nl+'/'+m.An),1)-1 && 31/07/2003
*!* CREATE TABLE &loc\&nfscurt\tempo\tfis (an c(4), luna c(2), denumire c(100), codmat c(50), cod n(10),cant n(12), pret n(14), nnir c(10), nume c(30))
*!* SELECT calendar
*!* SCAN FOR BETWEEN(CTOD('01/'+nl+'/'+an), lddata1, lddata2)
*!*
*!* lcAn = an
*!* lcLuna = nl
*!*
*!* lcDate = ADDBS(calefirma)+'AN' + an + '\DATE' + nl+'\'
*!* lcFisRul = lcDate + "rull.dbf"
*!* lcFisAct = lcDate + "act.dbf"
*!*
*!* IF !FILE(lcFisRul) OR !FILE(lcFisAct)
*!* SELECT calendar
*!* LOOP
*!* ENDIF
*!*
*!* IF USED('rulaje')
*!* USE IN rulaje
*!* ENDIF
*!*
*!* IF USED('rj')
*!* USE IN rj
*!* ENDIF
*!*
*!* IF USED('tcrul')
*!* USE IN tcrul
*!* ENDIF
*!*
*!* USE &lcFisRul AGAIN IN 0 shared ALIAS rulaje ORDER TAG "denumire"
*!* USE &lcFisAct AGAIN IN 0 shared ALIAS rj ORDER TAG "nume"
*!* SELECT DISTINCT r.denumire, r.codmat, r.cod, r.cant, r.pret, r.nnir, a.nume,ALLTRIM(r.denumire)+ALLTRIM(r.codmat)+ALLTRIM(STR(ROUND(pret,0))) as numecod ;
*!* FROM rulaje r LEFT JOIN rj a ON r.cod = a.cod AND r.nnir = a.nnir ;
*!* WHERE &pcConditie AND r.cant # 0 AND LEFT(a.scc,3) = '401';
*!* INTO CURSOR tcrul ;
*!* ORDER BY a.nume, numecod
*!*
*!* SELECT tcrul
*!* TOTAL TO &loc\&nfscurt\tempo\xtotal ON numecod FIELDS cant
*!* * GROUP BY r.denumire, r.codmat, r.pret, a.nume ;
*!* SELECT tfis
*!* * APPEND FROM DBF('tcrul')
*!* APPEND FROM &loc\&nfscurt\tempo\xtotal
*!* REPLACE ALL luna WITH lcLuna FOR EMPTY(luna)
*!* REPLACE ALL an WITH lcAn FOR EMPTY(an)
*!* SELECT calendar
*!* ENDSCAN
*!* SELECT tfis
*!* INDEX ON AN + ALLTRIM(NUME)+ LUNA TAG nume OF &loc\&nfscurt\tempo\xULEI ASCENDING
*!* SELECT tfis
*!* REPORT FORM list_ulei TO PRINTER PROMPT PREVIEW
*!* IF USED('rulaje')
*!* USE IN rulaje
*!* ENDIF
*!* IF USED('rj')
*!* USE IN rj
*!* ENDIF
*!* IF USED('tcrul')
*!* USE IN tcrul
*!* ENDIF
*!* USE IN tfis
*!* ENDPROC && raport_material_furnizor
*!* *________________________________________
*!* PROCEDURE raport_productie_postcalcul
*!* SELECT DISTINCT NRORD FROM RULL into TABLE &LOC\&NFSCURT\tempo\raA.DBF
*!* SELECT RAA
*!* *!* APPEND BLANK
*!* *!* REPLACE NRORD WITH " <TOATE>"
*!* Index ON NRORD TAG NRORD
*!* do caut_alfa with "RAA","Nrord","NUMELE COMENZII","M.nrord"
*!* PRIVATE pnCant
*!* pnCant = 0
*!* Ointre=CREATEOBJECT("CAUTintre")
*!* WITH Ointre
*!* .CAPTION="Dat in executie"
*!* .label1.caption="Cantitatea :"
*!* .label2.visible=.f.
*!* .text1.controlsource="pnCant"
*!* .text2.visible=.f.
*!* endwith
*!* ointre.show(1)
*!*
*!* SELECT denumire, um, sum(cante) as canttot, pret, gest, codmat, ;
*!* sum(round(pret*cante, 0)) as valtot, sum(ROUND(cante/pnCant,3)) as cant_unit, sum(round(pret*cante/pnCant, 3)) as val_unit;
*!* from rull ;
*!* where nrord = m.nrord And cante # 0 And cant = 0 ;
*!* into CURSOR rapostcalcul GROUP BY denumire, codmat, pret ORDER BY denumire
*!* *!* SELECT RApostcalcul
*!* *!* *Index On NRORD+STR(VAL(ALLTRIM(nnir)))+DTOC(dataact) TAG nnir &&To &LOC\&NFSCURT\tempo\FFD
*!* *!* BROWSE
*!* SELECT RApostcalcul
*!* *!* SET FILTER TO NRORD=M.NRORD
*!* REPORT FORM postcalcul TO PRINTER PROMPT PREVIEW
*!* USE IN rapostcalcul
*!* ENDPROC && raport_productie_postcalcul