161 lines
3.9 KiB
PHP
161 lines
3.9 KiB
PHP
|
<?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',
|
||
|
]
|
||
|
];
|