Párování faktur dle nezaplacenych faktur
657
public function invoicesMatchingByInvoices()
    {
        foreach ($this->getInvoicesToProcess() as $invoiceData) {
            $payments = $this->findPayments($invoiceData);
            if (!empty($payments) && count(current($payments))) {
                $typDokl                = $invoiceData['typDokl'][0];
                $docType                = $typDokl['typDoklK'];
                $invoiceData['typDokl'] = \FlexiPeeHP\FlexiBeeRO::code($typDokl['kod']);
                $invoice                = new \FlexiPeeHP\FakturaVydana($invoiceData,
                    $this->config);
                $this->invoicer->setMyKey($invoiceData['id']);
                /*
                 *    Standardní faktura (typDokladu.faktura)
                 *    Dobropis/opravný daň. d. (typDokladu.dobropis)
                 *    Zálohová faktura (typDokladu.zalohFaktura)
                 *    Zálohový daňový doklad (typDokladu.zdd)
                 *    Dodací list (typDokladu.dodList)
                 *    Proforma (neúčetní) (typDokladu.proforma)
                 *    Pohyb Kč / Zůstatek Kč (typBanUctu.kc)
                 *    Pohyb měna / Zůstatek měna (typBanUctu.mena)
                 */

                foreach ($payments as $paymentData) {
                    $payment = new \FlexiPeeHP\Banka($paymentData, $this->config);
                    switch ($docType) {
                        case 'typDokladu.zalohFaktura':
                        case 'typDokladu.faktura':
                            if ($this->settleInvoice($invoice, $payment)) {
                                
                            }
                            break;
                        case 'typDokladu.proforma':
                            $this->settleProforma($invoice, $payments);
                            break;
                        case 'typDokladu.dobropis':
                            $this->settleCreditNote($invoice, $payments);
                            break;
                        default:
                            $this->addStatusMessage(
                                sprintf(_('Unsupported document type: %s %s'),
                                    $typDokl['typDoklK@showAs'].' ('.$docType.'): '.$invoiceData['typDokl'],
                                    $invoice->getApiURL()
                                ), 'warning');
                            break;
                    }
                }
            }
        }
    }
105839
public function indexAction()
    {
        $this->view->roles = (new \Cms\Orm\CmsRoleQuery)->find();
        //jeśli niewybrana rola - przekierowanie na pierwszą istniejącą
        if (!$this->roleId && count($this->view->roles)) {
            $this->getResponse()->redirect('cmsAdmin', 'categoryAcl', 'index', ['roleId' => $this->view->roles[0]->id]);
        }
        //formularz edycji uprawnień
        $form = new Form\CategoryAclForm(null, ['roleId' => $this->roleId]);
        //po zapisie
        if ($form->isSaved()) {
            $this->getMessenger()->addMessage('messenger.categoryAcl.permissions.saved', true);
            //przekierowanie na zapisaną stronę
            $this->getResponse()->redirect('cmsAdmin', 'categoryAcl', 'index', ['roleId' => $this->roleId]);
        }
        $this->view->categoryAclForm = $form;
    }
641635
protected function _synchronizeDrafts()
    {
        //iteracja po draftach bieżącego dokumentu
        foreach ((new CmsCategoryQuery())->whereCmsCategoryOriginalId()->equals($this->id)
            ->andFieldStatus()->equals(self::STATUS_DRAFT)
            ->find()
            as $draftRecord) {
            //synchronizacja uri
            $draftRecord->uri = $this->uri;
            //synchronizacja parentId
            $draftRecord->parentId = $this->parentId;
            //synchronizacja kolejności
            $draftRecord->order = $this->order;
            //bez przebudowy kolejności
            $draftRecord->setOption('block-ordering', true);
            //zapis
            $draftRecord->save();
        }
    }
633327
public function indexAction()
    {
        //formularz
        $form = new Form\ConnectorImportContentForm;
        //formularz zapisany + przejście do importu plików
        if ($form->isSaved() && $form->getElement('file')) {
            $this->getMessenger()->addMessage('messenger.connector.import.success', true);
            $this->getResponse()->redirect('cmsAdmin', 'connector', 'files');
        }
        //form zapisany bez importu plików
        if ($form->isSaved()) {
            $this->getMessenger()->addMessage('messenger.connector.import.ended', true);
            $this->getResponse()->redirect('cmsAdmin', 'index', 'index');
        }
        //form do widoku
        $this->view->form = $form;
    }
