activate screen
hide wind all
*WSELE 0
TITRE ="EDITION VALIDATION DES FACTURES sans code"
DO TITRE
NBIMPR=1
rep="O"
@ 12,5 SAY "IMPRESSION DE LA FACTURE EN COURS O/N" GET REP PICT "!"
READ
IF REP #"O"
REP ="N"
ENDI
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"
TOTTVA1=0
TOTTVA2=0
TOTFACHT1=0
TOTFACHT2=0
TOTFAC=0       
dec=0       
vrepeuro="N"
IF REP="O"
@ 14,5 SAY "NOMBRE D'EXEMPLAIRES " GET NBIMPR
READ
SET print ON
ENDI
IF NBIMPR <1
NBIMPR=1
ENDI
IMPRIME=0
DO WHILE IMPRIME< NBIMPR
IF REP="O"
SET PRINT ON
ENDI
TOTTVA1=0
TOTTVA2=0
TOTFACHT1=0
TOTFACHT2=0
TOTFAC=0       
dec=0       
SELE FC
*eject

?
?
?
?
?
?
?
*"                                         FACTURE Nø  ",NUMERO,"  ",fc->datefact
if fc->banque=""
replace banque with "CAM"
endi
select 5
use bgbanque index bgbanque alias bq
if FC->banque <>""
vrech=trim(fc->banque)
*set exac off
seek vrech
*set exac on
if found()
VCOMPTEBQ=bq->numerocpt +" CLE "+bq->CLErib 
vETAB=bq->etab 
vGUICHET=bq->guichet 
vbqad=trim(bq->nombanque)+" "+bq->cpbq+" "+bq->villebq
viban=bq->iban
vswift=bq->swift
endi
sele FC
endi
?
?
?"      "+pol2+"ID TVA "+vidtva+pol1+"                   FACTURE Nø  ",NUMERO,"  ",fc->datefact
?"     "+pol2+" Accise "+vaccise+pol1
?"                                         ",TRIM(fc->entete)+" "+TRIM(FC->nomcli)+" "+SUBSTR(fc->prenomcli,1,20)
?
?"                                         ",FC->ad1CLI
?"                                         ",FC->ad2CLI
?"                                         ",FC->ad3CLI
?"                                         ",trim(FC->cpCLI)+" "+FC->villeCLI
?
?"   "+ref1
?"   "+ref2
?
?
?
IF FC->TYPE="N"
? "           QUANTITE        DESIGNATION                     PRIX/BT TTC      TOT TTC"
ELSE
? "           QUANTITE        DESIGNATION                     PRIX/BT HT       TOT HT"
ENDI
?
?
?
?
nlfac=prow()
IF REP="O"
SET print OFF
ENDI
SELE LG
SET RELATION TO CODEARTI INTO AR
GO TOP
SEEK VNUMTMP
DO WHILE LG->NUMFACT = VNUMTMP
IF REP="O"
SET PRINT ON
ENDI
*?? CHR(15)
IF LG->QUANTITE # 0
 IF FC->TYPE="N"
  IF FC->PROF="O"
  ?? " ",AR->DEGRE,"   ",pol2+STR(lg->colisage,5,3)+"x"+STR(lg->quantite,4,0),"          ",AR->DESIGNART,"       ",STR(LG->PRIXUNI,7,2)
  ?? pol1+"    ",LG->PRIXLGHT
  ELSE
  ?? "          ",pol2+STR(lg->colisage,5,3)+"x"+STR(lg->quantite,4,0),"          ",AR->DESIGNART,"       ",STR(LG->PRIXUNI,7,2)
  ?? pol1+"    ",LG->PRIXLGHT
  ENDI
  IF LG->TVA2#0
  TOTTVA2=TOTTVA2+LG->TVA2
  TOTFACHT2=TOTFACHT2+LG->PRIXLGHT-LG->TVA2
  ELSE
  TOTTVA1=TOTTVA1+LG->TVA1
  TOTFACHT1=TOTFACHT1+LG->PRIXLGHT-LG->TVA1
  ENDI
  TOTFAC=TOTFAC+PRIXLGHT
 ELSE
  IF FC->PROF="O"
  ??"",AR->DEGRE,"    ",pol2+STR(lg->colisage,5,3)+"x"+STR(lg->quantite,4,0),"          ",AR->DESIGNART,"    ",STR(LG->PRIXUNI,8,3)
  ?? pol1+"     ",LG->PRIXLGHT
  ELSE
  ?? "          ",pol2+STR(lg->colisage,5,3)+"x"+STR(lg->quantite,4,0),"          ",AR->DESIGNART,"     ",STR(LG->PRIXUNI,7,2)
  ?? pol1+"      ",LG->PRIXLGHT
  ENDIF    
   ****
   IF FC->type="H"
    IF LG->TVA2#0
    TOTTVA2=TOTTVA2+LG->TVA2
    TOTFACHT2=totfacht2+lg->prixlght
    ELSE
    TOTTVA1=TOTTVA1+LG->TVA1
    TOTFACHT1=TOTFACHT1+Lg->prixlght
    ENDI
   ENDI
   ***********************
   TOTFAC=TOTFAC+PRIXLGHT
  ENDI
ELSE
 IF dec=0
 ?
 ?
 ?
 ?
 ?
 ?
 ?
 ?
 dec=1
 nlfac=nlfac+8
 ENDI
*??"        ",pol1+"             "+AR->DESIGNART
ENDI
?
nlfac=nlfac+1
 IF REP="O"
 SET print OFF
 ENDI
