#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini select('clients', 'id, nom, actif, test, racineLogin, siren, nic, tva, editerFacture, fact_detail, fac_dest, fac_adr1, fac_adr2, fac_adr3, fac_email, fac_tel, fact_rib, liv_dest, liv_adr1, liv_adr2, liv_adr3, liv_email, liv_tel, droits, filtres_ip, dateInsert, dateUpdate, respComSD, typeContrat, dateSignature, typeAcces, accesPieces, accesKbis, accesInvestigations, miseSousSurveillance, forfaitExtranetPeriode, forfaitExtranetMontant, reconductionAuto, remarque, forfaitPiecesNb, forfaitPiecesMt, forfaitPiecesDep, forfaitInvestigNb, forfaitInvestigMt, forfaitInvestigDep, tarifIndiscore', '1', false, MYSQL_ASSOC); $tabCli=array(); foreach ($tabTmp as $tabTmp2) { $tabCli[$tabTmp2['id']]=$tabTmp2; } $nbCli=count($tabCli); echo date('Y/m/d - H:i:s') ." - Nombre de clients : $nbCli".EOL; $tabTmp=$iDb->select('utilisateurs', 'id, idClient, actif, deleted, LOWER(login) AS login, email, typeCompte, filtre_ip, civilite, nom, prenom, raisonSociale, tel, fax, mobile', '1', false, MYSQL_ASSOC); $tabUti=array(); foreach ($tabTmp as $tabTmp2) { $tabUti[$tabTmp2['login']]=$tabTmp2; } $nbUti=count($tabUti); echo date('Y/m/d - H:i:s') ." - Nombre d'utilisateurs : $nbUti".EOL; /*$nbActes=$iDb->select('logs', 'LOWER(login) AS login, page, siren, nic, params, dateHeure', " (page LIKE 'greffe_%' OR page LIKE 'inpi_%' OR page='kbis' OR page='indiscore') AND (params<>'' OR page='indiscore') AND (params NOT LIKE '%erreur%' OR PARAMS LIKE '%erreur 17%') AND dateHeure BETWEEN '$dateDeb 00:00:00' AND '$dateFin 23:59:59' GROUP BY login, siren, date(dateHeure), params ORDER BY login asc, dateHeure ASC", false, MYSQL_ASSOC, true);*/ $nbActes=$iDb->select('logs', 'LOWER(login) AS login, page, siren, nic, params, dateHeure', " (page LIKE 'greffe_%' OR page LIKE 'inpi_%' OR page='kbis' OR page='indiscore') AND (params<>'' OR page='indiscore' AND tarifIndiscore<>0) AND (params NOT LIKE '%erreur%' OR PARAMS LIKE '%erreur 17%') AND dateHeure BETWEEN '$dateDeb 00:00:00' AND '$dateFin 23:59:59' GROUP BY login, siren, date(dateHeure), params ORDER BY login asc, dateHeure ASC", false, MYSQL_ASSOC, true); echo date('Y/m/d - H:i:s') ." - Nombre d'actes à facturer : $nbActes".EOL; $loginPre=false; $tabFacturation=$tabFacturationDet1=$tabFacturationDet2=array(); while ($tab=$iDb->fetch(MYSQL_ASSOC)) { /** Nombre total d'actes commandés par Client et par type d'acte **/ @$tabFacturation[$tabCli[$tabUti[$tab['login']]['idClient']]['id']][$tab['page']]++; /** Nombre total d'actes commandés par Client, utilisateurs et par type d'acte **/ @$tabFacturationDet1[$tabCli[$tabUti[$tab['login']]['idClient']]['id']][$tab['login']][$tab['page']]++; /** Facturation détaillée des actes **/ if ($tabCli[$tabUti[$tab['login']]['idClient']]['fact_detail']=='Oui') @$tabFacturationDet2[$tabCli[$tabUti[$tab['login']]['idClient']]['id']][$tab['login']][$tab['page']][]= array( 'siren'=>$tab['siren'], 'params'=>$tab['params'], 'dateHeure'=>$tab['dateHeure']); // @$tabFacturation2[$tab['login']][$tab['page']]++; //echo $siren.' '.trim($tab['DIR_IDEN'])."\t:\t$civ Nom='$nom', Prenom='$prenom', Usage='$naissNom' né le $naissDate à $naissLieu\t"; //$loginPre=$tab['login']; } /* echo "tabFacturation :\n"; print_r($tabFacturation); echo "tabFacturationDet1 :\n"; print_r($tabFacturationDet1); echo "$tabFacturationDet2 :\n"; print_r($tabFacturationDet2); echo "tabCli :\n"; print_r($tabCli); echo "tabUti :\n"; print_r($tabUti); */ $iFacture=0; foreach ($tabFacturation as $idClient => $tabFacture) { $iFacture++; $numFacture=WDate::dateT('d/m/Y', 'Ym', $tplt['dateFacture']).sprintf("%04s", $iFacture); $numClient = $tabCli[$idClient]['siren']."-$idClient"; $tplt['numFacture'] = $numFacture; $tplt['numClient'] = $numClient; $tplt['siren'] = $tabCli[$idClient]['siren']; $tplt['nic'] = $tabCli[$idClient]['nic']; $tplt['raisonSociale'] = $tabCli[$idClient]['nom']; $tplt['numtva'] = $tabCli[$idClient]['tva']; // echo 'Facturation détaillée : '.$tabCli[$idClient]['fact_detail']."\n"; // Destinataire Facturation / Signataire $tplt['adresseFact1'] = $tabCli[$idClient]['fac_adr1']; $tplt['adresseFact2'] = $tabCli[$idClient]['fac_adr2']; $tplt['adresseFact3'] = $tabCli[$idClient]['fac_adr3']; $tplt['signataireNom'] = $tabCli[$idClient]['fac_dest']; $tplt['signataireMail'] = $tabCli[$idClient]['fac_email']; $tplt['signataireTel'] = $tabCli[$idClient]['fac_tel']; // Livraison / Correspondant $tplt['adresseLiv1'] = $tabCli[$idClient]['liv_adr1']; $tplt['adresseLiv2'] = $tabCli[$idClient]['liv_adr2']; $tplt['adresseLiv3'] = $tabCli[$idClient]['liv_adr3']; $tplt['correspNom'] = $tabCli[$idClient]['liv_dest']; $tplt['correspMail'] = $tabCli[$idClient]['liv_email']; $tplt['correspTel'] = $tabCli[$idClient]['liv_tel']; // Non affiché $fact_detail = $tabCli[$idClient]['fact_detail']; // Facturation détaillée $fact_rib = $tabCli[$idClient]['fact_rib']; // RIB S&D à fournir au client // droits, filtres_ip, dateInsert, dateUpdate, respComSD, typeContrat, dateSignature, typeAcces, $accesPieces = $tabCli[$idClient]['accesPieces']; $accesKbis = $tabCli[$idClient]['accesKbis']; $accesInvestigations = $tabCli[$idClient]['accesInvestigations']; $ligne=$tplt['totalht']=$tplt['remise']=$tplt['tva']=$tplt['totalttc']=0; $tplt['ligne']=array(); /* for($i=0; $i<=10; $i++) { $tplt['ligne'][$i]['intitule']='; $tplt['ligne'][$ligne]['quantite']=1; $tplt['ligne'][$ligne]['puht']=$tabCli[$idClient]['forfaitExtranetMontant']; $tplt['ligne'][$ligne]['totalht']=$tplt['ligne'][$ligne]['quantite']*$tplt['ligne'][$ligne]['puht']; $tplt['ligne'][$ligne]['remise']=0; $tplt['ligne'][$ligne]['tva']=$tplt['ligne'][$ligne]['totalht']*0.196; $tplt['ligne'][$ligne]['totalttc'] */ if ($tabCli[$idClient]['forfaitExtranetPeriode']=='Mensuel') { $tplt['ligne'][$ligne]['intitule']='Accès mensuel extranet '.WDate::dateT('d/m/Y', 'M Y', $tplt['dateFacture']); $tplt['ligne'][$ligne]['quantite']=1; $tplt['ligne'][$ligne]['puht']=$tabCli[$idClient]['forfaitExtranetMontant']; $tplt['ligne'][$ligne]['totalht']=$tplt['ligne'][$ligne]['quantite']*$tplt['ligne'][$ligne]['puht']; $tplt['ligne'][$ligne]['remise']=0; $tplt['ligne'][$ligne]['tva']=$tplt['ligne'][$ligne]['totalht']*0.196; $tplt['ligne'][$ligne]['totalttc']=$tplt['ligne'][$ligne]['totalht']+$tplt['ligne'][$ligne]['tva']; $tplt['totalht']+=$tplt['ligne'][$ligne]['totalht']; $tplt['remise']+=$tplt['ligne'][$ligne]['remise']; $tplt['tva']+=$tplt['ligne'][$ligne]['tva']; $tplt['totalttc']+=$tplt['ligne'][$ligne]['totalttc']; $ligne++; } if ($tabCli[$idClient]['forfaitPiecesNb']>0) { $tplt['ligne'][$ligne]['intitule']='Forfait '.$tabCli[$idClient]['forfaitPiecesNb'].' pièces officielles '.WDate::dateT('Y-m-d', 'M Y', $moisPrecedent); $tplt['ligne'][$ligne]['quantite']=1;//; $tplt['ligne'][$ligne]['puht']=$tabCli[$idClient]['forfaitPiecesMt']; $tplt['ligne'][$ligne]['totalht']=$tplt['ligne'][$ligne]['quantite']*$tplt['ligne'][$ligne]['puht']; $tplt['ligne'][$ligne]['remise']=0; $tplt['ligne'][$ligne]['tva']=$tplt['ligne'][$ligne]['totalht']*0.196; $tplt['ligne'][$ligne]['totalttc']=$tplt['ligne'][$ligne]['totalht']+$tplt['ligne'][$ligne]['tva']; $tplt['totalht']+=$tplt['ligne'][$ligne]['totalht']; $tplt['remise']+=$tplt['ligne'][$ligne]['remise']; $tplt['tva']+=$tplt['ligne'][$ligne]['tva']; $tplt['totalttc']+=$tplt['ligne'][$ligne]['totalttc']; $ligne++; } if ($tabCli[$idClient]['forfaitPiecesDep']>0) { $nbPiecesCommandees=@$tabFacture['greffe_actes'] + @$tabFacture['greffe_bilans']+ @$tabFacture['inpi_rcs'] + @$tabFacture['kbis']; $tplt['ligne'][$ligne]['intitule']='Pièces officielles hors forfait '.WDate::dateT('Y-m-d', 'M Y', $moisPrecedent); $tplt['ligne'][$ligne]['quantite']=$nbPiecesCommandees-$tabCli[$idClient]['forfaitPiecesNb']; if ($tplt['ligne'][$ligne]['quantite']<0) $tplt['ligne'][$ligne]['quantite']=0; $tplt['ligne'][$ligne]['puht']=$tabCli[$idClient]['forfaitPiecesDep']; $tplt['ligne'][$ligne]['totalht']=$tplt['ligne'][$ligne]['quantite']*$tplt['ligne'][$ligne]['puht']; $tplt['ligne'][$ligne]['remise']=0; $tplt['ligne'][$ligne]['tva']=$tplt['ligne'][$ligne]['totalht']*0.196; $tplt['ligne'][$ligne]['totalttc']=$tplt['ligne'][$ligne]['totalht']+$tplt['ligne'][$ligne]['tva']; $tplt['totalht']+=$tplt['ligne'][$ligne]['totalht']; $tplt['remise']+=$tplt['ligne'][$ligne]['remise']; $tplt['tva']+=$tplt['ligne'][$ligne]['tva']; $tplt['totalttc']+=$tplt['ligne'][$ligne]['totalttc']; $ligne++; } if ($tabCli[$idClient]['tarifIndiscore']>0) { //$nbPiecesCommandees=@$tabFacture['greffe_actes'] + @$tabFacture['greffe_bilans']+ // @$tabFacture['inpi_rcs'] + @$tabFacture['kbis']; $tplt['ligne'][$ligne]['intitule']='IndiScore '.WDate::dateT('Y-m-d', 'M Y', $moisPrecedent); $tplt['ligne'][$ligne]['quantite']=@$tabFacture['indiscore']; if ($tplt['ligne'][$ligne]['quantite']<=0) $tplt['ligne'][$ligne]['quantite']=0; $tplt['ligne'][$ligne]['puht']=$tabCli[$idClient]['tarifIndiscore']; $tplt['ligne'][$ligne]['totalht']=$tplt['ligne'][$ligne]['quantite']*$tplt['ligne'][$ligne]['puht']; $tplt['ligne'][$ligne]['remise']=0; $tplt['ligne'][$ligne]['tva']=$tplt['ligne'][$ligne]['totalht']*0.196; $tplt['ligne'][$ligne]['totalttc']=$tplt['ligne'][$ligne]['totalht']+$tplt['ligne'][$ligne]['tva']; $tplt['totalht']+=$tplt['ligne'][$ligne]['totalht']; $tplt['remise']+=$tplt['ligne'][$ligne]['remise']; $tplt['tva']+=$tplt['ligne'][$ligne]['tva']; $tplt['totalttc']+=$tplt['ligne'][$ligne]['totalttc']; $ligne++; } /* $forfaitInvestigNb = $tabCli[$idClient]['forfaitInvestigNb']; $forfaitInvestigMt = $tabCli[$idClient]['forfaitInvestigMt']; $forfaitInvestigDep = $tabCli[$idClient]['forfaitInvestigDep']; */ $tabGlobal[$idClient]['totalht'] = $tplt['totalht']; $tabGlobal[$idClient]['remise'] = $tplt['remise']; $tabGlobal[$idClient]['tva'] = $tplt['tva']; $tabGlobal[$idClient]['totalttc'] = $tplt['totalttc']; // print_r($tabFacture); if ($tplt['totalht']>0 && $tabCli[$idClient]['editerFacture']=='Oui') { @mkdir(REP_FACTURE.$moisCourant); $fp=fopen(REP_FACTURE.$moisCourant.'/'.$numFacture.'.html', 'w'); fwrite($fp, get_include_contents('/var/www/batch/factures/facture.php', $tplt)); fclose($fp); $iFactureAff=$iFacture; } else { // On n'édite pas de facture à 0 $iFactureAff='-'; $iFacture--; } echo "Facture n°$iFactureAff - ".$tabCli[$idClient]['nom']." ($numClient) : ".$tplt['totalht']."€HT\n"; } echo date('Y/m/d - H:i:s') ." - FIN du programme de facturation pour la période $dateDeb à $dateFin...".EOL; die(); function get_include_contents($filename, $tplt) { if (is_file($filename)) { ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false; } ?>