1190273
def LeerContribuyente(self, pop=True):
        ""
        # por compatibilidad hacia atras, la primera vez no remueve de la lista
        # (llamado de ConsultarContribuyentes con pop=False)
        if self.contribuyentes:
            contrib = self.contribuyentes[0]
            if pop:
                del self.contribuyentes[0]
        else:
            contrib = {}
        self.CuitContribuyente = contrib.get('CuitContribuytente', "")
        self.AlicuotaPercepcion = contrib.get('AlicuotaPercepcion', "")
        self.AlicuotaRetencion = contrib.get('AlicuotaRetencion', "")
        self.GrupoPercepcion = contrib.get('GrupoPercepcion', "")
        self.GrupoRetencion = contrib.get('GrupoRetencion', "")
        self.errores = contrib.get('Errores', [])
        return len(contrib) > 0
591785
public function beforeSave()
    {
        //brak loginu lub hasła
        if (!$this->getElement('username')->getValue() || !$this->getElement('password')->getValue()) {
            return false;
        }
        //autoryzacja
        $auth = \App\Registry::$auth;
        \App\Registry::$auth->setIdentity($this->getElement('username')->getValue());
        \App\Registry::$auth->setCredential($this->getElement('password')->getValue());
        //autoryzacja
        if (!\App\Registry::$auth->authenticate()) {
            return false;
        }
        //zapamiętanie jeśli zaznaczona opcja
        if ($this->getElement('remember')) {
            \App\Registry::$auth->rememberMe(\App\Registry::$config->session->authRemember);
        }
        return true;
    }
65175
public function handleRemoveImage()
    {
        if ($this->presenter->isAjax())
        {
            $removed = $this->onPageManager->removeSocialImage($this->activePage);

            if ($removed)
            {
                $this->presenter->notificationAjax(
                    'On-Page faktory',
                    'Obrázek pro sociální sítě byl odstaněn.',
                    'info',
                    FALSE
                );

                $this->onRemoveImage();
            }
        }
    }
912031
public function stickAction()
    {
        $this->getResponse()->setTypePlain();
        //brak id
        if (!$this->id) {
            return '';
        }
        //brak pliku
        if (null === ($file = (new CmsFileQuery)->findPk($this->id)) || $this->hash != $file->name) {
            return $this->view->getTranslate()->_('Przypinanie nie powiodło się');
        }
        //przypina plik
        $file->setSticky();
        return '';
    }
214730
protected function createComponentSocialForm() : Form
    {
        $form = new Form;

        $form->addText('title')
            ->setRequired('Titulek pro sociální sítě je povinný.')
            ->addRule(Form::MIN_LENGTH, 'Minimální délka titulku jsou %d znaky.', 3)
            ->addRule(Form::MAX_LENGTH, 'Maximální délka titulku je %d znaků.', 50);

        $form->addText('description')
            ->setRequired(FALSE)
            ->addRule(Form::MIN_LENGTH, 'Minimální délka popisu jsou %d znaky.', 3)
            ->addRule(Form::MAX_LENGTH, 'Maximální délka popisu je %d znaků.', 50);

        $form->addUpload('image')
            ->setRequired(FALSE)
            ->addRule(Form::IMAGE, 'Obrázek může být pouze JPG or PNG.')
            ->addRule(Form::MIME_TYPE, 'Obrázek musí mít správný mime-type.', ['image/jpeg', 'image/png'])
            ->addRule(Form::MAX_FILE_SIZE, 'Maximální velikost obrázku je 8 MB.', 1024 * 1024 * 8)
            ->addRule(Form::PATTERN, 'Obrázek musí mít koncovku .jpg, .png.', '.*\.(jpg|png)');

        $form->addSubmit('save');


        $onPageSocial = $this->activePage->getSocial();

        if ($onPageSocial)
        {
            $form->setDefaults([
                'title' => $onPageSocial->getTitle(),
                'description' => $onPageSocial->getDescription()
            ]);
        }

        $form->onValidate[] = function (Form $form) { $this->validate($form); };
        $form->onSuccess[] = function (Form $form) { $this->success($form); };

        if (!$this->presenter->user->isAllowed(OnPageAuthorizator::RES_SOCIAL))
        {
            $this->setDisabledForm($form);
        }

        return $form;
    }
