Compare commits
7 Commits
4b8a12e164
...
786f638706
Author | SHA1 | Date |
---|---|---|
Beppe | 786f638706 | |
Pek5892 | 97c1817c65 | |
Pek5892 | 4c83fe7c73 | |
Pek5892 | 450494f279 | |
Pek5892 | a7bf474c84 | |
Pek5892 | 06d0b87cee | |
Pek5892 | 57a389fc6a |
|
@ -238,8 +238,8 @@ class Mail extends Model
|
|||
$this->read_notify = $template->read_notify;
|
||||
|
||||
// Contentuto e oggetto
|
||||
$this->content = $template->body;
|
||||
$this->subject = $template->subject;
|
||||
$this->content = $template->getTranslation('body');
|
||||
$this->subject = $template->getTranslation('subject');
|
||||
|
||||
// Reply To
|
||||
if (!empty($template['tipo_reply_to'])) {
|
||||
|
|
|
@ -126,10 +126,10 @@ switch (post('op')) {
|
|||
}
|
||||
}
|
||||
|
||||
$tecnici_assegnati_array = post('tecnici_assegnati');
|
||||
$tecnici_assegnati_array [] = post('tecnici_assegnati');
|
||||
$tecnici_assegnati = [];
|
||||
|
||||
foreach ($tecnici_assegnati as $tecnico_assegnato) {
|
||||
foreach ($tecnici_assegnati_array as $tecnico_assegnato) {
|
||||
$tecnici_assegnati[] = $tecnico_assegnato;
|
||||
// Notifica aggiunta tecnico assegnato
|
||||
if (setting('Notifica al tecnico l\'assegnazione all\'attività')) {
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Models\Upload;
|
||||
use Models\Module;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
|
@ -133,10 +134,10 @@ echo '
|
|||
'.($insoluti ? tr('Sono presenti insoluti') : tr('Non sono presenti insoluti')).'
|
||||
</p>
|
||||
|
||||
<p style="margin:3px 0;"><i class="fa '.(count($interventi_programmati) == 0 ? 'fa-clock-o text-success' : 'fa-clock-o text-warning').'"></i> '.(count($interventi_programmati) == 0 ? tr('Non sono presenti altre attività programmate') : 'Sono presenti altre attività programmate');
|
||||
<p style="margin:3px 0;"><i class="fa '.(count($interventi_programmati) == 0 ? 'fa-clock-o text-success' : 'fa-clock-o text-warning').'"></i> '.(count($interventi_programmati) == 0 ? tr('Non sono presenti altre attività programmate') : 'Attività aperte:');
|
||||
if (count($interventi_programmati) != 0) {
|
||||
foreach ($interventi_programmati as $intervento_programmato) {
|
||||
echo ' <a class="btn btn-default btn-xs" href="'.base_path().'/editor.php?id_module='.Modules::get('Interventi')['id'].'&id_record='.$intervento_programmato->id.'" target="_blank">'.$intervento_programmato->codice.'</a>';
|
||||
echo ' <a class="btn btn-default btn-xs" href="'.base_path().'/editor.php?id_module='.Modules::get('Interventi')['id'].'&id_record='.$intervento_programmato->id.'" target="_blank">'.$intervento_programmato->codice.' ('.( new Carbon($intervento_programmato->data_richiesta))->diffForHumans().')</a>';
|
||||
}
|
||||
}
|
||||
echo '
|
||||
|
@ -145,23 +146,24 @@ echo '
|
|||
if ($contratto) {
|
||||
echo'
|
||||
<p style="margin:3px 0;"><i class="fa fa-book text-info"></i>
|
||||
'.tr('Contratto collegato').':</b> <a class="btn btn-default btn-xs" href="'.base_path().'/editor.php?id_module='.(new Module())->getByField('title', 'Contratti').'&id_record='.$contratto->id.'" target="_blank">'.$contratto->numero.'</a>';
|
||||
'.Modules::link('Contratti', $contratto->id, tr('Contratto num. _NUM_ del _DATA_', ['_NUM_' => $contratto->numero, '_DATA_' => Translator::dateToLocale($contratto->data_bozza)]));
|
||||
if ($ore_previste > 0) {
|
||||
echo '
|
||||
- '. tr('Ore erogate').':</b> '.$ore_erogate.'/'.$ore_previste.'<br>
|
||||
- '.$ore_erogate.'/'.$ore_previste.' '.tr('ore').'<br>
|
||||
|
||||
<div class="progress" style="margin:0; height:8px;">
|
||||
<div class="progress-bar progress-bar-'.$color.'" style="width:'.$perc_ore.'%"></div>
|
||||
</div>
|
||||
</p>';
|
||||
</div>';
|
||||
}
|
||||
echo'
|
||||
</p>';
|
||||
}
|
||||
|
||||
// Preventivo
|
||||
if ($preventivo) {
|
||||
echo '
|
||||
<p style="margin:3px 0;"><i class="fa fa-book text-info"></i>
|
||||
'.tr('Preventivo collegato').':</b> <a class="btn btn-default btn-xs" href="'.base_path().'/editor.php?id_module='.(new Module())->getByField('title', 'Preventivi').'&id_record='.$preventivo->id.'" target="_blank">'.$preventivo->numero.'</a>
|
||||
'.Modules::link('Preventivi', $preventivo->id, tr('Preventivo num. _NUM_ del _DATA_', ['_NUM_' => $preventivo->numero, '_DATA_' => Translator::dateToLocale($preventivo->data_bozza)])).'
|
||||
</p>';
|
||||
}
|
||||
|
||||
|
@ -169,7 +171,7 @@ if ($preventivo) {
|
|||
if($ordine) {
|
||||
echo '
|
||||
<p style="margin:3px 0;"><i class="fa fa-book text-info"></i>
|
||||
<b>'.tr('Ordine collegato').':</b> <a class="btn btn-default btn-xs" href="'.base_path().'/editor.php?id_module='.(new Module())->getByField('title', 'Ordini cliente').'&id_record='.$ordine->id.'" target="_blank">'.$ordine->numero.'</a>
|
||||
'.Modules::link('Ordini cliente', $ordine->id, tr('Ordine num. _NUM_ del _DATA_', ['_NUM_' => $ordine->numero, '_DATA_' => Translator::dateToLocale($ordine->data)])).'
|
||||
</p>';
|
||||
}
|
||||
echo'
|
||||
|
|
|
@ -48,7 +48,7 @@ switch ($resource) {
|
|||
$where[] = '`an_anagrafiche`.`idanagrafica`='.prepare($superselect['idanagrafica']);
|
||||
|
||||
$stato = !empty($superselect['stato']) ? $superselect['stato'] : 'is_fatturabile';
|
||||
$where[] = '`or_statiordine`.'.$stato.' = 1)';
|
||||
$where[] = '`or_statiordine`.'.$stato.' = 1';
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
use Models\PrintTemplate;
|
||||
use Models\Module;
|
||||
use Models\OperationLog;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
|
@ -73,7 +74,7 @@ switch (post('op')) {
|
|||
break;
|
||||
|
||||
case 'send-sollecito':
|
||||
$template = (new Template())->getByField('title', 'Sollecito di pagamento raggruppato per anagrafica', Models\Locale::getPredefined()->id);
|
||||
$template = Template::find((new Template())->getByField('title', 'Sollecito di pagamento raggruppato per anagrafica', Models\Locale::getPredefined()->id));
|
||||
|
||||
$list = [];
|
||||
$anagrafiche = [];
|
||||
|
|
|
@ -17,24 +17,24 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
$r = $dbo->fetchOne('SELECT `co_scadenziario`.*, `co_documenti`.*,
|
||||
`an_anagrafiche`.`email`,
|
||||
`an_anagrafiche`.`pec`,
|
||||
`an_anagrafiche`.`ragione_sociale`,
|
||||
`an_referenti`.`nome`,
|
||||
`co_scadenziario`.`da_pagare` - `co_scadenziario`.`pagato` AS totale,
|
||||
`pec`,
|
||||
`title` AS pagamento,
|
||||
(SELECT GROUP_CONCAT(CONCAT("<li>",DATE_FORMAT(`scadenza`,"%d/%m/%Y")," - ",FORMAT(`da_pagare`,2),"€ - ",`descrizione`,"</li>") SEPARATOR "<br>") FROM `co_scadenziario` LEFT JOIN (SELECT `id`, `ref_documento` FROM `co_documenti`)as nota ON `co_scadenziario`.`iddocumento` = `nota`.`ref_documento` WHERE `scadenza` < NOW() AND `iddocumento`!=0 AND `nota`.`id` IS NULL AND `da_pagare`>`pagato` AND `idanagrafica`=`co_documenti`.`idanagrafica` ORDER BY `scadenza`) AS scadenze_fatture_scadute
|
||||
FROM `co_scadenziario`
|
||||
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_scadenziario`.`iddocumento`
|
||||
LEFT JOIN `co_pagamenti` ON `co_pagamenti`.`id` = `co_documenti`.`idpagamento`
|
||||
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
|
||||
LEFT JOIN `em_accounts` ON `em_accounts`.`id` = '.prepare($template['id_account']).'
|
||||
INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `an_referenti` ON `an_referenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
WHERE
|
||||
`co_scadenziario`.`da_pagare` > `co_scadenziario`.`pagato` AND `co_scadenziario`.`iddocumento` = (SELECT `iddocumento` FROM `co_scadenziario` s WHERE `id`='.prepare($id_record).')');
|
||||
$r = $dbo->fetchOne('SELECT `co_scadenziario`.*,
|
||||
`co_documenti`.*,
|
||||
`an_anagrafiche`.`email`,
|
||||
`an_anagrafiche`.`pec`,
|
||||
`an_anagrafiche`.`ragione_sociale`,
|
||||
`an_referenti`.`nome`,
|
||||
`co_scadenziario`.`da_pagare` - `co_scadenziario`.`pagato` AS totale,
|
||||
`title` AS pagamento,
|
||||
(SELECT GROUP_CONCAT(CONCAT("<li>",DATE_FORMAT(`scadenza`,"%d/%m/%Y")," - ",FORMAT(`da_pagare`,2),"€ - ",`descrizione`,"</li>") SEPARATOR "<br>") FROM `co_scadenziario` LEFT JOIN (SELECT `id`, `ref_documento` FROM `co_documenti`)as nota ON `co_scadenziario`.`iddocumento` = `nota`.`ref_documento` WHERE `scadenza` < NOW() AND `iddocumento`!=0 AND `nota`.`id` IS NULL AND `da_pagare`>`pagato` AND `idanagrafica`=`co_documenti`.`idanagrafica` ORDER BY `scadenza`) AS scadenze_fatture_scadute
|
||||
FROM `co_scadenziario`
|
||||
INNER JOIN `co_documenti` ON `co_documenti`.`id` = `co_scadenziario`.`iddocumento`
|
||||
LEFT JOIN `co_pagamenti` ON `co_pagamenti`.`id` = `co_documenti`.`idpagamento`
|
||||
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti_lang`.`id_record` = `co_pagamenti`.`id` AND `co_pagamenti_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).')
|
||||
LEFT JOIN `em_accounts` ON `em_accounts`.`id` = '.prepare($template['id_account']).'
|
||||
INNER JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `an_referenti` ON `an_referenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
WHERE
|
||||
`co_scadenziario`.`da_pagare` > `co_scadenziario`.`pagato` AND `co_scadenziario`.`iddocumento` = (SELECT `iddocumento` FROM `co_scadenziario` s WHERE `id`='.prepare($id_record).')');
|
||||
|
||||
$logo_azienda = str_replace(base_dir(), base_path(), App::filepath('templates/base|custom|/logo_azienda.jpg'));
|
||||
|
||||
|
@ -46,7 +46,7 @@ return [
|
|||
'numero' => empty($r['numero_esterno']) ? $r['numero'] : $r['numero_esterno'],
|
||||
'note' => $r['note'],
|
||||
'pagamento' => $r['pagamento'],
|
||||
'totale' => Translator::numberToLocale(abs($r['totale'])),
|
||||
'totale' => $r['totale'] ? Translator::numberToLocale(abs($r['totale'])) : 0,
|
||||
'data_scadenza' => Translator::dateToLocale($r['scadenza']),
|
||||
'data' => Translator::dateToLocale($r['data']),
|
||||
'logo_azienda' => !empty($logo_azienda) ? '<img src="'.$logo_azienda.'" />' : '',
|
||||
|
|
|
@ -35,7 +35,7 @@ echo '
|
|||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Nome account').'", "name": "name", "value": "$title$", "required": 1 ]}
|
||||
{[ "type": "text", "label": "'.tr('Nome account').'", "name": "name", "value": "$name$", "required": 1 ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
|
|
|
@ -43,7 +43,6 @@ FROM
|
|||
`in_interventi`
|
||||
LEFT JOIN `an_anagrafiche` ON `in_interventi`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
|
||||
LEFT JOIN `in_interventi_tecnici` ON `in_interventi_tecnici`.`idintervento` = `in_interventi`.`id`
|
||||
LEFT JOIN `in_interventi_tecnici_assegnati` ON `in_interventi_tecnici_assegnati`.`id_intervento` = `in_interventi`.`id`
|
||||
LEFT JOIN (SELECT `idintervento`, SUM(`prezzo_unitario`*`qta`-`sconto`) AS `ricavo_righe`, SUM(`costo_unitario`*`qta`) AS `costo_righe` FROM `in_righe_interventi` GROUP BY `idintervento`) AS `righe` ON `righe`.`idintervento` = `in_interventi`.`id`
|
||||
INNER JOIN `in_statiintervento` ON `in_interventi`.`idstatointervento`=`in_statiintervento`.`id`
|
||||
LEFT JOIN `in_statiintervento_lang` ON (`in_statiintervento_lang`.`id_record` = `in_statiintervento`.`id` AND `in_statiintervento_lang`.|lang|)
|
||||
|
@ -60,8 +59,7 @@ FROM
|
|||
INNER JOIN `in_tipiintervento` ON `in_interventi`.`idtipointervento` = `in_tipiintervento`.`id`
|
||||
LEFT JOIN `in_tipiintervento_lang` ON (`in_tipiintervento_lang`.`id_record` = `in_tipiintervento`.`id` AND `in_tipiintervento_lang`.|lang|)
|
||||
LEFT JOIN (SELECT GROUP_CONCAT(' ', `zz_files`.`name`) as name, `zz_files`.`id_record` FROM `zz_files` INNER JOIN `zz_modules` ON `zz_files`.`id_module` = `zz_modules`.`id` LEFT JOIN `zz_modules_lang` ON (`zz_modules_lang`.`id_record` = `zz_modules`.`id` AND `zz_modules_lang`.|lang|) WHERE `zz_modules`.`name` = 'Interventi' GROUP BY id_record) AS files ON `files`.`id_record` = `in_interventi`.`id`
|
||||
LEFT JOIN `in_interventi_tags` ON `in_interventi_tags`.`id_intervento` = `in_interventi`.`id`
|
||||
LEFT JOIN (SELECT `in_interventi_tags`.`id_intervento`, GROUP_CONCAT( DISTINCT `name` SEPARATOR ', ') AS `nomi` FROM `in_tags` INNER JOIN `in_interventi_tags` ON `in_interventi_tags`.`id_tag` = `in_tags`.`id`) AS `tags` ON `in_interventi`.`id` = `tags`.`id_intervento`
|
||||
LEFT JOIN (SELECT `in_interventi_tags`.`id_intervento`, GROUP_CONCAT( DISTINCT `name` SEPARATOR ', ') AS `nomi` FROM `in_tags` INNER JOIN `in_interventi_tags` ON `in_interventi_tags`.`id_tag` = `in_tags`.`id` GROUP BY `in_interventi_tags`.`id_intervento`) AS `tags` ON `in_interventi`.`id` = `tags`.`id_intervento`
|
||||
WHERE
|
||||
1=1 |segment(`in_interventi`.`id_segment`)| |date_period(`orario_inizio`,`data_richiesta`)|
|
||||
GROUP BY
|
||||
|
@ -70,7 +68,7 @@ HAVING
|
|||
2=2
|
||||
ORDER BY
|
||||
IFNULL(`orario_fine`, `data_richiesta`) DESC" WHERE `zz_modules`.`name` = 'Interventi';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(`files`.`name` != '', `files`.`name`, 'No')' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'Allegati';
|
||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(`files`.`name` != \'\', `files`.`name`, \'No\')' WHERE `zz_modules`.`name` = 'Interventi' AND `zz_views`.`name` = 'Allegati';
|
||||
|
||||
-- Aggiunta colonna Tags in Attività
|
||||
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`) VALUES
|
||||
|
|
Loading…
Reference in New Issue