finish api to set defunt cover , WIP frontend part
This commit is contained in:
parent
5ef1ca3b25
commit
d499696964
@ -136,5 +136,8 @@ return [
|
|||||||
|
|
||||||
//certificate
|
//certificate
|
||||||
['name' => 'page#exportCareCertificate', 'url' => '/defunt/exportCareCertificate', 'verb' => 'POST'],
|
['name' => 'page#exportCareCertificate', 'url' => '/defunt/exportCareCertificate', 'verb' => 'POST'],
|
||||||
|
|
||||||
|
//defuntCover
|
||||||
|
['name' => 'page#setDefuntCover', 'url' => '/defunt/setDefuntCover', 'verb' => 'POST'],
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|||||||
10
gestion/lib/Constants/BddConstant.php
Normal file
10
gestion/lib/Constants/BddConstant.php
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace OCA\Gestion\Constants;
|
||||||
|
abstract class BddConstant
|
||||||
|
{
|
||||||
|
const DEFAULT_CALENDAR_UUID_FOR_DEVIS = "not-related";
|
||||||
|
const CALENDAR_TABLE_PREFIX = "*PREFIX*";
|
||||||
|
const DEFAULT_CLIENT_GROUP_NAME = "Nom du groupe";
|
||||||
|
}
|
||||||
13
gestion/lib/Constants/ProductConstant.php
Normal file
13
gestion/lib/Constants/ProductConstant.php
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace OCA\Gestion\Constants;
|
||||||
|
abstract class ProductConstant
|
||||||
|
{
|
||||||
|
const PRODUCT_COVER_TO_RECOVER_REFERENCE = "HAR";
|
||||||
|
const PRODUCT_LEAVE_ON_COVER_REFERENCE = "HAL";
|
||||||
|
const PRODUCT_COVER_REFERENCE_LIST = [
|
||||||
|
self::PRODUCT_COVER_TO_RECOVER_REFERENCE,
|
||||||
|
self::PRODUCT_LEAVE_ON_COVER_REFERENCE
|
||||||
|
];
|
||||||
|
}
|
||||||
@ -276,7 +276,8 @@ class PageController extends Controller {
|
|||||||
'defunt'=>json_decode($defunt),
|
'defunt'=>json_decode($defunt),
|
||||||
'path' => $this->idNextcloud,
|
'path' => $this->idNextcloud,
|
||||||
'url' => $this->getNavigationLink(),
|
'url' => $this->getNavigationLink(),
|
||||||
'logo' => $this->getLogo()
|
'logo' => $this->getLogo(),
|
||||||
|
'coverProducts' =>$this->myDb->getCoverProducts()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2906,7 +2907,7 @@ class PageController extends Controller {
|
|||||||
* @param int $defuntId
|
* @param int $defuntId
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function exportCareCertificate($defuntId){
|
public function exportCareCertificate($defuntId){
|
||||||
try{
|
try{
|
||||||
$careCertificateFilename = $this->certificateService->generateCareCertificate($defuntId,$this->idNextcloud);
|
$careCertificateFilename = $this->certificateService->generateCareCertificate($defuntId,$this->idNextcloud);
|
||||||
return $careCertificateFilename;
|
return $careCertificateFilename;
|
||||||
@ -2914,4 +2915,19 @@ class PageController extends Controller {
|
|||||||
catch(\OCP\Files\NotFoundException $e) { }
|
catch(\OCP\Files\NotFoundException $e) { }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @NoAdminRequired
|
||||||
|
* @NoCSRFRequired
|
||||||
|
* @param int $defuntId
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function setDefuntCover($defuntId,$productId){
|
||||||
|
try{
|
||||||
|
$response = $this->myDb->setDefuntCover($defuntId,$productId);
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
catch(\OCP\Files\NotFoundException $e) { }
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ use OCA\Gestion\Helpers\DateHelpers;
|
|||||||
use OCP\IDBConnection;
|
use OCP\IDBConnection;
|
||||||
use OCP\IL10N;
|
use OCP\IL10N;
|
||||||
use \Datetime;
|
use \Datetime;
|
||||||
|
use OCA\Gestion\Constants\ProductConstant;
|
||||||
use OCA\Gestion\Helpers\FileExportHelpers;
|
use OCA\Gestion\Helpers\FileExportHelpers;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
use OCA\Gestion\Helpers\VCalendarHelpers;
|
use OCA\Gestion\Helpers\VCalendarHelpers;
|
||||||
@ -14,7 +15,6 @@ class Bdd {
|
|||||||
|
|
||||||
public const DEFAULT_CALENDAR_UUID_FOR_DEVIS = "not-related";
|
public const DEFAULT_CALENDAR_UUID_FOR_DEVIS = "not-related";
|
||||||
public const CALENDAR_TABLE_PREFIX = "*PREFIX*";
|
public const CALENDAR_TABLE_PREFIX = "*PREFIX*";
|
||||||
|
|
||||||
public const DEFAULT_CLIENT_GROUP_NAME = "Nom du groupe";
|
public const DEFAULT_CLIENT_GROUP_NAME = "Nom du groupe";
|
||||||
private IDbConnection $pdo;
|
private IDbConnection $pdo;
|
||||||
private array $whiteColumn;
|
private array $whiteColumn;
|
||||||
@ -2707,5 +2707,134 @@ class Bdd {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function getDefuntById($defuntId){
|
||||||
|
$sql = "SELECT
|
||||||
|
defunt.id as id,
|
||||||
|
defunt.nom as defunt_nom,
|
||||||
|
devis.id as devis_id
|
||||||
|
FROM ".$this->tableprefix."defunt as defunt
|
||||||
|
LEFT JOIN ".$this->tableprefix."devis as devis on defunt.id = devis.id_defunt
|
||||||
|
WHERE defunt.id = ?
|
||||||
|
LIMIT 1;";
|
||||||
|
|
||||||
|
$defunt = $this->execSQLNoJsonReturn($sql,[$defuntId]);
|
||||||
|
if(!empty($defunt)){
|
||||||
|
return $defunt[0];
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getProductAsDefuntCoverProduct($productCoverId){
|
||||||
|
$sqlConditionsPlaceholder = implode(',', array_fill(0, count(ProductConstant::PRODUCT_COVER_REFERENCE_LIST), '?'));
|
||||||
|
$sql = "SELECT
|
||||||
|
produit.id,
|
||||||
|
produit.reference
|
||||||
|
FROM ".$this->tableprefix."produit as produit
|
||||||
|
WHERE produit.id = ? AND
|
||||||
|
produit.reference IN ($sqlConditionsPlaceholder)
|
||||||
|
LIMIT 1;";
|
||||||
|
|
||||||
|
$product = $this->execSQLNoJsonReturn(
|
||||||
|
$sql,
|
||||||
|
array_merge(
|
||||||
|
[$productCoverId],
|
||||||
|
ProductConstant::PRODUCT_COVER_REFERENCE_LIST
|
||||||
|
)
|
||||||
|
);
|
||||||
|
if(!empty($product)){
|
||||||
|
return $product[0];
|
||||||
|
}
|
||||||
|
return $product;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function isProductAlreadyExistInDevis($productId,$devisId){
|
||||||
|
$sql = "SELECT
|
||||||
|
produit_devis.id
|
||||||
|
FROM ".$this->tableprefix."produit_devis as produit_devis
|
||||||
|
WHERE produit_devis.produit_id = ? AND
|
||||||
|
produit_devis.devis_id = ?
|
||||||
|
LIMIT 1;";
|
||||||
|
|
||||||
|
$product = $this->execSQLNoJsonReturn($sql,[$productId,$devisId]);
|
||||||
|
if(!empty($product)){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function removeProductFromDevis($productId,$devisId){
|
||||||
|
$sql = "DELETE
|
||||||
|
FROM ".
|
||||||
|
$this->tableprefix."produit_devis
|
||||||
|
WHERE devis_id = ? AND produit_id = ?
|
||||||
|
";
|
||||||
|
$this->execSQLNoData($sql,[$devisId,$productId]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getProductByReference($productReference){
|
||||||
|
$sql = "SELECT
|
||||||
|
produit.id,
|
||||||
|
produit.reference
|
||||||
|
FROM ".$this->tableprefix."produit as produit
|
||||||
|
WHERE produit.reference = ?
|
||||||
|
LIMIT 1;";
|
||||||
|
|
||||||
|
$product = $this->execSQLNoJsonReturn($sql,[$productReference]);
|
||||||
|
if(!empty($product)){
|
||||||
|
return $product[0];
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function removeProductFromDevisByProductReference($productReference,$devisId){
|
||||||
|
$product = $this->getProductByReference($productReference);
|
||||||
|
if($product != null){
|
||||||
|
$this->removeProductFromDevis($product["id"],$devisId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function createProductDevisIfNotExist($productId,$devisId){
|
||||||
|
$isProductDevisAlreadyExist = $this->isProductAlreadyExistInDevis($productId,$devisId);
|
||||||
|
if(!$isProductDevisAlreadyExist){
|
||||||
|
$idNextcloud = "admin";
|
||||||
|
$this->insertDevisArticle(devisId: $devisId, articleId: $productId,idNextcloud: $idNextcloud);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public function setDefuntCover($defuntId, $productCoverId){
|
||||||
|
$defunt = $this->getDefuntById($defuntId);
|
||||||
|
if($defunt == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if($defunt["devis_id"] == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
$product = $this->getProductAsDefuntCoverProduct($productCoverId);
|
||||||
|
if($product == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
$productCoverReferencesList = ProductConstant::PRODUCT_COVER_REFERENCE_LIST;
|
||||||
|
foreach($productCoverReferencesList as $currentProductCoverReference){
|
||||||
|
if($currentProductCoverReference === $product["reference"]){
|
||||||
|
$this->createProductDevisIfNotExist($product["id"],$defunt["devis_id"]);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$this->removeProductFromDevisByProductReference($currentProductCoverReference,$defunt["devis_id"]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getCoverProducts(){
|
||||||
|
$sqlConditionsPlaceholder = implode(',', array_fill(0, count(ProductConstant::PRODUCT_COVER_REFERENCE_LIST), '?'));
|
||||||
|
$sql = "SELECT
|
||||||
|
produit.id,
|
||||||
|
produit.reference
|
||||||
|
FROM ".$this->tableprefix."produit as produit
|
||||||
|
WHERE produit.reference IN ($sqlConditionsPlaceholder)";
|
||||||
|
|
||||||
|
return $this->execSQL($sql,ProductConstant::PRODUCT_COVER_REFERENCE_LIST);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user