| Server IP : 37.9.174.138 / Your IP : 216.73.216.117 Web Server : Apache System : Linux vps6.backend.sk 6.12.100+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.100-1 (2026-07-30) x86_64 User : ftpuser ( 1001) PHP Version : 8.4.24 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/backend-accounting.sk/app/modules/dpfob/code/ |
Upload File : |
<?php
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/PHPClass.php to edit this template
*/
namespace modules\dpfob\code;
/**
* Description of DPFOBForm
*
* @author maros
*/
class DPFOBForm extends \modules\forms\code\AbstractForm {
public const ATTACHMENTS = "attachments";
public const ATTACHMENTS_INCOMES = "incomes_tpp_attachments";
public const ATTACHMENTS_KIDS_TAX_BONUS = "kids_tax_bonus_attachments_";
public const ATTACHMENTS_DDS = "dds_attachments";
public const ATTACHMENTS_MORTAGE = "mortage_attachments";
public const ATTACHMENTS_TAX_GIFT = "tax_gift_attachments";
public const ATTACHMENTS_TRUST_DEED = "trust_deed_attachments";
protected const NAME = 'dpfob';
protected $adminScope;
protected $inputClass;
public static $kidsRows = 5;
protected $lastYear;
protected $user;
public function __construct($adminScope = false, $inputClass = 'form-control-lg') {
parent::__construct();
$this->lastYear = date("Y") - 1;
try {
$this->user = \app\classes\BasicUser::getLoggedUser([\app\constants\UserType::CUSTOMER]);
} catch (\Exception $ex) {
}
$this->adminScope = $adminScope;
$this->inputClass = $inputClass;
}
static function getConstants($prefix = false) {
$oClass = new \ReflectionClass(__CLASS__);
$constants = $oClass->getConstants();
unset($constants["ATTACHMENTS_KIDS_TAX_BONUS"]);
for ($i = 1; $i <= self::$kidsRows; $i++) {
$constants["ATTACHMENTS_KIDS_TAX_BONUS_" . $i] = self::ATTACHMENTS_KIDS_TAX_BONUS . $i;
}
if ($prefix) {
$prefixParam = $prefix;
$prefix = $prefix . '_';
foreach ($constants as $key => $val) {
if (strtolower(substr($key, 0, strlen($prefix))) !== strtolower($prefix) && strtolower($prefixParam) !== strtolower($key)) {
unset($constants[$key]);
}
}
}
return $constants;
}
public function render() {
$form = $this->getNewForm(self::NAME, "ajax('/api/admin/dpfob/dpfob/manage/', 'POST', $(this).serialize(), 'afterManage');", new \PFBC\View\FourColumns());
$form->addElement(new \PFBC\Element\HTML('<div class="row">'));
$elements = $this->getAllElements();
foreach ($elements as $element) {
if (isset($element["pfbc"])) {
$form->addElement($element["pfbc"]);
}
}
$form->addElement(new \PFBC\Element\HTML('</div>'));
$form->render();
}
/**
* @return array
*/
protected function getBasicInfoElements(): array {
$skNaces = new \app\classes\PDOCollection("sk_naces", "id", "SELECT id, CONCAT(code, ' - ', name) AS full_name FROM sk_naces ", []);
$skNaces = ["" => ""] + array_column($skNaces->toArray(), "full_name", "id");
$elements = [
"is_our_client" => [
"db" => true,
"controller" => \modules\forms\code\RadioController::class,
"pfbc" => new \PFBC\Element\Radio(
$this->t->_get("Ste naším klientom"),
"is_our_client",
[
1 => $this->t->_get("Áno"),
0 => $this->t->_get("Nie"),
],
array(
"required" => 1,
"class" => "",
"autocomplete" => "off",
)
),
],
"our_client_company" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Obchodný názov"),
"our_client_company",
array(
"maxlength" => 45,
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"prepend" => '<div class="input-group mb-3">',
"append" => '<span title="' . $this->t->_get('Názov spoločnosti alebo meno (v prípade živnostníka)') . '" class="input-group-text" role="button" data-bs-toggle="tooltip"><i class="fa fa-question"></i></span></div>'
)
),
],
"dp_submits_client" => [
"db" => true,
"controller" => \modules\forms\code\RadioController::class,
"pfbc" => new \PFBC\Element\Radio(
$this->t->_get("Podanie daňového priznania"),
"dp_submits_client",
[
1 => $this->t->_get("Podám sám"),
0 => $this->t->_get("Podá Backend Accounting"),
],
array(
"required" => 1,
"class" => "",
"data-grid-class" => "col-xl-3 col-lg-4 col-md-6 dp_submits_client-container",
"autocomplete" => "off",
)
),
],
"dp_delayed_submission" => [
"db" => true,
"controller" => \modules\forms\code\RadioController::class,
"pfbc" => new \PFBC\Element\Radio(
$this->t->_get("Odklad daňového priznania"),
"dp_delayed_submission",
[
1 => $this->t->_get("Áno"),
0 => $this->t->_get("Nie"),
],
array(
"required" => 1,
"class" => "",
"data-grid-class" => "col-xl-3 col-lg-4 col-md-6 dp_delayed_submission-container",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => DPFOBHelper::isDoublePriceInterval() ? [
"db" => false,
"pfbc" => new \PFBC\Element\HTML("<div id='doublePriceAlert' class='alert alert-info text-center' style='display: none;'><i class='fa fa-info-circle me-1'></i> " . sprintf(
$this->t->_get('Od %s účtujeme 100 %% príplatok za spracovanie daňového priznania do <b>%s</b>, ktorý už je zahrnutý v odhadovanej cene.'),
date('d.m.Y', strtotime(date('Y', strtotime(DPFOBHelper::getTodayDate())) . '-' . ((intval(date('m', strtotime(DPFOBHelper::getTodayDate()))) > 3 ? DPFOBHelper::DOUBLE_PRICE_DAY_2 :
DPFOBHelper::DOUBLE_PRICE_DAY)))),
(intval(date('m', strtotime(DPFOBHelper::getTodayDate()))) > 3 ? '30.06.' : '31.03.') . date('Y', strtotime(DPFOBHelper::getTodayDate()))
) . "</div>")
] : "",
$this->getNextHtmlInputKey() => $this->getTitleElement("Osobné údaje", 4, "", "mt-0"),
"degree_before" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Titul pred menom"),
"degree_before",
array(
"maxlength" => 20,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"first_name" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Meno"),
"first_name",
array(
"maxlength" => 45,
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"last_name" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Priezvisko"),
"last_name",
array(
"maxlength" => 45,
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"degree_after" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Titul za menom"),
"degree_after",
array(
"maxlength" => 20,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"street" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Ulica a číslo"),
"street",
array(
"maxlength" => 45,
"placeholder" => "",
"required" => 1,
"class" => "form-control g-location-autocomplete-1 " . $this->inputClass,
"autocomplete" => "off",
"prepend" => '<div class="input-group mb-3">',
"append" => '<span title="' . $this->t->_get('Trvalý pobyt (v prípade živnostníka sídlo podnikania)') . '" class="input-group-text" role="button" data-bs-toggle="tooltip"><i class="fa fa-question"></i></span></div>'
)
),
],
"city" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Mesto"),
"city",
array(
"maxlength" => 45,
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"zip" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Tel(
$this->t->_get("PSČ"),
"zip",
array(
"pattern" => "\d{3}\s?\d{2}",
"maxlength" => 45,
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"country" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Krajina"),
"country",
array(
"maxlength" => 45,
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"birth_number" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Rodné číslo"),
"birth_number",
array(
"required" => 1,
"pattern" => "^\d{6}\/?\d{3,4}$",
"inputmode" => "numeric",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte rodné číslo bez lomky.") . '</div>',
)
),
],
"idn" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("IČO (ak bolo pridelené)"),
"idn",
array(
"pattern" => "^[0-9]{8}$",
"maxlength" => 8,
"inputmode" => "numeric",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte platné IČO.") . '</div>',
)
),
],
"tin" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("DIČ (ak bolo pridelené)"),
"tin",
array(
"pattern" => "^[0-9]{10}$",
"maxlength" => 10,
"inputmode" => "numeric",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte platné DIČ.") . '</div>',
)
),
],
"vat" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("IČ DPH (ak ste platca DPH)"),
"vat",
array(
"pattern" => "^(SK|sk)?[0-9]{10}$",
"maxlength" => 12,
"inputmode" => "numeric",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte platné IČ DPH.") . '</div>',
)
),
],
"sk_naces_id" => [
"db" => true,
"controller" => \modules\forms\code\SelectController::class,
"pfbc" => new \PFBC\Element\Select(
$this->t->_get("Hlavná činnosť (SK NACE)"),
"sk_naces_id",
$skNaces,
array(
"data-sel2-tags" => "false",
"class" => "form-control sel2 " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"phone" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Tel(
$this->t->_get("Telefón"),
"phone",
array(
"pattern" => "^\+?[0-9 ]{10,20}$",
"placeholder" => "+421 900 123 456",
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"email" => [
"db" => true,
"controller" => \modules\forms\code\EmailController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("E-mail"),
"email",
array(
"maxlength" => 255,
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "username",
)
),
],
"inline-login" => [
"db" => false,
"pfbc" => new \PFBC\Element\HTML(
$this->getInlineLoginHTML()
),
],
$this->getNextHtmlInputKey() => $this->getNewRowElement(),
"person status" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
$this->t->_get("Som"),
"person_status",
[
$this->t->_get("Študent"),
$this->t->_get("Dôchodca"),
$this->t->_get("ZŤP (zdravotne ťažko postihnutý)"),
],
array(
"class" => "",
"data-grid-class" => "col-md-12 checkbox-inline",
"autocomplete" => "off",
)
),
],
];
if ($this->user) {
unset($elements['email'], $elements['inline-login']);
}
return $elements;
}
protected function getIncomesElements() {
$elements = [
$this->getNextHtmlInputKey() => $this->getTitleElement("Príjmy", 4, "mb-0"),
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionStartElement(),
"incomes_tpp" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"incomes_tpp",
array(1 => $this->t->_get("TPP (trvalý pracovný pomer, brigáda, odmena konateľa)")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-incomes_tpp",
"data-group" => "incomes",
"data-feedback-id" => "incomes-invalid-feedback",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionMiddleElement("accordion-incomes_tpp"),
"incomes_tpp_attachments" => [
"db" => false,
"pfbc" => new \PFBC\Element\File(
$this->t->_get("Potvrdenia od zamestnávateľa <nobr><i><small>(počet zamestnávateľov = počet príloh)</small></i></nobr>"),
"incomes_tpp_attachments",
array(
"class" => "filepond",
"name" => "incomes_tpp_attachments",
"data-should-be-required" => 1,
"multiple" => "multiple",
"data-allow-reorder" => "true",
"data-max-file-size" => \modules\dpfob\api\Upload::MAX_FILE_SIZE_MB . "MB",
"data-max-files" => \modules\dpfob\api\Upload::MAX_FILES_COUNT,
"data-token" => $this->getToken(),
"data-dir" => self::ATTACHMENTS_INCOMES,
"data-grid-class" => "col-lg-6 col-md-12",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Nahrajte aspoň jedno potvrdenie.") . '</div>',
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionStartElement(),
"incomes_szco" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"incomes_szco",
array(1 => $this->t->_get("SZČO (samostatne zárobkovo činná osoba)")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-incomes_szco",
"data-group" => "incomes",
"data-feedback-id" => "incomes-invalid-feedback",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionMiddleElement("accordion-incomes_szco"),
"incomes_szco_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Suma príjmov"),
"incomes_szco_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
"incomes_szco_description" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Popis činnosti"),
"incomes_szco_description",
array(
"maxlength" => 255,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"incomes_szco_expenses" => [
"db" => true,
"controller" => \modules\forms\code\RadioController::class,
"pfbc" => new \PFBC\Element\Radio(
$this->t->_get("Výdavky"),
"incomes_szco_expenses",
enums\Expenses::getStateMessage(),
array(
"data-should-be-required" => 1,
"class" => "",
"autocomplete" => "off",
)
),
],
"incomes_szco_expenses_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Suma výdavkov"),
"incomes_szco_expenses_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionStartElement(),
"incomes_licenses" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"incomes_licenses",
array(1 => $this->t->_get("Licencie")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-incomes_licenses",
"data-group" => "incomes",
"data-feedback-id" => "incomes-invalid-feedback",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionMiddleElement("accordion-incomes_licenses"),
"incomes_licenses_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Suma príjmov"),
"incomes_licenses_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
"incomes_licenses_expenses" => [
"db" => true,
"controller" => \modules\forms\code\RadioController::class,
"pfbc" => new \PFBC\Element\Radio(
$this->t->_get("Výdavky"),
"incomes_licenses_expenses",
enums\Expenses::getStateMessage(),
array(
"data-should-be-required" => 1,
"class" => "",
"autocomplete" => "off",
)
),
],
"incomes_licenses_expenses_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Suma výdavkov"),
"incomes_licenses_expenses_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionStartElement(),
"incomes_estates_rental" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"incomes_estates_rental",
array(1 => $this->t->_get("Prenájom nehnuteľností")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-incomes_estates_rental",
"data-group" => "incomes",
"data-feedback-id" => "incomes-invalid-feedback",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionMiddleElement("accordion-incomes_estates_rental"),
"incomes_estates_rental_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Suma príjmov"),
"incomes_estates_rental_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
"incomes_estates_rental_sum_expenses" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Suma výdavkov"),
"incomes_estates_rental_sum_expenses",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionStartElement(),
"incomes_capital" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"incomes_capital",
array(1 => $this->t->_get("Kapitálové príjmy (akcie, ETF, CFD, úroky, dividendy)")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-incomes_capital",
"data-group" => "incomes",
"data-feedback-id" => "incomes-invalid-feedback",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionMiddleElement("accordion-incomes_capital"),
"incomes_capital_items" => [
"db" => true,
"controller" => \modules\forms\code\MultiRowTextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Popíšte príjem"),
"incomes_capital_items[]",
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"data-grid-class" => "col-md-12",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionStartElement(),
"incomes_abroad" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"incomes_abroad",
array(1 => $this->t->_get("Zahraničné príjmy")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-incomes_abroad",
"data-group" => "incomes",
"data-feedback-id" => "incomes-invalid-feedback",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionMiddleElement("accordion-incomes_abroad"),
"incomes_abroad_items" => [
"db" => true,
"controller" => \modules\forms\code\MultiRowTextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Popíšte príjem"),
"incomes_abroad_items[]",
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"data-grid-class" => "col-md-12",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionStartElement(),
"incomes_other" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"incomes_other",
array(1 => $this->t->_get("Ostatné")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-incomes_other",
"data-group" => "incomes",
"data-feedback-id" => "incomes-invalid-feedback",
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionMiddleElement("accordion-incomes_other"),
"incomes_other_items" => [
"db" => true,
"controller" => \modules\forms\code\MultiRowTextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Popíšte príjem"),
"incomes_other_items[]",
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"data-grid-class" => "col-md-12",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
$this->getNextHtmlInputKey() => $this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getCheckboxInvalidFeedbackElement("incomes-invalid-feedback", $this->t->_get("Vyberte aspoň jeden príjem.")),
];
return $elements;
}
protected function getKidsElements() {
$elements = [
$this->getNextHtmlInputKey() => $this->getTitleElement("Daňový bonus na deti", 4, "mb-0"),
];
for ($i = 1; $i <= self::$kidsRows; $i++) {
$elements[$this->getNextHtmlInputKey()] = $this->getCheckboxAccordionStartElement();
$elements["kids_tax_bonus_" . $i] = [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"kids_tax_bonus_" . $i,
array(1 => $i . ". " . $this->t->_get("dieťa")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-kids_tax_bonus_" . $i,
"autocomplete" => "off",
)
),
];
$elements[$this->getNextHtmlInputKey()] = $this->getCheckboxAccordionMiddleElement("accordion-kids_tax_bonus_" . $i);
$elements["kids_tax_bonus_name_" . $i] = [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Meno a priezvisko dieťaťa"),
"kids_tax_bonus_name_" . $i,
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
];
$elements["kids_tax_bonus_birth_number_" . $i] = [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Rodné číslo"),
"kids_tax_bonus_birth_number_" . $i,
array(
"data-should-be-required" => 1,
"inputmode" => "numeric",
"pattern" => "^\d{6}\/?\d{3,4}$",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte rodné číslo bez lomky.") . '</div>',
)
),
];
$elements["kids_tax_bonus_attachments_" . $i] = [
"db" => false,
"pfbc" => new \PFBC\Element\File(
$this->t->_get("Rodný list"),
"kids_tax_bonus[" . $i . "][attachments]",
array(
"class" => "filepond",
"name" => self::ATTACHMENTS_KIDS_TAX_BONUS . $i,
"data-should-be-required" => 1,
"multiple" => "multiple",
"data-allow-reorder" => "true",
"data-max-file-size" => \modules\dpfob\api\Upload::MAX_FILE_SIZE_MB . "MB",
"data-max-files" => \modules\dpfob\api\Upload::MAX_FILES_COUNT,
"data-token" => $this->getToken(),
"data-dir" => self::ATTACHMENTS_KIDS_TAX_BONUS . $i,
"data-grid-class" => "col-lg-6 col-md-12",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Nahrajte prednú a zadnú stranu rodného listu.") . '</div>',
)
),
];
$elements[$this->getNextHtmlInputKey()] = $this->getCheckboxAccordionEndElement();
}
return $elements;
}
protected function getOtherElements() {
return [
$this->getNextHtmlInputKey() => $this->getTitleElement("Daňové zvýhodnenia", 4, "mb-0"),
$this->getCheckboxAccordionStartElement(),
"nczd_spouse" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"nczd_spouse",
array(1 => $this->t->_get("Nezdaniteľná časť základu dane na manželku (manžela)")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-nczd_spouse",
"autocomplete" => "off",
)
),
],
$this->getCheckboxAccordionMiddleElement("accordion-nczd_spouse"),
"nczd_spouse_name" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Meno a priezvisko"),
"nczd_spouse_name",
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"nczd_spouse_birth_number" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Rodné číslo"),
"nczd_spouse_birth_number",
array(
"data-should-be-required" => 1,
"pattern" => "^\d{6}\/?\d{3,4}$",
"inputmode" => "numeric",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte rodné číslo bez lomky.") . '</div>',
)
),
],
"nczd_spouse_income_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Príjem"),
"nczd_spouse_income_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
$this->getCheckboxAccordionEndElement(),
$this->getCheckboxAccordionStartElement(),
"dds" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"dds",
array(1 => $this->t->_get("DDS (doplnkové dôchodkové sporenie)")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-dds",
"autocomplete" => "off",
)
),
],
$this->getCheckboxAccordionMiddleElement("accordion-dds"),
"dds_attachments" => [
"db" => false,
"pfbc" => new \PFBC\Element\File(
$this->t->_get("Potvrdenie z DDS"),
"dds_attachments",
array(
"class" => "filepond",
"name" => "dds_attachments",
"data-should-be-required" => 1,
"multiple" => "multiple",
"data-allow-reorder" => "true",
"data-max-file-size" => \modules\dpfob\api\Upload::MAX_FILE_SIZE_MB . "MB",
"data-max-files" => \modules\dpfob\api\Upload::MAX_FILES_COUNT,
"data-token" => $this->getToken(),
"data-dir" => self::ATTACHMENTS_DDS,
"data-grid-class" => "col-lg-6 col-md-12",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Nahrajte potvrdenie.") . '</div>',
)
),
],
$this->getCheckboxAccordionEndElement(),
$this->getCheckboxAccordionStartElement(),
"mortage" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"mortage",
array(1 => $this->t->_get("Hypotéka")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-mortage",
"autocomplete" => "off",
)
),
],
$this->getCheckboxAccordionMiddleElement("accordion-mortage"),
"mortage_attachments" => [
"db" => false,
"pfbc" => new \PFBC\Element\File(
$this->t->_get("Potvrdenie o hypotéke z banky"),
"mortage_attachments",
array(
"class" => "filepond",
"name" => "mortage_attachments",
"data-should-be-required" => 1,
"multiple" => "multiple",
"data-allow-reorder" => "true",
"data-max-file-size" => \modules\dpfob\api\Upload::MAX_FILE_SIZE_MB . "MB",
"data-max-files" => \modules\dpfob\api\Upload::MAX_FILES_COUNT,
"data-token" => $this->getToken(),
"data-dir" => self::ATTACHMENTS_MORTAGE,
"data-grid-class" => "col-lg-6 col-md-12",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Nahrajte potvrdenie z banky.") . '</div>',
)
),
],
$this->getCheckboxAccordionEndElement(),
$this->getCheckboxAccordionStartElement(),
"tax_gift" => [
"db" => true,
"controller" => \modules\forms\code\CheckboxController::class,
"pfbc" => new \PFBC\Element\Checkbox(
"",
"tax_gift",
array(1 => $this->t->_get("2 % z dane")),
array(
"data-grid-class" => "col-md-12",
"class" => "accordion-toggle",
"data-bs-target" => "#accordion-tax_gift",
"autocomplete" => "off",
)
),
],
$this->getCheckboxAccordionMiddleElement("accordion-tax_gift"),
"tax_gift_company_name" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Názov organizácie"),
"tax_gift_company_name",
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"tax_gift_company_idn" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("IČO"),
"tax_gift_company_idn",
array(
"inputmode" => "numeric",
"autocomplete" => "off",
"pattern" => "^\d{8}$",
"maxlength" => "8",
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte platné IČO.") . '</div>',
"autocomplete" => "off",
)
),
],
"tax_gift_attachments" => [
"db" => false,
"pfbc" => new \PFBC\Element\File(
$this->t->_get("3 % (potvrdenie o dobrovoľníckej činnosti)"),
"mortage_attachments",
array(
"class" => "filepond",
"name" => "tax_gift_attachments",
"multiple" => "multiple",
"data-allow-reorder" => "true",
"data-max-file-size" => \modules\dpfob\api\Upload::MAX_FILE_SIZE_MB . "MB",
"data-max-files" => \modules\dpfob\api\Upload::MAX_FILES_COUNT,
"data-token" => $this->getToken(),
"data-dir" => self::ATTACHMENTS_TAX_GIFT,
"data-grid-class" => "col-lg-6 col-md-12",
"append" => '<div class="invalid-feedback"></div>',
)
),
],
"tax_gift_mother_name" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Meno a priezvisko matky"),
"tax_gift_mother_name",
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"tax_gift_mother_birth_number" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Rodné číslo matky"),
"tax_gift_mother_birth_number",
array(
"data-should-be-required" => 1,
"pattern" => "^\d{6}\/?\d{3,4}$",
"inputmode" => "numeric",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte rodné číslo bez lomky.") . '</div>',
)
),
],
"tax_gift_father_name" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Meno a priezvisko otca"),
"tax_gift_father_name",
array(
"maxlength" => 100,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
)
),
],
"tax_gift_father_birth_number" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("Rodné číslo otca"),
"tax_gift_father_birth_number",
array(
"data-should-be-required" => 1,
"pattern" => "^\d{6}\/?\d{3,4}$",
"inputmode" => "numeric",
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte rodné číslo bez lomky.") . '</div>',
)
),
],
$this->getCheckboxAccordionEndElement(),
$this->getNextHtmlInputKey() => $this->getTitleElement("Sociálne a zdravotné poistenie (okrem TPP)"),
"social_insurance_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Zaplatené SP za rok ") . $this->lastYear,
"social_insurance_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
"social_insurance_voluntary_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Zaplatené dobrovoľné SP za rok ") . $this->lastYear,
"social_insurance_voluntary_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"value" => 0,
"class" => "form-control default-0 " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
$this->getNewRowElement(),
"health_insurance_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Zaplatené ZP za rok ") . $this->lastYear,
"health_insurance_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"data-should-be-required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
"health_insurance_overpayment_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Preplatok z ročného zúčtovania"),
"health_insurance_overpayment_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"value" => 0,
"class" => "form-control default-0 " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
"health_insurance_undercharge_sum" => [
"db" => true,
"controller" => \modules\forms\code\NumberController::class,
"pfbc" => new \PFBC\Element\Number(
$this->t->_get("Nedoplatok z ročného zúčtovania"),
"health_insurance_undercharge_sum",
array(
"min" => 0,
"max" => 99999999.99,
"step" => 0.01,
"value" => 0,
"class" => "form-control default-0 " . $this->inputClass,
"autocomplete" => "off",
) + $this->getInputPostfixArray("€")
),
],
] + $this->getLastElements();
}
protected function getLastElements() {
return [
$this->getNextHtmlInputKey() => $this->getTitleElement("Ostatné"),
"iban" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textbox(
$this->t->_get("IBAN pre prípadné vrátenie peňazí"),
"iban",
array(
"maxlength" => 34,
"pattern" => "^[A-Za-z]{2}[0-9]{2}(?:\s?[A-Za-z0-9]){11,30}$",
"required" => 1,
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"append" => '<div class="invalid-feedback">' . $this->t->_get("Zadajte platný IBAN.") . '</div>',
)
),
],
"attachments" => [
"db" => false,
"pfbc" => new \PFBC\Element\File(
$this->t->_get("Prílohy"),
"attachments",
array(
"class" => "filepond",
"name" => "attachments",
"multiple" => "multiple",
"data-allow-reorder" => "true",
"data-max-file-size" => \modules\dpfob\api\Upload::MAX_FILE_SIZE_MB . "MB",
"data-max-files" => \modules\dpfob\api\Upload::MAX_FILES_COUNT * 5,
"data-token" => $this->getToken(),
"data-dir" => self::ATTACHMENTS,
"data-grid-class" => "col-xl-6 col-lg-4",
"append" => '<div class="invalid-feedback"></div>',
)
),
],
"note" => [
"db" => true,
"controller" => \modules\forms\code\TextController::class,
"pfbc" => new \PFBC\Element\Textarea(
$this->t->_get("Poznámka"),
"note",
array(
"class" => "form-control " . $this->inputClass,
"autocomplete" => "off",
"data-grid-class" => "col-md-12",
"style" => 'color: blue',
"placeholder" => $this->t->_get("Ak máte akekoľvek otázky, napíšte nám ich a my Vás budeme čo najskôr kontaktovať."),
)
),
],
];
}
protected function getHiddenElements() {
return [
"token" => [
"db" => true,
"pfbc" => new \PFBC\Element\Hidden(
"token",
$this->getToken(),
),
],
];
}
/**
* @return array
*/
public function getAllElements(): array {
$elements = $this->getBasicInfoElements() + $this->getIncomesElements() + $this->getKidsElements() + $this->getOtherElements() + $this->getHiddenElements();
return $elements;
}
/**
* @return array
*/
protected function getCheckboxAccordionStartElement() {
return ["db" => false, "pfbc" => new \PFBC\Element\HTML('<div class="col-md-12 accordion-checkbox"><div class="mt-0"><div class="form-check p-3 mb-0 bg-light border-bottom">')];
}
/**
* @return array
*/
protected function getCheckboxAccordionMiddleElement($id) {
return ["db" => false, "pfbc" => new \PFBC\Element\HTML('</div><div class="collapse mt-3 mb-4 row" id="' . $id . '">')];
}
/**
* @return array
*/
protected function getCheckboxAccordionEndElement() {
return ["db" => false, "pfbc" => new \PFBC\Element\HTML('</div></div></div>')];
}
/**
* @return array
*/
protected function getCheckboxInvalidFeedbackElement($id, $message) {
return ["db" => false, "pfbc" => new \PFBC\Element\HTML('<div class="invalid-feedback" id="' . $id . '">' . $message . '</div>')];
}
/**
* @return array
*/
protected function getInputPostfixArray($text) {
return [
"prepend" => '<div class="input-group mb-3">',
"append" => ' <span class="input-group-text">' . $text . '</span></div>'
];
}
protected function getGdprInputHTML() {
ob_start();
?>
<div class="col-md-12">
<div class="alert alert-light">
<div class="checkbox mb-0 w-auto d-table position-relative">
<label class="mb-0">
<input name="gdpr_accept" value="1" type="checkbox" required><i class="helper"></i>
<span class="form-check-label" for="gdprCheck">
<?php echo $this->t->_get("Súhlasím so spracovaním") ?> <a target="_blank" href="/ochrana-osobnych-udajov/"><?php echo $this->t->_get("osobných údajov") ?></a>
<?php echo $this->t->_get("a s ") ?> <a target="_blank" href="/obchodne-podmienky/"><?php echo $this->t->_get("obchodnými podmienkami") ?></a>.
</span>
<div class="invalid-feedback"><?php echo $this->t->_get("Pre pokračovanie je potrebné súshlasiť so spracovaním osobných údajov a obchodnými podmienkami.") ?></div>
</label>
</div>
</div>
</div>
<?php
return ob_get_clean();
}
protected function setPrefilledDataJs() {
$dpfob = $this->user?->getCustomer()?->getLastDPFOB();
if ($dpfob) {
ob_start();
?>
<script>
$(document).ready(function () {
setTimeout(function () {
const form = document.getElementById('form-<?php echo self::NAME ?>');
const formData = {
is_our_client: <?php echo $dpfob->_get('is_our_client') ?>,
our_client_company: '<?php echo $dpfob->_get('our_client_company') ?>',
dp_submits_client: <?php echo $dpfob->_get('dp_submits_client') ?>,
dp_delayed_submission: <?php echo $dpfob->_get('dp_delayed_submission') ?>,
degree_before: '<?php echo $dpfob->_get('degree_before') ?>',
first_name: '<?php echo $dpfob->_get('first_name') ?>',
last_name: '<?php echo $dpfob->_get('last_name') ?>',
degree_after: '<?php echo $dpfob->_get('degree_after') ?>',
phone: '<?php echo $dpfob->_get('phone') ?>',
street: '<?php echo $dpfob->_get('street') ?>',
zip: '<?php echo $dpfob->_get('zip') ?>',
city: '<?php echo $dpfob->_get('city') ?>',
country: '<?php echo $dpfob->_get('country') ?>',
birth_number: '<?php echo $dpfob->_get('birth_number') ?>',
idn: '<?php echo $dpfob->_get('idn') ?>',
tin: '<?php echo $dpfob->_get('tin') ?>',
vat: '<?php echo $dpfob->_get('vat') ?>',
sk_naces_id: '<?php echo $dpfob->_get('sk_naces_id') ?>',
iban: '<?php echo $dpfob->_get('iban') ?>',
'person_status[]': ["<?php echo implode('", "', $dpfob->_getSet('person_status')) ?>"]
};
Object.keys(formData).forEach(key => {
const inputs = form.querySelectorAll(`[name="${key}"]`);
inputs.forEach(input => {
if (input.type === 'radio') {
input.checked = (input.value == formData[key]);
} else if (input.type === 'checkbox') {
if (Array.isArray(formData[key])) {
input.checked = formData[key].includes(input.value);
} else if (!isNaN(formData[key])) {
input.checked = Boolean(formData[key]);
} else {
input.checked = formData[key] === input.value;
}
} else {
input.value = formData[key];
}
input.dispatchEvent(new Event('change', {bubbles: true}));
});
});
}, 1100);
});
</script>
<?php
return ob_get_clean();
}
return '';
}
protected function getInlineLoginHTML() {
ob_start();
?>
<div class="col-md-12" id="inlineLogin" style="display: none;">
<div class="row">
<div class="col-xl-6 col-lg-4 col-md-12 mt-2 mt-xl-0">
<label class="d-none d-xl-block"> </label>
<div class="alert alert-warning py-2">
<div class="py-1">
<i class="fa fa-exclamation-triangle me-1"></i> <?php echo $this->t->_get("Účet s touto e-mailovou adresou už existuje. Prihláste sa.") ?>
</div>
</div>
</div>
<div class="col-xl-3 col-lg-4 col-md-6">
<div class="form-group my-0">
<label for="inputPassword"><?php echo $this->t->_get("Heslo") ?></label>
<input type="password" id="inputPassword" class="form-control <?php echo $this->inputClass ?>" name="password" style="padding-left: 42px">
</div>
</div>
<div class="col-xl-3 col-lg-4 col-md-6">
<label> </label>
<a class="btn btn-lg btn-primary d-block" onclick="inlineLoginClick()" href="javascript:;"><?php echo $this->t->_get("Prihlásiť sa") ?></a>
</div>
</div>
</div>
<?php
return ob_get_clean();
}
protected function getRegistrationHTML() {
ob_start();
?>
<div class="col-md-12 mt-4" id="registrationWrapper">
<div class="row">
<div class="col-xl-3 col-lg-4 col-md-6">
<div class="alert alert-light">
<div class="checkbox position-relative d-table" style="margin-top: 2px !important; margin-bottom: 1px !important;">
<label class="mb-0">
<input name="createAccount" value="1" type="checkbox" autocomplete='off'><i class="helper"></i>
<span class="form-check-label">
<?php echo $this->t->_get("Vytvoriť zákaznícky účet") ?>
</span>
</label>
</div>
</div>
</div>
<div class="col-xl-9 col-lg-8 col-md-6">
<div class="alert alert-info">
<i class="fa fa-info-circle me-1"></i> <?php echo $this->t->_get("Vytvorením účtu získate podrobný prehľad o aktuálnom priebehu spracovania Vášho daňového priznania.") ?>
</div>
</div>
</div>
<div class="row collapse mb-2" id="registrationContainer">
<div class="col-xl-3 col-lg-4 col-md-6">
<div class="form-group my-0">
<label for="inputRegPassword"><span class="required">*</span> <?php echo $this->t->_get("Heslo") ?></label>
<input type="password" id="inputRegPassword" autocomplete="new-password" class="form-control <?php echo $this->inputClass ?>" name="reg_password" required style="padding-left: 42px">
</div>
</div>
<div class="col-xl-3 col-lg-4 col-md-6">
<div class="form-group my-0">
<label for="inputRegPasswordRetype"><span class="required">*</span> <?php echo $this->t->_get("Heslo znovu") ?></label>
<input type="password" id="inputRegPasswordRetype" class="form-control <?php echo $this->inputClass ?>" name="reg_password_retype" required style="padding-left: 42px">
</div>
</div>
</div>
</div>
<?php
return ob_get_clean();
}
protected function updateIsRequired(array $elements, $post) {
$unsets = [];
if (isset($post['is_our_client']) && intval($post['is_our_client']) === 0) {
$unsets[] = 'our_client_company';
}
if (!isset($post['incomes_szco'])) {
$unsets[] = "incomes_szco_sum";
$unsets[] = "incomes_szco_description";
$unsets[] = "incomes_szco_expenses";
}
if (!isset($post['incomes_licenses'])) {
$unsets[] = "incomes_licenses_sum";
$unsets[] = "incomes_licenses_expenses";
}
if (!isset($post['incomes_estates_rental'])) {
$unsets[] = "incomes_estates_rental_sum";
$unsets[] = "incomes_estates_rental_sum_expenses";
}
if (!isset($post['incomes_other'])) {
$unsets[] = "incomes_other_items";
}
for ($i = 1; $i <= self::$kidsRows; $i++) {
if (!isset($post['kids_tax_bonus'][$i]['active'])) {
$unsets[] = 'kids_tax_bonus_name_' . $i;
$unsets[] = 'kids_tax_bonus_birth_number_' . $i;
}
}
if (!isset($post['nczd_spouse'])) {
$unsets[] = "nczd_spouse_name";
$unsets[] = "nczd_spouse_birth_number";
$unsets[] = "nczd_spouse_income_sum";
}
if (!isset($post['tax_gift'])) {
$unsets[] = "tax_gift_company_name";
$unsets[] = "tax_gift_company_idn";
}
foreach ($unsets as $el) {
if (isset($elements[$el]) && isset($elements[$el]['pfbc'])) {
$elements[$el]['pfbc']->unsetRequired();
}
}
return $elements;
}
}