2020-09-03 11:55:15 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
include_once __DIR__.'/../../../core.php';
|
|
|
|
|
|
|
|
switch ($resource) {
|
|
|
|
/*
|
|
|
|
* Opzioni utilizzate:
|
|
|
|
* - id_anagrafica
|
|
|
|
*/
|
|
|
|
case 'riferimenti-fe':
|
|
|
|
$direzione = 'uscita';
|
|
|
|
$id_anagrafica = $superselect['id_anagrafica'];
|
|
|
|
if (empty($id_anagrafica)) {
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
|
2020-09-10 17:30:18 +02:00
|
|
|
// Campi di ricerca
|
|
|
|
$search_fields = [];
|
|
|
|
if (!empty($search)) {
|
|
|
|
$search_fields[] = "IF(numero_esterno != '', numero_esterno, numero) LIKE ".prepare('%'.$search.'%');
|
|
|
|
$search_fields[] = "DATE_FORMAT(data, '%d/%m/%Y') LIKE ".prepare('%'.$search.'%');
|
|
|
|
}
|
|
|
|
|
|
|
|
$where = implode(' OR ', $search_fields);
|
|
|
|
$where = $where ? '('.$where.')' : '1=1';
|
|
|
|
|
2020-09-03 11:55:15 +02:00
|
|
|
$query_ordini = "SELECT or_ordini.id,
|
2020-09-10 16:43:28 +02:00
|
|
|
CONCAT('Ordine num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM or_statiordine WHERE id = idstatoordine) , ']') AS text,
|
2020-09-03 11:55:15 +02:00
|
|
|
'Ordini' AS optgroup,
|
2021-02-18 17:46:38 +01:00
|
|
|
'ordine' AS tipo,
|
|
|
|
'uscita' AS dir
|
2020-09-03 11:55:15 +02:00
|
|
|
FROM or_ordini
|
2020-09-16 09:14:00 +02:00
|
|
|
INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id
|
2020-09-03 11:55:15 +02:00
|
|
|
WHERE idanagrafica = ".prepare($id_anagrafica)." AND
|
|
|
|
idstatoordine IN (
|
2020-09-10 17:30:18 +02:00
|
|
|
SELECT id FROM or_statiordine WHERE descrizione != 'Fatturato'
|
2020-09-03 11:55:15 +02:00
|
|
|
) AND
|
|
|
|
idtipoordine IN (
|
|
|
|
SELECT id FROM or_tipiordine WHERE dir = ".prepare($direzione).'
|
2020-09-10 17:30:18 +02:00
|
|
|
) AND |where|
|
2020-09-16 09:14:00 +02:00
|
|
|
GROUP BY or_ordini.id
|
|
|
|
HAVING SUM(or_righe_ordini.qta - or_righe_ordini.qta_evasa) > 0
|
2020-09-03 11:55:15 +02:00
|
|
|
ORDER BY data DESC, numero DESC';
|
|
|
|
|
2024-02-27 12:55:27 +01:00
|
|
|
$query_ddt = "SELECT
|
|
|
|
`dt_ddt`.`id`,
|
|
|
|
CONCAT('DDT num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', `dt_statiddt_lang`.`name`, ']') AS text,
|
2020-09-03 11:55:15 +02:00
|
|
|
'DDT' AS optgroup,
|
2021-02-18 17:46:38 +01:00
|
|
|
'ddt' AS tipo,
|
|
|
|
'uscita' AS dir
|
2024-02-27 12:55:27 +01:00
|
|
|
FROM `dt_ddt`
|
|
|
|
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
|
|
|
INNER JOIN `dt_statiddt` ON `dt_ddt`.`idstato` = `dt_statiddt`.`id`
|
|
|
|
INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
|
|
|
|
LEFT JOIN dt_statiddt_lang ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.`id_lang` = ".prepare(setting('Lingua')).")
|
|
|
|
WHERE
|
|
|
|
`idanagrafica` = ".prepare($id_anagrafica)." AND
|
|
|
|
`dt_statiddt_lang`.`name` != 'Fatturato' AND
|
|
|
|
`dt_tipiddt`.`dir`=".prepare($direzione).'AND
|
|
|
|
|where|
|
|
|
|
GROUP BY
|
|
|
|
`dt_ddt`.`id`
|
|
|
|
HAVING
|
|
|
|
SUM(`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0
|
|
|
|
ORDER BY
|
|
|
|
`data` DESC, `numero` DESC';
|
2020-09-03 11:55:15 +02:00
|
|
|
|
2020-09-10 17:30:18 +02:00
|
|
|
// Sostituzione per la ricerca
|
|
|
|
$query_ordini = replace($query_ordini, [
|
|
|
|
'|where|' => $where,
|
|
|
|
]);
|
|
|
|
|
|
|
|
$query_ddt = replace($query_ddt, [
|
|
|
|
'|where|' => $where,
|
|
|
|
]);
|
|
|
|
|
2020-09-03 11:55:15 +02:00
|
|
|
$ordini = $database->fetchArray($query_ordini);
|
|
|
|
$ddt = $database->fetchArray($query_ddt);
|
|
|
|
$results = array_merge($ordini, $ddt);
|
|
|
|
|
|
|
|
break;
|
2021-02-18 17:46:38 +01:00
|
|
|
|
|
|
|
case 'riferimenti-vendita-fe':
|
|
|
|
$direzione = 'entrata';
|
|
|
|
$id_articolo = $superselect['id_articolo'];
|
|
|
|
if (empty($id_articolo)) {
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Campi di ricerca
|
|
|
|
$search_fields = [];
|
|
|
|
if (!empty($search)) {
|
|
|
|
$search_fields[] = "IF(numero_esterno != '', numero_esterno, numero) LIKE ".prepare('%'.$search.'%');
|
|
|
|
$search_fields[] = "DATE_FORMAT(data, '%d/%m/%Y') LIKE ".prepare('%'.$search.'%');
|
|
|
|
}
|
|
|
|
|
|
|
|
$where = implode(' OR ', $search_fields);
|
|
|
|
$where = $where ? '('.$where.')' : '1=1';
|
|
|
|
|
|
|
|
$query_ordini = "SELECT or_ordini.id,
|
|
|
|
CONCAT('Ordine num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM or_statiordine WHERE id = idstatoordine) , ']') AS text,
|
|
|
|
'Ordini' AS optgroup,
|
|
|
|
'ordine' AS tipo,
|
|
|
|
'entrata' AS dir
|
|
|
|
FROM or_ordini
|
|
|
|
INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id
|
|
|
|
WHERE idarticolo = ".prepare($id_articolo)." AND
|
|
|
|
idstatoordine IN (
|
|
|
|
SELECT id FROM or_statiordine WHERE descrizione != 'Fatturato'
|
|
|
|
) AND
|
|
|
|
idtipoordine IN (
|
|
|
|
SELECT id FROM or_tipiordine WHERE dir = ".prepare($direzione).'
|
|
|
|
) AND |where|
|
|
|
|
GROUP BY or_ordini.id
|
|
|
|
ORDER BY data DESC, numero DESC';
|
|
|
|
|
2024-02-27 12:55:27 +01:00
|
|
|
$query_ddt = "SELECT
|
|
|
|
`dt_ddt`.`id`,
|
|
|
|
CONCAT('DDT num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', `dt_statiddt_lang`.`name`, ']') AS text,
|
2021-02-18 17:46:38 +01:00
|
|
|
'DDT' AS optgroup,
|
|
|
|
'ddt' AS tipo,
|
|
|
|
'entrata' AS dir
|
2024-02-27 12:55:27 +01:00
|
|
|
FROM `dt_ddt`
|
|
|
|
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
|
|
|
INNER JOIN `dt_statiddt` ON `dt_ddt`.`idstato` = `dt_statiddt`.`id`
|
|
|
|
LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.`id_lang` = ".prepare(setting('Lingua')).")
|
|
|
|
INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
|
|
|
|
WHERE
|
|
|
|
`idarticolo` = ".prepare($id_articolo)." AND
|
|
|
|
`dt_stati_lang`.`name` != 'Fatturato' AND
|
|
|
|
`dt_tipiddt`.`dir`=".prepare($direzione).'AND
|
|
|
|
|where|
|
|
|
|
GROUP BY
|
|
|
|
`dt_ddt`.`id`
|
|
|
|
HAVING
|
|
|
|
SUM(`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0
|
|
|
|
ORDER BY
|
|
|
|
`data` DESC, `numero` DESC';
|
2021-02-18 17:46:38 +01:00
|
|
|
|
|
|
|
// Sostituzione per la ricerca
|
|
|
|
$query_ordini = replace($query_ordini, [
|
|
|
|
'|where|' => $where,
|
|
|
|
]);
|
|
|
|
|
|
|
|
$query_ddt = replace($query_ddt, [
|
|
|
|
'|where|' => $where,
|
|
|
|
]);
|
|
|
|
|
|
|
|
$ordini = $database->fetchArray($query_ordini);
|
|
|
|
$ddt = $database->fetchArray($query_ddt);
|
|
|
|
$results = array_merge($ordini, $ddt);
|
|
|
|
|
|
|
|
break;
|
2020-09-03 11:55:15 +02:00
|
|
|
}
|