SKIP
ENDD
 IF REP="O"
 SET print ON
 ENDI
 IF FC->TYPE #"C"
 DO WHILE nlfac <41
 ?
 nlfac=nlfac+1
 ENDDO
 ELSE
 DO WHILE nlfac <39
 ?
 nlfac=nlfac+1
 ENDDO
 ENDI
?
?
 if abs(totfacht1)<0.03
 totfacht1=0.00
 endi
IF FC->TYPE="N"
 ? "                                                       TOTAL ht              ",(STR(totfacht1,10,2))
 ?
 if abs(tottva1)<0.03
 tottva1=0.00
 endi
 ? "                                                       tva "+str(tva[1]*100,4,1)+"%             ",(STR(tottva1,10,2))
if totfacht1*(1+tva[1])<totfac-.10
? "                                                          xxxxxxxxxxxxxxxxxxxxxxxxxx"
endi
 if abs(totfac)<0.03
 totfac=0.0
 endi
 ? "                                                       TOTAL TTC             ",(STR(totfac,10,2))
 ENDI
 IF FC->TYPE="H"
 TOTFAC=TOTFACHT1+totfacht2+TOTTVA1+tottva2
 FLUSH
 if abs(tottva1)<0.03
 tottva1=0.00
 endi
 ? "                                                       TOTAL ht              ",(STR(totfacht1,10,2))
 ? "                                                       tva "+str(tva[1]*100,4,1)+"%             ",(STR(tottva1,10,2))
if totfacht1*(1+tva[1])<totfac-.50
? "                                                          xxxxxxxxxxxxxxxxxxxxxxxxxx"
endi
 if abs(totfac)<0.03
 totfac=0.0
 endi  
  ? "                                                       TOTAL TTC             ",(STR(totfac,10,2))
 ENDI
 IF fc->TYPE="S"
 ?
 ?"                      FACTURE ETABLIE EN SUSPENSION DE TVA"
 ?"                      ACQUIT Nø "+fc->DAA+" "+"ATTESTATION DEMANDEE"
 ENDI
 IF fc->TYPE="E"
 ?
 ?"                      FACTURE EXPORT SANS TVA"
 ?"                      PRIX DEPART DOMAINE"
 ?"                      ACQUIT Nø "+fc->DAA
 ?
 ?"                      RŠglement de votre banque …"
 ?"                      "+vbqad
 ?"                      ETB "+vetab+" GUI "+vguichet+" CPT "+vcomptebq
 ?"                      SWIFT "+vSWIFT+" IBAN "+vIBAN

 ENDI
 IF fc->TYPE="C"
 ?
 ?"                      FACTURE HORS  TVA FRANCAISE"
 ?"                      Livraison exon‚r‚e en vertu de l'article 262 ter du CGI"
 ?"                      PRIX DEPART DOMAINE"
 ?"                      SOUS DAA Nø "+fc->DAA
 ?"                      votre ID TVA : "+fc->IDTVACLI
 ?"                      votre accise : "+fc->ACCISCLI
 ?
 ?"                      RŠglement de votre banque …"
 ?"                      "+vbqad
 ?"                      ETB "+vetab+" GUI "+vguichet+" CPT "+vcomptebq
 ?"                      SWIFT "+vSWIFT+" IBAN "+vIBAN
 ENDI
?
 if abs(totfac)<0.03
 totfac=0.0
 endi
? "                                                       NET … PAYER  ",pol3 + STR(totfac,10,2)+" Euros"
if vrepeuro="O"
? pol1 +"                                   soit pour 1 euro … "+str(veuro,7,5)+" F :  ",str(totfac*veuro,10,2)+" Francs"
else
? pol1
endi
? "                    VALEUR EN VOTRE AIMABLE REGLEMENT"
?
DO CASE
CASE FC->MODPAYE = "FS"
?"                                 FACTURE SOLDEE"
CASE FC->MODPAYE = "30"
?"                                 PAIEMENT AU "+DTOC(FC->DATEFACT+30)
CASE FC->MODPAYE = "60"
?"                                 PAIEMENT AU "+DTOC(FC->DATEFACT+60)
CASE FC->MODPAYE = "90"
?"                                 PAIEMENT AU "+DTOC(FC->DATEFACT+90)
CASE FC->MODPAYE = "AC"
?"                                 PAIEMENT SUIVANT ACCORD"
CASE FC->MODPAYE = "75"
?"                                 PAIEMENT AU "+DTOC(FC->DATEFACT+75)
CASE FC->MODPAYE = "45"
?"          PAIEMENT AU "+DTOC(FC->DATEFACT+45)
OTHER
? "                      PAIEMENT A RECEPTION DE FACTURE "
ENDC
 IF REP="O"
 ?"                                   "
 eJECT
 SET print OFF
 ELSE
 WAIT
 ENDI
SELE FC
SET ORDER TO 2
SEEK VNUMTMP
 IF EOF()
 ? "NON TROUV‚"
 WAIT
 ELSE
  IF REP ="O"
  REPLACE FC->IMPRESSION WITH .T.
  ENDIF

 REPLACE MONTHT1 WITH TOTFACHT1,MONTHT2 WITH TOTFACHT2,TVA1 WITH TOTTVA1,TVA2 WITH TOTTVA2;
,FC->TTC WITH TOTFAC

 ENDI
SET ORDER TO 1
SELE LG
SET RELATION TO
SELE FC
IMPRIME=IMPRIME+1
ENDDO
RETU
