Aggiunta tabella `dt_statiddt_lang`
This commit is contained in:
parent
7fdf81dafa
commit
c39cc5412d
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
use Modules\Contratti\Stato as StatoContratto;
|
use Modules\Contratti\Stato as StatoContratto;
|
||||||
use Modules\Fatture\Stato as StatoFattura;
|
use Modules\Fatture\Stato as StatoFattura;
|
||||||
use Modules\Fatture\Tipo;
|
use Modules\DDT\Stato;
|
||||||
use Plugins\ListinoFornitori\DettaglioFornitore;
|
use Plugins\ListinoFornitori\DettaglioFornitore;
|
||||||
|
|
||||||
// Inizializzazione
|
// Inizializzazione
|
||||||
|
@ -139,11 +139,11 @@ if (!empty($options['create_document'])) {
|
||||||
|
|
||||||
// Opzioni aggiuntive per i DDT
|
// Opzioni aggiuntive per i DDT
|
||||||
elseif (in_array($final_module['name'], ['Ddt di vendita', 'Ddt di acquisto'])) {
|
elseif (in_array($final_module['name'], ['Ddt di vendita', 'Ddt di acquisto'])) {
|
||||||
$stato_predefinito = $database->fetchOne("SELECT * FROM dt_statiddt WHERE descrizione = 'Bozza'");
|
$stato_predefinito = (new Stato())->getByName('Bozza')->id_record;
|
||||||
|
|
||||||
echo '
|
echo '
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM dt_statiddt", "value": "'.$stato_predefinito['id'].'" ]}
|
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).')", "value": "'.$stato_predefinito.'" ]}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
|
|
|
@ -123,7 +123,7 @@ switch (filter('op')) {
|
||||||
|
|
||||||
$ddt->save();
|
$ddt->save();
|
||||||
|
|
||||||
$query = 'SELECT descrizione FROM dt_statiddt WHERE id='.prepare($idstatoddt);
|
$query = 'SELECT `name` FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`idstatoddt` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `dt_statiddt`.`id`='.prepare($idstatoddt);
|
||||||
$rs = $dbo->fetchArray($query);
|
$rs = $dbo->fetchArray($query);
|
||||||
|
|
||||||
// Ricalcolo inps, ritenuta e bollo (se l'ddt non è stato evaso)
|
// Ricalcolo inps, ritenuta e bollo (se l'ddt non è stato evaso)
|
||||||
|
|
|
@ -48,7 +48,7 @@ $id_anagrafica = $documento_finale->idanagrafica;
|
||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "select", "label": "'.tr('Ddt').'", "name": "id_documento", "values": "query=SELECT dt_ddt.id, CONCAT(IF(numero_esterno != \'\', numero_esterno, numero), \' del \', DATE_FORMAT(data, \'%d-%m-%Y\')) AS descrizione FROM dt_ddt WHERE idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoddt=(SELECT id FROM dt_tipiddt WHERE dir=\''.($dir == 'entrata' ? 'uscita' : 'entrata').'\' LIMIT 0,1) AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0) ORDER BY data DESC, numero DESC" ]}
|
{[ "type": "select", "label": "'.tr('Ddt').'", "name": "id_documento", "values": "query=SELECT `dt_ddt`.`id`, CONCAT(IF(`numero_esterno` != \'\', `numero_esterno`, `numero`), \' del \', DATE_FORMAT(`data`, \'%d-%m-%Y\')) AS descrizione FROM `dt_ddt` INNER JOIN `dt_statiddt` ON `ddt`.`idstato` = `dt_statiddt`.`id` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` INNER JOIN `dt_righe_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt` WHERE `dt_statiddt_lang`.`name` IN("Evaso", "Parzialmente evaso", "Parzialmente fatturato") AND `dt_tipiddt`.`dir`=\''.($dir == 'entrata' ? 'uscita' : 'entrata').'\' AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0 ORDER BY `data` DESC, `numero` DESC" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -211,7 +211,7 @@ $operations['cambia_stato'] = [
|
||||||
'data' => [
|
'data' => [
|
||||||
'title' => tr('Vuoi davvero cambiare lo stato per questi DDT?'),
|
'title' => tr('Vuoi davvero cambiare lo stato per questi DDT?'),
|
||||||
'msg' => tr('Seleziona lo stato in cui spostare tutti i DDT').'.<br>
|
'msg' => tr('Seleziona lo stato in cui spostare tutti i DDT').'.<br>
|
||||||
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT id, descrizione, colore as _bgcolor_ FROM dt_statiddt" ]}',
|
<br>{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT `dt_statiddt`.`id`, `dt_statiddt`.`name` as descrizione, `colore` as _bgcolor_ FROM dt_statiddt LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).')" ]}',
|
||||||
'button' => tr('Procedi'),
|
'button' => tr('Procedi'),
|
||||||
'class' => 'btn btn-lg btn-warning',
|
'class' => 'btn btn-lg btn-warning',
|
||||||
'blank' => false,
|
'blank' => false,
|
||||||
|
|
|
@ -64,7 +64,7 @@ function completaTrasporto() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Informazioni sull'importabilità del DDT
|
// Informazioni sull'importabilità del DDT
|
||||||
$stati = $database->fetchArray('SELECT descrizione FROM `dt_statiddt` WHERE `is_fatturabile` = 1');
|
$stati = $database->fetchArray('SELECT `name` as descrizione FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` ='.prepare(setting('Lingua')).') WHERE `is_fatturabile` = 1');
|
||||||
foreach ($stati as $stato) {
|
foreach ($stati as $stato) {
|
||||||
$stati_importabili[] = $stato['descrizione'];
|
$stati_importabili[] = $stato['descrizione'];
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,16 +121,16 @@ if ($righe_vuote) {
|
||||||
if (setting('Cambia automaticamente stato ddt fatturati')) {
|
if (setting('Cambia automaticamente stato ddt fatturati')) {
|
||||||
if ($record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') {
|
if ($record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') {
|
||||||
?>
|
?>
|
||||||
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]}
|
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, `dt_statiddt_lang`.`name` as descrizione, `colore` AS _bgcolor_ FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang`= <?php echo prepare(setting('Lingua')); ?>) ORDER BY `name`", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]}
|
||||||
<?php
|
<?php
|
||||||
} else {
|
} else {
|
||||||
?>
|
?>
|
||||||
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt WHERE descrizione IN('Bozza', 'Evaso', 'Parzialmente evaso') ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
|
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, `dt_statiddt_lang`.`name` as descrizione, `colore` AS _bgcolor_ FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang`= <?php echo prepare(setting('Lingua')); ?>) WHERE `name` IN('Bozza', 'Evaso', 'Parzialmente evaso') ORDER BY `name`", "value": "$idstatoddt$", "class": "unblockable" ]}
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
?>
|
?>
|
||||||
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
|
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, `colore` AS _bgcolor_, `dt_statiddt_lang`.`name` as descrizione FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang`= <?php echo prepare(setting('Lingua')); ?>) ORDER BY `name`", "value": "$idstatoddt$", "class": "unblockable" ]}
|
||||||
<?php
|
<?php
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -533,7 +533,7 @@ if (!$block_edit) {
|
||||||
$ordini_query = 'SELECT COUNT(*) AS tot FROM or_ordini WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Accettato\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoordine=(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') AND or_ordini.id IN (SELECT idordine FROM or_righe_ordini WHERE or_righe_ordini.idordine = or_ordini.id AND (qta - qta_evasa) > 0)';
|
$ordini_query = 'SELECT COUNT(*) AS tot FROM or_ordini WHERE idanagrafica='.prepare($record['idanagrafica']).' AND idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione IN(\'Accettato\', \'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoordine=(SELECT id FROM or_tipiordine WHERE dir='.prepare($dir).') AND or_ordini.id IN (SELECT idordine FROM or_righe_ordini WHERE or_righe_ordini.idordine = or_ordini.id AND (qta - qta_evasa) > 0)';
|
||||||
$tot_ordini = $dbo->fetchArray($ordini_query)[0]['tot'];
|
$tot_ordini = $dbo->fetchArray($ordini_query)[0]['tot'];
|
||||||
|
|
||||||
$ddt_query = 'SELECT COUNT(*) AS tot FROM dt_ddt WHERE idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione IN(\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND idtipoddt=(SELECT id FROM or_tipiordine WHERE dir="'.($dir == 'entrata' ? 'uscita' : 'entrata').'") AND dt_ddt.id IN (SELECT idddt FROM dt_righe_ddt WHERE dt_righe_ddt.idddt = dt_ddt.id AND (qta - qta_evasa) > 0)';
|
$ddt_query = 'SELECT COUNT(*) AS tot FROM `dt_ddt` INNER JOIN `dt_statiddt` ON `dt_ddt`.`idstatoddt` = `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` INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id` WHERE `name` IN("Evaso", "Parzialmente evaso", "Parzialmente fatturato") AND `dt_tipiddt`.`dir`="'.($dir == 'entrata' ? 'uscita' : 'entrata').'") AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0';
|
||||||
$tot_ddt = $dbo->fetchArray($ddt_query)[0]['tot'];
|
$tot_ddt = $dbo->fetchArray($ddt_query)[0]['tot'];
|
||||||
|
|
||||||
// Form di inserimento riga documento
|
// Form di inserimento riga documento
|
||||||
|
|
|
@ -33,17 +33,19 @@ if ($module['name'] == 'Ddt di vendita') {
|
||||||
if (isset($id_record)) {
|
if (isset($id_record)) {
|
||||||
$ddt = DDT::with('tipo', 'stato')->find($id_record);
|
$ddt = DDT::with('tipo', 'stato')->find($id_record);
|
||||||
|
|
||||||
$record = $dbo->fetchOne('SELECT dt_ddt.*,
|
$record = $dbo->fetchOne('SELECT `dt_ddt`.*,
|
||||||
dt_ddt.id AS idddt,
|
`dt_ddt`.`id` AS idddt,
|
||||||
dt_statiddt.descrizione AS `stato`,
|
`dt_statiddt_lang`.`name` AS `stato`,
|
||||||
dt_statiddt.completato AS `flag_completato`,
|
`dt_statiddt`.`completato` AS `flag_completato`,
|
||||||
dt_tipiddt.descrizione AS `descrizione_tipodoc`,
|
`dt_tipiddt`.`descrizione` AS `descrizione_tipodoc`,
|
||||||
an_anagrafiche.tipo AS tipo_anagrafica
|
`an_anagrafiche`.`tipo` AS tipo_anagrafica
|
||||||
FROM dt_ddt
|
FROM `dt_ddt`
|
||||||
LEFT OUTER JOIN dt_statiddt ON dt_ddt.idstatoddt=dt_statiddt.id
|
INNER JOIN `dt_statiddt` ON dt_ddt.idstatoddt=dt_statiddt.id
|
||||||
INNER JOIN an_anagrafiche ON dt_ddt.idanagrafica=an_anagrafiche.idanagrafica
|
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
|
INNER JOIN `an_anagrafiche` ON `dt_ddt`.`idanagrafica`=`an_anagrafiche`.`idanagrafica`
|
||||||
WHERE dt_ddt.id='.prepare($id_record));
|
INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt`=`dt_tipiddt`.`id`
|
||||||
|
WHERE
|
||||||
|
`dt_ddt`.`id`='.prepare($id_record));
|
||||||
|
|
||||||
if (!empty($record)) {
|
if (!empty($record)) {
|
||||||
$record['idporto'] = $record['idporto'] ?: $dbo->fetchOne('SELECT `id` FROM `dt_porto` WHERE `predefined` = 1')['id'];
|
$record['idporto'] = $record['idporto'] ?: $dbo->fetchOne('SELECT `id` FROM `dt_porto` WHERE `predefined` = 1')['id'];
|
||||||
|
|
|
@ -58,17 +58,13 @@ class DDT extends Document
|
||||||
public static function build(Anagrafica $anagrafica, Tipo $tipo_documento, $data, $id_segment = null)
|
public static function build(Anagrafica $anagrafica, Tipo $tipo_documento, $data, $id_segment = null)
|
||||||
{
|
{
|
||||||
$model = new static();
|
$model = new static();
|
||||||
|
|
||||||
$user = \Auth::user();
|
$user = \Auth::user();
|
||||||
|
|
||||||
$stato_documento = Stato::where('descrizione', 'Bozza')->first();
|
$stato_documento = (new Stato())->getByName('Bozza')->id_record;
|
||||||
|
|
||||||
$id_anagrafica = $anagrafica->id;
|
|
||||||
$direzione = $tipo_documento->dir;
|
$direzione = $tipo_documento->dir;
|
||||||
$id_segment = $id_segment ?: getSegmentPredefined($model->getModule()->id);
|
$id_segment = $id_segment ?: getSegmentPredefined($model->getModule()->id);
|
||||||
|
|
||||||
$database = database();
|
|
||||||
|
|
||||||
if ($direzione == 'entrata') {
|
if ($direzione == 'entrata') {
|
||||||
$conto = 'vendite';
|
$conto = 'vendite';
|
||||||
} else {
|
} else {
|
||||||
|
@ -131,7 +127,7 @@ class DDT extends Document
|
||||||
public function isImportabile()
|
public function isImportabile()
|
||||||
{
|
{
|
||||||
$database = database();
|
$database = database();
|
||||||
$stati = $database->fetchArray('SELECT `descrizione` FROM `dt_statiddt` WHERE `is_fatturabile` = 1');
|
$stati = $database->fetchArray('SELECT `name` FROM `dt_statiddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).') WHERE `is_fatturabile` = 1');
|
||||||
foreach ($stati as $stato) {
|
foreach ($stati as $stato) {
|
||||||
$stati_importabili[] = $stato['descrizione'];
|
$stati_importabili[] = $stato['descrizione'];
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,4 +32,34 @@ class Stato extends Model
|
||||||
{
|
{
|
||||||
return $this->hasMany(DDT::class, 'idstatoddt');
|
return $this->hasMany(DDT::class, 'idstatoddt');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ritorna l'attributo name dello stato del ddt.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getNameAttribute()
|
||||||
|
{
|
||||||
|
return database()->table($this->table.'_lang')
|
||||||
|
->select('name')
|
||||||
|
->where('id_record', '=', $this->id)
|
||||||
|
->where('id_lang', '=', setting('Lingua'))
|
||||||
|
->first()->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ritorna l'id dello stato a partire dal nome.
|
||||||
|
*
|
||||||
|
* @param string $name il nome da ricercare
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Support\Collection
|
||||||
|
*/
|
||||||
|
public function getByName($name)
|
||||||
|
{
|
||||||
|
return database()->table($this->table.'_lang')
|
||||||
|
->select('id_record')
|
||||||
|
->where('name', '=', $name)
|
||||||
|
->where('id_lang', '=', setting('Lingua'))
|
||||||
|
->first();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,7 @@ $id_anagrafica = $documento_finale->idanagrafica;
|
||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "select", "label": "'.tr('Ddt').'", "name": "id_documento", "values": "query=SELECT `dt_ddt`.`id`, CONCAT(\'DDT num. \', IF(`numero_esterno` != \'\', `numero_esterno`, `numero`), \' del \', DATE_FORMAT(`data`, \'%d-%m-%Y\'), \' [\', (SELECT `descrizione` FROM `dt_statiddt` WHERE `id` = `idstatoddt`) , \']\') AS descrizione FROM `dt_ddt` LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet` WHERE `idanagrafica`='.prepare($id_anagrafica).' AND `idstatoddt` IN (SELECT `id` FROM `dt_statiddt` WHERE `descrizione` IN(\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND `idtipoddt`=(SELECT `id` FROM `dt_tipiddt` WHERE `dir`='.prepare($dir).') AND `dt_causalet`.`is_importabile` = 1 AND `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `dt_righe_ddt`.`idddt` = `dt_ddt`.`id` AND (`qta` - `qta_evasa`) > 0) ORDER BY `data` DESC, `numero` DESC" ]}
|
{[ "type": "select", "label": "'.tr('Ddt').'", "name": "id_documento", "values": "query=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 descrizione FROM `dt_ddt` LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet` INNER JOIN `dt_statiddt` ON `dt_ddt`.`idstato` = `dt_statiddt`.`id` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` INNER JOIN `dt_righe_ddt ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt` WHERE `idanagrafica`='.prepare($id_anagrafica).' AND `dt_statiddt_lang`.`name` IN("Evaso", "Parzialmente evaso", "Parzialmente fatturato") AND `dt_tipiddt`.`dir`=\''.prepare($dir).'\' AND `dt_causalet`.`is_importabile` = 1 AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0 ORDER BY `data` DESC, `numero` DESC" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -42,23 +42,28 @@ switch ($resource) {
|
||||||
HAVING SUM(or_righe_ordini.qta - or_righe_ordini.qta_evasa) > 0
|
HAVING SUM(or_righe_ordini.qta - or_righe_ordini.qta_evasa) > 0
|
||||||
ORDER BY data DESC, numero DESC';
|
ORDER BY data DESC, numero DESC';
|
||||||
|
|
||||||
$query_ddt = "SELECT dt_ddt.id,
|
$query_ddt = "SELECT
|
||||||
CONCAT('DDT num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , ']') AS text,
|
`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,
|
||||||
'DDT' AS optgroup,
|
'DDT' AS optgroup,
|
||||||
'ddt' AS tipo,
|
'ddt' AS tipo,
|
||||||
'uscita' AS dir
|
'uscita' AS dir
|
||||||
FROM dt_ddt
|
FROM `dt_ddt`
|
||||||
INNER JOIN dt_righe_ddt ON dt_righe_ddt.idddt = dt_ddt.id
|
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
||||||
WHERE idanagrafica = ".prepare($id_anagrafica)." AND
|
INNER JOIN `dt_statiddt` ON `dt_ddt`.`idstato` = `dt_statiddt`.`id`
|
||||||
idstatoddt IN (
|
INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
|
||||||
SELECT id FROM dt_statiddt WHERE descrizione != 'Fatturato'
|
LEFT JOIN dt_statiddt_lang ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.`id_lang` = ".prepare(setting('Lingua')).")
|
||||||
) AND
|
WHERE
|
||||||
idtipoddt IN (
|
`idanagrafica` = ".prepare($id_anagrafica)." AND
|
||||||
SELECT id FROM dt_tipiddt WHERE dir=".prepare($direzione).'
|
`dt_statiddt_lang`.`name` != 'Fatturato' AND
|
||||||
) AND |where|
|
`dt_tipiddt`.`dir`=".prepare($direzione).'AND
|
||||||
GROUP BY dt_ddt.id
|
|where|
|
||||||
HAVING SUM(dt_righe_ddt.qta - dt_righe_ddt.qta_evasa) > 0
|
GROUP BY
|
||||||
ORDER BY data DESC, numero DESC';
|
`dt_ddt`.`id`
|
||||||
|
HAVING
|
||||||
|
SUM(`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0
|
||||||
|
ORDER BY
|
||||||
|
`data` DESC, `numero` DESC';
|
||||||
|
|
||||||
// Sostituzione per la ricerca
|
// Sostituzione per la ricerca
|
||||||
$query_ordini = replace($query_ordini, [
|
$query_ordini = replace($query_ordini, [
|
||||||
|
@ -109,23 +114,28 @@ switch ($resource) {
|
||||||
GROUP BY or_ordini.id
|
GROUP BY or_ordini.id
|
||||||
ORDER BY data DESC, numero DESC';
|
ORDER BY data DESC, numero DESC';
|
||||||
|
|
||||||
$query_ddt = "SELECT dt_ddt.id,
|
$query_ddt = "SELECT
|
||||||
CONCAT('DDT num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , ']') AS text,
|
`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,
|
||||||
'DDT' AS optgroup,
|
'DDT' AS optgroup,
|
||||||
'ddt' AS tipo,
|
'ddt' AS tipo,
|
||||||
'entrata' AS dir
|
'entrata' AS dir
|
||||||
FROM dt_ddt
|
FROM `dt_ddt`
|
||||||
INNER JOIN dt_righe_ddt ON dt_righe_ddt.idddt = dt_ddt.id
|
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
||||||
WHERE idarticolo = ".prepare($id_articolo)." AND
|
INNER JOIN `dt_statiddt` ON `dt_ddt`.`idstato` = `dt_statiddt`.`id`
|
||||||
idstatoddt IN (
|
LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.`id_lang` = ".prepare(setting('Lingua')).")
|
||||||
SELECT id FROM dt_statiddt WHERE descrizione != 'Fatturato'
|
INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id`
|
||||||
) AND
|
WHERE
|
||||||
idtipoddt IN (
|
`idarticolo` = ".prepare($id_articolo)." AND
|
||||||
SELECT id FROM dt_tipiddt WHERE dir=".prepare($direzione).'
|
`dt_stati_lang`.`name` != 'Fatturato' AND
|
||||||
) AND |where|
|
`dt_tipiddt`.`dir`=".prepare($direzione).'AND
|
||||||
GROUP BY dt_ddt.id
|
|where|
|
||||||
HAVING SUM(dt_righe_ddt.qta - dt_righe_ddt.qta_evasa) > 0
|
GROUP BY
|
||||||
ORDER BY data DESC, numero DESC';
|
`dt_ddt`.`id`
|
||||||
|
HAVING
|
||||||
|
SUM(`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0
|
||||||
|
ORDER BY
|
||||||
|
`data` DESC, `numero` DESC';
|
||||||
|
|
||||||
// Sostituzione per la ricerca
|
// Sostituzione per la ricerca
|
||||||
$query_ordini = replace($query_ordini, [
|
$query_ordini = replace($query_ordini, [
|
||||||
|
|
|
@ -795,13 +795,14 @@ if (!$block_edit) {
|
||||||
COUNT(*) AS tot
|
COUNT(*) AS tot
|
||||||
FROM
|
FROM
|
||||||
`dt_ddt`
|
`dt_ddt`
|
||||||
LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet`
|
INNER JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet`
|
||||||
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
||||||
|
LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).')
|
||||||
LEFT JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
|
LEFT JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
|
||||||
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
||||||
WHERE
|
WHERE
|
||||||
`idanagrafica`='.prepare($record['idanagrafica']).'
|
`idanagrafica`='.prepare($record['idanagrafica']).'
|
||||||
AND `dt_statiddt`.`descrizione` IN (\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')
|
AND `dt_statiddt_lang`.`name` IN ("Evaso", "Parzialmente evaso", "Parzialmente fatturato")
|
||||||
AND `dt_tipiddt`.`dir` = '.prepare($dir).'
|
AND `dt_tipiddt`.`dir` = '.prepare($dir).'
|
||||||
AND `dt_causalet`.`is_importabile` = 1
|
AND `dt_causalet`.`is_importabile` = 1
|
||||||
AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0';
|
AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0';
|
||||||
|
|
|
@ -50,7 +50,7 @@ $id_anagrafica = $documento_finale->idanagrafica;
|
||||||
echo '
|
echo '
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
{[ "type": "select", "label": "'.tr('Ddt').'", "name": "id_documento", "values": "query=SELECT `dt_ddt`.`id`, CONCAT(\'DDT num. \', IF(`numero_esterno` != \'\', `numero_esterno`, `numero`), \' del \', DATE_FORMAT(`data`, \'%d-%m-%Y\'), \' [\', (SELECT `descrizione` FROM `dt_statiddt` WHERE `id` = `idstatoddt`) , \']\') AS descrizione FROM `dt_ddt` LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet` WHERE `idanagrafica`='.prepare($id_anagrafica).' AND `idstatoddt` IN (SELECT `id` FROM `dt_statiddt` WHERE `descrizione` IN(\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')) AND `idtipoddt`=(SELECT `id` FROM `dt_tipiddt` WHERE `dir`='.prepare($dir).') AND `dt_causalet`.`is_importabile` = 1 AND `dt_ddt`.`id` IN (SELECT `idddt` FROM `dt_righe_ddt` WHERE `dt_righe_ddt`.`idddt` = `dt_ddt`.`id` AND (`qta` - `qta_evasa`) > 0) ORDER BY `data` DESC, `numero` DESC" ]}
|
{[ "type": "select", "label": "'.tr('Ddt').'", "name": "id_documento", "values": "query=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 descrizione FROM `dt_ddt` LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet` INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id`=`dt_ddt`.`idstatoddt` LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt`.`id` = `dt_statiddt_lang`.`id_record` AND `dt_statiddt_lang`.`id_lang` = '.prepare(setting('Lingua')).') INNER JOIN `dt_tipiddt` ON `dt_ddt`.`idtipoddt` = `dt_tipiddt`.`id` INNER JOIN `dt_righe_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt` WHERE `idanagrafica`='.prepare($id_anagrafica).' AND `dt_statiddt_lang`.`name` IN("Evaso", "Parzialmente evaso", "Parzialmente fatturato") AND `dt_tipiddt`.`dir`=\''.prepare($dir).'\' AND `dt_causalet`.`is_importabile` = 1 AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0 ORDER BY `data` DESC, `numero` DESC" ]}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -504,19 +504,20 @@ if (!$block_edit) {
|
||||||
|
|
||||||
// Lettura ddt (entrata o uscita)
|
// Lettura ddt (entrata o uscita)
|
||||||
$ddt_query = 'SELECT
|
$ddt_query = 'SELECT
|
||||||
COUNT(*) AS tot
|
COUNT(*) AS tot
|
||||||
FROM
|
FROM
|
||||||
`dt_ddt`
|
`dt_ddt`
|
||||||
LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet`
|
LEFT JOIN `dt_causalet` ON `dt_causalet`.`id` = `dt_ddt`.`idcausalet`
|
||||||
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
||||||
LEFT JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
|
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_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
LEFT JOIN `dt_tipiddt` ON `dt_tipiddt`.`id` = `dt_ddt`.`idtipoddt`
|
||||||
WHERE
|
INNER JOIN `dt_righe_ddt` ON `dt_righe_ddt`.`idddt` = `dt_ddt`.`id`
|
||||||
`idanagrafica`='.prepare($record['idanagrafica']).'
|
WHERE
|
||||||
AND `dt_statiddt`.`descrizione` IN (\'Evaso\', \'Parzialmente evaso\', \'Parzialmente fatturato\')
|
`idanagrafica`='.prepare($record['idanagrafica']).'
|
||||||
AND `dt_tipiddt`.`dir` = '.prepare($intervento->direzione).'
|
AND `dt_statiddt_lang`.`name` IN ("Evaso", "Parzialmente evaso", "Parzialmente fatturato")
|
||||||
AND `dt_causalet`.`is_importabile` = 1
|
AND `dt_tipiddt`.`dir` = '.prepare($intervento->direzione).'
|
||||||
AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0';
|
AND `dt_causalet`.`is_importabile` = 1
|
||||||
|
AND (`dt_righe_ddt`.`qta` - `dt_righe_ddt`.`qta_evasa`) > 0';
|
||||||
$ddt = $dbo->fetchArray($ddt_query)[0]['tot'];
|
$ddt = $dbo->fetchArray($ddt_query)[0]['tot'];
|
||||||
|
|
||||||
// Form di inserimento riga documento
|
// Form di inserimento riga documento
|
||||||
|
|
|
@ -454,25 +454,29 @@ switch (filter('op')) {
|
||||||
|
|
||||||
// Se nella fattura elettronica è indicato un DDT cerco quel documento specifico
|
// Se nella fattura elettronica è indicato un DDT cerco quel documento specifico
|
||||||
$ddt = $dati_ddt[$numero_linea];
|
$ddt = $dati_ddt[$numero_linea];
|
||||||
$query = "SELECT dt_righe_ddt.id, dt_righe_ddt.idddt AS id_documento, dt_righe_ddt.is_descrizione, dt_righe_ddt.idarticolo, dt_righe_ddt.is_sconto, 'ddt' AS ref,
|
$query = "SELECT
|
||||||
CONCAT('DDT num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , ']') AS opzione
|
`dt_righe_ddt`.`id`,
|
||||||
FROM dt_righe_ddt
|
`dt_righe_ddt`.`idddt` AS id_documento,
|
||||||
INNER JOIN dt_ddt ON dt_ddt.id = dt_righe_ddt.idddt
|
`dt_righe_ddt`.`is_descrizione`,
|
||||||
|
`dt_righe_ddt`.`idarticolo`,
|
||||||
|
`dt_righe_ddt`.`is_sconto`, 'ddt' AS ref,
|
||||||
|
CONCAT('DDT num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', `dt_statiddt_lang`.`name`, ']') AS opzione
|
||||||
|
FROM
|
||||||
|
`dt_righe_ddt`
|
||||||
|
INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
|
||||||
|
INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
||||||
|
LEFT JOIN `dt_statiddt_lang` ON `dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.`id_lang` = ".prepare(setting('Lingua'))."
|
||||||
WHERE
|
WHERE
|
||||||
dt_ddt.numero_esterno = ".prepare($ddt['numero']).'
|
`dt_ddt`.`numero_esterno` = ".prepare($ddt['numero']).' AND
|
||||||
AND
|
YEAR(`dt_ddt`.`data`) = '.prepare($ddt['anno']).' AND
|
||||||
YEAR(dt_ddt.data) = '.prepare($ddt['anno']).'
|
`dt_ddt`.`idanagrafica` = '.prepare($anagrafica->id).' AND
|
||||||
AND
|
`dt_righe_ddt`.`qta` > `dt_righe_ddt`.`qta_evasa` AND
|
||||||
dt_ddt.idanagrafica = '.prepare($anagrafica->id).'
|
|
||||||
AND
|
|
||||||
dt_righe_ddt.qta > dt_righe_ddt.qta_evasa
|
|
||||||
AND
|
|
||||||
|where|';
|
|where|';
|
||||||
|
|
||||||
// Ricerca di righe DDT con stesso Articolo
|
// Ricerca di righe DDT con stesso Articolo
|
||||||
if (!empty($id_articolo)) {
|
if (!empty($id_articolo)) {
|
||||||
$query_articolo = replace($query, [
|
$query_articolo = replace($query, [
|
||||||
'|where|' => 'dt_righe_ddt.idarticolo = '.prepare($id_articolo),
|
'|where|' => '`dt_righe_ddt`.`idarticolo` = '.prepare($id_articolo),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$collegamento = $database->fetchOne($query_articolo);
|
$collegamento = $database->fetchOne($query_articolo);
|
||||||
|
@ -481,7 +485,7 @@ switch (filter('op')) {
|
||||||
// Ricerca di righe DDT per stessa descrizione
|
// Ricerca di righe DDT per stessa descrizione
|
||||||
if (empty($collegamento)) {
|
if (empty($collegamento)) {
|
||||||
$query_descrizione = replace($query, [
|
$query_descrizione = replace($query, [
|
||||||
'|where|' => 'dt_righe_ddt.descrizione = '.prepare($riga['Descrizione']),
|
'|where|' => '`dt_righe_ddt`.`descrizione` = '.prepare($riga['Descrizione']),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$collegamento = $database->fetchOne($query_descrizione);
|
$collegamento = $database->fetchOne($query_descrizione);
|
||||||
|
@ -532,23 +536,50 @@ switch (filter('op')) {
|
||||||
// Se non ci sono Ordini o DDT cerco per contenuto
|
// Se non ci sono Ordini o DDT cerco per contenuto
|
||||||
if (empty($collegamento)) {
|
if (empty($collegamento)) {
|
||||||
$match_documento_da_fe = false;
|
$match_documento_da_fe = false;
|
||||||
$query = "SELECT dt_righe_ddt.id, dt_righe_ddt.idddt AS id_documento, dt_righe_ddt.is_descrizione, dt_righe_ddt.idarticolo, dt_righe_ddt.is_sconto, 'ddt' AS ref,
|
$query = "SELECT
|
||||||
CONCAT('DDT num. ', IF(numero_esterno != '', numero_esterno, numero), ' del ', DATE_FORMAT(data, '%d/%m/%Y'), ' [', (SELECT descrizione FROM dt_statiddt WHERE id = idstatoddt) , ']') AS opzione
|
`dt_righe_ddt`.`id`,
|
||||||
FROM dt_righe_ddt
|
`dt_righe_ddt`.`idddt` AS id_documento,
|
||||||
INNER JOIN dt_ddt ON dt_ddt.id = dt_righe_ddt.idddt
|
`dt_righe_ddt`.`is_descrizione`,
|
||||||
WHERE dt_ddt.idanagrafica = ".prepare($anagrafica->id)." AND |where_ddt| AND dt_righe_ddt.qta > dt_righe_ddt.qta_evasa AND dt_ddt.idstatoddt IN (SELECT id FROM dt_statiddt WHERE descrizione != 'Fatturato') AND idtipoddt IN (SELECT id FROM dt_tipiddt WHERE dir='uscita')
|
`dt_righe_ddt`.`idarticolo`,
|
||||||
|
`dt_righe_ddt`.`is_sconto`,
|
||||||
UNION SELECT or_righe_ordini.id, or_righe_ordini.idordine AS id_documento, or_righe_ordini.is_descrizione, or_righe_ordini.idarticolo, or_righe_ordini.is_sconto, 'ordine' AS ref,
|
'ddt' AS ref,
|
||||||
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 opzione
|
CONCAT('DDT num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', `dt_statiddt_lang`.`name`, ']') AS opzione
|
||||||
FROM or_righe_ordini
|
FROM
|
||||||
INNER JOIN or_ordini ON or_ordini.id = or_righe_ordini.idordine
|
`dt_righe_ddt`
|
||||||
WHERE or_ordini.idanagrafica = ".prepare($anagrafica->id)." AND |where_ordini| AND or_righe_ordini.qta > or_righe_ordini.qta_evasa AND or_ordini.idstatoordine IN (SELECT id FROM or_statiordine WHERE descrizione != 'Fatturato') AND idtipoordine IN (SELECT id FROM or_tipiordine WHERE dir ='uscita')";
|
INNER JOIN `dt_ddt` ON `dt_ddt`.`id` = `dt_righe_ddt`.`idddt`
|
||||||
|
INNER JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
||||||
|
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
|
||||||
|
`dt_ddt`.`idanagrafica` = ".prepare($anagrafica->id)." AND
|
||||||
|
|where_ddt| AND
|
||||||
|
`dt_righe_ddt`.`qta` > `dt_righe_ddt`.`qta_evasa` AND
|
||||||
|
`dt_statiddt_lang`.`name` != 'Fatturato' AND
|
||||||
|
`dt_tipiddt`.`dir` = 'uscita'
|
||||||
|
UNION
|
||||||
|
SELECT
|
||||||
|
`or_righe_ordini`.`id`,
|
||||||
|
`or_righe_ordini`.`idordine` AS id_documento,
|
||||||
|
`or_righe_ordini`.`is_descrizione`,
|
||||||
|
`or_righe_ordini`.`idarticolo`,
|
||||||
|
`or_righe_ordini`.`is_sconto`,
|
||||||
|
'ordine' AS ref,
|
||||||
|
CONCAT('Ordine num. ', IF(`numero_esterno` != '', `numero_esterno`, `numero`), ' del ', DATE_FORMAT(`data`, '%d/%m/%Y'), ' [', (SELECT `descrizione` FROM or_stati`ordine WHERE `id` = `idstatoordine`) , ']') AS opzione
|
||||||
|
FROM
|
||||||
|
`or_righe_ordini`
|
||||||
|
INNER JOIN `or_ordini` ON `or_ordini`.`id` = `or_righe_ordini`.`idordine`
|
||||||
|
WHERE
|
||||||
|
`or_ordini`.`idanagrafica` = ".prepare($anagrafica->id)." AND
|
||||||
|
|where_ordini| AND
|
||||||
|
`or_righe_ordini`.`qta` > `or_righe_ordini`.`qta_evasa` AND
|
||||||
|
`or_ordini`.`idstatoordine` IN (SELECT `id` FROM `or_statiordine` WHERE `descrizione` != 'Fatturato') AND
|
||||||
|
`idtipoordine` IN (SELECT `id` FROM `or_tipiordine` WHERE `dir` ='uscita')";
|
||||||
|
|
||||||
// Ricerca di righe DDT/Ordine con stesso Articolo
|
// Ricerca di righe DDT/Ordine con stesso Articolo
|
||||||
if (!empty($id_articolo)) {
|
if (!empty($id_articolo)) {
|
||||||
$query_articolo = replace($query, [
|
$query_articolo = replace($query, [
|
||||||
'|where_ddt|' => 'dt_righe_ddt.idarticolo = '.prepare($id_articolo),
|
'|where_ddt|' => '`dt_righe_ddt`.`idarticolo` = '.prepare($id_articolo),
|
||||||
'|where_ordini|' => 'or_righe_ordini.idarticolo = '.prepare($id_articolo),
|
'|where_ordini|' => '`or_righe_ordini`.`idarticolo` = '.prepare($id_articolo),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$collegamento = $database->fetchOne($query_articolo);
|
$collegamento = $database->fetchOne($query_articolo);
|
||||||
|
@ -557,8 +588,8 @@ switch (filter('op')) {
|
||||||
// Ricerca di righe DDT/Ordine per stessa descrizione
|
// Ricerca di righe DDT/Ordine per stessa descrizione
|
||||||
if (empty($collegamento)) {
|
if (empty($collegamento)) {
|
||||||
$query_descrizione = replace($query, [
|
$query_descrizione = replace($query, [
|
||||||
'|where_ddt|' => 'dt_righe_ddt.descrizione = '.prepare($riga['Descrizione']),
|
'|where_ddt|' => '`dt_righe_ddt`.`descrizione` = '.prepare($riga['Descrizione']),
|
||||||
'|where_ordini|' => 'or_righe_ordini.descrizione = '.prepare($riga['Descrizione']),
|
'|where_ordini|' => '`or_righe_ordini`.`descrizione` = '.prepare($riga['Descrizione']),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$collegamento = $database->fetchOne($query_descrizione);
|
$collegamento = $database->fetchOne($query_descrizione);
|
||||||
|
@ -567,8 +598,8 @@ switch (filter('op')) {
|
||||||
// Ricerca di righe DDT/Ordine per stesso importo
|
// Ricerca di righe DDT/Ordine per stesso importo
|
||||||
if (empty($collegamento)) {
|
if (empty($collegamento)) {
|
||||||
$query_descrizione = replace($query, [
|
$query_descrizione = replace($query, [
|
||||||
'|where_ddt|' => 'dt_righe_ddt.prezzo_unitario = '.prepare($riga['PrezzoUnitario']),
|
'|where_ddt|' => '`dt_righe_ddt`.`prezzo_unitario` = '.prepare($riga['PrezzoUnitario']),
|
||||||
'|where_ordini|' => 'or_righe_ordini.prezzo_unitario = '.prepare($riga['PrezzoUnitario']),
|
'|where_ordini|' => '`or_righe_ordini`.`prezzo_unitario` = '.prepare($riga['PrezzoUnitario']),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$collegamento = $database->fetchOne($query_descrizione);
|
$collegamento = $database->fetchOne($query_descrizione);
|
||||||
|
|
|
@ -949,6 +949,32 @@ HAVING
|
||||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione_lang`.`name`' WHERE `zz_modules`.`name` = 'Tipi di spedizione' AND `zz_views`.`name` = 'Descrizione';
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione_lang`.`name`' WHERE `zz_modules`.`name` = 'Tipi di spedizione' AND `zz_views`.`name` = 'Descrizione';
|
||||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione`.`id`' WHERE `zz_modules`.`name` = 'Tipi di spedizione' AND `zz_views`.`name` = 'id';
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione`.`id`' WHERE `zz_modules`.`name` = 'Tipi di spedizione' AND `zz_views`.`name` = 'id';
|
||||||
|
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione_lang`.`name`' WHERE `zz_modules`.`name` = 'Ddt di vendita' AND `zz_views`.`name` = 'Tipo spedizione';
|
||||||
|
|
||||||
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione_lang`.`name`' WHERE `zz_modules`.`name` = 'Ddt di acquisto' AND `zz_views`.`name` = 'Tipo spedizione';
|
||||||
|
|
||||||
|
-- Aggiunta tabella dt_statiddt_lang
|
||||||
|
CREATE TABLE IF NOT EXISTS `dt_statiddt_lang` (
|
||||||
|
`id` int NOT NULL,
|
||||||
|
`id_lang` int NOT NULL,
|
||||||
|
`id_record` int NOT NULL,
|
||||||
|
`name` VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
ALTER TABLE `dt_statiddt_lang`
|
||||||
|
ADD PRIMARY KEY (`id`);
|
||||||
|
|
||||||
|
ALTER TABLE `dt_statiddt_lang`
|
||||||
|
MODIFY `id` int NOT NULL AUTO_INCREMENT;
|
||||||
|
|
||||||
|
INSERT INTO `dt_statiddt_lang` (`id`, `id_lang`, `id_record`, `name`) SELECT NULL, (SELECT `id` FROM `zz_langs` WHERE `iso_code` = 'it'), `id`, `descrizione` FROM `dt_statiddt`;
|
||||||
|
|
||||||
|
ALTER TABLE `dt_statiddt`
|
||||||
|
DROP `descrizione`;
|
||||||
|
|
||||||
|
ALTER TABLE `dt_statiddt` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
|
||||||
|
|
||||||
|
ALTER TABLE `dt_statiddt_lang` ADD CONSTRAINT `dt_statiddt_lang_ibfk_1` FOREIGN KEY (`id_record`) REFERENCES `dt_statiddt`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT;
|
||||||
|
|
||||||
-- Allineamento vista Ddt di vendita
|
-- Allineamento vista Ddt di vendita
|
||||||
UPDATE `zz_modules` SET `options` = "
|
UPDATE `zz_modules` SET `options` = "
|
||||||
SELECT
|
SELECT
|
||||||
|
@ -965,7 +991,8 @@ FROM
|
||||||
LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id`
|
LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id`
|
||||||
LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id`
|
LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id`
|
||||||
LEFT JOIN (SELECT `idddt`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `dt_righe_ddt` GROUP BY `idddt`) AS righe ON `dt_ddt`.`id` = `righe`.`idddt`
|
LEFT JOIN (SELECT `idddt`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `dt_righe_ddt` GROUP BY `idddt`) AS righe ON `dt_ddt`.`id` = `righe`.`idddt`
|
||||||
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
||||||
|
LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.|lang|)
|
||||||
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idddt` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\DDT\\DDT' GROUP BY `original_document_id`) AS `fattura` ON `fattura`.`idddt` = `dt_ddt`.`id`
|
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero_esterno` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idddt` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\DDT\\DDT' GROUP BY `original_document_id`) AS `fattura` ON `fattura`.`idddt` = `dt_ddt`.`id`
|
||||||
LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Ddt di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY id_record) AS `email` ON `email`.`id_record` = `dt_ddt`.`id`
|
LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Ddt di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY id_record) AS `email` ON `email`.`id_record` = `dt_ddt`.`id`
|
||||||
WHERE
|
WHERE
|
||||||
|
@ -976,7 +1003,7 @@ ORDER BY
|
||||||
`data` DESC,
|
`data` DESC,
|
||||||
CAST(`numero_esterno` AS UNSIGNED) DESC,
|
CAST(`numero_esterno` AS UNSIGNED) DESC,
|
||||||
`dt_ddt`.`created_at` DESC" WHERE `name` = 'Ddt di vendita';
|
`dt_ddt`.`created_at` DESC" WHERE `name` = 'Ddt di vendita';
|
||||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione_lang`.`name`' WHERE `zz_modules`.`name` = 'Ddt di vendita' AND `zz_views`.`name` = 'Tipo spedizione';
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_statiddt_lang`.`name`' WHERE `zz_modules`.`name` = 'Ddt di vendita' AND `zz_views`.`name` = 'icon_title_Stato';
|
||||||
|
|
||||||
-- Allineamento vista Ddt di acquisto
|
-- Allineamento vista Ddt di acquisto
|
||||||
UPDATE `zz_modules` SET `options` = "
|
UPDATE `zz_modules` SET `options` = "
|
||||||
|
@ -994,7 +1021,8 @@ FROM
|
||||||
LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id`
|
LEFT JOIN `an_sedi` AS sedi ON `dt_ddt`.`idsede_partenza` = sedi.`id`
|
||||||
LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id`
|
LEFT JOIN `an_sedi` AS `sedi_destinazione`ON `dt_ddt`.`idsede_destinazione` = `sedi_destinazione`.`id`
|
||||||
LEFT JOIN(SELECT `idddt`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `dt_righe_ddt` GROUP BY `idddt`) AS righe ON `dt_ddt`.`id` = `righe`.`idddt`
|
LEFT JOIN(SELECT `idddt`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`subtotale` - `sconto` + `iva`) AS `totale` FROM `dt_righe_ddt` GROUP BY `idddt`) AS righe ON `dt_ddt`.`id` = `righe`.`idddt`
|
||||||
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
LEFT JOIN `dt_statiddt` ON `dt_statiddt`.`id` = `dt_ddt`.`idstatoddt`
|
||||||
|
LEFT JOIN `dt_statiddt_lang` ON (`dt_statiddt_lang`.`id_record` = `dt_statiddt`.`id` AND `dt_statiddt_lang`.|lang|)
|
||||||
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idddt` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\DDT\\DDT' GROUP BY `original_document_id`) AS `fattura` ON `fattura`.`idddt` = `dt_ddt`.`id`
|
LEFT JOIN (SELECT GROUP_CONCAT(DISTINCT 'Fattura ',`co_documenti`.`numero` SEPARATOR ', ') AS `info`, `co_righe_documenti`.`original_document_id` AS `idddt` FROM `co_documenti` INNER JOIN `co_righe_documenti` ON `co_documenti`.`id` = `co_righe_documenti`.`iddocumento` WHERE `original_document_type`='Modules\\DDT\\DDT' GROUP BY `original_document_id`) AS `fattura` ON `fattura`.`idddt` = `dt_ddt`.`id`
|
||||||
WHERE
|
WHERE
|
||||||
1=1 |segment(`dt_ddt`.`id_segment`)| AND `dir` = 'uscita' |date_period(`data`)|
|
1=1 |segment(`dt_ddt`.`id_segment`)| AND `dir` = 'uscita' |date_period(`data`)|
|
||||||
|
@ -1004,4 +1032,4 @@ ORDER BY
|
||||||
`data` DESC,
|
`data` DESC,
|
||||||
CAST(`numero_esterno` AS UNSIGNED) DESC,
|
CAST(`numero_esterno` AS UNSIGNED) DESC,
|
||||||
`dt_ddt`.`created_at` DESC" WHERE `name` = 'Ddt di acquisto';
|
`dt_ddt`.`created_at` DESC" WHERE `name` = 'Ddt di acquisto';
|
||||||
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_spedizione_lang`.`name`' WHERE `zz_modules`.`name` = 'Ddt di acquisto' AND `zz_views`.`name` = 'Tipo spedizione';
|
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = '`dt_statiddt_lang`.`name`' WHERE `zz_modules`.`name` = 'Ddt di acquisto' AND `zz_views`.`name` = 'icon_title_Stato';
|
|
@ -73,6 +73,7 @@ return [
|
||||||
'dt_spedizione',
|
'dt_spedizione',
|
||||||
'dt_spedizione_lang',
|
'dt_spedizione_lang',
|
||||||
'dt_statiddt',
|
'dt_statiddt',
|
||||||
|
'dt_statiddt_lang',
|
||||||
'dt_tipiddt',
|
'dt_tipiddt',
|
||||||
'em_print_template',
|
'em_print_template',
|
||||||
'em_accounts',
|
'em_accounts',
|
||||||
|
|
Loading…
Reference in New Issue