*******************************************************************************************************
* Gnration d'un fichier excel pour rcuprer le dtail des salaires bruts et des charges patronales
* pour les administratifs
* spcif Evreux
* vanessa - dcembre 2003
*******************************************************************************************************

EXECUTE "SET-THOUS ."
EXECUTE "SET-DEC ,"
EXECUTE "DATE.FORMAT"
OPEN "","CIVILAIDANT" TO F.CIVILAIDANT ELSE PRINT "OUVERTURE CIVILAIDANT" ;* en lecture
OPEN "","DETAILCALCUL" TO F.DETAILCALCUL ELSE PRINT "OUVERTURE DETAILCALCUL" ;* en lecture
OPEN "","FUSION" TO F.FUSION ELSE PRINT "OUVERTURE FUSION" ;* en lecture criture
OPEN "","RUBCHARGE" TO F.RUBCHARGE ELSE PRINT "OUVERTURE RUBCHARGE" ;* en lecture criture

*******************************************************************************************************

0
PRINT "Priode de dbut (AAAAMM) : "
INPUT W_PerDeb 
IF W_PerDeb MATCH "6N" ELSE GOSUB 0

1
PRINT "Priode de fin (AAAAMM) : "
INPUT W_PerFin 
IF W_PerFin MATCH "6N" ELSE GOSUB 1


   W_Temp = 'SELECT DETAILCALCUL AVEC FonctionContrat = "A" AND AVEC PeriodeDetailCalcul >= "':W_PerDeb:'"'

   W_Temp=W_Temp:' AND AVEC PeriodeDetailCalcul <= "':W_PerFin:'"'

   W_Temp=W_Temp:' PAR NomPrenomAidantDetailCalcul PAR @ID'

   EXECUTE W_Temp

   W_End="FAUX"
   W_Tab=""
   W_SauveAidant=""

   GOSUB 10
   GOSUB 20
   W_Ligne=2

   LOOP
      READNEXT W_Cle ELSE W_End = "VRAI"
   WHILE W_End = "FAUX" DO
      READ ENR_DETAILCALCUL FROM F.DETAILCALCUL,W_Cle ELSE ENR_DETAILCALCUL=""

      IF W_SauveAidant="" THEN
         W_SauveAidant=W_Cle[1,5]
      END
      IF W_SauveAidant = W_Cle[1,5] THEN

         GOSUB 30

      END ELSE

         READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_SauveAidant ELSE ENR_CIVILAIDANT=""

         W_Tab<W_Ligne>=W_SauveAidant:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_Brut/100:";":W_Urssaf/100:";":W_Assedic/100:";":W_Prevoyance/100:";"
         W_Tab<W_Ligne>=W_Tab<W_Ligne>:W_RetSal/100:";":W_RetCadre/100:";":W_TaxeSal/100:";":W_Construct/100:";":W_Formation/100:";":W_CE/100:";"
         W_Tab<W_Ligne>=W_Tab<W_Ligne>:W_TotCharge/100:";":W_TotGene/100

         W_Ligne=W_Ligne+1

         GOSUB 20
         W_SauveAidant = W_Cle[1,5] 
         GOSUB 30

      END

   REPEAT

   READ ENR_CIVILAIDANT FROM F.CIVILAIDANT,W_SauveAidant ELSE ENR_CIVILAIDANT=""

   W_Tab<W_Ligne>=W_SauveAidant:";":ENR_CIVILAIDANT<2>:" ":ENR_CIVILAIDANT<3>:";":W_Brut/100:";":W_Urssaf/100:";":W_Assedic/100:";":W_Prevoyance/100:";"
   W_Tab<W_Ligne>=W_Tab<W_Ligne>:W_RetSal/100:";":W_RetCadre/100:";":W_TaxeSal/100:";":W_Construct/100:";":W_Formation/100:";":W_CE/100:";"
   W_Tab<W_Ligne>=W_Tab<W_Ligne>:W_TotCharge/100:";":W_TotGene/100

   WRITE W_Tab ON F.FUSION,"PAIEADM.csv"

STOP

*******************************************************************************************************
* ECRIT ENTETE DU TABLEAU
10

   W_Tab<1>="Code;Nom Prenom;Brut;URSSAF;ASSEDIC;PREVOYANCE;RETRAITE SALARIE;RETRAITE CADRE;"
   W_Tab<1>=W_Tab<1>:"TAXES SUR SALAIRES;CONSTRUCTION;FORMATION;COMITE D'ENTREPRISE;Total charges patronales;Total bruts + charges patronales"

RETURN

*******************************************************************************************************
* RAZ VARIABLE
20

   W_Brut=0
   W_Urssaf=0
   W_Assedic=0
   W_Prevoyance=0
   W_RetSal=0
   W_RetCadre=0
   W_TaxeSal=0
   W_Construct=0
   W_Formation=0
   W_CE=0
   W_TotCharge=0
   W_TotGene=0

RETURN

*******************************************************************************************************
* CUMUL DES VALEURS
30

   W_Brut = W_Brut + ENR_DETAILCALCUL<7>
   W_TotGene=W_TotGene+ENR_DETAILCALCUL<7>

   W_Count=DCOUNT(ENR_DETAILCALCUL<8>,CHAR(253))
   FOR i = 1 TO W_Count

      READ ENR_RUBCHARGE FROM F.RUBCHARGE,ENR_DETAILCALCUL<8,i> ELSE ENR_RUBCHARGE=""
      BEGIN CASE
         CASE ENR_RUBCHARGE<16> = "01"
            W_Urssaf=W_Urssaf+ENR_DETAILCALCUL<14,i>
      	 CASE ENR_RUBCHARGE<16> = "02"
            W_Assedic=W_Assedic+ENR_DETAILCALCUL<14,i>
    	 CASE ENR_RUBCHARGE<16> = "03"
            W_RetSal=W_RetSal+ENR_DETAILCALCUL<14,i>
       	 CASE ENR_RUBCHARGE<16> = "04"
            W_RetCadre=W_RetCadre+ENR_DETAILCALCUL<14,i>
         CASE ENR_RUBCHARGE<16> = "05"
            W_TaxeSal=W_TaxeSal+ENR_DETAILCALCUL<14,i>
      	 CASE ENR_RUBCHARGE<16> = "06"
            W_Formation=W_Formation+ENR_DETAILCALCUL<14,i>
    	 CASE ENR_RUBCHARGE<16> = "07"
            W_Construct=W_Construct+ENR_DETAILCALCUL<14,i>
       	 CASE ENR_RUBCHARGE<16> = "08"
            W_Prevoyance=W_Prevoyance+ENR_DETAILCALCUL<14,i>
       	 CASE ENR_RUBCHARGE<16> = "09"
            W_CE=W_CE+ENR_DETAILCALCUL<14,i>
      END CASE  

      W_TotCharge=W_TotCharge+ENR_DETAILCALCUL<14,i>
      W_TotGene=W_TotGene+ENR_DETAILCALCUL<14,i>

   NEXT i

RETURN
