Skip to content

Commit 4bd6dbf

Browse files
committed
feat: #1578 Importazione marchio da CSV
1 parent 771de26 commit 4bd6dbf

2 files changed

Lines changed: 57 additions & 4 deletions

File tree

modules/articoli/src/Import/CSV.php

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
use Modules\Anagrafiche\Tipo;
3030
use Modules\Articoli\Articolo;
3131
use Modules\Articoli\Categoria;
32+
use Modules\Articoli\Marchio;
3233
use Modules\Iva\Aliquota;
3334
use Plugins\ListinoClienti\DettaglioPrezzo;
3435
use Plugins\ListinoFornitori\DettaglioFornitore;
@@ -127,6 +128,24 @@ public function getAvailableFields()
127128
'sottocategoria',
128129
],
129130
],
131+
[
132+
'field' => 'marchio',
133+
'label' => 'Marchio',
134+
'names' => [
135+
'Marchio',
136+
'marchio',
137+
'Marca',
138+
'marca',
139+
],
140+
],
141+
[
142+
'field' => 'modello',
143+
'label' => 'Modello',
144+
'names' => [
145+
'Modello',
146+
'modello',
147+
],
148+
],
130149
[
131150
'field' => 'barcode',
132151
'label' => 'Barcode',
@@ -314,6 +333,17 @@ public function import($record, $update_record = true, $add_record = true)
314333
}
315334
}
316335

