|
342 | 342 | $where[] = 'mg_prodotti.id_articolo='.prepare($superselect['idarticolo']); |
343 | 343 | $where[] = 'mg_prodotti.dir=\'uscita\''; |
344 | 344 | $where[] = 'mg_prodotti.id=(SELECT MAX(id) FROM mg_prodotti AS prodotti WHERE prodotti.id_articolo=mg_prodotti.id_articolo AND prodotti.serial=mg_prodotti.serial)'; |
| 345 | + // Escludi i serial già venduti, considerando la data di carico effettiva (DDT se esiste, altrimenti fattura) |
| 346 | + $where[] = 'mg_prodotti.serial NOT IN ( |
| 347 | + SELECT DISTINCT vendite.serial |
| 348 | + FROM mg_prodotti AS vendite |
| 349 | + INNER JOIN co_righe_documenti AS riga_vendita ON vendite.id_riga_documento = riga_vendita.id |
| 350 | + INNER JOIN co_documenti AS doc_vendita ON riga_vendita.iddocumento = doc_vendita.id |
| 351 | + WHERE vendite.dir = \'entrata\' |
| 352 | + AND vendite.id_articolo = mg_prodotti.id_articolo |
| 353 | + AND vendite.serial IS NOT NULL |
| 354 | + AND doc_vendita.data >= COALESCE( |
| 355 | + ( |
| 356 | + SELECT MIN(ddt.data) |
| 357 | + FROM mg_prodotti AS acquisti_ddt |
| 358 | + INNER JOIN dt_righe_ddt AS riga_ddt ON acquisti_ddt.id_riga_ddt = riga_ddt.id |
| 359 | + INNER JOIN dt_ddt AS ddt ON riga_ddt.idddt = ddt.id |
| 360 | + WHERE acquisti_ddt.serial = mg_prodotti.serial |
| 361 | + AND acquisti_ddt.id_articolo = mg_prodotti.id_articolo |
| 362 | + AND acquisti_ddt.dir = \'uscita\' |
| 363 | + ), |
| 364 | + ( |
| 365 | + SELECT MIN(doc_acquisto.data) |
| 366 | + FROM mg_prodotti AS acquisti_fat |
| 367 | + INNER JOIN co_righe_documenti AS riga_acquisto ON acquisti_fat.id_riga_documento = riga_acquisto.id |
| 368 | + INNER JOIN co_documenti AS doc_acquisto ON riga_acquisto.iddocumento = doc_acquisto.id |
| 369 | + WHERE acquisti_fat.serial = mg_prodotti.serial |
| 370 | + AND acquisti_fat.id_articolo = mg_prodotti.id_articolo |
| 371 | + AND acquisti_fat.dir = \'uscita\' |
| 372 | + AND acquisti_fat.id_riga_ddt IS NULL |
| 373 | + ) |
| 374 | + ) |
| 375 | + )'; |
345 | 376 |
|
346 | 377 | if (!empty($search)) { |
347 | 378 | $search_fields[] = '`mg_prodotti`.`serial` LIKE '.prepare('%'.$search.'%'); |
|
0 commit comments