diff --git a/lib/common.php b/lib/common.php index 719704069..86a90bb2b 100755 --- a/lib/common.php +++ b/lib/common.php @@ -147,6 +147,28 @@ function discountInfo(Accounting $riga, $mostra_maggiorazione = true) ]); } +/** + * Visualizza le informazioni relative allo provvigione presente su una riga. + * + * @param bool $mostra_provigione + * + * @return string|null + */ +function provvigioneInfo(Accounting $riga, $mostra_provigione = true) +{ + if (empty($riga->provvigione_unitaria) || (!$mostra_provigione && $riga->provvigione_unitaria < 0)) { + return null; + } + + $text = $riga->provvigione_unitaria > 0 ? tr('provvigione _TOT_ _TYPE_') : tr('provvigione _TOT__TYPE_'); + $totale = !empty($riga->provvigione_percentuale) ? $riga->provvigione_percentuale : $riga->provvigione_unitaria; + + return replace($text, [ + '_TOT_' => Translator::numberToLocale(abs($totale)), + '_TYPE_' => !empty($riga->provvigione_percentuale) ? '%' : currency(), + ]); +} + /** * Genera i riferimenti ai documenti del gestionale, attraverso l'interfaccia Common\ReferenceInterface. * diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php index 96b56d7e1..2b4e6f6b4 100755 --- a/modules/anagrafiche/ajax/select.php +++ b/modules/anagrafiche/ajax/select.php @@ -21,6 +21,8 @@ use Carbon\Carbon; include_once __DIR__.'/../../../core.php'; +$filter_agente = Auth::user()['gruppo'] == 'Agenti'; + switch ($resource) { case 'clienti': $id_azienda = setting('Azienda predefinita'); @@ -71,6 +73,10 @@ switch ($resource) { $where[] = 'an_anagrafiche.deleted_at IS NULL'; } + if (empty(!$filter_agente)) { + $where[] = 'idagente = '.Auth::user()['idanagrafica']; + } + if (!empty($search)) { $search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'citta LIKE '.prepare('%'.$search.'%'); diff --git a/modules/contratti/row-list.php b/modules/contratti/row-list.php index b53ab638a..96d1f8039 100755 --- a/modules/contratti/row-list.php +++ b/modules/contratti/row-list.php @@ -139,8 +139,16 @@ foreach ($righe as $riga) { // Importo echo ' - '.moneyFormat($riga->importo).' - '; + '.moneyFormat($riga->importo); + + //provvigione riga + if (abs($riga->provvigione_unitaria) > 0) { + $text = provvigioneInfo($riga); + + echo ' +
'.$text.''; + } + echo ''; } // Possibilità di rimuovere una riga solo se il preventivo non è stato pagato @@ -276,13 +284,24 @@ if(!empty($contratto->provvigione)) { echo ' - '.tr('Provvigioni').': + '.tr('Provvigioni', [], ['upper' => false]).': '.moneyFormat($contratto->provvigione).' '; + + echo ' + + + '.tr('Netto da provvigioni', [], ['upper' => false]).': + + + '.moneyFormat($netto_a_pagare - $contratto->provvigione, 2).' + + + '; } echo ' diff --git a/modules/ddt/row-list.php b/modules/ddt/row-list.php index e9e7091cc..a0dfd554f 100755 --- a/modules/ddt/row-list.php +++ b/modules/ddt/row-list.php @@ -177,8 +177,17 @@ foreach ($righe as $riga) { // Importo echo ' - '.moneyFormat($riga->importo).' - '; + '.moneyFormat($riga->importo); + + //provvigione riga + if (abs($riga->provvigione_unitaria) > 0) { + $text = provvigioneInfo($riga); + + echo ' +
'.$text.''; + } + + echo ' '; } // Possibilità di rimuovere una riga solo se il ddt non è evaso @@ -340,6 +349,18 @@ if(!empty($ddt->provvigione)) { '; + + echo ' + + + '.tr('Netto da provvigioni').': + + + '.moneyFormat($ddt->totale_imponibile - $ddt->provvigione).' + + + '; + } echo ' diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 34e0a39e6..b57364281 100755 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -225,8 +225,17 @@ foreach ($righe as $riga) { // Importo echo ' - '.moneyFormat($riga->importo).' - '; + '.moneyFormat($riga->importo); + + //provvigione riga + if (abs($riga->provvigione_unitaria) > 0) { + $text = provvigioneInfo($riga); + + echo ' +
'.$text.''; + } + + echo ''; } // Possibilità di rimuovere una riga solo se la fattura non è pagata @@ -448,6 +457,18 @@ if(!empty($fattura->provvigione)) { '; + + + echo ' + + + '.tr('Netto da provvigioni').': + + + '.moneyFormat($fattura->totale_imponibile - $fattura->provvigione).' + + + '; } echo ' diff --git a/modules/interventi/row-list.php b/modules/interventi/row-list.php index 16582e671..19c8b1086 100755 --- a/modules/interventi/row-list.php +++ b/modules/interventi/row-list.php @@ -156,8 +156,18 @@ echo ' // Prezzo di vendita echo ' - '.moneyFormat($riga->importo).' - '; + '.moneyFormat($riga->importo); + + + //provvigione riga + if (abs($riga->provvigione_unitaria) > 0) { + $text = provvigioneInfo($riga); + + echo ' +
'.$text.''; + } + + echo ''; } // Pulsante per riportare nel magazzino centrale. diff --git a/modules/ordini/row-list.php b/modules/ordini/row-list.php index b68113ce1..d1d23781b 100755 --- a/modules/ordini/row-list.php +++ b/modules/ordini/row-list.php @@ -230,8 +230,15 @@ foreach ($righe as $riga) { // Importo echo ' - '.moneyFormat($riga->importo).' - '; + '.moneyFormat($riga->importo); + //provvigione riga + if (abs($riga->provvigione_unitaria) > 0) { + $text = provvigioneInfo($riga); + + echo ' +
'.$text.''; + } + echo ''; } // Possibilità di rimuovere una riga solo se l'ordine non è evaso @@ -383,6 +390,17 @@ if(!empty($ordine->provvigione)) { '; + + echo ' + + + '.tr('Netto da provvigioni').': + + + '.moneyFormat($netto_a_pagare - $ordine->provvigione).' + + + '; } echo ' diff --git a/modules/preventivi/row-list.php b/modules/preventivi/row-list.php index 15071068d..e4f796184 100755 --- a/modules/preventivi/row-list.php +++ b/modules/preventivi/row-list.php @@ -180,8 +180,17 @@ foreach ($righe as $riga) { // Importo echo ' - '.moneyFormat($riga->importo).' - '; + '.moneyFormat($riga->importo); + + //provvigione riga + if (abs($riga->provvigione_unitaria) > 0) { + $text = provvigioneInfo($riga); + + echo ' +
'.$text.''; + } + + echo ''; } // Possibilità di rimuovere una riga solo se il preventivo non è stato pagato