Formattazione codice

This commit is contained in:
Pek5892 2024-01-15 15:30:45 +01:00
parent 453b3603cc
commit b3c6cb7110
346 changed files with 2889 additions and 3287 deletions

View File

@ -54,7 +54,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
// Gestione delle operazioni
else {
//UPLOAD PER CKEDITOR
// UPLOAD PER CKEDITOR
if (filter('op') == 'aggiungi-allegato' && !empty($_FILES) && !empty($_FILES['upload']['name'])) {
$CKEditor = get('CKEditor');
$funcNum = get('CKEditorFuncNum');
@ -63,8 +63,8 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
'png', 'jpg', 'jpeg',
];
//Maximum file limit (unit: byte)
$max_size = '2097152'; //2MB
// Maximum file limit (unit: byte)
$max_size = '2097152'; // 2MB
// Get image file extension
$file_extension = pathinfo($_FILES['upload']['name'], PATHINFO_EXTENSION);
@ -86,7 +86,7 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
// Creazione file fisico
if (!empty($upload)) {
//flash()->info(tr('File caricato correttamente!'));
// flash()->info(tr('File caricato correttamente!'));
$id_allegato = $dbo->lastInsertedID();
$upload = Upload::find($id_allegato);
@ -113,15 +113,15 @@ if (filter('op') == 'aggiungi-allegato' || filter('op') == 'rimuovi-allegato') {
echo json_encode($response);
}
} else {
//flash()->error(tr('Errore durante il caricamento del file!'));
// flash()->error(tr('Errore durante il caricamento del file!'));
echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Errore durante il caricamento del file!').'"); </script>';
}
} else {
//flash()->error(tr('Estensione non permessa!'));
// flash()->error(tr('Estensione non permessa!'));
echo '<script type="text/javascript"> window.parent.toastr.error("'.tr('Estensione non permessa').'"); </script>';
}
exit();
exit;
}
// UPLOAD
@ -359,7 +359,7 @@ elseif (filter('op') == 'ordina-checks') {
elseif (post('op') == 'send-email') {
$template = Template::find(post('template'));
$mail = \Modules\Emails\Mail::build($user, $template, $id_record);
$mail = Modules\Emails\Mail::build($user, $template, $id_record);
// Rimozione allegati predefiniti
$mail->resetPrints();

View File

@ -52,7 +52,7 @@ switch (filter('op')) {
break;
// Imposta un valore ad una sessione
// Imposta un valore ad una sessione
case 'session_set':
$array = explode(',', get('session'));
$value = get('value', true);

View File

@ -31,7 +31,7 @@ if (!empty(filter('order'))) {
}
array_shift($columns);
$total = Util\Query::readQuery($structure);
$total = Query::readQuery($structure);
// Ricerca
$search = [];
@ -74,7 +74,7 @@ if (!empty($query)) {
$results['recordsFiltered'] = $data['count'];
// SOMME
$results['summable'] = Util\Query::getSums($structure, $search);
$results['summable'] = Query::getSums($structure, $search);
// Allineamento delle righe
$align = [];

View File

@ -43,7 +43,7 @@ try {
} catch (Exception $e) {
// Log dell'errore
$logger = logger();
$logger->addRecord(\Monolog\Logger::ERROR, $e);
$logger->addRecord(Monolog\Logger::ERROR, $e);
$response = Response::error('serverError');
}

View File

@ -22,9 +22,9 @@ $db_host = '|host|';
$db_username = '|username|';
$db_password = '|password|';
$db_name = '|database|';
//$port = '|port|';
// $port = '|port|';
$db_options = [
//'sort_buffer_size' => '2M',
// 'sort_buffer_size' => '2M',
];
// Percorso della cartella di backup

View File

@ -30,7 +30,7 @@ if (version_compare(phpversion(), $minimum) < 0) {
<p>Stai utilizzando la versione PHP '.phpversion().', non compatibile con OpenSTAManager.</p>
<p>Aggiorna PHP alla versione >= '.$minimum.'.</p>';
exit();
exit;
}
// Caricamento delle impostazioni personalizzabili
@ -69,7 +69,7 @@ $config = App::getConfig();
if (!empty($config['redirectHTTPS']) && !isHTTPS(true)) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
exit();
exit;
}
/* GESTIONE DEGLI ERRORI */
@ -181,7 +181,7 @@ if (!$continue && getURLPath() != slashes(base_path().'/index.php') && !Permissi
}
redirect(base_path().'/index.php');
exit();
exit;
}
/* INIZIALIZZAZIONE GENERALE */

View File

@ -34,7 +34,7 @@ WHERE mg_articoli.id = '.prepare($result['idarticolo']));
$qta_minima = $articolo['qta_minima'];
echo '
echo '
{[ "type": "select", "disabled":"1", "label": "'.tr('Articolo').'", "name": "idarticolo", "value": "'.$result['idarticolo'].'", "ajax-source": "articoli", "select-options": '.json_encode($options['select-options']['articoli']).' ]}
<script>
@ -382,7 +382,7 @@ function verificaPrezzoArticolo() {
let table = $(".table-prezzi");
if (prezzo_anagrafica) {
table.append(`<tr><td class="pr_anagrafica"><small>'.($options['dir'] == 'uscita' ? tr('Prezzo listino') : tr('Netto cliente')).': '.Plugins::link(($options['dir'] == 'uscita' ? 'Listino Fornitori' : 'Netto Clienti'), $result['idarticolo'], tr('Visualizza'), null, '').'</small></td><td align="right" class="pr_anagrafica"><small>` + prezzo_anagrafica.toLocale() + ` ` + globals.currency + `</small></td>`);
table.append(`<tr><td class="pr_anagrafica"><small>'.($options['dir'] == 'uscita' ? tr('Prezzo listino') : tr('Netto cliente')).': '.Plugins::link($options['dir'] == 'uscita' ? 'Listino Fornitori' : 'Netto Clienti', $result['idarticolo'], tr('Visualizza'), null, '').'</small></td><td align="right" class="pr_anagrafica"><small>` + prezzo_anagrafica.toLocale() + ` ` + globals.currency + `</small></td>`);
let tr = $(".pr_anagrafica").parent();
if (prezzo_unitario == prezzo_anagrafica.toFixed(2)) {

View File

@ -48,25 +48,25 @@ $calcolo_ritenuta_acconto = $calcolo_ritenuta_acconto ?: setting("Metodologia ca
echo '
<div class="row">';
// Cassa previdenziale
echo '
// Cassa previdenziale
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr('Cassa previdenziale').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_rivalse", "help": "'.(($options['dir'] == 'entrata') ? setting('Tipo Cassa Previdenziale') : null).'" ]}
</div>';
// Ritenuta d'acconto
echo '
// Ritenuta d'acconto
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "id_ritenuta_acconto", "value": "'.$id_ritenuta_acconto.'", "values": "query=SELECT * FROM co_ritenutaacconto" ]}
</div>';
// Calcola ritenuta d'acconto su
echo '
// Calcola ritenuta d'acconto su
echo '
<div class="col-md-4">
{[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenuta_acconto", "value": "'.$calcolo_ritenuta_acconto.'", "values": "list=\"IMP\":\"Imponibile\", \"IMP+RIV\":\"Imponibile + rivalsa\""]}
</div>';
echo '
echo '
</div>';
if (!empty($options['show-ritenuta-contributi']) || empty($options['hide_conto'])) {

View File

@ -73,8 +73,8 @@ if (post('db_host') !== null) {
$privileges = current($result);
if (
string_contains($privileges, ' ON `'.$db_name.'`.*') ||
string_contains($privileges, ' ON *.*')
string_contains($privileges, ' ON `'.$db_name.'`.*')
|| string_contains($privileges, ' ON *.*')
) {
$pieces = explode(', ', explode(' ON ', str_replace('GRANT ', '', $privileges))[0]);
@ -110,7 +110,7 @@ if (post('db_host') !== null) {
}
echo $state;
exit();
exit;
}
// Creazione della configurazione
@ -182,7 +182,7 @@ if (post('db_host') !== null) {
// Creazione manifest.json
include_once App::filepath('include/init', 'manifest.php');
redirect(base_path().'/index.php');
exit();
exit;
}
}
}
@ -587,4 +587,4 @@ if (empty($creation) && (!file_exists('config.inc.php') || !$valid_config)) {
include_once App::filepath('include|custom|', 'bottom.php');
exit();
exit;

View File

@ -116,7 +116,7 @@ if (post('action') == 'init') {
}
redirect(base_path(), 'js');
exit();
exit;
}
$img = App::getPaths()['img'];
@ -263,4 +263,4 @@ echo '
include_once App::filepath('include|custom|', 'bottom.php');
exit();
exit;

View File

@ -43,5 +43,5 @@ if ($config['maintenance_ip'] != $_SERVER['REMOTE_ADDR']) {
include_once App::filepath('include|custom|', 'bottom.php');
exit();
exit;
}

View File

@ -47,7 +47,7 @@ foreach ($modules as $name => $values) {
];
}
//PHP
// PHP
$settings = [
'php_version' => [
'type' => 'version',
@ -101,10 +101,10 @@ $settings = [
'description' => tr('Permette la creazione dell\'immagine della firma per il rapportino d\'intervento (facoltativo)'),
],
//'display_errors' => [
// 'display_errors' => [
// 'type' => 'value',
// 'description' => true,
//],
// ],
'allow_url_fopen' => [
'type' => 'value',
@ -233,7 +233,7 @@ foreach ($db as $name => $values) {
} else {
$type = tr('Impostazione');
//Vedo se riesco a recuperare l'impostazione dalle variabili di sessione o globali di mysql
// Vedo se riesco a recuperare l'impostazione dalle variabili di sessione o globali di mysql
$rs_session_variabile = $dbo->fetchArray('SHOW SESSION VARIABLES LIKE '.prepare($name));
$rs_global_variabile = $dbo->fetchArray('SHOW GLOBAL VARIABLES LIKE '.prepare($name));
@ -263,7 +263,7 @@ foreach ($db as $name => $values) {
$description = tr('Valore consigliato: _VALUE_ (Valore attuale: _INC_)', [
'_VALUE_' => $description,
'_INC_' => \Util\FileSystem::formatBytes($inc),
'_INC_' => Util\FileSystem::formatBytes($inc),
]);
}
@ -364,7 +364,7 @@ foreach ($config_to_check as $name => $values) {
]);
}
$status = ($values['operator']((!empty($values['section']) ? ${$values['section']}[$name] : $$name), $values['value_to_check']) ? 1 : 0);
$status = ($values['operator'](!empty($values['section']) ? ${$values['section']}[$name] : $$name, $values['value_to_check']) ? 1 : 0);
$config[] = [
'name' => $name,

View File

@ -109,7 +109,7 @@ if (filter('action') == 'do_update') {
</a>';
}
exit();
exit;
} elseif (Update::isUpdateAvailable()) {
// Controllo se l'aggiornamento è in esecuzione
if (Update::isUpdateLocked() && filter('force') === null) {
@ -131,7 +131,7 @@ if (filter('action') == 'do_update') {
include_once App::filepath('include|custom|', 'bottom.php');
exit();
exit;
}
$firstuse = !$dbo->isInstalled() ? 'true' : 'false';

View File

@ -29,23 +29,23 @@ echo '
<input type="hidden" name="op" value="modifica-allegato">
<div class="row">';
if (sizeof($id_allegati) == 1) {
$allegato = Upload::find($id_allegati[0]);
echo '
if (sizeof($id_allegati) == 1) {
$allegato = Upload::find($id_allegati[0]);
echo '
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome_allegato", "value": "'.$allegato->name.'" ]}
</div>
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Categoria').'", "name": "categoria_allegato", "value": "'.$allegato->category.'", "disabled": "'.intval(in_array($allegato->category, ['Fattura Elettronica'])).'" ]}
</div>';
} else {
$allegato = Upload::find($id_allegati[0]);
echo '
} else {
$allegato = Upload::find($id_allegati[0]);
echo '
<div class="col-md-6">
{[ "type": "text", "label": "'.tr('Categoria').'", "name": "categoria_allegato", "value": "" ]}
</div>';
}
echo '
}
echo '
</div>
<!-- PULSANTI -->

View File

@ -42,14 +42,14 @@ echo '
<tbody>';
$righe = $documento->getRighe();
foreach ($righe as $riga) {
$riga_class = get_class($riga);
$righe = $documento->getRighe();
foreach ($righe as $riga) {
$riga_class = get_class($riga);
$riferimento_locale = $riga_class.'|'.$riga->id;
$presente = in_array($riferimento_locale, $riferimenti);
$riferimento_locale = $riga_class.'|'.$riga->id;
$presente = in_array($riferimento_locale, $riferimenti);
echo '
echo '
<tr data-id="'.$riga->id.'" data-type="'.$riga_class.'">
<td>'.$riga->descrizione.'</td>
<td>'.numberFormat($riga->qta_rimanente, 'qta').' / '.numberFormat($riga->qta, 'qta').'</td>
@ -59,8 +59,8 @@ echo '
</button>
</td>
</tr>';
}
}
echo '
echo '
</tbody>
</table>';

View File

@ -204,7 +204,7 @@ if (Auth::check()) {
search: search,
translations: translations,
locale: "'.(explode('_', $lang)[0]).'",
locale: "'.explode('_', $lang)[0].'",
full_locale: "'.$lang.'",
start_date: "'.$_SESSION['period_start'].'",
@ -274,7 +274,7 @@ if (Auth::check()) {
date_format: "'.formatter()->getDatePattern().'",
time_format: "'.formatter()->getTimePattern().'",
locale: "'.(explode('_', $lang)[0]).'",
locale: "'.explode('_', $lang)[0].'",
full_locale: "'.$lang.'",
};
</script>';
@ -518,7 +518,7 @@ if (Auth::check()) {
if (!empty($id_record)) {
$plugins = $dbo->fetchArray('SELECT id, title, options, options2 FROM zz_plugins WHERE idmodule_to='.prepare($id_module)." AND position='tab' AND enabled = 1 ORDER BY zz_plugins.order DESC");
foreach ($plugins as $plugin) {
//Badge count per record plugin
// Badge count per record plugin
$count = 0;
$opt = '';
if (!empty($plugin['options2'])) {
@ -565,7 +565,7 @@ if (Auth::check()) {
<a class="bg-info" data-toggle="tab" href="#tab_checks" id="link-tab_checks">
'.tr('Checklist').'
'.(($checklists_total->count() > 0) ?
'<span class="badge pull-right">'.$checklists_unchecked->count().tr(' / ').($checklists_total->count()).'</span>' : '').'
'<span class="badge pull-right">'.$checklists_unchecked->count().tr(' / ').$checklists_total->count().'</span>' : '').'
</a>
</li>';
}

View File

@ -45,15 +45,15 @@ switch ($op) {
$_SESSION['period_end'] = date('Y').'-12-31';
}
// Rimozione log vecchi
//$dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()');
// Rimozione log vecchi
// $dbo->query('DELETE FROM `zz_operations` WHERE DATE_ADD(`created_at`, INTERVAL 30*24*60*60 SECOND) <= NOW()');
} else {
$status = auth()->getCurrentStatus();
flash()->error(Auth::getStatus()[$status]['message']);
redirect(base_path().'/index.php');
exit();
exit;
}
break;
@ -62,7 +62,7 @@ switch ($op) {
Auth::logout();
redirect(base_path().'/index.php');
exit();
exit;
}
if (Auth::check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled()) {
@ -73,7 +73,7 @@ if (Auth::check() && isset($dbo) && $dbo->isConnected() && $dbo->isInstalled())
} else {
redirect(base_path().'/index.php?op=logout');
}
exit();
exit;
}
// Modalità manutenzione

View File

@ -95,12 +95,6 @@ function calcola_sconto($data)
/**
* Individua il valore della colonna order per i nuovi elementi di una tabella.
*
* @param $table
* @param $field
* @param $id
*
* @return mixed
*/
function orderValue($table, $field, $id)
{
@ -109,10 +103,6 @@ function orderValue($table, $field, $id)
/**
* Ricalcola il riordinamento righe di una tabella.
*
* @param $table
*
* @return mixed
*/
function reorderRows($table, $field, $id)
{
@ -172,14 +162,13 @@ function provvigioneInfo(Accounting $riga, $mostra_provigione = true)
/**
* Genera i riferimenti ai documenti del gestionale, attraverso l'interfaccia Common\ReferenceInterface.
*
* @param $document
* @param string $text Formato "Contenuto descrittivo _DOCUMENT_"
*
* @return string
*/
function reference($document, $text = null)
{
if (!empty($document) && !($document instanceof \Common\ReferenceInterface)) {
if (!empty($document) && !($document instanceof Common\ReferenceInterface)) {
return null;
}
@ -208,8 +197,6 @@ function reference($document, $text = null)
* Funzione che gestisce il parsing di uno sconto combinato e la relativa trasformazione in sconto fisso.
* Esempio: (40 + 10) % = 44 %.
*
* @param $combinato
*
* @return float|int
*/
function parseScontoCombinato($combinato)
@ -234,8 +221,6 @@ function parseScontoCombinato($combinato)
/**
* Visualizza le informazioni del segmento.
*
* @param $id_module
*
* @return float|int
*/
function getSegmentPredefined($id_module)
@ -248,11 +233,6 @@ function getSegmentPredefined($id_module)
/**
* Funzione che visualizza i prezzi degli articoli nei listini.
*
* @param $id_anagrafica
* @param $direzione
* @param $id_articolo
* @param $riga
*
* @return array
*/
function getPrezzoConsigliato($id_anagrafica, $direzione, $id_articolo, $riga = null)

View File

@ -40,13 +40,9 @@ function get_next_code($str, $qty = 1, $mask = '')
* Se descrizione = 1 e il tipo è 'query=' mi restituisce il valore del campo descrizione della query.
*
* @deprecated 2.4.2
*
* @param string $name
* @param string $sezione
* @param string $descrizione
*
* @return mixed
*/
function get_var($nome, $sezione = null, $descrizione = false, $again = false)
{
@ -163,7 +159,7 @@ function datediff($interval, $datefrom, $dateto, $using_timestamps = false)
break;
case 'm': // Number of full months
$months_difference = floor($difference / 2678400);
while (mktime(date('H', $datefrom), date('i', $datefrom), date('s', $datefrom), date('n', $datefrom) + ($months_difference), date('j', $dateto), date('Y', $datefrom)) < $dateto) {
while (mktime(date('H', $datefrom), date('i', $datefrom), date('s', $datefrom), date('n', $datefrom) + $months_difference, date('j', $dateto), date('Y', $datefrom)) < $dateto) {
++$months_difference;
}
--$months_difference;
@ -207,12 +203,6 @@ function datediff($interval, $datefrom, $dateto, $using_timestamps = false)
}
/**
* @param $field
* @param $id_riga
* @param $old_qta
* @param $new_qta
* @param $dir
*
* @throws Exception
*
* @return bool
@ -274,8 +264,6 @@ function seriali_non_rimuovibili($field, $id_riga, $dir)
/**
* Restistuisce le informazioni sull'eventuale riferimento ai documenti.
*
* @param $info
* @param $dir
* @param array $ignore
*
* @deprecated

View File

@ -54,8 +54,6 @@ function redirect($url, $type = 'php')
* Verifica e corregge il nome di un file.
*
* @param string $filename
*
* @return mixed
*/
function sanitizeFilename($filename)
{
@ -96,14 +94,13 @@ function delete($files)
*/
function directory($path)
{
return Util\FileSystem::directory($path);
return FileSystem::directory($path);
}
/**
* Copy a file, or recursively copy a folder and its contents.
*
* @param array|string $source Source path
* @param string $dest Destination path
* @param array|string $ignores Paths to ingore
*
* @return bool Returns TRUE on success, FALSE on failure
@ -271,7 +268,7 @@ function translateTemplate()
// Annullo le notifiche (AJAX)
if (isAjaxRequest()) {
//flash()->clearMessage('info');
// flash()->clearMessage('info');
}
echo $template;
@ -300,7 +297,7 @@ function slashes($string)
*/
function isAjaxRequest()
{
return \Whoops\Util\Misc::isAjaxRequest() && filter('ajax') !== null;
return Whoops\Util\Misc::isAjaxRequest() && filter('ajax') !== null;
}
/**
@ -327,7 +324,7 @@ function redirectOperation($id_module, $id_record)
redirect(base_path().'/controller.php?id_module='.$id_module.$hash);
}
exit();
exit;
}
}

View File

@ -27,11 +27,11 @@ use HTMLBuilder\HTMLBuilder;
/**
* Restituisce l'oggetto dedicato alla gestione della connessione con il database.
*
* @return \Database
* @return Database
*/
function database()
{
return \Database::getConnection();
return Database::getConnection();
}
/**
@ -41,8 +41,6 @@ function database()
* @param string $parameter
*
* @since 2.3
*
* @return mixed
*/
function prepare($parameter)
{
@ -62,7 +60,7 @@ function prepare($parameter)
*/
function filter($param, $method = null, $raw = false)
{
return \Filter::getValue($param, $method, $raw);
return Filter::getValue($param, $method, $raw);
}
/**
@ -77,7 +75,7 @@ function filter($param, $method = null, $raw = false)
*/
function post($param, $raw = false)
{
return \Filter::getValue($param, 'post', $raw);
return Filter::getValue($param, 'post', $raw);
}
/**
@ -92,7 +90,7 @@ function post($param, $raw = false)
*/
function get($param, $raw = false)
{
return \Filter::getValue($param, 'get', $raw);
return Filter::getValue($param, 'get', $raw);
}
/**
@ -107,7 +105,7 @@ function get($param, $raw = false)
*/
function setting($name, $again = false)
{
return \Settings::getValue($name);
return Settings::getValue($name);
}
/**
@ -115,7 +113,7 @@ function setting($name, $again = false)
*
* @since 2.4.2
*
* @return \Util\Messages
* @return Util\Messages
*/
function flash()
{
@ -127,11 +125,11 @@ function flash()
*
* @since 2.4.2
*
* @return \Auth
* @return Auth
*/
function auth()
{
return \Auth::getInstance();
return Auth::getInstance();
}
/**
@ -139,11 +137,11 @@ function auth()
*
* @since 2.4.2
*
* @return \Translator
* @return Translator
*/
function trans()
{
return \Translator::getInstance();
return Translator::getInstance();
}
/**
@ -151,11 +149,11 @@ function trans()
*
* @since 2.4.2
*
* @return \Intl\Formatter
* @return Intl\Formatter
*/
function formatter()
{
return \Translator::getFormatter();
return Translator::getFormatter();
}
/**
@ -171,7 +169,7 @@ function formatter()
*/
function tr($string, $parameters = [], $operations = [])
{
return \Translator::translate($string, $parameters, $operations);
return Translator::translate($string, $parameters, $operations);
}
// Retrocompatibilità (con la funzione gettext)
@ -187,7 +185,7 @@ if (!function_exists('_')) {
*
* @since 2.4.2
*
* @return \Monolog\Logger
* @return Monolog\Logger
*/
function logger()
{
@ -213,7 +211,8 @@ function numberFormat($number, $decimals = null)
* Restituisce il timestamp indicato formattato secondo la configurazione del sistema.
*
* @param string $timestamp
+ *
* + *
*
* @return string
*
* @since 2.4.8
@ -260,14 +259,12 @@ function timeFormat($time)
*/
function currency()
{
return \Translator::getCurrency();
return Translator::getCurrency();
}
/**
* Restituisce il numero indicato formattato come una valuta secondo la configurazione del sistema.
*
* @param string $time
*
* @return string
*
* @since 2.4.9

View File

@ -48,8 +48,6 @@ if (!function_exists('array_clean')) {
/**
* Pulisce i contenuti vuoti di un array.
*
* @param $array
*
* @since 2.3.2
*
* @return array
@ -68,8 +66,6 @@ if (!function_exists('array_deep_clean')) {
/**
* Pulisce i contenuti vuoti di un array.
*
* @param $array
*
* @since 2.4.11
*
* @return array
@ -111,7 +107,7 @@ if (!function_exists('string_starts_with')) {
*/
function string_starts_with($string, $starts_with)
{
//return strpos($string, $string_starts_with) === 0;
// return strpos($string, $string_starts_with) === 0;
return S::create($string)->startsWith($starts_with);
}
}
@ -127,7 +123,7 @@ if (!function_exists('string_ends_with')) {
*/
function string_ends_with($string, $ends_with)
{
//return substr($string, -strlen($string_ends_with)) === $string_ends_with;
// return substr($string, -strlen($string_ends_with)) === $string_ends_with;
return S::create($string)->endsWith($ends_with);
}
}
@ -143,7 +139,7 @@ if (!function_exists('string_contains')) {
*/
function string_contains($string, $contains)
{
//return strpos($string, $contains) !== false;
// return strpos($string, $contains) !== false;
return S::create($string)->contains($contains);
}
}
@ -240,7 +236,7 @@ if (!function_exists('random_string')) {
// Don't allow duplicate letters to be disabled if the length is
// longer than the available characters
if ($no_duplicate_chars && strlen($pool) < $length) {
throw new \LengthException('$length exceeds the size of the pool and $no_duplicate_chars is enabled');
throw new LengthException('$length exceeds the size of the pool and $no_duplicate_chars is enabled');
}
// Convert the pool of characters into an array of characters and
@ -286,7 +282,7 @@ if (!function_exists('secure_random_string')) {
$bytes = openssl_random_pseudo_bytes($length * 2);
if ($bytes === false) {
throw new \LengthException('$length is not accurate, unable to generate random string');
throw new LengthException('$length is not accurate, unable to generate random string');
}
return substr(str_replace(['/', '+', '='], '', base64_encode($bytes)), 0, $length);
@ -304,9 +300,6 @@ if (!function_exists('download')) {
*
* @param string $filename The name of the filename to display to
* browsers
* @param string $content The content to output for the download.
* If you don't specify this, just the
* headers will be sent
*
* @since 2.3
*
@ -427,7 +420,7 @@ if (!function_exists('color_darken')) {
}
$rgb = '';
for ($x = 0; $x < 3; ++$x) {
$c = hexdec(substr($color, (2 * $x), 2)) - $dif;
$c = hexdec(substr($color, 2 * $x, 2)) - $dif;
$c = ($c < 0) ? 0 : dechex($c);
$rgb .= (strlen($c) < 2) ? '0'.$c : $c;
}
@ -448,7 +441,7 @@ if (!function_exists('color_inverse')) {
*/
function color_inverse($start_colour)
{
if (preg_match('/^#[a-f0-9]{6}$/i', $start_colour)) { //hex color is valid
if (preg_match('/^#[a-f0-9]{6}$/i', $start_colour)) { // hex color is valid
$R1 = hexdec(substr($start_colour, 1, 2));
$G1 = hexdec(substr($start_colour, 3, 2));
$B1 = hexdec(substr($start_colour, 5, 2));
@ -543,9 +536,6 @@ if (!function_exists('temp_file')) {
/**
* Crea un file temporaneo e lo imposta per la rimozione alla fine dell'esecuzione.
*
* @param $name
* @param $content
*
* @return string
*/
function temp_file($name = null, $content = null)

View File

@ -112,21 +112,21 @@ echo '
<b>'.tr('Destinatari').' <span class="tip" title="'.tr('Email delle sedi, dei referenti o agente collegato all\'anagrafica.').'"><i class="fa fa-question-circle-o"></i></span></b>
<div class="row" id="lista-destinatari">';
$idx = 0;
$idx = 0;
foreach ($emails as $email) {
echo '
foreach ($emails as $email) {
echo '
<div class="col-md-12">
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
</div>';
}
}
if (empty($emails)) {
echo '
if (empty($emails)) {
echo '
<div class="col-md-12">
{[ "type": "email", "name": "destinatari['.$idx++.']", "value": "", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 0 ]}
</div>';
}
}
echo '
</div>
@ -171,16 +171,16 @@ echo '
<div class="row">
<div class="col-md-12">';
echo input([
'type' => 'ckeditor',
'use_full_ckeditor' => 1,
'label' => tr('Contenuto'),
'name' => 'body',
'id' => 'body_'.rand(0, 999),
'value' => $body,
]);
echo input([
'type' => 'ckeditor',
'use_full_ckeditor' => 1,
'label' => tr('Contenuto'),
'name' => 'body',
'id' => 'body_'.rand(0, 999),
'value' => $body,
]);
echo '
echo '
</div>
</div>';

View File

@ -191,10 +191,10 @@ if (!empty($results) || !empty($results_settings)) {
echo '
</tbody>
</table>';
}
}
}
if (!empty($results_settings)) {
echo'
echo '
<table class="table table-bordered">
<thead>
<h3>Impostazioni mancanti</h3>
@ -205,7 +205,7 @@ if (!empty($results) || !empty($results_settings)) {
</thead>
<tbody>';
foreach ($results_settings as $key => $setting) {
echo'
echo '
<tr>
<td>
'.$key.'
@ -215,13 +215,13 @@ if (!empty($results) || !empty($results_settings)) {
</td>
</tr>';
}
echo '
echo '
</tbody>
</table>';
}
} else{
echo '
} else {
echo '
<div class="alert alert-info">
<i class="fa fa-info-circle"></i> '.tr('Il database non presenta problemi di integrità').'.
</div>';
}
}

View File

@ -76,7 +76,7 @@ if (function_exists('customComponents')) {
}
}
//Fix per funzione base_path non trovata in fase di aggiornamento da versione < 2.4.19
// Fix per funzione base_path non trovata in fase di aggiornamento da versione < 2.4.19
if (!function_exists('base_path')) {
function base_path()
{
@ -92,42 +92,42 @@ if (!function_exists('base_dir')) {
}
// Aggiornamenti
$alerts = [];
$alerts = [];
if (!extension_loaded('zip')) {
$alerts[tr('Estensione ZIP')] = tr('da abilitare');
}
if (!extension_loaded('zip')) {
$alerts[tr('Estensione ZIP')] = tr('da abilitare');
}
$upload_max_filesize = ini_get('upload_max_filesize');
$upload_max_filesize = str_replace(['k', 'M'], ['000', '000000'], $upload_max_filesize);
// Dimensione minima: 32MB
if ($upload_max_filesize < 32000000) {
$alerts['upload_max_filesize'] = '32MB';
}
$upload_max_filesize = ini_get('upload_max_filesize');
$upload_max_filesize = str_replace(['k', 'M'], ['000', '000000'], $upload_max_filesize);
// Dimensione minima: 32MB
if ($upload_max_filesize < 32000000) {
$alerts['upload_max_filesize'] = '32MB';
}
$post_max_size = ini_get('post_max_size');
$post_max_size = str_replace(['k', 'M'], ['000', '000000'], $post_max_size);
// Dimensione minima: 32MB
if ($post_max_size < 32000000) {
$alerts['post_max_size'] = '32MB';
}
$post_max_size = ini_get('post_max_size');
$post_max_size = str_replace(['k', 'M'], ['000', '000000'], $post_max_size);
// Dimensione minima: 32MB
if ($post_max_size < 32000000) {
$alerts['post_max_size'] = '32MB';
}
if (!empty($alerts)) {
echo '
if (!empty($alerts)) {
echo '
<div class="alert alert-info">
<p>'.tr('Devi modificare il seguenti parametri del file di configurazione PHP (_FILE_) per poter caricare gli aggiornamenti', [
'_FILE_' => '<b>php.ini</b>',
'_FILE_' => '<b>php.ini</b>',
]).':<ul>';
foreach ($alerts as $key => $value) {
echo '
<li><b>'.$key.'</b> = '.$value.'</li>';
}
foreach ($alerts as $key => $value) {
echo '
<li><b>'.$key.'</b> = '.$value.'</li>';
}
echo '
</ul></p>
</div>';
}
}
echo '
echo '
<script>
function update() {
if ($("#blob").val()) {
@ -175,8 +175,8 @@ function search(button) {
} else {
let beta_warning = data.includes("beta") ? "<br><b>'.tr('Attenzione: la versione individuata è in fase sperimentale, e pertanto può presentare diversi bug e malfunzionamenti').'.</b>" : "";
$("#update-search").html("'.tr("E' stato individuato un nuovo aggiornamento").': " + data + "." + beta_warning + "<br>'.tr('Scaricalo ora: _LINK_', [
'_LINK_' => "<a target='_blank' href='https://github.com/devcode-it/openstamanager/releases'>https://github.com/devcode-it/openstamanager/releases</a>",
]).'");
'_LINK_' => "<a target='_blank' href='https://github.com/devcode-it/openstamanager/releases'>https://github.com/devcode-it/openstamanager/releases</a>",
]).'");
}
}
});
@ -201,9 +201,9 @@ echo '
';
if (!empty($custom) || !empty($tables)) {
$disabled = 'disabled';
echo ' <input type="checkbox" id="aggiorna_custom" class="pull-left" style="margin-top:10px;" value="1" >&nbsp;
if (!empty($custom) || !empty($tables)) {
$disabled = 'disabled';
echo ' <input type="checkbox" id="aggiorna_custom" class="pull-left" style="margin-top:10px;" value="1" >&nbsp;
<label for="aggiorna_custom" style="margin-top:7px;" >'.tr("Desidero comunque procedere all'aggiornamento").'.</label>
<script>
$("#aggiorna_custom").change(function() {
@ -214,7 +214,7 @@ echo '
}
});
</script>';
}
}
echo '
<button type="button" class="btn btn-primary pull-right '.$disabled.'" id="aggiorna" onclick="update()">
@ -261,15 +261,15 @@ echo '
</h3>
</div>
<div class="box-body" id="update-search">';
if (extension_loaded('curl')) {
echo ' <button type="button" class="btn btn-info btn-block" onclick="search(this)">
if (extension_loaded('curl')) {
echo ' <button type="button" class="btn btn-info btn-block" onclick="search(this)">
<i class="fa fa-search"></i> '.tr('Ricerca').'
</button>';
} else {
echo ' <button type="button" class="btn btn-warning btn-block disabled" >
} else {
echo ' <button type="button" class="btn btn-warning btn-block disabled" >
<i class="fa fa-warning"></i> '.tr('Estensione curl non supportata').'.
</button>';
}
}
echo ' </div>
</div>

View File

@ -21,15 +21,13 @@ namespace Modules\Aggiornamenti;
use GuzzleHttp\Client;
use Hooks\CachedManager;
use Modules;
use Update;
/**
* Hook dedicato all'individuazione di nuove versioni del gestionale, pubblicate sulla repository ufficiale di GitHub.
*/
class UpdateHook extends CachedManager
{
protected static $client = null;
protected static $client;
public function getCacheName()
{
@ -44,11 +42,11 @@ class UpdateHook extends CachedManager
public function response()
{
$update = $this->getCache()->content[0];
if ($update == Update::getVersion() || empty(setting('Attiva aggiornamenti'))) {
if ($update == \Update::getVersion() || empty(setting('Attiva aggiornamenti'))) {
$update = null;
}
$module = Modules::get('Aggiornamenti');
$module = \Modules::get('Aggiornamenti');
$link = base_path().'/controller.php?id_module='.$module->id;
$message = tr("E' disponibile la versione _VERSION_ del gestionale", [
@ -75,7 +73,7 @@ class UpdateHook extends CachedManager
if (!$api['prerelease'] or setting('Abilita canale pre-release per aggiornamenti')) {
$version[0] = ltrim($api['tag_name'], 'v');
$version[1] = !empty($api['prerelease']) ? 'beta' : 'stabile';
$current = Update::getVersion();
$current = \Update::getVersion();
if (version_compare($current, $version[0]) < 0) {
return $version;

View File

@ -302,7 +302,7 @@ switch (post('op')) {
break;
// Informazioni sulla posizione della sede
// Informazioni sulla posizione della sede
case 'posizione':
$sede = $anagrafica->sedeLegale;
$sede->gaddress = post('gaddress');
@ -315,7 +315,7 @@ switch (post('op')) {
case 'delete':
// Se l'anagrafica non è l'azienda principale, la disattivo
if (!$anagrafica->isAzienda()) {
//$anagrafica->delete();
// $anagrafica->delete();
$dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id_record));
// Se l'anagrafica è collegata ad un utente lo disabilito

View File

@ -121,7 +121,7 @@ echo '
{[ "type": "text", "label": "'.tr('PEC').'", "name": "pec", "class": "email-mask", "placeholder":"pec@dominio.ext", "icon-before": "<i class=\'fa fa-envelope-o\'></i>" ]}
</div>';
$help_codice_destinatario = tr("Per impostare il codice specificare prima '<b>Tipologia</b>' e '<b>Nazione</b>' dell'anagrafica").':<br><br><ul><li>'.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'</li><li>'.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'</li><li>'.tr('Privato (B2C) - viene utilizzato il Codice Fiscale').'</li>'.'</ul>Se non si conosce il codice destinatario lasciare vuoto il campo. Verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\').';
$help_codice_destinatario = tr("Per impostare il codice specificare prima '<b>Tipologia</b>' e '<b>Nazione</b>' dell'anagrafica").':<br><br><ul><li>'.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'</li><li>'.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'</li><li>'.tr('Privato (B2C) - viene utilizzato il Codice Fiscale').'</li></ul>Se non si conosce il codice destinatario lasciare vuoto il campo. Verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\').';
echo '
<div class="col-md-4">

View File

@ -34,7 +34,7 @@ switch ($resource) {
}
break;
// Elenco sedi con <option>
// Elenco sedi con <option>
case 'get_sedi_select':
$idanagrafica = get('idanagrafica');
$q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ".Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY id';
@ -49,7 +49,7 @@ switch ($resource) {
}
break;
// Elenco e-mail
// Elenco e-mail
case 'get_email':
$id_anagrafica = get('id_anagrafica');
@ -70,16 +70,16 @@ switch ($resource) {
];
}
// Tutti le sedi per questo cliente
$q = "SELECT DISTINCT(email), id AS idanagrafica, nomesede AS ragione_sociale FROM an_sedi WHERE email != '' ".$where.' ORDER BY id';
// Tutti le sedi per questo cliente
$q = "SELECT DISTINCT(email), id AS idanagrafica, nomesede AS ragione_sociale FROM an_sedi WHERE email != '' ".$where.' ORDER BY id';
$rs = $dbo->fetchArray($q);
foreach ($rs as $r) {
$results[] = [
'value' => $r['email'],
'label' => $r['ragione_sociale'].' <'.$r['email'].'>',
];
}
$rs = $dbo->fetchArray($q);
foreach ($rs as $r) {
$results[] = [
'value' => $r['email'],
'label' => $r['ragione_sociale'].' <'.$r['email'].'>',
];
}
// Tutti gli agenti del cliente
$q = "SELECT DISTINCT(email), ragione_sociale, idanagrafica FROM an_anagrafiche WHERE email != '' AND (idanagrafica=(SELECT idagente FROM an_anagrafiche AS agenti WHERE 1=1 ".$where.') OR idanagrafica IN (SELECT idagente FROM an_anagrafiche_agenti WHERE 1=1 '.$where.'))';

View File

@ -103,7 +103,7 @@ foreach ($fields as $name => $value) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"';
}
//$query .= Modules::getAdditionalsQuery('Anagrafiche');
// $query .= Modules::getAdditionalsQuery('Anagrafiche');
$rs = $dbo->fetchArray($query);

View File

@ -149,10 +149,10 @@ switch ($resource) {
break;
/*
* Opzioni utilizzate:
* - idanagrafica
*/
/*
* Opzioni utilizzate:
* - idanagrafica
*/
case 'agenti':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')')), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, idtipointervento_default 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| ORDER BY ragione_sociale";
@ -204,7 +204,7 @@ switch ($resource) {
if (setting('Permetti inserimento sessioni degli altri tecnici')) {
} else {
//come tecnico posso aprire attività solo a mio nome
// come tecnico posso aprire attività solo a mio nome
$user = Auth::user();
if ($user['gruppo'] == 'Tecnici' && !empty($user['idanagrafica'])) {
$where[] = 'an_anagrafiche.idanagrafica='.$user['idanagrafica'];
@ -272,7 +272,7 @@ switch ($resource) {
break;
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
case 'anagrafiche':
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), ''), IF(an_anagrafiche.deleted_at IS NULL, '', ' (".tr('eliminata').")'),' - ', an_anagrafiche.codice) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup 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| ORDER BY `optgroup` ASC, ragione_sociale ASC";
@ -319,10 +319,10 @@ switch ($resource) {
}
break;
/*
* Opzioni utilizzate:
* - idanagrafica
*/
/*
* Opzioni utilizzate:
* - idanagrafica
*/
case 'sedi':
if (isset($superselect['idanagrafica'])) {
$query = "
@ -369,7 +369,7 @@ switch ($resource) {
}
$where[] = 'idanagrafica='.prepare($id_azienda);
//admin o utente senza una sede prefissata, avrà accesso a tutte le sedi
// admin o utente senza una sede prefissata, avrà accesso a tutte le sedi
if (!empty($user->sedi) and !$user->is_admin) {
$where[] = 'id IN('.implode(',', $user->sedi).')';
}
@ -381,10 +381,10 @@ switch ($resource) {
break;
/*
* Opzioni utilizzate:
* - idanagrafica
*/
/*
* Opzioni utilizzate:
* - idanagrafica
*/
case 'referenti':
if (isset($superselect['idanagrafica'])) {
$query = 'SELECT an_referenti.id, an_referenti.nome AS descrizione, an_mansioni.nome AS optgroup FROM an_referenti LEFT JOIN an_mansioni ON an_referenti.idmansione=an_mansioni.id |where| ORDER BY optgroup, an_referenti.nome';
@ -485,14 +485,14 @@ switch ($resource) {
break;
/*
* Opzioni utilizzate:
* - idanagrafica
*/
/*
* Opzioni utilizzate:
* - idanagrafica
*/
case 'dichiarazioni_intento':
if (isset($superselect['idanagrafica']) && isset($superselect['data'])) {
//$query = "SELECT id, CONCAT('N. prot. ', numero_protocollo, ' (periodo dal ', DATE_FORMAT(data_inizio, '%d/%m/%Y'), ' al ' ,DATE_FORMAT(data_fine, '%d/%m/%Y'),') (utilizzati ',REPLACE(REPLACE(REPLACE(FORMAT(SUM(totale),2), ',', '#'), '.', ','), '#', '.'), ' su ' , REPLACE(REPLACE(REPLACE(FORMAT(SUM(massimale),2), ',', '#'), '.', ','), '#', '.'), ' &euro;)' ) AS descrizione, data_inizio, data_fine FROM co_dichiarazioni_intento |where| ORDER BY `data`, `id`";
// $query = "SELECT id, CONCAT('N. prot. ', numero_protocollo, ' (periodo dal ', DATE_FORMAT(data_inizio, '%d/%m/%Y'), ' al ' ,DATE_FORMAT(data_fine, '%d/%m/%Y'),') (utilizzati ',REPLACE(REPLACE(REPLACE(FORMAT(SUM(totale),2), ',', '#'), '.', ','), '#', '.'), ' su ' , REPLACE(REPLACE(REPLACE(FORMAT(SUM(massimale),2), ',', '#'), '.', ','), '#', '.'), ' &euro;)' ) AS descrizione, data_inizio, data_fine FROM co_dichiarazioni_intento |where| ORDER BY `data`, `id`";
$query = 'SELECT id, numero_protocollo, data_inizio, data_fine, massimale, totale FROM co_dichiarazioni_intento |where| ORDER BY data';
@ -500,10 +500,10 @@ switch ($resource) {
$filter[] = 'id='.prepare($element);
}
//$where[] = '( '.prepare($superselect['data']).' BETWEEN data_inizio AND data_fine)';
// $where[] = '( '.prepare($superselect['data']).' BETWEEN data_inizio AND data_fine)';
//$where[] = 'data_inizio < NOW()';
//$where[] = 'data_fine > NOW()';
// $where[] = 'data_inizio < NOW()';
// $where[] = 'data_fine > NOW()';
if (empty($filter)) {
$where[] = 'co_dichiarazioni_intento.deleted_at IS NULL';

View File

@ -26,7 +26,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
</button>
<ul class="dropdown-menu dropdown-menu-right">';
//Aggiunta utente per i tecnici
// Aggiunta utente per i tecnici
if (in_array($id_tecnico, $tipi_anagrafica)) {
echo '
<li><a data-toggle="modal" data-title="'.tr('Aggiungi utente').'" data-href="modules/utenti/user.php?id_module='.Modules::get('Utenti e permessi')['id'].'&id_record='.$dbo->fetchOne('SELECT id FROM zz_groups WHERE nome=\'Tecnici\'')['id'].'&idanagrafica='.$record['idanagrafica'].'"><i class="fa fa-user"></i>'.tr('Nuovo utente').'
@ -77,7 +77,7 @@ if (in_array($id_cliente, $tipi_anagrafica) or in_array($id_fornitore, $tipi_ana
}
if (in_array($id_agente, $tipi_anagrafica)) {
//Aggiunta liquidazione provvigioni per agente
// Aggiunta liquidazione provvigioni per agente
echo '
<button type="button" class="btn btn-primary" data-title="'.tr('Liquida Provvigioni').'" data-href="'.base_path().'/modules/anagrafiche/liquida_provvigioni.php?nome_stampa=Provvigioni&id_record='.$id_record.'" ><i class="fa fa-print"></i>'.tr(' Liquida Provvigioni').'</button>';
}

View File

@ -115,7 +115,7 @@ if (sizeof($problemi_anagrafica) > 0) {
<!-- RIGA PER LE ANAGRAFICHE CON TIPOLOGIA 'PRIVATO' -->
<?php if ($record['tipo'] == 'Privato') {
?>
?>
<div class="row">
<div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Luogo di nascita'); ?>", "name": "luogo_nascita", "value": "$luogo_nascita$" ]}
@ -130,7 +130,7 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>
</div>
<?php
} ?>
} ?>
<div class="row">
<div class="col-md-2">
@ -139,18 +139,18 @@ if (sizeof($problemi_anagrafica) > 0) {
<div class="col-md-2">
<?php
$help_codice_destinatario = tr("Per impostare il codice specificare prima il campo '_NATION_' dell'anagrafica", [
'_NATION_' => '<b>Nazione</b>',
]).':<br><br><ul>
$help_codice_destinatario = tr("Per impostare il codice specificare prima il campo '_NATION_' dell'anagrafica", [
'_NATION_' => '<b>Nazione</b>',
]).':<br><br><ul>
<li>'.tr('Ente pubblico (B2G/PA) - Codice Univoco Ufficio (www.indicepa.gov.it), 6 caratteri').'</li>
<li>'.tr('Azienda (B2B) - Codice Destinatario, 7 caratteri').'</li>
<li>'.tr('Privato (B2C) - viene utilizzato il Codice Fiscale').'</li></ul>
'.tr('Se non si conosce il codice destinatario lasciare vuoto il campo, e verrà applicato in automatico quello previsto di default dal sistema (\'0000000\', \'999999\', \'XXXXXXX\')').'.';
if (in_array($id_azienda, $tipi_anagrafica)) {
$help_codice_destinatario .= ' <b>'.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI)").'.</b>';
}
?>
if (in_array($id_azienda, $tipi_anagrafica)) {
$help_codice_destinatario .= ' <b>'.tr("Non è necessario comunicare il proprio codice destinatario ai fornitori in quanto è sufficiente che questo sia registrato nel portale del Sistema Di Interscambio dell'Agenzia Entrate (SDI)").'.</b>';
}
?>
{[ "type": "text", "label": "<?php echo ($record['tipo'] == 'Ente pubblico') ? tr('Codice unico ufficio') : tr('Codice destinatario'); ?>", "name": "codice_destinatario", "required": 0, "class": "text-center text-uppercase alphanumeric-mask", "value": "$codice_destinatario$", "maxlength": <?php echo ($record['tipo'] == 'Ente pubblico') ? '6' : '7'; ?>, "help": "<?php echo tr($help_codice_destinatario); ?>", "readonly": "<?php echo intval($nazione_anagrafica ? !(($nazione_anagrafica->iso2 === 'IT') || ($nazione_anagrafica->iso2 === 'SM')) : 0); ?>" ]}
</div>
@ -243,10 +243,10 @@ if (sizeof($problemi_anagrafica) > 0) {
<?php
$sede_cliente = $anagrafica->sedeLegale;
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$sede_azienda = $anagrafica_azienda->sedeLegale;
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$sede_azienda = $anagrafica_azienda->sedeLegale;
echo '
echo '
<div class="col-md-4">
<div class="panel panel-primary">
<div class="panel-heading">
@ -254,48 +254,48 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>
<div class="panel-body">';
// Area caricamento mappa
echo '
// Area caricamento mappa
echo '
<div id="map-edit" style="width: 100%;"></div>
<div class="clearfix"></div>
<br>';
if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
// Modifica manuale delle informazioni
echo '
if (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
// Modifica manuale delle informazioni
echo '
<a class="btn btn-info btn-block" onclick="modificaPosizione()">
<i class="fa fa-map"></i> '.tr('Aggiorna posizione').'
</a>';
} else {
// Definizione manuale delle informazioni
echo '
} else {
// Definizione manuale delle informazioni
echo '
<a class="btn btn-primary btn-block" onclick="modificaPosizione()">
<i class="fa fa-map"></i> '.tr('Definisci posizione').'
</a>';
}
}
// Navigazione diretta verso l'indirizzo
echo '
// Navigazione diretta verso l'indirizzo
echo '
<a class="btn btn-info btn-block '.((empty($sede_cliente->lat) && empty($sede_cliente->lng)) ? 'disabled' : '').'" onclick="$(\'#map-edit\').height(235); caricaMappa(); $(this).hide();">
<i class="fa fa-compass"></i> '.tr('Carica mappa').'
</a>';
// Navigazione diretta verso l'indirizzo
echo '
// Navigazione diretta verso l'indirizzo
echo '
<a class="btn btn-info btn-block '.(($anagrafica->isAzienda() || (empty($sede_cliente->lat) || empty($sede_cliente->lng)) || (empty($sede_azienda->lat) || empty($sede_azienda->lng))) ? 'disabled' : '').'" onclick="calcolaPercorso()">
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
'.((!empty($sede_cliente->lat) && !empty($sede_azienda->lat)) ? tr('(GPS)') : '').'
</a>';
// Ricerca diretta su Mappa
echo '
// Ricerca diretta su Mappa
echo '
<a class="btn btn-info btn-block" onclick="cercaOpenStreetMap()">
<i class="fa fa-map-marker"></i> '.tr('Cerca su Mappa').'
'.((!empty($sede_cliente->lat)) ? tr(' (GPS)') : '').'
</a>';
echo '
echo '
</div>
</div>
</div>
@ -423,8 +423,8 @@ if (sizeof($problemi_anagrafica) > 0) {
</script>';
if ($is_cliente or $is_fornitore or $is_tecnico) {
echo '
if ($is_cliente or $is_fornitore or $is_tecnico) {
echo '
<div class="panel panel-primary">
<div class="panel-heading">
@ -463,13 +463,13 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>';
$banche = Banca::where('id_anagrafica', $anagrafica->id)->get();
$banca_predefinita = $banche->first(function ($item) {
return !empty($item['predefined']);
});
$modulo_banche = Modules::get('Banche');
if (!$banche->isEmpty()) {
echo '
$banche = Banca::where('id_anagrafica', $anagrafica->id)->get();
$banca_predefinita = $banche->first(function ($item) {
return !empty($item['predefined']);
});
$modulo_banche = Modules::get('Banche');
if (!$banche->isEmpty()) {
echo '
<div class="row">
<div class="col-md-6">
<a href="'.base_path().'/editor.php?id_module='.$modulo_banche['id'].'&id_record='.$banca_predefinita->id.'">
@ -483,14 +483,14 @@ if (sizeof($problemi_anagrafica) > 0) {
</a>
</div>
</div>';
} else {
echo '
} else {
echo '
<div class="alert alert-info">
'.tr('Non sono presenti banche per l\'anagrafica').'... '.Modules::link('Banche', null, tr('Creane una')).'
</div>';
}
}
echo '
echo '
</div>
<div class="tab-pane '.(!$is_cliente ? 'hide' : 'active').'" id="cliente">
@ -553,26 +553,26 @@ if (sizeof($problemi_anagrafica) > 0) {
{[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento_default", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$id_record.', "data": "'.Carbon::now().'"},"value": "$id_dichiarazione_intento_default$" ]}
</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']));
// 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 '
echo '
<div class="col-md-6">
<p><b>'.tr('Piano dei conti cliente').'</b></p>';
if (!empty($conto['numero_conto'])) {
$piano_dei_conti_cliente = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'];
echo Modules::link('Piano dei conti', null, $piano_dei_conti_cliente, null, '', 1, 'movimenti-'.$conto['id']);
} else {
$piano_dei_conti_cliente = tr('Nessuno');
}
if (!empty($conto['numero_conto'])) {
$piano_dei_conti_cliente = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'];
echo Modules::link('Piano dei conti', null, $piano_dei_conti_cliente, null, '', 1, 'movimenti-'.$conto['id']);
} else {
$piano_dei_conti_cliente = tr('Nessuno');
}
echo '
echo '
</div>
</div>
</div>';
echo '
echo '
<div class="tab-pane '.(!$is_fornitore ? 'hide' : (!$is_cliente ? 'active' : '')).'" id="fornitore">
<div class="row">
<div class="col-md-6">
@ -599,26 +599,26 @@ if (sizeof($problemi_anagrafica) > 0) {
{[ "type": "select", "label": "'.tr('Piano di sconto/magg. su articoli').'", "name": "id_piano_sconto_acquisti", "values": "query=SELECT id, nome AS descrizione FROM mg_piani_sconto ORDER BY nome ASC", "value": "$id_piano_sconto_acquisti$" ]}
</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_fornitore']));
// 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_fornitore']));
echo '
echo '
<div class="col-md-6">
<p><b>'.tr('Piano dei conti fornitore').'</b></p>';
if (!empty($conto['numero_conto'])) {
$piano_dei_conti_fornitore = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'];
echo Modules::link('Piano dei conti', null, $piano_dei_conti_fornitore, null, '', 1, 'movimenti-'.$conto['id']);
} else {
$piano_dei_conti_fornitore = tr('Nessuno');
}
if (!empty($conto['numero_conto'])) {
$piano_dei_conti_fornitore = $conto['numero'].'.'.$conto['numero_conto'].' '.$conto['descrizione'];
echo Modules::link('Piano dei conti', null, $piano_dei_conti_fornitore, null, '', 1, 'movimenti-'.$conto['id']);
} else {
$piano_dei_conti_fornitore = tr('Nessuno');
}
echo '
echo '
</div>
</div>
</div>';
echo '
echo '
<div class="tab-pane'.(!$is_cliente && !$is_fornitore && $is_tecnico ? ' active' : '').''.(!$is_tecnico ? ' hide' : '').'" id="tecnico">
<div class="row">
<div class="col-md-6">
@ -627,13 +627,13 @@ if (sizeof($problemi_anagrafica) > 0) {
</div>
</div>';
echo '
echo '
</div>
</div>
</div>
</div>';
}
?>
}
?>
<div class="panel panel-primary">
<div class="panel-heading">
@ -648,22 +648,22 @@ if (sizeof($problemi_anagrafica) > 0) {
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Codice R.E.A.').' <small>('.tr('provincia-C.C.I.A.A.').')</small>'; ?>", "name": "codicerea", "value": "$codicerea$", "class": "rea-mask text-uppercase", "help": "<?php echo tr('Esempio: _PATTERN_', [
'_PATTERN_' => 'RM-123456',
]); ?>" ]}
'_PATTERN_' => 'RM-123456',
]); ?>" ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Riferimento Amministrazione'); ?>", "name": "riferimento_amministrazione", "value": "$riferimento_amministrazione$", "maxlength": "20" ]}
</div>
<?php
if ($is_agente) {
?>
if ($is_agente) {
?>
<div class="col-md-3">
{[ "type": "number", "label": "<?php echo tr('Provvigione predefinita'); ?>", "name": "provvigione_default", "value": "$provvigione_default$", "icon-after": "%" ]}
</div>
<?php
}
?>
}
?>
</div>
<div class="row">
@ -706,11 +706,11 @@ if (sizeof($problemi_anagrafica) > 0) {
<div class="col-md-12">
{[ "type": "select", "multiple": "1", "label": "<?php echo tr('Tipo di anagrafica'); ?>", "name": "idtipoanagrafica[]", "values": "query=SELECT idtipoanagrafica AS id, descrizione FROM an_tipianagrafiche WHERE idtipoanagrafica NOT IN (SELECT DISTINCT(x.idtipoanagrafica) FROM an_tipianagrafiche_anagrafiche x INNER JOIN an_tipianagrafiche t ON x.idtipoanagrafica = t.idtipoanagrafica INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica = x.idanagrafica WHERE t.descrizione = 'Azienda' AND deleted_at IS NULL) ORDER BY descrizione", "value": "$idtipianagrafica$" ]}
<?php
if (in_array($id_azienda, $tipi_anagrafica)) {
echo '
if (in_array($id_azienda, $tipi_anagrafica)) {
echo '
<p class="badge badge-info">'.tr('Questa anagrafica è di tipo "Azienda"').'.</p>';
}
?>
}
?>
</div>
</div>
@ -779,8 +779,8 @@ if (!empty($elementi)) {
'_DELETED_AT_' => (!empty($elemento['deleted_at']) ? tr('Eliminato il:').' '.Translator::dateToLocale($elemento['deleted_at']) : ''),
]);
//se non è un preventivo è un ddt o una fattura
//se non è un ddt è una fattura.
// se non è un preventivo è un ddt o una fattura
// se non è un ddt è una fattura.
if (in_array($elemento['tipo_documento'], ['Utente'])) {
$modulo = 'Utenti e permessi';
} elseif (in_array($elemento['tipo_documento'], ['Intervento'])) {

View File

@ -40,7 +40,7 @@ echo '
<form action="" method="post" id="form" >
<div class="row">';
echo '
echo '
<div class="col-md-4">
{[ "type": "date", "label": "'.tr('Data inizio').'", "required": "1", "name": "date_start", "value": "'.$_SESSION['period_start'].'" ]}
</div>
@ -67,7 +67,7 @@ echo '
</div>
';
echo '
echo '
<div class="col-md-4 pull-right">
<p style="line-height:14px;">&nbsp;</p>
<button type="button" class="btn btn-primary btn-block" onclick="if($(\'#form\').parsley().validate()) { return avvia_stampa(); }">
@ -108,9 +108,9 @@ echo '
input("date_start").disable();
input("date_end").disable();
}';
if ($nome_stampa != 'Liquidazione IVA') {
echo 'eseguiControlli();';
}
echo '
if ($nome_stampa != 'Liquidazione IVA') {
echo 'eseguiControlli();';
}
echo '
});
</script>';

View File

@ -22,7 +22,7 @@ use Modules\Anagrafiche\Anagrafica;
include_once __DIR__.'/../../../core.php';
//Allegati dell'anagrafica
// Allegati dell'anagrafica
echo '
<div class="box">
<div class="box-header with-border">
@ -41,7 +41,7 @@ if (empty($_GET['visualizza_allegati'])) {
</div>
</div>';
} else {
//Controllo i permessi dei modulo per la visualizzazione degli allegati
// Controllo i permessi dei modulo per la visualizzazione degli allegati
$rs = $dbo->table('zz_permissions')->where('idgruppo', $user->idgruppo)->get();
$permessi = [];
$documenti[] = 0;
@ -58,25 +58,25 @@ if (empty($_GET['visualizza_allegati'])) {
];
}
//Interventi dell'anagrafica
// Interventi dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Interventi')['id'], $permessi)) {
$interventi = $dbo->fetcharray('SELECT '.prepare(Modules::get('Interventi')['id'])." AS id_module, id AS id_record, CONCAT('Intervento num. ',codice,' del ',DATE_FORMAT(data_richiesta,'%d/%m/%Y')) AS descrizione FROM in_interventi WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $interventi);
}
//Preventivi dell'anagrafica
// Preventivi dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Preventivi')['id'], $permessi)) {
$preventivi = $dbo->fetcharray('SELECT '.prepare(Modules::get('Preventivi')['id'])." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_preventivi WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $preventivi);
}
//Contratti dell'anagrafica
// Contratti dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Contratti')['id'], $permessi)) {
$contratti = $dbo->fetcharray('SELECT '.prepare(Modules::get('Contratti')['id'])." AS id_module, id AS id_record, CONCAT('Preventivo num. ',numero,' del ',DATE_FORMAT(data_bozza,'%d/%m/%Y')) AS descrizione FROM co_contratti WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $contratti);
}
//DDT dell'anagrafica
// DDT dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Ddt di vendita')['id'], $permessi)) {
$ddt_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Ddt di vendita')['id'])." AS id_module, id AS id_record, CONCAT('Ddt di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM dt_ddt WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ddt_vendita);
@ -87,7 +87,7 @@ if (empty($_GET['visualizza_allegati'])) {
$documenti = array_merge($documenti, $ddt_acquisto);
}
//Fatture dell'anagrafica
// Fatture dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Fatture di vendita')['id'], $permessi)) {
$fatture_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Fatture di vendita')['id'])." AS id_module, id AS id_record, CONCAT('Fattura di vendita num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data_registrazione,'%d/%m/%Y')) AS descrizione FROM co_documenti WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $fatture_vendita);
@ -98,7 +98,7 @@ if (empty($_GET['visualizza_allegati'])) {
$documenti = array_merge($documenti, $fatture_acquisto);
}
//Ordini dell'anagrafica
// Ordini dell'anagrafica
if ($user->is_admin || in_array(Modules::get('Ordini cliente')['id'], $permessi)) {
$ordini_vendita = $dbo->fetcharray('SELECT '.prepare(Modules::get('Ordini cliente')['id'])." AS id_module, id AS id_record, CONCAT('Ordine cliente num. ',IFNULL(numero_esterno,numero),' del ',DATE_FORMAT(data,'%d/%m/%Y')) AS descrizione FROM or_ordini WHERE idanagrafica=".prepare($id_record));
$documenti = array_merge($documenti, $ordini_vendita);

View File

@ -30,7 +30,6 @@ use Modules\Ordini\Ordine;
use Modules\Preventivi\Preventivo;
use Modules\TipiIntervento\Tipo as TipoSessione;
use Plugins\DichiarazioniIntento\Dichiarazione;
use Settings;
use Traits\RecordTrait;
use Util\Generator;
@ -100,7 +99,7 @@ class Anagrafica extends Model
public static function fixAzienda(Anagrafica $anagrafica)
{
Settings::setValue('Azienda predefinita', $anagrafica->id);
\Settings::setValue('Azienda predefinita', $anagrafica->id);
}
public static function fixCliente(Anagrafica $anagrafica)

View File

@ -21,12 +21,12 @@ use Modules\Anagrafiche\Anagrafica;
$anagrafica = Anagrafica::find($id_record);
//cliente
// cliente
if ($anagrafica->idconto_cliente != '') {
$conto = $anagrafica->idconto_cliente;
$conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione'];
}
//Fornitore
// Fornitore
elseif ($anagrafica->idconto_fornitore != '') {
$conto = $anagrafica->idconto_fornitore;
$conto_descrizione = $dbo->fetchOne('SELECT CONCAT ((SELECT numero FROM co_pianodeiconti2 WHERE id=co_pianodeiconti3.idpianodeiconti2), ".", numero, " ", descrizione) AS descrizione FROM co_pianodeiconti3 WHERE id='.prepare($conto))['descrizione'];

View File

@ -31,10 +31,10 @@ switch (post('op')) {
$articolo->restore();
flash()->info(tr('Articolo ripristinato correttamente!'));
// Aggiunta articolo
// no break
// Aggiunta articolo
// no break
case 'add':
//Se non specifico il codice articolo lo imposto uguale all'id della riga
// Se non specifico il codice articolo lo imposto uguale all'id della riga
if (empty(post('codice'))) {
$codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1;
} else {
@ -106,7 +106,7 @@ switch (post('op')) {
break;
// Modifica articolo
// Modifica articolo
case 'update':
$qta = post('qta');
@ -185,7 +185,7 @@ switch (post('op')) {
// Se non è presente un componente, copia i valori dal file di origine
$campi_componente = [];
foreach ($contenuto_componente as $key => $value) {
//Fix per nomi con spazi che vengono tradotti con "_" (es. Data_di_installazione)
// Fix per nomi con spazi che vengono tradotti con "_" (es. Data_di_installazione)
$key = preg_replace('/\s+/', '_', $key);
$valore = $contenuto_precedente_esistente ? filter($key) : $value['valore'];
@ -241,11 +241,11 @@ switch (post('op')) {
break;
// Duplica articolo
// Duplica articolo
case 'copy':
$new = $articolo->replicate();
//Se non specifico il codice articolo lo imposto uguale all'id della riga
// Se non specifico il codice articolo lo imposto uguale all'id della riga
if (empty(post('codice'))) {
$codice = $dbo->fetchOne('SELECT MAX(id) as codice FROM mg_articoli')['codice'] + 1;
} else {
@ -277,9 +277,9 @@ switch (post('op')) {
flash()->info(tr('Articolo duplicato correttamente!'));
break;
break;
// Generazione seriali in sequenza
// Generazione seriali in sequenza
case 'generate_serials':
// Seriali
$serial_start = post('serial_start');
@ -297,7 +297,7 @@ switch (post('op')) {
// Combinazione di seriali
$serials = [];
for ($s = 0; $s < $totale; ++$s) {
$serial = $prefix.(str_pad($numero_start + $s, $pad_length, '0', STR_PAD_LEFT));
$serial = $prefix.str_pad($numero_start + $s, $pad_length, '0', STR_PAD_LEFT);
$serials[] = $serial;
}

View File

@ -78,7 +78,7 @@ $aliquota_predefinita = floatval(Aliquota::find($iva_predefinita)->percentuale);
echo '
<button type="button" class="btn btn-info btn-xs pull-right tip pull-right" title="'.tr('Scorpora l\'IVA dal prezzo di vendita.').'" id="scorpora_iva_add"><i class="fa fa-calculator" aria-hidden="true"></i></button>';
}
?>
?>
{[ "type": "number", "label": "<?php echo tr('Prezzo di vendita'); ?>", "name": "prezzo_vendita", "icon-after": "<?php echo currency(); ?>", "help": "<?php echo setting('Utilizza prezzi di vendita comprensivi di IVA') ? tr('Importo IVA inclusa') : ''; ?>" ]}
</div>

View File

@ -57,7 +57,7 @@ switch ($resource) {
echo '</small>';
break;
// Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita
// Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita
case 'getprezzivendita':
$ids = [];
echo '<small>';
@ -116,7 +116,7 @@ switch ($resource) {
break;
// Legge gli ultimi prezzi di acquisto di un determinato articolo e li visualizza per suggerire il prezzo di acquisto
// Legge gli ultimi prezzi di acquisto di un determinato articolo e li visualizza per suggerire il prezzo di acquisto
case 'getprezziacquisto':
$ids = [];
echo '<small>';
@ -175,11 +175,11 @@ switch ($resource) {
break;
/*
* Opzioni utilizzate:
* - id_articolo
* - id_anagrafica
*/
/*
* Opzioni utilizzate:
* - id_articolo
* - id_anagrafica
*/
case 'dettagli_articolo':
$id_articolo = get('id_articolo');
$id_anagrafica = get('id_anagrafica');

View File

@ -233,10 +233,10 @@ switch ($resource) {
break;
/*
* Opzioni utilizzate:
* - id_categoria
*/
/*
* Opzioni utilizzate:
* - id_categoria
*/
case 'sottocategorie':
if (isset($superselect['id_categoria'])) {
$query = 'SELECT `id`, `nome` AS descrizione FROM `mg_categorie` |where| ORDER BY `nome`';
@ -265,10 +265,10 @@ switch ($resource) {
break;
/*
* Opzioni utilizzate:
* - idanagrafica
*/
/*
* Opzioni utilizzate:
* - idanagrafica
*/
case 'articoli_barcode':
$id_anagrafica = filter('id_anagrafica'); // ID passato via URL in modo fisso
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');

View File

@ -155,7 +155,7 @@ switch (post('op')) {
}
redirect(base_path().'/pdfgen.php?id_print='.$id_print.'&id_record='.Articolo::where('codice', '!=', '')->first()->id);
exit();
exit;
case 'change-qta':
$descrizione = post('descrizione');
@ -219,7 +219,7 @@ switch (post('op')) {
$database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.Modules::get('Preventivi')['id'].'&id_record='.$id_preventivo);
exit();
exit;
case 'export-csv':
$file = temp_file();

View File

@ -425,8 +425,8 @@ if (!empty($elementi)) {
'_DATE_' => Translator::dateToLocale($elemento['data']),
]);
//se non è un preventivo è un ddt o una fattura
//se non è un ddt è una fattura.
// se non è un preventivo è un ddt o una fattura
// se non è un ddt è una fattura.
if (in_array($elemento['tipo_documento'], ['Preventivo'])) {
$modulo = 'Preventivi';
} elseif (!in_array($elemento['tipo_documento'], ['Ddt di vendita', 'Ddt di acquisto', 'Ddt in entrata', 'Ddt in uscita'])) {

View File

@ -280,7 +280,7 @@ foreach ($sedi as $sede) {
</tr>';
}
echo '
echo '
</tbody>
</table>
</div>

View File

@ -181,7 +181,7 @@ if (empty(get('modal'))) {
$id = $data[0]['idordine'];
}
$totali[] = [($data[0]['prezzo_unitario'] - $data[0]['sconto_unitario']), $data[0]['iva_unitaria']];
$totali[] = [$data[0]['prezzo_unitario'] - $data[0]['sconto_unitario'], $data[0]['iva_unitaria']];
$numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero'];
@ -300,7 +300,7 @@ if (empty(get('modal'))) {
$id = $data[0]['idvendita'];
}
$totali[] = [($data[0]['prezzo_unitario'] - $data[0]['sconto_unitario']), $data[0]['iva_unitaria']];
$totali[] = [$data[0]['prezzo_unitario'] - $data[0]['sconto_unitario'], $data[0]['iva_unitaria']];
$numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero'];

View File

@ -22,14 +22,12 @@ namespace Modules\Articoli;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Modules;
use Modules\AttributiCombinazioni\ValoreAttributo;
use Modules\CombinazioniArticoli\Combinazione;
use Modules\Interventi\Components\Articolo as ArticoloIntervento;
use Modules\Iva\Aliquota;
use Plugins\ListinoFornitori\DettaglioFornitore;
use Traits\RecordTrait;
use Uploads;
class Articolo extends Model
{
@ -64,7 +62,6 @@ class Articolo extends Model
/**
* Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, modificando di conseguenza la quantità dell'articolo stesso.
*
* @param $qta
* @param string $descrizone
* @param string $data
* @param bool $manuale
@ -89,7 +86,6 @@ class Articolo extends Model
/**
* Funzione per registrare un movimento del magazzino in relazione all'articolo corrente, senza movimentare la quantità dell'articolo stesso.
*
* @param $qta
* @param string $descrizone
* @param string $data
* @param bool $manuale
@ -124,9 +120,6 @@ class Articolo extends Model
/**
* Imposta il prezzo di vendita sulla base dell'impstazione per l'utilizzo dei prezzi comprensivi di IVA.
*
* @param $prezzo_vendita
* @param $id_iva
*/
public function setPrezzoVendita($prezzo_vendita, $id_iva)
{
@ -147,9 +140,6 @@ class Articolo extends Model
/**
* Imposta il prezzo di vendita sulla base dell'impstazione per l'utilizzo dei prezzi comprensivi di IVA.
*
* @param $prezzo_vendita
* @param $id_iva
*/
public function setMinimoVendita($prezzo_minimo, $id_iva)
{
@ -168,8 +158,6 @@ class Articolo extends Model
/**
* Imposta il prezzo di acquisto e aggiorna il prezzo di vendita in base al coefficiente.
*
* @param $value
*/
public function setPrezzoAcquistoAttribute($value)
{
@ -217,8 +205,8 @@ class Articolo extends Model
return null;
}
$module = Modules::get($this->module);
$fileinfo = Uploads::fileInfo($this->immagine);
$module = \Modules::get($this->module);
$fileinfo = \Uploads::fileInfo($this->immagine);
$directory = '/'.$module->upload_directory.'/';
$image = $directory.$this->immagine;

View File

@ -22,7 +22,6 @@ namespace Modules\Articoli\Import;
use Carbon\Carbon;
use Importer\CSVImporter;
use Models\Upload;
use Modules;
use Modules\Anagrafiche\Anagrafica;
use Modules\Anagrafiche\Sede;
use Modules\Anagrafiche\Tipo;
@ -31,7 +30,6 @@ use Modules\Articoli\Categoria;
use Modules\Iva\Aliquota;
use Plugins\ListinoClienti\DettaglioPrezzo;
use Plugins\ListinoFornitori\DettaglioFornitore;
use Uploads;
/**
* Struttura per la gestione delle operazioni di importazione (da CSV) degli Articoli.
@ -331,7 +329,7 @@ class CSV extends CSVImporter
$articolo->attivo = 1;
// Esportazione della quantità indicata
$nuova_qta = (float) ($record['qta']);
$nuova_qta = (float) $record['qta'];
$nome_sede = $record['nome_sede'];
if (!empty($dettagli['id_fornitore']) || !empty($dettagli['anagrafica_listino'] || !empty($dettagli['partita_iva']))) {
@ -361,14 +359,14 @@ class CSV extends CSVImporter
unset($record['descrizione_fornitore']);
unset($record['id_fornitore']);
//Gestione immagine
// Gestione immagine
if (!empty($url) && !empty($record['import_immagine'])) {
$file_content = file_get_contents($url);
if (!empty($file_content)) {
if ($record['import_immagine'] == 2 || $record['import_immagine'] == 4) {
Uploads::deleteLinked([
'id_module' => Modules::get('Articoli')['id'],
\Uploads::deleteLinked([
'id_module' => \Modules::get('Articoli')['id'],
'id_record' => $articolo->id,
]);
@ -381,11 +379,11 @@ class CSV extends CSVImporter
$name = 'immagine_'.$articolo->id.'.'.Upload::getExtensionFromMimeType($file_content);
$upload = Uploads::upload($file_content, [
$upload = \Uploads::upload($file_content, [
'name' => 'Immagine',
'category' => 'Immagini',
'original_name' => $name,
'id_module' => Modules::get('Articoli')['id'],
'id_module' => \Modules::get('Articoli')['id'],
'id_record' => $articolo->id,
], [
'thumbnails' => true,

View File

@ -149,7 +149,6 @@ class Movimento extends Model
/**
* Restituisce una descrizione standard applicabile a un movimento sulla base della relativa quantità e alla direzione.
*
* @param $qta
* @param string $direzione
*
* @return string

View File

@ -22,7 +22,7 @@ switch (post('op')) {
break;
// Aggiunta automezzo
// Aggiunta automezzo
case 'add':
$targa = post('targa');
$nome = post('nome');
@ -44,7 +44,7 @@ switch (post('op')) {
}
break;
// Aggiunta tecnico
// Aggiunta tecnico
case 'addtech':
$idtecnico = post('idtecnico');
$data_inizio = post('data_inizio');
@ -69,7 +69,7 @@ switch (post('op')) {
flash()->info(tr('Collegato un nuovo tecnico!'));
break;
// Salvataggio tecnici collegati
// Salvataggio tecnici collegati
case 'savetech':
$errors = 0;
@ -105,7 +105,7 @@ switch (post('op')) {
}
break;
// Eliminazione associazione con tecnico
// Eliminazione associazione con tecnico
case 'deltech':
$idautomezzotecnico = post('id');
@ -116,7 +116,7 @@ switch (post('op')) {
}
break;
// Aggiunta quantità nell'automezzo
// Aggiunta quantità nell'automezzo
case 'addrow':
$idarticolo = post('idarticolo');
$qta = post('qta');
@ -158,7 +158,7 @@ switch (post('op')) {
flash()->info(tr("Caricato il magazzino dell'automezzo!"));
break;
// Spostamento scorta da automezzo a magazzino generale
// Spostamento scorta da automezzo a magazzino generale
case 'moverow':
$idarticolo = post('idarticolo');
$idautomezzotecnico = post('idautomezzotecnico');

View File

@ -57,7 +57,7 @@ unset($_SESSION['superselect']['idautomezzo']);
<?php
include $docroot.'/modules/automezzi/row-list-tecnici.php';
?>
?>
</form>
<a href="javascript:;" class="btn btn-sm btn-success pull-right" title="Aggiorna date" onclick="$('#updatetech-form input[name=op]').val('savetech'); $('#updatetech-form').submit();"><i class="fa fa-edit"></i> <?php echo tr('Salva date'); ?></a>
@ -89,7 +89,7 @@ unset($_SESSION['superselect']['idautomezzo']);
<div class="col-md-12">
<?php
include $docroot.'/modules/automezzi/row-list-articoli.php';
?>
?>
<div class="pull-left">
<a class="btn btn-sm btn-primary" data-href="<?php echo $rootdir; ?>/modules/automezzi/add_articolo.php?idautomezzo=<?php echo $id_record; ?>" data-toggle="modal" data-title="Aggiungi articoli"><i class="fa fa-plus"></i> <?php echo tr('Articolo magazzino'); ?></a><br>

View File

@ -63,7 +63,7 @@ switch (filter('op')) {
} else {
flash()->error(tr('Errore durante la creazione del backup!').' '.str_replace('_DIR_', '"'.$backup_dir.'"', tr('Verifica che la cartella _DIR_ abbia i permessi di scrittura!')));
}
} catch (\Exception $e) {
} catch (Exception $e) {
flash()->error(tr('Errore durante la creazione del backup!').' '.$e->getMessage());
}

View File

@ -29,13 +29,13 @@ class BackupTask extends Manager
{
public function needsExecution()
{
return setting('Backup automatico') && !Backup::isDailyComplete();
return setting('Backup automatico') && !\Backup::isDailyComplete();
}
public function execute()
{
if (setting('Backup automatico') && !Backup::isDailyComplete()) {
Backup::daily();
if (setting('Backup automatico') && !\Backup::isDailyComplete()) {
\Backup::daily();
}
}
}

View File

@ -2,8 +2,6 @@
namespace Modules\Banche;
use UnexpectedValueException;
/**
* Format:
* b = National bank code (Codice ABI)
@ -418,7 +416,7 @@ class IBAN
$matches = array_filter($matches, 'is_string', ARRAY_FILTER_USE_KEY);
foreach ($matches as $key => $value) {
if (!isset($value[0])) {
throw new UnexpectedValueException('Invalid '.$key.' for format '.$regex);
throw new \UnexpectedValueException('Invalid '.$key.' for format '.$regex);
}
$this->{$key} = $value[0];
@ -443,7 +441,7 @@ class IBAN
if (in_array($char, $keys)) {
$count = substr_count($structure, $char);
$result .= str_pad(
substr($contents[self::$parsers[$char]], 0, $count),
substr($contents[self::$parsers[$char]], 0, $count),
$count, STR_PAD_LEFT);
$current += $count;
} else {

View File

@ -44,7 +44,7 @@ switch (filter('op')) {
if ($id_original != null) {
$database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit();
exit;
}
break;
@ -90,7 +90,7 @@ switch (filter('op')) {
// Redirect alla categoria se si sta aggiungendo una sottocategoria
$database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit();
exit;
}
break;

View File

@ -63,10 +63,10 @@ if (isset($id_record)) {
<button type="submit" class="btn btn-success"><i class="fa fa-save"></i> <?php echo tr('Salva'); ?></button>
<?php
} else {
?>
?>
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
<?php
}
}
?>
</div>
</div>

View File

@ -48,7 +48,7 @@ switch (filter('op')) {
if ($id_original != null) {
$database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit();
exit;
}
break;
@ -94,7 +94,7 @@ switch (filter('op')) {
// Redirect alla categoria se si sta aggiungendo una sottocategoria
$database->commitTransaction();
redirect(base_path().'/editor.php?id_module='.$id_module.'&id_record='.($id_original ?: $id_record));
exit();
exit;
}
break;

View File

@ -63,10 +63,10 @@ if (isset($id_record)) {
<button type="submit" class="btn btn-success"><i class="fa fa-save"></i> <?php echo tr('Salva'); ?></button>
<?php
} else {
?>
?>
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
<?php
}
}
?>
</div>
</div>

View File

@ -42,7 +42,7 @@ if ($main_check) {
'required' => 1,
'value' => htmlentities($record->content),
]);
?>
?>
</div>
</div>

View File

@ -23,7 +23,7 @@ if (!function_exists('renderChecklist')) {
global $structure;
$user = auth()->getUser();
$enabled = $check->assignedUsers ? ($check->assignedUsers->pluck('id')->search($user->id) !== false || ($user->idgruppo) == 1) : true;
$enabled = $check->assignedUsers ? ($check->assignedUsers->pluck('id')->search($user->id) !== false || $user->idgruppo == 1) : true;
$margin = ($level * 20);

View File

@ -27,11 +27,11 @@ echo '
<div class="row">
<div class="col-md-6">';
if (!empty($record['id_categoria'])) {
echo '
if (!empty($record['id_categoria'])) {
echo '
'.Modules::link('Categorie articoli', $record['id_categoria'], null, null, 'class="pull-right"');
}
echo '
}
echo '
{[ "type": "select", "label": "'.tr('Categoria').'", "name": "id_categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|'.Modules::get('Categorie articoli')['id'].'" ]}
</div>

View File

@ -36,7 +36,7 @@ class Combinazione extends Model
protected static $campi_varianti = [
'id_categoria',
'id_sottocategoria',
//'descrizione',
// 'descrizione',
'um',
'gg_garanzia',
'servizio',
@ -76,8 +76,6 @@ class Combinazione extends Model
/**
* Metodo per generare dinamicamente una variante dell'articolo per la combinazione corrente.
*
* @param $valori_attributi
*/
public function generaVariante($valori_attributi, $id_articolo = null)
{
@ -190,8 +188,6 @@ class Combinazione extends Model
/**
* Funzione per sincronizzare i campi condivisi dagli Articoli di tipo Variante.
*
* @param $values
*/
protected function sincronizzaCampi($values)
{

View File

@ -140,7 +140,7 @@ switch (post('op')) {
break;
// Duplica contratto
// Duplica contratto
case 'copy':
$new = $contratto->replicate(['idcontratto_prev']);
$new->numero = Contratto::getNextNumero($contratto->data_bozza, $contratto->id_segment);
@ -272,7 +272,7 @@ switch (post('op')) {
break;
// Eliminazione riga
// Eliminazione riga
case 'delete_riga':
$id_righe = (array) post('righe');
@ -293,7 +293,7 @@ switch (post('op')) {
break;
// Duplicazione riga
// Duplicazione riga
case 'copy_riga':
$id_righe = (array) post('righe');
@ -314,7 +314,7 @@ switch (post('op')) {
break;
// Scollegamento intervento da contratto
// Scollegamento intervento da contratto
case 'unlink':
if (get('idcontratto') !== null && get('idintervento') !== null) {
$idcontratto = get('idcontratto');
@ -338,7 +338,7 @@ switch (post('op')) {
break;
// eliminazione contratto
// eliminazione contratto
case 'delete':
// Fatture o interventi collegati a questo contratto
$elementi = $dbo->fetchArray('SELECT 0 AS `codice`, `co_documenti`.`id` AS `id`, `co_documenti`.`numero` AS `numero`, `co_documenti`.`numero_esterno` AS `numero_esterno`, `co_documenti`.`data`, `co_tipidocumento`.`descrizione` AS `tipo_documento`, `co_tipidocumento`.`dir` AS `dir` FROM `co_documenti` JOIN `co_tipidocumento` ON `co_tipidocumento`.`id` = `co_documenti`.`idtipodocumento` WHERE `co_documenti`.`id` IN (SELECT `iddocumento` FROM `co_righe_documenti` WHERE `idcontratto` = '.prepare($id_record).')'.'
@ -361,7 +361,7 @@ switch (post('op')) {
break;
// Rinnovo contratto
// Rinnovo contratto
case 'renew':
$diff = $contratto->data_conclusione->diffAsCarbonInterval($contratto->data_accettazione);
@ -471,14 +471,14 @@ switch (post('op')) {
break;
// Aggiunta di un documento in contratto
// Aggiunta di un documento in contratto
case 'add_preventivo':
case 'add_documento':
$class = post('class');
$id_documento = post('id_documento');
// Individuazione del documento originale
if (!is_subclass_of($class, \Common\Document::class)) {
if (!is_subclass_of($class, Common\Document::class)) {
return;
}
$documento = $class::find($id_documento);
@ -637,7 +637,7 @@ switch (post('op')) {
$numero_totale = 0;
foreach ($righe as $riga) {
if (($riga['id']) != null) {
if ($riga['id'] != null) {
$articolo = Articolo::find($riga['id']);
}

View File

@ -103,7 +103,7 @@ switch (post('op')) {
if ($qta > 0) {
$copia = $riga->copiaIn($fattura, $qta);
//Fix per idconto righe fattura
// Fix per idconto righe fattura
$articolo = ArticoloOriginale::find($copia->idarticolo);
$copia->id_conto = ($articolo->idconto_vendita ? $articolo->idconto_vendita : $idconto);
@ -220,31 +220,31 @@ switch (post('op')) {
}
break;
case 'cambia_stato':
$id_stato = post('id_stato');
case 'cambia_stato':
$id_stato = post('id_stato');
$n_contratti = 0;
$stato = StatoContratto::find($id_stato);
$n_contratti = 0;
$stato = StatoContratto::find($id_stato);
// Lettura righe selezionate
foreach ($id_records as $id) {
$contratto = Contratto::find($id);
// Lettura righe selezionate
foreach ($id_records as $id) {
$contratto = Contratto::find($id);
$contratto->stato()->associate($stato);
$contratto->save();
$contratto->stato()->associate($stato);
$contratto->save();
++$n_contratti;
}
++$n_contratti;
}
if ($n_contratti > 0) {
flash()->info(tr('Stato aggiornato a _NUM_ contratti!', [
'_NUM_' => $n_contratti,
]));
} else {
flash()->warning(tr('Nessuno stato aggiornato!'));
}
if ($n_contratti > 0) {
flash()->info(tr('Stato aggiornato a _NUM_ contratti!', [
'_NUM_' => $n_contratti,
]));
} else {
flash()->warning(tr('Nessuno stato aggiornato!'));
}
break;
break;
}
$operations['crea_fattura'] = [

View File

@ -65,7 +65,7 @@ if (strtotime($record['data_conclusione']) < strtotime($record['data_accettazion
<div class="col-md-3">
<?php
echo Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
?>
?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "id": "idanagrafica_c", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti" ]}
</div>
@ -83,9 +83,9 @@ if (strtotime($record['data_conclusione']) < strtotime($record['data_accettazion
</div>
<div class="col-md-3">';
if ($record['idagente'] != 0) {
echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
}
if ($record['idagente'] != 0) {
echo Modules::link('Anagrafiche', $record['idagente'], null, null, 'class="pull-right"');
}
echo '
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
</div>
@ -142,7 +142,7 @@ echo '
'name' => 'condizioni_fornitura',
'value' => $record['condizioni_fornitura'],
]);
?>
?>
</div>
</div>
@ -167,7 +167,7 @@ echo '
} else {
$collapsed = ' collapsed-box';
}
?>
?>
<!-- Fatturazione Elettronica PA-->
@ -271,7 +271,7 @@ echo '
<button type="button" onclick="$(this).next().toggleClass(\'hide\');" class="btn btn-info btn-sm"><i class="fa fa-th-list"></i> '.tr('Mostra tipi di attività non modificati').'</button>
<div class="hide">';
//Loop fra i tipi di attività e i relativi costi del tipo intervento (quelli a 0)
// Loop fra i tipi di attività e i relativi costi del tipo intervento (quelli a 0)
$rs = $dbo->fetchArray('SELECT * FROM co_contratti_tipiintervento INNER JOIN in_tipiintervento ON in_tipiintervento.idtipointervento = co_contratti_tipiintervento.idtipointervento WHERE co_contratti_tipiintervento.idtipointervento NOT IN('.implode(',', $idtipiintervento).') AND idcontratto='.prepare($id_record).' ORDER BY descrizione');
if (!empty($rs)) {
@ -316,7 +316,7 @@ if (!empty($rs)) {
echo '
</table>';
}
echo '
echo '
</div>
</div>

View File

@ -50,8 +50,8 @@ $righe = $dbo->fetchArray(
<?php
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT
$ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT
co_righe_contratti.idarticolo,
co_righe_preventivi.prezzo_unitario,
DATE(co_righe_preventivi.updated_at) AS updated_at
@ -66,10 +66,10 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_preventivi.id
ORDER BY
updated_at DESC'
)[0];
)[0];
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
co_righe_contratti.idarticolo,
co_righe_documenti.prezzo_unitario,
DATE(co_righe_documenti.updated_at) AS updated_at
@ -84,7 +84,7 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_documenti.id
ORDER BY
updated_at DESC'
)[0];
)[0];
?>
<tr>
@ -101,14 +101,14 @@ $righe = $dbo->fetchArray(
} else {
echo 'n.d.';
}
?></td>
?></td>
<td class="text-center"><?php
if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else {
echo 'n.d.';
}
?></td>
if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else {
echo 'n.d.';
}
?></td>
</tr>
<?php } ?>
</tbody>

View File

@ -281,42 +281,42 @@ echo '
</big>
<br><br>';
echo '
echo '
<div class="row">
<big class="col-md-4 col-md-offset-4 text-center">
<table class="table text-left table-striped table-bordered">';
if (!empty($totale_ore_contratto)) {
echo '
if (!empty($totale_ore_contratto)) {
echo '
<tr>
<td>'.tr('Ore a contratto').':</td>
<td class="text-right">'.Translator::numberToLocale($totale_ore_contratto).'</td>
</tr>';
}
echo '
}
echo '
<tr>
<td>'.tr('Ore erogate totali').':</td>
<td class="text-right">'.Translator::numberToLocale($totale_ore).'</td>
</tr>';
if (!empty($totale_ore_contratto)) {
echo '
if (!empty($totale_ore_contratto)) {
echo '
<tr>
<td>'.tr('Ore residue totali').':</td>
<td class="text-right">'.Translator::numberToLocale(floatval($totale_ore_contratto) - floatval($totale_ore)).'</td>
</tr>';
}
echo '
}
echo '
<tr>
<td>'.tr('Ore erogate concluse').':</td>
<td class="text-right">'.Translator::numberToLocale($totale_ore_completate).'</td>
</tr>';
if (!empty($totale_ore_contratto)) {
echo '
if (!empty($totale_ore_contratto)) {
echo '
<tr>
<td>'.tr('Ore residue concluse').':</td>
<td class="text-right">'.Translator::numberToLocale(floatval($totale_ore_contratto) - floatval($totale_ore_completate)).'</td>
</tr>';
}
echo '
}
echo '
</table>
</big>
</div>';
@ -327,7 +327,7 @@ if (empty($totale_ore_contratto)) {
<p>'.tr('Per monitorare il consumo ore, inserisci almeno una riga con unità di misura "ore"').'.</p>
</div>';
}
echo '
echo '
<div class="row">
<div class="col-md-6">
<table class="table text-left table-striped table-bordered">
@ -339,15 +339,15 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th>
</tr>';
ksort($tipologie);
foreach ($tipologie as $key => $tipologia) {
$margine = $tipologia['ricavo'] - $tipologia['costo'];
if ($tipologia['ricavo']) {
$margine_prc = (int) (1 - ($tipologia['costo'] / $tipologia['ricavo'])) * 100;
$ricarico_prc = ($tipologia['ricavo'] && $tipologia['costo']) ? (int) ((($tipologia['ricavo'] / $tipologia['costo']) - 1) * 100) : 100;
}
ksort($tipologie);
foreach ($tipologie as $key => $tipologia) {
$margine = $tipologia['ricavo'] - $tipologia['costo'];
if ($tipologia['ricavo']) {
$margine_prc = (int) (1 - ($tipologia['costo'] / $tipologia['ricavo'])) * 100;
$ricarico_prc = ($tipologia['ricavo'] && $tipologia['costo']) ? (int) ((($tipologia['ricavo'] / $tipologia['costo']) - 1) * 100) : 100;
}
echo '
echo '
<tr>
<td>'.$key.'</td>
<td class="text-right">'.Translator::numberToLocale($tipologia['ore']).'</td>
@ -356,8 +356,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>';
}
echo '
}
echo '
</table>
</div>
@ -372,14 +372,14 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th>
</tr>';
ksort($tecnici);
foreach ($tecnici as $key => $tecnico) {
$margine = $tecnico['ricavo'] - $tecnico['costo'];
if ($tecnico['ricavo']) {
$margine_prc = (int) (1 - ($tecnico['costo'] / $tecnico['ricavo'])) * 100;
$ricarico_prc = ($tecnico['ricavo'] && $tecnico['costo']) ? (int) ((($tecnico['ricavo'] / $tecnico['costo']) - 1) * 100) : 100;
}
echo '
ksort($tecnici);
foreach ($tecnici as $key => $tecnico) {
$margine = $tecnico['ricavo'] - $tecnico['costo'];
if ($tecnico['ricavo']) {
$margine_prc = (int) (1 - ($tecnico['costo'] / $tecnico['ricavo'])) * 100;
$ricarico_prc = ($tecnico['ricavo'] && $tecnico['costo']) ? (int) ((($tecnico['ricavo'] / $tecnico['costo']) - 1) * 100) : 100;
}
echo '
<tr>
<td>'.$key.'</td>
<td class="text-right">'.(int) $tecnico['km'].'</td>
@ -389,8 +389,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>';
}
echo '
}
echo '
</table>
</div>
</div>
@ -406,14 +406,14 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th>
</tr>';
ksort($stati_intervento);
foreach ($stati_intervento as $key => $stato) {
$margine = $stato['ricavo'] - $stato['costo'];
if ($stato['ricavo']) {
$margine_prc = (int) (1 - ($stato['costo'] / $stato['ricavo'])) * 100;
$ricarico_prc = ($stato['ricavo'] && $stato['costo']) ? (int) ((($stato['ricavo'] / $stato['costo']) - 1) * 100) : 100;
}
echo '
ksort($stati_intervento);
foreach ($stati_intervento as $key => $stato) {
$margine = $stato['ricavo'] - $stato['costo'];
if ($stato['ricavo']) {
$margine_prc = (int) (1 - ($stato['costo'] / $stato['ricavo'])) * 100;
$ricarico_prc = ($stato['ricavo'] && $stato['costo']) ? (int) ((($stato['ricavo'] / $stato['costo']) - 1) * 100) : 100;
}
echo '
<tr>
<td><div class="img-circle" style="width:18px; height:18px; position:relative; bottom:-2px; background:'.$stato['colore'].'; float:left;"></div> '.$key.'</td>
<td class="text-right">'.Translator::numberToLocale($stato['ore']).'</td>
@ -422,8 +422,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>';
}
echo '
}
echo '
</table>
</div>
@ -437,14 +437,14 @@ if (empty($totale_ore_contratto)) {
<th width="10%">'.tr('Margine').'</th>
<th width="10%">'.tr('Ricarico').'</th>
</tr>';
ksort($materiali_art);
foreach ($materiali_art as $key => $materiali_array1) {
foreach ($materiali_array1 as $materiali_array2) {
foreach ($materiali_array2 as $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
echo '
ksort($materiali_art);
foreach ($materiali_art as $key => $materiali_array1) {
foreach ($materiali_array1 as $materiali_array2) {
foreach ($materiali_array2 as $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
echo '
<tr>
<td>'.Modules::link('Articoli', $materiale['id'], $key).'</td>
<td class="text-center">'.$materiale['qta'].'</td>
@ -453,16 +453,16 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>';
}
}
}
}
}
}
ksort($materiali_righe);
foreach ($materiali_righe as $key => $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
echo '
ksort($materiali_righe);
foreach ($materiali_righe as $key => $materiale) {
$margine = $materiale['ricavo'] - $materiale['costo'];
$margine_prc = (int) (1 - ($materiale['costo'] / $materiale['ricavo'])) * 100;
$ricarico_prc = ($materiale['ricavo'] && $materiale['costo']) ? (int) ((($materiale['ricavo'] / $materiale['costo']) - 1) * 100) : 100;
echo '
<tr>
<td>'.$key.'</td>
<td class="text-center">'.$materiale['qta'].'</td>
@ -471,8 +471,8 @@ if (empty($totale_ore_contratto)) {
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$margine_prc.'%)</td>
<td class="text-right '.($margine > 0 ? 'bg-success' : 'bg-danger').'">'.Translator::numberToLocale($margine).' ('.$ricarico_prc.'%)</td>
</tr>';
}
echo '
}
echo '
</table>
</div>
</div>

View File

@ -30,11 +30,11 @@ echo '
<thead>
<tr>
<th width="5" class="text-center">';
if (!$block_edit && sizeof($righe) > 0) {
echo '
if (!$block_edit && sizeof($righe) > 0) {
echo '
<input id="check_all" type="checkbox"/>';
}
echo '
}
echo '
</th>
<th width="35" class="text-center">'.tr('#').'</th>
<th>'.tr('Descrizione').'</th>

View File

@ -49,7 +49,7 @@ include_once __DIR__.'/../../core.php';
'required' => 1,
'value' => '{[ "type": "text", "label": "|label|", "name": "|name|", "value": "|value|" ]}',
]);
?>
?>
</div>
</div>

View File

@ -64,7 +64,7 @@ include_once __DIR__.'/../../core.php';
'name' => 'content',
'value' => $record['content'],
]);
?>
?>
</div>
</div>
</form>

View File

@ -121,7 +121,7 @@ switch (filter('op')) {
}
if (setting('Visualizza informazioni aggiuntive sul calendario')) {
//# Box allDay preventivi
// # Box allDay preventivi
$query = 'SELECT
co_preventivi.id,
co_preventivi.nome,
@ -151,9 +151,9 @@ switch (filter('op')) {
'id' => 'A_'.$modulo_preventivi->id.'_'.$preventivo['id'],
'idintervento' => $preventivo['id'],
'idtecnico' => '',
'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div>'.'<b>'.tr('Accettazione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div><b>'.tr('Accettazione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'start' => $preventivo['data_accettazione'],
//'end' => $preventivo['data_accettazione'],
// 'end' => $preventivo['data_accettazione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'],
'backgroundColor' => '#ff7f50',
'textColor' => color_inverse('#ff7f50'),
@ -169,9 +169,9 @@ switch (filter('op')) {
'id' => 'B_'.$modulo_preventivi->id.'_'.$preventivo['id'],
'idintervento' => $preventivo['id'],
'idtecnico' => '',
'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div>'.'<b>'.tr('Conclusione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'title' => '<div style=\'position:absolute; top:7%; right:3%;\' > '.(($preventivo['is_completato']) ? '<i class="fa fa-lock" aria-hidden="true"></i>' : '<i class="fa fa-pencil" aria-hidden="true"></i>').' '.(($preventivo['have_attachments']) ? '<i class="fa fa-paperclip" aria-hidden="true"></i>' : '').'</div><b>'.tr('Conclusione prev.').' '.$preventivo['numero'].'</b> '.$preventivo['nome'].'<br><b>'.tr('Cliente').':</b> '.$preventivo['cliente'],
'start' => $preventivo['data_conclusione'],
//'end' => $preventivo['data_conclusione'],
// 'end' => $preventivo['data_conclusione'],
'url' => base_path().'/editor.php?id_module='.$modulo_preventivi->id.'&id_record='.$preventivo['id'],
'backgroundColor' => '#ff7f50',
'textColor' => color_inverse('#ff7f50'),
@ -184,7 +184,7 @@ switch (filter('op')) {
}
}
//# Box allDay eventi (escluse festività)
// # Box allDay eventi (escluse festività)
$query = 'SELECT
*
FROM
@ -197,7 +197,7 @@ switch (filter('op')) {
OR
(`zz_events`.`is_recurring` = 0 AND `zz_events`.`data` >= '.prepare($start).' AND `zz_events`.`data` <= '.prepare($end).')';
//echo $query;
// echo $query;
$eventi = $dbo->fetchArray($query);
@ -206,7 +206,7 @@ switch (filter('op')) {
'id' => $modulo_eventi->id.'_'.$evento['id'],
'title' => '<b>'.tr('Evento').':</b> '.$evento['nome'].'</b>',
'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']),
//'end' => $evento['data'],
// 'end' => $evento['data'],
'extendedProps' => [
'link' => base_path().'/editor.php?id_module='.$modulo_eventi->id.'&id_record='.$evento['id'],
'idintervento' => $evento['id'],
@ -276,7 +276,7 @@ switch (filter('op')) {
$query = 'SELECT *, in_interventi.codice, an_anagrafiche.note AS note_anagrafica, idstatointervento AS parent_idstato, in_interventi.idtipointervento AS parent_idtipo, (SELECT GROUP_CONCAT(CONCAT(matricola, " - ", nome) SEPARATOR ", ") FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id=my_impianti_interventi.idimpianto WHERE my_impianti_interventi.idintervento='.prepare($id).' GROUP BY my_impianti_interventi.idintervento) AS impianti, (SELECT descrizione FROM in_statiintervento WHERE idstatointervento=parent_idstato) AS stato, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=parent_idtipo) AS tipo, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica=in_interventi.idanagrafica) AS idzona FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id =in_interventi_tecnici.idintervento LEFT JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi', null, false);
$rs = $dbo->fetchArray($query);
//correggo info indirizzo citta cap provincia con quelle della sede di destinazione
// correggo info indirizzo citta cap provincia con quelle della sede di destinazione
if (!empty($rs[0]['idsede_destinazione'])) {
$sede = $database->fetchOne('SELECT * FROM an_sedi WHERE id = '.prepare($rs[0]['idsede_destinazione']));
$rs[0]['indirizzo'] = $sede['nomesede'].'<br>'.$sede['indirizzo'];
@ -354,7 +354,7 @@ switch (filter('op')) {
}
}
$tooltip .= '
$tooltip .= '
<script type="text/javascript">
$(".shorten").shorten({
moreText: "'.tr('Mostra tutto').'",
@ -363,7 +363,7 @@ switch (filter('op')) {
});
</script>';
echo $tooltip;
echo $tooltip;
break;
@ -413,16 +413,16 @@ switch (filter('op')) {
FROM in_interventi
INNER JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica";
// Visualizzo solo promemoria del tecnico loggato
if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) {
$query_interventi .= '
// Visualizzo solo promemoria del tecnico loggato
if (!empty($id_tecnico) && !empty($solo_promemoria_assegnati)) {
$query_interventi .= '
INNER JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento AND id_tecnico = '.prepare($id_tecnico);
} else {
$query_interventi .= '
} else {
$query_interventi .= '
LEFT JOIN in_interventi_tecnici_assegnati ON in_interventi.id = in_interventi_tecnici_assegnati.id_intervento';
}
}
$query_interventi .= '
$query_interventi .= '
LEFT JOIN in_interventi_tecnici ON in_interventi_tecnici.idintervento = in_interventi.id
INNER JOIN in_statiintervento ON in_interventi.idstatointervento = in_statiintervento.idstatointervento
LEFT JOIN an_anagrafiche AS tecnico ON in_interventi_tecnici_assegnati.id_tecnico = tecnico.idanagrafica
@ -479,12 +479,12 @@ switch (filter('op')) {
break;
case 'calendario_eventi':
$start = filter('start');
$end = filter('end');
case 'calendario_eventi':
$start = filter('start');
$end = filter('end');
//TODO: Problema con anni bisestili Es. 2024-02-29 e 2023-03-01 sono entrambi il 60 esimo giorno dell'anno.
$query = 'SELECT *, DAYOFYEAR(`zz_events`.`data`) AS d, DAYOFYEAR('.prepare($start).') AS st, DAYOFYEAR('.prepare($end).') AS fi FROM `zz_events`
// TODO: Problema con anni bisestili Es. 2024-02-29 e 2023-03-01 sono entrambi il 60 esimo giorno dell'anno.
$query = 'SELECT *, DAYOFYEAR(`zz_events`.`data`) AS d, DAYOFYEAR('.prepare($start).') AS st, DAYOFYEAR('.prepare($end).') AS fi FROM `zz_events`
WHERE `zz_events`.`is_bank_holiday` = 1
AND
(`zz_events`.`is_recurring` = 1
@ -492,22 +492,22 @@ switch (filter('op')) {
OR
(`zz_events`.`is_recurring` = 0 AND `zz_events`.`data` >= '.prepare($start).' AND `zz_events`.`data` <= '.prepare($end).')';
$eventi = $dbo->fetchArray($query);
$eventi = $dbo->fetchArray($query);
$results = [];
foreach ($eventi as $evento) {
$results[] = [
'id' => $evento['id'],
'title' => $evento['nome'],
'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']),
//'end' => date('Y-m-d', strtotime($evento['data']. '+1 day')),
'display' => 'background',
'allDay' => true,
'overlap' => true,
];
}
$results = [];
foreach ($eventi as $evento) {
$results[] = [
'id' => $evento['id'],
'title' => $evento['nome'],
'start' => ($evento['is_recurring'] ? date('Y-', strtotime($start)).date('m-d', strtotime($evento['data'])) : $evento['data']),
// 'end' => date('Y-m-d', strtotime($evento['data']. '+1 day')),
'display' => 'background',
'allDay' => true,
'overlap' => true,
];
}
echo json_encode($results);
echo json_encode($results);
break;
}

View File

@ -275,14 +275,14 @@ switch (filter('op')) {
break;
// Aggiunta di un documento in ddt
// Aggiunta di un documento in ddt
case 'add_ordine':
case 'add_documento':
$class = post('class');
$id_documento = post('id_documento');
// Individuazione del documento originale
if (!is_subclass_of($class, \Common\Document::class)) {
if (!is_subclass_of($class, Common\Document::class)) {
return;
}
$documento = $class::find($id_documento);
@ -374,7 +374,7 @@ switch (filter('op')) {
break;
// Eliminazione riga
// Eliminazione riga
case 'delete_riga':
$id_righe = (array) post('righe');
@ -401,7 +401,7 @@ switch (filter('op')) {
break;
// Duplicazione riga
// Duplicazione riga
case 'copy_riga':
$id_righe = (array) post('righe');
@ -427,7 +427,7 @@ switch (filter('op')) {
break;
// eliminazione ddt
// eliminazione ddt
case 'delete':
try {
// Se il ddt è collegato ad un ddt di trasporto interno, devo annullare il movimento del magazzino
@ -468,14 +468,14 @@ switch (filter('op')) {
break;
/*
* Gestione della generazione di DDT in direzione opposta a quella corrente, per completare il riferimento di trasporto interno tra sedi distinte dell'anagrafica Azienda.
*/
/*
* Gestione della generazione di DDT in direzione opposta a quella corrente, per completare il riferimento di trasporto interno tra sedi distinte dell'anagrafica Azienda.
*/
case 'completa_trasporto':
$tipo = Tipo::where('dir', '!=', $ddt->direzione)->first();
$stato = Stato::where('descrizione', '=', 'Evaso')->first();
// Duplicazione DDT
// Duplicazione DDT
$id_segment = post('id_segment');
if (get('id_segment')) {
$id_segment = get('id_segment');
@ -525,7 +525,7 @@ switch (filter('op')) {
break;
// Duplica ddt
// Duplica ddt
case 'copy':
$new = $ddt->replicate();
@ -653,7 +653,7 @@ switch (filter('op')) {
$numero_totale = 0;
foreach ($righe as $riga) {
if (($riga['id']) != null) {
if ($riga['id'] != null) {
$articolo = Articolo::find($riga['id']);
}

View File

@ -39,7 +39,7 @@ foreach ($fields as $name => $value) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"';
}
//$query .= Modules::getAdditionalsQuery('Interventi');
// $query .= Modules::getAdditionalsQuery('Interventi');
$rs = $dbo->fetchArray($query);

View File

@ -105,7 +105,7 @@ switch (post('op')) {
if ($qta > 0) {
$copia = $riga->copiaIn($fattura, $qta);
//Fix per idconto righe fattura
// Fix per idconto righe fattura
$articolo = ArticoloOriginale::find($copia->idarticolo);
$copia->id_conto = ($articolo->idconto_vendita ? $articolo->idconto_vendita : $idconto);
@ -128,7 +128,7 @@ switch (post('op')) {
} else {
flash()->warning(tr('Nessun ddt fatturato!'));
}
break;
break;
case 'delete-bulk':
foreach ($id_records as $id) {
@ -140,7 +140,7 @@ switch (post('op')) {
}
flash()->info(tr('Ddt eliminati!'));
break;
break;
case 'cambia_stato':
$id_stato = post('id_stato');
@ -163,7 +163,7 @@ switch (post('op')) {
flash()->warning(tr('Nessun DDT modificato!'));
}
break;
break;
}
if (App::debug()) {
@ -190,16 +190,16 @@ $operations['crea_fattura'] = [
],
];
$operations['cambia_stato'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'),
'data' => [
'title' => tr('Vuoi davvero cambiare lo stato per questi DDT?'),
'msg' => tr('Seleziona lo stato in cui spostare tutti i DDT').'.<br>
$operations['cambia_stato'] = [
'text' => '<span><i class="fa fa-refresh"></i> '.tr('Cambia stato'),
'data' => [
'title' => tr('Vuoi davvero cambiare lo stato per questi DDT?'),
'msg' => tr('Seleziona lo stato in cui spostare tutti i DDT').'.<br>
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT id, descrizione, colore as _bgcolor_ FROM dt_statiddt" ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
return $operations;

View File

@ -91,7 +91,7 @@ if ($dir == 'entrata') {
{[ "type": "span", "label": "'.tr('Numero ddt').'", "class": "text-center", "value": "$numero$" ]}
</div>';
}
?>
?>
<div class="col-md-6">
{[ "type": "text", "label": "<?php echo tr('Numero secondario'); ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$" ]}
@ -103,22 +103,22 @@ if ($dir == 'entrata') {
<div class="col-md-6">
<?php
if (setting('Cambia automaticamente stato ddt fatturati')) {
if ($record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') {
?>
if (setting('Cambia automaticamente stato ddt fatturati')) {
if ($record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]}
<?php
} else {
?>
} else {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt WHERE descrizione IN('Bozza', 'Evaso', 'Parzialmente evaso') ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
<?php
}
} else {
?>
}
} else {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
<?php
}
?>
}
?>
</div>
<?php
if ($dir == 'entrata') {
@ -131,7 +131,7 @@ if ($dir == 'entrata') {
{[ "type": "select", "label": "'.tr('Agente').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente$" ]}
</div>';
}
?>
?>
</div>
<div class="row">
@ -140,21 +140,21 @@ if ($dir == 'entrata') {
{[ "type": "select", "label": "<?php echo ($dir == 'uscita') ? tr('Mittente') : tr('Destinatario'); ?>", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti_fornitori" ]}
</div>
<?php
echo '
echo '
<div class="col-md-6">';
if (!empty($record['idreferente'])) {
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
}
echo '
if (!empty($record['idreferente'])) {
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
}
echo '
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'} ]}
</div>';
// Conteggio numero articoli ddt in uscita
$articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN dt_righe_ddt ON mg_articoli.id=dt_righe_ddt.idarticolo) INNER JOIN dt_ddt ON dt_ddt.id=dt_righe_ddt.idddt) WHERE dt_ddt.id='.prepare($id_record));
$id_modulo_anagrafiche = Modules::get('Anagrafiche')['id'];
$id_plugin_sedi = Plugins::get('Sedi')['id'];
if ($dir == 'entrata') {
echo '
// Conteggio numero articoli ddt in uscita
$articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN dt_righe_ddt ON mg_articoli.id=dt_righe_ddt.idarticolo) INNER JOIN dt_ddt ON dt_ddt.id=dt_righe_ddt.idddt) WHERE dt_ddt.id='.prepare($id_record));
$id_modulo_anagrafiche = Modules::get('Anagrafiche')['id'];
$id_plugin_sedi = Plugins::get('Sedi')['id'];
if ($dir == 'entrata') {
echo '
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "help": "'.tr("Sedi di partenza dell'azienda").'" ]}
</div>
@ -162,8 +162,8 @@ if ($dir == 'entrata') {
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_destinazione$", "help": "'.tr('Sedi del destinatario').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>';
} else {
echo '
} else {
echo '
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_partenza$", "help": "'.tr('Sedi del mittente').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>
@ -171,8 +171,8 @@ if ($dir == 'entrata') {
<div class="col-md-6">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "help": "'.tr("Sedi di arrivo dell'azienda").'" ]}
</div>';
}
?>
}
?>
</div>
</div>
</div>
@ -181,18 +181,18 @@ if ($dir == 'entrata') {
<div class="col-md-4">
<?php
$sede_anagrafica = $ddt->anagrafica->sedeLegale;
$id_sede_anagrafica = $dir == 'entrata' ? $ddt->idsede_destinazione : $ddt->idsede_partenza;
if (!empty($id_sede_anagrafica)) {
$sede_anagrafica = Sede::find($id_sede_anagrafica);
}
$id_sede_anagrafica = $dir == 'entrata' ? $ddt->idsede_destinazione : $ddt->idsede_partenza;
if (!empty($id_sede_anagrafica)) {
$sede_anagrafica = Sede::find($id_sede_anagrafica);
}
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$sede_azienda = $anagrafica_azienda->sedeLegale;
$id_sede_azienda = $dir == 'entrata' ? $ddt->idsede_partenza : $ddt->idsede_destinazione;
if (!empty($id_sede_azienda)) {
$sede_azienda = Sede::find($id_sede_azienda);
}
?>
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$sede_azienda = $anagrafica_azienda->sedeLegale;
$id_sede_azienda = $dir == 'entrata' ? $ddt->idsede_partenza : $ddt->idsede_destinazione;
if (!empty($id_sede_azienda)) {
$sede_azienda = Sede::find($id_sede_azienda);
}
?>
<!-- GEOLOCALIZZAZIONE -->
<div class="panel panel-primary">
@ -201,38 +201,38 @@ if ($dir == 'entrata') {
</div>
<div class="panel-body">
<?php
if (!empty($sede_anagrafica->gaddress) || (!empty($sede_anagrafica->lat) && !empty($sede_anagrafica->lng))) {
echo '
if (!empty($sede_anagrafica->gaddress) || (!empty($sede_anagrafica->lat) && !empty($sede_anagrafica->lng))) {
echo '
<div id="map-edit" style="width: 100%;"></div>
<div class="clearfix"></div>
<br>';
// Navigazione diretta verso l'indirizzo
echo '
// Navigazione diretta verso l'indirizzo
echo '
<a class="btn btn-info btn-block" onclick="$(\'#map-edit\').height(235); caricaMappa(); $(this).hide();">
<i class="fa fa-compass"></i> '.tr('Carica mappa').'
</a>';
// Navigazione diretta verso l'indirizzo
echo '
// Navigazione diretta verso l'indirizzo
echo '
<a class="btn btn-info btn-block" onclick="calcolaPercorso()">
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
</a>';
} else {
// Navigazione diretta verso l'indirizzo
echo '
} else {
// Navigazione diretta verso l'indirizzo
echo '
<a class="btn btn-info btn-block" onclick="calcolaPercorso()">
<i class="fa fa-map-signs"></i> '.tr('Calcola percorso').'
</a>';
// Ricerca diretta su Mappa
echo '
// Ricerca diretta su Mappa
echo '
<a class="btn btn-info btn-block" onclick="cercaOpenStreetMap()">
<i class="fa fa-map-marker"></i> '.tr('Cerca su Mappa').'
'.((!empty($sede_anagrafica->lat)) ? tr(' (GPS)') : '').'
</a>';
}
}
echo '
</div>
@ -319,7 +319,7 @@ if ($dir == 'entrata') {
map.setView([lat, lng], 10);
}
</script>';
?>
?>
</div>
</div>
@ -337,10 +337,10 @@ if ($dir == 'entrata') {
<div class="col-md-3">
<?php
if (!empty($record['idcausalet'])) {
echo Modules::link('Causali', $record['idcausalet'], null, null, 'class="pull-right"');
}
?>
if (!empty($record['idcausalet'])) {
echo Modules::link('Causali', $record['idcausalet'], null, null, 'class="pull-right"');
}
?>
{[ "type": "select", "label": "<?php echo tr('Causale trasporto'); ?>", "name": "idcausalet", "required": 1, "value": "$idcausalet$", "ajax-source": "causali", "icon-after": "add|<?php echo Modules::get('Causali')['id']; ?>|||<?php echo $block_edit ? 'disabled' : ''; ?>", "help": "<?php echo tr('Definisce la causale del trasporto'); ?>" ]}
</div>
@ -364,13 +364,13 @@ if ($dir == 'entrata') {
<div class="col-md-3">
<?php
if (!empty($record['idvettore'])) {
echo Modules::link('Anagrafiche', $record['idvettore'], null, null, 'class="pull-right"');
}
$esterno = $dbo->selectOne('dt_spedizione', 'esterno', [
'id' => $record['idspedizione'],
])['esterno'];
?>
if (!empty($record['idvettore'])) {
echo Modules::link('Anagrafiche', $record['idvettore'], null, null, 'class="pull-right"');
}
$esterno = $dbo->selectOne('dt_spedizione', 'esterno', [
'id' => $record['idspedizione'],
])['esterno'];
?>
{[ "type": "select", "label": "<?php echo tr('Vettore'); ?>", "name": "idvettore", "ajax-source": "vettori", "value": "$idvettore$", "disabled": <?php echo empty($esterno) || (!empty($esterno) && !empty($record['idvettore'])) ? 1 : 0; ?>, "required": <?php echo !empty($esterno) ?: 0; ?>, "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Vettore&readonly_tipo=1|btn_idvettore|<?php echo ($esterno and (intval(!$record['flag_completato']) || empty($record['idvettore']))) ? '' : 'disabled'; ?>", "class": "<?php echo empty($record['idvettore']) ? 'unblockable' : ''; ?>" ]}
</div>
@ -441,7 +441,7 @@ if ($dir == 'entrata') {
<div class="row">
<div class="col-md-3">
{[ "type": "number", "label": "'.('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($ddt->sconto_finale_percentuale ?: $ddt->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($ddt->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento').'." ]}
{[ "type": "number", "label": "Sconto in fattura", "name": "sconto_finale", "value": "'.($ddt->sconto_finale_percentuale ?: $ddt->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($ddt->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul netto a pagare del documento').'." ]}
</div>
</div>';
}
@ -464,7 +464,7 @@ if ($dir == 'entrata') {
} else {
$collapsed = ' collapsed-box';
}
?>
?>
<!-- Fatturazione Elettronica PA-->

View File

@ -51,8 +51,8 @@ $righe = $dbo->fetchArray(
<?php
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT
$ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT
dt_righe_ddt.idarticolo,
co_righe_preventivi.prezzo_unitario,
DATE(co_righe_preventivi.updated_at) AS updated_at
@ -67,10 +67,10 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_preventivi.id
ORDER BY
updated_at DESC'
)[0];
)[0];
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
dt_righe_ddt.idarticolo,
co_righe_documenti.prezzo_unitario,
DATE(co_righe_documenti.updated_at) AS updated_at
@ -85,7 +85,7 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_documenti.id
ORDER BY
updated_at DESC'
)[0];
)[0];
?>
<tr>
@ -102,14 +102,14 @@ $righe = $dbo->fetchArray(
} else {
echo 'n.d.';
}
?></td>
?></td>
<td class="text-center"><?php
if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else {
echo 'n.d.';
}
?></td>
if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else {
echo 'n.d.';
}
?></td>
</tr>
<?php } ?>
</tbody>

View File

@ -30,19 +30,19 @@ echo '
<thead>
<tr>
<th width="5" class="text-center">';
if (!$block_edit && sizeof($righe) > 0) {
echo '
if (!$block_edit && sizeof($righe) > 0) {
echo '
<input id="check_all" type="checkbox"/>';
}
echo '
}
echo '
</th>
<th width="35" class="text-center">'.tr('#').'</th>
<th>'.tr('Descrizione').'</th>
<th class="text-center tip" width="150">'.tr('Q.').'</th>';
if ($dir == 'entrata') {
echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>';
}
echo '
if ($dir == 'entrata') {
echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>';
}
echo '
<th class="text-center" width="180">'.tr('Prezzo unitario').'</th>
<th class="text-center" width="140">'.tr('Sconto unitario').'</th>
<th class="text-center" width="130">'.tr('Importo').'</th>

View File

@ -19,7 +19,6 @@
namespace Modules\DDT;
use Auth;
use Common\Components\Component;
use Common\Document;
use Modules\Anagrafiche\Anagrafica;
@ -59,7 +58,7 @@ class DDT extends Document
{
$model = new static();
$user = Auth::user();
$user = \Auth::user();
$stato_documento = Stato::where('descrizione', 'Bozza')->first();

View File

@ -123,7 +123,7 @@ echo '
'name' => 'body',
'value' => $record['body'],
]);
?>
?>
</div>
</div>

View File

@ -24,6 +24,6 @@ include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM em_templates WHERE id='.prepare($id_record).' AND deleted_at IS NULL');
//Controllo se ci sono newletter collegate a questo template
// Controllo se ci sono newletter collegate a questo template
$newsletters = Newsletter::where('id_template', $id_record)->get();
}

View File

@ -32,7 +32,7 @@ class Mail extends Model
protected $table = 'em_emails';
protected $options = null;
protected $options;
public static function build(User $user, $template = null, $id_record = null, $account = null)
{
@ -75,8 +75,7 @@ class Mail extends Model
/**
* Aggiunge una stampa alla notifica.
*
* @param string|int $print
* @param string $name
* @param string $name
*/
public function addPrint($print_id, $name = null)
{

View File

@ -19,7 +19,7 @@ class Microsoft extends Azure implements ProviderInterface
'scope' => [
'offline_access',
'https://outlook.office.com/SMTP.Send',
//'https://outlook.office.com/IMAP.AccessAsUser.All'
// 'https://outlook.office.com/IMAP.AccessAsUser.All'
],
];

View File

@ -19,7 +19,7 @@
include_once __DIR__.'/../../core.php';
//$block_edit = $record['is_predefined'];
// $block_edit = $record['is_predefined'];
?>

View File

@ -19,7 +19,7 @@
include_once __DIR__.'/../../core.php';
//$block_edit = $record['is_predefined'];
// $block_edit = $record['is_predefined'];
?>
@ -76,11 +76,11 @@ include_once __DIR__.'/../../core.php';
<?php
$results = $dbo->fetchArray('SELECT * FROM `co_pagamenti` WHERE descrizione='.prepare($record['descrizione']).' ORDER BY `num_giorni` ASC');
$numero_data = 1;
foreach ($results as $result) {
}
$numero_data = 1;
foreach ($results as $result) {
}
?>
?>
</div>
<div class="pull-right">

View File

@ -48,7 +48,7 @@ $stato_fe = $dbo->fetchOne('SELECT codice_stato_fe FROM co_documenti WHERE id =
$ops = ['update', 'add_intervento', 'manage_documento_fe', 'manage_riga_fe', 'manage_articolo', 'manage_sconto', 'manage_riga', 'manage_descrizione', 'unlink_intervento', 'delete_riga', 'copy_riga', 'add_serial', 'add_articolo', 'edit-price'];
if ($dir === 'entrata' && in_array($stato_fe['codice_stato_fe'], ['WAIT', 'RC', 'MC', 'QUEUE', 'DT', 'EC01', 'NE']) && Interaction::isEnabled() && in_array($op, $ops)) {
//Permetto sempre la modifica delle note aggiuntive e/o della data di competenza della fattura di vendita
// Permetto sempre la modifica delle note aggiuntive e/o della data di competenza della fattura di vendita
if ($op == 'update' && ($fattura->note_aggiuntive != post('note_aggiuntive') || $fattura->data_competenza != post('data_competenza'))) {
if ($fattura->note_aggiuntive != post('note_aggiuntive')) {
$fattura->note_aggiuntive = post('note_aggiuntive');
@ -111,7 +111,7 @@ switch ($op) {
WHERE
co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment);
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->descrizione == 'Emessa') && (Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax']))) && (!empty($data_fattura_precedente['datamax']))) {
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && ($stato->descrizione == 'Emessa') && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) {
$fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax'];
flash()->info(tr('Data di emissione aggiornata, come da impostazione!'));
@ -270,13 +270,13 @@ switch ($op) {
break;
// Ricalcolo scadenze
// Ricalcolo scadenze
case 'ricalcola_scadenze':
$fattura->registraScadenze(false, true);
break;
// Ricalcolo scadenze
// Ricalcolo scadenze
case 'controlla_totali':
$totale_documento = null;
@ -308,7 +308,7 @@ switch ($op) {
break;
// Elenco fatture in stato Bozza per il cliente
// Elenco fatture in stato Bozza per il cliente
case 'fatture_bozza':
$id_anagrafica = post('id_anagrafica');
$stato = Stato::where('descrizione', 'Bozza')->first();
@ -327,7 +327,7 @@ switch ($op) {
break;
// Elenco fatture Scadute per il cliente
// Elenco fatture Scadute per il cliente
case 'fatture_scadute':
$id_anagrafica = post('id_anagrafica');
$stato1 = Stato::where('descrizione', 'Emessa')->first();
@ -353,7 +353,7 @@ switch ($op) {
break;
// eliminazione documento
// eliminazione documento
case 'delete':
try {
$fattura->delete();
@ -371,7 +371,7 @@ switch ($op) {
break;
// Duplicazione fattura
// Duplicazione fattura
case 'copy':
$new = $fattura->replicate();
$new->id_autofattura = null;
@ -633,7 +633,7 @@ switch ($op) {
break;
// Scollegamento intervento da documento
// Scollegamento intervento da documento
case 'unlink_intervento':
if (!empty($id_record) && post('idriga') !== null) {
$id_riga = post('idriga');
@ -655,7 +655,7 @@ switch ($op) {
break;
// Scollegamento riga generica da documento
// Scollegamento riga generica da documento
case 'delete_riga':
$id_righe = (array) post('righe');
@ -684,7 +684,7 @@ switch ($op) {
break;
// Duplicazione riga
// Duplicazione riga
case 'copy_riga':
$id_righe = (array) post('righe');
@ -727,13 +727,13 @@ switch ($op) {
break;
// Aggiunta di un documento esterno
// Aggiunta di un documento esterno
case 'add_documento':
$class = post('class');
$id_documento = post('id_documento');
// Individuazione del documento originale
if (!is_subclass_of($class, \Common\Document::class)) {
if (!is_subclass_of($class, Common\Document::class)) {
return;
}
$documento = $class::find($id_documento);
@ -822,7 +822,7 @@ switch ($op) {
break;
// Nota di credito
// Nota di credito
case 'nota_credito':
$id_documento = post('id_documento');
$fattura = Fattura::find($id_documento);
@ -871,7 +871,7 @@ switch ($op) {
break;
// Autofattura
// Autofattura
case 'autofattura':
$fattura = Fattura::find($id_record);
@ -1034,7 +1034,7 @@ switch ($op) {
}
break;
// Controllo se impostare anagrafica azienda in base a tipologia documento
// Controllo se impostare anagrafica azienda in base a tipologia documento
case 'check_tipodocumento':
$idtipodocumento = post('idtipodocumento');
$tipologie = Tipo::wherein('codice_tipo_documento_fe', ['TD21', 'TD27'])->where('dir', 'entrata')->get()->pluck('id')->toArray();
@ -1066,7 +1066,7 @@ switch ($op) {
$numero_totale = 0;
foreach ($righe as $riga) {
if (($riga['id']) != null) {
if ($riga['id'] != null) {
$articolo = Articolo::find($riga['id']);
}

View File

@ -57,7 +57,7 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
} else {
$size = 6;
}
?>
?>
<div class="col-md-<?php echo $size; ?>">
{[ "type": "date", "label": "<?php echo tr('Data'); ?>", "name": "data", "required": 1, "value": "-now-" ]}
@ -79,8 +79,8 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
</div>
<?php
if ($dir == 'entrata') {
echo '
if ($dir == 'entrata') {
echo '
<div id="info" class="hidden">
<div class="row">
<div class="col-md-6 ">
@ -128,8 +128,8 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [
'.tr('Seleziona prima un cliente').'...
</div>
</div>';
}
?>
}
?>
<!-- PULSANTI -->
<div class="row">

View File

@ -78,7 +78,7 @@ $rs = $dbo->fetchArray('SELECT
AND in_interventi.id NOT IN (SELECT idintervento FROM co_righe_documenti WHERE idintervento IS NOT NULL)
AND NOT in_interventi.id IN (SELECT idintervento FROM co_promemoria WHERE idintervento IS NOT NULL) '.$where);
foreach ($rs as $key => $value) {
$intervento = \Modules\Interventi\Intervento::find($value['id']);
$intervento = Modules\Interventi\Intervento::find($value['id']);
$prezzo = $intervento->totale;
$rs[$key]['prezzo'] = Translator::numberToLocale($prezzo);

View File

@ -41,7 +41,7 @@ foreach ($fields as $name => $value) {
$query .= ' OR '.$value.' LIKE "%'.$term.'%"';
}
//$query .= Modules::getAdditionalsQuery('Interventi');
// $query .= Modules::getAdditionalsQuery('Interventi');
$rs = $dbo->fetchArray($query);

View File

@ -223,7 +223,7 @@ switch (post('op')) {
if ($result) {
++$added;
//operationLog('export-xml-bulk', ['id_record' => $r['id']]);
// operationLog('export-xml-bulk', ['id_record' => $r['id']]);
} else {
$failed[] = $fattura->numero_esterno;
}
@ -281,7 +281,7 @@ switch (post('op')) {
if ($result) {
++$added;
//operationLog('export-xml-bulk', ['id_record' => $r['id']]);
// operationLog('export-xml-bulk', ['id_record' => $r['id']]);
} else {
$failed[] = $fattura->numero_esterno;
}
@ -314,22 +314,22 @@ switch (post('op')) {
$id_segment = (post('id_segment') ? post('id_segment') : $fattura->id_segment);
$dir = $dbo->fetchOne('SELECT dir FROM co_tipidocumento WHERE id='.prepare($fattura->idtipodocumento))['dir'];
//+ 1 giorno
// + 1 giorno
if (post('skip_time') == 'Giorno') {
$data = date('Y-m-d', strtotime('+1 day', strtotime($fattura->data)));
}
//+ 1 settimana
// + 1 settimana
if (post('skip_time') == 'Settimana') {
$data = date('Y-m-d', strtotime('+1 week', strtotime($fattura->data)));
}
//+ 1 mese
// + 1 mese
if (post('skip_time') == 'Mese') {
$data = date('Y-m-d', strtotime('+1 month', strtotime($fattura->data)));
}
//+ 1 anno
// + 1 anno
if (post('skip_time') == 'Anno') {
$data = date('Y-m-d', strtotime('+1 year', strtotime($fattura->data)));
}
@ -374,50 +374,50 @@ switch (post('op')) {
break;
case 'check-bulk':
$controllo = new DatiFattureElettroniche();
$fatture = [];
foreach ($id_records as $id) {
$fattura_vendita = Fattura::vendita()
->whereNotIn('codice_stato_fe', ['ERR', 'NS', 'EC02', 'ERVAL'])
->where('data', '>=', $_SESSION['period_start'])
->where('data', '<=', $_SESSION['period_end'])
->where('id', '=', $id)
->orderBy('data')
->first();
$controllo = new DatiFattureElettroniche();
$fatture = [];
foreach ($id_records as $id) {
$fattura_vendita = Fattura::vendita()
->whereNotIn('codice_stato_fe', ['ERR', 'NS', 'EC02', 'ERVAL'])
->where('data', '>=', $_SESSION['period_start'])
->where('data', '<=', $_SESSION['period_end'])
->where('id', '=', $id)
->orderBy('data')
->first();
if (!empty($fattura_vendita)) {
$fatture[$id] = $fattura_vendita;
if (!empty($fattura_vendita)) {
$fatture[$id] = $fattura_vendita;
$controllo->checkFattura($fattura_vendita);
}
$controllo->checkFattura($fattura_vendita);
}
}
$results = $controllo->getResults();
$num = count($results);
$results = $controllo->getResults();
$num = count($results);
// Messaggi di risposta
if (empty($fatture)) {
flash()->warning(tr('Nessuna fattura utile per il controllo!'));
} elseif (empty($results)) {
flash()->info(tr('Nessuna anomalia!'));
} else {
flash()->info(tr('Fatture _LIST_ controllate.', [
'_LIST_' => implode(',', array_column($results, 'numero')),
]));
// Messaggi di risposta
if (empty($fatture)) {
flash()->warning(tr('Nessuna fattura utile per il controllo!'));
} elseif (empty($results)) {
flash()->info(tr('Nessuna anomalia!'));
} else {
flash()->info(tr('Fatture _LIST_ controllate.', [
'_LIST_' => implode(',', array_column($results, 'numero')),
]));
$riepilogo_anomalie = tr('Attenzione: Trovate _NUM_ anomalie! Le seguenti fatture non trovano corrispondenza tra XML e dati nel documento', ['_NUM_' => $num]).':</br></br>';
$riepilogo_anomalie = tr('Attenzione: Trovate _NUM_ anomalie! Le seguenti fatture non trovano corrispondenza tra XML e dati nel documento', ['_NUM_' => $num]).':</br></br>';
foreach ($results as $anomalia) {
$fattura = $fatture[$anomalia['id']];
foreach ($results as $anomalia) {
$fattura = $fatture[$anomalia['id']];
$riepilogo_anomalie .= '<ul>
$riepilogo_anomalie .= '<ul>
<li>'.reference($fattura, $fattura->getReference()).'</li>
<li>'.$anomalia['descrizione'].'</li>
</ul><br>';
}
flash()->warning($riepilogo_anomalie);
}
flash()->warning($riepilogo_anomalie);
}
break;
case 'export-csv':
@ -486,7 +486,7 @@ switch (post('op')) {
WHERE
co_statidocumento.descrizione = "Emessa" AND co_tipidocumento.dir="entrata" AND co_documenti.id_segment='.$fattura->id_segment);
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && (Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax']))) && (!empty($data_fattura_precedente['datamax']))) {
if ((setting('Data emissione fattura automatica') == 1) && ($dir == 'entrata') && Carbon::parse($data)->lessThan(Carbon::parse($data_fattura_precedente['datamax'])) && (!empty($data_fattura_precedente['datamax']))) {
$fattura->data = $data_fattura_precedente['datamax'];
$fattura->data_competenza = $data_fattura_precedente['datamax'];
}

View File

@ -63,7 +63,7 @@ if (empty($record['is_fiscale'])) {
{[ "type": "date", "label": "'.tr('Data').'", "name": "data", "required": 1, "value": "-now-" ]}';
echo '
<button type="button" class="btn btn-warning ask" data-msg="'.tr('Vuoi trasformare questa fattura pro-forma in una di tipo fiscale?').'<br>'.prepareToField(\HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="transform" data-button="'.tr('Trasforma').'" data-class="btn btn-lg btn-warning" data-backto="record-edit">
<button type="button" class="btn btn-warning ask" data-msg="'.tr('Vuoi trasformare questa fattura pro-forma in una di tipo fiscale?').'<br>'.prepareToField(HTMLBuilder\HTMLBuilder::replace($msg)).'" data-op="transform" data-button="'.tr('Trasforma').'" data-class="btn btn-lg btn-warning" data-backto="record-edit">
<i class="fa fa-upload"></i> '.tr('Trasforma in fattura fiscale').'
</button>';
}

View File

@ -82,7 +82,7 @@ if ($module->name == 'Fatture di vendita' && $services_enable) {
}
}
}
//Controllo già presente sul plugin Ricevute FE
// Controllo già presente sul plugin Ricevute FE
if (sizeof($documenti_scarto) > 0) {
echo '
<div class="alert alert-danger">

View File

@ -73,7 +73,7 @@ if ($dir == 'entrata' && !empty($fattura->dichiarazione)) {
</div>';
}
} else {
//TODO link ad impostazioni con nuova ricerca rapida
// TODO link ad impostazioni con nuova ricerca rapida
echo '
<div class="alert alert-warning">
<i class="fa fa-warning"></i> '.tr("Attenzione nessuna aliq. IVA definita per la dichiarazione d'intento. _SETTING_", [
@ -131,7 +131,7 @@ if (!empty($note_accredito)) {
]);
echo '
<br>'.Modules::link(($dir == 'entrata' ? 'Fatture di vendita' : 'Fatture di acquisto'), $nota['id'], $text, $text);
<br>'.Modules::link($dir == 'entrata' ? 'Fatture di vendita' : 'Fatture di acquisto', $nota['id'], $text, $text);
}
echo '
</div>';
@ -227,7 +227,7 @@ if ($dir == 'entrata') {
$label = tr('Numero fattura');
$size = 4;
}
?>
?>
<div class="col-md-<?php echo $size; ?>">
{[ "type": "text", "label": "<?php echo $label; ?>", "required": "<?php echo ($dir == 'uscita') ? 1 : 0; ?>", "name": "numero_esterno", "class": "text-center", "value": "$numero_esterno$", "help": "<?php echo (empty($record['numero_esterno']) and $dir == 'entrata') ? tr('Il numero della fattura sarà generato automaticamente in fase di emissione.') : ''; ?>" ]}
@ -255,9 +255,9 @@ $query .= ' ORDER BY descrizione';
?>
<?php if ($dir == 'entrata') {
$readonly = '"readonly":1,';
}
?>
$readonly = '"readonly":1,';
}
?>
<div class="col-md-2" <?php echo ($dir == 'entrata') ? 'hidden' : ''; ?>>
{[ "type": "date", "label": "<?php echo tr('Data registrazione'); ?>", <?php echo $readonly; ?> "name": "data_registrazione", "value": "$data_registrazione$", "help": "<?php echo tr('Data in cui si è effettuata la registrazione della fattura in contabilità'); ?>" ]}
@ -269,17 +269,17 @@ $query .= ' ORDER BY descrizione';
</div>
<?php
if ($dir == 'entrata') {
?>
if ($dir == 'entrata') {
?>
<div class="col-md-2" <?php echo ($is_fiscale) ? '' : 'hidden'; ?> >
{[ "type": "select", "label": "<?php echo tr('Stato FE'); ?>", "name": "codice_stato_fe", "values": "query=SELECT codice as id, CONCAT_WS(' - ',codice,descrizione) as text FROM fe_stati_documento", "value": "$codice_stato_fe$", "disabled": <?php echo intval(Interaction::isEnabled() || ($record['stato'] == 'Bozza' && $abilita_genera)); ?>, "class": "unblockable", "help": "<?php echo (!empty($record['data_stato_fe'])) ? Translator::timestampToLocale($record['data_stato_fe']) : ''; ?>" ]}
</div>
<?php
}
}
echo '
echo '
<div class="col-md-'.($is_fiscale ? 2 : 6).'">
{[ "type": "select", "label": "'.tr('Stato').'", "name": "idstatodocumento", "required": 1, "values": "query='.$query.'", "value": "$idstatodocumento$", "class": "'.(($record['stato'] != 'Bozza' && !$abilita_genera) ? '' : 'unblockable').'", "extra": "onchange=\"return cambiaStato()\"" ]}
</div>
@ -289,48 +289,48 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-4">
'.Modules::link('Anagrafiche', $record['idanagrafica'], null, null, 'class="pull-right"');
if ($dir == 'entrata') {
?>
if ($dir == 'entrata') {
?>
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "clienti", "help": "<?php echo tr("In caso di autofattura indicare l'azienda: ").stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']); ?>", "value": "$idanagrafica$" ]}
<?php
} else {
?>
} else {
?>
{[ "type": "select", "label": "<?php echo tr('Fornitore'); ?>", "name": "idanagrafica", "required": 1, "ajax-source": "fornitori", "value": "$idanagrafica$" ]}
<?php
}
}
echo '
echo '
</div>';
if ($dir == 'entrata') {
echo '
if ($dir == 'entrata') {
echo '
<div class="col-md-4">';
if ($record['idagente'] != 0) {
echo Modules::link('Anagrafiche', $record['idagente_fattura'], null, null, 'class="pull-right"');
}
echo '
if ($record['idagente'] != 0) {
echo Modules::link('Anagrafiche', $record['idagente_fattura'], null, null, 'class="pull-right"');
}
echo '
{[ "type": "select", "label": "'.tr('Agente di riferimento').'", "name": "idagente", "ajax-source": "agenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idagente_fattura$" ]}
</div>';
}
}
echo '
echo '
<div class="col-md-4">';
if (!empty($record['idreferente'])) {
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
}
echo '
if (!empty($record['idreferente'])) {
echo Plugins::link('Referenti', $record['idanagrafica'], null, null, 'class="pull-right"');
}
echo '
{[ "type": "select", "label": "'.tr('Referente').'", "name": "idreferente", "value": "$idreferente$", "ajax-source": "referenti", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "idsede_destinazione": '.$record['idsede_destinazione'].'}, "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Referenti')['id'].'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>';
echo '
echo '
</div>
<div class="row">';
// Conteggio numero articoli fatture
$articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN co_righe_documenti ON mg_articoli.id=co_righe_documenti.idarticolo) INNER JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento) WHERE co_documenti.id='.prepare($id_record));
$id_modulo_anagrafiche = Modules::get('Anagrafiche')['id'];
$id_plugin_sedi = Plugins::get('Sedi')['id'];
if ($dir == 'entrata') {
echo '
// Conteggio numero articoli fatture
$articolo = $dbo->fetchArray('SELECT mg_articoli.id FROM ((mg_articoli INNER JOIN co_righe_documenti ON mg_articoli.id=co_righe_documenti.idarticolo) INNER JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento) WHERE co_documenti.id='.prepare($id_record));
$id_modulo_anagrafiche = Modules::get('Anagrafiche')['id'];
$id_plugin_sedi = Plugins::get('Sedi')['id'];
if ($dir == 'entrata') {
echo '
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi_azienda", "value": "$idsede_partenza$", "help": "'.tr("Sedi di partenza dell'azienda").'" ]}
</div>
@ -338,8 +338,8 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_destinazione$", "help": "'.tr('Sedi del destinatario').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>';
} else {
echo '
} else {
echo '
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Partenza merce').'", "name": "idsede_partenza", "ajax-source": "sedi", "select-options": {"idanagrafica": '.$record['idanagrafica'].'}, "value": "$idsede_partenza$", "help": "'.tr('Sedi del mittente').'", "icon-after": "add|'.$id_modulo_anagrafiche.'|id_plugin='.$id_plugin_sedi.'&id_parent='.$record['idanagrafica'].'||'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>
@ -347,8 +347,8 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Destinazione merce').'", "name": "idsede_destinazione", "ajax-source": "sedi_azienda", "value": "$idsede_destinazione$", "help": "'.tr("Sedi di arrivo dell'azienda").'" ]}
</div>';
}
?>
}
?>
</div>
<hr>
@ -368,23 +368,23 @@ $query .= ' ORDER BY descrizione';
<div class="col-md-3">
<?php if ($record['id_banca_azienda'] != 0) {
echo Modules::link('Banche', $record['id_banca_azienda'], null, null, 'class="pull-right"');
}
echo Modules::link('Banche', $record['id_banca_azienda'], null, null, 'class="pull-right"');
}
if ($dir == 'entrata') {
echo '
if ($dir == 'entrata') {
echo '
{[ "type": "select", "label": "'.tr('Banca accredito').'", "name": "id_banca_azienda", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$id_banca_azienda$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica_azienda->id.'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Banca addebito').'", "name": "id_banca_controparte", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $record['idanagrafica']]).', "value": "$id_banca_controparte$", "icon-after": "add|'.Modules::get('Banche')['id'].'|idanagrafica='.$record['idanagrafica'].'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}';
} else {
echo '
} else {
echo '
{[ "type": "select", "label": "'.tr('Banca accredito').'", "name": "id_banca_controparte", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $record['idanagrafica']]).', "value": "$id_banca_controparte$", "icon-after": "add|'.Modules::get('Banche')['id'].'|idanagrafica='.$record['idanagrafica'].'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}
</div>
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Banca addebito').'", "name": "id_banca_azienda", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica_azienda->id]).', "value": "$id_banca_azienda$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica_azienda->id.'", "extra": "'.(intval($block_edit) ? 'disabled' : '').'" ]}';
}
?>
}
?>
</div>
</div>
@ -396,81 +396,81 @@ $query .= ' ORDER BY descrizione';
</div>
<?php
// TODO: Fattura per conto del fornitore (es. cooperative agricole che emettono la fattura per conto dei propri soci produttori agricoli conferenti)
if ($dir == 'entrata') {
?>
// TODO: Fattura per conto del fornitore (es. cooperative agricole che emettono la fattura per conto dei propri soci produttori agricoli conferenti)
if ($dir == 'entrata') {
?>
<div class="col-md-3">
{[ "type": "checkbox", "label": "<?php echo tr('Fattura per conto terzi'); ?>", "name": "is_fattura_conto_terzi", "value": "$is_fattura_conto_terzi$", "help": "<?php echo tr('Nell\'XML della Fattura Elettronica sarà indicato il fornitore ('.stripslashes($database->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')))['ragione_sociale']).') come cessionario e il cliente come cedente/prestatore.'); ?>", "placeholder": "<?php echo tr('Fattura per conto terzi'); ?>" ]}
</div>
<?php
echo '<div class="col-md-3">
echo '<div class="col-md-3">
{[ "type": "number", "label": "'.tr('Sconto in fattura').'", "name": "sconto_finale", "value": "'.($fattura->sconto_finale_percentuale ?: $fattura->sconto_finale).'", "icon-after": "choice|untprc|'.(empty($fattura->sconto_finale) ? 'PRC' : 'UNT').'", "help": "'.tr('Sconto in fattura, utilizzabile per applicare sconti sul Netto a pagare del documento e le relative scadenze').'. '.tr('Per utilizzarlo in relazione a una riga della Fattura Elettronica, inserire il tipo di dato in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'TipoDato\'\' e il testo di descrizione in \'\'Attributi avanzati\'\' -> \'\'Altri Dati Gestionali\'\' -> \'\'RiferimentoTesto\'\' della specifica riga').'. '.tr('Nota: lo sconto in fattura non influenza i movimenti contabili').'." ]}
</div>';
} else {
echo '
} else {
echo '
<div class="col-md-3">
</div>
<div class="col-md-3">
</div>';
}
}
if ($record['stato'] != 'Bozza' && $record['stato'] != 'Annullata') {
$scadenze = $fattura->scadenze;
if ($record['stato'] != 'Bozza' && $record['stato'] != 'Annullata') {
$scadenze = $fattura->scadenze;
$ricalcola = true;
foreach ($scadenze as $scadenza) {
$ricalcola = empty(floatval($scadenza->pagato)) && $ricalcola;
}
$ricalcola = true;
foreach ($scadenze as $scadenza) {
$ricalcola = empty(floatval($scadenza->pagato)) && $ricalcola;
}
echo '
echo '
<div class="col-md-3">
<p class="pull-left"><strong>'.tr('Scadenze').'</strong></p>
<div class="btn-group pull-right">
'.Modules::link('Scadenzario', $scadenze[0]['id'], tr('<i class="fa fa-edit tip" title="'.tr('Modifica scadenze').'"></i>'), '', 'class="btn btn-xs btn-primary"');
// Ricalcola scadenze disponibile solo per fatture di acquisto
if ($fattura->isFE() && $ricalcola && $module['name'] == 'Fatture di acquisto') {
echo '
// Ricalcola scadenze disponibile solo per fatture di acquisto
if ($fattura->isFE() && $ricalcola && $module['name'] == 'Fatture di acquisto') {
echo '
<button type="button" class="btn btn-info btn-xs pull-right tip" title="'.tr('Ricalcola le scadenze').'. '.tr('Per ricalcolare correttamente le scadenze, imposta la fattura di acquisto nello stato \'\'Bozza\'\' e correggi il documento come desiderato, poi re-imposta lo stato \'\'Emessa\'\' e utilizza questa funzione').'." id="ricalcola_scadenze">
<i class="fa fa-calculator" aria-hidden="true"></i>
</button>';
}
echo '
}
echo '
</div>
<div class="clearfix"></div>';
foreach ($scadenze as $scadenza) {
$pagamento_iniziato = !empty(floatval($scadenza->pagato)) || $scadenza->da_pagare == 0;
foreach ($scadenze as $scadenza) {
$pagamento_iniziato = !empty(floatval($scadenza->pagato)) || $scadenza->da_pagare == 0;
echo '
echo '
<p>'.dateFormat($scadenza['scadenza']).': ';
if ($pagamento_iniziato) {
echo '
if ($pagamento_iniziato) {
echo '
<strike>';
}
}
echo(empty($scadenza->da_pagare) ? '<i class="fa fa-exclamation-triangle"></i>' : '').moneyFormat($scadenza->da_pagare);
echo (empty($scadenza->da_pagare) ? '<i class="fa fa-exclamation-triangle"></i>' : '').moneyFormat($scadenza->da_pagare);
if ($pagamento_iniziato) {
echo '
if ($pagamento_iniziato) {
echo '
</strike>';
}
}
if ($pagamento_iniziato && $scadenza->pagato != $scadenza->da_pagare) {
echo ' ('.moneyFormat($scadenza->da_pagare - $scadenza->pagato).')';
}
if ($pagamento_iniziato && $scadenza->pagato != $scadenza->da_pagare) {
echo ' ('.moneyFormat($scadenza->da_pagare - $scadenza->pagato).')';
}
echo '
echo '
</p>';
}
}
echo '
echo '
</div>';
}
?>
}
?>
</div>
<div class="row">
@ -480,34 +480,34 @@ $query .= ' ORDER BY descrizione';
</div>
<?php
if ($dir == 'uscita') {
echo '
if ($dir == 'uscita') {
echo '
<div class="col-md-6">
{[ "type": "checkbox", "label": "'.tr('Ritenuta pagata dal fornitore').'", "name": "is_ritenuta_pagata", "value": "$is_ritenuta_pagata$" ]}
</div>';
}
if ($dir == 'entrata') {
echo '
}
if ($dir == 'entrata') {
echo '
<div class="col-md-6">';
if (!empty($record['id_dichiarazione_intento'])) {
echo Plugins::link("Dichiarazioni d'Intento", $record['idanagrafica'], null, null, 'class="pull-right"');
}
if (!empty($record['id_dichiarazione_intento'])) {
echo Plugins::link("Dichiarazioni d'Intento", $record['idanagrafica'], null, null, 'class="pull-right"');
}
echo '
echo '
{[ "type": "select", "label": "'.tr("Dichiarazione d'intento").'", "name": "id_dichiarazione_intento", "help": "'.tr('Elenco delle dichiarazioni d\'intento definite all\'interno dell\'anagrafica del cliente').'.", "ajax-source": "dichiarazioni_intento", "select-options": {"idanagrafica": '.$record['idanagrafica'].', "data": "'.$record['data'].'"},"value": "$id_dichiarazione_intento$", "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|id_plugin='.Plugins::get('Dichiarazioni d\'Intento')['id'].'&id_parent='.$record['idanagrafica'].'", "extra": "'.((intval($block_edit)) ? 'disabled' : '').'" ]}
</div>';
}
}
echo '
</div>';
if ($dir == 'entrata') {
echo '
if ($dir == 'entrata') {
echo '
<div class="row">
<div class="col-md-3">
{[ "type": "checkbox", "label": "'.tr('Marca da bollo automatica').'", "name": "bollo_automatico", "value": "'.intval(!isset($record['bollo'])).'", "help": "'.tr("Seleziona per impostare automaticamente l'importo della marca da bollo").'. '.tr('Applicata solo se il totale della fattura è maggiore di _MONEY_', [
'_MONEY_' => moneyFormat(setting("Soglia minima per l'applicazione della marca da bollo")),
]).'.", "placeholder": "'.tr('Bollo automatico').'" ]}
'_MONEY_' => moneyFormat(setting("Soglia minima per l'applicazione della marca da bollo")),
]).'.", "placeholder": "'.tr('Bollo automatico').'" ]}
</div>
<div class="col-md-3 bollo">
@ -519,8 +519,8 @@ $query .= ' ORDER BY descrizione';
</div>
</div>';
$bollo = new Bollo($fattura);
}
$bollo = new Bollo($fattura);
}
?>
<div class="row">
<div class="col-md-6">
@ -702,7 +702,7 @@ if ($record['descrizione_tipo'] == 'Fattura accompagnatoria di vendita') {
echo '
</form>';
//Dich. intento collegata
// Dich. intento collegata
if ($dir == 'entrata' && !empty($fattura->dichiarazione)) {
$ive_accettate = $dbo->table('co_iva')->where('codice_natura_fe', 'N3.5')->get();
foreach ($ive_accettate as $iva_accettata) {
@ -953,11 +953,11 @@ echo '
}
}';
if ($dir == 'entrata') {
echo '$("#idsede_destinazione").selectReset();';
} else {
echo '$("#idsede_partenza").selectReset();';
}
if ($dir == 'entrata') {
echo '$("#idsede_destinazione").selectReset();';
} else {
echo '$("#idsede_partenza").selectReset();';
}
echo '
});

View File

@ -82,7 +82,7 @@ echo '
</tr>';
// Tipo Cessione Prestazione
echo '
echo '
<tr class="fourth-level">
<td style="vertical-align: middle;">'.str_repeat($space, 3).'2.2.1.2 TipoCessionePrestazione</td>
<td>
@ -157,7 +157,7 @@ foreach ($result['altri_dati'] as $dato) {
++$key;
}
echo '
echo '
</table>';

View File

@ -51,8 +51,8 @@ $righe = $dbo->fetchArray(
<?php
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
$ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT
$ultimo_prezzo_preventivo = $dbo->fetchArray(
'SELECT
co_righe_documenti.idarticolo,
co_righe_preventivi.prezzo_unitario,
DATE(co_righe_preventivi.updated_at) AS updated_at
@ -67,10 +67,10 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_preventivi.id
ORDER BY
updated_at DESC'
)[0];
)[0];
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
$ultimo_prezzo_vendita = $dbo->fetchArray(
'SELECT
co_righe_documenti.idarticolo,
co_righe_documenti.prezzo_unitario,
DATE(co_righe_documenti.updated_at) AS updated_at
@ -84,7 +84,7 @@ $righe = $dbo->fetchArray(
mg_articoli.id, co_righe_documenti.id
ORDER BY
updated_at DESC'
)[0];
)[0];
?>
<tr>
@ -101,14 +101,14 @@ $righe = $dbo->fetchArray(
} else {
echo 'n.d.';
}
?></td>
?></td>
<td class="text-center"><?php
if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else {
echo 'n.d.';
}
?></td>
if (isset($ultimo_prezzo_vendita)) {
echo moneyFormat($ultimo_prezzo_vendita['prezzo_unitario'], 2).(!empty($ultimo_prezzo_vendita['updated_at']) ? ' <br><small class="help-block tip" title="'.dateFormat($ultimo_prezzo_vendita['updated_at']).'">'.(new Carbon($ultimo_prezzo_vendita['updated_at']))->diffForHumans().'</small>' : '');
} else {
echo 'n.d.';
}
?></td>
</tr>
<?php } ?>
</tbody>

View File

@ -187,7 +187,7 @@ if (!function_exists('aggiungi_movimento')) {
{
$dbo = database();
$fattura = Modules\Fatture\Fattura::find($iddocumento);
$fattura = Fattura::find($iddocumento);
$is_nota = $fattura->isNota();
// Totale marca da bollo, inps, ritenuta, idagente

View File

@ -32,19 +32,19 @@ echo '
<thead>
<tr>
<th width="5" class="text-center">';
if (!$block_edit && sizeof($righe) > 0) {
echo '
if (!$block_edit && sizeof($righe) > 0) {
echo '
<input id="check_all" type="checkbox"/>';
}
echo '
}
echo '
</th>
<th width="35" class="text-center" >'.tr('#').'</th>
<th class="text-left" style="width:30%;">'.tr('Descrizione').'</th>
<th class="text-center" width="120">'.tr('Q.').'</th>';
if ($dir == 'entrata') {
echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>';
}
echo '
if ($dir == 'entrata') {
echo '<th class="text-center" width="150">'.tr('Costo unitario').'</th>';
}
echo '
<th class="text-center" width="180">'.tr('Prezzo unitario').'</th>
<th class="text-center" width="140">'.tr('Sconto unitario').'</th>
<th class="text-center" width="120">'.tr('Iva unitaria').'</th>
@ -177,8 +177,8 @@ foreach ($righe as $riga) {
if (!empty($riga->note)) {
if (strlen($riga->note) > 50) {
$prima_parte = substr($riga->note, 0, ((strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50));
$seconda_parte = substr($riga->note, ((strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50));
$prima_parte = substr($riga->note, 0, (strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50);
$seconda_parte = substr($riga->note, (strpos($riga->note, ' ', 50) < 60) && (strpos($riga->note, ' ', 50) != 0) ? strpos($riga->note, ' ', 50) : 50);
$stringa_modificata = '<small class="label label-default">'.$prima_parte.'</small>
<span id="read-more-target-'.$riga->id.'" class="read-more-target"><small class="label label-default">'.$seconda_parte.'</small></span><a href="#read-more-target-'.$riga->id.'" class="read-more-trigger">...</a>';
} else {

View File

@ -19,12 +19,10 @@
namespace Modules\Fatture;
use Auth;
use Carbon\Carbon;
use Common\Components\Component;
use Common\Document;
use Illuminate\Database\Eloquent\Builder;
use InvalidArgumentException;
use Models\Upload;
use Modules\Anagrafiche\Anagrafica;
use Modules\Banche\Banca;
@ -39,7 +37,6 @@ use Plugins\DichiarazioniIntento\Dichiarazione;
use Plugins\ExportFE\FatturaElettronica;
use Traits\RecordTrait;
use Traits\ReferenceTrait;
use Translator;
use Util\Generator;
class Fattura extends Document
@ -95,7 +92,7 @@ class Fattura extends Document
{
$model = new static();
$user = Auth::user();
$user = \Auth::user();
$database = database();
// Individuazione dello stato predefinito per il documento
@ -145,7 +142,7 @@ class Fattura extends Document
$model->id_ritenuta_contributi = $id_ritenuta_contributi ?: null;
// Banca predefinita per l'anagrafica controparte
//$model->id_banca_controparte = ;
// $model->id_banca_controparte = ;
// Tipo di pagamento dall'anagrafica controparte
$id_pagamento = $database->fetchOne('SELECT id FROM co_pagamenti WHERE id = :id_pagamento', [
@ -210,8 +207,8 @@ class Fattura extends Document
// Registrazione dell'operazione nelle note
$notes[] = tr("Operazione non imponibile come da vostra dichiarazione d'intento nr _PROT_ del _PROT_DATE_ emessa in data _RELEASE_DATE_", [
'_PROT_' => $dichiarazione->numero_protocollo,
'_PROT_DATE_' => Translator::dateToLocale($dichiarazione->data_protocollo),
'_RELEASE_DATE_' => Translator::dateToLocale($dichiarazione->data_emissione),
'_PROT_DATE_' => \Translator::dateToLocale($dichiarazione->data_protocollo),
'_RELEASE_DATE_' => \Translator::dateToLocale($dichiarazione->data_emissione),
]).'.';
}
@ -490,7 +487,7 @@ class Fattura extends Document
$file = $this->uploads()->where('name', '=', 'Fattura Elettronica')->first();
if (empty($file)) {
throw new InvalidArgumentException('Fattura Elettronica non trovata');
throw new \InvalidArgumentException('Fattura Elettronica non trovata');
}
return $file->getContent();
@ -786,9 +783,9 @@ class Fattura extends Document
/**
* Scope per l'inclusione delle sole fatture con valore contabile.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param Builder $query
*
* @return \Illuminate\Database\Eloquent\Builder
* @return Builder
*/
public function scopeContabile($query)
{
@ -849,9 +846,9 @@ class Fattura extends Document
/**
* Scope per l'inclusione delle fatture di vendita.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param Builder $query
*
* @return \Illuminate\Database\Eloquent\Builder
* @return Builder
*/
public function scopeVendita($query)
{
@ -863,9 +860,9 @@ class Fattura extends Document
/**
* Scope per l'inclusione delle fatture di acquisto.
*
* @param \Illuminate\Database\Eloquent\Builder $query
* @param Builder $query
*
* @return \Illuminate\Database\Eloquent\Builder
* @return Builder
*/
public function scopeAcquisto($query)
{

View File

@ -31,7 +31,7 @@ use Modules\PrimaNota\Movimento;
class Movimenti
{
protected $fattura;
protected $mastrino = null;
protected $mastrino;
public function __construct(Fattura $fattura)
{

View File

@ -41,7 +41,7 @@ switch (post('op')) {
], ['id' => $id_record]);
flash()->info(tr('Informazioni salvate correttamente!'));
break;
break;
case 'delete':
$dbo->query('DELETE FROM do_documenti WHERE id = '.prepare($id_record));

View File

@ -57,7 +57,7 @@ include_once __DIR__.'/../../core.php';
'name' => 'descrizione',
'value' => $record['descrizione'],
]);
?>
?>
</div>
</div>
</div>

View File

@ -30,4 +30,4 @@ switch (post('op')) {
flash()->info(tr('Informazioni salvate correttamente.'));
break;
}
}

Some files were not shown because too many files have changed in this diff Show More