par
Spols » 27 févr. 2024, 12:09
Sans aucune garantie, j'ai remplacé tes fopen et fwrite par une collect des info et utiliser les fonction file_get_contents et file_put_contents
<?php
//cas de la tâche planifiée
if (!empty($argv[1]) && $argv[1] === 'planif') {
$url = 'passerelle_carburant';
require_once dirname(__FILE__) . '/../../config.php';
require_once dirname(__FILE__) . '/../../model/common/Utils.php';
\Common\Utils::initAutoloader();
try {
$nameFile = date('Ymd_His') . '_export.txt';
$pathLog = dirname(__FILE__) . '/../../log/' . $nameFile;
if (file_exists($pathLog)) {
unlink($pathLog);
}
//$fileLog = fopen($pathLog, 'c+b');
$contents = file_get_contents($pathLog);
$cpyMan = new \Admin\Company\CompanyManager(new Common\DAO(DB_CONFIG));
$tabCpy = $cpyMan->getAll();
$expMan = new Report\ExportManager(new Common\DAO(DB_EPACK));
foreach ($tabCpy as $cpy) {
$dataRes = $expMan->getAll(['month' => date('m') - 1, 'year' => date('Y'), 'cpy' => $cpy]);
//fwrite($fileLog, 'Société : ' . $cpy->getName() . "\r\n");
//fwrite($fileLog, '- Consommation : ' . $dataRes['conso'] . "\r\n");
//fwrite($fileLog, '- Refacturation : ' . $dataRes['refact'] . "\r\n");
$contents .= 'Société : ' . $cpy->getName() . "\r\n";
$contents .= '- Consommation : ' . $dataRes['conso'] . "\r\n";
$contents .= '- Refacturation : ' . $dataRes['refact'] . "\r\n";
}
//fclose($fileLog);
file_put_contents($pathLog, $contents);
$mail = new Common\Mail('Passerelle carburant - Export automatique', 'L\'export mensuel s\'est déroulé avec succès', DEST_MAIL, ['sigmail' => 'Service informatique']);
$mail->addFile(['name' => $nameFile, 'tmp_name' => $pathLog, 'type' => 'application/txt', 'size' => filesize($pathLog)]);
$mail->sendMail();
} catch (\Admin\AdminException | Exception | Swift_SwiftException $exc) {
//fwrite($fileLog, 'Erreur lors de l\'export mensuel ' . $exc->getMessage());
$contents .= 'Erreur lors de l\'export mensuel ' . $exc->getMessage() . "\r\n";
file_put_contents($pathLog, $contents);
$mail = new Common\Mail('Passerelle carburant - Erreur', 'Une erreur est survenue lors de l\'export mensuel : ' . $exc->getMessage(), DEST_MAIL, ['sigmail' => 'Service informatique']);
$mail->sendMail();
}
} else {
require_once(dirname(__FILE__) . '/../../view/template/header.php');
if (empty($_SESSION['authentPasserelleCarburant']['authent']) && empty(filter_input(INPUT_GET, 'planif'))) {
require(dirname(__FILE__) . '/../../view/template/noaccess.php');
} else {
try {
$safePost = filter_input_array(INPUT_POST);
$yearSel = empty($safePost['year']) ? date('Y') : $safePost['year'];
$monthSel = empty($safePost['month']) ? date('m') - 1 : $safePost['month'];
if (!empty($safePost)) {
$cpy = unserialize(urldecode($safePost['cpy']));
$expMan = new Report\ExportManager(new Common\DAO(DB_EPACK));
$dataRes = $expMan->getAll(['month' => $monthSel, 'year' => $yearSel, 'cpy' => $cpy]);
}
} catch (Admin\AdminException $ex) {
echo new \Common\Alert($ex->getMessage(), 'error');
}
}
include (dirname(__FILE__) . '/../../view/export/v_export.php');
include (dirname(__FILE__) . '/../../view/template/footer.php');
}
Sinon Il faut te tourner vers le créateur du script ou une agence spécialisée
Sans aucune garantie, j'ai remplacé tes fopen et fwrite par une collect des info et utiliser les fonction file_get_contents et file_put_contents
[php]<?php
//cas de la tâche planifiée
if (!empty($argv[1]) && $argv[1] === 'planif') {
$url = 'passerelle_carburant';
require_once dirname(__FILE__) . '/../../config.php';
require_once dirname(__FILE__) . '/../../model/common/Utils.php';
\Common\Utils::initAutoloader();
try {
$nameFile = date('Ymd_His') . '_export.txt';
$pathLog = dirname(__FILE__) . '/../../log/' . $nameFile;
if (file_exists($pathLog)) {
unlink($pathLog);
}
//$fileLog = fopen($pathLog, 'c+b');
$contents = file_get_contents($pathLog);
$cpyMan = new \Admin\Company\CompanyManager(new Common\DAO(DB_CONFIG));
$tabCpy = $cpyMan->getAll();
$expMan = new Report\ExportManager(new Common\DAO(DB_EPACK));
foreach ($tabCpy as $cpy) {
$dataRes = $expMan->getAll(['month' => date('m') - 1, 'year' => date('Y'), 'cpy' => $cpy]);
//fwrite($fileLog, 'Société : ' . $cpy->getName() . "\r\n");
//fwrite($fileLog, '- Consommation : ' . $dataRes['conso'] . "\r\n");
//fwrite($fileLog, '- Refacturation : ' . $dataRes['refact'] . "\r\n");
$contents .= 'Société : ' . $cpy->getName() . "\r\n";
$contents .= '- Consommation : ' . $dataRes['conso'] . "\r\n";
$contents .= '- Refacturation : ' . $dataRes['refact'] . "\r\n";
}
//fclose($fileLog);
file_put_contents($pathLog, $contents);
$mail = new Common\Mail('Passerelle carburant - Export automatique', 'L\'export mensuel s\'est déroulé avec succès', DEST_MAIL, ['sigmail' => 'Service informatique']);
$mail->addFile(['name' => $nameFile, 'tmp_name' => $pathLog, 'type' => 'application/txt', 'size' => filesize($pathLog)]);
$mail->sendMail();
} catch (\Admin\AdminException | Exception | Swift_SwiftException $exc) {
//fwrite($fileLog, 'Erreur lors de l\'export mensuel ' . $exc->getMessage());
$contents .= 'Erreur lors de l\'export mensuel ' . $exc->getMessage() . "\r\n";
file_put_contents($pathLog, $contents);
$mail = new Common\Mail('Passerelle carburant - Erreur', 'Une erreur est survenue lors de l\'export mensuel : ' . $exc->getMessage(), DEST_MAIL, ['sigmail' => 'Service informatique']);
$mail->sendMail();
}
} else {
require_once(dirname(__FILE__) . '/../../view/template/header.php');
if (empty($_SESSION['authentPasserelleCarburant']['authent']) && empty(filter_input(INPUT_GET, 'planif'))) {
require(dirname(__FILE__) . '/../../view/template/noaccess.php');
} else {
try {
$safePost = filter_input_array(INPUT_POST);
$yearSel = empty($safePost['year']) ? date('Y') : $safePost['year'];
$monthSel = empty($safePost['month']) ? date('m') - 1 : $safePost['month'];
if (!empty($safePost)) {
$cpy = unserialize(urldecode($safePost['cpy']));
$expMan = new Report\ExportManager(new Common\DAO(DB_EPACK));
$dataRes = $expMan->getAll(['month' => $monthSel, 'year' => $yearSel, 'cpy' => $cpy]);
}
} catch (Admin\AdminException $ex) {
echo new \Common\Alert($ex->getMessage(), 'error');
}
}
include (dirname(__FILE__) . '/../../view/export/v_export.php');
include (dirname(__FILE__) . '/../../view/template/footer.php');
}[/php]
Sinon Il faut te tourner vers le créateur du script ou une agence spécialisée