This commit is contained in:
Beppe 2020-11-10 17:54:05 +01:00
commit a574112f4e
7 changed files with 80 additions and 16 deletions

View File

@ -4,7 +4,7 @@ Tutti i maggiori cambiamenti di questo progetto saranno documentati in questo fi
Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://keepachangelog.com/), e il progetto segue il [Semantic Versioning](http://semver.org/) per definire le versioni delle release.
- [2.4.19](#2419-2020-11-)
- [2.4.19 (2020-11-10)](#2419-2020-11-10)
- [2.4.18 (2020-10-30)](#2418-2020-10-30)
- [2.4.17.1 (2020-09-18)](#24171-2020-09-18)
- [2.4.17 (2020-08-24)](#2417-2020-08-24)
@ -30,16 +30,23 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- [2.2 (2016-11-10)](#22-2016-11-10)
- [2.1 (2015-04-02)](#21-2015-04-02)
## 2.4.19 (2020-11-)
## 2.4.19 (2020-11-10)
### Aggiunto (Added)
- Aggiunta gestione conto anticipi cliente e fornitore tramite **Prima nota**
- Aggiunta colonna della sede nel modulo **Movimenti**
### Modificato (Changed)
- Spostati i conti transitori (iva, ecc) su stato patrimoniale
### Fixed
- Selezione banca **Preventivi**
- Riferimenti attività **Fatture di vendita**
- Permesso cambio stato fatture in Bozza
- Correzione aggiornamento 2.4.11 per MariaDB
- Correzione calcolo giacenze su plugin **Giacenze**
- Esclusione fatture pro-forma dal calcolo fatturato sul modulo **Statistiche**
- Gestito il conto articolo in fase di fatturazione attività se specificato nella scheda articolo
## 2.4.18 (2020-10-30)

View File

@ -84,7 +84,9 @@ if ($options['dir'] == 'entrata') {
}
}
aggiorna_guadagno();
$("#modals > div").on("shown.bs.modal", function () {
aggiorna_guadagno();
});
$("#prezzo_unitario").keyup(aggiorna_guadagno);
$("#costo_unitario").keyup(aggiorna_guadagno);

View File

@ -329,15 +329,35 @@ switch (post('op')) {
break;
}
// Operazioni aggiuntive per il logo
// Operazioni aggiuntive per il logo e filigrana stampe
if (filter('op') == 'link_file') {
$nome = filter('nome_allegato');
if ($nome == 'Logo stampe' or $nome = 'Filigrana stampe') {
if (setting('Azienda predefinita') == $id_record && filter('nome_allegato') == $nome) {
Settings::setValue($nome, $upload);
$nome = filter('nome_allegato');
$logo_stampe = array("logo stampe", "logo_stampe", "logo stampe.jpg", "logo stampe.png");
if (in_array(strtolower($nome), $logo_stampe)) {
$nome = 'Logo stampe';
$uploads = $structure->uploads($id_record)->where('filename', $upload);
foreach ($uploads as $logo) {
$logo->name = $nome;
$logo->save();
}
}
$filigrana_stampe = array("filigrana stampe", "filigrana_stampe", "filigrana stampe.jpg", "filigrana stampe.png");
if (in_array(strtolower($nome), $filigrana_stampe)) {
$nome = 'Filigrana stampe';
$uploads = $structure->uploads($id_record)->where('filename', $upload);
foreach ($uploads as $filigrana) {
$filigrana->name = $nome;
$filigrana->save();
}
}
if (($nome == 'Logo stampe' || $nome = 'Filigrana stampe' ) && (setting('Azienda predefinita') == $id_record)) {
Settings::setValue($nome, $upload);
}
}
// Operazioni aggiuntive per il logo

View File

@ -36,8 +36,8 @@ echo '
echo '
<div class="nav-tabs-custom">
<ul class="nav nav-tabs nav-justified">
<li class="active"><a href="#generazione" data-toggle="tab">'.tr('Generazione').'</a></li>
<li><a href="#inserimento" data-toggle="tab">'.tr('Inserimento').'</a></li>
<li class="active"><a href="#generazione" data-toggle="tab">'.tr('Generazione multipla').'</a></li>
<li><a href="#inserimento" data-toggle="tab">'.tr('Inserimento singolo').'</a></li>
</ul>
<div class="tab-content">

View File

@ -32,6 +32,29 @@ if (Interaction::isEnabled()) {
'_BTN_' => '<i class="fa fa-refresh"></i> <b>'.tr('Ricerca ricevute').'</b>',
]).'.</p>';
$fatture_generate_errore = Fattura::vendita()
->whereIn('codice_stato_fe', ['NS','ERR'])
->where('data_stato_fe', '>=', $_SESSION['period_start'])
->orderBy('data_stato_fe')
->get();
if (!empty($fatture_generate_errore->count())) {
echo '
<div class="alert alert-warning alert-dismissible" role="alert"><button class="close" type="button" data-dismiss="alert" aria-hidden="true"><span aria-hidden="true">×</span><span class="sr-only">'.tr('Chiudi').'</span></button>
<p><i class="fa fa-warning"></i> '.tr('Attenzione: le seguenti fatture hanno ricevuto uno scartato o hanno presentano errori in fase di trasmissione').'.</p>
<ul>';
foreach ($fatture_generate_errore as $fattura_generata) {
echo '<li>'.reference($fattura_generata, $fattura_generata->getReference()).' ['.$fattura_generata['codice_stato_fe'].'] ['.timestampFormat($fattura_generata['data_stato_fe']).']</li>';
}
echo '
</ul>
</div>';
}
// Controllo se ci sono fatture in elaborazione da più di 7 giorni per le quali non ho ancora una ricevuta
$data_limite = (new Carbon())->subDays(7);
$fatture_generate = Fattura::vendita()
@ -41,10 +64,10 @@ if (Interaction::isEnabled()) {
->orderBy('data_stato_fe')
->get();
if (!empty($fatture_generate)) {
if (!empty($fatture_generate->count())) {
echo '
<div class="alert alert-warning">
<p><i class="fa fa-warning"></i> '.tr('Attenzione: le seguenti fatture sono in attesa di una ricevuta').'.</p>
<div class="alert alert-info info-dismissible" role="alert"><button class="close" type="button" data-dismiss="alert" aria-hidden="true"><span aria-hidden="true">×</span><span class="sr-only">'.tr('Chiudi').'</span></button>
<p><i class="fa fa-info"></i> '.tr('Informazione: le seguenti fatture sono in attesa di una ricevuta da più di 7 giorni').'.</p>
<ul>';
foreach ($fatture_generate as $fattura_generata) {
@ -54,7 +77,8 @@ if (Interaction::isEnabled()) {
echo '
</ul>
</div>';
}
}
}
echo '

View File

@ -187,7 +187,7 @@ class FileManager implements ManagerInterface
<b>'.$options['label'].'</b>
<div id="upload-form" class="row">
<div class="col-md-6">
{[ "type": "text", "placeholder": "'.tr('Nome file').'", "name": "nome_allegato", "class": "unblockable" ]}
{[ "type": "text", "placeholder": "'.tr('Nome').'", "name": "nome_allegato", "class": "unblockable" ]}
</div>
<div class="col-md-6">
{[ "type": "text", "placeholder": "'.tr('Categoria').'", "name": "categoria_allegato", "id": "categoria_allegato", "class": "unblockable" ]}

View File

@ -46,4 +46,15 @@ UPDATE `in_righe_interventi` SET `in_righe_interventi`.`qta_evasa` = `in_righe_i
);
-- Aggiornamento date vuote su movimenti
UPDATE `mg_movimenti` SET `data`=`created_at` WHERE `data` IS NULL;
UPDATE `mg_movimenti` SET `data`=`created_at` WHERE `data` IS NULL;
-- Aggiunta colonna "Sede" nei movimenti
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_movimenti` JOIN `mg_articoli` ON `mg_articoli`.id = `mg_movimenti`.`idarticolo` LEFT JOIN `an_sedi` ON `mg_movimenti`.`idsede_azienda` = `an_sedi`.`id` WHERE 1=1 HAVING 2=2 ORDER BY mg_movimenti.data DESC, mg_movimenti.created_at DESC' WHERE `name` = 'Movimenti';
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Movimenti'), 'Sede', 'IF( mg_movimenti.idsede_azienda=0, ''Sede legale'', an_sedi.nomesede )', '4', '1', '0', '0', NULL, NULL, '1', '0', '1');
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module`=`zz_modules`.`id` SET `zz_views`.`summable` = 1 WHERE `zz_modules`.`name` = 'Movimenti' AND `zz_views`.`name` = 'Quantità';
INSERT INTO `zz_group_view` (`id_gruppo`, `id_vista`) (
SELECT `zz_groups`.`id`, `zz_views`.`id` FROM `zz_groups`, `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Movimenti' AND `zz_views`.`name` = 'Sede'
);