Import articoli + fix allegati plugin

This commit is contained in:
Luca 2018-05-23 18:05:49 +02:00
parent dc5ea2dfe9
commit e18135d8c1
10 changed files with 199 additions and 27 deletions

View File

@ -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!');

View 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;
}

View File

@ -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
View 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',
]
];

View File

@ -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>

View File

@ -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);

View File

@ -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);

View File

@ -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))) {

View File

@ -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)){

View File

@ -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;