Aggiunta ricerca per codice fornitore predefinito articoli nei documenti in uscita
This commit is contained in:
parent
8ec416fbeb
commit
c86e2dc69e
|
@ -31,107 +31,114 @@ switch ($resource) {
|
|||
$sedi_non_impostate = !isset($superselect['idsede_partenza']) && !isset($superselect['idsede_destinazione']);
|
||||
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
|
||||
$usare_dettaglio_fornitore = $superselect['dir'] == 'uscita';
|
||||
$ricerca_codici_fornitore = $superselect['ricerca_codici_fornitore'];
|
||||
$ricerca_codici_fornitore = 1;
|
||||
$usare_iva_anagrafica = $superselect['dir'] == 'entrata' && !empty($superselect['idanagrafica']);
|
||||
$solo_non_varianti = $superselect['solo_non_varianti'];
|
||||
$idagente = $superselect['idagente'];
|
||||
$id_listino = $superselect['id_listino'];
|
||||
|
||||
$query = "SELECT
|
||||
DISTINCT mg_articoli.id,
|
||||
DISTINCT `mg_articoli`.`id`,
|
||||
IF(`categoria`.`nome` IS NOT NULL, CONCAT(`categoria`.`nome`, IF(`sottocategoria`.`nome` IS NOT NULL, CONCAT(' (', `sottocategoria`.`nome`, ')'), '-')), '<i>".tr('Nessuna categoria')."</i>') AS optgroup,
|
||||
mg_articoli.barcode,
|
||||
`mg_articoli`.`barcode`,
|
||||
|
||||
mg_articoli.".($prezzi_ivati ? 'prezzo_vendita_ivato' : 'prezzo_vendita')." AS prezzo_vendita,
|
||||
mg_articoli.prezzo_vendita_ivato AS prezzo_vendita_ivato,
|
||||
mg_articoli.".($prezzi_ivati ? 'minimo_vendita_ivato' : 'minimo_vendita')." AS minimo_vendita,";
|
||||
`mg_articoli`.".($prezzi_ivati ? '`prezzo_vendita_ivato`' : '`prezzo_vendita`')." AS prezzo_vendita,
|
||||
`mg_articoli`.`prezzo_vendita_ivato` AS prezzo_vendita_ivato,
|
||||
`mg_articoli`.".($prezzi_ivati ? '`minimo_vendita_ivato`' : '`minimo_vendita`')." AS minimo_vendita,";
|
||||
|
||||
// Informazioni relative al fornitore specificato dal documenti di acquisto
|
||||
if ($usare_dettaglio_fornitore) {
|
||||
$query .= '
|
||||
IFNULL(mg_fornitore_articolo.codice_fornitore, mg_articoli.codice) AS codice,
|
||||
IFNULL(mg_fornitore_articolo.descrizione, mg_articoli.descrizione) AS descrizione,
|
||||
IFNULL(mg_fornitore_articolo.prezzo_acquisto, mg_articoli.prezzo_acquisto) AS prezzo_acquisto,
|
||||
IFNULL(mg_fornitore_articolo.qta_minima, 0) AS qta_minima,
|
||||
mg_fornitore_articolo.id AS id_dettaglio_fornitore,';
|
||||
IFNULL(`mg_fornitore_articolo`.`codice_fornitore`, `mg_articoli.codice`) AS codice,
|
||||
IFNULL(`mg_fornitore_articolo`.`descrizione`, `mg_articoli.descrizione`) AS descrizione,
|
||||
IFNULL(`mg_fornitore_articolo`.`prezzo_acquisto`, `mg_articoli.prezzo_acquisto`) AS prezzo_acquisto,
|
||||
IFNULL(`mg_fornitore_articolo`.`qta_minima`, 0) AS qta_minima,
|
||||
`mg_fornitore_articolo`.`id` AS id_dettaglio_fornitore,';
|
||||
}
|
||||
// Informazioni dell'articolo per i documenti di vendita
|
||||
else {
|
||||
$query .= '
|
||||
mg_articoli.codice AS codice,
|
||||
mg_articoli.descrizione AS descrizione,
|
||||
mg_articoli.prezzo_acquisto AS prezzo_acquisto,
|
||||
`mg_articoli`.`codice` AS codice,
|
||||
`mg_articoli`.`descrizione` AS descrizione,
|
||||
`mg_articoli`.`prezzo_acquisto` AS prezzo_acquisto,
|
||||
0 AS qta_minima,
|
||||
NULL AS id_dettaglio_fornitore,';
|
||||
`mg_fornitore_articolo`.`codice_fornitore` AS codice_fornitore,
|
||||
`mg_fornitore_articolo`.`id` AS id_dettaglio_fornitore,';
|
||||
}
|
||||
|
||||
if ($usare_iva_anagrafica) {
|
||||
$query .= '
|
||||
IFNULL(iva_anagrafica.id, IFNULL(iva_articolo.id, iva_predefinita.id)) AS idiva_vendita,
|
||||
IFNULL(iva_anagrafica.descrizione, IFNULL(iva_articolo.descrizione, iva_predefinita.descrizione)) AS iva_vendita,
|
||||
IFNULL(iva_anagrafica.percentuale, IFNULL(iva_articolo.percentuale, iva_predefinita.percentuale)) AS percentuale,';
|
||||
IFNULL(`iva_anagrafica`.`id`, IFNULL(`iva_articolo`.`id`, `iva_predefinita`.`id`)) AS idiva_vendita,
|
||||
IFNULL(`iva_anagrafica`.`descrizione`, IFNULL(`iva_articolo`.`descrizione`, `iva_predefinita`.`descrizione`)) AS iva_vendita,
|
||||
IFNULL(`iva_anagrafica`.`percentuale`, IFNULL(`iva_articolo`.`percentuale`, `iva_predefinita`.`percentuale`)) AS percentuale,';
|
||||
} else {
|
||||
$query .= '
|
||||
IFNULL(iva_articolo.id, iva_predefinita.id) AS idiva_vendita,
|
||||
IFNULL(iva_articolo.descrizione, iva_predefinita.descrizione) AS iva_vendita,
|
||||
IFNULL(iva_articolo.percentuale, iva_predefinita.percentuale) AS percentuale,';
|
||||
IFNULL(`iva_articolo`.`id`, `iva_predefinita`.`id`) AS idiva_vendita,
|
||||
IFNULL(`iva_articolo`.`descrizione`, `iva_predefinita`.`descrizione`) AS iva_vendita,
|
||||
IFNULL(`iva_articolo`.`percentuale`, `iva_predefinita`.`percentuale`) AS percentuale,';
|
||||
}
|
||||
|
||||
if ($idagente) {
|
||||
$query .= '
|
||||
co_provvigioni.provvigione AS provvigione,
|
||||
co_provvigioni.tipo_provvigione AS tipo_provvigione,';
|
||||
`co_provvigioni`.`pr`ovvigione` AS provvigione,
|
||||
`co_provvigioni`.`tipo_provvigione` AS tipo_provvigione,';
|
||||
}
|
||||
|
||||
$query .= '
|
||||
round(mg_articoli.qta,'.setting('Cifre decimali per quantità').") AS qta,
|
||||
mg_articoli.um,
|
||||
mg_articoli.fattore_um_secondaria,
|
||||
mg_articoli.servizio,
|
||||
round(`mg_articoli`.`qta`,'.setting('Cifre decimali per quantità').") AS qta,
|
||||
`mg_articoli`.`um`,
|
||||
`mg_articoli`.`fattore_um_secondaria`,
|
||||
`mg_articoli`.`servizio`,
|
||||
|
||||
mg_articoli.idconto_vendita,
|
||||
mg_articoli.idconto_acquisto,
|
||||
categoria.`nome` AS categoria,
|
||||
sottocategoria.`nome` AS sottocategoria,
|
||||
righe.media_ponderata,
|
||||
`mg_articoli`.`idconto_vendita`,
|
||||
`mg_articoli`.`idconto_acquisto`,
|
||||
`categoria`.`nome` AS categoria,
|
||||
`sottocategoria`.`nome` AS sottocategoria,
|
||||
`righe`.`media_ponderata`,
|
||||
|
||||
CONCAT(conto_vendita_categoria .numero, '.', conto_vendita_sottocategoria.numero, ' ', conto_vendita_sottocategoria.descrizione) AS idconto_vendita_title,
|
||||
CONCAT(conto_acquisto_categoria .numero, '.', conto_acquisto_sottocategoria.numero, ' ', conto_acquisto_sottocategoria.descrizione) AS idconto_acquisto_title
|
||||
CONCAT(`conto_vendita_categoria` .`numero`, '.', `conto_vendita_sottocategoria`.`numero`, ' ', `conto_vendita_sottocategoria`.`descrizione`) AS idconto_vendita_title,
|
||||
CONCAT(`conto_acquisto_categoria` .`numero`, '.', `conto_acquisto_sottocategoria`.`numero`, ' ', `conto_acquisto_sottocategoria`.`descrizione`) AS idconto_acquisto_title
|
||||
|
||||
FROM mg_articoli
|
||||
FROM `mg_articoli`
|
||||
LEFT JOIN `mg_categorie` AS categoria ON `categoria`.`id` = `mg_articoli`.`id_categoria`
|
||||
LEFT JOIN `mg_categorie` AS sottocategoria ON `sottocategoria`.`id` = `mg_articoli`.`id_sottocategoria`
|
||||
LEFT JOIN co_pianodeiconti3 AS conto_vendita_sottocategoria ON conto_vendita_sottocategoria.id=mg_articoli.idconto_vendita
|
||||
LEFT JOIN co_pianodeiconti2 AS conto_vendita_categoria ON conto_vendita_sottocategoria.idpianodeiconti2=conto_vendita_categoria.id
|
||||
LEFT JOIN co_pianodeiconti3 AS conto_acquisto_sottocategoria ON conto_acquisto_sottocategoria.id=mg_articoli.idconto_acquisto
|
||||
LEFT JOIN co_pianodeiconti2 AS conto_acquisto_categoria ON conto_acquisto_sottocategoria.idpianodeiconti2=conto_acquisto_categoria.id
|
||||
LEFT JOIN `co_pianodeiconti3` AS conto_vendita_sottocategoria ON `conto_vendita_sottocategoria`.`id`=`mg_articoli`.`idconto_vendita`
|
||||
LEFT JOIN `co_pianodeiconti2` AS conto_vendita_categoria ON `conto_vendita_sottocategoria`.`idpianodeiconti2`=`conto_vendita_categoria`.`id`
|
||||
LEFT JOIN `co_pianodeiconti3` AS conto_acquisto_sottocategoria ON `conto_acquisto_sottocategoria`.`id`=`mg_articoli`.`idconto_acquisto`
|
||||
LEFT JOIN `co_pianodeiconti2` AS conto_acquisto_categoria ON `conto_acquisto_sottocategoria`.`idpianodeiconti2`=`conto_acquisto_categoria`.`id`
|
||||
|
||||
LEFT JOIN (SELECT co_righe_documenti.idarticolo AS id, (SUM((co_righe_documenti.prezzo_unitario-co_righe_documenti.sconto_unitario)*co_righe_documenti.qta)/SUM(co_righe_documenti.qta)) AS media_ponderata FROM co_righe_documenti
|
||||
LEFT JOIN co_documenti ON co_documenti.id=co_righe_documenti.iddocumento
|
||||
LEFT JOIN co_tipidocumento ON co_tipidocumento.id=co_documenti.idtipodocumento WHERE co_tipidocumento.dir='uscita' GROUP BY co_righe_documenti.idarticolo) AS righe
|
||||
ON righe.id=mg_articoli.id
|
||||
LEFT JOIN co_iva AS iva_articolo ON iva_articolo.id = mg_articoli.idiva_vendita
|
||||
LEFT JOIN co_iva AS iva_predefinita ON iva_predefinita.id = (SELECT valore FROM zz_settings WHERE nome = 'Iva predefinita')";
|
||||
LEFT JOIN (SELECT `co_righe_documenti`.`idarticolo` AS id, (SUM((`co_righe_documenti`.`prezzo_unitario`-`co_righe_documenti`.`sconto_unitario`)*`co_righe_documenti`.`qta`)/SUM(`co_righe_documenti`.`qta`)) AS media_ponderata FROM `co_righe_documenti`
|
||||
LEFT JOIN `co_documenti` ON `co_documenti`.`id`=`co_righe_documenti`.`iddocumento`
|
||||
LEFT JOIN `co_tipidocumento` ON `co_tipidocumento`.`id`=`co_documenti`.`idtipodocumento` WHERE `co_tipidocumento`.`dir`='uscita' GROUP BY `co_righe_documenti`.`idarticolo`) AS righe
|
||||
ON `righe`.`id`=`mg_articoli`.`id`
|
||||
LEFT JOIN `co_iva` AS iva_articolo ON `iva_articolo`.`id` = `mg_articoli`.`idiva_vendita`
|
||||
LEFT JOIN `co_iva` AS `iva_predefinita` ON `iva_predefinita`.`id` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = 'Iva predefinita')";
|
||||
|
||||
if ($usare_iva_anagrafica) {
|
||||
$query .= '
|
||||
LEFT JOIN co_iva AS iva_anagrafica ON iva_anagrafica.id = (SELECT idiva_vendite FROM an_anagrafiche WHERE idanagrafica = '.prepare($superselect['idanagrafica']).')';
|
||||
LEFT JOIN `co_iva` AS iva_anagrafica ON `iva_anagrafica`.`id` = (SELECT `idiva_vendite` FROM `an_anagrafiche` WHERE `idanagrafica` = '.prepare($superselect['idanagrafica']).')';
|
||||
}
|
||||
|
||||
if ($idagente) {
|
||||
$query .= '
|
||||
LEFT JOIN co_provvigioni ON co_provvigioni.idarticolo = mg_articoli.id AND co_provvigioni.idagente='.prepare($idagente);
|
||||
LEFT JOIN `co_provvigioni` ON `co_provvigioni`.`idarticolo` = `mg_articoli`.`id` AND `co_provvigioni`.`idagente`='.prepare($idagente);
|
||||
}
|
||||
|
||||
if ($dir == 'uscita') {
|
||||
$query .= '
|
||||
|
||||
LEFT JOIN mg_fornitore_articolo ON mg_fornitore_articolo.id_articolo = mg_articoli.id AND mg_fornitore_articolo.deleted_at IS NULL AND mg_fornitore_articolo.id_fornitore = '.prepare($superselect['idanagrafica']);
|
||||
LEFT JOIN `mg_fornitore_articolo` ON `mg_fornitore_articolo`.`id_articolo` = `mg_articoli`.`id` AND `mg_fornitore_articolo`.`deleted_at` IS NULL AND `mg_fornitore_articolo`.`id_fornitore` = '.prepare($superselect['idanagrafica']);
|
||||
} else {
|
||||
$query .= '
|
||||
|
||||
LEFT JOIN `mg_fornitore_articolo` ON (`mg_fornitore_articolo`.`id_articolo` = `mg_articoli`.`id` AND `mg_fornitore_articolo`.`deleted_at` IS NULL AND `mg_fornitore_articolo`.`id_fornitore` = `mg_articoli`.`id_fornitore`)';
|
||||
}
|
||||
|
||||
// Se c'è una sede settata, carico tutti gli articoli presenti in quella sede
|
||||
if (!$sedi_non_impostate) {
|
||||
$query .= '
|
||||
LEFT JOIN (SELECT idarticolo, idsede FROM mg_movimenti GROUP BY idarticolo) movimenti ON movimenti.idarticolo=mg_articoli.id
|
||||
LEFT JOIN an_sedi ON an_sedi.id = movimenti.idsede';
|
||||
LEFT JOIN (SELECT `idarticolo`, `idsede` FROM `mg_movimenti` GROUP BY `idarticolo`) movimenti ON `movimenti`.`idarticolo`=`mg_articoli`.`id`
|
||||
LEFT JOIN `an_sedi` ON `an_sedi`.`id` = `movimenti`.`idsede`';
|
||||
}
|
||||
|
||||
$query .= '
|
||||
|
@ -141,48 +148,48 @@ switch ($resource) {
|
|||
if (!$sedi_non_impostate) {
|
||||
$query .= '
|
||||
GROUP BY
|
||||
mg_articoli.id';
|
||||
`mg_articoli`.`id`';
|
||||
}
|
||||
|
||||
$query .= '
|
||||
ORDER BY
|
||||
mg_articoli.id_categoria ASC,
|
||||
mg_articoli.id_sottocategoria ASC,
|
||||
mg_articoli.codice ASC,
|
||||
mg_articoli.descrizione ASC';
|
||||
`mg_articoli`.`id_categoria` ASC,
|
||||
`mg_articoli`.`id_sottocategoria` ASC,
|
||||
`mg_articoli`.`codice` ASC,
|
||||
`mg_articoli`.`descrizione` ASC';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'mg_articoli.id='.prepare($element);
|
||||
$filter[] = '`mg_articoli`.`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = 'mg_articoli.attivo = 1';
|
||||
$where[] = 'mg_articoli.deleted_at IS NULL';
|
||||
$where[] = '`mg_articoli`.`attivo` = 1';
|
||||
$where[] = '`mg_articoli`.`deleted_at` IS NULL';
|
||||
|
||||
if ($solo_non_varianti) {
|
||||
$where[] = 'mg_articoli.id_combinazione IS NULL';
|
||||
$where[] = '`mg_articoli`.`id_combinazione` IS NULL';
|
||||
}
|
||||
|
||||
if ($id_listino) {
|
||||
$where[] = 'mg_articoli.id NOT IN (SELECT id_articolo FROM mg_listini_articoli WHERE id_listino='.prepare($id_listino).')';
|
||||
$where[] = '`mg_articoli`.`id` NOT IN (SELECT `id_articolo` FROM `mg_listini_articoli` WHERE `id_listino`='.prepare($id_listino).')';
|
||||
}
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'mg_articoli.descrizione LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'mg_articoli.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'mg_articoli.barcode LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'categoria.nome LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'sottocategoria.nome LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_articoli`.`descrizione` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_articoli`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_articoli`.`barcode` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`categoria`.`nome` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`sottocategoria`.`nome` LIKE '.prepare('%'.$search.'%');
|
||||
|
||||
if ($usare_dettaglio_fornitore) {
|
||||
$search_fields[] = 'mg_fornitore_articolo.descrizione LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'mg_fornitore_articolo.codice_fornitore LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'mg_fornitore_articolo.barcode_fornitore LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_fornitore_articolo`.`descrizione` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_fornitore_articolo`.`codice_fornitore` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_fornitore_articolo`.`barcode_fornitore` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
if ($ricerca_codici_fornitore) {
|
||||
$search_fields[] = 'mg_articoli.id IN (SELECT mg_fornitore_articolo.id_articolo FROM mg_fornitore_articolo WHERE mg_fornitore_articolo.descrizione LIKE '.prepare('%'.$search.'%').')';
|
||||
$search_fields[] = 'mg_articoli.id IN (SELECT mg_fornitore_articolo.id_articolo FROM mg_fornitore_articolo WHERE mg_fornitore_articolo.codice_fornitore LIKE '.prepare('%'.$search.'%').')';
|
||||
$search_fields[] = 'mg_articoli.id IN (SELECT mg_fornitore_articolo.id_articolo FROM mg_fornitore_articolo WHERE mg_fornitore_articolo.barcode_fornitore LIKE '.prepare('%'.$search.'%').')';
|
||||
$search_fields[] = '`mg_fornitore_articolo`.`descrizione` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_fornitore_articolo`.`codice_fornitore` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_fornitore_articolo`.`barcode_fornitore` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -195,10 +202,10 @@ switch ($resource) {
|
|||
// Eventuali articoli disabilitati
|
||||
foreach ($rs as $k => $r) {
|
||||
// Lettura movimenti delle mie sedi
|
||||
$qta_sede = $dbo->fetchOne('SELECT SUM(mg_movimenti.qta) AS qta FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede WHERE mg_movimenti.idarticolo = '.prepare($r['id']).' AND idsede = '.prepare($superselect['idsede_partenza']))['qta'];
|
||||
$qta_sede = $dbo->fetchOne('SELECT SUM(`mg_movimenti`.`qta`) AS qta FROM `mg_movimenti` LEFT JOIN `an_sedi` ON `an_sedi`.`id` = `mg_movimenti`.`idsede` WHERE `mg_movimenti`.`idarticolo` = '.prepare($r['id']).' AND `idsede` = '.prepare($superselect['idsede_partenza']))['qta'];
|
||||
|
||||
$rs[$k] = array_merge($r, [
|
||||
'text' => $r['codice'].' - '.$r['descrizione'].' '.(!$r['servizio'] ? '('.Translator::numberToLocale($qta_sede).(!empty($r['um']) ? ' '.$r['um'] : '').')' : ''),
|
||||
'text' => $r['codice'].' - '.$r['descrizione'].' '.(!$r['servizio'] ? '('.Translator::numberToLocale($qta_sede).(!empty($r['um']) ? ' '.$r['um'] : '').')' : '').($r['codice_fornitore'] ? ' ('.$r['codice_fornitore'].')' : ''),
|
||||
'disabled' => $qta_sede <= 0 && !$permetti_movimenti_sotto_zero && !$r['servizio'],
|
||||
]);
|
||||
}
|
||||
|
@ -211,16 +218,16 @@ switch ($resource) {
|
|||
break;
|
||||
|
||||
case 'categorie':
|
||||
$query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY nome';
|
||||
$query = 'SELECT `id`, `nome` AS descrizione FROM `mg_categorie` |where| ORDER BY `nome`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = '`parent` IS NULL';
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`nome` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -231,28 +238,28 @@ switch ($resource) {
|
|||
*/
|
||||
case 'sottocategorie':
|
||||
if (isset($superselect['id_categoria'])) {
|
||||
$query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY nome';
|
||||
$query = 'SELECT `id`, `nome` AS descrizione FROM `mg_categorie` |where| ORDER BY `nome`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'id='.prepare($element);
|
||||
$filter[] = '`id`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = '`parent`='.prepare($superselect['id_categoria']);
|
||||
$where[] = '`parent`='.prepare($superselect['`id_categoria`']);
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`nome` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 'misure':
|
||||
$query = 'SELECT valore AS id, valore AS descrizione FROM mg_unitamisura |where| ORDER BY valore';
|
||||
$query = 'SELECT `valore` AS id, `valore` AS descrizione FROM `mg_unitamisura` |where| ORDER BY `valore`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'valore='.prepare($element);
|
||||
$filter[] = '`valore`='.prepare($element);
|
||||
}
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'valore LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`valore` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
@ -265,48 +272,47 @@ switch ($resource) {
|
|||
$id_anagrafica = filter('id_anagrafica'); // ID passato via URL in modo fisso
|
||||
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
|
||||
|
||||
$query = 'SELECT mg_articoli.*,
|
||||
mg_articoli.id,
|
||||
mg_articoli.qta,
|
||||
mg_articoli.um,
|
||||
mg_articoli.id,
|
||||
mg_articoli.id,
|
||||
IFNULL(mg_fornitore_articolo.codice_fornitore, mg_articoli.codice) AS codice,
|
||||
IFNULL(mg_fornitore_articolo.descrizione, mg_articoli.descrizione) AS descrizione,
|
||||
IFNULL(mg_fornitore_articolo.prezzo_acquisto, mg_articoli.prezzo_acquisto) AS prezzo_acquisto,
|
||||
mg_articoli.'.($prezzi_ivati ? 'prezzo_vendita_ivato' : 'prezzo_vendita').' AS prezzo_vendita,
|
||||
mg_articoli.prezzo_vendita_ivato AS prezzo_vendita_ivato,
|
||||
IFNULL(mg_fornitore_articolo.qta_minima, 0) AS qta_minima,
|
||||
mg_fornitore_articolo.id AS id_dettaglio_fornitore
|
||||
FROM mg_articoli
|
||||
LEFT JOIN mg_fornitore_articolo ON mg_fornitore_articolo.id_articolo = mg_articoli.id AND mg_fornitore_articolo.deleted_at IS NULL AND mg_fornitore_articolo.id_fornitore = '.prepare($id_anagrafica).'
|
||||
$query = 'SELECT `mg_articoli`.*,
|
||||
`mg_articoli`.`id`,
|
||||
`mg_articoli`.`qta`,
|
||||
`mg_articoli`.`um`,
|
||||
`mg_articoli`.`id`,
|
||||
`mg_articoli`.`id`,
|
||||
IFNULL(`mg_fornitore_articolo`.`codice_fornitore`, `mg_articoli`.`codice`) AS codice,
|
||||
IFNULL(`mg_fornitore_articolo`.`descrizione`, `mg_articoli`.`descrizione`) AS descrizione,
|
||||
IFNULL(`mg_fornitore_articolo`.`prezzo_acquisto`, `mg_articoli`.`prezzo_acquisto`) AS prezzo_acquisto,
|
||||
`mg_articoli`.'.($prezzi_ivati ? '`prezzo_vendita_ivato`' : '`prezzo_vendita`').' AS prezzo_vendita,
|
||||
`mg_articoli`.`prezzo_vendita_ivato` AS prezzo_vendita_ivato,
|
||||
IFNULL(`mg_fornitore_articolo`.`qta_minima`, 0) AS qta_minima,
|
||||
`mg_fornitore_articolo`.`id` AS id_dettaglio_fornitore
|
||||
FROM `mg_articoli`
|
||||
LEFT JOIN `mg_fornitore_articolo` ON `mg_fornitore_articolo`.`id_articolo` = `mg_articoli`.`id` AND `mg_fornitore_articolo`.`deleted_at` IS NULL AND `mg_fornitore_articolo`.`id_fornitore` = '.prepare($id_anagrafica).'
|
||||
|where|';
|
||||
|
||||
$where[] = 'mg_articoli.attivo = 1';
|
||||
$where[] = 'mg_articoli.deleted_at IS NULL';
|
||||
$where[] = '`mg_articoli`.`attivo` = 1';
|
||||
$where[] = '`mg_articoli`.`deleted_at` IS NULL';
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'mg_articoli.codice LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = 'mg_articoli.barcode LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_articoli`.`codice` LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`mg_articoli`.`barcode` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'fornitori-articolo':
|
||||
|
||||
$query = 'SELECT an_anagrafiche.idanagrafica AS id, CONCAT(an_anagrafiche.ragione_sociale, IF(`mg_fornitore_articolo`.`codice_fornitore` IS NOT NULL, CONCAT( " (", `mg_fornitore_articolo`.`codice_fornitore`, ")" ), "-") ) AS descrizione, (mg_prezzi_articoli.prezzo_unitario-(mg_prezzi_articoli.prezzo_unitario*mg_prezzi_articoli.sconto_percentuale)/100) AS prezzo_unitario FROM mg_prezzi_articoli LEFT JOIN an_anagrafiche ON mg_prezzi_articoli.id_anagrafica=an_anagrafiche.idanagrafica LEFT JOIN mg_fornitore_articolo ON mg_fornitore_articolo.id_articolo = mg_prezzi_articoli.id_articolo |where| ORDER BY an_anagrafiche.ragione_sociale';
|
||||
$query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT(`an_anagrafiche`.`ragione_sociale`, IF(`mg_fornitore_articolo`.`codice_fornitore` IS NOT NULL, CONCAT( " (", `mg_fornitore_articolo`.`codice_fornitore`, ")" ), "-") ) AS descrizione, (`mg_prezzi_articoli`.`prezzo_unitario`-(`mg_prezzi_articoli`.`prezzo_unitario`*`mg_prezzi_articoli`.`sconto_percentuale`)/100) AS prezzo_unitario FROM `mg_prezzi_articoli` LEFT JOIN `an_anagrafiche` ON `mg_prezzi_articoli`.`id_anagrafica`=`an_anagrafiche`.`idanagrafica` LEFT JOIN `mg_fornitore_articolo` ON (`mg_fornitore_articolo`.`id_articolo`=`mg_prezzi_articoli`.`id_articolo` AND `mg_fornitore_articolo`.`id_fornitore` = `mg_prezzi_articoli`.`id_anagrafica`) |where| ORDER BY `an_anagrafiche`.`ragione_sociale`';
|
||||
|
||||
foreach ($elements as $element) {
|
||||
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
|
||||
$filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element);
|
||||
}
|
||||
|
||||
$where[] = 'dir="uscita"';
|
||||
$where[] = 'minimo IS NULL';
|
||||
$where[] = 'massimo IS NULL';
|
||||
$where[] = '`dir`="uscita"';
|
||||
$where[] = '`minimo` IS NULL';
|
||||
$where[] = '`massimo` IS NULL';
|
||||
$where[] = '`mg_prezzi_articoli`.`id_articolo`='.prepare($superselect['id_articolo']);
|
||||
|
||||
if (!empty($search)) {
|
||||
$search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%');
|
||||
$search_fields[] = '`an_anagrafiche`.`ragione_sociale` LIKE '.prepare('%'.$search.'%');
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -50,7 +50,8 @@ use Modules\Iva\Aliquota;
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<?php echo Modules::link('Categorie articoli', $record['id_categoria'], null, null, 'class="pull-right"'); ?>
|
||||
<?php echo ((!empty($record['id_categoria'])) ?
|
||||
Modules::link('Categorie articoli', $record['id_categoria'], null, null, 'class="pull-right"') : '') ?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Categoria'); ?>", "name": "categoria", "required": 0, "value": "$id_categoria$", "ajax-source": "categorie", "icon-after": "add|<?php echo Modules::get('Categorie articoli')['id']; ?>" ]}
|
||||
</div>
|
||||
|
||||
|
@ -181,6 +182,8 @@ use Modules\Iva\Aliquota;
|
|||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<?php echo ((!empty($record['id_fornitore'])) ?
|
||||
Plugins::link('Listino Fornitori', $id_record, null, null, 'class="pull-right"'): ''); ?>
|
||||
{[ "type": "select", "label": "<?php echo tr('Fornitore predefinito'); ?>", "name": "id_fornitore", "ajax-source": "fornitori-articolo", "select-options": <?php echo json_encode(['id_articolo' => $id_record]); ?>, "value":"$id_fornitore$", "help": "<?php echo tr('Fornitore predefinito selezionabile tra i fornitori presenti nel plugin \"Listino fornitori\"'); ?>." ]}
|
||||
</div>
|
||||
</div>
|
||||
|
|
Loading…
Reference in New Issue