From 649d325951fcdb529f67144b722eb84201512da1 Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Mon, 19 Feb 2018 10:39:51 +0000 Subject: [PATCH] TWYN#52266 fout bij kopieren factuur svn path=/Website/trunk/; revision=37040 --- APPL/API2/model_fin_factuur.inc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/APPL/API2/model_fin_factuur.inc b/APPL/API2/model_fin_factuur.inc index 217475e742..a3dac3d2bd 100644 --- a/APPL/API2/model_fin_factuur.inc +++ b/APPL/API2/model_fin_factuur.inc @@ -228,7 +228,7 @@ function model_fin_factuur() if (!vast_facnr) { // Bij klonen: id=(bestaat niet), invoice=niet leeg. Dan een (volgende) volgnummer erachter zetten. - var cur_inv = (invoice.indexOf("/") > -1 ? invoice.substring(0,invoice.indexOf("/")-1) : invoice); + var cur_inv = (invoice.indexOf("/") > -1 ? invoice.substring(0,invoice.indexOf("/")) : invoice); var cur_seq = (invoice.indexOf("/") > -1 ? invoice.substring(invoice.indexOf("/")+1) : 0); cur_seq = parseInt(cur_seq ? cur_seq : 0); @@ -321,7 +321,8 @@ function model_fin_factuur() // Gebruik daarvoor die van mld_opdr. setKostensoort(obj); // Is het factuurnummer/volgnummer uniek binnen het project? - checkUniekFactuurnummer(-1, obj.budgetdiscipline, obj.invoice); + var v_discipline_key = (typeof obj.budgetdiscipline == "object" ? obj.budgetdiscipline.id : obj.budgetdiscipline); + checkUniekFactuurnummer(-1, v_discipline_key, obj.invoice); // Bij een kopiefactuur van een origineel (factuurnummer zonder volgnummer) // moet het originele factuurnummer de toevoeging "/1" krijgen. // De vaste factuurnummers echter niet. @@ -381,11 +382,14 @@ function model_fin_factuur() checkUniekFactuurnummer(key, v_discipline_key, obj.invoice); // Zet van alle facturen met hetzelfde factuurnummer binnen het project de adviesdatum gelijk. + // De vaste factuurnummers worden buiten beschouwing gelaten. + var vast_facnr = isVastFactuurnummer(obj.invoice); var v_old_adviesdatum = toDateString(v_advies_datum, true) var v_new_adviesdatum = toDateString(obj.advice.midnight(), true); - if (v_old_adviesdatum != v_new_adviesdatum) + if (!vast_facnr && (v_old_adviesdatum != v_new_adviesdatum)) { - // alle adviesdatums voor dit factuurnummer aanpassen. + // We moeten zoeken op factuurnummer zonder volgnummer. + var cur_invoice = (obj.invoice.indexOf("/") > -1 ? obj.invoice.substring(0, obj.invoice.indexOf("/")) : obj.invoice); var sql_u = "UPDATE fin_factuur" + " SET fin_factuur_advies = " + obj.advice.toSQL() + " WHERE fin_factuur_key IN" @@ -396,7 +400,7 @@ function model_fin_factuur() + " WHERE f.mld_opdr_key = m.mld_opdr_key" + " AND m.prs_kostensoort_key = p.prs_kostensoort_key" + " AND p.ins_discipline_key = " + v_discipline_key - + " AND f.fin_factuur_nr = " + safe.quoted_sql(obj.invoice) + + " AND SUBSTR(f.fin_factuur_nr, 0, INSTR(f.fin_factuur_nr,'/')-1) = " + safe.quoted_sql(cur_invoice) + " )"; Oracle.Execute(sql_u); }