Fichier .ini > essai4

Titreessai4
Postée le23-08-2010
Affichée205
Mini-lien
Description

essai4

EtatInconnu. Inconnu.
Code d'insertion
Options
Afficher les numéros de lignes  Mettre la source en plein ecran  Selectionner la source  Partager sur Facebook 
Téléchargement Telecharger en format txt  Telecharger en format pdf  Telecharger en format ini
Plein ecran
BizModel::main_list ( code traitement , date )
-------------------------------------------------

;   init & lecture de la liste des stations
       
    1. BizModel::list_Init ( code traitement , date )        
       
;   lecture & modélisation du marché national
   
    ' TYPE_PARLIST*inter = NULL;
   
    BOUCLE 1->' donnees.var::nbprod
;   pour tous les numpdModel existants  
       
;       modélise le marché
                                       
        2. BizModelFortan::modelMarket()      
       
            2.1.   DAOModel::readMarket( datDebMar , datFinMar , productName , valmarche , nbmreel )
           
                        ' ((' ? '))
[                       SELECT NSE_SALES FROM TNATIONALSALES WHERE NSE_ARTY_CODE=:1 AND NSE_DATE BETWEEN TO_DATE(:2, 'YYYYMMDD') AND TO_DATE(:3, 'YYYYMMDD') ORDER BY NSE_DATE            
;                           init outMarkedValues
       
[           F::mod_marche ( datDebMar , datFinMar )            
       
    <--FIN BOUCLE ' modèles
         
;   efface les données de TTOPTISTA

    3. DAOModel::DAODeleteCalData ( inter.liste )
   
        ' ((' ? '))
[       DELETE FROM TOPTISTA WHERE TTOA_CODESTATION IN (SELECT MSNL_MSN_STACODE FROM TMANAGEDSTATIONLIST WHERE MSNL_LST_NAME=:1)


[############################################################################################################################################################################]
; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;       début traitement stations
;           (début boucle principale)
; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[############################################################################################################################################################################]

           
    BOUCLE 1->BizModel::nbstation
;   pour toutes les stations

;       lecture des compétiteurs et des stations
        4. DAOModel::DAOReadListCompetitor ( stationName , tabconc , &nb_conc , libconc , codemarqueconc )
             
;             recovery of competitor station's codes              
              ITERE ' codecompetitor->competitornumber[codecompetitor<>''] ((' 118 '))
[             SELECT CPR_MSN_STACODE, CPR_STA_CODE, CPR_DISTANCE FROM TCOMPETITOR WHERE CPR_MSN_STACODE= :1            
;                 init board competitor

;                 recovery of TYPE_TABCONC boardcompetitor's attributs
             
                  ITERE ' ((' 562 '))
[                 SELECT MSN_STA_CODE FROM TMANAGEDSTATION WHERE MSN_STA_CODE = :1

                      SI DERNIER
                 
;                         the competitor station is managed :it s a ELF type s station
                   
                          4.1. BizModel::DAOReadStation ( bordcompetitor.infoelf , 1)
                 
;                                 retrouve les données des stations

                                  BOUCLE i=0->nbsta  
                             
                                        ' ((' 172 '))
[                                       SELECT STA_CODE, STA_NAME, STA_LONGITUDE, STA_LATITUDE, STA_GEO_CODE FROM TSTATION WHERE STA_CODE = codestation
;                                       init station board
       
                                  <--FIN BOUCLE
       
;                                 retrouve les données des groupes de stations

                                  ITERE   ' ((' 172 '))
[                                 SELECT GRP_NAME, MSNL_MSN_STACODE FROM TMANAGEDSTATIONLIST, TGROUP WHERE MSNL_LST_NAME = GRP_LST_NAME AND MSNL_MSN_STACODE = :1 AND GRP_ISMAINGROUP = 1                
;                                 init stationboard.groupe  
                         
                      SINON
                 
;                         the competitor station is unmanaged :it s not a ELF type s station                  
                   
                          4.2. BizModel::DAOReadCompetitor ( boardcompetitor.infoconc , brd_name )
                 
                              ' ((' ? '))
[                             SELECT STA_LONGITUDE, STA_LATITUDE, BRD_NAME, BRD_NUMBER , STA_IS_DISCOUNTER FROM TSTATION , TBRAND WHERE STA_BRD_NAME=BRD_NAME AND STA_CODE = :1  
;                                 init infoconc
                 
                      <--FIN SI

                <--FIN ITERE
               
        <--FIN ITERE                
       
        SI ' donnees.var::inter.cumul = 1      
            5. DAOModel::DAOReadCompetitorListTreat ( MAXNBCONC-2 , stationboardModel , nbstation , cumconc , libcumconc )
       
                   ITERE ' ((' 117 '))
[                  SELECT BRD_NAME, BRD_NUMBER FROM TBRAND WHERE BRD_ISMAIN = '1' ORDER BY BRD_NUMBER
       
;       détection GMS dans le competitor
   
        6. BizModelFortran::detectDiscounter()
                                     
[           F::cro_detectgms ( )                                    

; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;       pour tous les produits du modèle
; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                     
        BOUCLE 1->' donnees.var::nbprod
;       pour tous les produits du modèle        

            7. DAOModel::DAOReadNationalPrice ( stationName , libelleproduit , datDebStr , t_prixNational )
           
                  ITERE ' ((' 709 '))
[                 SELECT MAX(TO_CHAR(NPC_APPLICATIONDATE, 'YYYYMMDD')) FROM TNATIONALPRICE , TSTATIONZONE WHERE NPC_ZON_CODE = SZE_ZON_CODE AND SZE_MSN_CODESTA = :1 AND NPC_ARTY_CODE= :2  AND NPC_APPLICATIONDATE<= TO_DATE(:3, 'YYYYMMDD')            
           
;                 Get last national price before treatment's begin date

                  ITERE ' ((' ? '))
[                 SELECT NPC_PRICE FROM TNATIONALPRICE WHERE NPC_ZON_CODE=SZE_ZON_CODE AND SZE_MSN_CODESTA=:1 AND NPC_ARTY_CODE=:2 AND NPC_APPLICATIONDATE = TO_DATE(:3, 'YYYYMMDD')
               
                  SI ' inputDate != inBegDate && inputDate != ""
               
                      ITERE ' ((' 708 '))
[                     SELECT NPC_PRICE, TO_CHAR(NPC_APPLICATIONDATE, 'YYYYMMDD') FROM TNATIONALPRICE , TSTATIONZONE WHERE SZE_MSN_CODESTA=:1 AND NPC_ZON_CODE = SZE_ZON_CODE AND NPC_ARTY_CODE = :2 AND NPC_APPLICATIONDATE BETWEEN TO_DATE(:3, 'YYYYMMDD') AND TO_DATE(:4, 'YYYYMMDD')
                 
                  <--FIN SI
                 
                  ITERE ' ((' 708 '))
[                 SELECT NPC_PRICE, TO_CHAR(NPC_APPLICATIONDATE, 'YYYYMMDD') FROM TNATIONALPRICE , TSTATIONZONE WHERE SZE_MSN_CODESTA=:1 AND NPC_ZON_CODE = SZE_ZON_CODE AND NPC_ARTY_CODE = :2 AND NPC_APPLICATIONDATE BETWEEN TO_DATE(:3, 'YYYYMMDD') AND TO_DATE(:4, 'YYYYMMDD')        
;                     init outNationalPrices            
           
            SI ' donnees.var::inter.produit = 1

;               préparation de l'init des données                
                8. BizModelFortran::prepareInitialisation ( )
               
[                   F::pre_init ( )      
               
                SI '  donnees.var::inter.listhisto = 1 etalors  donnees.var::inter.model = 1
               
                    9. BizModelFortran::readPreviouslySavedData ( )                                                              
                   
;                       First search last index in table for corresponding article and  station                        
                        9.1. DAOReadHisto ( productname , stationname , histo , inReadIndex=-1 , 1 )
                       
                            SI
                            ' ((' ? '))
[                           SELECT MAX(MHO_INDEX) FROM TMODELHISTO WHERE MHO_MAE_ARTYCODE=:1 AND MHO_MAE_MSNSTACODE=:2
                            ' > -1
                            ALORS
                           
                                ITERE ' ((' ? '))
[                               SELECT TO_CHAR(MHO_BEGINDATE,'YYYYMMDD'), TO_CHAR(MHO_ENDDATE,'YYYYMMDD'), MHO_STACODE, MHO_QUALITY, MHO_SENSIBILITY, MHO_AVGECORRECTSALE, MHO_OFFSETCORRECTSALE, MHO_UNIMARGE, MHO_MONTHLYMARG, MHO_IMAGE, MHO_MBUREF,MHO_COEFLINEREF, MHO_COEFLINECONCRT, MHO_COEFLINEMBU, MHO_COEFPROXIREF, MHO_COEFPROXICONCRT,MHO_COEFPROXIMBU, MHO_COEFOFFSET, MHO_COEFGULFWAR, MHO_COEFCROSSARTICLE, MHO_COEFNATIONALMARKET,MHO_COEFIMAGEPOS, MHO_COEFIMAGENEG FROM TMODELHISTO WHERE AND MHO_INDEX = :3
                                               
                            <--FIN SI        
                           
                        TANTQUE                    
                        ' daoreadhisto = 0
                            9.2. DAOReadHisto ( productname , stationname , histo , index , 1 )   ' index > 0
                           
                                ITERE ' ((' ? '))
[                               SELECT TO_CHAR(MHO_BEGINDATE,'YYYYMMDD'), TO_CHAR(MHO_ENDDATE,'YYYYMMDD'), MHO_STACODE, MHO_QUALITY, MHO_SENSIBILITY, MHO_AVGECORRECTSALE, MHO_OFFSETCORRECTSALE, MHO_UNIMARGE, MHO_MONTHLYMARG, MHO_IMAGE, MHO_MBUREF,MHO_COEFLINEREF, MHO_COEFLINECONCRT, MHO_COEFLINEMBU, MHO_COEFPROXIREF, MHO_COEFPROXICONCRT,MHO_COEFPROXIMBU, MHO_COEFOFFSET, MHO_COEFGULFWAR, MHO_COEFCROSSARTICLE, MHO_COEFNATIONALMARKET,MHO_COEFIMAGEPOS, MHO_COEFIMAGENEG FROM TMODELHISTO WHERE AND MHO_INDEX = :3
                           
                        <--FIN TANT QUE        
                       
[                       F::lis_fictovar( &index )                                                        
                   
                SI '  donnees.var::inter.prepa = 1

;                   préparation des données                
                    10. BizModelFortran::readStationData ( interModel->m_sTrtType )
                   
                        10.1. DAOModel::DAOReadSpecialsDays ( jourspeciaux , inter.fin )
                       
                              ITERE
[                             SELECT TO_CHAR(SPD_DATE, 'YYYYMMDD'), TO_CHAR( NVL(SPD_PREVYEARDATE, SPD_DATE-7), 'YYYYMMDD' ) FROM TSPECIALDAYS WHERE SPD_DATE BETWEEN TO_DATE(:1, 'YYYYMMDD') AND TO_DATE(:2, 'YYYYMMDD')                      
                       
                        10.2. BizModelFortran::readReferencePrice ( transprod )
                       
                            10.2.1.  DAOModel::DAOReadReferencePrice ( stationname , innumprod -1 , nbprod , begdate , enddate , tabref , iers , produit , 1 , defaultRound )
                           
                                10.2.1.1. DAOModel::DAOReadReferenceStation ( inStationCode , stationref , inproduct , innumpd )

                                      ITERE ' ((' 354 '))
[                                     SELECT MAE_ARTY_CODE, RFZ_TYPE, RFZ_SPECIFICNAME, RFZ_REFZONECODE FROM TREFERENCEZONE, TMANAGEDARTICLE WHERE RFZ_REFZONECODE=MAE_RFZ_REFZONECODE AND MAE_MSN_STACODE = :1 [ AND MAE_ARTY_CODE = :2 ](si inNumProd<>-1)

                                ' ((' 354 '))
[                               SELECT TO_CHAR( MAX(RZP_DATEDAILY), 'YYYYMMDD' ) FROM TREFERENCEZONEPRICE WHERE RZP_ARTY_CODE = :1 AND RZP_RFZ_REFZONECODE = :2 AND RZP_DATEDAILY <= TO_DATE(:3, 'YYYYMMDD')
                       
                                ITERE ' ((' 354 '))
[                               SELECT RZP_REFPRICE, TO_CHAR(RZP_DATEDAILY, 'YYYYMMDD') FROM TREFERENCEZONEPRICE WHERE RZP_ARTY_CODE = :1 AND RZP_RFZ_REFZONECODE = :2 AND RZP_DATEDAILY BETWEEN TO_DATE(:3, 'YYYYMMDD') AND TO_DATE(:4, 'YYYYMMDD') ORDER BY RZP_DATEDAILY                                
                       
                        10.3. DAOModel::DAOReadCostTable ( productname , stationname , COS_VALUE_TVA , begDate , endDate , tabtva , 0.0 , 0 )
                   
                                ITERE ' ((' 236 '))
[                               SELECT COS_VALUE_TVA ,  TO_CHAR(COS_DATE , 'YYYYMMDD')  FROM TCOST3 WHERE COS_MAE_CODEARTY = :1 AND COS_DATE BETWEEN TO_DATE(:2, 'YYYYMMDD') AND TO_DATE (:3, 'YYYYMMDD') AND COS_MAE_STACODE = :4  ORDER BY COS_DATE
                                                             
                        SI ' inter.model == '1' && inter.saison == '0'                        
                            10.4. DAOModel::DAOReadBeginModel ( stationname , beginmodel )                                                                                  

                            ITERE ' ((' ? '))
[                           SELECT TO_CHAR(WRK_DATE, 'YYYYMMDD') FROM TWORK WHERE WRK_MSN_STACODE = :1

                        10.5. BizModelFortran::decodData ( 1 , strttype )

                            10.5.1. DAOModel::DAOReadDecimal ( stationame , decimal , defaultDecimalNum )

                                  ITERE ' ((' 344 '))                          
[                                 SELECT MSN_DECIMALNUMBER, TO_CHAR(MSN_DECIMALNUMBERFROMDATE,'YYYYMMDD'), TO_CHAR(MSN_DECIMALNUMBERTODATE , 'YYYYMMDD') FROM TMANAGEDSTATION WHERE MSN_STA_CODE = :1                            
                           
                            10.5.2. DAOModel::DAOReadDataElf ( productname , stationname , begDate , endDate , tabPVElf , nbpvelf , a_vente , inindicmod , ratio , decimal.nb , strttype )

                                  SI ' strtype = 01_FOLLOW

                                      ITERE ' ((' 344 '))          
[                                     SELECT TO_CHAR(ADD_DAILYDATA, 'YYYYMMDD'), ADD_SENTPRICE, ADD_DISPLAYPRICE, ADD_SALES, ADD_CORRECTEDSALES,RUNC(ADD_DAILYDATA)-TO_DATE("+ inBegDate + ", 'YYYYMMDD'), ADD_USERCORSALES FROM TARTICLEDAILYDATA where ADD_MAE_CODEARTY= :1 AND ADD_MAE_CODESTAT=:2 AND ADD_DAILYDATA BETWEEN TO_DATE(:3, 'YYYYMMDD')  AND O_DATE(:4, 'YYYYMMDD') AND ( ADD_SENTPRICE<>:5 OR ADD_DISPLAYPRICE<>:6) ORDER BY ADD_DAILYDATA    
                                 
                                  SINON
                                 
                                      ITERE ' ((' ? '))          
[                                     SELECT TO_CHAR(t1.ADD_DAILYDATA, 'YYYYMMDD'),t1.ADD_SENTPRICE, t1.ADD_DISPLAYPRICE, FROM TARTICLEDAILYDATA t1,DECODE (t1.ADD_USERCORSALES,-1,DECODE (t2.ARTY_OPTIMODE, 0, DECODE(t1.ADD_SALES, -1, 0, t1.ADD_SALES),1, DECODE(t1.ADD_SALES, -1, 0,t1.ADD_SALES - DECODE(t1.ADD_SALEREBATEPRICE, -1, 0, t1.ADD_SALEREBATEPRICE)- DECODE(t1.ADD_SALESCALEPRICE, -1, 0, t1.ADD_SALESCALEPRICE))),t1.ADD_USERCORSALES),t1.ADD_CORRECTEDSALES, TRUNC(t1.ADD_DAILYDATA) - TO_DATE( inBegDate , 'YYYYMMDD'), t1.ADD_USERCORSALES FROM TARTICLEDAILYDATA t1, TARTICLETYPE t2 WHERE t1.ADD_MAE_CODEARTY = t2.ARTY_CODE AND t1.ADD_MAE_CODEARTY = :1 AND t1.ADD_MAE_CODESTAT = :2 AND t1.ADD_DAILYDATA BETWEEN TO_DATE( :3, 'YYYYMMDD') AND TO_DATE( :4, 'YYYYMMDD') AND (t1.ADD_SENTPRICE <> :5 OR t1.ADD_DISPLAYPRICE <> :6) ORDER BY t1.ADD_DAILYDATA                                          
                                 
                                  <--FIN SI

;                           pour tous les competitors (conc)
                           
                            BOUCLE i=0->nb_conc-1
                           
                                SI ' tabconc.type = C
                           
                                    10.5.3. DAOModel::DAOReadDataComp ( productname , competitor , begdate , enddate , tabpconv , nbpconc , inindicmod )
                                   
                                         ' ((' 543 '))          
[                                        SELECT  TO_CHAR( MAX(ESP_DATE), 'YYYYMMDD' ) FROM TESTIMATEDPRICE WHERE ESP_UMAE_ARTYCODE=:1 AND ESP_DATE<=TO_DATE(:2, 'YYYYMMDD') AND ESP_UMAE_UMSNCODE = :3                                    
                               
                                         ITERE ' ((' 544 '))          
[                                        SELECT ESP_PRICE, TO_CHAR(ESP_DATE, 'YYYYMMDD') FROM TESTIMATEDPRICE WHERE ESP_UMAE_ARTYCODE= :1 AND ESP_UMAE_UMSNCODE=:2 AND ESP_DATE BETWEEN TO_DATE(:3, 'YYYYMMDD') AND TO_DATE(:4, 'YYYYMMDD') ORDER BY ESP_DATE                                
                               
                                SINON
                               
                                    10.5.4. DAOModel::DAOReadDecimal ( competitor , decimal , bizModel.defaultDecimalNum )
                                   
                                          ...
                                   
                                    10.5.5. DAOModel::DAOReadDataElf ( productname , competitor , begDate , endDate , tabPCElf , nbpconc , tabSales , inIndicMod , ratio , decimal.nb , strttype )
                               
                                          ...
                               
                                <--FIN SI
                           
                            <--FIN BOUCLE
                   
                        SI ' iers = 0
                            10.6. BizModelFortran::readMaterialAndTaxCost ( )                                          
                   
[                               F::lis_prepa(&iers_init, &iers_taxes, &iers_decod, tabtva, (char *)beginModel.c_str())                  
                     
[                       F::pre_decod( &inIndicMod, tabPVElf, tabPConc, &nbPVElf, nbPConc )
                       
                SI ' sw_prepaModel = 1
               
                    SI ' donnees.var::inter.marge = 1

;                       calcul des marges                                      
                        11. BizModelFortran::computeMargin ( )

                            SI ' sw_prepa = 1
                           
                                11.1. BizModelFortran::readMargin ( )
                               
[                               F::lis_marge ( )                                

                        SI ' donnees.var::inter.cumul = 1
                            12. BizModelFortran::saveProductData ( )
                           
[                               F::cum_prepa ( )                                
                             
                    <--FIN SI                            
                             
;                   préparation des corrections saisonnières

                    SI ' donnes.var::inter.saison = 1
                       
                        13. BizModelFortran::initSeasonalAdjustmentCoeff ( )
                       
[                             F::cos_init ( )                        
                       
                        14. BizModelFortran::computeSeasonalAdjustmentCoeff ( )
                       
                              BOUCLE i=0->nb_sai
                             
                                  SI ' idebsai[numsai] < (nbjfin - nbjdeb +1
                                 
                                      SI ' inter.typsai[i] = '1'  
                             
                                          14.1. DaoModel::DAOReadSeasonalShape ( productname , stationname , formesaison )
                             
                                              ' ((' ? '))
[                                             SELECT TO_CHAR(SFM_MONTH1,'MMDD'), TO_CHAR(SFM_MONTH2,'MMDD'), TO_CHAR(SFM_MONTH3,'MMDD'), TO_CHAR(SFM_MONTH4,'MMDD') , TO_CHAR(SFM_AMPLMAY, '9999.000'), TO_CHAR(SFM_AMPLJUNE, '9999.000'), TO_CHAR(SFM_AMPLAUGUST, '9999.000') FROM SEASONNALFORM SFM_MAE_CODEARTY=:1 AND SFM_MAE_CODESTAT=:2                                              
                             
[                                          F::cos_co1(&idebsai[numsai], &ifinsai[numsai], &numsaif)

                                      <--FIN SI

                                       SI ' inter.typsai[i] = '2'
                                       
[                                          F::cos_co2(&idebsai[numsai], &ifinsai[numsai], &numsaif)
                                       
                                       <--FIN SI  

                                  <--FIN SI
                             
                              <--FIN BOUCLE                            
                     
                    <--FIN SI                                          
               
;                   calcul du modèle

                    SI ' donnees.var::inter.cumul!=1 etalors donnees.var::inter.model=1
                        15. BizModelFortran::computeModel ( )
                       
                            SI ' sw_prepa == 1
                           
                                15.1. BizModelFortran::initModelComputation ( )
                               
                                    15.1.1. BizModelFortran::DAOReadWork ( stationname , workDate )
                                                                       
                                        ' ((' ? '))
[                                       SELECT TO_CHAR(WRK_DATE, 'YYYYMMDD') FROM TWORK WHERE WRK_MSN_STACODE = :1                                      
                                   
[                                   F::mod_init ((char *)workDate.c_str())                                  
                               
                                15.2. BizModelFortran::prepareModel ( )
                           
;                                   ssi le modèle n'a pas déjà été calculé

                                    Si ' sw_model != 1
                                   
[                                       F::mod_bouclemod ( )

                                        SI ' recalculmodel = 1
[                                          F::mod_bouclemod ( )                                                                                    
 
                                        15.2.1. BizModelFortran::testModel ( 1 )

                                            15.2.1.1. DaoModel::DAOReadHisto ( productname , stationname , histo , -1 , 1 )

                                                TANTQUE ' index>0 && iers = 0
                                               
[                                                   F::mod_testmodel (&inSearchType, xFind, &index)
                                               
                                                    SI ' index > 0
                                                   
                                                        DaoModel::DAOReadHisto ( productnamme , stationname , histo , index , 1 )
                                               
                                                <--FIN TANTQUE

                                        15.2.2. BizModelFortran::testModel ( 2 )
                                       
                                          ...
                                   
                                    <--FIN SI                                
                           
                                    SI ' sw_saison != '1'
                                   
                                        15.2.3. DAOModel::DAOReadImage ( productname , stationname , sdate , imagestock )
                                   
                                            ' ((' ? '))
[                                           SELECT IMG_VALUE, IMG_AVERAGEPRICE, IMG_AVERAGEBALANPRICE, IMG_AVERAGENATIONSALE , IMG_MAE_CODESTAT=:1 AND IMG_MAE_CODEARTY=:2 AND IMG_DATE=TO_DATE(:3, 'YYYYMM') FROM TIMAGE                                            
                                   
[                                       F::mod_ventem ( ssx, &c_ivalide[numpd - 1], &param )                                      
                                   
[                                       F::mod_incprix ( )                                    
                                   
[                                       F::mod_projvar ( ventemodel.incpr[numpd - 1] )                                    
                                   
[                                       F::mod_ventem ( ssx, &c_ivalide[numpd - 1], &param)                                    
                                   
;                                       insert model sales in database

                                        15.2.4. DAOModel::DAOWriteModelizedSales ( stationname , productname , ventem , sdate , nbrecord , numpd )                                    

                                                15.2.4.1. DAOModel::setMaxIterations ( nbDays )

                                                ' ((' ? '))                                            
[                                               UPDATE TARTICLEDAILYDATA SET ADD_MODELIZEDSALES = :1 WHERE ADD_MAE_CODESTAT = :2 AND ADD_MAE_CODEARTY =:3 AND ADD_DAILYDATA = TO_DATE(:4, 'YYYYMMDD')          
                                   
                                        SI ' inter.affiche = '1'
                                         
                                        15.2.5. DAOModel::DAOWriteImage ( productname , stationname , ... )
                                           
[                                       F::mod_princ ( )                                        
                                   
                                    <--FIN SI
                           
                            <--FIN SI
                       
;                   safeguard historique

                    SI ' donnees.var::inter.saison = 1
                        16. BizModelFortran::writeModelData ( )
                       
[                           F::lis_vartofic ( )

                            SI ' pres_prod != 0
                           
                                16.1. DAOModel::DAOWriteHisto ( histo , 1 )                            
                       
                                      ' ((' ? '))                        
[                                     SELECT MAX(MHO_INDEX) FROM TMODELHISTO WHERE MHO_MAE_ARTYCODE=:1  AND MHO_MAE_MSNSTACODE=:2                    
                       
                                      ' ((' ? '))                        
[                                     INSERT INTO TMODELHISTO ( MHO_MAE_ARTYCODE , MHO_MAE_MSNSTACODE , MHO_INDEX , MHO_RECORDINGDATE , MHO_BEGINDATE , MHO_ENDDATE , MHO_QUALITY , MHO_AVGECORRECTSALE , MHO_OFFSETCORRECTSALE , MHO_IMAGE , MHO_SENSIBILITY , MHO_UNIMARGE , MHO_MONTHLYMARG , MHO_MBUREF , MHO_COEFLINEREF, MHO_COEFLINECONCRT, MHO_COEFLINEMBU, MHO_COEFPROXIREF, MHO_COEFPROXICONCRT, MHO_COEFPROXIMBU, MHO_COEFOFFSET, MHO_COEFGULFWAR, MHO_COEFCROSSARTICLE, MHO_COEFNATIONALMARKET, MHO_COEFIMAGEPOS, MHO_COEFIMAGENEG,...) VALUES ( ... )
                       
                                      16.1.1. setMaxParamSize ( x , y )
                                           
                                              ...
                                             
                                      16.1.2. setString ( position , value , size )
                                     
                                              ...
                       
;                   corrections saisonnières

                    SI ' donnees.var::inter.saison = 1
                        17. BizModelFortran::computeModelisedStates ( )
                       
[                           F::cos_calcul ( debcor , fincor )

                            17.1. DAOModel::DAOWriteCorrectedSalesData ( productname , stationname , debcor , fincor , nbjdeb , numpd -1 , c_prixelf )
                                               
                                BOUCLE i=inBeginCorrId->inEndCorrId            
                                 
                                    ' ((' ? '))      
[                                   SELECT ADD_DISPLAYPRICE, ADD_SENTPRICE FROM TARTICLEDAILYDATA WHERE ADD_MAE_CODEARTY=:1 AND ADD_MAE_CODESTAT=:2 AND ADD_DAILYDATA=TO_DATE(:3, 'YYYYMMDD')                                                    
                                 
                                <--FIN BOUCLE
                               
                                ' ((' ? '))      
[                               INSERT INTO TARTICLEDAILYDATA VALUES ADD_MAE_CODEARTY , ADD_MAE_CODESTAT , ADD_DISPLAYPRICE = :4 , ADD_DAILYDATE = TO_DATE(:4, 'YYYYMMDD') , ADD_CORRECTEDSALES = :5                                  
                                           
                                SI ' indice > 0
   
                                   ' ((' ? '))      
[                                  INSERT INTO TARTICLEDAILYDATA VALUES ADD_MAE_CODEARTY , ADD_MAE_CODESTAT , ADD_DISPLAYPRICE = :4 , ADD_DAILYDATE = TO_DATE(:4, 'YYYYMMDD') , ADD_CORRECTEDSALES = :5 WHERE ADD_MAE_CODEARTY = :2 AND ADD_MAE_CODESTAT=:3 AND ADD_DAILYDATA =TO_DATE(:4, 'YYYYMMDD')
                               
                                    17.1.1. DaoModel::addIteration ( )
                                 
                                    ...
                                 
                                <--FIN SI
                                                         
;                   optimisation marges

                    SI ' donnees.var::inter.cumul = 1 andalso donnees.var::inter.optim = 1
                   
                        18. BizModelFortran::marginOptimisation ( )                                                                                                                                                                            
               
[                           F::lis_optimd ( &error )

                            SI ' error
                           
                                18.1. DAOModel::DAOWriteCompetitorBehaviour ( productname , stationame , tabconc , hypconc , nb_conc , numpd -1 )
                           
                                    ' ((' ? '))
[                                   DELETE FROM THYPCOMP WHERE THC_MAE_ARTYCODE = :1 AND THC_MAE_STACODE = :2                            
                           
                                    ' ((' ? '))
[                                   INSERT INTO THYCOMP VALUES WHERE TTHC_MAE_ARTYCODE = :1 , THC_MAE_STACODE = :2 , THC_CPR_STACODE = :3 , THC_HYPCOMP = :4
                           
                                SI ' #def EVOMARGEP
                               
                                    18.1.1. DAOModel::DAOReadPrices ( artycode , stacode , datfin )
                                   
                                        18.1.1.1. DAOModel::GetLastDateBefore ( datetimeformat , 'TARTICLEDAILYDATA' , 'ADD_DAILYDATE' , indate , [ADD_MAE_CODESTAT,ADD_MAE_CODEARTY] , values )                                      
                                   
                                            ITERE ' ((' ? '))
[                                           SELECT MAX( TO_CHAR( ADD_DAILYDATE , '" + inFormat + "')) FROM TARTICLEDAILYDATA WHERE inDateField + "<= TO_DATE(" + inDateValue + ", '"+ inFormat + "')" AND ADD_MAE_CODESTAT = :1 AND ADD_MAE_CODEARTY = :2                                  

                                         ITERE ' ((' ? '))
[                                        SELECT ADD_DISPLAYPRICE, ADD_REBATEPRICE, ADD_SCALEPRICE, ADD_SENTPRICE FROM :0 WHERE  ADD_DAILYDATA= TO_DATE(:1 , 'YYYYMMDDHH24MISS') AND ADD_MAE_CODEARTY = :2 AND ADD_MAE_CODESTAT = :3
                                     
                                    18.1.2. DAOModel::DAOReadSales ( AYEAR , artycode , staCode , datFin )
                               
                                         ITERE ' ((' ? '))
[                                        SELECT ADD_SALEREBATEPRICE, ADD_SALESCALEPRICE, ADD_SALES, ADD_DAILYDATA FROM TARTICLEDAILYDATA WHERE ADD_DAILYDATA>TO_DATE(:1, 'YYYYMMDD') AND ADD_DAILYDATA<=TO_DATE(:2, 'YYYYMMDD') AND ADD_MAE_CODEARTY=:3 AND ADD_MAE_CODESTAT=:4 ORDER BY ADD_DAILYDATA ASC  
                               
                                    18.1.3. BizModelFortran::CalCostPrice ( staCode , artyCode , pcout )
                               
                                        18.1.3.1. DAOModel::DAOReadStation ( &stationatt , 1 )
                               
                                            ...
                                         
                                        18.1.3.2. DAOArticle::selectAllManagedArticlePrice ( instacode , groupcode )
                                       
                                            ITERE ' pBizManagedArticleList
                                           
                                                18.1.3.2.1. BizManagedArticle::computeCostingPrice ( indate )
                                               
                                                    18.1.3.2.1.1. BizCostComponent::computeCostingPrice ( )
                                                                                               
                                            <--FIN ITERE
                                       
[                                   F::lis_optimf ( &error , &typOtim , &k )                                    
                               
                                <--FINSI
                           
                            <--FIN SI
                                                       
                            18.1.3. DAOGroup::selectMainGroup ( stationName )
                           
                                ITERE ' ((' ? '))
[                               SELECT GRP_NAME, GRP_LST_NAME, TO_CHAR(GRP_CREATIONDATE, 'YYYYMMDD'), TO_CHAR(GRP_UPDATEDATE,'YYYYMMDD'), GRP_ISMAINGROUP, GRP_ISDEFAULT, GRP_ISORIGINOFDEFAULTGROUP, GRP_USR_LOGIN, USR_PASSWORD, USR_LASTNAME, USR_FIRSTNAME, TO_CHAR ( USR_UPDATEDATE, 'YYYYMMDD'), USR_ISHUMAN, USR_LANG_CODEISO FROM TGROUP , TMANAGEDSTATIONLIST , TUSER WHERE GRP_ISMAINGROUP='1' AND GRP_LST_NAME=MSNL_LST_NAME AND MSNL_MSN_STACODE=:1  AND GRP_USR_LOGIN=USR_LOGIN                                  
                           
                            SI ' error
                           
                                18.1.4. DAOModel::DAOWriteOptim ( resoptim , localGroupName , k , 1 )
                               
                                    ' ((' ? '))
[                                   DELETE FROM TOPTIMIZATION WHERE OPT_MAE_CODEARTY=:1 AND OPT_MAE_CODESTAT=:2 AND OPT_GRP_NAME =:3
                               
                                    ...
                               
                                SI ' nbrecords = 0
                               
                                    ITERE ' ((' ? '))
[                                   SELECT STA_NAME FROM TSTATION WHERE STA_CODE := 1
                               
                                <--FIN SI
                             
                            <--FIN SI
               
                <--FIN SI
               
            <--FIN SI
           
        <--FIN BOUCLE ' produits
       
; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;       fin pour tous les produits du modèle
; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------                  

        SI ' donnees.var::inter.affdoneap = 1

            19. BizModelFortran::importCalculatedData ( date )                        
       
                BOUCLE numpd=1->=nbprod

                    19.1. BizModelFortran::list_Calculated ( )
     
                    19.2. BizModelFortran::getComment ( )
                   
                        SI xxx... , BOUCLE ..
                       
                            19.2.1. DAOModel::DAOReadComment ( commentCode , param , comment )
                           
                                ITERE ' ((' ? '))
[                               SELECT TNS_TRANSLATELABEL FROM TRANSLATE WHERE TNS_CODE=:1 AND TNS_LNG_CODEISO=:2
                       
                        <--FIN SI , FIN BOUCLE ...                    
                   
                    19.3. DAOModel::DAOSavCalData ( opti_sta  , indate )

;                       save calculated datas in database ( inOptiSta )

                        ' ((' ? '))
[                       UPDATE OPTISTA SET TTOA_DATE = :1 , TTOA_CODESTATION = :2, TTOA_NAMEARTICLE =:3,TTOA_DISTRIB =:4,TTOA_COEFLINREF =:5,TTOA_COEFPROXREF =:6, TTOA_QUALITY =:7, TTOA_NBCOMPETITORS =:8, TTOA_NAMESCOMP =:9, TTOA_COEFLINREFCOMP =:10, TTOA_COEFPROXREFCOMP =:11, TTOA_PRICETFE =:12, TTOA_MARGINREF =:13, TTOA_PRICEREF =:14,
[                       TTOA_IMAGE =:15, TTOA_COMMENT =:16, TTOA_NUMBEROPT =:17, TTOA_SENSIINST =:18, TTOA_SENSIGLOB =:19, TTOA_OFFSETREF =:20, TTOA_OFFSETCOMP =:21, TTOA_COEFLINMBU =:22, TTOA_COEFPROXMBU =:23, TTOA_OPT =:24, TTOA_ECTMIN_EUR =:25, TTOA_ECTMAX_EUR                  

                <--FIN BOUCLE
       
        20. BizModel::list_Resul ( codetreatment , date , '0' )
;           écrit les données d'une station ou d'une accumulation de stations

            SI ' inter.savresul = '1' && currentDelay.type = 'S' (typeresult == '0' && inter.cumul == '0') || (typeresult == '1' && inter.cumul == '1'))

              20.1. BizModel::savpvModel ( codetratment , startdate )
;                 save datagraph for quadruple key : (codetreatment , articlecode , startdate , dailydata )            
;                 ...                    
  'X'             20.1.1. DAOModel::DAOReadDataGraphCostValue ( modelarticle , nbarticles , cquot , balancedcostingprice , balancedAverageRebateCard , papyrusNetMargin, cardSalesSum , averageCardSales, cashPrice, cashRefPrice, cashCostingPrice, fsOffset, nbdaybegin, nbdayend - nbdaybegin + 1, tabSize, this->nbarticleModel )
                          ...
 
                  20.1.2. DAOModel::DAOReadDataGraphNationalPrice ( this->ModelArticle, nationalPrice, nbdaybegin, nbdayend - nbdaybegin + 1, this->nbarticleModel )
                          ...
                         
                  20.1.3. DAOModel::DAOWriteDataGraph ( codetreatment, datagraph, this->ModelArticle, startdate, nbdaybegin, nbArticles, nbdayend - nbdaybegin + 1, cquot, balancedCostingPrice, balancedAverageRebateCard, papyrusNetMargin, this->nbarticleModel, cardSalesSum, averageCardSales, nationalPrice, cashPrice, fsOffset, cashRefPrice, cashCostingPrice )
                          ...
                         
                  20.1.4. DAOModel::DAOWriteDataGraphComp ( codetreatment, this->ModelArticle, startdate, dailydata, nbdaybegin, nbCompBrandByArticle, nbArticles, nbdayend - nbdaybegin + 1, nbInsertComp, priceCompetitor, brandNameComp, this->nbarticleModel )
                          ...
           <--FIN SI
           
           SI ' inter.savbatch = 1 & typeresult = 0
           
              20.2. DAOModel::DAOSavDelay ( codetreatment , this->currentDelay, this->nbstation )
                    ...
                   
           <--FIN SI          
           
           SI ' inter.savbatch = 1 & typeresult = 1
           
              20.3. DAOModel::DAOSavDelay ( codetreatment , this->currentDelay, this->nbstation )
                    ...
           
           <--FIN SI              
                   
        SI ' donnes.var::inter.resultfiche = 1
       
            21. BizModel::list_ResultFile ( )
                ...                            
           
    <--FIN BOUCLE ' stations


[############################################################################################################################################################################]
; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
;       fin traitement stations
;           (boucle principale)
; -------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[############################################################################################################################################################################]

   
;   accumulation des traitements sur toutes les stations

    SI ' donnees.var::inter.cumul = 1
 
        22. DAOModel::DAOReadCompetitorListTreat ( MAXNBCONC-2 , stationboardModel , nbstation , cumconc , libcumconc )  
            ...
           
;       pour tous les produits de modèle
        BOUCLE 1->nbprod
       
            SI ' donnees.var::inter.produit [ numpdModel - 1 ] = 1
               
                23. BizModelFortran::processDataFromCumulToStation ( )
                    ...
           
        <--FIN BOUCLE    
   
        24. BizModel::list_Resul ( codetreatment , date , '1' )
            ...
           
    <--FIN SI