mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-01 00:16:55 +01:00
Merge branch 'master' of https://github.com/devcode-it/openstamanager
This commit is contained in:
commit
6f13d42fce
@ -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.
|
||||
*
|
||||
|
@ -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.'%');
|
||||
|
@ -427,34 +427,22 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
||||
|
||||
<div class="tab-content '.(!$is_cliente && !$is_fornitore && !$is_tecnico ? 'hide' : '').'">
|
||||
<div class="tab-pane '.(!$is_cliente && !$is_fornitore ? ' hide' : '').'" id="cliente_fornitore">
|
||||
<!--div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Appoggio bancario').'", "name": "appoggiobancario", "value": "$appoggiobancario$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Filiale banca').'", "name": "filiale", "value": "$filiale$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Codice IBAN').'", "name": "codiceiban", "value": "$codiceiban$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Codice BIC').'", "name": "bic", "value": "$bic$" ]}
|
||||
</div>
|
||||
</div-->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{[ "type": "checkbox", "label": "'.tr('Abilitare lo split payment').'", "name": "split_payment", "value": "$split_payment$", "help": "'.tr('Lo split payment è disponibile per le anagrafiche di tipologia \"Ente pubblico\" o \"Azienda\" (iscritta al Dipartimento Finanze - Scissione dei pagamenti) ed <strong>è obbligatorio</strong> per:<ul><li>Stato;</li><li>organi statali ancorché dotati di personalità giuridica;</li><li>enti pubblici territoriali e dei consorzi tra essi costituiti;</li><li>Camere di Commercio;</li><li>Istituti universitari;</li><li>ASL e degli enti ospedalieri;</li><li>enti pubblici di ricovero e cura aventi prevalente carattere scientifico;</li><li>enti pubblici di assistenza e beneficienza;</li><li>enti di previdenza;</li><li>consorzi tra questi costituiti.</li></ul>').'", "placeholder": "'.tr('Split payment').'", "extra" : "'.($record['tipo'] == 'Ente pubblico' || $record['tipo'] == 'Azienda' ? '' : 'disabled').'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "'.tr('Relazione').'", "name": "idrelazione", "ajax-source": "relazioni", "value": "$idrelazione$", "icon-after": "add|'.Modules::get('Relazioni')['id'].'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-9">
|
||||
{[ "type": "text", "label": "'.tr('Dicitura fissa in fattura').'", "name": "diciturafissafattura", "value": "$diciturafissafattura$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
</div>';
|
||||
|
||||
$banche = Banca::where('id_anagrafica', $anagrafica->id)->get();
|
||||
@ -492,66 +480,61 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Provenienza cliente').'", "name": "id_provenienza", "ajax-source": "provenienze", "value": "$id_provenienza$", "icon-after": "add|'.Modules::get('Provenienze')['id'].'" ]}
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Relazione con il cliente').'", "name": "idrelazione", "ajax-source": "relazioni", "value": "$idrelazione$", "icon-after": "add|'.Modules::get('Relazioni')['id'].'" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Pagamento predefinito').'", "name": "idpagamento_vendite", "values": "query=SELECT id, descrizione FROM co_pagamenti GROUP BY descrizione ORDER BY descrizione ASC", "value": "$idpagamento_vendite$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Banca predefinita per accrediti').'", "name": "idbanca_vendite", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$idbanca_vendite$", "help": "'.tr("Banca predefinita dell'Azienda su cui accreditare i pagamenti").'" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Iva predefinita').'", "name": "idiva_vendite", "ajax-source": "iva", "value": "$idiva_vendite$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto predefinita").'", "name": "id_ritenuta_acconto_vendite", "values": "query=SELECT id, descrizione FROM co_ritenutaacconto ORDER BY descrizione ASC", "value": "$id_ritenuta_acconto_vendite$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Piano di sconto/magg. su articoli').'", "name": "id_piano_sconto_vendite", "values": "query=SELECT id, nome AS descrizione FROM mg_piani_sconto ORDER BY nome ASC", "value": "$id_piano_sconto_vendite$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Indirizzo di fatturazione').'", "name": "idsede_fatturazione", "values": "query=SELECT id, IF(citta = \'\', nomesede, CONCAT_WS(\', \', nomesede, citta)) AS descrizione FROM an_sedi WHERE idanagrafica='.prepare($id_record).' UNION SELECT \'0\' AS id, \'Sede legale\' AS descrizione ORDER BY descrizione", "value": "$idsede_fatturazione$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Agente principale').'", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, \' (Eliminato)\'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Agente\' AND deleted_at IS NULL)'.(isset($record['idagente']) ? 'OR (an_anagrafiche.idanagrafica = '.prepare($record['idagente']).' AND deleted_at IS NOT NULL) ' : '').'ORDER BY ragione_sociale", "value": "$idagente$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Agente principale').'", "name": "idagente", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, \' (Eliminato)\'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Agente\' AND deleted_at IS NULL)'.(isset($record['idagente']) ? 'OR (an_anagrafiche.idanagrafica = '.prepare($record['idagente']).' AND deleted_at IS NOT NULL) ' : '').'ORDER BY ragione_sociale", "value": "$idagente$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Agenti secondari').'", "multiple": "1", "name": "idagenti[]", "values": "query=SELECT an_anagrafiche.idanagrafica AS id, IF(deleted_at IS NOT NULL, CONCAT(ragione_sociale, \' (Eliminato)\'), ragione_sociale ) AS descrizione FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE (descrizione=\'Agente\' AND deleted_at IS NULL AND an_anagrafiche.idanagrafica NOT IN (SELECT idagente FROM an_anagrafiche WHERE idanagrafica = '.prepare($record['idanagrafica']).')) OR (an_anagrafiche.idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE idanagrafica = '.prepare($record['idanagrafica']).') ) ORDER BY ragione_sociale", "value": "$idagenti$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Listino').'", "name": "id_listino", "ajax-source": "listini", "value": "$id_listino$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Listino').'", "name": "id_listino", "ajax-source": "listini", "value": "$id_listino$" ]}
|
||||
</div>
|
||||
|
||||
<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>';
|
||||
</div>';
|
||||
|
||||
// Collegamento con il conto
|
||||
$conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione AS descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_cliente']));
|
||||
|
||||
echo '
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<p><b>'.tr('Piano dei conti cliente').'</b></p>';
|
||||
|
||||
|
@ -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 '
|
||||
|
@ -95,6 +95,9 @@ switch (post('op')) {
|
||||
$documenti->push($fattura);
|
||||
}
|
||||
|
||||
$fattura->idsede_destinazione = $documento_import->idsede_destinazione;
|
||||
$fattura->save();
|
||||
|
||||
// Inserimento righe
|
||||
foreach ($righe as $riga) {
|
||||
$qta = $riga->qta_rimanente;
|
||||
|
@ -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 '
|
||||
|
@ -732,7 +732,10 @@ switch (post('op')) {
|
||||
$fattura->idpagamento = setting('Tipo di pagamento predefinito');
|
||||
}
|
||||
|
||||
$fattura->idsede_destinazione = $documento->idsede;
|
||||
|
||||
$idsede = ($documento->idsede_destinazione ? $documento->idsede_destinazione : $documento->idsede);
|
||||
|
||||
$fattura->idsede_destinazione = $idsede;
|
||||
$fattura->id_ritenuta_contributi = post('id_ritenuta_contributi') ?: null;
|
||||
$fattura->idreferente = $documento->idreferente;
|
||||
$fattura->idagente = $documento->idagente;
|
||||
|
@ -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 '
|
||||
|
@ -323,7 +323,7 @@ switch (post('op')) {
|
||||
$mail->save();
|
||||
OperationLog::setInfo('id_email', $mail->id);
|
||||
OperationLog::setInfo('id_module', $id_module);
|
||||
OperationLog::setInfo('id_record', $id_record);
|
||||
OperationLog::setInfo('id_record', $mail->id_record);
|
||||
OperationLog::build('send-email');
|
||||
|
||||
array_push($list, $intervento->codice);
|
||||
|
@ -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.
|
||||
|
@ -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 '
|
||||
|
@ -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
|
||||
|
@ -33,7 +33,11 @@ UPDATE `zz_prints` SET `id_module` = (SELECT `id` FROM `zz_modules` WHERE `name`
|
||||
INSERT INTO `zz_prints` (`id`, `id_module`, `is_record`, `name`, `title`, `filename`, `directory`, `previous`, `options`, `icon`, `version`, `compatibility`, `order`, `predefined`, `default`, `enabled`) VALUES (NULL, (SELECT `id` FROM `zz_modules` WHERE `name`='Stampe contabili'), '1', 'Libro giornale', 'Libro giornale', 'Libro giornale', 'libro_giornale', 'idconto', '', 'fa fa-print', '', '', '0', '0', '1', '1');
|
||||
|
||||
-- Aggiunta tabella mansioni
|
||||
CREATE TABLE IF NOT EXISTS `an_mansioni` ( `id` INT NOT NULL AUTO_INCREMENT , `nome` VARCHAR(100) NOT NULL , PRIMARY KEY (`id`));
|
||||
CREATE TABLE IF NOT EXISTS `an_mansioni` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`nome` VARCHAR(100) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
|
||||
INSERT INTO `an_mansioni`(
|
||||
`nome`
|
||||
@ -56,7 +60,12 @@ INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `visible`,
|
||||
|
||||
UPDATE `zz_plugins` SET `options` = ' { \"main_query\": [ { \"type\": \"table\", \"fields\": \"Nominativo, Mansione, Telefono, Indirizzo email, Sede\", \"query\": \"SELECT an_referenti.id, an_referenti.nome AS Nominativo, an_mansioni.nome AS Mansione, an_referenti.telefono AS Telefono, an_referenti.email AS \'Indirizzo email\', IF(idsede = 0, \'Sede legale\', an_sedi.nomesede) AS Sede FROM an_referenti LEFT OUTER JOIN an_sedi ON idsede = an_sedi.id LEFT OUTER JOIN an_mansioni ON idmansione = an_mansioni.id WHERE 1=1 AND an_referenti.idanagrafica=|id_parent| HAVING 2=2 ORDER BY an_referenti.id DESC\"} ]}' WHERE `zz_plugins`.`name` = 'Referenti';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `em_mansioni_template` ( `id` INT NOT NULL AUTO_INCREMENT , `idmansione` INT NOT NULL , `id_template` INT NOT NULL , PRIMARY KEY (`id`));
|
||||
CREATE TABLE IF NOT EXISTS `em_mansioni_template` (
|
||||
`id` INT NOT NULL AUTO_INCREMENT,
|
||||
`idmansione` INT NOT NULL,
|
||||
`id_template` INT NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
|
||||
-- Aggiunta notifiche ai tecnici assegnati
|
||||
ALTER TABLE `in_statiintervento` CHANGE `notifica_tecnici` `notifica_tecnico_sessione` TINYINT(4) NOT NULL;
|
||||
|
@ -42,4 +42,67 @@ ORDER BY
|
||||
|
||||
-- Aggiunta descrizione codice natura N7
|
||||
SELECT @codice := MAX(CAST(codice AS UNSIGNED))+1 FROM co_iva WHERE deleted_at IS NULL;
|
||||
INSERT INTO `co_iva` (`id`, `descrizione`, `percentuale`, `indetraibile`, `esente`, `dicitura`, `codice_natura_fe`, `deleted_at`, `codice`, `esigibilita`, `default`) VALUES (NULL, 'Regime OSS, D.Lgs. 83/2021', '0.00', '0.00', '1', NULL, 'N7', NULL, @codice, 'I', '1');
|
||||
INSERT INTO `co_iva` (`id`, `descrizione`, `percentuale`, `indetraibile`, `esente`, `dicitura`, `codice_natura_fe`, `deleted_at`, `codice`, `esigibilita`, `default`) VALUES (NULL, 'Regime OSS, D.Lgs. 83/2021', '0.00', '0.00', '1', NULL, 'N7', NULL, @codice, 'I', '1');
|
||||
|
||||
-- Aggiunta campo agente in Preventivi
|
||||
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
||||
('13', 'Agente', '`agente`.`nome`', '11', '1', '0', '0', '0', NULL, NULL, '0', '0', '0');
|
||||
|
||||
UPDATE `zz_modules` SET `options` = "SELECT
|
||||
|select|
|
||||
FROM
|
||||
`co_preventivi`
|
||||
LEFT JOIN `an_anagrafiche` ON `co_preventivi`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `co_statipreventivi` ON `co_preventivi`.`idstato` = `co_statipreventivi`.`id`
|
||||
LEFT JOIN (
|
||||
SELECT `idpreventivo`,
|
||||
SUM(`subtotale` - `sconto`) AS `totale_imponibile`,
|
||||
SUM(`subtotale` - `sconto` + `iva`) AS `totale`
|
||||
FROM `co_righe_preventivi`
|
||||
GROUP BY `idpreventivo`
|
||||
) AS righe ON `co_preventivi`.`id` = `righe`.`idpreventivo`
|
||||
LEFT JOIN (SELECT `an_anagrafiche`.`idanagrafica`, `an_anagrafiche`.`ragione_sociale` AS nome FROM `an_anagrafiche`)AS agente ON `agente`.`idanagrafica`=`co_preventivi`.`idagente`
|
||||
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT co_documenti.numero_esterno SEPARATOR ', ') AS info, co_righe_documenti.original_document_id AS idpreventivo FROM co_documenti INNER JOIN co_righe_documenti ON co_documenti.id = co_righe_documenti.iddocumento WHERE original_document_type='Modules\\Preventivi\\Preventivo' GROUP BY idpreventivo) AS fattura ON fattura.idpreventivo = co_preventivi.id
|
||||
WHERE
|
||||
1=1 |segment(`co_preventivi`.`id_segment`)| |date_period(custom,'|period_start|' >= `data_bozza` AND '|period_start|' <= `data_conclusione`,'|period_end|' >= `data_bozza` AND '|period_end|' <= `data_conclusione`,`data_bozza` >= '|period_start|' AND `data_bozza` <= '|period_end|',`data_conclusione` >= '|period_start|' AND `data_conclusione` <= '|period_end|',`data_bozza` >= '|period_start|' AND `data_conclusione` = '0000-00-00')| AND default_revision = 1
|
||||
GROUP BY
|
||||
`co_preventivi`.`id`
|
||||
HAVING
|
||||
2=2
|
||||
ORDER BY
|
||||
`co_preventivi`.`id` DESC" WHERE `name` = 'Preventivi';
|
||||
|
||||
-- Aggiunta colonna Inviato in DDT in uscita
|
||||
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES
|
||||
('26', 'icon_Inviato', "IF(`email`.`id_email` IS NOT NULL, 'fa fa-envelope text-success', '')", '13', '1', '0', '0', '0', NULL, NULL, '0', '0', '0');
|
||||
|
||||
UPDATE `zz_modules` SET `options` = "SELECT
|
||||
|select|
|
||||
FROM
|
||||
`dt_ddt`
|
||||
LEFT JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
|
||||
LEFT JOIN `dt_causalet` ON `dt_ddt`.`idcausalet` = `dt_causalet`.`id`
|
||||
LEFT JOIN `dt_spedizione` ON `dt_ddt`.`idspedizione` = `dt_spedizione`.`id`
|
||||
LEFT JOIN `an_anagrafiche` `vettori` ON `dt_ddt`.`idvettore` = `vettori`.`idanagrafica`
|
||||
LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id`
|
||||
LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id`
|
||||
LEFT JOIN (SELECT `idddt`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `dt_righe_ddt` GROUP BY `idddt`) AS righe ON `dt_ddt`.`id` = `righe`.`idddt`
|
||||
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
||||
LEFT JOIN (SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record` FROM `zz_operations` INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id` INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id` INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id` WHERE `zz_modules`.`name` = 'Ddt di vendita' AND `zz_operations`.`op` = 'send-email' GROUP BY `zz_operations`.`id_record`) AS `email` ON `email`.`id_record` = `dt_ddt`.`id`
|
||||
WHERE
|
||||
1=1 AND `dir` = 'entrata' AND (`data` BETWEEN '2023-01-01' AND '2023-12-31 23:59:59')
|
||||
HAVING
|
||||
2=2
|
||||
ORDER BY
|
||||
`data` DESC,
|
||||
CAST(`numero_esterno` AS UNSIGNED) DESC,
|
||||
`dt_ddt`.created_at DESC" WHERE `name` = 'Ddt di vendita';
|
||||
|
||||
|
||||
-- Fix problemi integrità db se si aggiorna (o si è aggiornato in passato) da una versione precedente alla 2.4.28
|
||||
ALTER TABLE `an_mansioni` CHANGE `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
ALTER TABLE `an_mansioni` CHANGE `updated_at` `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
|
||||
ALTER TABLE `em_mansioni_template` CHANGE `created_at` `created_at` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
|
||||
ALTER TABLE `em_mansioni_template` CHANGE `updated_at` `updated_at` TIMESTAMP on update CURRENT_TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP;
|
Loading…
x
Reference in New Issue
Block a user