*SAISIE DE LA FACTURE ENTETE
NLFAC=40
NLPG=66
NLET=5
SET ESCAP OFF
SELECT 1
USE SDCLIENT INDEX SDCLIENT automem ALIAS CL
SELE 2
USE SDFACTUR INDEX SDFACTUR,FACTURN ALIAS FC
SELE 3
USE SDARTI INDEX SDARTI ALIAS AR
SELE 4
USE SDLIGNES INDEX SDLIGNES,SDLIGNE2 ALIAS LG
TITRE = "SAISIE DES FACTURES"
rep="N"            
DO WHILE .T.
VCODE = SPACE(6)
SELE 1
GO TOP        
do titre
@ 7,12 SAY "CLIENT " GET VCODE PICTURE "!!!!!!"
READ
IF VCODE  =SPACE(6)
 exit
endi
SET EXACT OFF
vrech =VCODE
FIND &Vrech
SET EXACT ON
IF EOF()
rep="N"
@ 10,12 SAY "Ce CLIENT est inexistant "
@ 12,12 SAY "VOULEZ VOUS LE CREER O/N " GET REP
READ
IF UPPER(REP)="O"
clear automem                         
set format to sdSCLIEN
read           
appen blank                
replace  automem
close format                           
REPLACE CODECLI WITH  VCODE
WAIT           
@ 6,0 CLEAR
ELSE
LOOP
ENDI
if VCODE #"*"
DO SDPRESC.PRG
@ 23,0 SAY " "    
WAIT    
ELSE     
DO SDPRESC.PRG     
CLEAR TYPE                                        
@ 22 ,10 SAY "Est ce le bon O/N" GET REP
READ    
IF REP="N"     
LOOP     
ENDI     
ENDI      
vcodcli=vrech       
SELE FC
*REPLACE FC->NOMCLI WITH CL->NOMCLI
*ELSE
*SELE FC
*DO BGSENTF.PRG
*ENDI
SET ORDER TO 1
GO TOP
DO TITRE           
FIND &VRECH
IF .NOT. EOF()
REP= "C"
@ 10,12 SAY "CREATION OU MODIFICATION C/M " GET REP PICTURE "!"
READ
IF REP = "M"
@ 10,16 SAY "NUMERO FACTURE" GET VNUMTMP PICTURE "99999"
READ
SET ORDER TO 2
SEEK VNUMTMP
IF EOF()
? "NON TROUVE "
SET ORDER TO 1
LOOP
ELSE
SET ORDER TO 2
DO SDMODFAC.PRG     
SET ORDER TO 1
LOOP
ENDIF
ELSE
APPE BLANK
@ 6,0 clear
@ 10,15 SAY "NUMERO FACTURE" GET VNUMTMP PICTURE "99999"
READ
*VNUMTMP=FC->NUMERO
REPLACE FC->CODECLI WITH VCODE,DATEFACT WITH DATE() ,NUMERO  WITH VNUMtmp
IF VCODE ="*"
DO BGSENTF.PRG
ENDI
DO SDSLIGN0.PRG
ENDi
ELSE
APPE BLANK
@ 6,0 clear
@ 10,15 SAY "NUMERO FACTURE" GET VNUMTMP PICTURE "99999"
READ
*VNUMTMP=FC->NUMERO
REPLACE FC->CODECLI WITH VCODE,DATEFACT WITH DATE() ,NUMERO  WITH VNUMtmp
IF VCODE ="*"
DO BGSENTF.PRG
ENDI
do sdslign0.prg
endiF
SELE 4
*DO SDSLIGN0.PRG
DO SDVALIMP.PRG
do sdvalid.prg
VNUMTMP=VNUMTMP+1
VNUM=VNUMTMP
ENDD
CLOSE DATA
SET SAFE OFF
SAVE ALL LIKE VNUM* TO NUMFAC
SET SAFE ON
RETU

