Current path: home/webdevt/cryptoimpot.fr/module/Application/src/Controller/
?? Go up: /home/webdevt/cryptoimpot.fr/module/Application/src
<?php
namespace Application\Controller;
use Laminas\Mvc\Controller\AbstractActionController;
use Laminas\View\Model\ViewModel;
use Laminas\Mail\Message;
use Laminas\Mime;
use Laminas\Mail\Transport\Sendmail as SendmailTransport;
use Mpdf\Mpdf;
use PayPalCheckoutSdk\Orders\OrdersGetRequest;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
class RapportController extends AbstractActionController
{
const ROUTE_APERCU = 'rapport/apercu';
const ROUTE_DOWNLOAD = 'rapport/download';
const ROUTE_GENERATE = 'rapport/generate';
const ROUTE_VALIDATION_COMMANDE = 'rapport/validation-commande';
/**
* @var \TCPDF
*/
protected $tcpdf;
/**
* @var RendererInterface
*/
protected $renderer;
/**
* @var Doctrine\ORM\EntityManager
*/
protected $entityManager;
// public function setEntityManager(EntityManager $em) {
// $this->em = $em;
// }
//
// public function getEntityManager() {
// if (null === $this->em) {
// $this->em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
// }
// return $this->em;
// }
//
// public function getServiceManager() {
// return $this->serviceManager;
// }
//
// public function setServiceManager(Laminas\ServiceManager\ServiceManager $serviceManager) {
// $this->serviceManager = $serviceManager;
// return $this;
// }
/**
* Constructor.
*/
public function __construct($entityManager, $authManager, $userManager, $config, $tcpdfRapport, $tcpdfBrouillon, $fpdiFormulaire2048m, $renderer)
{
$this->entityManager = $entityManager;
$this->authManager = $authManager;
$this->userManager = $userManager;
$this->config = $config;
$this->tcpdf = $tcpdfRapport;
$this->fpdiFormulaire2048m = $fpdiFormulaire2048m;
$this->tcpdfBrouillon = $tcpdfBrouillon;
$this->renderer = $renderer;
//$this->mpdf = new Mpdf();
}
public function indexAction()
{
if ($user = $this->currentUser()) {
} else {
return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
}
$entityManager = $this->getEntityManager();
/* @var $entityManager \Doctrine\ORM\EntityManager */
$ledgioMapper = new \Application\Mapper\LedgioMapper($entityManager);
$arrayRapportDispo = [];
foreach (range('2011', date('Y') - 1) as $anneeCheck) {
echo $anneeCheck;
$countInvestFiatByUserAndYear = $ledgioMapper->countInvestFiatByUserAndYear($user, $anneeCheck);
$countSessionFiatByUserAndYear = $ledgioMapper->countSessionFiatByUserAndYear($user, $anneeCheck);
// $countTrade = $ledgioMapper->countTradeByUser($user)
$countTradeByUserAndYear = $ledgioMapper->countTradeByUser($user, 'all', 'all', $year = $anneeCheck);
if (!empty($countTradeByUserAndYear)) {
$arrayRapportDispo[] = [
//'arrayExhanges' => $arrayExhanges,
'countInvestFiatByUserAndYear' => $countInvestFiatByUserAndYear,
'countSessionFiatByUserAndYear' => $countSessionFiatByUserAndYear,
'countTradeByUserAndYear' => $countTradeByUserAndYear,
'year' => $anneeCheck
];
}
}
//$countTradeOut = $ledgioMapper->countTradeOutByUser($user);
//var_dump($countTrade); exit;
return new ViewModel(array(
//'arrayExhanges' => $arrayExhanges,
'arrayRapportDispo' => $arrayRapportDispo,
// 'countInvestFiatByUserAndYear' => $countInvestFiatByUserAndYear,
// 'countSessionFiatByUserAndYear' => $countSessionFiatByUserAndYear,
// 'countTrade' => $countTrade,
));
}
// public function getConfig() {
// return $this->config;
// }
public function getEntityManager()
{
return $this->entityManager;
// if (null === $this->em) {
// $this->em = $this->getServiceLocator()->get('Doctrine\ORM\EntityManager');
// }
// return $this->em;
}
// public function rapportAction()
// {
//
//// if ($this->zfcUserAuthentication()->hasIdentity()) {
//// $user = $this->zfcUserAuthentication()->getIdentity();
//// //var_dump($user);
//// } else {
//// return $this->redirect()->toRoute('zfcuser', array('action' => 'login'));
//// }
// if ($user = $this->currentUser()) {
//
// } else {
// return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
// }
//
// //$mapperUserExchangeLinker = new \Application\Mapper\UserExchangeLinkerMapper($this->getEntityManager());
// // calcul plus value
// $ledgioService = new \Application\Service\LedgioService($user, $this->getEntityManager(), $this->config);
//
//
// reportByYear
// $ledgioService->report();
//
//
//// $exchange = $mapperUserExchangeLinker->findByUser($user);
//// $arrayExhanges = array();
//// //var_dump($exchange->getExchangesId());
//// if (!empty($exchange && $exchange->getExchangesId())) {
//// $arrayIdExhanges = explode(',', $exchange->getExchangesId());
//// $mapperExchange = new \Application\Mapper\ExchangeMapper($this->getEntityManager());
////
//// foreach ($arrayIdExhanges as $id) {
//// $arrayExhanges[] = $mapperExchange->findById($id);
//// }
//// }
//
//
// $this->layout('layout/layout-ledgio');
//
// $view = new ViewModel(
// ['array' => $ledgioService->getArrayRapportAnnexePrincipale()
// ]);
////$view->setTemplate('rapport-pdf');
//
//
// $renderer = $this->renderer;
// $view->setTemplate('layout/rapport');
// $html = $renderer->render($view);
//
// $pdf = $this->tcpdf;
//
//
// //$pdf->SetFont('arialnarrow', '', 12, '', false);
// $pdf->AddPage('L');
// $pdf->writeHTML($html, true, false, true, false, '');
//
// //$pdf->Output();
//
// $pdf->Output('kuitti' . $ordernumber . '.pdf', 'F');
//
//
//// return new ViewModel(array(
//// 'arrayExhanges' => $arrayExhanges,
////// 'listeOffresEmploi' => $listeOffresEmploi,
////// 'nbIngenieurs' => $config['wdp-front-global']['nbIngenieurs'],
//// ));
// }
public function generateWarningRapportAction()
{
if ($user = $this->currentUser()) {
} else {
return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
}
$year = date('Y') - 1;
$this->config['anneeImposition'] = $year;
$ledgioService = new \Application\Service\LedgioService($user, $this->getEntityManager(), $this->config);
$ledgioService->generateRapportErreur();
$renderer = $this->renderer;
$filePathWarningWallet = $ledgioService->outputDir . 'warning-wallet-' . $year . '-' . date('d-m-Y') . '.pdf';
if (is_file($filePathWarningWallet)) {
@unlink($filePathWarningWallet);
}
if (!empty($ledgioService->arrayWarningWalletQte)) {
// Rapport warning incohérence wallet (qté vendue sup à ce qu'il y a dans le wallet
$viewWarningWallet = new ViewModel([
'arrayWarningWalletQte' => $ledgioService->arrayWarningWalletQte,
'arrayImport' => $ledgioService->getArrayImport(),
'annee' => $year
]);
$viewWarningWallet->setTemplate('layout/warning-rapport');
$htmlWarningWallet = $renderer->render($viewWarningWallet);
$pdfWarningWallet = $this->tcpdf;
$pdfWarningWallet->titlePDFCustom = 'Erreurs du rapport ' . $year;
$pdfWarningWallet->SetCreator('Ledgio');
$pdfWarningWallet->SetAuthor('Ledgio');
$pdfWarningWallet->SetTitle('Erreurs du rapport' . $year);
$pdfWarningWallet->SetSubject('Erreurs du rapport');
$pdfWarningWallet->AddPage('L');
$pdfWarningWallet->SetFont('Helvetica', '', 8, '', 'false');
$pdfWarningWallet->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdfWarningWallet->setPageMark();
$pdfWarningWallet->writeHTML($htmlWarningWallet, true, false, true, false, '');
$pdfWarningWallet->Output($filePathWarningWallet, 'F');
$responseArray['success']['messages'][] = array(
'header' => 'Succès',
'body' => "Le rapport d'erreur de portefeuille a été généré avec succès.");
} else {
$responseArray['success']['messages'][] = array(
'header' => 'Info',
'body' => "Il n'y a pas d'erreurs. Aucun rapport d'erreurs n'a été généré.");
}
$response = $this->getResponse();
$response->getHeaders()->addHeaderLine('Content-Type', 'application/json');
$response->setContent(json_encode($responseArray));
return $response;
}
public function generateAction()
{
//echo 'toto'; exit;
// phpinfo();
// exit;
if ($user = $this->currentUser()) {
} else {
return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
}
//$mapperUserExchangeLinker = new \Application\Mapper\UserExchangeLinkerMapper($this->getEntityManager());
$entityManager = $this->getEntityManager();
/* @var $entityManager \Doctrine\ORM\EntityManager */
$reportMapper = new \Application\Mapper\ReportMapper($entityManager);
$year = $this->params()->fromRoute('year', null);
$typeFusion = $this->params()->fromQuery('typeFusion', null);
$reportFind = $reportMapper->findByYearAndUser($year, $user);
//var_dump($reportFind); exit;
if (!$reportFind || $reportFind->isNotValidated()) {
goto generate;
} else {
//exit;
goto display;
}
generate:
// echo 'titi'; exit;
// calcul plus value
$this->config['anneeImposition'] = $year;
$ledgioService = new \Application\Service\LedgioService($user, $this->getEntityManager(), $this->config);
// $ledgioService->report();
try {
$ledgioService->reportByYear();
} catch (Exception $e) {
echo false;
}
if ($year < 2019) {
// ini_set('max_execution_time', 0);
$filePath = $ledgioService->outputDir . 'annexe-declaration-fiscale-crypto-monnaies-' . $year . '-' . date('d-m-Y') . '.pdf';
$view = new ViewModel([
'arrayTransactionsImposable2048m' => $ledgioService->getArrayTransactionsImposable2048m(),
'alldetailAchatParCession2048m' => $ledgioService->getAlldetailAchatParCession2048m(),
'arrayAcquisitionBefore2019' => $ledgioService->getarrayAcquisitionBefore2019(),
'arrayDetailFusionLigneMemeDateMemeAsset' => $ledgioService->getArrayDetailFusionLigneMemeDateMemeAsset(),
'annee' => $year
]);
foreach ($ledgioService->getArrayTransactionsImposable2048m() as $key => $transaction) {
//$key=0;
$filePathFormulaire = $ledgioService->outputDir . 'declaration-n' . ($key + 1) . 'fiscale-crypto-monnaies-' . $year . '-' . date('d-m-Y') . '.pdf';
//echo $filePathFormulaire; exit;
/* @var $pdf \Application\Service\FPDIFormulaire2048m */
$pdf = clone $this->fpdiFormulaire2048m;
//$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Marc');
$pdf->SetTitle('2048m');
$pdf->SetSubject('2048m');
$pdf->SetKeywords('2048m');
// set header and footer fonts
$pdf->setHeaderFont(array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(0, 0, 0);
$pdf->SetHeaderMargin(0);
$pdf->SetFooterMargin(0);
// remove default footer
$pdf->setPrintFooter(false);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, 0);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
// if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
// require_once(dirname(__FILE__).'/lang/eng.php');
// $pdf->setLanguageArray($l);
// }
// ---------------------------------------------------------
// set font
$pdf->SetFont('times', '', 48);
// add a page
// page 1
$pdf->AddPage();
// nom
//$pdf->Cell(30, 0, 'Bottom-Bottom', 1, $ln=0, 'C', 0, '', 0, false, 'B', 'B');
// Print a text
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-page-break
$pdf->SetAutoPageBreak(false, 0);
$img_file = is_file($this->config['path-app'] . '/public/form/2048-' . $year . '-1.jpg') ? $this->config['path-app'] . '/public/form/2048-' . $year . '-1.jpg' : $this->config['path-app'] . '/public/form/2048-2020-1.jpg';
$pdf->Image($img_file, 0, 0, 210, 297, 'JPG', '', 'M', true, 300, 'C', false, false, 0);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
$pdf->setPageMark();
$pdf->SetFont('helvetica', '', 11);
$pdf->setCellHeightRatio(1);
$pdf->SetLineWidth(0);
// Rédacteur de l'acte ne pas remplir
$pdf->SetXY(20, 56);
$pdf->Cell(150, 0, '', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(24, 62);
$pdf->Cell(150, 0, '', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(34, 67);
$pdf->Cell(150, 0, '', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(36, 72);
$pdf->Cell(150, 0, '', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// Désignation du cédant
$pdf->SetXY(68, 85);
$pdf->Cell(150, 0, 'Jean Dupont', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(38, 90);
$pdf->Cell(150, 0, '03/10/1979', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(60, 95);
$pdf->Cell(150, 0, 'rue de la mer 14360', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(20, 100);
$pdf->Cell(150, 0, 'FRANCE', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(34, 105);
$pdf->Cell(150, 0, 'jimmy@gmail.com', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->SetXY(48, 178);
$pdf->Cell(150, 0, 'crypto-actif', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// Renseignements relatifs à la cession
// Nature et date du transfert
$pdf->SetXY(65, 238);
$pdf->Cell(150, 0, 'Cession de crypto-actif le ' . $transaction['datetime']->format('d/m/Y'), 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// $pdf->Cell(150, 0, 'Cession de crypto-actif le ' . date('d/m/Y'), 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// Nom acquéreur
$pdf->SetXY(60, 243);
$pdf->Cell(150, 0, 'Non identifiable', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// Adresse acquéreur
$pdf->SetXY(62, 248);
$pdf->Cell(150, 0, 'Non identifiable', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// SIREN
$pdf->SetXY(53, 253);
$pdf->Cell(150, 0, 'Non identifiable', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// Origine de propriété
$pdf->SetXY(49, 267);
// $pdf->Cell(150, 0, dateacquisitionmoyen ????, 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$pdf->Cell(150, 0, date('d m Y'), 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// indivision ?
$pdf->SetXY(70.68, 273.7);
$pdf->Cell(150, 0, 'x', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// mode acquisition ?
$pdf->SetXY(105.3, 268.34);
$pdf->Cell(150, 0, 'x', 0, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// page 2
$pdf->AddPage();
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-page-break
$pdf->SetAutoPageBreak(false, 0);
$img_file2 = is_file($this->config['path-app'] . '/public/form/2048-' . $year . '-2.jpg') ? $this->config['path-app'] . '/public/form/2048-' . $year . '-2.jpg' : $this->config['path-app'] . '/public/form/2048-2020-2.jpg';
$pdf->Image($img_file2, 0, 0, 210, 297, 'JPG', '', 'M', false, 300, 'C', false, false, 0);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
$pdf->setPageMark();
// Print a text
$pdf->SetFont('helvetica', '', 11);
$pdf->setCellHeightRatio(1);
$pdf->SetLineWidth(0);
// 101 Prix de cession
$a101 = number_format($transaction['priceEUR'], 2, '.', '');
// $a101 = 101;
$pdf->SetXY(131, 36);
$pdf->Cell(30, 0, $a101, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 102 Sommes à ajouter au prix de cession
$a102 = 0;
$pdf->SetXY(131, 43);
$pdf->Cell(30, 0, $a102, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 103 Frais de cession
$a103 = number_format($transaction['fraisCession'], 2, '.', '');
// $a103 = number_format(1037655765.25654, 2, '.', '');
$pdf->SetXY(131, 51);
$pdf->Cell(30, 0, $a103, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 104 = 101 + 102 - 103 Prix de cession corrigé
$a104 = $a101 + $a102 - $a103;
$pdf->SetXY(166, 58);
$pdf->Cell(30, 0, $a104, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 105 Prix acquisition
$a105 = number_format($transaction['totalEURAcquisitionFIFO'], 2, '.', '');
// $a105 = number_format(10590909.5657, 2, '.', '');
$pdf->SetXY(131, 65);
$pdf->Cell(30, 0, $a105, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 106 Frais d'acquisition
$a106 = 0; // @todo ajouter frais
$pdf->SetXY(131, 72);
$pdf->Cell(30, 0, $a106, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 107 Frais de restauration
$a107 = 0;
$pdf->SetXY(131, 79);
$pdf->Cell(30, 0, $a107, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 108 Prix d'acquisition corrigé 105 + 106 + 107
$a108 = $a105 + $a106 + $a107;
$pdf->SetXY(166, 87);
$pdf->Cell(30, 0, $a108, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 110 Plus value brute 104 - 108
$a110 = $a104 - $a108;
$pdf->SetXY(166, 94);
$pdf->Cell(30, 0, $a110, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 121 Nb année détention au delà 2eme année
$a121 = ($transaction['moyenneAnneeAquisition'] - 2 < 0) ? 0 : ($transaction['moyenneAnneeAquisition'] - 2);
// $a121 = 0;
$pdf->SetXY(132, 114);
$pdf->Cell(30, 0, $a121, 1, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// 122 Tx de reduction 121 x 5%
$a122 = number_format($a121 * 5 / 100, 2, '.', '');
$pdf->SetXY(130, 121);
$pdf->Cell(30, 0, $a122, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 123 Montant de la réduction 110 x 122
$a123 = number_format($a110 * $a122, 2, '.', '');
$pdf->SetXY(166, 129);
$pdf->Cell(30, 0, $a123, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 130 Plus-value nette imposable 110 - 123
$a130 = $a110 - $a123;
$pdf->SetXY(166, 136);
$pdf->Cell(30, 0, $a130, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
if ($year == 2017) {
// 140
$a140 = number_format($a130 * 19 / 100, 2, '.', '');
$pdf->SetXY(166, 151);
$pdf->Cell(30, 0, $a140, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 141
$a141 = number_format($a130 * 8.2 / 100, 2, '.', '');
$pdf->SetXY(166, 158);
$pdf->Cell(30, 0, $a141, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 142
$a142 = number_format($a130 * 0.5 / 100, 2, '.', '');
$pdf->SetXY(166, 165);
$pdf->Cell(30, 0, $a142, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 143
$a143 = number_format($a130 * 4.5 / 100, 2, '.', '');
$pdf->SetXY(166, 173);
$pdf->Cell(30, 0, $a143, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 144
$a144 = number_format($a130 * 0.3 / 100, 2, '.', '');
$pdf->SetXY(166, 180);
$pdf->Cell(30, 0, $a144, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
// 145
$a145 = number_format($a130 * 2 / 100, 2, '.', '');
$pdf->SetXY(166, 187);
$pdf->Cell(30, 0, $a145, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
//Total 140 + 141 + 142 + 143 + 144 + 145
$totalAPayer = $a140 + $a141 + $a142 + $a143 + $a144 + $a145;
$pdf->SetXY(167, 208.5);
$pdf->Cell(30, 0, $totalAPayer, 0, $ln = 0, 'R', 0, '', 0, false, 'T', 'C');
}
$faitA = 'Paris';
$pdf->SetXY(14, 225);
$pdf->Cell(30, 0, $faitA, 1, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
$faitLe = date('d m Y');
$pdf->SetXY(77, 225);
$pdf->Cell(30, 0, $faitLe, 1, $ln = 0, 'L', 0, '', 0, false, 'T', 'C');
// page 3
$pdf->AddPage();
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-pagex-break
$pdf->SetAutoPageBreak(false, 0);
$img_file3 = is_file($this->config['path-app'] . '/public/form/2048-' . $year . '-3.jpg') ? $this->config['path-app'] . '/public/form/2048-' . $year . '-3.jpg' : $this->config['path-app'] . '/public/form/2048-2020-3.jpg';
// $img_file3 = $this->config['path-app'] . '/public/form/2048-m-sd_2950-3.jpg';
$pdf->Image($img_file3, 0, 0, 210, 297, 'JPG', '', 'M', false, 300, 'C', false, false, 0);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
$pdf->setPageMark();
// Print a text
// page 4
$pdf->AddPage();
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-page-break
$pdf->SetAutoPageBreak(false, 0);
// $img_file4 = $this->config['path-app'] . '/public/form/2048-m-sd_2950-4.jpg';
$img_file4 = is_file($this->config['path-app'] . '/public/form/2048-' . $year . '-4.jpg') ? $this->config['path-app'] . '/public/form/2048-' . $year . '-4.jpg' : $this->config['path-app'] . '/public/form/2048-2020-4.jpg';
$pdf->Image($img_file4, 0, 0, 210, 297, 'JPG', '', 'M', false, 300, 'C', false, false, 0);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
$pdf->setPageMark();
// Print a text
// page 5
$pdf->AddPage();
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-page-break
$pdf->SetAutoPageBreak(false, 0);
// $img_file5 = $this->config['path-app'] . '/public/form/2048-m-sd_2950-5.jpg';
$img_file5 = is_file($this->config['path-app'] . '/public/form/2048-' . $year . '-5.jpg') ? $this->config['path-app'] . '/public/form/2048-' . $year . '-5.jpg' : $this->config['path-app'] . '/public/form/2048-2020-5.jpg';
$pdf->Image($img_file5, 0, 0, 210, 297, 'JPG', '', 'M', false, 300, 'C', false, false, 0);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
$pdf->setPageMark();
// Print a text
if ($year > 2016) {
// page 6
$pdf->AddPage();
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-page-break
$pdf->SetAutoPageBreak(false, 0);
// $img_file6 = $this->config['path-app'] . '/public/form/2048-m-sd_2950-6.jpg';
$img_file6 = is_file($this->config['path-app'] . '/public/form/2048-' . $year . '-6.jpg') ? $this->config['path-app'] . '/public/form/2048-' . $year . '-6.jpg' : $this->config['path-app'] . '/public/form/2048-2020-6.jpg';
$pdf->Image($img_file6, 0, 0, 210, 297, 'JPG', '', 'M', false, 300, 'C', false, false, 0);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
$pdf->setPageMark();
// Print a text
// page 7
$pdf->AddPage();
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-page-break
$pdf->SetAutoPageBreak(false, 0);
// $img_file7 = $this->config['path-app'] . '/public/form/2048-m-sd_2950-7.jpg';
$img_file7 = is_file($this->config['path-app'] . '/public/form/2048-' . $year . '-6.jpg') ? $this->config['path-app'] . '/public/form/2048-' . $year . '-6.jpg' : $this->config['path-app'] . '/public/form/2048-2020-6.jpg';
$pdf->Image($img_file7, 0, 0, 210, 297, 'JPG', '', 'M', false, 300, 'C', false, false, 0);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// set the starting point for the page content
$pdf->setPageMark();
}
// fin boucle formulaire 2048
// Print a text
// --- example with background set on page ---
// remove default header
$pdf->setPrintHeader(false);
// add a page
// ---------------------------------------------------------
//Close and output PDF document
//$pdf->Output('example_051.pdf', 'I');
$pdf->Output($filePathFormulaire, 'F');
}
// $pdfFormulaire->SetMargins(PDF_MARGIN_LEFT, 40, PDF_MARGIN_RIGHT);
// $pdfFormulaire->SetAutoPageBreak(true, 40);
//
//// add a page
// $pdfFormulaire->AddPage();
// get external file content
// $utf8text = file_get_contents('tcpdf/examples/data/utf8test.txt', true);
//
// $pdfFormulaire->SetFont('freeserif', '', 12);
//// now write some text above the imported page
// $pdfFormulaire->Write(5, $utf8text);
// $pdfFormulaire->Output();
// $pdfFormulaire->Output($filePathFormulaire, 'F');
//echo 'ok';
//exit;
$renderer = $this->renderer;
$view->setTemplate('layout/rapport2048m');
$html = $renderer->render($view);
$pdf = $this->tcpdf;
$pdf->titlePDFCustom = 'Annexe de la 2048m' . $year;
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Ledgio');
$pdf->SetTitle('Annexe de la 2048m' . $year);
$pdf->SetSubject('Calcul des plus values');
$pdf->AddPage('L');
$pdf->SetFont('Helvetica', '', 8, '', 'false');
// get the current page break margin
$bMargin = $pdf->getBreakMargin();
// get current auto-page-break mode
$auto_page_break = $pdf->getAutoPageBreak();
// disable auto-page-break
// $pdf->SetAutoPageBreak(false, 0);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->SetAutoPageBreak($auto_page_break, $bMargin);
$pdf->setPageMark();
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output($filePath, 'F');
if (is_file($filePath)) {
if ($reportFind) {
$reportFind->setPath($filePath);
// $reportFind->setPathBrouillon($filePathBrouillon);
$reportFind->setCreatedDate(new \DateTime());
$reportMapper->update($reportFind);
if ($reportFind && is_file($reportFind->getPath())) {
echo 'true';
exit;
} else {
echo 'false';
exit;
}
} else {
$report = new \Application\Entity\Report();
$report->setStatus(0);
$report->setYear($year);
$report->setUser($user);
$report->setPath($filePath);
// $report->setPathBrouillon($filePathBrouillon);
$report->setCreatedDate(new \DateTime());
$reportMapper->insert($report);
if ($report && is_file($report->getPath())) {
echo 'true';
exit;
} else {
echo 'false';
exit;
}
}
} else {
echo 'false';
exit;
}
} else {
// @todo if is already paied lock file génération return echo true;
// $filePath = $ledgioService->outputDir . 'declaration-fiscale-' . $year . '-' . uniqid() . '.pdf';
$filePath = $ledgioService->outputDir . 'declaration-fiscale-crypto-monnaies-' . $year . '-' . date('d-m-Y') . '.pdf';
$filePath2 = $ledgioService->outputDir . 'declaration-fiscale-crypto-monnaies-2-' . $year . '-' . date('d-m-Y') . '.pdf';
$filePathBrouillon = $ledgioService->outputDir . 'brouillon-2019' . '.pdf';
$filePathAcquisitionAvant2019 = $ledgioService->outputDir . 'acquisition-avant-2019' . '.pdf';
$filePathWarningWallet = $ledgioService->outputDir . 'warning-wallet-' . $year . '-' . date('d-m-Y') . '.pdf';
@unlink($filePathBrouillon);
@unlink($filePath);
@unlink($filePath2);
@unlink($filePathAcquisitionAvant2019);
@unlink($filePathWarningWallet);
if (empty($ledgioService->getBrouillonArrayRapportAnnexePrincipale())) {
echo 'false';
exit;
}
$this->layout('layout/layout-ledgio');
$arrayRapportAnnexePrincipale = $ledgioService->getArrayRapportAnnexePrincipale();
// debug montant acquisition
$arrayRapportAnnexePrincipaleEntre2019etJanvierAnneeImposition = $ledgioService->getArrayRapportAnnexePrincipaleEntre2019etJanvierAnneeImposition();
// generer excel
// annexe principale
// $header = array(
// "Cession N°" => "string",
// "211. Date de cession" => "date",
// "Heure de cession*" => "time",
// "212. Valeur globale\ndu portefeuille\nau moment\nde la cession" => "price",
// "213. Prix\nde cession" => "price",
// "214. Frais\nde cession" => "price",
// "215. Prix\nde cession\nnet des frais" => "price",
// "216. Soulte reçue\nou versée\nlors de la cession" => "price",
// "217. Prix\nde cession\nnet des soultes" => "price",
// "218. Prix\nde cession\nnet des frais\net soults" => "price",
// "220. Prix total\nd'acquisition" => "price",
// "221. Fractions\nde capital initial\ncontenues dans\nle prix total\n
// d'acquisition" => "price",
// "223. Prix total\nd'acquisition net" => "price",
// "Plus-values\net moins-values" => "price",
// );
//
//
// $spreadsheet = new Spreadsheet();
//
// $sheetAnnexePrincipale = new Worksheet($spreadsheet, 'Annexe principale');
// $nombreCession = count($arrayRapportAnnexePrincipale);
// if ($nombreCession > 20) {
// $sheetDetailFusionCession20 = new Worksheet($spreadsheet, 'Détail des cessions 20 à ' . $nombreCession);
// $sheetDetailFusionCession20->fromArray(array_keys($header), NULL, 'A1');
// }
// $numCession = 1;
//
// $numeroLigneTableauPrincipal = 0;
// $sheetAnnexePrincipale->fromArray(array_keys($header), NULL, 'A1');
//
// $sommeCessionBrut = 0;
// $sommeFraisCession = 0;
// $sommePrixCession = 0;
// $sommePrixCessionEtSoults = 0;
// $sommePrixAcquites = 0;
// $sommeFractionsInitialesCapital = 0;
// $sommePrixTotalAcquisition = 0;
// $sommeValeurPortefeuille = 0;
// $sommePlusOuMoinsValue = 0;
//
// $sommeSecondtermePV = 0;
//
// $lineDetail = 2;
// foreach ($arrayRapportAnnexePrincipale as $key => $ligneRapport) {
// $colIndex = 1;
// if ($numeroLigneTableauPrincipal < 19 || ($numeroLigneTableauPrincipal == 20 && $nombreCession == 20)) {
//
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, $numCession++);
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, $ligneRapport->getDateCession()->format('d-m-Y'));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, $ligneRapport->getDateCession()->format('H:i:s'));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getValeurPortefeuille(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getPrixCessionBrut(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getFraisCession(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getPrixCession(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, '');
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getPrixCessionBrut(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getPrixCession(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getSommePrixAcquites(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getSommeFractionsInitialesCapital(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, number_format($ligneRapport->getPrixTotalAcquisition(), 0, '.', ''));
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $key + 2, (($ligneRapport->getPlusOuMoinsValue() > 0) ? '+' : '') . ' ' . number_format($ligneRapport->getPlusOuMoinsValue(), 0, '.', ''));
// } else {
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, $numCession++);
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, $ligneRapport->getDateCession()->format('d-m-Y'));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, $ligneRapport->getDateCession()->format('H:i:s'));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getValeurPortefeuille(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getPrixCessionBrut(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getFraisCession(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getPrixCession(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, '');
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getPrixCessionBrut(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getPrixCession(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getSommePrixAcquites(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getSommeFractionsInitialesCapital(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, number_format($ligneRapport->getPrixTotalAcquisition(), 0, '.', ''));
// $sheetDetailFusionCession20->setCellValueByColumnAndRow($colIndex++, $lineDetail, (($ligneRapport->getPlusOuMoinsValue() > 0) ? '+' : '') . ' ' . number_format($ligneRapport->getPlusOuMoinsValue(), 0, '.', ''));
//
// $lineDetail++;
// $sommeCessionBrut += $ligneRapport->getPrixCessionBrut();
// $sommeFraisCession += $ligneRapport->getFraisCession();
// $sommePrixCession += $ligneRapport->getPrixCession();
// $sommePrixCessionEtSoults += $ligneRapport->getPrixCessionBrut();
// $sommePrixAcquites += $ligneRapport->getSommePrixAcquites();
// $sommeFractionsInitialesCapital += $ligneRapport->getSommeFractionsInitialesCapital();
// $sommePrixTotalAcquisition += $ligneRapport->getPrixTotalAcquisition();
// $sommeValeurPortefeuille += $ligneRapport->getValeurPortefeuille();
// $sommePlusOuMoinsValue += $ligneRapport->getPlusOuMoinsValue();
// }
// $numeroLigneTableauPrincipal++;
//
// }
//
//
// if ($nombreCession > 20) {
// ${212} = ($sommePrixTotalAcquisition / ($numeroLigneTableauPrincipal - 19)) * $sommePrixCessionEtSoults / ($sommePrixCession - $sommePlusOuMoinsValue);
// $currentLineDetailFusionCession = 20;
// $colIndex = 1;
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, '20 (fusion des cessions 20 à ' . $nombreCession . ')');
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, '31-12-' . $year);
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, '23:59:59');
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format(${212}, 0, '.', '')); //212
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommeCessionBrut, 0, '.', '')); //213
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommeFraisCession, 0, '.', '')); //214
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommePrixCession, 0, '.', '')); //215
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, ''); //216
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, $sommePrixCessionEtSoults); //217
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommePrixCession, 0, '.', '')); //218
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommePrixAcquites / ($numeroLigneTableauPrincipal - 19), 0, '.', '')); //220
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommeFractionsInitialesCapital / ($numeroLigneTableauPrincipal - 19), 0, '.', '')); //221
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommePrixTotalAcquisition / ($numeroLigneTableauPrincipal - 19), 0, '.', '')); //223
// $sheetAnnexePrincipale->setCellValueByColumnAndRow($colIndex++, $currentLineDetailFusionCession, number_format($sommePlusOuMoinsValue, 0));
//
//
// }
//
// $spreadsheet->addSheet($sheetAnnexePrincipale, 0);
// if (!empty($sheetDetailFusionCession20)) {
// $spreadsheet->addSheet($sheetDetailFusionCession20);
// }
//
// foreach (range('A', $sheetAnnexePrincipale->getHighestColumn()) as $column) {
// $sheetAnnexePrincipale->getStyle($column)->getAlignment()->setWrapText(true);
// $sheetAnnexePrincipale->getColumnDimension($column)->setAutoSize(true);
// }
//
// $sheetAnnexePrincipale->getRowDimension(1)->setRowHeight(-1);
// $writer = new Xlsx($spreadsheet);
//
// $writer->save($ledgioService->outputDir . 'declaration-fiscale-crypto-monnaies-' . date('d-m-Y') . '.xlsx');
$renderer = $this->renderer;
if (!empty($ledgioService->arrayWarningWalletQte)) {
// Rapport warning incohérence wallet (qté vendue sup à ce qu'il y a dans le wallet
$viewWarningWallet = new ViewModel([
'arrayWarningWalletQte' => $ledgioService->arrayWarningWalletQte,
'arrayImport' => $ledgioService->getArrayImport(),
'annee' => $year
]);
$viewWarningWallet->setTemplate('layout/warning-rapport');
$htmlWarningWallet = $renderer->render($viewWarningWallet);
$pdfWarningWallet = $this->tcpdf;
$pdfWarningWallet->titlePDFCustom = 'Erreurs du rapport ' . $year;
$pdfWarningWallet->SetCreator('Ledgio');
$pdfWarningWallet->SetAuthor('Ledgio');
$pdfWarningWallet->SetTitle('Erreurs du rapport' . $year);
$pdfWarningWallet->SetSubject('Erreurs du rapport');
$pdfWarningWallet->AddPage('L');
$pdfWarningWallet->SetFont('Helvetica', '', 8, '', 'false');
$pdfWarningWallet->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdfWarningWallet->setPageMark();
$pdfWarningWallet->writeHTML($htmlWarningWallet, true, false, true, false, '');
$pdfWarningWallet->Output($filePathWarningWallet, 'F');
echo 'warning';
exit;
}
// fin rapport warning
//echo 'ok';
//exit;
$arrayDateCession = [];
foreach($arrayRapportAnnexePrincipale as $rowTableauPrincipal) {
$arrayDateCession[] = $rowTableauPrincipal->getDateCession();
}
$view = new ViewModel([
'lignesRapport' => $arrayRapportAnnexePrincipale,
//'arrayDateCession' => $arrayDateCession,
'lignesRapportEntre2019etJanvierAnneeImposition' => $arrayRapportAnnexePrincipaleEntre2019etJanvierAnneeImposition, // // debug montant acquisition
'arrayValuesWalletEUR' => $ledgioService->arrayValuesWalletEUR,
'totalAcquisitionDebutAnnee' => $ledgioService->getTotalPrixAcquisitionBefore2019(),
'totalPrixAcquisitionPremierJanvierAnneeImposition' => $ledgioService->getTotalPrixAcquisitionBefore2019(), //// debug montant acquisition
//'sommePrixAcquitesEntre2019EtJanvierImposition' => $ledgioService->sommePrixAcquitesEntre2019EtJanvierAnneeImposition, //// debug montant acquisition
'investFiatAfter2019Detail' => $ledgioService->getInvestFiatAfter2019Detail(),
'arrayAcquisitionFiatAvantDateCession' => $ledgioService->getArrayAcquisitionFiatAvantDateCession(),
'arrayAcquisitionFiatAvantDateCessionEntre2019etJanvierAnneeImposition' => $ledgioService->getArrayAcquisitionFiatAvantDateCessionEntre2019etJanvierAnneeImposition(), // // debug montant acquisition
'arrayTransactionsCessionFiatAnneeImposition' => $ledgioService->getArrayTransactionsCessionFiatAnneeImposition(),
'arrayDetailFusionLigneMemeDateMemeAsset' => $ledgioService->getArrayDetailFusionLigneMemeDateMemeAsset(),
'explanationPrixTotalAcquisition' => $ledgioService->explanationPrixTotalAcquisition,
'explanationPlusOuMoinsValue' => $ledgioService->explanationPlusOuMoinsValue,
'arrayAcquisitionBefore2019' => $ledgioService->getarrayAcquisitionBefore2019(),
'explicationAcquisitionAvant2019' => $ledgioService->explicationAcquisitionAvant2019,
'arrayImport' => $ledgioService->getArrayImport(),
'arrayExplicationAcquisitionEUR' => $ledgioService->arrayExplicationAcquisitionEUR,
'explicationValeurEchangeAvant2019' => $ledgioService->explicationValeurEchangeAvant2019,
'detailArrayAcquisitionFiatDepuisDerniereCession' => $ledgioService->detailArrayAcquisitionFiatDepuisDerniereCession,
'arrayValuesWalletEURAcquisitionAvantAnneeImposition' => $ledgioService->arrayValuesWalletEURAcquisitionAvantAnneeImposition,
'arrayExplicationWalletApres2019' => $ledgioService->arrayExplicationWalletApres2019,
'arrayExplicationLedgio' => $ledgioService->arrayExplicationLedgio,
'detailFraisServiceAnneeImposition' => $ledgioService->detailFraisServiceAnneeImposition,
'totalEURFraisServiceAnneeImposition' => $ledgioService->totalEURFraisServiceAnneeImposition,
'typeFusion' => (!empty($typeFusion) && in_array($typeFusion, [5,20]) ? $typeFusion : 20),
'annee' => $year
]);
$view->setTemplate('layout/rapport');
$html = $renderer->render($view);
$pdf = $this->tcpdf;
$pdf->titlePDFCustom = 'Annexe (V de l\'article 150 VH Bis du code général des impôts) ' . $year;
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Ledgio');
$pdf->SetTitle('Annexe (V de l\'article 150 VH Bis du code général des impôts)' . $year);
$pdf->SetSubject('Calcul des plus values');
$pdf->AddPage('L');
$pdf->SetFont('Helvetica', '', 8, '', 'false');
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->setPageMark();
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output($filePath, 'F');
// annexe rapport
// $view2 = new ViewModel([
// 'lignesRapport' => $arrayRapportAnnexePrincipale,
// 'lignesRapportEntre2019etJanvierAnneeImposition' => $arrayRapportAnnexePrincipaleEntre2019etJanvierAnneeImposition, // // debug montant acquisition
// 'arrayValuesWalletEUR' => $ledgioService->arrayValuesWalletEUR,
// 'totalAcquisitionDebutAnnee' => $ledgioService->getTotalPrixAcquisitionBefore2019(),
// 'totalPrixAcquisitionPremierJanvierAnneeImposition' => $ledgioService->getTotalPrixAcquisitionBefore2019(), //// debug montant acquisition
// //'sommePrixAcquitesEntre2019EtJanvierImposition' => $ledgioService->sommePrixAcquitesEntre2019EtJanvierAnneeImposition, //// debug montant acquisition
// 'investFiatAfter2019Detail' => $ledgioService->getInvestFiatAfter2019Detail(),
// 'arrayAcquisitionFiatAvantDateCession' => $ledgioService->getArrayAcquisitionFiatAvantDateCession(),
// 'arrayAcquisitionFiatAvantDateCessionEntre2019etJanvierAnneeImposition' => $ledgioService->getArrayAcquisitionFiatAvantDateCessionEntre2019etJanvierAnneeImposition(), // // debug montant acquisition
// 'arrayTransactionsCessionFiatAnneeImposition' => $ledgioService->getArrayTransactionsCessionFiatAnneeImposition(),
// 'arrayDetailFusionLigneMemeDateMemeAsset' => $ledgioService->getArrayDetailFusionLigneMemeDateMemeAsset(),
// 'explanationPrixTotalAcquisition' => $ledgioService->explanationPrixTotalAcquisition,
// 'arrayAcquisitionBefore2019' => $ledgioService->getarrayAcquisitionBefore2019(),
// 'explicationAcquisitionAvant2019' => $ledgioService->explicationAcquisitionAvant2019,
// 'arrayImport' => $ledgioService->getArrayImport(),
// 'arrayExplicationAcquisitionEUR' => $ledgioService->arrayExplicationAcquisitionEUR,
// 'explicationValeurEchangeAvant2019' => $ledgioService->explicationValeurEchangeAvant2019,
// 'detailArrayAcquisitionFiatDepuisDerniereCession' => $ledgioService->detailArrayAcquisitionFiatDepuisDerniereCession,
// 'arrayValuesWalletEURAcquisitionAvantAnneeImposition' => $ledgioService->arrayValuesWalletEURAcquisitionAvantAnneeImposition,
// 'arrayExplicationWalletApres2019' => $ledgioService->arrayExplicationWalletApres2019,
//
// 'arrayExplicationLedgio' => $ledgioService->arrayExplicationLedgio,
//
// 'annee' => $year
// ]);
// $view2->setTemplate('layout/rapport');
// $html2 = $renderer->render($view2);
// $pdf2 = $this->tcpdf;
// $pdf2->titlePDFCustom = 'Annexe (V de l\'article 150 VH Bis du code général des impôts) ' . $year;
// $pdf2->SetCreator(PDF_CREATOR);
// $pdf2->SetAuthor('Ledgio');
// $pdf2->SetTitle('Annexe (V de l\'article 150 VH Bis du code général des impôts)' . $year);
// $pdf2->SetSubject('Calcul des plus values');
// $pdf2->AddPage('L');
// $pdf2->SetFont('Helvetica', '', 8, '', 'false');
//
//
//
//
// // set margins
// $pdf2->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
// $pdf2->SetHeaderMargin(PDF_MARGIN_HEADER);
// $pdf2->SetFooterMargin(PDF_MARGIN_FOOTER);
//
//// set auto page breaks
// $pdf2->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//
//
// $pdf2->setPageMark();
// $pdf2->writeHTML($html2, true, false, true, false, '');
// $pdf2->Output($filePath2, 'F');
// // get the current page break margin
// $bMargin = $pdf->getBreakMargin();
// // get current auto-page-break mode
// $auto_page_break = $pdf->getAutoPageBreak();
// // restore auto-page-break status
// $pdf->SetAutoPageBreak($auto_page_break, $bMargin);
// $viewBrouillon = new ViewModel([
// 'lignesRapport' => $ledgioService->getBrouillonArrayRapportAnnexePrincipale(),
// 'arrayValuesWalletEUR' => $ledgioService->arrayValuesWalletEUR,
// 'totalAcquisitionDebutAnnee' => $ledgioService->getTotalPrixAcquisitionBefore2019(),
// 'investFiatAfter2019Detail' => $ledgioService->getInvestFiatAfter2019Detail(),
// 'arrayAcquisitionFiatAvantDateCession' => $ledgioService->getArrayAcquisitionFiatAvantDateCession(),
// 'arrayTransactionsCessionFiatAnneeImposition' => $ledgioService->getArrayTransactionsCessionFiatAnneeImposition(),
// 'arrayDetailFusionLigneMemeDateMemeAsset' => $ledgioService->getArrayDetailFusionLigneMemeDateMemeAsset(),
// 'arrayImport' => $ledgioService->getArrayImport(),
// 'annee' => $year
// ]);
//
// $viewAcquisition = new ViewModel(
// ['arrayAcquisitionBefore2019' => $ledgioService->getarrayAcquisitionBefore2019()
// ]);
////$view->setTemplate('rapport-pdf');
//
//
//
//
// $viewBrouillon->setTemplate('layout/brouillon-rapport');
// $viewAcquisition->setTemplate('layout/annexe-acquisition-avant-01-01-2019');
//
//
// $htmlBrouillon = $renderer->render($viewBrouillon);
// $htmlAcquisition = $renderer->render($viewAcquisition);
//
//
// $pdfBrouillon = $this->tcpdfBrouillon;
// $pdfBrouillon->titlePDFCustom = '!!!! Apercu Annexe (V de l\'article 150 VH Bis du code général des impôts) ' . $year;
//
// $pdfAcquisition = clone $this->tcpdf;
// $pdfAcquisition->titlePDFCustom = 'Annexe Acquisition avant 1er janvier 2019';
//
//
//
//
// $pdfAcquisition->SetTitle('Annexe Acquisition avant 1er janvier 2019');
// $pdfAcquisition->SetSubject('Acquisition');
//
//
// $pdfBrouillon->AddPage('L');
// $pdfBrouillon->SetFont('Helvetica', '', 8, '', 'false');
//
// $image_file = $this->config['path-app'] . '/public/img/pdf/filigrane-brouillon.png';
// $pdfBrouillon->startLayer('layer', true, true, true);
// $pdfBrouillon->Image($image_file, '', '', '', '', '', '', 'C', true, 300, 'C', false, false, 0, '', false, false);
//
//
// $pdfAcquisition->AddPage('L');
// $pdfAcquisition->SetFont('Helvetica', '', 8, '', 'false');
//
//
//
// // disable auto-page-break
//// $pdf->SetAutoPageBreak(false, 0);
//
// $pdfBrouillon->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// $pdfAcquisition->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
//
//
// //$image_file = $this->config['path-app'] . '/public/img/pdf/filigrane-brouillon.png';
// //$pdfBrouillon->Image($image_file, 0, 0, $w = 0, $h = 0, $type = '', $link = '', $align = '', $resize = 2, $dpi = 300, $palign = 'C', $ismask = false, $imgmask = false, $border = 0, $fitbox = 'CM', $hidden = false, $fitonpage = true, $alt = false, $altimgs = array());
// // set bacground image
//
// $pdfBrouillon->SetAutoPageBreak($auto_page_break, $bMargin);
// $pdfAcquisition->SetAutoPageBreak($auto_page_break, $bMargin);
//// set the starting point for the page content
//
// $pdfBrouillon->writeHTML($htmlBrouillon, true, false, true, false, '');
// $pdfAcquisition->writeHTML($htmlAcquisition, true, false, true, false, '');
//
//
// //$pdf->Output();
// //$config = $this->getConfig();
////touch('./data/io/data/io/rapport-2019.pdf');
//
// $pdfBrouillon->endLayer();
// $pdfBrouillon->Output($filePathBrouillon, 'F');
// $pdfAcquisition->Output($filePathAcquisitionAvant2019, 'F');
if (is_file($filePath)) {
if ($reportFind) {
$reportFind->setPath($filePath);
//$reportFind->setPathBrouillon($filePathBrouillon);
$reportFind->setCreatedDate(new \DateTime());
$reportMapper->update($reportFind);
// if ($reportFind && is_file($reportFind->getPath()) && is_file($reportFind->getPathBrouillon())) {
if ($reportFind && is_file($reportFind->getPath())) {
echo 'true';
exit;
} else {
echo 'false';
exit;
}
} else {
$report = new \Application\Entity\Report();
$report->setStatus(0);
$report->setYear($year);
$report->setUser($user);
$report->setPath($filePath);
//$report->setPathBrouillon($filePathBrouillon);
$report->setCreatedDate(new \DateTime());
$reportMapper->insert($report);
if ($report && is_file($report->getPath())) {
echo 'true';
exit;
} else {
echo 'false';
exit;
}
}
} else {
echo 'titi';
exit;
echo 'false';
exit;
}
}
display:
// if ($reportFind && is_file($reportFind->getPath()) && is_file($reportFind->getPathBrouillon())) {
if ($reportFind && is_file($reportFind->getPath())) {
echo 'true';
exit;
} else {
echo 'false';
exit;
}
}
public function getConfig()
{
return $this->config;
}
public function apercuAction()
{
if ($user = $this->currentUser()) {
} else {
return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
}
$year = $this->params()->fromRoute('year', null);
$typeFusion = $this->params()->fromQuery('typeFusion', null);
$reportMapper = new \Application\Mapper\ReportMapper($this->getEntityManager());
$reportFind = $reportMapper->findByYearAndUser($year, $user);
return new ViewModel(array(
'year' => $year,
'typeFusion' => $typeFusion,
'reportFind' => $reportFind
));
}
public function downloadAction()
{
if ($user = $this->currentUser()) {
} else {
return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
}
// verifier si paye
//$token = $this->params()->fromRoute('token', null);
$year = $this->params()->fromRoute('year', null);
$mode = $this->params()->fromRoute('mode', null);
$type = $this->params()->fromRoute('type', null);
// if (empty($token)) {
// $this->flashMessenger()->addErrorMessage('Aucun rapport n\'est disponible');
// $this->redirect()->toRoute(self::ROUTE_DOWNLOAD);
// }
if (empty($year)) {
$this->flashMessenger()->addErrorMessage('Aucun rapport n\'est disponible');
$this->redirect()->toRoute(self::ROUTE_APERCU);
}
$entityManager = $this->getEntityManager();
/* @var $entityManager \Doctrine\ORM\EntityManager */
$reportMapper = new \Application\Mapper\ReportMapper($entityManager);
$reportFind = $reportMapper->findByYearAndUser($year, $user);
// if ($mode != 'brouillon' && $reportFind->isNotValidated() || $mode == 'final') {
// echo 'not validate';
// exit;
// $this->redirect()->toRoute(self::ROUTE_APERCU);
// }
//var_dump(empty($reportFind)); exit;
if (!$reportFind) {
sleep(10);
$reportFind = $reportMapper->findByYearAndUser($year, $user);
}
// if (!$reportFind) {
// sleep(10);
// $reportFind = $reportMapper->findByYearAndUser($year, $user);
// }
if ($mode == 'brouillon') {
$filePath = $reportFind->getPathBrouillon();
} else {
$filePath = $reportFind->getPath();
}
$explodeFilePath = explode('/', $filePath);
$fileName = end($explodeFilePath);
if (!is_readable($filePath)) {
// Set 404 Not Found status code
$this->getResponse()->setStatusCode(404);
return;
}
// Get file size in bytes
$fileSize = filesize($filePath);
// Write HTTP headers
$response = $this->getResponse();
$headers = $response->getHeaders();
if ($type == 'inline') {
$headers->addHeaderLine("Content-Disposition: inline; filename=\"" . $fileName . ".pdf");
$headers->addHeaderLine("Content-type: application/pdf");
} else {
$headers->addHeaderLine(
"Content-type: application/octet-stream");
$headers->addHeaderLine(
"Content-Disposition: attachment; filename=\"" .
$fileName . "\"");
$headers->addHeaderLine("Content-length: $fileSize");
$headers->addHeaderLine("Cache-control: private");
}
// Write file content
$fileContent = file_get_contents($filePath);
if ($fileContent != false) {
$response->setContent($fileContent);
} else {
// Set 500 Server Error status code
$this->getResponse()->setStatusCode(500);
return;
}
// Return Response to avoid default view rendering
return $this->getResponse();
// var_dump($reportFind);
// exit;
// $countTrade = $ledgioMapper->countTradeByIdUser($user->getId());
// $countTradeIn = $ledgioMapper->countTradeInByIdUser($user->getId());
// $countTradeOut = $ledgioMapper->countTradeOutByIdUser($user->getId());
//var_dump($countTrade); exit;
// return new ViewModel(array(
// //'arrayExhanges' => $arrayExhanges,
// 'countTrade' => $countTrade,
// 'countTradeIn' => $countTradeIn,
// 'countTradeOut' => $countTradeOut,
// ));
}
public function validationCommandeAction()
{
if ($user = $this->currentUser()) {
} else {
return $this->redirect()->toRoute(\Application\Controller\UserController::ROUTE_LOGIN);
}
// https://developer.paypal.com/docs/checkout/reference/server-integration/setup-sdk/#set-up-the-environment
$orderId = $this->params()->fromRoute('orderId', null);
$year = $this->params()->fromRoute('year', null);
//var_dump($orderId); exit;
$client = \Application\Service\Paypal\PaypalClient::client();
$request = new OrdersGetRequest($orderId);
$request->headers["prefer"] = "return=representation";
$response = $client->execute($request);
/**
* Enable the following line to print complete response as JSON.
*/
//print json_encode($response->result);
print "Status Code: {$response->statusCode}\n";
print "Status: {$response->result->status}\n";
print "Order ID: {$response->result->id}\n";
print "Intent: {$response->result->intent}\n";
print "Links:\n";
foreach ($response->result->links as $link) {
print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";
}
// 4. Save the transaction in your database. Implement logic to save transaction to your database for future reference.
print "Gross Amount: {$response->result->purchase_units[0]->amount->currency_code} {$response->result->purchase_units[0]->amount->value}\n";
// save order
// unlock report
$reportMapper = new \Application\Mapper\ReportMapper($this->getEntityManager());
$report = $reportMapper->findByYearAndUser($year, $user);
if (!$report) {
$this->flashMessenger()->addErrorMessage('Aucun rapport n\'est disponible');
$this->redirect()->toRoute(self::ROUTE_APERCU, array('year' => $year));
}
if ($report->getOrderId()) {
$this->flashMessenger()->addErrorMessage('Paiement déjà effectué.');
$this->redirect()->toRoute(self::ROUTE_APERCU, array('year' => $year));
}
$report->setOrderId($orderId);
$report->setStatus(true);
$this->getEntityManager()->persist($report);
$this->getEntityManager()->flush();
$this->flashMessenger()->addSuccessMessage('Paiement déjà effectué.');
$this->redirect()->toRoute(self::ROUTE_APERCU, array('year' => $year));
// To print the whole response body, uncomment the following line
// echo json_encode($response->result, JSON_PRETTY_PRINT);
}
}