Fix #1050 - miglioramento provvigioni

This commit is contained in:
Pek5892 2023-01-18 16:07:48 +01:00
parent 9979244633
commit e13a608460
8 changed files with 139 additions and 13 deletions

View File

@ -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.
*

View File

@ -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.'%');

View File

@ -139,8 +139,16 @@ foreach ($righe as $riga) {
// Importo
echo '
<td class="text-right">
'.moneyFormat($riga->importo).'
</td>';
'.moneyFormat($riga->importo);
//provvigione riga
if (abs($riga->provvigione_unitaria) > 0) {
$text = provvigioneInfo($riga);
echo '
<br><small class="label label-info">'.$text.'</small>';
}
echo '</td>';
}
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato
@ -276,13 +284,24 @@ if(!empty($contratto->provvigione)) {
echo '
<tr>
<td colspan="6" class="text-right">
'.tr('Provvigioni').':
'.tr('Provvigioni', [], ['upper' => false]).':
</td>
<td class="text-right">
'.moneyFormat($contratto->provvigione).'
</td>
<td></td>
</tr>';
echo '
<tr>
<td colspan="6" class="text-right">
'.tr('Netto da provvigioni', [], ['upper' => false]).':
</td>
<td class="text-right">
'.moneyFormat($netto_a_pagare - $contratto->provvigione, 2).'
</td>
<td></td>
</tr>';
}
echo '

View File

@ -177,8 +177,17 @@ foreach ($righe as $riga) {
// Importo
echo '
<td class="text-right">
'.moneyFormat($riga->importo).'
</td>';
'.moneyFormat($riga->importo);
//provvigione riga
if (abs($riga->provvigione_unitaria) > 0) {
$text = provvigioneInfo($riga);
echo '
<br><small class="label label-info">'.$text.'</small>';
}
echo ' </td>';
}
// Possibilità di rimuovere una riga solo se il ddt non è evaso
@ -340,6 +349,18 @@ if(!empty($ddt->provvigione)) {
</td>
<td></td>
</tr>';
echo '
<tr>
<td colspan="6" class="text-right">
'.tr('Netto da provvigioni').':
</td>
<td class="text-right">
'.moneyFormat($ddt->totale_imponibile - $ddt->provvigione).'
</td>
<td></td>
</tr>';
}
echo '

View File

@ -225,8 +225,17 @@ foreach ($righe as $riga) {
// Importo
echo '
<td class="text-right">
'.moneyFormat($riga->importo).'
</td>';
'.moneyFormat($riga->importo);
//provvigione riga
if (abs($riga->provvigione_unitaria) > 0) {
$text = provvigioneInfo($riga);
echo '
<br><small class="label label-info">'.$text.'</small>';
}
echo '</td>';
}
// Possibilità di rimuovere una riga solo se la fattura non è pagata
@ -448,6 +457,18 @@ if(!empty($fattura->provvigione)) {
</td>
<td></td>
</tr>';
echo '
<tr>
<td colspan="6" class="text-right">
'.tr('Netto da provvigioni').':
</td>
<td class="text-right">
'.moneyFormat($fattura->totale_imponibile - $fattura->provvigione).'
</td>
<td></td>
</tr>';
}
echo '

View File

@ -156,8 +156,18 @@ echo '
// Prezzo di vendita
echo '
<td class="text-right">
'.moneyFormat($riga->importo).'
</td>';
'.moneyFormat($riga->importo);
//provvigione riga
if (abs($riga->provvigione_unitaria) > 0) {
$text = provvigioneInfo($riga);
echo '
<br><small class="label label-info">'.$text.'</small>';
}
echo '</td>';
}
// Pulsante per riportare nel magazzino centrale.

View File

@ -230,8 +230,15 @@ foreach ($righe as $riga) {
// Importo
echo '
<td class="text-right">
'.moneyFormat($riga->importo).'
</td>';
'.moneyFormat($riga->importo);
//provvigione riga
if (abs($riga->provvigione_unitaria) > 0) {
$text = provvigioneInfo($riga);
echo '
<br><small class="label label-info">'.$text.'</small>';
}
echo '</td>';
}
// Possibilità di rimuovere una riga solo se l'ordine non è evaso
@ -383,6 +390,17 @@ if(!empty($ordine->provvigione)) {
</td>
<td></td>
</tr>';
echo '
<tr>
<td colspan="7" class="text-right">
'.tr('Netto da provvigioni').':
</td>
<td class="text-right">
'.moneyFormat($netto_a_pagare - $ordine->provvigione).'
</td>
<td></td>
</tr>';
}
echo '

View File

@ -180,8 +180,17 @@ foreach ($righe as $riga) {
// Importo
echo '
<td class="text-right">
'.moneyFormat($riga->importo).'
</td>';
'.moneyFormat($riga->importo);
//provvigione riga
if (abs($riga->provvigione_unitaria) > 0) {
$text = provvigioneInfo($riga);
echo '
<br><small class="label label-info">'.$text.'</small>';
}
echo '</td>';
}
// Possibilità di rimuovere una riga solo se il preventivo non è stato pagato