mirror of
https://github.com/devcode-it/openstamanager.git
synced 2024-12-22 21:28:08 +01:00
Import articoli + fix allegati plugin
This commit is contained in:
parent
dc5ea2dfe9
commit
e18135d8c1
@ -8,6 +8,8 @@ if (!empty($id_plugin)) {
|
||||
|
||||
$directory = '/plugins/'.$info['directory'];
|
||||
$permesso = $info['idmodule_to'];
|
||||
$id_module = $info['idmodule_to'];
|
||||
|
||||
} else {
|
||||
$info = Modules::get($id_module);
|
||||
|
||||
@ -172,11 +174,12 @@ if (filter('op') == 'link_file' || filter('op') == 'unlink_file') {
|
||||
'nome' => $nome,
|
||||
'filename' => $filename,
|
||||
'original' => $_FILES['blob']['name'],
|
||||
'id_module' => $id_module,
|
||||
'id_module' => !empty($id_module) ? $id_module : null,
|
||||
'id_record' => $id_record,
|
||||
'id_plugin' => !empty($id_plugin) ? $id_plugin : null,
|
||||
]);
|
||||
|
||||
|
||||
|
||||
$_SESSION['infos'][] = tr('File caricato correttamente!');
|
||||
} else {
|
||||
$_SESSION['errors'][] = tr('Errore durante il caricamento del file!');
|
||||
|
@ -4,19 +4,24 @@ include_once __DIR__.'/../../core.php';
|
||||
|
||||
switch (post('op')) {
|
||||
case 'delete-bulk':
|
||||
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
||||
|
||||
if ($debug){
|
||||
$id_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica'];
|
||||
|
||||
foreach ($id_records as $id) {
|
||||
$records = $dbo->fetchArray('SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='.prepare($id));
|
||||
$tipi = array_column($records, 'idtipoanagrafica');
|
||||
foreach ($id_records as $id) {
|
||||
$records = $dbo->fetchArray('SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='.prepare($id));
|
||||
$tipi = array_column($records, 'idtipoanagrafica');
|
||||
|
||||
// Se l'anagrafica non è l'azienda principale, la disattivo
|
||||
if (!in_array($id_azienda, $tipi)) {
|
||||
$dbo->query('UPDATE an_anagrafiche SET deleted = 1 WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module));
|
||||
}
|
||||
}
|
||||
// Se l'anagrafica non è l'azienda principale, la disattivo
|
||||
if (!in_array($id_azienda, $tipi)) {
|
||||
$dbo->query('UPDATE an_anagrafiche SET deleted = 1 WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module));
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION['infos'][] = tr('Anagrafiche eliminate!');
|
||||
$_SESSION['infos'][] = tr('Anagrafiche eliminate!');
|
||||
}else{
|
||||
$_SESSION['warnings'][] = tr('Procedura in fase di sviluppo. Nessuna modifica apportata.');
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -12,7 +12,9 @@ switch (post('op')) {
|
||||
array('Codice','Ragione sociale','Partita IVA','Nazione','Indirizzo','CAP','Città','Provincia','Telefono','Fax','Cellulare','Email','IBAN','Note','Tipologia'),
|
||||
array('00001','Cliente','12345678910','ITALIA','Via Giuseppe Mazzini, 123','12345','Este','PD','786 543 21','123 456 78','321 123 456 78','email@cliente.it','IT60 X054 2811 1010 0000 0123 456','Anagrafica di esempio','Cliente'),
|
||||
);
|
||||
|
||||
|
||||
directory('../../files/'.$module);
|
||||
|
||||
$fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w');
|
||||
|
||||
foreach ($list as $fields) {
|
||||
|
160
modules/articoli/import.php
Normal file
160
modules/articoli/import.php
Normal file
@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
include_once $docroot.'/modules/articoli/modutil.php';
|
||||
|
||||
switch (post('op')) {
|
||||
|
||||
case 'example':
|
||||
|
||||
$module = filter('module');
|
||||
|
||||
$list = array (
|
||||
array('Codice','Descrizione','Quantità','Unità di misura','Prezzo acquisto','Prezzo vendita','Peso lordo (KG)','Volume (M3)','Categoria','Note'),
|
||||
array('00004','Articolo','10','Kg','5,25','12,72','10,2','500','Categoria4','Articolo di prova'),
|
||||
);
|
||||
|
||||
directory('../../files/'.$module);
|
||||
|
||||
$fp = fopen('../../files/'.$module.'/'.$module.'.csv', 'w');
|
||||
|
||||
foreach ($list as $fields) {
|
||||
fputcsv($fp, $fields, ';');
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
exit;
|
||||
|
||||
break;
|
||||
|
||||
case 'import':
|
||||
|
||||
foreach ($data as $key => $value) {
|
||||
if (!empty($value)) {
|
||||
|
||||
$qta = force_decimal($data[$key]['qta']);
|
||||
unset($data[$key]['qta']);
|
||||
|
||||
$data[$key]['prezzo_acquisto'] = force_decimal($data[$key]['prezzo_acquisto']);
|
||||
$data[$key]['prezzo_vendita'] = force_decimal($data[$key]['prezzo_vendita']);
|
||||
$data[$key]['peso_lordo'] = force_decimal($data[$key]['peso_lordo']);
|
||||
$data[$key]['volume'] = force_decimal($data[$key]['volume']);
|
||||
|
||||
|
||||
// Categorie
|
||||
$rs = $dbo->select('mg_categorie', 'id', [
|
||||
'nome' => $data[$key]['id_categoria'],
|
||||
]);
|
||||
|
||||
if (empty($rs[0]['id'])) {
|
||||
$dbo->insert('mg_categorie', [
|
||||
'nome' => $data[$key]['id_categoria'],
|
||||
]);
|
||||
$data[$key]['id_categoria'] = $dbo->lastInsertedID();
|
||||
}else{
|
||||
$data[$key]['id_categoria'] = $rs[0]['id'];
|
||||
}
|
||||
|
||||
|
||||
// Insert o update
|
||||
$insert = true;
|
||||
if (!empty($primary_key)) {
|
||||
$rs = $dbo->select('mg_articoli', $primary_key, [
|
||||
$primary_key => $data[$key][$primary_key],
|
||||
]);
|
||||
|
||||
$insert = !in_array($data[$key][$primary_key], $rs[0]);
|
||||
}
|
||||
|
||||
// Insert
|
||||
if ($insert) {
|
||||
|
||||
|
||||
|
||||
$dbo->insert('mg_articoli', $data[$key]);
|
||||
|
||||
add_movimento_magazzino($dbo->lastInsertedID(), $qta, [], 'Movimento da import', date());
|
||||
}
|
||||
|
||||
// Update
|
||||
else {
|
||||
$dbo->update('mg_articoli', $data[$key], [$primary_key => $data[$key][$primary_key]]);
|
||||
|
||||
$rs = $dbo->select('mg_articoli', 'id', [
|
||||
$primary_key => $data[$key][$primary_key],
|
||||
]);
|
||||
add_movimento_magazzino($rs[0]['id'], $qta, [], 'Movimento da import', date());
|
||||
|
||||
}
|
||||
|
||||
unset($data[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return [
|
||||
[
|
||||
'field' => 'codice',
|
||||
'label' => 'Codice',
|
||||
'primary_key' => true,
|
||||
],
|
||||
[
|
||||
'field' => 'descrizione',
|
||||
'label' => 'Descrizione',
|
||||
],
|
||||
[
|
||||
'field' => 'qta',
|
||||
'label' => 'Quantità',
|
||||
],
|
||||
[
|
||||
'field' => 'um',
|
||||
'label' => 'Unità di misura',
|
||||
'names' => [
|
||||
'Unità di misura',
|
||||
'Unità misura',
|
||||
'unità misura',
|
||||
'unità di misura',
|
||||
],
|
||||
'query' => 'SELECT valore as result FROM mg_unitamisura WHERE LOWER(valore) = LOWER(|value|)',
|
||||
],
|
||||
[
|
||||
'field' => 'prezzo_acquisto',
|
||||
'label' => 'Prezzo acquisto',
|
||||
],
|
||||
[
|
||||
'field' => 'prezzo_vendita',
|
||||
'label' => 'Prezzo vendita',
|
||||
],
|
||||
[
|
||||
'field' => 'peso_lordo',
|
||||
'label' => 'Peso lordo (KG)',
|
||||
'names' => [
|
||||
'Peso lordo (KG)',
|
||||
'Peso',
|
||||
],
|
||||
],
|
||||
[
|
||||
'field' => 'volume',
|
||||
'label' => 'Volume (M3)',
|
||||
'names' => [
|
||||
'Volume (M3)',
|
||||
'volume',
|
||||
],
|
||||
],
|
||||
[
|
||||
'field' => 'id_categoria',
|
||||
'label' => 'Categoria',
|
||||
'names' => [
|
||||
'Categoria',
|
||||
'id_categoria',
|
||||
'idcategoria',
|
||||
'categoria',
|
||||
],
|
||||
],
|
||||
[
|
||||
'field' => 'note',
|
||||
'label' => 'Note',
|
||||
]
|
||||
];
|
@ -43,6 +43,8 @@ if (!empty($get['idcontratto_riga'])){
|
||||
(empty($idcontratto_riga)) ? $idcontratto_riga = $dbo->fetchArray('SELECT MAX(id) AS max_idcontratto_riga FROM `co_righe_contratti`')[0]['max_idcontratto_riga'] : '';
|
||||
(empty($idcontratto_riga)) ? $idcontratto_riga = 1 : '';
|
||||
|
||||
|
||||
|
||||
//orari inizio fine interventi (8h standard)
|
||||
$orario_inizio = '09:00';
|
||||
$orario_fine = (!empty($tempo_standard)) ? date('H:i', strtotime($orario_inizio) + ((60 * 60 ) * $tempo_standard)) : '17:00';
|
||||
@ -98,7 +100,7 @@ echo '
|
||||
|
||||
</div>';
|
||||
|
||||
|
||||
|
||||
?>
|
||||
|
||||
<!-- ARTICOLI -->
|
||||
@ -146,7 +148,7 @@ echo '
|
||||
|
||||
echo '
|
||||
|
||||
{( "name": "filelist_and_upload", "id_module": "'.$id_module.'", "id_record": "'.$id_record.'", "id_plugin": "'.$id_plugin.'", "ajax":"true", '.((!empty($readonly)) ? '"readonly":"true"' : '"readonly":"false"' ). ' )}
|
||||
{( "name": "filelist_and_upload", "id_record": "'.$idcontratto_riga.'", "id_plugin": "'.$id_plugin.'", "ajax":"true", '.((!empty($readonly)) ? '"readonly":"true"' : '"readonly":"false"' ). ' )}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -7,7 +7,8 @@ include_once $docroot.'/modules/articoli/modutil.php';
|
||||
//$query = 'SELECT *, (SELECT codice FROM mg_articoli WHERE id=mg_articoli_interventi.idarticolo) AS codice, mg_articoli_interventi.id AS idriga, (SELECT prc_guadagno FROM mg_listini WHERE id=(SELECT idlistino_vendite FROM an_anagrafiche WHERE idanagrafica=(SELECT idanagrafica FROM in_interventi WHERE id=mg_articoli_interventi.idintervento) ) ) AS prc_guadagno FROM mg_articoli_interventi WHERE idintervento='.prepare($id_record).' '.Modules::getAdditionalsQuery('Magazzino');
|
||||
//$rs = $dbo->fetchArray($query);
|
||||
|
||||
$idcontratto_riga = $get['idcontratto_riga'];
|
||||
if (!empty($get['idcontratto_riga']))
|
||||
$idcontratto_riga = $get['idcontratto_riga'];
|
||||
|
||||
$query = 'SELECT * FROM co_righe_contratti_articoli WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
@ -2,7 +2,8 @@
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$idcontratto_riga = $get['idcontratto_riga'];
|
||||
if (!empty($get['idcontratto_riga']))
|
||||
$idcontratto_riga = $get['idcontratto_riga'];
|
||||
|
||||
$query = 'SELECT * FROM co_righe_contratti_materiali WHERE id_riga_contratto='.prepare($idcontratto_riga).' '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY id ASC';
|
||||
$rs2 = $dbo->fetchArray($query);
|
||||
|
@ -133,7 +133,7 @@ if (empty($new_codice)) {
|
||||
<!-- RIGA 1 -->
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Cliente", "data-heavy": 0 ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Cliente'); ?>", "name": "idanagrafica", "required": 1, "value": "<?php echo $idanagrafica; ?>", "ajax-source": "clienti", "icon-after": "add|<?php echo Modules::get('Anagrafiche')['id']; ?>|tipoanagrafica=Cliente||<?php echo (empty($idanagrafica)) ? '' : 'disabled'; ?>", "data-heavy": 0 ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
@ -156,7 +156,7 @@ if (empty($new_codice)) {
|
||||
</div>
|
||||
|
||||
<div class="col-md-4" id='impianti'>
|
||||
{[ "type": "select", "label": "<?php echo tr('Impianto'); ?>", "multiple": 1, "name": "idimpianti[]", "value": "<?php echo $idimpianto; ?>", "placeholder": "<?php echo tr('Seleziona prima un cliente'); ?>...", "ajax-source": "impianti", "icon-after": "add|<?php echo Modules::get('MyImpianti')['id']; ?>|source=Attività", "data-heavy": 0 ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Impianto'); ?>", "multiple": 1, "name": "idimpianti[]", "value": "<?php echo $idimpianto; ?>", "placeholder": "<?php echo tr('Seleziona prima un cliente'); ?>...", "ajax-source": "impianti", "icon-after": "add|<?php echo Modules::get('MyImpianti')['id']; ?>|source=Attività|<?php echo (empty($idimpianto)) ? '' : 'disabled'; ?>", "data-heavy": 0 ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -254,7 +254,6 @@ if (empty($new_codice)) {
|
||||
$("#idcontratto").prop("disabled", true);
|
||||
$("#idimpianti").prop("disabled", true);
|
||||
$("#componenti").prop("disabled", true);
|
||||
$("#impianti").find("button").prop("disabled", true);
|
||||
|
||||
<?php
|
||||
if (!empty($idcontratto) && (!empty($idordineservizio) || !empty($idcontratto_riga))) {
|
||||
|
@ -42,12 +42,8 @@ $result .= '
|
||||
}
|
||||
|
||||
// Visualizzo l'elenco di file già caricati
|
||||
$query = 'SELECT * FROM zz_files WHERE id_module='.prepare($options['id_module']).' AND id_record = '.prepare($options['id_record']).' AND id_plugin ';
|
||||
if (!empty($options['id_plugin'])) {
|
||||
$query .= ' = '.prepare($options['id_plugin']);
|
||||
} else {
|
||||
$query .= 'IS NULL';
|
||||
}
|
||||
$query = 'SELECT * FROM zz_files WHERE id_record = '.prepare($options['id_record']).' AND id_module'.((!empty($options['id_module'])) ? ' = '.prepare($options['id_module']) : ' IS NULL').' AND id_plugin'.((!empty($options['id_plugin'])) ? ' = '.prepare($options['id_plugin']) : ' IS NULL').'';
|
||||
|
||||
$rs = $dbo->fetchArray($query);
|
||||
|
||||
if (!empty($rs)) {
|
||||
@ -76,7 +72,6 @@ $result .= '
|
||||
|
||||
|
||||
//Anteprime supportate dal browser
|
||||
//
|
||||
$extension = end((explode('.', $r['original'])));
|
||||
$supported_extensions = ['pdf','jpg','png','gif','jpeg','bmp'];
|
||||
if ( in_array($extension, $supported_extensions)){
|
||||
|
@ -215,3 +215,7 @@ ALTER TABLE `dt_ddt` ADD `note_aggiuntive` TEXT NOT NULL AFTER `note`;
|
||||
|
||||
-- Fix id_plugin (zz_files)
|
||||
UPDATE `zz_files` SET `id_plugin` = NULL WHERE `id_plugin` = 0;
|
||||
|
||||
-- Fix id_module (zz_files)
|
||||
ALTER TABLE `zz_files` CHANGE `id_module` `id_module` INT(11) NULL;
|
||||
UPDATE `zz_files` SET `id_module` = NULL WHERE `id_module` = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user