2012-10-16 07:44:31 +00:00
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
< ? php
error_reporting ( E_ALL & ~ E_NOTICE );
include_once ( FWK_PATH . 'common/chiffres.php' );
include_once ( FWK_PATH . 'common/dates.php' );
include_once ( INCLUDE_PATH . 'insee/classMInsee.php' );
include_once ( INCLUDE_PATH . 'partenaires/classMGreffes.php' );
include_once ( FWK_PATH . 'common/dates.php' );
include_once ( INCLUDE_PATH . 'partenaires/classMBilans.php' );
$strInfoScript = 'Usage : ' . basename ( $argv [ 0 ]) . " [OPTION]
Calcul des ratios de toute la base entreprise S & D .
Options :
- t Calculer tous les ratios ( * )
2013-06-19 08:24:49 +00:00
- i : XXX Reprendre <EFBFBD> la ligne XXX
- c Mettre <EFBFBD> jour le cache
2012-10-16 07:44:31 +00:00
2013-06-19 08:24:49 +00:00
( * ) Option par d<EFBFBD> faut si aucun argument n ' est pass<EFBFBD> .
" ;/* -e:X Calculer pour les X derniers exercices (3 par d<> faut)
2012-10-16 07:44:31 +00:00
- f Calculer les scores financiers
*/
$iDeb = 0 ;
$updateCache = false ;
for ( $i = 1 ; isset ( $argv [ $i ]); $i ++ ) {
if ( substr ( $argv [ $i ], 0 , 1 ) == '-' ) {
switch ( strtolower ( substr ( $argv [ $i ], 1 , 1 ))) {
case 't' :
break ;
case 'i' :
$iDeb = substr ( $argv [ $i ], 3 ) * 1 ;
break ;
case 'c' :
$updateCache = true ;
break ;
case '-' :
case '?' :
die ( $strInfoScript );
break ;
default :
die ( 'Option ' . $argv [ $i ] . ' inconnue !' . EOL );
break ;
}
}
}
//$iDbI=new WDB('insee');
$iDb = new WDB ( 'jo' );
$iDb2 = new WDB ( 'jo' );
$iInsee = new MInsee ();
$limit = 1000000 ;
$iFin = 504 ; //2/*504*/;
$tabFormule = $tabSecteursMt = $tabSecteursNb = array ();
$tabFormules = $iDb -> select ( 'ratios_formules' ,
'id, libelle, formule, unite, commentaires, deleted, borneMin, borneMax' ,
'deleted=0' );
foreach ( $tabFormules as $i => $formule ) {
$id = $formule [ 'id' ] * 1 ;
//$tabFormule['f'.$id]['libelle']=$formule['libelle'];
$tabFormule [ 'f' . $id ][ 'unite' ] = $formule [ 'unite' ];
$tabFormule [ 'f' . $id ][ 'min' ] = $formule [ 'borneMin' ];
$tabFormule [ 'f' . $id ][ 'max' ] = $formule [ 'borneMax' ];
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Formules mises en m<> moire ... " . EOL ;
2012-10-16 07:44:31 +00:00
//print_r($tabFormule);die();
for ( $iDeb = 0 ; $iDeb <= $iFin * $limit ; $iDeb += $limit ) {
$nbRows = $iDb -> select ( 'ratios_test2' , 'siren, id, naf4, naf5, millesime, montant' , " 1 LIMIT $iDeb , $limit " , false , MYSQL_ASSOC , true );
$iDebAff = $iDeb / $limit ;
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Tranche de ratios n<> $iDebAff / $iFin ... " . EOL ;
2012-10-16 07:44:31 +00:00
while ( $entrep = $iDb -> fetch ( MYSQL_ASSOC )) {
if ( $tabFormule [ 'f' . $entrep [ 'id' ]][ 'unite' ] == 'EUR' ) $mt = $entrep [ 'montant' ] / 1000 ;
else $mt = $entrep [ 'montant' ];
if ( $tabFormule [ 'f' . $entrep [ 'id' ]][ 'min' ] !== NULL && $mt < $tabFormule [ 'f' . $entrep [ 'id' ]][ 'min' ]) {
2013-06-19 08:24:49 +00:00
//echo 'Borne Mini non nulle ('.$tabFormule['f'.$entrep['id']]['min'].") et le montant est inf<6E> rieur : $mt<".$tabFormule['f'.$entrep['id']]['min']."!\n";
2012-10-16 07:44:31 +00:00
continue ;
} elseif ( $tabFormule [ 'f' . $entrep [ 'id' ]][ 'max' ] !== NULL && $mt > $tabFormule [ 'f' . $entrep [ 'id' ]][ 'max' ]) {
2013-06-19 08:24:49 +00:00
//echo 'Borne Maxi non nulle ('.$tabFormule['f'.$entrep['id']]['max'].") et le montant est sup<75> reiur : $mt>".$tabFormule['f'.$entrep['id']]['max']."!\n";
2012-10-16 07:44:31 +00:00
continue ;
} /* else
echo 'Ratio compris entre bornes ' . $tabFormule [ 'f' . $entrep [ 'id' ]][ 'min' ] . " < $mt < " . $tabFormule [ 'f' . $entrep [ 'id' ]][ 'max' ] . " . \n " ;
*/
$tabSecteursMt [ $entrep [ 'id' ] . '-' . $entrep [ 'naf4' ] . '-' . $entrep [ 'naf5' ] . '-' . $entrep [ 'millesime' ]] += $mt ;
$tabSecteursNb [ $entrep [ 'id' ] . '-' . $entrep [ 'naf4' ] . '-' . $entrep [ 'naf5' ] . '-' . $entrep [ 'millesime' ]] ++ ;
}
}
echo date ( 'Y/m/d - H:i:s' ) . " - Insertion en base des " . count ( $tabSecteursMt ) . " ratios secteurs... " . EOL ;
$dateInsert = date ( 'YmdHis' );
foreach ( $tabSecteursMt as $cleSecteur => $mt ) {
$tmp = explode ( '-' , $cleSecteur );
$tabInsert = array ( 'id' => $tmp [ 0 ],
'naf4' => $tmp [ 1 ],
'naf5' => $tmp [ 2 ],
'annee' => $tmp [ 3 ],
'montant' => $mt ,
'nombre' => $tabSecteursNb [ $cleSecteur ],
'dateInsert' => $dateInsert ,
);
if ( ! $iDb -> insert ( 'ratios_secteurs' , $tabInsert )) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Erreur MySQL N<> " . mysql_errno () . ' : ' . mysql_error () . EOL ;
2012-10-16 07:44:31 +00:00
print_r ( $tabInsert );
}
}
echo date ( 'Y/m/d - H:i:s' ) . " - Fin de l'insertion en base des ratios. " . EOL ;
die ();
?>