396973
function items2models(items, params) {
        // приводим к формату №2
        if (typeof items === 'string') {
            items = [ items ];
        }

        // приводим №2 к формату №3
        if (typeof items[0] === 'string') {
            params = params || {};
            items = normalizeItems(items, params);
        }

        var models = [];
        for (var i = 0, l = items.length; i < l; i++) {
            var item = items[i];
            // ns.request( [ ModelInstance ] )
            if (item instanceof ns.Model) {
                models.push(item);

            } else if (item.model && item.model instanceof ns.Model) {
                models.push(item.model);

            } else {
                models.push(ns.Model.get(item.id, item.params));
            }
        }

        return models;
    }
1129372
public function dispatchAction()
    {
        //pobranie kategorii
        $category = $this->_getPublishedCategoryByUri($this->uri);
        //wpięcie kategorii do głównego widoku aplikacji
        FrontController::getInstance()->getView()->category = $category;
        //klucz bufora
        $cacheKey = 'category-html-' . $category->id;
        //buforowanie dozwolone
        $bufferingAllowed = $this->_bufferingAllowed();
        //wczytanie zbuforowanej strony (dla niezalogowanych i z pustym requestem)
        if ($bufferingAllowed && (null !== $html = \App\Registry::$cache->load($cacheKey))) {
            //wysyłanie nagłówka o buforowaniu strony
            $this->getResponse()->setHeader('X-Cache', 'HIT');
            //zwrot html
            return $this->_decorateHtmlWithEditButton($html, $category);
        }
        //wysyłanie nagłówka o braku buforowaniu strony
        $this->getResponse()->setHeader('X-Cache', 'MISS');
        //przekazanie rekordu kategorii do widoku
        $this->view->category = $category;
        //renderowanie docelowej akcji
        $html = \Mmi\Mvc\ActionHelper::getInstance()->forward($this->_prepareForwardRequest($category));
        //buforowanie niedozwolone
        if (!$bufferingAllowed || 0 == $cacheLifetime = $this->_getCategoryCacheLifetime($category)) {
            //zwrot html
            return $this->_decorateHtmlWithEditButton($html, $category);
        }
        //zapis html kategorii do cache
        \App\Registry::$cache->save($html, $cacheKey, $cacheLifetime);
        //zwrot html
        return $this->_decorateHtmlWithEditButton($html, $category);
    }
501456
public function deleteAction()
    {
        //szukamy rekordu pliku
        if (!$this->getPost()->cmsFileId || null === $record = (new CmsFileQuery)->findPk($this->getPost()->cmsFileId)) {
            return $this->_jsonError(178);
        }
        //sprawdzenie zgodności z obiektem formularza
        if ($record->object === $this->getPost()->object && $record->objectId == $this->getPost()->objectId) {
            //usuwanie
            if ($record->delete()) {
                //jeśli wykonać operację po usunięciu
                if ($this->getPost()->afterDelete) {
                    $this->_operationAfter($this->getPost()->afterDelete, $record);
                }
                return json_encode(['result' => 'OK']);
            }
        }
        return $this->_jsonError(178);
    }
24120
public function addAction()
    {
        //wyszukiwanie kategorii
        if (null === $cat = (new \Cms\Orm\CmsCategoryQuery)->findPk($this->id)) {
            return;
        }
        //zakładka sekcje
        $widgetForm = (new \CmsAdmin\Form\CategoryAddWidget($cat));
        //zapisany form
        if ($widgetForm->isSaved()) {
            $this->getResponse()->redirect('cmsAdmin', 'categoryWidgetRelation', 'config', ['categoryId' => $this->id, 'widgetId' => $widgetForm->getElement('cmsWidgetId')->getValue()]);
        }
        //form do widoku
        $this->view->widgetForm = $widgetForm;
    }
