This commit is contained in:
MatteoPistorello 2023-06-20 17:01:18 +02:00
commit f68213e1e3
7 changed files with 79 additions and 11 deletions

View File

@ -28,7 +28,7 @@
"ext-simplexml": "*",
"ext-xsl": "*",
"ext-zip": "*",
"aluguest/ical-easy-reader": "^1.5",
"devcode-it/ical-easy-reader": "dev-main",
"davidepastore/codice-fiscale": "^0.6.0",
"digitick/sepa-xml": "^2.1",
"dragonmantank/cron-expression": "^1.0",

View File

@ -33,6 +33,7 @@ use Carbon\Carbon;
$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita'));
$stato_emessa = $dbo->selectOne('co_statidocumento', 'id', ['descrizione' => 'Emessa'])['id'];
$is_fiscale = $dbo->selectOne('zz_segments', 'is_fiscale', ['id' => $_SESSION['module_'.$id_module]])['is_fiscale'];
switch (post('op')) {
case 'export-bulk':
@ -569,6 +570,35 @@ switch (post('op')) {
}
}
break;
case 'cambia-sezionale':
$count = 0;
$n_doc = 0;
foreach ($id_records as $id) {
$documento = Fattura::find($id);
++ $count;
if($documento->stato->descrizione == 'Bozza') {
$documento->id_segment = post('id_segment');
$documento->save();
++ $n_doc;
}
}
if ($n_doc > 0) {
flash()->info(tr('_NUM_ fatture spostate', [
'_NUM_' => $n_doc,
]));
}
if (($count - $n_doc) > 0) {
flash()->warning(tr('_NUM_ fatture non sono state spostate perchè non sono in stato "Bozza".', [
'_NUM_' => $count - $n_doc,
]));
}
break;
}
if (App::debug()) {
@ -697,6 +727,19 @@ if ($dir == 'entrata') {
];
}
$operations['cambia-sezionale'] = [
'text' => '<span><i class="fa fa-hand-stop-o"></i> '.tr('Cambia sezionale'),
'data' => [
'title' => tr('Cambia sezionale'),
'msg' => tr('Scegli il sezionale _TIPOLOGIA_ in cui spostare le fatture selezionate', [
'_TIPOLOGIA_' => $is_fiscale ? tr('fiscale') : tr('non fiscale'),
]).':<br><br>{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "ajax-source": "segmenti", "select-options": '.json_encode(["id_module" => $id_module, 'is_sezionale' => 1, 'is_fiscale' => $is_fiscale, 'escludi_id' => $_SESSION['module_'.$id_module]['id_segment']]).', "select-options-escape": true ]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
'blank' => false,
],
];
if (Interaction::isEnabled()) {
$operations['hook-send'] = [
'text' => '<span><i class="fa fa-paper-plane"></i> '.tr('Coda di invio FE').'</span>',

View File

@ -55,7 +55,7 @@ class Sync extends Resource implements RetrieveInterface, UpdateInterface
$result .= "PRODID:-// OpenSTAManager\n";
foreach ($rs as $r) {
$richiesta = str_replace("\r\n", "\n", $r['richiesta']);
$richiesta = str_replace("\r\n", "\n", strip_tags($r['richiesta']));
$richiesta = str_replace("\r", "\n", $richiesta);
$richiesta = str_replace("\n", '\\n', $richiesta);

View File

@ -19,6 +19,7 @@
include_once __DIR__.'/../../core.php';
use Carbon\Carbon;
use Modules\Anagrafiche\Anagrafica;
use Modules\Articoli\Articolo as ArticoloOriginale;
use Modules\Ordini\Components\Articolo;
@ -110,6 +111,32 @@ switch (post('op')) {
$ordine->num_item = post('num_item');
$ordine->condizioni_fornitura = post('condizioni_fornitura');
// Verifica la presenza di ordini con lo stesso numero
$ordini = $dbo->fetchArray("SELECT * FROM or_ordini WHERE numero_cliente=".prepare(post('numero_cliente'))." AND id!=".prepare($id_record)." AND idanagrafica=".prepare(post('idanagrafica'))." AND DATE_FORMAT(or_ordini.data, '%Y')=".prepare(Carbon::parse(post('data'))->copy()->format("Y")));
if (!empty($ordini)) {
$ordine->numero_esterno = null;
$documento = '';
foreach($ordini as $rs){
$descrizione = tr('Ordine cliente num. _NUM_ del _DATE_', [
'_NUM_' => !empty($rs['numero_esterno']) ? $rs['numero_esterno'] : $rs['numero'],
'_DATE_' => Translator::dateToLocale($rs['data']),
]);
$documenti .= '<li>'.Modules::link('Ordini cliente', $rs['id'], $descrizione).'</li>';
}
flash()->error(tr('E\' già presente un ordine con numero _NUM_ <ul>_ORDINI_</ul>', [
'_NUM_' => post('numero_cliente'),
'_ORDINI_' => $documenti,
]));
$ordine->numero_cliente = null;
$ordine->id_documento_fe = null;
}
$ordine->setScontoFinale(post('sconto_finale'), post('tipo_sconto_finale'));
$ordine->save();

View File

@ -25,7 +25,8 @@ switch ($resource) {
$id_module = $superselect['id_module'];
$is_fiscale = $superselect['is_fiscale'];
$is_sezionale = $superselect['is_sezionale'];
$escludi_id = $superselect['escludi_id'];
if (isset($id_module)) {
$query = 'SELECT `id`, `name` AS descrizione FROM zz_segments INNER JOIN `zz_group_segment` ON `zz_segments`.`id` = `zz_group_segment`.`id_segment` |where| ORDER BY `name` ASC';
@ -40,6 +41,10 @@ switch ($resource) {
$where[] = 'zz_segments.is_sezionale = '.prepare($is_sezionale);
}
if ($escludi_id != null) {
$where[] = 'zz_segments.id != '.prepare($escludi_id);
}
foreach ($elements as $element) {
$filter[] = 'id='.prepare($element);
}

View File

@ -21,13 +21,6 @@ include_once __DIR__.'/../../core.php';
$google = setting('Google Maps API key');
/*
if (!empty($google)) {
echo '
<script src="//maps.googleapis.com/maps/api/js?libraries=places&key='.$google.'"></script>';
}
*/
echo '
<form action="" method="post" role="form" id="form_sedi">
<input type="hidden" name="id_plugin" value="'.$id_plugin.'">

View File

@ -15,4 +15,4 @@ UPDATE `zz_settings` SET `help` = "Valore espresso in Giga superato il quale vie
-- Rimozione google maps
DELETE FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Google Maps API key';
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `created_at`, `order`, `help`) VALUES (NULL, 'Tile server OpenStreetMap', 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', 'string', '1', 'Generali', NULL, NULL, '')
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Tile server OpenStreetMap', 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', 'string', '1', 'Generali', NULL, NULL);