Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 21 additions & 25 deletions Controller/EditLiquidacionComision.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
namespace FacturaScripts\Plugins\Comisiones\Controller;

use Exception;
use FacturaScripts\Core\Base\DataBase\DataBaseWhere;
use FacturaScripts\Core\Lib\Calculator;
use FacturaScripts\Core\Lib\ExtendedController\BaseView;
use FacturaScripts\Core\Lib\ExtendedController\EditController;
Expand Down Expand Up @@ -115,13 +116,11 @@ protected function calculateTotalCommission(): bool
*/
protected function createSettledInvoiceView(string $viewName = self::VIEWNAME_SETTLEDINVOICE): void
{
$this->addListView($viewName, 'Join\LiquidacionComisionFactura', 'invoices', 'fa-solid fa-file-invoice');
$this->views[$viewName]->addOrderBy(['fecha', 'idfactura'], 'date', 2);
$this->views[$viewName]->addOrderBy(['total'], 'amount');
$this->views[$viewName]->addOrderBy(['totalcomision'], 'commission');

// settings
$this->setSettings($viewName, 'modalInsert', 'insertinvoices');
$this->addListView($viewName, 'Join\LiquidacionComisionFactura', 'invoices', 'fa-solid fa-file-invoice')
->setSettings('modalInsert', 'insertinvoices')
->addOrderBy(['fecha', 'idfactura'], 'date', 2)
->addOrderBy(['total'], 'amount')
->addOrderBy(['totalcomision'], 'commission');
}

/**
Expand Down Expand Up @@ -292,6 +291,7 @@ protected function insertInvoices(): bool
*
* @param string $viewName
* @param BaseView $view
* @throws Exception
*/
protected function loadData($viewName, $view)
{
Expand All @@ -315,21 +315,21 @@ protected function loadData($viewName, $view)
protected function loadDataSettledInvoice($view): void
{
// Get master data
$mainViewName = $this->getMainViewName();
$idsettled = $this->getViewModelValue($mainViewName, 'idliquidacion');
$idsettled = $this->getModel()->idliquidacion;
if (empty($idsettled)) {
return;
}

// Set master values to insert modal view
$view->model->codagente = $this->getViewModelValue($mainViewName, 'codagente');
$view->model->codserie = $this->getViewModelValue($mainViewName, 'codserie');
$view->model->idempresa = $this->getViewModelValue($mainViewName, 'idempresa');
$view->model->codagente = $this->getModel()->codagente;
$view->model->codserie = $this->getModel()->codserie;
$view->model->idempresa = $this->getModel()->idempresa;
$view->model->idliquidacion = $idsettled;

// Load view data
$where = [Where::column('facturascli.idliquidacion', $idsettled)];
$view->loadData('', $where);
$view->loadData('', [
new DataBaseWhere('facturascli.idliquidacion', $idsettled),
]);
}

/**
Expand All @@ -338,6 +338,7 @@ protected function loadDataSettledInvoice($view): void
*
* @param string $viewName
* @param BaseView $view
* @throws Exception
*/
protected function setViewStatus(string $viewName, BaseView $view): void
{
Expand All @@ -346,18 +347,13 @@ protected function setViewStatus(string $viewName, BaseView $view): void
return;
}

// disable some fields in the main view
$canInvoice = empty($this->getModel()->idfactura);
$mainViewName = $this->getMainViewName();
$this->views[$mainViewName]->disableColumn('company', false, 'true');
$this->views[$mainViewName]->disableColumn('serie', false, 'true');
$this->views[$mainViewName]->disableColumn('agent', false, 'true');

// Is there an invoice created?
$canInvoice = empty($this->getViewModelValue($mainViewName, 'idfactura'));

// Update insert/delete buttons status
$this->setSettings($viewName, 'btnNew', $canInvoice);
$this->setSettings($viewName, 'btnDelete', $canInvoice);
$this->views[$mainViewName]->disableColumn('company', false, 'true')
->setSettings('btnNew', $canInvoice)
->setSettings('btnDelete', $canInvoice)
->disableColumn('serie', false, 'true')
->disableColumn('agent', false, 'true');

if ($canInvoice) {
$this->addButton($viewName, [
Expand Down
4 changes: 2 additions & 2 deletions facturascripts.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name = 'Comisiones'
description = 'Añade comisiones y liquidaciones a los agentes.'
version = 2.1
min_version = 2025.2
version = 2.11
min_version = 2025.2