336+
// Gestione marchio
337+
$marchio = null;
338+
if (!empty($record['marchio'])) {
339+
$marchio = Marchio::where('name', $record['marchio'])->first();
340+
341+
if (empty($marchio)) {
342+
$marchio = Marchio::build($record['marchio']);
343+
$marchio->save();
344+
}
345+
}
346+
317347
// Gestione um
318348
$um = null;
319349
if (!empty($record['um'])) {
@@ -378,7 +408,7 @@ public function import($record, $update_record = true, $add_record = true)
378408

379409
/**
380410
* Import immagine options:
381-
*
411+
*
382412
* - 1: Permette di importare l'immagine come principale dell'articolo mantenendo gli altri allegati già presenti.
383413
* - 2: Permette di importare l'immagine come principale dell'articolo rimuovendo tutti gli allegati presenti.
384414
* - 3: Permette di importare l'immagine come allegato dell'articolo.
@@ -432,6 +462,16 @@ public function import($record, $update_record = true, $add_record = true)
432462
'sottocategoria' => $sottocategoria->id ?: $articolo['sottocategoria'],
433463
]);
434464

465+
// Associazione marchio
466+
if (!empty($marchio)) {
467+
$articolo->marchio()->associate($marchio);
468+
}
469+
470+
// Associazione modello
471+
if (!empty($record['modello'])) {
472+
$articolo->modello = $record['modello'];
473+
}
474+
435475
// Prezzo di vendita
436476
if (!empty($record['prezzo_vendita'])) {
437477
$articolo->setPrezzoVendita($record['prezzo_vendita'], $aliquota ? $aliquota->id : setting('Iva predefinita'));
@@ -462,8 +502,8 @@ public function import($record, $update_record = true, $add_record = true)
462502
public static function getExample()
463503
{
464504
return [
465-
['Codice', 'Immagine', 'Import immagine', 'Descrizione', 'Quantità', 'Data inventario', 'Unità misura', 'Prezzo acquisto', 'Prezzo vendita', 'Peso', 'Volume', 'Categoria', 'Sottocategoria', 'Barcode', 'Fornitore predefinito', 'Partita IVA', 'Codice IVA vendita', 'Ubicazione', 'Note', 'Anagrafica listino', 'Codice fornitore', 'Barcode fornitore', 'Descrizione fornitore', 'Qta minima', 'Qta massima', 'Prezzo listino', 'Sconto listino', 'Cliente/Fornitore listino', 'Sede'],
466-
['OSM-BUDGET', 'https://openstamanager.com/moduli/budget/budget.webp', '2', 'Modulo Budget per OpenSTAManager', '1', '28/11/2023', 'PZ', '90.00', '180.00', '', '', 'Software gestionali', 'Moduli aggiuntivi', '4006381333931', 'DevCode s.r.l.', '05024030289', '', '', 'Nota ad uso interno', '', 'DEV-BUDGET', '0123456789012', 'Strumento gestionale utilizzato per pianificare e monitorare le entrate e uscite aziendali', '', '', '180', '20', 'Fornitore', 'Sede'],
505+
['Codice', 'Immagine', 'Import immagine', 'Descrizione', 'Quantità', 'Data inventario', 'Unità misura', 'Prezzo acquisto', 'Prezzo vendita', 'Peso', 'Volume', 'Categoria', 'Sottocategoria', 'Marchio', 'Modello', 'Barcode', 'Fornitore predefinito', 'Partita IVA', 'Codice IVA vendita', 'Ubicazione', 'Note', 'Anagrafica listino', 'Codice fornitore', 'Barcode fornitore', 'Descrizione fornitore', 'Qta minima', 'Qta massima', 'Prezzo listino', 'Sconto listino', 'Cliente/Fornitore listino', 'Sede'],
506+
['OSM-BUDGET', 'https://openstamanager.com/moduli/budget/budget.webp', '2', 'Modulo Budget per OpenSTAManager', '1', '28/11/2023', 'PZ', '90.00', '180.00', '', '', 'Software gestionali', 'Moduli aggiuntivi', 'DevCode', 'Budget', '4006381333931', 'DevCode s.r.l.', '05024030289', '', '', 'Nota ad uso interno', '', 'DEV-BUDGET', '0123456789012', 'Strumento gestionale utilizzato per pianificare e monitorare le entrate e uscite aziendali', '', '', '180', '20', 'Fornitore', 'Sede'],
467507
];
468508
}
469509

update/2_8.sql

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,4 +92,17 @@ INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES
9292
-- Miglioria plugin Assicurazione crediti
9393
UPDATE `zz_plugins` SET `options` = '{ \"main_query\": [ { \"type\": \"table\", \"fields\": \"Fido assicurato, Data inizio, Data fine, Totale, Residuo\", \"query\": \"SELECT id, DATE_FORMAT(data_inizio,\'%d/%m/%Y\') AS \'Data inizio\', DATE_FORMAT(data_fine,\'%d/%m/%Y\') AS \'Data fine\', ROUND(fido_assicurato, 2) AS \'Fido assicurato\', ROUND(totale, 2) AS Totale, ROUND(fido_assicurato - totale, 2) AS Residuo, IF((fido_assicurato - totale) < 0, \'#f4af1b\', \'#4dc347\') AS _bg_ FROM an_assicurazione_crediti WHERE 1=1 AND id_anagrafica = |id_parent| HAVING 2=2 ORDER BY an_assicurazione_crediti.id DESC\"} ]}' WHERE `zz_plugins`.`name` = 'Assicurazione crediti';
9494

95-
ALTER TABLE `my_impianti` ADD `note` VARCHAR(255) NULL AFTER `descrizione`;
95+
ALTER TABLE `my_impianti` ADD `note` VARCHAR(255) NULL AFTER `descrizione`;
96+
97+
-- Aggiunta colonne Marchio e Modello nella vista Articoli (nascoste di default)
98+
SELECT @id_module := `id` FROM `zz_modules` WHERE `name` = 'Articoli';
99+
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `avg`, `default`) VALUES
100+
(@id_module, 'Marchio', '(SELECT `name` FROM `mg_marchi` WHERE `mg_marchi`.`id` = `mg_articoli`.`id_marchio`)', 15, 1, 0, 0, 0, '', '', 0, 0, 0, 0),
101+
(@id_module, 'Modello', '`mg_articoli`.`modello`', 16, 1, 0, 0, 0, '', '', 0, 0, 0, 0);
102+
103+
SELECT @id:= MAX(`id`) FROM `zz_views`;
104+
INSERT INTO `zz_views_lang` (`id_lang`, `id_record`, `title`) VALUES
105+
(1, @id-1, 'Marchio'),
106+
(2, @id-1, 'Brand'),
107+
(1, @id, 'Modello'),
108+
(2, @id, 'Model');

0 commit comments

Comments
 (0)