Aggiunto sistema di registrazione procedure di importazione
This commit is contained in:
parent
e23c712fa5
commit
55825cca6f
|
@ -95,6 +95,7 @@
|
|||
"Modules\\CategorieDocumentali\\": ["modules/categorie_documenti/custom/src/", "modules/categorie_documenti/src/"],
|
||||
"Modules\\PianiSconto\\": ["modules/piano_sconto/custom/src/", "modules/piano_sconto/src/"],
|
||||
"Modules\\Impianti\\": ["modules/impianti/custom/src/", "modules/impianti/src/"],
|
||||
"Modules\\Importazione\\": ["modules/import/custom/src/", "modules/import/src/"],
|
||||
"Modules\\Impostazioni\\": ["modules/impostazioni/custom/src/", "modules/impostazioni/src/"],
|
||||
"Plugins\\ExportFE\\": ["plugins/exportFE/custom/src/", "plugins/exportFE/src/"],
|
||||
"Plugins\\ImportFE\\": ["plugins/importFE/custom/src/", "plugins/importFE/src/"],
|
||||
|
|
|
@ -250,7 +250,7 @@ $map_load_message = '<p>'.tr('Clicca per visualizzare').'</p>';
|
|||
if (empty($google)) {
|
||||
echo '
|
||||
<div class="alert alert-info">
|
||||
'.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, "&search=Google Maps API key").'.
|
||||
'.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'.
|
||||
</div>';
|
||||
} elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
|
||||
echo '
|
||||
|
|
|
@ -17,31 +17,37 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Modules\Importazione\Import;
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
switch (filter('op')) {
|
||||
case 'add':
|
||||
$modulo_selezionato = Modules::get(filter('module'));
|
||||
$id_record = $modulo_selezionato->id;
|
||||
$id_import = filter('id_import');
|
||||
$import = Import::find($id_import);
|
||||
|
||||
$id_record = $import->id;
|
||||
|
||||
$upload = Uploads::upload($_FILES['file'], [
|
||||
'id_module' => $modulo_import->id,
|
||||
'id_module' => $import->getModule()->id,
|
||||
'id_record' => $id_record,
|
||||
]);
|
||||
break;
|
||||
|
||||
case 'example':
|
||||
$module = filter('module');
|
||||
$modulo_selezionato = Modules::get(filter('module'));
|
||||
$import_selezionato = $moduli_disponibili[$module];
|
||||
$id_import = filter('id_import');
|
||||
|
||||
if (!empty($import_selezionato)) {
|
||||
$import = Import::find($id_import);
|
||||
$import_manager = $import->class;
|
||||
|
||||
$modulo_collegato = $import->moduloCollegato;
|
||||
if (!empty($import_manager)) {
|
||||
// Generazione percorso
|
||||
$file = $modulo_selezionato->upload_directory.'/example-'.strtolower($modulo_selezionato->title).'.csv';
|
||||
$file = $modulo_collegato->upload_directory.'/example-'.strtolower($modulo_collegato->title).'.csv';
|
||||
$filepath = base_dir().'/'.$file;
|
||||
|
||||
// Generazione del file
|
||||
$import_selezionato::createExample($filepath);
|
||||
$import_manager::createExample($filepath);
|
||||
|
||||
echo base_path().'/'.$file;
|
||||
}
|
||||
|
@ -50,8 +56,8 @@ switch (filter('op')) {
|
|||
|
||||
case 'import':
|
||||
// Individuazione del modulo
|
||||
$modulo_selezionato = Modules::get($id_record);
|
||||
$import_selezionato = $moduli_disponibili[$modulo_selezionato->name];
|
||||
$import = Import::find($id_record);
|
||||
$import_manager = $import->class;
|
||||
|
||||
// Dati indicati
|
||||
$include_first_row = post('include_first_row');
|
||||
|
@ -61,7 +67,7 @@ switch (filter('op')) {
|
|||
$limit = 500;
|
||||
|
||||
// Inizializzazione del lettore CSV
|
||||
$csv = new $import_selezionato($record->filepath);
|
||||
$csv = new $import_manager($record->filepath);
|
||||
foreach ($fields as $key => $value) {
|
||||
$csv->setColumnAssociation($key, $value);
|
||||
}
|
||||
|
|
|
@ -19,16 +19,6 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$list = [];
|
||||
foreach ($moduli_disponibili as $id => $value) {
|
||||
$modulo = Modules::get($id);
|
||||
|
||||
$list[] = [
|
||||
'id' => $id,
|
||||
'text' => $modulo['title'],
|
||||
];
|
||||
}
|
||||
|
||||
?><form action="" method="post" id="add-form" enctype="multipart/form-data">
|
||||
<input type="hidden" name="op" value="add">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
|
@ -39,7 +29,7 @@ foreach ($moduli_disponibili as $id => $value) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "<?php echo tr('Modulo'); ?>", "name": "module", "required": 1, "values": <?php echo json_encode($list); ?> ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Modulo'); ?>", "name": "id_import", "required": 1, "values": "query=SELECT id, name AS text FROM zz_imports" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -58,7 +48,7 @@ foreach ($moduli_disponibili as $id => $value) {
|
|||
</form>
|
||||
|
||||
<script>
|
||||
$("#module").change(function () {
|
||||
$("#id_import").change(function () {
|
||||
if ($(this).val()) {
|
||||
$("#example").removeClass("hidden");
|
||||
} else {
|
||||
|
@ -73,7 +63,7 @@ foreach ($moduli_disponibili as $id => $value) {
|
|||
data: {
|
||||
op: "example",
|
||||
id_module: globals.id_module,
|
||||
module: $('#module').val(),
|
||||
id_import: $('#id_import').val(),
|
||||
},
|
||||
success: function(data) {
|
||||
if (data) {
|
||||
|
|
|
@ -17,6 +17,8 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Modules\Importazione\Import;
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
// Gestione del redirect in caso di caricamento del file
|
||||
|
@ -27,8 +29,8 @@ if (filter('op')) {
|
|||
if (empty($id_record)) {
|
||||
require base_dir().'/add.php';
|
||||
} else {
|
||||
$modulo_selezionato = Modules::get($id_record);
|
||||
$import_selezionato = $moduli_disponibili[$modulo_selezionato->name];
|
||||
$import = Import::find($id_record);
|
||||
$import_selezionato = $import->class;
|
||||
|
||||
// Inizializzazione del lettore CSV
|
||||
$csv = new $import_selezionato($record->filepath);
|
||||
|
|
|
@ -17,14 +17,12 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Modules\Importazione\Import;
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
$modulo_import = Modules::get('Import');
|
||||
$moduli_disponibili = [
|
||||
'Anagrafiche' => \Modules\Anagrafiche\Import\CSV::class,
|
||||
'Articoli' => \Modules\Articoli\Import\CSV::class,
|
||||
];
|
||||
|
||||
if (!empty($id_record)) {
|
||||
$record = $modulo_import->uploads($id_record)->last();
|
||||
$import = Import::find($id_record);
|
||||
|
||||
$record = $import->uploads()->last();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
/*
|
||||
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
|
||||
* Copyright (C) DevCode s.r.l.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Modules\Importazione;
|
||||
|
||||
use Common\SimpleModelTrait;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Models\Module;
|
||||
use Traits\RecordTrait;
|
||||
|
||||
class Import extends Model
|
||||
{
|
||||
use SimpleModelTrait;
|
||||
use RecordTrait;
|
||||
|
||||
protected $table = 'zz_imports';
|
||||
|
||||
// Relazioni Eloquent
|
||||
public function moduloCollegato()
|
||||
{
|
||||
return $this->belongsTo(Module::class, 'id_module');
|
||||
}
|
||||
|
||||
public function getModuleAttribute()
|
||||
{
|
||||
return 'Import';
|
||||
}
|
||||
}
|
|
@ -148,7 +148,7 @@ function riprovaSalvataggio() {
|
|||
}
|
||||
</script>';
|
||||
|
||||
if (!empty($ricerca)){
|
||||
if (!empty($ricerca)) {
|
||||
echo '
|
||||
<script>$("#ricerca_impostazioni").change();</script>';
|
||||
}
|
||||
|
|
|
@ -130,7 +130,7 @@ $map_load_message = '<p>'.tr('Clicca per visualizzare').'</p>';
|
|||
if (empty($google)) {
|
||||
echo '
|
||||
<div class="alert alert-info">
|
||||
'.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, "&search=Google Maps API key").'.
|
||||
'.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'.
|
||||
</div>';
|
||||
} elseif (!empty($sede_cliente->gaddress) || (!empty($sede_cliente->lat) && !empty($sede_cliente->lng))) {
|
||||
echo '
|
||||
|
|
|
@ -71,7 +71,7 @@ foreach ($id_scadenze as $id_scadenza) {
|
|||
$id_documenti[] = $scadenza['iddocumento'];
|
||||
continue;
|
||||
}
|
||||
$dir = $scadenza['rata']>0 ? 'entrata' : 'uscita';
|
||||
$dir = $scadenza['rata'] > 0 ? 'entrata' : 'uscita';
|
||||
$scadenza['rata'] = abs($scadenza['rata']);
|
||||
|
||||
$descrizione_conto = ($dir == 'entrata') ? 'Riepilogativo clienti' : 'Riepilogativo fornitori';
|
||||
|
|
|
@ -143,7 +143,7 @@ if (!empty($google)) {
|
|||
} else {
|
||||
echo '
|
||||
<div class="alert alert-info">
|
||||
'.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, "&search=Google Maps API key").'.
|
||||
'.Modules::link('Impostazioni', null, tr('Per abilitare la visualizzazione delle anagrafiche nella mappa, inserire la Google Maps API Key nella scheda Impostazioni'), true, null, true, null, '&search=Google Maps API key').'.
|
||||
</div>';
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ class RigheInterventi extends AppResource
|
|||
WHERE
|
||||
in_interventi.id IN ('.implode(',', $interventi).')';
|
||||
$records = database()->fetchArray($query);
|
||||
|
||||
|
||||
$da_interventi = array_column($records, 'id');
|
||||
}
|
||||
|
||||
|
|
|
@ -202,3 +202,23 @@ INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `
|
|||
|
||||
-- Fix quantità positiva per Note di credito
|
||||
UPDATE `co_righe_documenti` SET `qta` = ABS(`qta`), `qta_evasa` = ABS(`qta_evasa`);
|
||||
|
||||
--
|
||||
-- Struttura della tabella `zz_imports`
|
||||
--
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zz_imports` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`id_module` int(11) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`class` varchar(255) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
ALTER TABLE `zz_imports`
|
||||
ADD FOREIGN KEY (`id_module`) REFERENCES `zz_modules`(`id`) ON DELETE CASCADE;
|
||||
|
||||
-- Importazioni di base
|
||||
INSERT INTO `zz_imports` (`id_module`, `name`, `class`) VALUES
|
||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Anagrafiche'), 'Anagrafiche', 'Modules\\Anagrafiche\\Import\\CSV'),
|
||||
((SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), 'Articoli', 'Modules\\Articoli\\Import\\CSV');
|
||||
|
|
|
@ -112,6 +112,7 @@ return [
|
|||
'zz_group_module',
|
||||
'zz_group_view',
|
||||
'zz_hooks',
|
||||
'zz_imports',
|
||||
'zz_logs',
|
||||
'zz_modules',
|
||||
'zz_operations',
|
||||
|
|
Loading…
Reference in New Issue