961273
public static function toDate($object, $objectId, $year, $month, $day)
    {
        $now = strtotime($year . '-' . $month . '-' . $day);
        $prev = strtotime('-1 month', $now);

        $raw = [];
        //uzupełnianie danych surowych poprzednim miesiącem
        foreach (self::getRows($object, $objectId, date('Y', $prev), date('m', $prev), true, null) as $stat) {
            $raw[$stat->year . '-' . $stat->month . '-' . $stat->day] = $stat->count;
        }
        //uzupełnianie danych surowych obecnym miesiącem
        foreach (self::getRows($object, $objectId, date('Y', $now), date('m', $now), true, null) as $stat) {
            $raw[$stat->year . '-' . $stat->month . '-' . $stat->day] = $stat->count;
        }
        $statArray = [];

        //uzupełnianie dni
        for ($i = 30; $i > -1; $i--) {
            $curTime = strtotime('-' . $i . ' day', $now);
            $count = 0;
            if (isset($raw[date('Y', $curTime) . '-' . ltrim(date('m', $curTime), '0') . '-' . ltrim(date('d', $curTime), '0')])) {
                $count = $raw[date('Y', $curTime) . '-' . ltrim(date('m', $curTime), '0') . '-' . ltrim(date('d', $curTime), '0')];
            }
            $statArray[date('m.d', $curTime)] = $count;
        }
        return $statArray;
    }
417186
protected final function _prepareFields()
    {
        //jeśli pusty schemat połączeń
        if (empty($this->_query->getQueryCompile()->joinSchema)) {
            return '*';
        }
        $fields = '';
        //pobranie struktury tabeli
        $mainStructure = DbConnector::getTableStructure($this->_query->getTableName());
        //przygotowanie tabeli
        $table = DbConnector::getAdapter()->prepareTable($this->_query->getTableName());
        //iteracja po polach tabeli głównej
        foreach ($mainStructure as $fieldName => $info) {
            //dodawanie pola
            $fields .= $table . '.' . DbConnector::getAdapter()->prepareField($fieldName) . ', ';
        }
        //pola z tabel dołączonych
        foreach ($this->_query->getQueryCompile()->joinSchema as $schema) {
            //pobranie struktury tabeli dołączonej
            $structure = DbConnector::getTableStructure($schema[0]);
            //alias połączenia
            $joinAlias = isset($schema[5]) ? $schema[5] : $schema[0];
            //pola tabeli dołączonej
            foreach ($structure as $fieldName => $info) {
                $fields .= DbConnector::getAdapter()->prepareTable($joinAlias) . '.' . DbConnector::getAdapter()->prepareField($fieldName) . ' AS ' . DbConnector::getAdapter()->prepareField($joinAlias . '__' . $schema[0] . '__' . $fieldName) . ', ';
            }
        }
        return rtrim($fields, ', ');
    }
1207365
public function init()
    {
        //wczytywanie sesji
        $session = new \Mmi\Session\SessionSpace(\Cms\Model\ConnectorModel::SESSION_SPACE);
        try {
            $data = (new \Cms\Model\ConnectorModel)->getData($session->url, 'exportFileObject', [], $session->identity, $session->credential);
        } catch (\Cms\Exception\ConnectorException $e) {
            //rollback - puste dane
            $data = [];
        }

        //obiekty do przesłania
        if (!empty($data)) {
            //lista obiektów
            $this->addElement((new Element\MultiCheckbox('fileObjects'))
                ->setLabel('form.connectorImportFilesForm.fileObjects.label')
                ->setMultioptions($data)
                ->setValue($data));

            //submit
            $this->addElement((new Element\Submit('submit'))
                ->setLabel('form.connectorImportFilesForm.submit.label'));
        }
    }
97088
protected function _calculateUri()
    {
        //strona główna
        if ($this->customUri == '/') {
            //usunięcie uri
            $this->uri = '';
            return;
        }
        //usunięcie uri
        $this->uri = '';
        //ustawiamy uri na podstawie rodzica
        if ($this->parentId && (null !== $parent = (new CmsCategoryQuery)->findPk($this->parentId))) {
            //nieaktywny rodzic -> nie wlicza się do ścieżki
            if (!$parent->active) {
                $parent->uri = substr($parent->uri, 0, strrpos($parent->uri, '/'));
            }
            $this->uri = ltrim($parent->uri . '/', '/');
        }
        //doklejanie do uri przefiltrowanej końcówki
        $this->uri .= (new \Mmi\Filter\Url)->filter($this->name);
        //filtracja customUri
        $this->customUri = ($this->customUri == '/') ? '/' : trim($this->customUri, '/');
    }