This commit is contained in:
Beppe 2023-02-03 11:52:11 +01:00
commit 2fc78f4cac
7 changed files with 48 additions and 45 deletions

View File

@ -274,10 +274,17 @@ function currency()
*/
function moneyFormat($number, $decimals = null)
{
return tr('_TOTAL_ _CURRENCY_', [
'_TOTAL_' => numberFormat($number, $decimals),
'_CURRENCY_' => currency(),
]);
if (setting('Posizione del simbolo valuta') == 'Prima'){
return tr('_CURRENCY_ _TOTAL_', [
'_CURRENCY_' => currency(),
'_TOTAL_' => numberFormat($number, $decimals),
]);
} else {
return tr('_TOTAL_ _CURRENCY_', [
'_TOTAL_' => numberFormat($number, $decimals),
'_CURRENCY_' => currency(),
]);
}
}
/**

View File

@ -94,6 +94,7 @@ switch (post('op')) {
$anagrafica->riferimento_amministrazione = post('riferimento_amministrazione');
$anagrafica->colore = post('colore');
$anagrafica->idtipointervento_default = post('idtipointervento_default') ?: null;
$anagrafica->id_dichiarazione_intento_default = post('id_dichiarazione_intento_default') ?: null;
$anagrafica->provvigione_default = post('provvigione_default');
$anagrafica->id_ritenuta_acconto_acquisti = post('id_ritenuta_acconto_acquisti');
$anagrafica->id_ritenuta_acconto_vendite = post('id_ritenuta_acconto_vendite');

View File

@ -17,6 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Carbon\Carbon;
use Modules\Anagrafiche\Anagrafica;
use Modules\Banche\Banca;
@ -529,6 +530,10 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
<div class="row">
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Tipo attività predefinita').'", "name": "idtipointervento_default", "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento ORDER BY descrizione ASC", "value": "$idtipointervento_default$" ]}
</div>
<div class="col-md-6">
{[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento_default", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$id_record.', "data": "'.Carbon::now().'"},"value": "$id_dichiarazione_intento_default$" ]}
</div>';
// Collegamento con il conto

View File

@ -308,7 +308,6 @@ switch (post('op')) {
$list = [];
foreach ($id_records as $id) {
$fattura = Fattura::find($id);
array_push($list, $fattura->numero_esterno);
$id_segment = (post('id_segment') ? post('id_segment') : $fattura->id_segment);
$dir = $dbo->fetchOne('SELECT dir FROM co_tipidocumento WHERE id='.prepare($fattura->idtipodocumento))['dir'];
@ -332,9 +331,10 @@ switch (post('op')) {
if (post('skip_time') == 'Anno') {
$data = date('Y-m-d', strtotime('+1 year', strtotime($fattura->data)));
}
$new = $fattura->replicate();
$new->data = $data;
$new->id_segment = $id_segment;
$new->numero = Fattura::getNextNumero($data, $dir, $id_segment);
@ -360,6 +360,10 @@ switch (post('op')) {
$new_riga->movimenta($new_riga->qta);
}
}
if (!empty($fattura->numero_esterno)){
array_push($list, $fattura->numero_esterno);
}
}
flash()->info(tr('Fatture _LIST_ duplicate correttamente!', [

View File

@ -188,9 +188,15 @@ class Fattura extends Document
$model->split_payment = $split_payment;
}
// Gestione della Dichiarazione d'Intento associata all'anargafica Controparte
// Gestione della Dichiarazione d'Intento associata all'anagrafica Controparte
$now = new Carbon();
$dichiarazione = $anagrafica->dichiarazioni()
->where('massimale', '>', 'totale')
->where('data_inizio', '<', $now)
->where('data_fine', '>', $now)
->where('id', $anagrafica->id_dichiarazione_intento_default)
->first();
$dichiarazione = $dichiarazione ?: $anagrafica->dichiarazioni()
->where('massimale', '>', 'totale')
->where('data_inizio', '<', $now)
->where('data_fine', '>', $now)
@ -694,7 +700,7 @@ class Fattura extends Document
// In fase di duplicazione di una fattura non deve essere calcolato il numero progressivo ma questo deve
// essere generato in fase di emissione della stessa.
$new->numero_esterno = '';
$new->numero_esterno = null;
$new->numero = Fattura::getNextNumero($now, $new->direzione, $new->id_segment);
// Rimozione informazioni di Fattura Elettronica

View File

@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Plugins\PianificazioneFatturazione\Pianificazione;
include_once __DIR__.'/../../../core.php';
@ -36,40 +36,6 @@ $mesi = [
12 => 'Dicembre',
];
$pianificazioni = Pianificazione::doesntHave('fattura')
->whereHas('contratto', function ($q) {
$q->whereHas('stato', function ($q) {
$q
->where('is_fatturabile', 1)
->where('descrizione', '<>', 'Concluso');
});
})->get();
if ($pianificazioni->isEmpty()) {
echo '<p>'.tr('Non ci sono fatture da emettere').'.</p>';
return;
}
$conteggio = Pianificazione::doesntHave('fattura')
->selectRaw('month(co_fatturazione_contratti.data_scadenza) mese, count(*) conto')
->whereHas('contratto', function ($q) {
$q->whereHas('stato', function ($q) {
$q
->where('is_fatturabile', 1)
->where('descrizione', '<>', 'Concluso');
});
})
->whereYear('co_fatturazione_contratti.data_scadenza', date('Y'))
->groupBy('mese')
->get();
$raggruppamenti = $pianificazioni->groupBy(function ($item) {
return ucfirst($item->data_scadenza->formatLocalized('%B %Y'));
});
echo
'<div class="container"
<div class="row">

View File

@ -151,5 +151,19 @@ HAVING
ORDER BY
`scadenza` ASC" WHERE `name` = 'Scadenzario';
-- Aggiunta dichiarazione d'intento predefinita
ALTER TABLE `an_anagrafiche` ADD `id_dichiarazione_intento_default` INT NULL AFTER `idtipointervento_default`, ADD FOREIGN KEY (`id_dichiarazione_intento_default`) REFERENCES `co_dichiarazioni_intento`(`id`);
-- Aggiunta impostazione Movimentazione articoli da fatture di acquisto
INSERT INTO zz_settings(nome, valore, tipo, editable, sezione) VALUES ('Movimenta magazzino da fatture di acquisto','1','boolean','1','Fatturazione Elettronica');
INSERT INTO zz_settings(nome, valore, tipo, editable, sezione) VALUES ('Movimenta magazzino da fatture di acquisto','1','boolean','1','Fatturazione Elettronica');
-- Permetto valore null per numero_esterno di co_documenti
ALTER TABLE `co_documenti` CHANGE `numero_esterno` `numero_esterno` VARCHAR(100) NULL DEFAULT NULL;
-- Aggiunta impostazione Posizione della valuta
INSERT INTO zz_settings(nome, valore, tipo, editable, sezione) VALUES ('Posizione del simbolo valuta','Dopo','list[Prima,Dopo]','1','Generali');
-- Miglioria segmenti scadenzario
UPDATE `zz_segments` SET `name` = 'Scadenzario completo' WHERE `zz_segments`.`name` = 'Scadenziaro completo';
UPDATE `zz_segments` SET `clause` = '(`co_scadenziario`.`scadenza` BETWEEN \'|period_start|\' AND \'|period_end|\' AND idtipodocumento < 14)' WHERE `zz_segments`.`name` = 'Scadenzario completo';
INSERT INTO `zz_segments` (`id_module`, `name`, `clause`, `position`, `pattern`,`note`, `dicitura_fissa`,`predefined`, `predefined_accredito`, `predefined_addebito`, `autofatture`, `is_sezionale`) VALUES ((SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario'), 'Scadenzario autofatture', '(idtipodocumento >= 14)', 'WHR', '####', '', '', 0, 0, 0, 0, 0);