. */ include_once __DIR__.'/../../../core.php'; use Models\Module; $impegnato = 0; $ordinato = 0; $query = "SELECT `or_ordini`.`id` AS id, `or_ordini`.`numero`, `or_ordini`.`numero_esterno`, `data`, SUM(`or_righe_ordini`.`qta`) AS qta_ordinata, SUM(`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) AS qta_impegnata, `or_righe_ordini`.`um` FROM `or_ordini` INNER JOIN `or_righe_ordini` ON `or_ordini`.`id` = `or_righe_ordini`.`idordine` INNER JOIN `or_statiordine` ON `or_ordini`.`idstatoordine`=`or_statiordine`.`id` INNER JOIN `or_tipiordine` ON `or_ordini`.`idtipoordine`=`or_tipiordine`.`id` WHERE `idarticolo` = ".prepare($articolo->id)." AND `or_tipiordine`.`dir`= '|dir|' AND (`or_righe_ordini`.`qta` - `or_righe_ordini`.`qta_evasa`) > 0 AND `or_righe_ordini`.`confermato` = 1 AND `or_statiordine`.`impegnato` = 1 HAVING `qta_ordinata` > 0"; echo '

'.tr('Articolo').'

'.tr('Codice: ').''.$articolo->codice.'
'.tr('Descrizione: ').''.$articolo->name.'
'; /* ** Impegnato */ echo '

'.tr('Impegnato').'

'; $ordini = $dbo->fetchArray(str_replace('|dir|', 'entrata', $query)); $impegnato = sum(array_column($ordini, 'qta_impegnata')); if (!empty($ordini)) { echo ' '; $id_modulo = (new Module())->GetByName('Ordini cliente')->id_record; foreach ($ordini as $documento) { $numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero']; $qta = $documento['qta_impegnata']; echo ' '; } echo '
'.tr('Descrizione').' '.$record['um'].'
'.Modules::link($id_modulo, $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => dateFormat($documento['data']), ])).' '.numberFormat($qta, 'qta').'
'.tr('Totale').' '.numberFormat($impegnato, 'qta').'
'; } else { echo '

'.tr('Nessun ordine cliente con quantità da evadere individuato').'.

'; } echo '
'; /* ** In ordine */ echo '

'.tr('In ordine').'

'; $ordini = $dbo->fetchArray(str_replace('|dir|', 'uscita', $query)); if (!empty($ordini)) { $ordinato = sum(array_column($ordini, 'qta_ordinata')); echo ' '; $id_modulo = (new Module())->GetByName('Ordini fornitore')->id_record; foreach ($ordini as $documento) { $numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero']; $qta = $documento['qta_ordinata']; echo ' '; } echo '
'.tr('Descrizione').' '.$record['um'].'
'.Modules::link($id_modulo, $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => dateFormat($documento['data']), ])).' '.numberFormat($qta, 'qta').'
'.tr('Totale').' '.numberFormat($ordinato, 'qta').'
'; } else { echo '

'.tr('Nessun ordine fornitore con quantità da evadere individuato').'.

'; } echo '
'; /** ** Da ordinare. */ $qta_presente = $articolo->qta > 0 ? $articolo->qta : 0; $diff = ($qta_presente - $impegnato + $ordinato) * -1; $da_ordinare = (($diff <= 0) ? 0 : $diff); echo '

'.tr('Da ordinare').'

'.numberFormat($da_ordinare, 'qta').' '.$articolo->um.'
'; /** ** Disponibile. */ $disponibile = $qta_presente - $impegnato; echo '

'.tr('Disponibile').'

'.numberFormat($disponibile, 'qta').' '.$articolo->um.'
'; $sedi = $dbo->fetchArray('(SELECT "0" AS id, IF(indirizzo!=\'\', CONCAT_WS(" - ", "'.tr('Sede legale').'", CONCAT(citta, \' (\', indirizzo, \')\')), CONCAT_WS(" - ", "'.tr('Sede legale').'", citta)) AS nomesede FROM an_anagrafiche WHERE idanagrafica = '.prepare(setting('Azienda predefinita')).') UNION (SELECT id, IF(indirizzo!=\'\',CONCAT_WS(" - ", nomesede, CONCAT(citta, \' (\', indirizzo, \')\')), CONCAT_WS(" - ", nomesede, citta )) AS nomesede FROM an_sedi WHERE idanagrafica='.prepare(setting('Azienda predefinita')).')'); $giacenze = $articolo->getGiacenze(); echo '

'.tr('Giacenze').'

'; foreach ($sedi as $sede) { echo ' '; } echo '
'.tr('Sede').' '.tr('Q.tà').' #
'.$sede['nomesede'].' '.numberFormat($giacenze[$sede['id']][0], 'qta').' '.$articolo->um.'
'; echo ' ';