finish export file per thanato sent by the request , wip frontend part
This commit is contained in:
parent
a8a4839400
commit
b575057341
@ -2344,25 +2344,9 @@ class PageController extends Controller {
|
|||||||
}
|
}
|
||||||
$month = $month ?? date('m');
|
$month = $month ?? date('m');
|
||||||
$year = $year ?? date('Y');
|
$year = $year ?? date('Y');
|
||||||
$exportData = $this->myDb->getExportThanatoStatisticData($thanatoIdsToExport,$month,$year);
|
|
||||||
try{
|
try{
|
||||||
$current_config = json_decode($this->myDb->getConfiguration($this->idNextcloud));
|
$filenames = $this->exportThanatoStatisticService->exportThanatosListStatistic($thanatoIdsToExport,$month,$year,$this->idNextcloud);
|
||||||
$clean_folder = html_entity_decode($current_config[0]->path).'/';
|
return $filenames;
|
||||||
$_clean_folder = $clean_folder.'STATISTIQUES/THANATOS/';
|
|
||||||
try {
|
|
||||||
$this->storage->newFolder($_clean_folder);
|
|
||||||
}
|
|
||||||
catch(\OCP\Files\NotPermittedException $e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
$fileHeader = $this->exportThanatoStatisticService->getExportThanatoFileHeader();
|
|
||||||
$fileContent = $this->exportThanatoStatisticService->populateExportDataIntoFileContent($exportData,$fileHeader);
|
|
||||||
$filename = $this->exportThanatoStatisticService->getFilename($thanatoIdsToExport);
|
|
||||||
$fileNamePath = $_clean_folder."STAT-THANATOS-" . $filename . '.csv';
|
|
||||||
$this->storage->newFile($fileNamePath);
|
|
||||||
$file = $this->storage->get($fileNamePath);
|
|
||||||
$file->putContent($fileContent);
|
|
||||||
return $fileNamePath;
|
|
||||||
}
|
}
|
||||||
catch(\OCP\Files\NotFoundException $e) { }
|
catch(\OCP\Files\NotFoundException $e) { }
|
||||||
|
|
||||||
|
|||||||
@ -2148,14 +2148,8 @@ class Bdd {
|
|||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getThanatosDevisListByDate(array $thanatoIds,$date){
|
private function getThanatoDevisListByDate($thanatoId,$date){
|
||||||
if(empty($thanatoIds)){
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
$dateFormatted = $date->format('Y-m-d');
|
$dateFormatted = $date->format('Y-m-d');
|
||||||
|
|
||||||
$sqlConditionsPlaceholder = implode(',', array_fill(0, count($thanatoIds), '?'));
|
|
||||||
$sql = "SELECT
|
$sql = "SELECT
|
||||||
devis.id,
|
devis.id,
|
||||||
devis.date,
|
devis.date,
|
||||||
@ -2182,25 +2176,22 @@ class Bdd {
|
|||||||
LEFT JOIN ".$this->tableprefix."client as client on devis.id_client = client.id
|
LEFT JOIN ".$this->tableprefix."client as client on devis.id_client = client.id
|
||||||
LEFT JOIN ".$this->tableprefix."facture as facture on devis.id = facture.id_devis
|
LEFT JOIN ".$this->tableprefix."facture as facture on devis.id = facture.id_devis
|
||||||
WHERE devis.date = ? AND
|
WHERE devis.date = ? AND
|
||||||
devis.id_thanato IN ($sqlConditionsPlaceholder) AND
|
devis.id_thanato = ? AND
|
||||||
(devis.mentions = ? OR devis.mentions = ?)
|
(devis.mentions = ? OR devis.mentions = ?)
|
||||||
ORDER BY devis.date ASC;";
|
ORDER BY devis.date ASC;";
|
||||||
$devisList = $this->execSQLNoJsonReturn(
|
$devisList = $this->execSQLNoJsonReturn(
|
||||||
$sql,
|
$sql,
|
||||||
array_merge([$dateFormatted],$thanatoIds,[DevisMentionConstant::FACTURED,DevisMentionConstant::FACTURED_FORMATTED]));
|
[$dateFormatted,$thanatoId,DevisMentionConstant::FACTURED,DevisMentionConstant::FACTURED_FORMATTED]);
|
||||||
return $devisList;
|
return $devisList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getThanatoNameByThanatoIds(array $thanatoIds){
|
public function getThanatoById($thanatoId){
|
||||||
$thanatoIdsPlaceholder = implode(',', array_fill(0, count($thanatoIds), '?'));
|
$sql = "SELECT id, nom, prenom FROM ".$this->tableprefix."thanato WHERE id = ? LIMIT 1;";
|
||||||
$sql = "SELECT id, nom, prenom FROM ".$this->tableprefix."thanato WHERE id IN ($thanatoIdsPlaceholder);";
|
$thanato = $this->execSQLNoJsonReturn($sql,[$thanatoId]);
|
||||||
$thanatos = $this->execSQLNoJsonReturn($sql,$thanatoIds);
|
if(!empty($thanato)){
|
||||||
$result = [];
|
return $thanato[0];
|
||||||
foreach($thanatos as $thanato){
|
|
||||||
$thanatoId = $thanato['id'];
|
|
||||||
$result["$thanatoId"] = $thanato['nom'];
|
|
||||||
}
|
}
|
||||||
return $result;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getCalendarByThanatoIdNextcloud($idNextCloud){
|
private function getCalendarByThanatoIdNextcloud($idNextCloud){
|
||||||
@ -2225,86 +2216,41 @@ class Bdd {
|
|||||||
$leaves = $this->execSQLNoJsonReturn($sql,[$calendarId,$isLeaveConditionAsString,$dateCondition]);
|
$leaves = $this->execSQLNoJsonReturn($sql,[$calendarId,$isLeaveConditionAsString,$dateCondition]);
|
||||||
return $leaves;
|
return $leaves;
|
||||||
}
|
}
|
||||||
public function getThanatoDevisPerDateInAMonthYear(array $thanatoIds,$month,$year){
|
public function getThanatoDevisPerDateInAMonthYear($thanatoId,$month,$year){
|
||||||
$dateOfMonths = DateHelpers::getDatesOfMonth($year,$month);
|
$dateOfMonths = DateHelpers::getDatesOfMonth($year,$month);
|
||||||
$devisListPerThanatoPerDate = [];
|
$devisListPerThanatoPerDate = [];
|
||||||
$thanatosName = $this->getThanatoNameByThanatoIds($thanatoIds);
|
$thanato = $this->getThanatoById($thanatoId);
|
||||||
$thanatoCalendarIds = [];
|
$thanatoName = $thanato["nom"];
|
||||||
foreach($thanatosName as $thanatoId => $thanatoName){
|
$thanatoCalendar = $this->getCalendarByThanatoIdNextcloud($thanato["nom"]);
|
||||||
$calendar = $this->getCalendarByThanatoIdNextcloud($thanatoName);
|
$thanatoCalendarId = $thanatoCalendar["id"];
|
||||||
$thanatoCalendarIds[$thanatoId] = $calendar['id'];
|
|
||||||
}
|
|
||||||
foreach($dateOfMonths as $currentDate){
|
foreach($dateOfMonths as $currentDate){
|
||||||
$currentDateFormatted = $currentDate->format('Y-m-d');
|
$currentDateFormatted = $currentDate->format('Y-m-d');
|
||||||
$isPublicHoliday = DateHelpers::isPublicHoliday($currentDateFormatted);
|
$isPublicHoliday = DateHelpers::isPublicHoliday($currentDateFormatted);
|
||||||
$devisList = $this->getThanatosDevisListByDate($thanatoIds,$currentDate);
|
$devisList = $this->getThanatoDevisListByDate($thanatoId,$currentDate);
|
||||||
$thereIsNoDevisForCurrentDate = empty($devisList);
|
$thereIsNoDevisForCurrentDate = empty($devisList);
|
||||||
if($thereIsNoDevisForCurrentDate){
|
if($thereIsNoDevisForCurrentDate){
|
||||||
foreach($thanatoIds as $thanatoId){
|
$devisListPerThanatoPerDate[$currentDateFormatted]["hasDevis"] = false;
|
||||||
$thanatoName = $thanatosName[$thanatoId];
|
$thanatoLeavesThisDay = $this->getThanatoLeaveByCalendarAndDate($thanatoCalendarId,$currentDate);
|
||||||
$devisListPerThanatoPerDate[$thanatoId][$currentDateFormatted]["hasDevis"] = false;
|
if(empty($thanatoLeavesThisDay)){
|
||||||
$thanatoLeavesThisDay = $this->getThanatoLeaveByCalendarAndDate($thanatoCalendarIds[$thanatoId],$currentDate);
|
$devisListPerThanatoPerDate[$currentDateFormatted]["leaves"][] = [
|
||||||
if(empty($thanatoLeavesThisDay)){
|
"onLeave" => false,
|
||||||
$devisListPerThanatoPerDate[$thanatoId][$currentDateFormatted]["leaves"][] = [
|
"startTime" => null,
|
||||||
"onLeave" => false,
|
"endTime" => null,
|
||||||
"startTime" => null,
|
"thanatoName"=>$thanatoName,
|
||||||
"endTime" => null,
|
"date" => $currentDateFormatted,
|
||||||
"thanatoName"=>$thanatosName[$thanatoId],
|
"totalHours" => 0,
|
||||||
"date" => $currentDateFormatted,
|
"totalWorkedHours" => 8,
|
||||||
"totalHours" => 0,
|
"isPublicHoliday" => $isPublicHoliday
|
||||||
"totalWorkedHours" => 8,
|
];
|
||||||
"isPublicHoliday" => $isPublicHoliday
|
|
||||||
];
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
foreach($thanatoLeavesThisDay as $currentLeave){
|
|
||||||
$leaveTime = VCalendarHelpers::GetStartAndEndTimeFromVCalendarString($currentLeave['calendardata']);
|
|
||||||
$devisListPerThanatoPerDate[$thanatoId][$currentDateFormatted]["leaves"][] = [
|
|
||||||
"onLeave" => true,
|
|
||||||
"startTime" => $leaveTime["startTime"],
|
|
||||||
"endTime" => $leaveTime["endTime"],
|
|
||||||
"thanatoName"=>$thanatosName[$thanatoId],
|
|
||||||
"date" => $currentDateFormatted,
|
|
||||||
"totalHours" => $leaveTime["totalHours"],
|
|
||||||
"totalWorkedHours" => $leaveTime["totalWorkedHours"],
|
|
||||||
"isPublicHoliday" => $isPublicHoliday
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
else{
|
||||||
else{
|
|
||||||
foreach($devisList as $devis){
|
|
||||||
$devisThanatoId = $devis["id_thanato"];
|
|
||||||
$devis = $this->setDevisStartAndEndTime($devis);
|
|
||||||
$devis = $this->setDevisIsPublicHolidayOrNotText($devis);
|
|
||||||
$devis = $this->setDevisProduitsList($devis);
|
|
||||||
//set devis articles list into devis data
|
|
||||||
if (!isset($devisListPerThanatoPerDate[$devisThanatoId])) {
|
|
||||||
$devisListPerThanatoPerDate[$devisThanatoId] = [];
|
|
||||||
}
|
|
||||||
if (!isset($devisListPerThanatoPerDate[$devisThanatoId][$currentDateFormatted])) {
|
|
||||||
$devisListPerThanatoPerDate[$devisThanatoId][$currentDateFormatted] = [
|
|
||||||
'total_distance' => 0,
|
|
||||||
"devis" => [],
|
|
||||||
"devisId" => [],
|
|
||||||
"hasDevis" => true,
|
|
||||||
"leaves" => []
|
|
||||||
];
|
|
||||||
}
|
|
||||||
$devisListPerThanatoPerDate[$devisThanatoId][$currentDateFormatted]["devis"][] = $devis;
|
|
||||||
$devisListPerThanatoPerDate[$devisThanatoId][$currentDateFormatted]["devisId"][] = $devis['id'];
|
|
||||||
}
|
|
||||||
foreach($thanatoIds as $thanatoId){
|
|
||||||
$devisListPerThanatoPerDate[$thanatoId][$currentDateFormatted]["leaves"] = [];
|
|
||||||
$thanatoLeavesThisDay = $this->getThanatoLeaveByCalendarAndDate($thanatoCalendarIds[$thanatoId],$currentDate);
|
|
||||||
foreach($thanatoLeavesThisDay as $currentLeave){
|
foreach($thanatoLeavesThisDay as $currentLeave){
|
||||||
$leaveTime = VCalendarHelpers::GetStartAndEndTimeFromVCalendarString($currentLeave['calendardata']);
|
$leaveTime = VCalendarHelpers::GetStartAndEndTimeFromVCalendarString($currentLeave['calendardata']);
|
||||||
$devisListPerThanatoPerDate[$thanatoId][$currentDateFormatted]["leaves"][] = [
|
$devisListPerThanatoPerDate[$currentDateFormatted]["leaves"][] = [
|
||||||
"onLeave" => true,
|
"onLeave" => true,
|
||||||
"startTime" => $leaveTime["startTime"],
|
"startTime" => $leaveTime["startTime"],
|
||||||
"endTime" => $leaveTime["endTime"],
|
"endTime" => $leaveTime["endTime"],
|
||||||
"thanatoName"=>$thanatosName[$thanatoId],
|
"thanatoName"=>$thanatoName,
|
||||||
"date" => $currentDateFormatted,
|
"date" => $currentDateFormatted,
|
||||||
"totalHours" => $leaveTime["totalHours"],
|
"totalHours" => $leaveTime["totalHours"],
|
||||||
"totalWorkedHours" => $leaveTime["totalWorkedHours"],
|
"totalWorkedHours" => $leaveTime["totalWorkedHours"],
|
||||||
@ -2313,12 +2259,45 @@ class Bdd {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
foreach($devisList as $devis){
|
||||||
|
$devis = $this->setDevisStartAndEndTime($devis);
|
||||||
|
$devis = $this->setDevisIsPublicHolidayOrNotText($devis);
|
||||||
|
$devis = $this->setDevisProduitsList($devis);
|
||||||
|
if (!isset($devisListPerThanatoPerDate[$currentDateFormatted])) {
|
||||||
|
$devisListPerThanatoPerDate[$currentDateFormatted] = [
|
||||||
|
'total_distance' => 0,
|
||||||
|
"devis" => [],
|
||||||
|
"devisId" => [],
|
||||||
|
"hasDevis" => true,
|
||||||
|
"leaves" => []
|
||||||
|
];
|
||||||
|
}
|
||||||
|
$devisListPerThanatoPerDate[$currentDateFormatted]["devis"][] = $devis;
|
||||||
|
$devisListPerThanatoPerDate[$currentDateFormatted]["devisId"][] = $devis['id'];
|
||||||
|
}
|
||||||
|
$devisListPerThanatoPerDate[$currentDateFormatted]["leaves"] = [];
|
||||||
|
$thanatoLeavesThisDay = $this->getThanatoLeaveByCalendarAndDate($thanatoCalendarId,$currentDate);
|
||||||
|
foreach($thanatoLeavesThisDay as $currentLeave){
|
||||||
|
$leaveTime = VCalendarHelpers::GetStartAndEndTimeFromVCalendarString($currentLeave['calendardata']);
|
||||||
|
$devisListPerThanatoPerDate[$currentDateFormatted]["leaves"][] = [
|
||||||
|
"onLeave" => true,
|
||||||
|
"startTime" => $leaveTime["startTime"],
|
||||||
|
"endTime" => $leaveTime["endTime"],
|
||||||
|
"thanatoName"=>$thanatoName,
|
||||||
|
"date" => $currentDateFormatted,
|
||||||
|
"totalHours" => $leaveTime["totalHours"],
|
||||||
|
"totalWorkedHours" => $leaveTime["totalWorkedHours"],
|
||||||
|
"isPublicHoliday" => $isPublicHoliday
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return $devisListPerThanatoPerDate;
|
return $devisListPerThanatoPerDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getExportThanatoStatisticData(array $thanatoIds,$month,$year){
|
public function getExportThanatoStatisticData($thanatoId,$month,$year){
|
||||||
$devisList = $this->getThanatoDevisPerDateInAMonthYear($thanatoIds,$month,$year);
|
$devisList = $this->getThanatoDevisPerDateInAMonthYear($thanatoId,$month,$year);
|
||||||
return $devisList;
|
return $devisList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -26,10 +26,12 @@ declare(strict_types=1);
|
|||||||
|
|
||||||
namespace OCA\Gestion\Service;
|
namespace OCA\Gestion\Service;
|
||||||
|
|
||||||
|
use OCA\Gestion\Constants\BddConstant;
|
||||||
use OCA\Gestion\Db\Bdd;
|
use OCA\Gestion\Db\Bdd;
|
||||||
use OCA\Gestion\Helpers\DateHelpers;
|
use OCA\Gestion\Helpers\DateHelpers;
|
||||||
use OCA\Gestion\Helpers\FileExportHelpers;
|
use OCA\Gestion\Helpers\FileExportHelpers;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
|
use OCP\Files\IRootFolder;
|
||||||
|
|
||||||
class ExportThanatoStatisticService {
|
class ExportThanatoStatisticService {
|
||||||
/** @var Bdd */
|
/** @var Bdd */
|
||||||
@ -38,27 +40,57 @@ class ExportThanatoStatisticService {
|
|||||||
/** @var LoggerInterface */
|
/** @var LoggerInterface */
|
||||||
private $logger;
|
private $logger;
|
||||||
|
|
||||||
|
/** @var IRootFolder */
|
||||||
|
private $rootFolder;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
Bdd $gestionBdd,
|
Bdd $gestionBdd,
|
||||||
LoggerInterface $logger) {
|
LoggerInterface $logger,
|
||||||
|
IRootFolder $rootFolder) {
|
||||||
|
$this->rootFolder = $rootFolder;
|
||||||
$this->logger = $logger;
|
$this->logger = $logger;
|
||||||
$this->gestionBdd = $gestionBdd;
|
$this->gestionBdd = $gestionBdd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getFilename(array $thanatoIds){
|
private function getFilename($thanatoName,$thanatoLastName,$month,$year){
|
||||||
$thanatoList = $this->gestionBdd->getThanatoByIds($thanatoIds);
|
$filename = "$year-$month-";
|
||||||
$currentYear = date('Y');
|
$filename .= $thanatoName . '-' . $thanatoLastName;
|
||||||
$currentMonth = date('m');
|
|
||||||
$filename = "$currentYear-$currentMonth-";
|
|
||||||
foreach($thanatoList as $thanato){
|
|
||||||
$filename .= $thanato['thanato_nom'] . '-' . $thanato['thanato_prenom'] . '--';
|
|
||||||
}
|
|
||||||
$filename = rtrim($filename, '-');
|
|
||||||
$filename = str_replace(' ','-', $filename);
|
$filename = str_replace(' ','-', $filename);
|
||||||
$filename = str_replace(' ','-', $filename);
|
$filename = str_replace(' ','-', $filename);
|
||||||
return $filename;
|
return $filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function exportThanatoStatistic($thanatoId,$month,$year,$idNextcloud){
|
||||||
|
$thanato = $this->gestionBdd->getThanatoById($thanatoId);
|
||||||
|
if($thanato == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$exportData = $this->gestionBdd->getExportThanatoStatisticData($thanatoId,$month,$year);
|
||||||
|
$defaultConfig = json_decode($this->gestionBdd->getConfiguration(BddConstant::DEFAULT_ADMIN_ID_NEXTCLOUD));
|
||||||
|
$racineFolder = html_entity_decode($defaultConfig[0]->path).'/';
|
||||||
|
$thanatoFolder = $racineFolder.'STATISTIQUES/THANATOS/';
|
||||||
|
$fileHeader = $this->getExportThanatoFileHeader();
|
||||||
|
$fileContent = $this->populateExportDataIntoFileContent($exportData,$fileHeader);
|
||||||
|
$filename = $this->getFilename($thanato["nom"],$thanato["prenom"],$month,$year);
|
||||||
|
$fileNamePath = $thanatoFolder."STAT-THANATO-" . $filename . '.csv';
|
||||||
|
$storage = $this->rootFolder->getUserFolder($idNextcloud);
|
||||||
|
$storage->newFile($fileNamePath);
|
||||||
|
$file = $storage->get($fileNamePath);
|
||||||
|
$file->putContent($fileContent);
|
||||||
|
return $fileNamePath;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function exportThanatosListStatistic(array $thanatoIds,$month,$year,$idNextcloud){
|
||||||
|
$filenames = [];
|
||||||
|
foreach($thanatoIds as $thanatoId){
|
||||||
|
$filename = $this->exportThanatoStatistic($thanatoId,$month,$year,$idNextcloud);
|
||||||
|
if($filename != null){
|
||||||
|
$filenames[] = $filename;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $filenames;
|
||||||
|
}
|
||||||
|
|
||||||
public function getExportThanatoFileHeader(): string{
|
public function getExportThanatoFileHeader(): string{
|
||||||
$fileHeader =
|
$fileHeader =
|
||||||
'FACTURE'.';'.
|
'FACTURE'.';'.
|
||||||
@ -111,51 +143,49 @@ class ExportThanatoStatisticService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function populateExportDataIntoFileContent(array $exportData,string $fileContent): string{
|
public function populateExportDataIntoFileContent(array $exportData,string $fileContent): string{
|
||||||
foreach($exportData as $thanatoId => $devisPerThanato){
|
foreach($exportData as $devisDate => $devisData){
|
||||||
foreach($devisPerThanato as $devisDate => $devisData){
|
$distanceTotal = 0;
|
||||||
$distanceTotal = 0;
|
$totalDevisHours = 0;
|
||||||
$totalDevisHours = 0;
|
$totalWorkedHours = 8;
|
||||||
$totalWorkedHours = 8;
|
$totalLeaveHours = 0;
|
||||||
$totalLeaveHours = 0;
|
$hasDevisInTheCurrentDate = $devisData['hasDevis'];
|
||||||
$hasDevisInTheCurrentDate = $devisData['hasDevis'];
|
if($hasDevisInTheCurrentDate === false){
|
||||||
if($hasDevisInTheCurrentDate === false){
|
$leaves = $devisData["leaves"];
|
||||||
$leaves = $devisData["leaves"];
|
foreach($leaves as $leave){
|
||||||
foreach($leaves as $leave){
|
$fileContent = $this->populateNoDevisDataInADay($fileContent,$leave);
|
||||||
$fileContent = $this->populateNoDevisDataInADay($fileContent,$leave);
|
if($leave["onLeave"]){
|
||||||
if($leave["onLeave"]){
|
$totalLeaveHoursInsideWorkingHours = $leave["totalWorkedHours"];
|
||||||
$totalLeaveHoursInsideWorkingHours = $leave["totalWorkedHours"];
|
$totalLeaveHours += $totalLeaveHoursInsideWorkingHours;
|
||||||
$totalLeaveHours += $totalLeaveHoursInsideWorkingHours;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$totalWorkedHours -= $totalLeaveHours;
|
|
||||||
}
|
}
|
||||||
else{
|
$totalWorkedHours -= $totalLeaveHours;
|
||||||
$distanceTotal = $this->gestionBdd->getDistanceTotalByDevisIdList($devisData["devisId"]);
|
|
||||||
$devisList = $devisData["devis"];
|
|
||||||
$leaves = $devisData["leaves"];
|
|
||||||
if(!empty($devisList)){
|
|
||||||
foreach($devisList as $devis){
|
|
||||||
$fileContent = $this->populateDevisDataIntoThanatoExportFileContent($fileContent,$devis);
|
|
||||||
$totalDevisHours += $devis["totalHours"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach($leaves as $leave){
|
|
||||||
$fileContent = $this->populateNoDevisDataInADay($fileContent,$leave);
|
|
||||||
if($leave["onLeave"]){
|
|
||||||
$totalLeaveHoursInsideWorkingHours = $leave["totalWorkedHours"];
|
|
||||||
$totalLeaveHours += $totalLeaveHoursInsideWorkingHours;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$totalWorkedHours -= $totalLeaveHours;
|
|
||||||
}
|
|
||||||
$fileContent = $this->populateLastRecapForTheLine(
|
|
||||||
$fileContent,
|
|
||||||
$distanceTotal,
|
|
||||||
$totalDevisHours,
|
|
||||||
$totalWorkedHours,
|
|
||||||
$totalLeaveHours
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
$distanceTotal = $this->gestionBdd->getDistanceTotalByDevisIdList($devisData["devisId"]);
|
||||||
|
$devisList = $devisData["devis"];
|
||||||
|
$leaves = $devisData["leaves"];
|
||||||
|
if(!empty($devisList)){
|
||||||
|
foreach($devisList as $devis){
|
||||||
|
$fileContent = $this->populateDevisDataIntoThanatoExportFileContent($fileContent,$devis);
|
||||||
|
$totalDevisHours += $devis["totalHours"];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach($leaves as $leave){
|
||||||
|
$fileContent = $this->populateNoDevisDataInADay($fileContent,$leave);
|
||||||
|
if($leave["onLeave"]){
|
||||||
|
$totalLeaveHoursInsideWorkingHours = $leave["totalWorkedHours"];
|
||||||
|
$totalLeaveHours += $totalLeaveHoursInsideWorkingHours;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$totalWorkedHours -= $totalLeaveHours;
|
||||||
|
}
|
||||||
|
$fileContent = $this->populateLastRecapForTheLine(
|
||||||
|
$fileContent,
|
||||||
|
$distanceTotal,
|
||||||
|
$totalDevisHours,
|
||||||
|
$totalWorkedHours,
|
||||||
|
$totalLeaveHours
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return $fileContent;
|
return $fileContent;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user