<?php
/**
* Created by PhpStorm.
* User: Slim Sayari
* Date: 10/07/2019
* Time: 13:43
*/
namespace App\Controller\Front;
use App\Entity\Accessoire;
use App\Entity\Attribut;
use App\Entity\CartDetail;
use App\Entity\CartDetailAccessoire;
use App\Entity\FilesEdit;
use App\Entity\PriceProduct;
use App\Entity\Product;
use App\Entity\ProductAttribute;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Twig\Environment;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
use App\Services\Liseuse;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Spatie\PdfToImage\Pdf;
use Imagick;
use App\Services\ProductService;
use App\Services\CartService;
use App\Entity\Cart;
class LiseuseController extends AbstractController
{
private $em;
private $liseuse_service;
private $session;
private $params;
private $product_service;
private $cart_service;
public function __construct(SessionInterface $session ,Liseuse $liseuse_service , EntityManagerInterface $em,CartService $cart_service, ProductService $product_service,ParameterBagInterface $params)
{
$this->em = $em;
$this->liseuse_service = $liseuse_service;
$this->session = $session;
$this->params = $params;
$this->product_service = $product_service;
$this->cart_service = $cart_service;
}
/**
* @Route("/liseuse/{token}", name="liseuse",options={"expose"=true})
*/
public function index(Request $request,$token = null) : Response
{
$tokenCart = $this->session->get('token_cart');
$papiers = null;
$cart = null;
if($tokenCart){
$cart = $this->em->getRepository(Cart::class)->findOneBy(array('token'=>$tokenCart)); // cart
if($cart && count($cart->getCartDetail())>0){
$papiers = $this->em->getRepository(CartDetail::class)->findBy(array('cart'=>$cart->getId(),'typeProduct'=> Product::PAPIER),array('id'=>'DESC')); // cart detail
}
}
if($papiers){
if($token){
$papierCourant = $this->em->getRepository(CartDetail::class)->findOneBy(array('token'=>$token));
$papiers = $this->em->getRepository(CartDetail::class)->findOrderByfirstList($cart->getId(),$token); // cart detail
}else{
$papierCourant = $this->em->getRepository(CartDetail::class)->findOneBy(array('cart'=>$cart->getId(),'typeProduct'=> Product::PAPIER),array('id'=>'DESC'));
}
}else{
$papierCourant = null;
}
$productPapier = $this->em->getRepository(Product::class)->findOneBy(array('typeProduct'=>Product::PAPIER));
//check abonnementPro
$user = $this->getUser();
$abonnementPro = $this->cart_service->checkAbonnementToCartOrOrder($user,$cart ? $cart->getId():null);
$resultAbo = $this->cart_service->checkB2bUser($this->getUser());
$abonnement = $resultAbo['abonnement'];
$isAbonnementProInCart = $resultAbo['isAbonnementProInCart'];
$dataResponse = [
'papierCourant' => $papierCourant, // le pdf courant
'papiers' => $papiers, //list des pdf
'productPapier' => $productPapier ,//product papier pdf
'blockOption' => $productPapier ? $this->product_service->getBlockPapier($papierCourant,$productPapier->getId(),Product::PAPIER,$papiers,$abonnementPro) : null , //block option
'blockOptionMobile' => $productPapier ? $this->product_service->getBlockPapierMobile($papierCourant,$productPapier->getId(),Product::PAPIER,$papiers) : null , //block option
'blockPrix' =>$this->liseuse_service->getBlockPrixLiseuse($cart) , //block Prix
'cart' => $cart,
'abonnementPro' => $abonnementPro,
'displayBtnDuplicate' => $papierCourant ? count($papierCourant->getCart()->getCartDetail())>1 ? true:false:false,
'checkIsduplicatePerference' => $papierCourant && $this->product_service->checkIsduplicatePerference($papierCourant->getToken()) ? true :false,
];
if($abonnement['is_abonnemen_pro'] || $isAbonnementProInCart){
$response = $this->render('front/b2b/imprimer-relier/liseuse.html.twig',$dataResponse);
}else{
$response = $this->render('front/liseuse-papier/index.html.twig',$dataResponse);
}
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Access-Control-Allow-Headers', 'Range');
$response->headers->set('Access-Control-Expose-Headers', 'Cache-Control, Content-Encoding, Content-Range');
return $response;
}
/**
* @Route("/liseuse-upload", name="liseuse_upload",options={"expose"=true})
*/
public function upload(Request $request){
$files = $request->files->get('fileUpload');
$idProduct = $request->request->get('id_product');
$uploadfile = $this->liseuse_service->upload($files); // uplaod file response(filename,filenameOriginal)
if($uploadfile){
$cart = $this->cart_service->createCart(true); // create cart and token
//get product
$product = $this->em->getRepository(Product::class)->find($idProduct);
// get productAtribute default
$productAttributeDefault = $this->em->getRepository(ProductAttribute::class)->findOneBy(array('product'=>$product,'isDefault' => true,'isEnabled'=>true));
if(!$productAttributeDefault){
$productAttributeDefault = $this->em->getRepository(ProductAttribute::class)->findOneBy(array('product'=>$product,'isEnabled'=>true));
}
// nbr page
$token = $this->liseuse_service->generateUniqueFileName();
$getTabNbrPapier = $this->liseuse_service->addNumbrePage($uploadfile['filename'],$token); // add nbr color black&white response(nbrColor,nbrBlackWhite)
// tableau qty
$tabQty = array(
'qtyColor'=> (int)$getTabNbrPapier['nbrColor'],
'qtyNoir'=> (int)$getTabNbrPapier['nbrBlackWhite'],
'qty'=> (int)$getTabNbrPapier['nbrBlackWhite'] + (int)$getTabNbrPapier['nbrColor'] ,
);
// tableau file
$tabFile = array(
'file'=> $uploadfile['filename'],
'name'=> $uploadfile['filenameOriginal']
);
if($getTabNbrPapier['nbrColor'] > 0){
$accesoireColor = $this->em->getRepository(Accessoire::class)->findOneBy(array('typeAccessoire' => Accessoire::COULEUR,'typeCouleur'=>Accessoire::TYPE_COULEUR));
}else{
$accesoireColor = $this->em->getRepository(Accessoire::class)->findOneBy(array('typeAccessoire' => Accessoire::COULEUR,'typeCouleur'=>Accessoire::TYPE_NOIR));
}
// add to cartDetail
if($product and $product->getTypeProduct() == Product::PAPIER_POSTE)
$is_poste = true;
else
$is_poste = false;
$user = $this->getUser();
// if(((int)$getTabNbrPapier['nbrBlackWhite'] + (int)$getTabNbrPapier['nbrColor']) >= 2){
// $isReluire = true;
// }else{
// $isReluire = false;
// }
$isReluire = false;
$this->cart_service->addToCartPapier($user,$is_poste,$token,$cart,$product,$productAttributeDefault,$tabQty,1,$tabFile,$accesoireColor,$isReluire,$getTabNbrPapier['firstImage'],null,true);
$content = $uploadfile['filename'];
}else{
$content = false;
}
$response = new Response();
$response->setStatusCode(200);
$response->setContent($content);
return $response;
}
/**
* @Route("/liseuse-update", name="liseuse_update",options={"expose"=true})
*/
public function update(Request $request){
$data = $request->request->all();
$tokenCart = $data['token_cart_detail'];
$product = $this->em->getRepository(Product::class)->find($data['product_id']);
$is_reluire = $data['isReluire'];
$format = $this->em->getRepository(Attribut::class)->find($data['format']);
$gramage = $this->em->getRepository(Attribut::class)->find($data['grammage']);
$productAttribute = $this->em->getRepository(ProductAttribute::class)->findOneBy(array('format'=>$format,'gramage'=>$gramage,'rectoverso'=>$data['rectoverso'],'isEnabled'=>true));
$qty = array(
'qty'=>$data['qty_total'],
'qtyColor'=>$data['qty_color'],
'qtyNoir'=>$data['qty_noir'],
);
$nbrPapier= $data['nbrCopie'];
$accesoireColor = $this->em->getRepository(Accessoire::class)->find($data['couleur']);
$accReluire = isset($data['reluire'])?$this->em->getRepository(Accessoire::class)->find($data['reluire']):null;
$accReluireArray = array(
'couleur'=> '',
'couleurDos'=> '',
'grandCote'=> false,
'petitCote'=> false,
'papierCovertureMat'=> false,
'papierCovertureBrillant'=> false,
);
if(isset($data['cote']) && $data['cote'] == 'petitCote')
$accReluireArray['petitCote'] = true;
if(isset($data['cote']) && $data['cote'] == 'grandCote')
$accReluireArray['grandCote'] = true;
if(isset($data['couleurDos']))
$accReluireArray['couleurDos'] = $data['couleurDos'];
if(isset($data['couleurR']))
$accReluireArray['couleur'] = $data['couleurR'];
if(isset($data['papierCoverture']) && $data['papierCoverture'] == 'papierCovertureMat')
$accReluireArray['papierCovertureMat'] = true;
if(isset($data['papierCoverture']) && $data['papierCoverture'] == 'papierCovertureBrillant')
$accReluireArray['papierCovertureBrillant'] = true;
$arrayDocCote = array();
if(isset($data['coteDoc']) && $data['coteDoc'] == 'petitCoteDoc'){
$arrayDocCote['petitCote'] = true;
}
if(isset($data['coteDoc']) && $data['coteDoc'] == 'grandCoteDoc'){
$arrayDocCote['grandCote'] = true;
}
$commantaire= isset($data['commentaire'])?trim($data['commentaire']):null;
$marge= isset($data['marge'])?true:false;
$isDecoupeDoc= isset($data['isDecoupeDoc'])?true:false;
// update detail cart
if($product and $product->getTypeProduct() == Product::PAPIER_POSTE) $is_poste = true;
else $is_poste = false;
$typeCourier = (isset($data['courier']))?$data['courier']: null; //type courier if poste
$souhaiteStr = (isset($data['souhaite_str']))?$data['souhaite_str']: null;
$this->cart_service->updateToCartPapier($this->getUser(),$typeCourier,$is_poste,$tokenCart,$product,$productAttribute,$qty,$nbrPapier,$accesoireColor,$is_reluire,$accReluire,$accReluireArray,$commantaire,false,$souhaiteStr,$arrayDocCote,$isDecoupeDoc);
$cartDetail = $this->em->getRepository(CartDetail::class)->findOneBy(array('token' => $tokenCart));
$gramageSelect = $this->liseuse_service->getSelectGramagePapier($cartDetail,$this->getUser()); // update and get template Grammage
$this->liseuse_service->duplicatePerference( $tokenCart); // appliquer les paramettre pour tous les doc if true;
$this->em->refresh($cartDetail);
// block prix
if($product->getTypeProduct() == Product::PAPIER){
$blockPrix = $this->liseuse_service->getBlockPrixLiseuse($cartDetail->getCart());
}else{
$blockPrix = $this->liseuse_service->getBlockPrixLiseuse($cartDetail->getCart(),Product::PAPIER_POSTE);
}
$blockCart = $this->cart_service->getBlockPanier();// block panier
$resteOfferte = $this->liseuse_service->getResteOfferte($cartDetail->getCart()); // reste offerte
$response = new Response();
$response->setStatusCode(200);
$response->setContent(json_encode(
array(
'blockPrix' => $blockPrix,
'blockCart' => $blockCart,
'resteOfferte' => $resteOfferte,
'gramageSelect' => $gramageSelect,
'prixdoc' => number_format((float)$cartDetail->getPrixHt(),2).'€ HT'
))
);
return $response;
}
/**
* @Route("/liseuse-deleted/{token}/{page}", name="liseuse_deleted",options={"expose"=true})
*/
public function deleted(Request $request,$token,$page = 'liseuse'){
$papiers = $this->em->getRepository(CartDetail::class)->findOneBy(array('token'=>$token));
$path = $this->redirectToRoute('accueil');;
if($papiers){
$product = $papiers->getProduct();
if($product->getTypeProduct() == Product::PAPIER){
$path = $this->redirectToRoute('liseuse');
}else if(!in_array($product->getTypeProduct(),[Product::PAPIER,Product::SIMPLE,Product::PAPIER_POSTE])){
$path = $this->redirectToRoute('product_option',['product'=>$product->getId()]);
}
$cart = $papiers->getCart();
$this->em->remove($papiers);
$this->em->flush();
$this->cart_service->updatePriceCart($cart);
}
return $path;
// if ($page == 'liseuse'){
// return $this->redirectToRoute('liseuse');
// }elseif($page == 'checkout'){
// return $this->redirectToRoute('checkout');
// }elseif($page == 'liseuse_poste'){
// return $this->redirectToRoute('liseuse_poste');
// }elseif($page == 'checkout_poste'){
// return $this->redirectToRoute('checkout_poste');
// }else{
// return $this->redirectToRoute('accueil');
// }
}
/**
* @Route("/liseuse-duplicate-perference/{token}-{isAppliqueParam}", name="liseuse_duplicate_perference",options={"expose"=true})
*/
public function duplicatePerference(Request $request,$token,$isAppliqueParam){
$this->cart_service->addOrRemoveAppliqueParam($token,$isAppliqueParam);
$bool = 0;
if($isAppliqueParam){
if($this->liseuse_service->checkIsduplicatePerference( $token)) {
$this->liseuse_service->duplicatePerference($token);
$bool = 1;
}
}
$response = new Response();
$response->setStatusCode(200);
$response->setContent($bool);
return $response;
}
/**
* @Route("/get-tarif", name="get_tarif",options={"expose"=true})
*/
public function getTarif(Request $request){
$data = $request->request->all();
//get product
$product = $this->em->getRepository(Product::class)->findOneBy(array('typeProduct'=> Product::PAPIER));
// get productAtribute default
$productAttributeDefault = $this->em->getRepository(ProductAttribute::class)->findOneBy(array('product'=>$product,'isDefault' => true,'isEnabled'=>true));
if(!$productAttributeDefault){
$productAttributeDefault = $this->em->getRepository(ProductAttribute::class)->findOneBy(array('product'=>$product,'isEnabled'=>true));
}
// tableau qty
$tabQty = array(
'qtyColor'=> $data['nbrColor'],
'qtyNoir'=> $data['nbrBlackWhite'],
'qty'=> $data['nbrBlackWhite'] + $data['nbrColor'] ,
);
$prix = $this->liseuse_service-> getTarif( $product, $productAttributeDefault, $tabQty, $data['is_reluire']);
$response = new Response();
$response->setStatusCode(200);
$response->setContent(json_encode($prix));
return $response;
}
/**
* @Route("/get-tarif-abonnement", name="get_tarif_abonnement",options={"expose"=true})
*/
public function getTarifAbonnement(Request $request){
$data = $request->request->all();
//get product
$product = $this->em->getRepository(Product::class)->findOneBy(array('typeProduct'=> Product::PAPIER));
// get productAtribute default
$productAttributeDefault = $this->em->getRepository(ProductAttribute::class)->findOneBy(array('product'=>$product,'isDefault' => true,'isEnabled'=>true));
if(!$productAttributeDefault){
$productAttributeDefault = $this->em->getRepository(ProductAttribute::class)->findOneBy(array('product'=>$product,'isEnabled'=>true));
}
// tableau qty
$tabQty = array(
'qtyColor'=> $data['nbrColor'],
'qtyNoir'=> $data['nbrBlackWhite'],
'qty'=> $data['nbrBlackWhite'] + $data['nbrColor'] ,
);
$prix = $this->liseuse_service-> getTarif( $product, $productAttributeDefault, $tabQty, $data['is_reluire']);
$prixAbonnement = $this->liseuse_service-> getTarifAbonnement( $product,$data['typeAbonnenemt'], $productAttributeDefault, $tabQty, $data['is_reluire']);
$response = new Response();
$response->setStatusCode(200);
$response->setContent(json_encode(array('prix'=>$prix,'prixAbonnement'=>$prixAbonnement)));
return $response;
}
/**
* @Route("/check-option-select-reluire", name="check_option_select_reluire",options={"expose"=true})
*/
public function checkOptionSelectReluire(Request $request){
$data = $this->cart_service->checkOptionSelectReluire();
$response = new Response();
$response->setStatusCode(200);
$response->setContent(json_encode($data));
return $response;
}
/**
* @Route("/get-pdf-top-100-ajax/{token}", name="liseuse_pdf_top_100_ajax",options={"expose"=true})
*/
public function getTemplate(Request $request,$token) : Response
{
$data = $this->product_service->getPdfTop100($request);
$detailCart = $this->em->getRepository(CartDetail::class)->findOneBy(array('token' => $token));
$response = $this->render('front/top-100-product/resultsLiseuse.html.twig', ['products'=>$data,'papierCourant'=>$detailCart]);
return $response;
}
/**
* @Route("/append-pdf-top-100-ajax/{token}", name="append_pdf_top_100_ajax",options={"expose"=true})
*/
public function appendTemplate(Request $request,$token) : Response
{
$data = $this->product_service->getPdfTop100($request);
$detailCart = $this->em->getRepository(CartDetail::class)->findOneBy(array('token' => $token));
if($data){
$response = $this->render('front/top-100-product/appendResultsLiseuse.html.twig', ['products'=>$data,'papierCourant'=>$detailCart]);
}else{
$response = new Response();
$response->setStatusCode(200);
$response->setContent(0);
}
return $response;
}
/**
* @Route("/upload-file-modif/{token}", name="upload_file_modif", options={"expose"=true})
*/
public function uploadModif(Request $request,$token): Response
{
$this->liseuse_service->uploadPdfModif($request->files->get('fileModif'),$token);
$response = new Response();
$response->setStatusCode(200);
$response->setContent(1);
return $response;
}
/**
* @Route("/download-doc/{token}", name="download_doc_liseuse")
*/
public function download( Request $request,$token){
$cartDetail = $this->em->getRepository(CartDetail::class)->findOneBy(array('token'=>$token));
$file = '';
$fileName = '';
if($cartDetail ){
if(!$cartDetail->getIsTopImp()) {
if ($cartDetail->getIsModif()) {
if($this->getUser()) {
$file = $this->params->get('pdfModif_directory') . '/' . $cartDetail->getFilePapier();
}
} else {
$file=$this->params->get('uploads_directory') . '/' . $cartDetail->getFilePapier();
}
}else{
$file= $this->params->get('productPdf_directory') . '/' . $cartDetail->getFilePapier();
}
$fileName = $cartDetail->getFilePapier();
}
$response = new Response();
if($file){
$response->setContent(file_get_contents($file));
$response->headers->set('Content-Type', 'application/force-download');
$response->headers->set('Content-disposition', 'filename='.$fileName);
$response->setStatusCode(200);
return $response;
}
return $this->render('bundles/TwigBundle/Exception/error.html.twig');
}
/**
* @Route("/file-edit-upload", name="file_edit_upload",options={"expose"=true})
*/
public function uploadFileEdit(Request $request)
{
$files = $request->files->get('fileUploadEdit');
$uploadfile = $this->liseuse_service->upload($files); // uplaod file response(filename,filenameOriginal)
if($uploadfile){
$content = [];
$token = $this->liseuse_service->generateUniqueFileName();
$fileEntity = new FilesEdit();
$fileEntity->setFilePapierName($uploadfile['filenameOriginal']);
$fileEntity->setFilePapier($uploadfile['filename']);
$fileEntity->setToken($token);
$this->em->persist($fileEntity);
$this->em->flush();
$arrayFile = $this->session->get('filesEdit');
if(!$arrayFile)$arrayFile= [];
$arrayFile[$token] = $fileEntity->getId();
$this->session->set('filesEdit',$arrayFile);
$content['filePath'] = $request->getScheme() . '://' . $request->getHttpHost(). $request->getBasePath(). '/uploads/'.$uploadfile['filename'];
$content['fileName'] = $uploadfile['filename'];
$content['fileNameOrigin'] = $uploadfile['filenameOriginal'];
$content['id'] = $fileEntity->getId();
$content['token'] = $token;
}else{
$content = false;
}
$response = new Response();
$response->setStatusCode(200);
$response->setContent(json_encode($content));
return $response;
}
/**
* @Route("/files-editeur/{token}", name="files_editeur",options={"expose"=true})
*/
public function filesEditeur(Request $request,$token=null)
{
$idsFiles = $this->session->get('filesEdit');
if(!$idsFiles){
$files = null;
$file = null;
}else {
$files = $this->em->getRepository(FilesEdit::class)->findByIds($idsFiles);
if ($token) {
$file = $this->em->getRepository(FilesEdit::class)->findOneBy(array('token' => $token));
} else {
$file = $files ? $files[0] : null;
}
}
$response = $this->render('front/liseuse-papier/editPdf.html.twig',[
'files'=>$files,
'file'=>$file
]);
$response->headers->set('Access-Control-Allow-Origin', '*');
$response->headers->set('Access-Control-Allow-Headers', 'Range');
$response->headers->set('Access-Control-Expose-Headers', 'Cache-Control, Content-Encoding, Content-Range');
return $response;
}
/**
* @Route("/file-edit-modif/{idProduct}-{idFile}", name="file_edit_modif_to_liseuse",options={"expose"=true})
*/
public function uploadFileEditModifToLiseuse(Request $request,$idProduct,$idFile): Response
{
$token = $this->cart_service->addToCartPapierEdit($request->files->get('fileModif'),$idProduct,$idFile,$this->getUser());
if($token){
$rep=[
'success' => true,
'token'=> $token
];
}else{
$rep=[
'success' => false
];
}
$response = new Response();
$response->setStatusCode(200);
$response->setContent(json_encode($rep));
return $response;
}
/**
* @Route("/get-menu-plus-pspdf", name="get_menu_plus_pspdf",options={"expose"=true})
*/
public function getMenuPlusPspdf(Request $request): Response
{
return $this->render('front/liseuse-papier/menu_plus_pspdf.html.twig');
}
/**
* @Route("/download-file-edit/{id}", name="download_file_edit", options={"expose"=true})
*/
public function downloadFileEdit( Request $request,$id){
$fileEdit = $this->em->getRepository(FilesEdit::class)->find($id);
$files = $request->files->get('fileUploadEdit');
$uploadfile = $this->liseuse_service->ecraseFileEdit($files,$fileEdit);
$response = new Response();
$response->setContent('ok');
return $response;
}
/**
* @Route("/get-file-edit/{name}", name="get_file_link_edit", options={"expose"=true})
*/
public function getLinkFileEdit( Request $request,$name){
$filePth = '';
if($name) {
$file = $this->params->get('uploads_directory') . '/' . $name;
if (file_exists($file)) {
$filePth = '/uploads/' . $name;
}else{
$file = $this->params->get('pdfModif_directory') . '/' . $name;
if (file_exists($file)) {
$filePth = '/modifPdf/' . $name;
}
}
if (file_exists($file)) {
$filePth = $request->getScheme() . '://' . $request->getHttpHost(). $request->getBasePath(). $filePth ;
}
}
return $this->render('front/liseuse-papier/link_copy_pspdf.html.twig',array('file'=>$filePth));
}
/**
* @Route("/get-file-edit-liseuse/{token}", name="get_file_link_edit_liseuse", options={"expose"=true})
*/
public function getLinkFileEditLiseuse( Request $request,$token){
$cartDetail = $this->em->getRepository(CartDetail::class)->findOneBy(array('token'=>$token));
$filePth = '';
if($cartDetail && !$cartDetail->getIsTopImp()){
if($cartDetail->getIsModif()){
$filePth = '/modifPdf/' .$cartDetail->getFilePapier();
}else{
$filePth = '/uploads/' . $cartDetail->getFilePapier();
}
$filePth = $request->getScheme() . '://' . $request->getHttpHost(). $request->getBasePath(). $filePth ;
}
return $this->render('front/liseuse-papier/link_copy_pspdf.html.twig',array('file'=>$filePth));
}
/**
* @Route("/share-file-edit/{name}", name="share_file_link_edit", options={"expose"=true})
*/
public function shareLinkFileEdit( Request $request,$name){
$filePth = '';
if($name) {
$file = $this->params->get('uploads_directory') . '/' . $name;
if (file_exists($file)) {
$filePth = '/uploads/' . $name;
}else{
$file = $this->params->get('pdfModif_directory') . '/' . $name;
if (file_exists($file)) {
$filePth = '/modifPdf/' . $name;
}
}
if (file_exists($file)) {
$filePth = $request->getScheme() . '://' . $request->getHttpHost(). $request->getBasePath(). $filePth ;
}
}
return $this->render('front/liseuse-papier/share_pspdf.html.twig',array('url'=>$filePth));
}
/**
* @Route("/share-file-edit-liseuse/{token}", name="share_file_link_edit_liseuse", options={"expose"=true})
*/
public function shareLinkFileEditLiseuse( Request $request,$token){
$cartDetail = $this->em->getRepository(CartDetail::class)->findOneBy(array('token'=>$token));
$filePth = '';
if($cartDetail && !$cartDetail->getIsTopImp()){
if($cartDetail->getIsModif()){
$filePth = '/modifPdf/' .$cartDetail->getFilePapier();
}else{
$filePth = '/uploads/' . $cartDetail->getFilePapier();
}
$filePth = $request->getScheme() . '://' . $request->getHttpHost(). $request->getBasePath(). $filePth ;
}
return $this->render('front/liseuse-papier/share_pspdf.html.twig',array('url'=>$filePth));
}
/**
* @Route("/save-file-client/{tokeCartDetail}", name="save_file_client",options={"expose"=true})
*/
public function saveFileClient(Request $request,$tokeCartDetail)
{
$user = $this->getUser();
$result = $this->liseuse_service->saveDocClient($tokeCartDetail,$user);
$response = new Response();
$response->setStatusCode(200);
$response->setContent($result?1:0);
return $response;
}
/**
* @Route("/upload-and-save-file", name="upload_and_save_data",options={"expose"=true})
*/
public function saveAndUploadFile(Request $request){
$user = $this->getUser();
$files = $request->files->get('fileUpload');
$uploadfile = $this->liseuse_service->upload($files); // uplaod file response(filename,filenameOriginal)
if($uploadfile){
// nbr page
$token = $this->liseuse_service->generateUniqueFileName();
$getTabNbrPapier = $this->liseuse_service->addNumbrePage($uploadfile['filename'],$token); // add nbr color black&white response(nbrColor,nbrBlackWhite)
// tableau
$tab = array(
'qtyColor'=> (int)$getTabNbrPapier['nbrColor'],
'qtyNoir'=> (int)$getTabNbrPapier['nbrBlackWhite'],
'qty'=> (int)$getTabNbrPapier['nbrBlackWhite'] + (int)$getTabNbrPapier['nbrColor'] ,
'file'=> $uploadfile['filename'],
'name'=> $uploadfile['filenameOriginal'] ,
'firstImage' => $getTabNbrPapier['firstImage']
);
$result = $this->liseuse_service->saveDocClientByData($tab,$user);
$content = $uploadfile['filename'];
}else{
$content = false;
}
$response = new Response();
$response->setStatusCode(200);
$response->setContent($content);
return $response;
}
/**
* @Route("/get-img-reluire/{tokenCartDetail}", name="get_img_reluire",options={"expose"=true})
*/
public function getImgReluire(Request $request,$tokenCartDetail)
{
$cartDetail = $this->em->getRepository(CartDetail::class)->findOneBy(array('token'=>$tokenCartDetail));
if($cartDetail){
$accReluireObject = $this->em->getRepository(CartDetailAccessoire::class)->getAccessoire(Accessoire::RELUIRE, $cartDetail->getId());
if($accReluireObject) {
return $this->render('front/liseuse-papier/image-reluire.html.twig', array('imageReluire' => $accReluireObject->getAccessoire()->getImageReluire()));
}
}
$response = new Response();
$response->setContent(0);
return $response;
}
/**
* @Route("/text-reluire-min-max/{idReluire}", name="text_reluire_min_max",options={"expose"=true})
*/
public function getTextReluireCheck(Request $request,$idReluire)
{
$reluire = $this->em->getRepository(Accessoire::class)->find($idReluire);
if($reluire){
return $this->render('front/liseuse-papier/text-min-max-reluire-modal.html.twig', array('reluire' => $reluire));
}
$response = new Response();
$response->setContent(0);
return $response;
}
/**
* @Route("array-min-max-reluire/{tokenCartDetail}/{nbr}", name="array_min_max_reluire",options={"expose"=true})
*/
public function getArrayMinMaxReluire(Request $request,$tokenCartDetail,$nbr)
{
$cartDetail = $this->em->getRepository(CartDetail::class)->findOneBy(array('token'=>$tokenCartDetail));
if($cartDetail){
$array = $this->product_service->getArrayMinMaxReluireGrammage($cartDetail->getQty(),$nbr);
$response = new Response();
$response->setContent(json_encode($array,JSON_FORCE_OBJECT));
return $response;
}
$response = new Response();
$response->setContent(0);
return $response;
}
/**
* @Route("/check-is-login", name="check_is_login",options={"expose"=true})
*/
public function checkIsLogin(Request $request) : Response
{
$response = new Response();
if($this->getUser()){
$response->setContent(1);
return $response;
}
$response->setContent(0);
return $response;
}
}