Merge branch 'staging' into production

This commit is contained in:
Tiavina 2025-05-06 16:21:58 +03:00
commit db6839451b
4 changed files with 46 additions and 10 deletions

View File

@ -1,6 +1,7 @@
<?php <?php
namespace OCA\Gestion\Controller; namespace OCA\Gestion\Controller;
use OCA\Gestion\Constants\BddConstant;
use OCP\IConfig; use OCP\IConfig;
use OCP\IRequest; use OCP\IRequest;
use OCP\DB\Exception; use OCP\DB\Exception;
@ -94,10 +95,6 @@ class InvoiceController extends Controller
{ {
return new DataResponse("La facture n'existe pas", 404, ['Content-Type' => 'application/json']); return new DataResponse("La facture n'existe pas", 404, ['Content-Type' => 'application/json']);
} }
$factureClientMail = $this->gestionRepository->getFactureClientMailByFactureId($factureId);
if($factureClientMail == null){
return new DataResponse("Le mail de la facture n'existe pas", 404, ['Content-Type' => 'application/json']);
}
$factureGeneratedResponse = $this->invoicePdfService->generateFacturePdfByFactureId($factureId,$this->currentUserIdNextcloud); $factureGeneratedResponse = $this->invoicePdfService->generateFacturePdfByFactureId($factureId,$this->currentUserIdNextcloud);
if($factureGeneratedResponse == null){ if($factureGeneratedResponse == null){
return new DataResponse("La facture n'a pas été générée correctement", 404, ['Content-Type' => 'application/json']); return new DataResponse("La facture n'a pas été générée correctement", 404, ['Content-Type' => 'application/json']);
@ -119,9 +116,9 @@ class InvoiceController extends Controller
"<p> Vous trouverez en pièce jointe la facture des soins de « " . $factureDate . " » .</p>". "<p> Vous trouverez en pièce jointe la facture des soins de « " . $factureDate . " » .</p>".
$signature $signature
); );
$authUserEmail = $this->user->getEMailAddress(); $appAdminEmail = $this->gestionRepository->getUserEmailByNextcloudId(BddConstant::DEFAULT_ADMIN_APP_ID_NEXTCLOUD);
if ($authUserEmail) { if ($appAdminEmail) {
$message->setCc([$authUserEmail]); $message->setCc([$appAdminEmail]);
} }
$this->mailer->send($message); $this->mailer->send($message);

View File

@ -1619,9 +1619,9 @@ class PageController extends Controller {
$signature $signature
); );
$authUserEmail = $this->user->getEMailAddress(); $appAdminEmail = $this->myDb->getUserEmailByNextcloudId(BddConstant::DEFAULT_ADMIN_APP_ID_NEXTCLOUD);
if ($authUserEmail) { if ($appAdminEmail) {
$message->setCc([$authUserEmail]); $message->setCc([$appAdminEmail]);
} }
$this->mailer->send($message); $this->mailer->send($message);
return new DataResponse("", 200, ['Content-Type' => 'application/json']); return new DataResponse("", 200, ['Content-Type' => 'application/json']);

View File

@ -2,6 +2,7 @@
namespace OCA\Gestion\Db; namespace OCA\Gestion\Db;
use \Datetime; use \Datetime;
use OCA\Gestion\Helpers\MailHelpers;
use OCP\IL10N; use OCP\IL10N;
use OCP\IDBConnection; use OCP\IDBConnection;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@ -5147,4 +5148,24 @@ COMMENTAIRES: ".$comment;
return $mail; return $mail;
} }
private function getUserAccountDataByNextcloudId($nextcloudId)
{
$sql = "SELECT * FROM " . self::DEFAULT_TABLE_PREFIX . "accounts as user_account WHERE user_account.uid = ? LIMIT 1;";
$result = $this->execSQLNoJsonReturn($sql, [$nextcloudId]);
if (!empty($result)) {
return $result[0];
}
return null;
}
public function getUserEmailByNextcloudId($nextcloudId)
{
$userAccount = $this->getUserAccountDataByNextcloudId($nextcloudId);
if ($userAccount != null) {
$userEmail = MailHelpers::getUserMailFromUserAccountData($userAccount['data']);
return $userEmail;
}
return null;
}
} }

View File

@ -0,0 +1,18 @@
<?php
namespace OCA\Gestion\Helpers;
class MailHelpers
{
public static function getUserMailFromUserAccountData(string $userAccountData): string|null
{
$userAccountData = json_decode($userAccountData, true);
if (isset($userAccountData['email']) && isset($userAccountData['email']['value'])) {
return $userAccountData['email']['value'];
} else {
return null;
}
}
}