Gestione riferimento riga a documento di vendita in fase di import fattura
This commit is contained in:
parent
3ec3928026
commit
defd5a7358
|
@ -286,7 +286,7 @@ elseif (post('op') == 'send-email') {
|
||||||
$dbo->query('UPDATE `zz_views` SET `order` = '.prepare($i).' WHERE id='.prepare($id_riga));
|
$dbo->query('UPDATE `zz_views` SET `order` = '.prepare($i).' WHERE id='.prepare($id_riga));
|
||||||
}
|
}
|
||||||
} elseif (filter('op') == 'visualizza_righe_riferimenti') {
|
} elseif (filter('op') == 'visualizza_righe_riferimenti') {
|
||||||
include_once base_dir().'/include/riferimenti/righe_riferimenti.php';
|
include_once base_dir().'/include/riferimenti/riferimenti.php';
|
||||||
} elseif (filter('op') == 'visualizza_righe_documento') {
|
} elseif (filter('op') == 'visualizza_righe_documento') {
|
||||||
include_once base_dir().'/include/riferimenti/righe_documento.php';
|
include_once base_dir().'/include/riferimenti/righe_documento.php';
|
||||||
} elseif (filter('op') == 'salva_riferimento_riga') {
|
} elseif (filter('op') == 'salva_riferimento_riga') {
|
||||||
|
@ -298,10 +298,7 @@ elseif (post('op') == 'send-email') {
|
||||||
]);
|
]);
|
||||||
} elseif (filter('op') == 'rimuovi_riferimento_riga') {
|
} elseif (filter('op') == 'rimuovi_riferimento_riga') {
|
||||||
$database->delete('co_riferimenti_righe', [
|
$database->delete('co_riferimenti_righe', [
|
||||||
'source_type' => filter('source_type'),
|
'id' => filter('idriferimento'),
|
||||||
'source_id' => filter('source_id'),
|
|
||||||
'target_type' => filter('target_type'),
|
|
||||||
'target_id' => filter('target_id'),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -214,7 +214,7 @@ echo '
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function rimuoviRiferimento(btn, source_type, source_id) {
|
function rimuoviRiferimento(btn, source_type, source_id, idriferimento) {
|
||||||
$("#main_loading").show();
|
$("#main_loading").show();
|
||||||
|
|
||||||
let row = $(btn).closest("tr");
|
let row = $(btn).closest("tr");
|
||||||
|
@ -233,6 +233,7 @@ echo '
|
||||||
source_id: source_id,
|
source_id: source_id,
|
||||||
target_type: target_type,
|
target_type: target_type,
|
||||||
target_id: target_id,
|
target_id: target_id,
|
||||||
|
idriferimento: idriferimento,
|
||||||
},
|
},
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
$("#main_loading").fadeOut();
|
$("#main_loading").fadeOut();
|
||||||
|
|
|
@ -48,7 +48,7 @@ if (!$riferimenti->isEmpty()) {
|
||||||
echo '
|
echo '
|
||||||
<tr data-id="'.$riga->id.'" data-type="'.$riga_class.'">
|
<tr data-id="'.$riga->id.'" data-type="'.$riga_class.'">
|
||||||
<td>
|
<td>
|
||||||
<button type="button" class="btn btn-xs btn-danger pull-right" onclick="rimuoviRiferimento(this, \''.addslashes($source_type).'\',\''.$source_id.'\')">
|
<button type="button" class="btn btn-xs btn-danger pull-right" onclick="rimuoviRiferimento(this, \''.addslashes($source_type).'\', \''.$source_id.'\', \''.$riferimento->id.'\')">
|
||||||
<i class="fa fa-trash"></i>
|
<i class="fa fa-trash"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
|
|
@ -341,7 +341,7 @@ function apriRiferimenti(button) {
|
||||||
let id = riga.data("id");
|
let id = riga.data("id");
|
||||||
let type = riga.data("type");
|
let type = riga.data("type");
|
||||||
|
|
||||||
openModal("'.tr('Riferimenti riga').'", globals.rootdir + "/actions.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&op=visualizza_riferimenti&riga_id=" + id + "&riga_type=" + type)
|
openModal("'.tr('Riferimenti riga').'", globals.rootdir + "/actions.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&op=visualizza_righe_riferimenti&riga_id=" + id + "&riga_type=" + type)
|
||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
|
|
|
@ -27,7 +27,8 @@ switch ($resource) {
|
||||||
$query_ordini = "SELECT or_ordini.id,
|
$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,
|
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,
|
'Ordini' AS optgroup,
|
||||||
'ordine' AS tipo
|
'ordine' AS tipo,
|
||||||
|
'uscita' AS dir
|
||||||
FROM or_ordini
|
FROM or_ordini
|
||||||
INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id
|
INNER JOIN or_righe_ordini ON or_righe_ordini.idordine = or_ordini.id
|
||||||
WHERE idanagrafica = ".prepare($id_anagrafica)." AND
|
WHERE idanagrafica = ".prepare($id_anagrafica)." AND
|
||||||
|
@ -44,7 +45,8 @@ switch ($resource) {
|
||||||
$query_ddt = "SELECT dt_ddt.id,
|
$query_ddt = "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 text,
|
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,
|
||||||
'DDT' AS optgroup,
|
'DDT' AS optgroup,
|
||||||
'ddt' AS tipo
|
'ddt' AS tipo,
|
||||||
|
'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
|
WHERE idanagrafica = ".prepare($id_anagrafica)." AND
|
||||||
|
@ -72,4 +74,72 @@ switch ($resource) {
|
||||||
$results = array_merge($ordini, $ddt);
|
$results = array_merge($ordini, $ddt);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
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';
|
||||||
|
|
||||||
|
$query_ddt = "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 text,
|
||||||
|
'DDT' AS optgroup,
|
||||||
|
'ddt' AS tipo,
|
||||||
|
'entrata' AS dir
|
||||||
|
FROM dt_ddt
|
||||||
|
INNER JOIN dt_righe_ddt ON dt_righe_ddt.idddt = dt_ddt.id
|
||||||
|
WHERE idarticolo = ".prepare($id_articolo)." AND
|
||||||
|
idstatoddt IN (
|
||||||
|
SELECT id FROM dt_statiddt WHERE descrizione != 'Fatturato'
|
||||||
|
) AND
|
||||||
|
idtipoddt IN (
|
||||||
|
SELECT id FROM dt_tipiddt WHERE 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';
|
||||||
|
|
||||||
|
// 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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,17 @@ foreach ($righe as $riga) {
|
||||||
|
|
||||||
<td>';
|
<td>';
|
||||||
|
|
||||||
|
$numero_riferimenti_riga = $riga->referenceTargets()->count();
|
||||||
|
$numero_riferimenti_collegati = $riga->referenceSources()->count();
|
||||||
|
$riferimenti_presenti = $numero_riferimenti_riga;
|
||||||
|
$testo_aggiuntivo = $riferimenti_presenti ? $numero_riferimenti_riga : '';
|
||||||
|
|
||||||
|
echo '
|
||||||
|
<button type="button" class="btn btn-xs btn-'.($riferimenti_presenti ? 'primary' : 'info').' pull-right text-right" onclick="apriRiferimenti(this)">
|
||||||
|
<i class="fa fa-chevron-right"></i> '.tr('Riferimenti').' '.$testo_aggiuntivo.'
|
||||||
|
</button>';
|
||||||
|
|
||||||
|
|
||||||
// Aggiunta dei riferimenti ai documenti
|
// Aggiunta dei riferimenti ai documenti
|
||||||
if ($riga->hasOriginalComponent()) {
|
if ($riga->hasOriginalComponent()) {
|
||||||
echo '
|
echo '
|
||||||
|
@ -349,6 +360,14 @@ function modificaSeriali(button) {
|
||||||
openModal("'.tr('Aggiorna SN').'", globals.rootdir + "/modules/fatture/add_serial.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
|
openModal("'.tr('Aggiorna SN').'", globals.rootdir + "/modules/fatture/add_serial.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&riga_id=" + id + "&riga_type=" + type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function apriRiferimenti(button) {
|
||||||
|
let riga = $(button).closest("tr");
|
||||||
|
let id = riga.data("id");
|
||||||
|
let type = riga.data("type");
|
||||||
|
|
||||||
|
openModal("'.tr('Riferimenti riga').'", globals.rootdir + "/actions.php?id_module=" + globals.id_module + "&id_record=" + globals.id_record + "&op=visualizza_righe_riferimenti&riga_id=" + id + "&riga_type=" + type)
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$(".sortable").each(function() {
|
$(".sortable").each(function() {
|
||||||
$(this).sortable({
|
$(this).sortable({
|
||||||
|
|
|
@ -127,6 +127,8 @@ switch (filter('op')) {
|
||||||
'conto' => post('conto'),
|
'conto' => post('conto'),
|
||||||
'tipo_riga_riferimento' => post('tipo_riga_riferimento'),
|
'tipo_riga_riferimento' => post('tipo_riga_riferimento'),
|
||||||
'id_riga_riferimento' => post('id_riga_riferimento'),
|
'id_riga_riferimento' => post('id_riga_riferimento'),
|
||||||
|
'tipo_riga_riferimento_vendita' => post('tipo_riga_riferimento_vendita'),
|
||||||
|
'id_riga_riferimento_vendita' => post('id_riga_riferimento_vendita'),
|
||||||
'movimentazione' => post('movimentazione'),
|
'movimentazione' => post('movimentazione'),
|
||||||
'crea_articoli' => post('crea_articoli'),
|
'crea_articoli' => post('crea_articoli'),
|
||||||
'is_ritenuta_pagata' => post('is_ritenuta_pagata'),
|
'is_ritenuta_pagata' => post('is_ritenuta_pagata'),
|
||||||
|
|
|
@ -397,21 +397,38 @@ if (!empty($righe)) {
|
||||||
<input type="hidden" name="id_riga_riferimento['.$key.']" id="id_riga_riferimento_'.$key.'" value="">
|
<input type="hidden" name="id_riga_riferimento['.$key.']" id="id_riga_riferimento_'.$key.'" value="">
|
||||||
<input type="hidden" name="tipo_riga_riferimento['.$key.']" id="tipo_riga_riferimento_'.$key.'" value="">
|
<input type="hidden" name="tipo_riga_riferimento['.$key.']" id="tipo_riga_riferimento_'.$key.'" value="">
|
||||||
|
|
||||||
<div class="col-md-3">
|
<input type="hidden" name="tipo_riferimento_vendita['.$key.']" id="tipo_riferimento_vendita_'.$key.'" value="">
|
||||||
{[ "type": "select", "name": "articoli['.$key.']", "ajax-source": "articoli", "select-options": '.json_encode(['permetti_movimento_a_zero' => 1, 'dir' => 'entrata', 'idanagrafica' => $anagrafica ? $anagrafica->id : '']).', "icon-after": "add|'.Modules::get('Articoli')['id'].'|codice='.htmlentities($codice_principale).'&descrizione='.htmlentities($riga['Descrizione']).'", "value": "'.$id_articolo.'", "label": "'.tr('Articolo').'" ]}
|
<input type="hidden" name="id_riferimento_vendita['.$key.']" id="id_riferimento_vendita_'.$key.'" value="">
|
||||||
|
<input type="hidden" name="id_riga_riferimento_vendita['.$key.']" id="id_riga_riferimento_vendita_'.$key.'" value="">
|
||||||
|
<input type="hidden" name="tipo_riga_riferimento_vendita['.$key.']" id="tipo_riga_riferimento_vendita_'.$key.'" value="">
|
||||||
|
|
||||||
|
<div class="col-md-12">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6">
|
||||||
|
{[ "type": "select", "name": "articoli['.$key.']", "ajax-source": "articoli", "select-options": '.json_encode(['permetti_movimento_a_zero' => 1, 'dir' => 'entrata', 'idanagrafica' => $anagrafica ? $anagrafica->id : '']).', "icon-after": "add|'.Modules::get('Articoli')['id'].'|codice='.htmlentities($codice_principale).'&descrizione='.htmlentities($riga['Descrizione']).'", "value": "'.$id_articolo.'", "label": "'.tr('Articolo').'" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "select", "name": "conto['.$key.']", "ajax-source": "conti-acquisti", "required": 1, "label": "'.tr('Conto acquisti').'" ]}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "select", "name": "iva['.$key.']", "values": '.json_encode('query='.$query).', "required": 1, "label": "'.tr('Aliquota IVA').'" ]}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "label": "'.tr('Riferimento acquisto').'", "icon-after": '.json_encode('<button type="button" onclick="rimuoviRiferimento(this)" class="btn btn-primary disabled" id="rimuovi_riferimento_'.$key.'"><i class="fa fa-close"></i></button>').' ]}
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3">
|
||||||
|
{[ "type": "select", "name": "selezione_riferimento_vendita['.$key.']", "ajax-source": "riferimenti-vendita-fe", "select-options": '.json_encode(['id_articolo' => $id_articolo]).', "label": "'.tr('Riferimento vendita').'", "icon-after": '.json_encode('<button type="button" onclick="rimuoviRiferimentoVendita(this)" class="btn btn-primary disabled" id="rimuovi_riferimento_vendita_'.$key.'"><i class="fa fa-close"></i></button>').' ]}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
{[ "type": "select", "name": "conto['.$key.']", "ajax-source": "conti-acquisti", "required": 1, "label": "'.tr('Conto acquisti').'" ]}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
{[ "type": "select", "name": "iva['.$key.']", "values": '.json_encode('query='.$query).', "required": 1, "label": "'.tr('Aliquota IVA').'" ]}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
{[ "type": "select", "name": "selezione_riferimento['.$key.']", "ajax-source": "riferimenti-fe", "select-options": '.json_encode(['id_anagrafica' => $anagrafica ? $anagrafica->id : '']).', "label": "'.tr('Riferimento').'", "icon-after": '.json_encode('<button type="button" onclick="rimuoviRiferimento(this)" class="btn btn-primary disabled" id="rimuovi_riferimento_'.$key.'"><i class="fa fa-close"></i></button>').' ]}
|
|
||||||
</div>
|
|
||||||
</td>
|
</td>
|
||||||
</tr>';
|
</tr>';
|
||||||
}
|
}
|
||||||
|
@ -488,7 +505,7 @@ echo '
|
||||||
|
|
||||||
if (data) {
|
if (data) {
|
||||||
let riga = $this.closest("tr").prev();
|
let riga = $this.closest("tr").prev();
|
||||||
selezionaRiferimento(riga, data.tipo, data.id);
|
selezionaRiferimento(riga, data.tipo, data.id, data.dir);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -504,7 +521,7 @@ function rimuoviRiferimento(button) {
|
||||||
riga.removeClass("success").removeClass("warning");
|
riga.removeClass("success").removeClass("warning");
|
||||||
}
|
}
|
||||||
|
|
||||||
function selezionaRiferimento(riga, tipo_documento, id_documento) {
|
function selezionaRiferimento(riga, tipo_documento, id_documento, dir) {
|
||||||
let id_riga = riga.data("id");
|
let id_riga = riga.data("id");
|
||||||
let qta = riga.data("qta");
|
let qta = riga.data("qta");
|
||||||
|
|
||||||
|
@ -518,6 +535,7 @@ function selezionaRiferimento(riga, tipo_documento, id_documento) {
|
||||||
tipo_documento: tipo_documento,
|
tipo_documento: tipo_documento,
|
||||||
righe_ddt: riferimenti.ddt,
|
righe_ddt: riferimenti.ddt,
|
||||||
righe_ordini: riferimenti.ordini,
|
righe_ordini: riferimenti.ordini,
|
||||||
|
dir: dir,
|
||||||
};
|
};
|
||||||
|
|
||||||
let url = "'.$structure->fileurl('riferimento.php').'?" + $.param(query);
|
let url = "'.$structure->fileurl('riferimento.php').'?" + $.param(query);
|
||||||
|
@ -579,7 +597,14 @@ function impostaRiferimento(id_riga, documento, riga) {
|
||||||
impostaContenuto(riga_fe.data("iva_percentuale"), riga.iva_percentuale, "%", "#riferimento_" + id_riga + "_iva");
|
impostaContenuto(riga_fe.data("iva_percentuale"), riga.iva_percentuale, "%", "#riferimento_" + id_riga + "_iva");
|
||||||
|
|
||||||
$("#riferimento_" + id_riga).html(documento.descrizione ? documento.descrizione : "");
|
$("#riferimento_" + id_riga).html(documento.descrizione ? documento.descrizione : "");
|
||||||
$("#riferimento_" + id_riga + "_descrizione").html(riga.descrizione ? riga.descrizione : "");
|
|
||||||
|
var descrizione = riga.descrizione;
|
||||||
|
console.log(descrizione);
|
||||||
|
if(typeof descrizione !== "undefined"){
|
||||||
|
descrizione = descrizione.replace(/_/g, " ");
|
||||||
|
}
|
||||||
|
|
||||||
|
$("#riferimento_" + id_riga + "_descrizione").html(descrizione ? descrizione : "");
|
||||||
|
|
||||||
// Colorazione dell\'intera riga
|
// Colorazione dell\'intera riga
|
||||||
let warnings = riga_fe.find(".text-warning");
|
let warnings = riga_fe.find(".text-warning");
|
||||||
|
@ -612,4 +637,33 @@ function impostaContenuto(valore_riga, valore_riferimento, contenuto_successivo,
|
||||||
|
|
||||||
elemento.html("<br>" + contenuto);
|
elemento.html("<br>" + contenuto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function impostaRiferimentoVendita(id_riga, documento, riga) {
|
||||||
|
// Informazioni interne per il riferimento
|
||||||
|
$("#tipo_riferimento_vendita_" + id_riga).val(documento.tipo);
|
||||||
|
$("#id_riferimento_vendita_" + id_riga).val(documento.id);
|
||||||
|
$("#tipo_riga_riferimento_vendita_" + id_riga).val(riga.tipo);
|
||||||
|
$("#id_riga_riferimento_vendita_" + id_riga).val(riga.id);
|
||||||
|
|
||||||
|
// Gestione della selezione
|
||||||
|
input("selezione_riferimento_vendita[" + id_riga + "]").disable();
|
||||||
|
$("#rimuovi_riferimento_vendita_" + id_riga).removeClass("disabled");
|
||||||
|
}
|
||||||
|
|
||||||
|
function rimuoviRiferimentoVendita(button) {
|
||||||
|
let riga = $(button).closest("tr").prev();
|
||||||
|
let id_riga = riga.data("id");
|
||||||
|
|
||||||
|
impostaRiferimentoVendita(id_riga, {}, {});
|
||||||
|
|
||||||
|
input("selezione_riferimento_vendita[" + id_riga + "]").enable()
|
||||||
|
.getElement().selectReset();
|
||||||
|
$(button).addClass("disabled");
|
||||||
|
riga.removeClass("success").removeClass("warning");
|
||||||
|
}
|
||||||
|
|
||||||
|
$("[id^=\'articoli\']").change(function() {
|
||||||
|
updateSelectOption("id_articolo", $(this).val());
|
||||||
|
});
|
||||||
|
|
||||||
</script>';
|
</script>';
|
||||||
|
|
|
@ -29,6 +29,7 @@ $qta = get('qta');
|
||||||
|
|
||||||
$id_documento = get('id_documento');
|
$id_documento = get('id_documento');
|
||||||
$tipo_documento = get('tipo_documento');
|
$tipo_documento = get('tipo_documento');
|
||||||
|
$dir = get('dir');
|
||||||
if ($tipo_documento == 'ordine') {
|
if ($tipo_documento == 'ordine') {
|
||||||
$documento = Ordine::find($id_documento);
|
$documento = Ordine::find($id_documento);
|
||||||
$righe_utilizzate = get('righe_ordini');
|
$righe_utilizzate = get('righe_ordini');
|
||||||
|
@ -59,7 +60,7 @@ foreach ($righe as $riga) {
|
||||||
$dettagli = [
|
$dettagli = [
|
||||||
'tipo' => get_class($riga),
|
'tipo' => get_class($riga),
|
||||||
'id' => $riga->id,
|
'id' => $riga->id,
|
||||||
'descrizione' => $riga->descrizione,
|
'descrizione' => str_replace(' ', '_', $riga->descrizione),
|
||||||
'qta' => $riga->qta,
|
'qta' => $riga->qta,
|
||||||
'um' => $riga->um,
|
'um' => $riga->um,
|
||||||
'prezzo_unitario' => $riga->prezzo_unitario ?: $riga_origine->prezzo_unitario,
|
'prezzo_unitario' => $riga->prezzo_unitario ?: $riga_origine->prezzo_unitario,
|
||||||
|
@ -102,8 +103,14 @@ var documento_importazione = {
|
||||||
function selezionaRiga(button) {
|
function selezionaRiga(button) {
|
||||||
let riga = $(button).closest("tr");
|
let riga = $(button).closest("tr");
|
||||||
|
|
||||||
let dettagli_riga = riga.data("dettagli");
|
let dettagli_riga = riga.data("dettagli")
|
||||||
impostaRiferimento("'.$id_riga.'", documento_importazione, dettagli_riga);
|
|
||||||
|
if("'.$dir.'"=="entrata"){
|
||||||
|
impostaRiferimentoVendita("'.$id_riga.'", documento_importazione, dettagli_riga);
|
||||||
|
}else{
|
||||||
|
impostaRiferimento("'.$id_riga.'", documento_importazione, dettagli_riga);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$(button).closest(".modal").modal("hide");
|
$(button).closest(".modal").modal("hide");
|
||||||
}
|
}
|
||||||
|
|
|
@ -364,7 +364,7 @@ class FatturaElettronica
|
||||||
{
|
{
|
||||||
$this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura'], $info['is_ritenuta_pagata']);
|
$this->saveFattura($info['id_pagamento'], $info['id_segment'], $info['id_tipo'], $info['data_registrazione'], $info['ref_fattura'], $info['is_ritenuta_pagata']);
|
||||||
|
|
||||||
$this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli'], $info['tipo_riga_riferimento'], $info['id_riga_riferimento']);
|
$this->saveRighe($info['articoli'], $info['iva'], $info['conto'], $info['movimentazione'], $info['crea_articoli'], $info['tipo_riga_riferimento'], $info['id_riga_riferimento'], $info['tipo_riga_riferimento_vendita'], $info['id_riga_riferimento_vendita']);
|
||||||
|
|
||||||
$this->saveAllegati();
|
$this->saveAllegati();
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,7 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
return $this->forceArray($result);
|
return $this->forceArray($result);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [])
|
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [], $tipi_riferimenti_vendita = [], $id_riferimenti_vendita = [])
|
||||||
{
|
{
|
||||||
$info = $this->getRitenutaRivalsa();
|
$info = $this->getRitenutaRivalsa();
|
||||||
|
|
||||||
|
@ -161,8 +161,12 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
$obj = Articolo::build($fattura, $articolo);
|
$obj = Articolo::build($fattura, $articolo);
|
||||||
|
|
||||||
$obj->movimentazione($movimentazione);
|
$obj->movimentazione($movimentazione);
|
||||||
|
|
||||||
|
$target_type = 'Modules\Fatture\Components\Articolo';
|
||||||
} else {
|
} else {
|
||||||
$obj = Riga::build($fattura);
|
$obj = Riga::build($fattura);
|
||||||
|
|
||||||
|
$target_type = 'Modules\Fatture\Components\Riga';
|
||||||
}
|
}
|
||||||
|
|
||||||
$obj->descrizione = $riga['Descrizione'];
|
$obj->descrizione = $riga['Descrizione'];
|
||||||
|
@ -176,6 +180,17 @@ class FatturaOrdinaria extends FatturaElettronica
|
||||||
$obj->descrizione .= $nuovo_riferimento;
|
$obj->descrizione .= $nuovo_riferimento;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$obj->save();
|
||||||
|
|
||||||
|
if (!empty($tipi_riferimenti_vendita[$key])) {
|
||||||
|
database()->insert('co_riferimenti_righe', [
|
||||||
|
'source_type' => $tipi_riferimenti_vendita[$key],
|
||||||
|
'source_id' => $id_riferimenti_vendita[$key],
|
||||||
|
'target_type' => $target_type,
|
||||||
|
'target_id' => $obj->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
$obj->id_iva = $iva[$key];
|
$obj->id_iva = $iva[$key];
|
||||||
$obj->idconto = $conto[$key];
|
$obj->idconto = $conto[$key];
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ class FatturaSemplificata extends FatturaElettronica
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [])
|
public function saveRighe($articoli, $iva, $conto, $movimentazione = true, $crea_articoli = false, $tipi_riferimenti = [], $id_riferimenti = [], $tipi_riferimenti_vendita = [], $id_riferimenti_vendita = [])
|
||||||
{
|
{
|
||||||
$righe = $this->getRighe();
|
$righe = $this->getRighe();
|
||||||
$fattura = $this->getFattura();
|
$fattura = $this->getFattura();
|
||||||
|
|
Loading…
Reference in New Issue