Compare commits
6 Commits
57eb49c1bf
...
e7a2d336a9
Author | SHA1 | Date |
---|---|---|
MatteoPistorello | e7a2d336a9 | |
MatteoPistorello | 642219ab46 | |
MatteoPistorello | 544744d461 | |
MatteoPistorello | 387db5543f | |
Dasc3er | bd0ff319fa | |
Dasc3er | 129260bc94 |
|
@ -41,15 +41,16 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
|
||||||
- Aggiunta nel calendario della Dashboard visualizzazione dei preventivi pianificabili in corrispondenza alla data di accettazione e conclusione.
|
- Aggiunta nel calendario della Dashboard visualizzazione dei preventivi pianificabili in corrispondenza alla data di accettazione e conclusione.
|
||||||
- Aggiunta impostazione per la visualizzazione delle ore nella stampa intervento (Decimale, Sessantesimi).
|
- Aggiunta impostazione per la visualizzazione delle ore nella stampa intervento (Decimale, Sessantesimi).
|
||||||
- Aggiunta possibilità di selezionare la sede di partenza della merce in fase di aggiunta articolo da un'attività
|
- Aggiunta possibilità di selezionare la sede di partenza della merce in fase di aggiunta articolo da un'attività
|
||||||
- Sostituito plugin **Componenti** nel modulo Impianti con la possibilità di inserire gli articoli di magazzino
|
|
||||||
- Aggiunta colonna Scaduto nel modulo Scadenzario
|
- Aggiunta colonna Scaduto nel modulo Scadenzario
|
||||||
- Aggiunto campi confermato, data e ora evasione nel modulo **Preventivi**
|
- Aggiunto campi confermato, data e ora evasione nel modulo **Preventivi**
|
||||||
- Aggiunta possibilità di creare un nuovi conti di secondo livello dal modulo **Piano dei conti**
|
- Aggiunta possibilità di creare un nuovi conti di secondo livello dal modulo **Piano dei conti**
|
||||||
- Aggiunta impostazione per la rimozione del blocco sulle quantità massime importabili fra documenti
|
- Aggiunta impostazione per la rimozione del blocco sulle quantità massime importabili fra documenti
|
||||||
- Aggiunta colonna **Rif. fattura** nei moduli Ordini cliente e fornitore
|
- Aggiunta colonna **Rif. fattura** nei moduli Ordini cliente e fornitore
|
||||||
|
- Aggiunta gestione come costo e ricavo per i conti di secondo livello
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
-
|
- Sostituito plugin **Componenti** nel modulo Impianti con la possibilità di inserire gli articoli di magazzino
|
||||||
|
- Possibilità di ripristinare un conto cliente/fornitore dal modulo **Anagrafiche** se eliminato
|
||||||
|
|
||||||
## 2.4.23 (2021-05-18)
|
## 2.4.23 (2021-05-18)
|
||||||
|
|
||||||
|
|
|
@ -39,9 +39,6 @@ switch (post('op')) {
|
||||||
$sede->provincia = post('provincia');
|
$sede->provincia = post('provincia');
|
||||||
$sede->km = post('km');
|
$sede->km = post('km');
|
||||||
$sede->id_nazione = post('id_nazione') ?: null;
|
$sede->id_nazione = post('id_nazione') ?: null;
|
||||||
$sede->gaddress = post('gaddress');
|
|
||||||
$sede->lat = post('lat');
|
|
||||||
$sede->lng = post('lng');
|
|
||||||
$sede->telefono = post('telefono');
|
$sede->telefono = post('telefono');
|
||||||
$sede->cellulare = post('cellulare');
|
$sede->cellulare = post('cellulare');
|
||||||
$sede->fax = post('fax');
|
$sede->fax = post('fax');
|
||||||
|
@ -327,6 +324,18 @@ switch (post('op')) {
|
||||||
flash()->info(tr('Anagrafica eliminata!'));
|
flash()->info(tr('Anagrafica eliminata!'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'risolvi_conto':
|
||||||
|
$anagrafica = Anagrafica::find($id_record);
|
||||||
|
$tipo = post('tipo');
|
||||||
|
|
||||||
|
if($tipo=='cliente'){
|
||||||
|
$anagrafica->fixCliente($anagrafica);
|
||||||
|
} else{
|
||||||
|
$anagrafica->fixfornitore($anagrafica);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,16 +53,16 @@ $nazione_anagrafica = $anagrafica->sedeLegale->nazione;
|
||||||
// Avvisi problemi scheda anagrafica
|
// Avvisi problemi scheda anagrafica
|
||||||
$problemi_anagrafica = [];
|
$problemi_anagrafica = [];
|
||||||
if ($is_cliente && empty($record['idconto_cliente'])) {
|
if ($is_cliente && empty($record['idconto_cliente'])) {
|
||||||
array_push($problemi_anagrafica, ' Piano dei conti mancante per il cliente');
|
$problemi_anagrafica[] = '<div class="row" style="margin-bottom:5px;"><div class="col-md-3">'.tr('Piano dei conti mancante per il cliente').'</div><button type="button" class="btn btn-xs btn-success" onclick="risolviConto(\'cliente\')"><i class="fa fa-cog"></i> '.tr('Risolvi').'</button></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($is_fornitore && empty($record['idconto_fornitore'])) {
|
if ($is_fornitore && empty($record['idconto_fornitore'])) {
|
||||||
array_push($problemi_anagrafica, ' Piano dei conti mancante per il fornitore');
|
$problemi_anagrafica[] = '<div class="row"><div class="col-md-3">'.tr('Piano dei conti mancante per il fornitore').'</div><button type="button" class="btn btn-xs btn-success" onclick="risolviConto(\'fornitore\')"><i class="fa fa-cog"></i> '.tr('Risolvi').'</button></div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sizeof($problemi_anagrafica) > 0) {
|
if (sizeof($problemi_anagrafica) > 0) {
|
||||||
echo '<div class="alert alert-warning"><i class="fa fa-warning"></i> '.tr('Attenzione: _CAMPI_', [
|
echo '<div class="alert alert-warning"><i class="fa fa-warning"></i> '.tr('ATTENZIONE: <br>_CAMPI_', [
|
||||||
'_CAMPI_' => implode(', ', $problemi_anagrafica),
|
'_CAMPI_' => implode('', $problemi_anagrafica),
|
||||||
]).'</div>';
|
]).'</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -373,6 +373,28 @@ echo '
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function risolviConto(tipo){
|
||||||
|
$.ajax({
|
||||||
|
url: globals.rootdir + "/actions.php",
|
||||||
|
type: "POST",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
id_module: globals.id_module,
|
||||||
|
id_record: globals.id_record,
|
||||||
|
tipo: tipo,
|
||||||
|
op: "risolvi_conto",
|
||||||
|
},
|
||||||
|
success: function (response) {
|
||||||
|
location.reload();
|
||||||
|
},
|
||||||
|
error: function() {
|
||||||
|
location.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>';
|
</script>';
|
||||||
|
|
||||||
if ($is_cliente or $is_fornitore or $is_tecnico) {
|
if ($is_cliente or $is_fornitore or $is_tecnico) {
|
||||||
|
|
|
@ -291,7 +291,7 @@ echo '
|
||||||
<!-- RIGA 4 -->
|
<!-- RIGA 4 -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
{[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento", "value": "$idtipointervento$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
{[ "type": "select", "label": "<?php echo tr('Tipo attività'); ?>", "name": "idtipointervento", "required": 1, "ajax-source": "tipiintervento", "value": "$idtipointervento$", "readonly": "<?php echo $record['flag_completato']; ?>" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
@ -395,7 +395,7 @@ echo '
|
||||||
<div class=\"clearfix\"></div>
|
<div class=\"clearfix\"></div>
|
||||||
<br>";
|
<br>";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12" id="tecnici"></div>
|
<div class="col-md-12" id="tecnici"></div>
|
||||||
|
@ -631,11 +631,13 @@ $(document).ready(function() {
|
||||||
// session_set("superselect,idzona", $(this).selectData().idzona, 0);
|
// session_set("superselect,idzona", $(this).selectData().idzona, 0);
|
||||||
|
|
||||||
// Impostazione del tipo intervento da anagrafica
|
// Impostazione del tipo intervento da anagrafica
|
||||||
input("idtipointervento").getElement()
|
if (data.idtipointervento) {
|
||||||
.selectSetNew(data.idtipointervento, data.idtipointervento_descrizione);
|
input("idtipointervento").getElement()
|
||||||
|
.selectSet(data.idtipointervento);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//gestione del cliente finale
|
//gestione del cliente finale
|
||||||
cliente_finale.change(function() {
|
cliente_finale.change(function() {
|
||||||
updateSelectOption("idclientefinale", $(this).val());
|
updateSelectOption("idclientefinale", $(this).val());
|
||||||
|
@ -672,8 +674,12 @@ $(document).ready(function() {
|
||||||
contratto.getElement().selectReset();
|
contratto.getElement().selectReset();
|
||||||
ordine.getElement().selectReset();
|
ordine.getElement().selectReset();
|
||||||
|
|
||||||
input("idtipointervento").getElement()
|
// Impostazione del tipo intervento da preventivo
|
||||||
.selectSetNew($(this).selectData().idtipointervento, $(this).selectData().idtipointervento_descrizione);
|
var data = (this).selectData()
|
||||||
|
if (data.idtipointervento) {
|
||||||
|
input("idtipointervento").getElement()
|
||||||
|
.selectSet(data.idtipointervento);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ switch ($resource) {
|
||||||
$filter[] = 'co_pianodeiconti3.id='.prepare($element);
|
$filter[] = 'co_pianodeiconti3.id='.prepare($element);
|
||||||
}
|
}
|
||||||
|
|
||||||
$where[] = "co_pianodeiconti2.dir='entrata'";
|
$where[] = "(co_pianodeiconti2.dir='entrata' OR co_pianodeiconti2.dir='entrata/uscita')";
|
||||||
|
|
||||||
if (!empty($search)) {
|
if (!empty($search)) {
|
||||||
$search_fields[] = "CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero, ' ', co_pianodeiconti3.descrizione ) LIKE ".prepare('%'.$search.'%');
|
$search_fields[] = "CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero, ' ', co_pianodeiconti3.descrizione ) LIKE ".prepare('%'.$search.'%');
|
||||||
|
@ -92,7 +92,7 @@ switch ($resource) {
|
||||||
$filter[] = 'co_pianodeiconti3.id='.prepare($element);
|
$filter[] = 'co_pianodeiconti3.id='.prepare($element);
|
||||||
}
|
}
|
||||||
|
|
||||||
$where[] = "co_pianodeiconti2.dir='uscita'";
|
$where[] = "(co_pianodeiconti2.dir='uscita' OR co_pianodeiconti2.dir='entrata/uscita')";
|
||||||
|
|
||||||
if (!empty($search)) {
|
if (!empty($search)) {
|
||||||
$search_fields[] = "CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero, ' ', co_pianodeiconti3.descrizione ) LIKE ".prepare('%'.$search.'%');
|
$search_fields[] = "CONCAT( co_pianodeiconti2.numero, '.', co_pianodeiconti3.numero, ' ', co_pianodeiconti3.descrizione ) LIKE ".prepare('%'.$search.'%');
|
||||||
|
|
|
@ -54,7 +54,7 @@ $info = $dbo->fetchOne($query);
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4 <?php echo intval($lvl != 2) ? 'hidden' : ''; ?>">
|
<div class="col-md-4 <?php echo intval($lvl != 2) ? 'hidden' : ''; ?>">
|
||||||
{[ "type": "select", "label": "<?php echo tr('Utilizza come'); ?>", "name": "dir", "value": "<?php echo $info['dir']; ?>", "values": "list=\"entrata\":\"Ricavo\", \"uscita\":\"Costo\", \"\": \"Non usare\"" ]}
|
{[ "type": "select", "label": "<?php echo tr('Utilizza come'); ?>", "name": "dir", "value": "<?php echo $info['dir']; ?>", "values": "list=\"entrata\":\"Ricavo\", \"uscita\":\"Costo\", \"entrata/uscita\":\"Ricavo e Costo\", \"\": \"Non usare\"" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -46,7 +46,7 @@ class Clienti extends AppResource
|
||||||
// Elenco di interventi di interesse
|
// Elenco di interventi di interesse
|
||||||
$risorsa_interventi = $this->getRisorsaInterventi();
|
$risorsa_interventi = $this->getRisorsaInterventi();
|
||||||
// Da applicazione, i Clienti sono sincronizzati prima degli Interventi: last_sync_at permette di identificare le stesse modifiche
|
// Da applicazione, i Clienti sono sincronizzati prima degli Interventi: last_sync_at permette di identificare le stesse modifiche
|
||||||
$interventi = $risorsa_interventi->getModifiedRecords($last_sync_at);
|
$interventi = $risorsa_interventi->getModifiedRecords(null);
|
||||||
if (empty($interventi)) {
|
if (empty($interventi)) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,6 +149,7 @@ class Interventi extends AppResource
|
||||||
codice,
|
codice,
|
||||||
richiesta,
|
richiesta,
|
||||||
data_richiesta,
|
data_richiesta,
|
||||||
|
data_scadenza,
|
||||||
descrizione,
|
descrizione,
|
||||||
idanagrafica AS id_cliente,
|
idanagrafica AS id_cliente,
|
||||||
id_contratto,
|
id_contratto,
|
||||||
|
|
|
@ -24,7 +24,7 @@ use API\Resource;
|
||||||
|
|
||||||
class Revisione extends Resource implements RetrieveInterface
|
class Revisione extends Resource implements RetrieveInterface
|
||||||
{
|
{
|
||||||
const REVISION = '1.1';
|
const REVISION = '1.2';
|
||||||
|
|
||||||
public function retrieve($request)
|
public function retrieve($request)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
|
||||||
|
* Copyright (C) DevCode s.r.l.
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace API\App\v1;
|
||||||
|
|
||||||
|
use API\Interfaces\CreateInterface;
|
||||||
|
use API\Interfaces\RetrieveInterface;
|
||||||
|
use API\Resource;
|
||||||
|
use Modules\Emails\Account;
|
||||||
|
use Modules\Emails\Mail;
|
||||||
|
use Modules\Emails\Template;
|
||||||
|
use Notifications\EmailNotification;
|
||||||
|
|
||||||
|
class SegnalazioneBug extends Resource implements RetrieveInterface, CreateInterface
|
||||||
|
{
|
||||||
|
protected static $bug_email = 'info@openstamanager.com';
|
||||||
|
|
||||||
|
public function retrieve($request)
|
||||||
|
{
|
||||||
|
$account = Account::where('predefined', true)->first();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'sender' => [
|
||||||
|
'name' => $account['from_name'],
|
||||||
|
'email' => $account['from_address'],
|
||||||
|
],
|
||||||
|
'receiver' => self::$bug_email,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create($request)
|
||||||
|
{
|
||||||
|
$account = Account::where('predefined', true)->first();
|
||||||
|
|
||||||
|
// Preparazione email
|
||||||
|
$mail = new EmailNotification($account);
|
||||||
|
|
||||||
|
// Destinatario
|
||||||
|
$mail->AddAddress(self::$bug_email);
|
||||||
|
|
||||||
|
// Oggetto
|
||||||
|
$mail->subject = 'Segnalazione bug App OSM '.$request['version'];
|
||||||
|
|
||||||
|
$infos = [
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
$body = '';
|
||||||
|
foreach ($infos as $key => $value) {
|
||||||
|
$body .= '<p>'.$key.': '.$value.'</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Contenuti
|
||||||
|
$mail->content = $body;
|
||||||
|
|
||||||
|
// Tentativo di invio diretto
|
||||||
|
$email_success = $mail->send();
|
||||||
|
|
||||||
|
return [
|
||||||
|
'sent' => $email_success,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,14 +7,14 @@ UPDATE `zz_views` SET `format`=1 WHERE `zz_views`.`name`='Data' AND `zz_views`.`
|
||||||
|
|
||||||
-- Colonna stato per newsletter
|
-- Colonna stato per newsletter
|
||||||
INSERT INTO `zz_views` ( `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
INSERT INTO `zz_views` ( `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
||||||
((SELECT `id` FROM `zz_modules` WHERE name='Newsletter'), 'Stato', 'IF(em_newsletters.state = \'DEV\', \'Bozza\', IF(em_newsletters.state = \'WAIT\', \'Invio in corso\', \'Completata\'))', 4, 1, 0, 0, '', '', 1, 0, 0);
|
((SELECT `id` FROM `zz_modules` WHERE name='Newsletter'), 'Stato', 'IF(em_newsletters.state = ''DEV'', ''Bozza'', IF(em_newsletters.state = ''WAIT'', ''Invio in corso'', ''Completata''))', 4, 1, 0, 0, '', '', 1, 0, 0);
|
||||||
|
|
||||||
-- Colonna destinatari per newsletter
|
-- Colonna destinatari per newsletter
|
||||||
INSERT INTO `zz_views` ( `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
INSERT INTO `zz_views` ( `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
||||||
((SELECT `id` FROM `zz_modules` WHERE name='Newsletter'), 'Destinatari', '(SELECT COUNT(*) FROM `em_newsletter_anagrafica` WHERE `em_newsletter_anagrafica`.`id_newsletter` = `em_newsletters`.`id`)', 5, 1, 0, 0, '', '', 1, 0, 0);
|
((SELECT `id` FROM `zz_modules` WHERE name='Newsletter'), 'Destinatari', '(SELECT COUNT(*) FROM `em_newsletter_anagrafica` WHERE `em_newsletter_anagrafica`.`id_newsletter` = `em_newsletters`.`id`)', 5, 1, 0, 0, '', '', 1, 0, 0);
|
||||||
|
|
||||||
-- Aggiorno colonna completato per newsletter
|
-- Aggiorno colonna completato per newsletter
|
||||||
UPDATE `zz_views` SET `query` = 'IF(completed_at IS NULL, \'No\', CONCAT(\'Sì \', \'(\', DATE_FORMAT(completed_at, \'%d/%m/%Y %H:%i:%s\' ), \')\'))', `order` = 6 WHERE `zz_views`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Newsletter') AND `name` = 'Completato';
|
UPDATE `zz_views` SET `query` = 'IF(completed_at IS NULL, ''No'', CONCAT(''Sì '', ''('', DATE_FORMAT(completed_at, ''%d/%m/%Y %H:%i:%s'' ), '')''))', `order` = 6 WHERE `zz_views`.`id_module` = (SELECT `id` FROM `zz_modules` WHERE name='Newsletter') AND `name` = 'Completato';
|
||||||
|
|
||||||
-- Visualizza informazioni aggiuntive sul calendario
|
-- Visualizza informazioni aggiuntive sul calendario
|
||||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Visualizza informazioni aggiuntive sul calendario', '0', 'boolean', '1', 'Dashboard', '1', 'Visualizza sul calendario il box Tutto il giorno dove possono essere presenti informazioni aggiuntve');
|
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Visualizza informazioni aggiuntive sul calendario', '0', 'boolean', '1', 'Dashboard', '1', 'Visualizza sul calendario il box Tutto il giorno dove possono essere presenti informazioni aggiuntve');
|
||||||
|
@ -46,7 +46,7 @@ INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `
|
||||||
|
|
||||||
-- Aggiunta vista scaduto in scadenzario
|
-- Aggiunta vista scaduto in scadenzario
|
||||||
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
||||||
((SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='Scadenzario' ), 'Scaduto', 'IF(pagato = da_pagare, \'NO\', IF(data_concordata IS NOT NULL AND data_concordata > NOW(), \'NO\', IF(scadenza < NOW(), \'SÌ\', \'NO\')))', 14, 1, 0, 0, '', '', 1, 0, 0);
|
((SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='Scadenzario' ), 'Scaduto', 'IF(pagato = da_pagare, ''NO'', IF(data_concordata IS NOT NULL AND data_concordata > NOW(), ''NO'', IF(scadenza < NOW(), ''SÌ'', ''NO'')))', 14, 1, 0, 0, '', '', 1, 0, 0);
|
||||||
|
|
||||||
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` = 'Scadenzario' AND `zz_views`.`name` = 'Scaduto');
|
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` = 'Scadenzario' AND `zz_views`.`name` = 'Scaduto');
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ UPDATE `co_righe_preventivi` SET `confermato` = 1;
|
||||||
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conferma automaticamente le quantità nei preventivi', '1', 'boolean', '1', 'Preventivi', NULL, NULL);
|
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conferma automaticamente le quantità nei preventivi', '1', 'boolean', '1', 'Preventivi', NULL, NULL);
|
||||||
-- Aggiunta vista "Esigibilità" per il modulo "IVA"
|
-- Aggiunta vista "Esigibilità" per il modulo "IVA"
|
||||||
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
||||||
(NULL, (SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='IVA'), 'Esigibilità', 'IF(esigibilita=\'I\', \'IVA ad esigibilità immediata\', IF(esigibilita=\'D\', \'IVA ad esigibilità differita\', \'Scissione dei pagamenti\'))', 5, 1, 0, 0, '', '', 1, 0, 0);
|
(NULL, (SELECT `zz_modules`.`id` FROM `zz_modules` WHERE `zz_modules`.`name`='IVA'), 'Esigibilità', 'IF(esigibilita=''I'', ''IVA ad esigibilità immediata'', IF(esigibilita=''D'', ''IVA ad esigibilità differita'', ''Scissione dei pagamenti''))', 5, 1, 0, 0, '', '', 1, 0, 0);
|
||||||
|
|
||||||
-- Gestione righe da documenti esterni
|
-- Gestione righe da documenti esterni
|
||||||
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ('Permetti il superamento della soglia quantità dei documenti di origine', '0', 'boolean', '1', 'Generali', '20', NULL);
|
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ('Permetti il superamento della soglia quantità dei documenti di origine', '0', 'boolean', '1', 'Generali', '20', NULL);
|
||||||
|
@ -73,9 +73,57 @@ INSERT INTO `zz_views` ( `id_module`, `name`, `query`, `order`, `search`, `slow`
|
||||||
((SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente'), 'Rif. fattura', 'fattura.info', 11, 1, 0, 0, '', '', 1, 0, 0),
|
((SELECT `id` FROM `zz_modules` WHERE name='Ordini cliente'), 'Rif. fattura', 'fattura.info', 11, 1, 0, 0, '', '', 1, 0, 0),
|
||||||
((SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore'), 'Rif. fattura', 'fattura.info', 8, 1, 0, 0, '', '', 1, 0, 0);
|
((SELECT `id` FROM `zz_modules` WHERE name='Ordini fornitore'), 'Rif. fattura', 'fattura.info', 8, 1, 0, 0, '', '', 1, 0, 0);
|
||||||
|
|
||||||
UPDATE `zz_modules` SET `options` = 'SELECT |select|\nFROM `or_ordini`\n LEFT JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`\n LEFT JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id`\n LEFT JOIN (\n SELECT `idordine`,\n SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`,\n SUM(`subtotale` - `sconto`) AS `totale_imponibile`,\n SUM(`subtotale` - `sconto` + `iva`) AS `totale`\n FROM `or_righe_ordini`\n GROUP BY `idordine`\n ) AS righe ON `or_ordini`.`id` = `righe`.`idordine`\n LEFT JOIN (\n SELECT `idordine`,\n MIN(`data_evasione`) AS `data_evasione`\n FROM `or_righe_ordini`\n WHERE (`qta` - `qta_evasa`)>0\n GROUP BY `idordine`\n ) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine`\n LEFT JOIN (\n SELECT GROUP_CONCAT(co_documenti.numero_esterno SEPARATOR \", \") AS info, co_righe_documenti.idordine FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento GROUP BY idordine\n) AS fattura ON fattura.idordine = or_ordini.id\nWHERE 1=1 AND `dir` = \'entrata\' |date_period(`data`)|\nHAVING 2=2\nORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC' WHERE `zz_modules`.`name` = 'Ordini cliente';
|
UPDATE `zz_modules` SET `options` = 'SELECT |select|
|
||||||
|
FROM `or_ordini`
|
||||||
|
LEFT JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||||
|
LEFT JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id`
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT `idordine`,
|
||||||
|
SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`,
|
||||||
|
SUM(`subtotale` - `sconto`) AS `totale_imponibile`,
|
||||||
|
SUM(`subtotale` - `sconto` + `iva`) AS `totale`
|
||||||
|
FROM `or_righe_ordini`
|
||||||
|
GROUP BY `idordine`
|
||||||
|
) AS righe ON `or_ordini`.`id` = `righe`.`idordine`
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT `idordine`,
|
||||||
|
MIN(`data_evasione`) AS `data_evasione`
|
||||||
|
FROM `or_righe_ordini`
|
||||||
|
WHERE (`qta` - `qta_evasa`)>0
|
||||||
|
GROUP BY `idordine`
|
||||||
|
) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine`
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT GROUP_CONCAT(co_documenti.numero_esterno SEPARATOR \", \") AS info, co_righe_documenti.idordine FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento GROUP BY idordine
|
||||||
|
) AS fattura ON fattura.idordine = or_ordini.id
|
||||||
|
WHERE 1=1 AND `dir` = ''entrata'' |date_period(`data`)|
|
||||||
|
HAVING 2=2
|
||||||
|
ORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC' WHERE `zz_modules`.`name` = 'Ordini cliente';
|
||||||
|
|
||||||
UPDATE `zz_modules` SET `options` = 'SELECT |select|\nFROM `or_ordini`\n LEFT JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`\n LEFT JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id`\n LEFT JOIN (\n SELECT `idordine`,\n SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`,\n SUM(`subtotale` - `sconto`) AS `totale_imponibile`,\n SUM(`subtotale` - `sconto` + `iva`) AS `totale`\n FROM `or_righe_ordini`\n GROUP BY `idordine`\n ) AS righe ON `or_ordini`.`id` = `righe`.`idordine`\n LEFT JOIN (\n SELECT `idordine`,\n MIN(`data_evasione`) AS `data_evasione`\n FROM `or_righe_ordini`\n WHERE (`qta` - `qta_evasa`)>0\n GROUP BY `idordine`\n ) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine`\n LEFT JOIN (\n SELECT GROUP_CONCAT(co_documenti.numero_esterno SEPARATOR \", \") AS info, co_righe_documenti.idordine FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento GROUP BY idordine\n) AS fattura ON fattura.idordine = or_ordini.id\nWHERE 1=1 AND `dir` = \'uscita\' |date_period(`data`)|\nHAVING 2=2\nORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC' WHERE `zz_modules`.`name` = 'Ordini fornitore';
|
UPDATE `zz_modules` SET `options` = 'SELECT |select|
|
||||||
|
FROM `or_ordini`
|
||||||
|
LEFT JOIN `an_anagrafiche` ON `or_ordini`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||||
|
LEFT JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine` = `or_tipiordine`.`id`
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT `idordine`,
|
||||||
|
SUM(`qta` - `qta_evasa`) AS `qta_da_evadere`,
|
||||||
|
SUM(`subtotale` - `sconto`) AS `totale_imponibile`,
|
||||||
|
SUM(`subtotale` - `sconto` + `iva`) AS `totale`
|
||||||
|
FROM `or_righe_ordini`
|
||||||
|
GROUP BY `idordine`
|
||||||
|
) AS righe ON `or_ordini`.`id` = `righe`.`idordine`
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT `idordine`,
|
||||||
|
MIN(`data_evasione`) AS `data_evasione`
|
||||||
|
FROM `or_righe_ordini`
|
||||||
|
WHERE (`qta` - `qta_evasa`)>0
|
||||||
|
GROUP BY `idordine`
|
||||||
|
) AS `righe_da_evadere` ON `righe`.`idordine`=`righe_da_evadere`.`idordine`
|
||||||
|
LEFT JOIN (
|
||||||
|
SELECT GROUP_CONCAT(co_documenti.numero_esterno SEPARATOR \", \") AS info, co_righe_documenti.idordine FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento GROUP BY idordine
|
||||||
|
) AS fattura ON fattura.idordine = or_ordini.id
|
||||||
|
WHERE 1=1 AND `dir` = ''uscita'' |date_period(`data`)|
|
||||||
|
HAVING 2=2
|
||||||
|
ORDER BY `data` DESC, CAST(`numero_esterno` AS UNSIGNED) DESC' WHERE `zz_modules`.`name` = 'Ordini fornitore';
|
||||||
|
|
||||||
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES
|
INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES
|
||||||
(NULL, 'app-v1', 'retrieve', 'sedi-azienda', 'API\\App\\v1\\SediAzienda', '1'),
|
(NULL, 'app-v1', 'retrieve', 'sedi-azienda', 'API\\App\\v1\\SediAzienda', '1'),
|
||||||
|
@ -83,4 +131,6 @@ INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `e
|
||||||
(NULL, 'app-v1', 'retrieve', 'sede-azienda', 'API\\App\\v1\\SediAzienda', '1'),
|
(NULL, 'app-v1', 'retrieve', 'sede-azienda', 'API\\App\\v1\\SediAzienda', '1'),
|
||||||
(NULL, 'app-v1', 'retrieve', 'movimenti-manuali', 'API\\App\\v1\\MovimentiManuali', '1'),
|
(NULL, 'app-v1', 'retrieve', 'movimenti-manuali', 'API\\App\\v1\\MovimentiManuali', '1'),
|
||||||
(NULL, 'app-v1', 'retrieve', 'movimenti-manuali-cleanup', 'API\\App\\v1\\MovimentiManuali', '1'),
|
(NULL, 'app-v1', 'retrieve', 'movimenti-manuali-cleanup', 'API\\App\\v1\\MovimentiManuali', '1'),
|
||||||
(NULL, 'app-v1', 'create', 'movimento-manuale', 'API\\App\\v1\\MovimentiManuali', '1');
|
(NULL, 'app-v1', 'create', 'movimento-manuale', 'API\\App\\v1\\MovimentiManuali', '1'),
|
||||||
|
(NULL, 'app-v1', 'retrieve', 'segnalazione-bug', 'API\\App\\v1\\SegnalazioneBug', '1'),
|
||||||
|
(NULL, 'app-v1', 'create', 'segnalazione-bug', 'API\\App\\v1\\SegnalazioneBug', '1');
|
||||||
|
|
Loading…
Reference in New Issue