*liste des ventes entre deux dates
TITRE =" JOURNAL DES VENTES  "
DO TITRE
@ 6,0 CLEAR
SET fixed ON
DATE1=CTOD("  /  /  ")
DATE2=DATE1
@ 10,10 SAY "DATE DE DEBUT" GET date1
READ
@ 12,10 SAY "DATE DE FIN" GET date2 VALID(DATE2 > DATE1) HELP;
"LA DATE DE FIN DOIT ETRE SUPERIEURE A LA DATE DE DEBUT"
READ
IF date1=CTOD("  /  /  ")
RETU
ENDI
lis ="      "
@ 13,10 SAY "code produit ou rien pour tous" GET lis
READ
SET TALK OFF
sele 3        
use pgarti index pgarti alias ar
SELECT 1
USE PGCOM INDEX PGCOMNU ALIAS COM
SELE 2
USE pglignes ALIAS LG
set safe off
index on codearti to pgligne4
set safe on
*SET relation TO numcom into com
*set relation to codearti into ar
SET FILTER TO DATE  >=DATE1 .AND. DATE <= DATE2
GO TOP
TOTHT1G=0
stotbout=0       
totbout=0       
TOTaf=0
TOTdp=0
TOTjp=0
TOTSA=0
TOTTVa=0
STOTAF=0
STOTdp=0
STOTjp=0
STOTSA=0
totgene=0
SET EXACT ON
PP=1
LL=1
rep ="O"
**********VARIABLES IMPRIMANTES---------
pol1=CHR(27)+"&l0O"+chr(27)+"(s12U"+chr(27)+"(s0P"+chr(27)+"(s12H"+chr(27)+"(s12V"+chr(27)+"(s0S"+chr(27)+"(s0B"+chr(27)+"(s3T"
pol2=CHR(27)+"&l0O"+chr(27)+"(s12U"+chr(27)+"(s0P"+chr(27)+"(s16H"+chr(27)+"(s12V"+chr(27)+"(s0S"+chr(27)+"(s0B"+chr(27)+"(s3T"
pol3=CHR(27)+"&l0O"+chr(27)+"(s12U"+chr(27)+"(s1P"+chr(27)+"(s5H"+chr(27)+"(s24V"+chr(27)+"(s0S"+chr(27)+"(s0B"+chr(27)+"(s6T"
@ 6,0 CLEAR
@ 10,5 SAY "Imprimante O/N" GET rep PICTURE "!"
READ
IF rep ="O"
SET PRINT ON
EJECT
ENDI
sele ar
go top
do while .t.
sele ar
vcodeart=codeart
sele lg
find &vcodeart
if eof()
SELE AR
skip
if .not. eof()    
loop
else    
exit    
endi    
endi
? POL1
SET EXACT ON
DO WHILE lg->codEARTI=vcodeart
IF PROW() < 4
?"JOURNAL DES VENTES du ",DTOC(DATE1)," au ",DTOC(DATE2)  ,"                    PAGE " ,STR(PP,3,0)
?"article "+VCODEART
? "CLIENT  NOM            NUMCOM    DATE  FOURN REPR QUANT        ARTICLE                                    TTC     LIVRE"
?
ENDI
VID=0
commande =lg->numcom
afactur="O"
sele 1             
seek commande
if eof()      
wait      
else    
endi      
sele 2
*? "commande num‚ro : ",str(commande,5,0)," client :",com->nomclient,com->ad1liv,com->codliv,com->villeliv
?                             
? substr(nature,1,20)," ",COM->NUMcom," ",DATE,"  ",CODEfour,str(com->cdrep,3),str(lg->quantite,4),lg->codearti,left(ar->designart,40)
??str(prixlght,10,2)

TOTHT1g=TOTHT1g+prixlght
TOTTVA=TOTTVA+TVA2
totbout=stotbout+quantite
stotbout=stotbout+quantite
DO CASE
CASE CODEfour="AF"
TOTaf=TOTaf+prixlght
STOTaf=STOTaf+prixlght
CASE CODEFOUR="DP"
TOTDP=TOTDP+prixlght
STOTDP=STOTDP+prixlght
CASE CODEFOUR="JP"
TOTJP=TOTJP+prixlght
STOTJP=STOTJP+prixlght
CASE CODEFOUR="SA"
TOTSA=TOTSA+prixlght
STOTSA=STOTSA+prixlght
ENDC
skip
ENDDO
?POL2+"total de cette commande",totht1g,"AF:",STOTAF,"SA:",STOTSA,"DP:",STOTDP,"JP:",STOTJP
? pol1
?" total bouteilles :                     "+pol3,stotbout,pol1
totgene=totgene+totht1g
totht1g=0
STOTAF=0
STOTdp=0
STOTjp=0
STOTSA=0
stotbout=0
? "---------------------------------------------------------------------------------------------------------------------------------------"
IF PROW()<58.AND.rep="O"
sele ar
skip
if .not. eof()
LOOP
else
exit
endi
ELSE
PP=PP+1
IF rep="O"
EJECT
ENDI
IF rep #"O"
WAIT
ENDI
ENDI
SELE AR     
skip
if .not. eof()     
loop     
else     
exit     
endi     
ENDDO
CLOSE DATA
IF PROW() > 55
IF rep ="O"
EJECT
ENDI
ENDI
IF rep ="O"
SET print ON
ENDI
? CHR(15)
?
? "     TOTAL TTC     TOTAL AF     TOTAL DP     TOTAL JP   "
?
? TOTgene," ",TOTAF," ",TOTDP," ",TOTJP
? "total bouteilles :",totbout
* *TOTAL VENTES EXPORT :",TOTEXP,"  TOTAL SUSPENSION TVA =: ",TOTSUSP," total CEE =: ",totcee
?? CHR(18)
?? CHR(18)
IF rep="O"
SET PRINT OFF
ENDI
SET fixed OFF
CLOSE DATA
RETU


