I added the following log for debugging purposes,[$this->logger->info("Executing formula recalculation for with IDs: " . implode(', ', $requestListIds));
]
but I cannot find it in the log file
/volume1/web/EspoCRM-8.0.5/data/logs/espo-2024-06-16.log
]
but I cannot find it in the log file
/volume1/web/EspoCRM-8.0.5/data/logs/espo-2024-06-16.log
HTML Code:
protected function recalculateFormulas() { $currentDate = new \DateTime(); $requestListIds = $this->getEntityIdsWithinRange('Requestlist', 'workTime', $currentDate, 15); $this->logger->info("Executing formula recalculation for with IDs: " . implode(', ', $requestListIds)); $arariManagementIds = $this->getEntityIdsWithinRange('ArariManagement', 'arariManagementDate', $currentDate, 15); $financialSettlementIds = $this->getEntityIdsWithinRange('CFinancialSettlement', 'startDate', $currentDate, 15); try { $this->executeRecalculateFormula('Requestlist', $requestListIds); $this->executeRecalculateFormula('ArariManagement', $arariManagementIds); $this->executeRecalculateFormula('CFinancialSettlement', $financialSettlementIds); } catch (\Exception $e) { $this->logger->error('Formula recalculation failed: ' . $e->getMessage()); } } protected function getEntityIdsWithinRange($entityType, $dateField, \DateTime $currentDate, $days) { $startDate = (clone $currentDate)->modify("-$days days")->format('Y-m-d'); $endDate = (clone $currentDate)->modify("+$days days")->format('Y-m-d'); $repository = $this->entityManager->getRepository($entityType); $entities = $repository->where([ $dateField => [ '$gte' => $startDate, '$lte' => $endDate ] ])->find(['id']); $ids = []; foreach ($entities as $entity) { $ids[] = $entity->getId(); } return $ids; } protected function executeRecalculateFormula($entityType, $ids) { try { $this->logger->info("Executing formula recalculation for $entityType with IDs: " . implode(', ', $ids)); $dataFormula = [ 'entityType' => $entityType, 'action' => 'recalculateFormula', 'params' => ['ids' => $ids] ]; $apiUrl = "https://admin.sumking.co.jp/api/v1/MassAction"; $ch = curl_init($apiUrl); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($dataFormula)); $response = curl_exec($ch); if (curl_errno($ch)) { throw new \Exception(curl_error($ch)); } curl_close($ch); $responseDecoded = json_decode($response, true); if (isset($responseDecoded['error'])) { throw new \Exce
Comment