. */ include_once __DIR__.'/../../../core.php'; $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, or_righe_ordini.um FROM or_ordini INNER JOIN or_righe_ordini ON or_ordini.id = or_righe_ordini.idordine WHERE idarticolo = '.prepare($articolo->id)." AND (SELECT dir FROM or_tipiordine WHERE or_tipiordine.id=or_ordini.idtipoordine) = '|dir|' AND (or_righe_ordini.qta - or_righe_ordini.qta_evasa) > 0 GROUP BY or_ordini.id HAVING qta_ordinata > 0"; /* ** Impegnato */ echo '

'.tr('Impegnato').'

'; $ordini = $dbo->fetchArray(str_replace('|dir|', 'entrata', $query)); $impegnato = sum(array_column($ordini, 'qta_ordinata')); if (!empty($ordini)) { echo ' '; $modulo = Modules::get('Ordini cliente'); foreach ($ordini as $documento) { $numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero']; $qta = $documento['qta_ordinata']; echo ' '; } echo '
'.tr('Descrizione').' '.tr('Qta').'
'.Modules::link($modulo['id'], $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => dateFormat($documento['data']), ])).' '.numberFormat($qta).' '.$documento['um'].'
'.tr('Totale').' '.numberFormat($impegnato).'
'; } 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)); $ordinato = sum(array_column($ordini, 'qta_ordinata')); if (!empty($ordini)) { echo ' '; $modulo = Modules::get('Ordini fornitore'); foreach ($ordini as $documento) { $numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero']; $qta = $documento['qta_ordinata']; echo ' '; } echo '
'.tr('Descrizione').' '.tr('Qta').'
'.Modules::link($modulo['id'], $documento['id'], tr('Ordine num. _NUM_ del _DATE_', [ '_NUM_' => $numero, '_DATE_' => dateFormat($documento['data']), ])).' '.numberFormat($qta).' '.$documento['um'].'
'.tr('Totale').' '.numberFormat($ordinato).'
'; } 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).' '.$articolo->um.'
'; /** ** Disponibile. */ $disponibile = $qta_presente - $impegnato; echo '

'.tr('Disponibile').'

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

'.tr('Giacenze').'

'; foreach ($sedi as $sede) { // Lettura movimenti delle mie sedi $qta_azienda = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_azienda= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_azienda WHERE mg_movimenti.idarticolo=".prepare($id_record).' AND idsede_azienda='.prepare($sede['id']).' GROUP BY idsede_azienda'); // Lettura eventuali movimenti ad una propria sede (nel caso di movimenti fra sedi della mia azienda) if ($sede['id'] != 0) { $qta_controparte = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_controparte= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_controparte WHERE mg_movimenti.idarticolo=".prepare($id_record).' AND idsede_controparte='.prepare($sede['id']).' GROUP BY idsede_controparte'); } else { $qta_controparte = $dbo->fetchOne("SELECT SUM(mg_movimenti.qta) AS qta, IF(mg_movimenti.idsede_controparte= 0,'Sede legale',(CONCAT_WS(' - ',an_sedi.nomesede,an_sedi.citta))) as sede FROM ((( mg_movimenti LEFT JOIN an_sedi ON an_sedi.id = mg_movimenti.idsede_controparte ) LEFT JOIN dt_ddt ON mg_movimenti.idddt = dt_ddt.id ) LEFT JOIN co_documenti ON mg_movimenti.iddocumento = co_documenti.id ) WHERE mg_movimenti.idarticolo=".prepare($id_record).' AND idsede_controparte='.prepare($sede['id']).' AND IFNULL( dt_ddt.idanagrafica, co_documenti.idanagrafica ) = '.prepare(setting('Azienda predefinita')).' GROUP BY idsede_controparte'); } echo ' '; } echo '
'.tr('Sede').' '.tr('Q.tà').'
'.$sede['nomesede'].' '.Translator::numberToLocale($qta_azienda['qta'] - $qta_controparte['qta']).' '.$articolo->um.'
';