ListNCFTipo::execPreviousAction()   B
last analyzed

Complexity

Conditions 8
Paths 8

Size

Total Lines 39
Code Lines 33

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 8
eloc 33
c 0
b 0
f 0
nc 8
nop 1
dl 0
loc 39
rs 8.1475
1
<?php
2
3
/*
4
 * Copyright (C) 2019 Joe Zegarra.
5
 *
6
 * This library is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Lesser General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 3 of the License, or (at your option) any later version.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Lesser General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Lesser General Public
17
 * License along with this library; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA 02110-1301  USA
20
 */
21
22
namespace FacturaScripts\Plugins\fsRepublicaDominicana\Controller;
23
24
use FacturaScripts\Core\Lib\ExtendedController\ListController;
0 ignored issues
show
Bug introduced by
The type FacturaScripts\Core\Lib\...ntroller\ListController was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
25
use FacturaScripts\Core\Base\DataBase\DataBaseWhere;
0 ignored issues
show
Bug introduced by
The type FacturaScripts\Core\Base\DataBase\DataBaseWhere was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
26
use FacturaScripts\Core\Tools;
27
28
/**
29
 * Description of ListNCFTipo
30
 *
31
 * @author Joe Zegarra
32
 */
33
class ListNCFTipo extends ListController
34
{
35
    public function getPageData(): array
36
    {
37
        $pageData = parent::getPageData();
38
        $pageData['menu'] = 'accounting';
39
        $pageData['submenu'] = 'Republica Dominicana';
40
        $pageData['title'] = 'ncf-types';
41
        $pageData['icon'] = 'fas fa-list';
42
        return $pageData;
43
    }
44
    
45
    public function addRestoreButton($viewName)
46
    {
47
        $restoreButton = [
48
            'color' => 'danger',
49
            'icon' => 'fas fa-undo',
50
            'label' => 'restore-original-data',
51
            'title' => 'restore-original-data',
52
            'type' => 'action',
53
            'action' => 'restore-data',
54
            'hint' => 'restore-original-data',
55
            'confirm' => true
56
        ];
57
        $this->addButton($viewName, $restoreButton);
58
    }
59
    
60
    protected function createViews()
61
    {
62
        $this->addView('ListNCFTipo', 'NCFTipo');
63
        $this->addSearchFields('ListNCFTipo', ['tipocomprobante', 'descripcion'], 'descripcion');
64
        $this->addOrderBy('ListNCFTipo', ['tipocomprobante', 'descripcion'], 'tipocomprobante');
65
        $this->addRestoreButton('ListNCFTipo');
66
    }
67
    
68
    protected function execPreviousAction($action)
69
    {
70
        switch ($action) {
71
            case 'restore-data':
72
                $this->views['ListNCFTipo']->model->restoreData();
73
                Tools::log()->notice('restored-original-data');
74
                break;
75
            case 'busca_tipo':
76
                $this->setTemplate(false);
77
                $where = [new DatabaseWhere($_REQUEST['tipodocumento'], 'Y')];
78
                $tipocomprobantes = $this->views['ListNCFTipo']->model->all($where);
79
                if ($tipocomprobantes) {
80
                    echo json_encode(['tipocomprobantes' => $tipocomprobantes], JSON_THROW_ON_ERROR);
81
                } else {
82
                    echo '';
83
                }
84
                break;
85
            case 'busca_infocliente':
86
                $this->setTemplate(false);
87
                $tipocliente = $this->views['ListNCFTipo']->model->tipoCliente($_REQUEST['codcliente']);
88
                if ($tipocliente) {
89
                    echo json_encode(['infocliente' => $tipocliente], JSON_THROW_ON_ERROR);
90
                } else {
91
                    echo '';
92
                }
93
                break;
94
            case 'busca_infoproveedor':
95
                $this->setTemplate(false);
96
                $tipoproveedor = $this->views['ListNCFTipo']->model->tipoProveedor($_REQUEST['codproveedor']);
97
                if ($tipoproveedor) {
98
                    echo json_encode(['infoproveedor' => $tipoproveedor], JSON_THROW_ON_ERROR);
99
                } else {
100
                    echo '';
101
                }
102
                break;
103
            default:
104
                break;
105
        }
106
        return parent::execPreviousAction($action);
107
    }
108
}
109