oms-Script/tests/depreciation/view.xls.php
Dennis Eichhorn bbc4468cb1
Some checks failed
Image optimization / general_image_workflow (push) Has been cancelled
CI / general_module_workflow_php (push) Has been cancelled
CI / general_module_workflow_js (push) Has been cancelled
crash backup
2025-03-21 02:48:20 +00:00

58 lines
2.5 KiB
PHP
Executable File

<?php
declare(strict_types=1);
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use phpOMS\Business\Finance\Depreciation;
/**
* @var \phpOMS\Views\View $this
*/
$tcoll = $this->data['tcoll'];
$rcoll = $this->data['rcoll'];
$cLang = $this->data['lang'];
$template = $this->data['template'];
$report = $this->data['report'];
$basepath = \rtrim($this->data['basepath'] ?? '', '/');
/** @noinspection PhpIncludeInspection */
$reportLanguage = include $basepath . '/' . \ltrim($tcoll['lang']->getPath(), '/');
$lang = $reportLanguage[$cLang];
$amount = (float) ($this->request->getData('amount') ?? 10000.0);
$duration = (int) ($this->request->getData('duration') ?? 10);
$spreadsheet = new Spreadsheet();
$spreadsheet->getProperties()->setCreator('Karaka')
->setLastModifiedBy('Karaka')
->setTitle('Karaka - Depreciation Demo')
->setSubject('Karaka - Depreciation Demo')
->setDescription('Demo')
->setKeywords('demo helper depreciation')
->setCategory('demo');
$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A1', $lang['Period'])
->setCellValue('B1', $lang['StraightLine'])
->setCellValue('C1', $lang['ArithmeticDegressive'])
->setCellValue('D1', $lang['ArithmeticProgressive'])
->setCellValue('E1', $lang['GeometricDegressive'])
->setCellValue('F1', $lang['GeometricProgressive']);
for ($i = 1; $i <= $duration; ++$i) {
$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A' . ($i + 1), $i)
->setCellValue('B' . ($i + 1), $this->getCurrency(Depreciation::getStraightLineResidualInT($amount, $duration, $i), 'medium', ''))
->setCellValue('C' . ($i + 1), $this->getCurrency(Depreciation::getArithmeticDegressiveDepreciationResidualInT($amount, 0.0, $duration, $i), 'medium', ''))
->setCellValue('D' . ($i + 1), $this->getCurrency(Depreciation::getArithmeticProgressiveDepreciationResidualInT($amount, 0.0, $duration, $i), 'medium', ''))
->setCellValue('E' . ($i + 1), $this->getCurrency(Depreciation::getGeometicProgressiveDepreciationResidualInT($amount, $amount * 0.1, $duration, $i), 'medium', ''))
->setCellValue('F' . ($i + 1), $this->getCurrency(Depreciation::getGeometicDegressiveDepreciationResidualInT($amount, $amount * 0.1, $duration, $i), 'medium', ''));
}
$spreadsheet->getActiveSheet()->setTitle($lang['Depreciation']);
$spreadsheet->setActiveSheetIndex(0);
$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
$writer->save('php://output');