mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-23 14:57:46 +01:00
Aggiunto modulo per gestire le relazioni con i clienti
This commit is contained in:
parent
e72edaaea4
commit
520419fc5b
@ -295,6 +295,22 @@ switch ($resource) {
|
|||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
case 'relazioni':
|
||||||
|
|
||||||
|
$query = 'SELECT id, descrizione, colore AS _bgcolor_ FROM an_relazioni ORDER BY descrizione';
|
||||||
|
|
||||||
|
foreach ($elements as $element) {
|
||||||
|
$filter[] = 'id='.prepare($element);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($search)) {
|
||||||
|
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
case 'dichiarazioni_intento':
|
case 'dichiarazioni_intento':
|
||||||
$query = "SELECT id, CONCAT_WS(' - ', numero_protocollo, numero_progressivo) as descrizione FROM co_dichiarazioni_intento |where| ORDER BY data";
|
$query = "SELECT id, CONCAT_WS(' - ', numero_protocollo, numero_progressivo) as descrizione FROM co_dichiarazioni_intento |where| ORDER BY data";
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ echo '
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{[ "type": "select", "label": "'.tr('Relazione con il cliente').'", "name": "idrelazione", "values": "query=SELECT id, descrizione, colore AS _bgcolor_ FROM an_relazioni ORDER BY descrizione", "value": "$idrelazione$" ]}
|
{[ "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>
|
</div>
|
||||||
|
|
||||||
|
67
modules/relazioni_anagrafiche/actions.php
Normal file
67
modules/relazioni_anagrafiche/actions.php
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
switch (filter('op')) {
|
||||||
|
case 'update':
|
||||||
|
$descrizione = filter('descrizione');
|
||||||
|
$colore = filter('colore');
|
||||||
|
|
||||||
|
if (isset($descrizione)) {
|
||||||
|
if ($dbo->fetchNum('SELECT * FROM `an_relazioni` WHERE `descrizione`='.prepare($descrizione).' AND `id`!='.prepare($id_record)) == 0) {
|
||||||
|
$dbo->query('UPDATE `an_relazioni` SET `descrizione`='.prepare($descrizione).', `colore`='.prepare($colore).' WHERE `id`='.prepare($id_record));
|
||||||
|
flash()->info(tr('Salvataggio completato.'));
|
||||||
|
} else {
|
||||||
|
flash()->error(tr("E' già presente una relazione _NAME_.", [
|
||||||
|
'_TYPE_' => $descrizione,
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'add':
|
||||||
|
$descrizione = filter('descrizione');
|
||||||
|
$colore = filter('colore');
|
||||||
|
|
||||||
|
if (isset($descrizione)) {
|
||||||
|
if ($dbo->fetchNum('SELECT * FROM `an_relazioni` WHERE `descrizione`='.prepare($descrizione)) == 0) {
|
||||||
|
$dbo->query('INSERT INTO `an_relazioni` (`descrizione`, `colore` ) VALUES ('.prepare($descrizione).', '.prepare($colore).' )');
|
||||||
|
|
||||||
|
$id_record = $dbo->lastInsertedID();
|
||||||
|
|
||||||
|
if (isAjaxRequest()) {
|
||||||
|
echo json_encode(['id' => $id_record, 'text' => $descrizione]);
|
||||||
|
}
|
||||||
|
|
||||||
|
flash()->info(tr('Aggiunta nuova relazione _NAME_', [
|
||||||
|
'_NAME_' => $descrizione,
|
||||||
|
]));
|
||||||
|
} else {
|
||||||
|
flash()->error(tr("E' già presente una relazione di _NAME_.", [
|
||||||
|
'_NAME_' => $descrizione,
|
||||||
|
]));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'delete':
|
||||||
|
|
||||||
|
$righe = $dbo->fetchNum('SELECT idanagrafica FROM an_anagrafiche WHERE idrelazione='.prepare($id_record));
|
||||||
|
|
||||||
|
if (isset($id_record) && empty($righe)) {
|
||||||
|
$dbo->query('DELETE FROM `an_relazioni` WHERE `id`='.prepare($id_record));
|
||||||
|
flash()->info(tr('Relazione _NAME_ eliminata con successo!', [
|
||||||
|
'_NAME_' => $descrizione,
|
||||||
|
]));
|
||||||
|
} else {
|
||||||
|
flash()->error(tr('Sono presenti '.count($righe).' anagrafiche collegate a questa relazione.'));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
34
modules/relazioni_anagrafiche/add.php
Normal file
34
modules/relazioni_anagrafiche/add.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
?><form action="" method="post" id="add-form">
|
||||||
|
<input type="hidden" name="op" value="add">
|
||||||
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-9">
|
||||||
|
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1 ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "required": 1, "class": "colorpicker text-center", "value": "", "extra": "maxlength='7'", "icon-after": "<div class='img-circle square'></div>" ]}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- PULSANTI -->
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12 text-right">
|
||||||
|
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready( function(){
|
||||||
|
$('.colorpicker').colorpicker().on('changeColor', function(){
|
||||||
|
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
|
||||||
|
});
|
||||||
|
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
|
||||||
|
});
|
||||||
|
</script>
|
60
modules/relazioni_anagrafiche/edit.php
Normal file
60
modules/relazioni_anagrafiche/edit.php
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
?><form action="" method="post" id="edit-form">
|
||||||
|
<input type="hidden" name="backto" value="record-edit">
|
||||||
|
<input type="hidden" name="op" value="update">
|
||||||
|
|
||||||
|
<!-- DATI -->
|
||||||
|
<div class="panel panel-primary">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title"><?php echo tr('Dati'); ?></h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-9">
|
||||||
|
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "required": 1, "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength='7'", "icon-after": "<div class='img-circle square'></div>" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$righe = $dbo->fetchNum('SELECT idanagrafica FROM an_anagrafiche WHERE idrelazione='.prepare($id_record));
|
||||||
|
|
||||||
|
if (!empty($righe)) {
|
||||||
|
echo '
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
'.tr('Ci sono _NUM_ anagrafiche collegate', [
|
||||||
|
'_NUM_' => count($righe),
|
||||||
|
]).'.
|
||||||
|
</div>';
|
||||||
|
}else{
|
||||||
|
?>
|
||||||
|
|
||||||
|
<a class="btn btn-danger ask" data-backto="record-list">
|
||||||
|
<i class="fa fa-trash"></i> <?php echo tr('Elimina'); ?>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready( function(){
|
||||||
|
$('.colorpicker').colorpicker().on('changeColor', function(){
|
||||||
|
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
|
||||||
|
});
|
||||||
|
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
|
||||||
|
});
|
||||||
|
</script>
|
7
modules/relazioni_anagrafiche/init.php
Normal file
7
modules/relazioni_anagrafiche/init.php
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
include_once __DIR__.'/../../core.php';
|
||||||
|
|
||||||
|
if (isset($id_record)) {
|
||||||
|
$record = $dbo->fetchOne('SELECT * FROM `an_relazioni` WHERE id='.prepare($id_record));
|
||||||
|
}
|
@ -124,3 +124,14 @@ INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`,
|
|||||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Stato email'), 'Modulo', '(SELECT zz_modules.title FROM zz_modules WHERE zz_modules.id = em_templates.id_module)', 3, 1, 0, 1, 1, 0),
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Stato email'), 'Modulo', '(SELECT zz_modules.title FROM zz_modules WHERE zz_modules.id = em_templates.id_module)', 3, 1, 0, 1, 1, 0),
|
||||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Stato email'), 'Destinatari', '(SELECT GROUP_CONCAT(address SEPARATOR "<br>") FROM em_email_receiver WHERE em_email_receiver.id_email = em_emails.id)', 1, 1, 0, 1, 1, 0);
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Stato email'), 'Destinatari', '(SELECT GROUP_CONCAT(address SEPARATOR "<br>") FROM em_email_receiver WHERE em_email_receiver.id_email = em_emails.id)', 1, 1, 0, 1, 1, 0);
|
||||||
|
|
||||||
|
-- Modulo Relazioni
|
||||||
|
INSERT INTO `zz_modules` (`id`, `name`, `title`, `directory`, `options`, `options2`, `icon`, `version`, `compatibility`, `order`, `parent`, `default`, `enabled`) VALUES (NULL, 'Relazioni', 'Relazioni', 'relazioni_anagrafiche', 'SELECT |select|
|
||||||
|
FROM `an_relazioni`
|
||||||
|
WHERE 1=1
|
||||||
|
HAVING 2=2
|
||||||
|
ORDER BY `an_relazioni`.`created_at` DESC', '', 'fa fa-angle-right ', '2.4.13', '2.*', '1', (SELECT `id` FROM `zz_modules` t WHERE t.`name` = 'Anagrafiche'), '1', '1');
|
||||||
|
|
||||||
|
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `default`, `visible`, `format`) VALUES
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Relazioni'), 'id', 'an_relazioni.id', 1, 0, 0, 1, 0, 0),
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Relazioni'), 'Descrizione', 'an_relazioni.descrizione', 2, 1, 0, 1, 1, 0),
|
||||||
|
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Relazioni'), 'Colore', 'an_relazioni.colore', 3, 1, 0, 1, 1, 0);
|
Loading…
x
Reference in New Issue
Block a user