WTCA#38303: opdracht s/ 58793.

svn path=/Website/trunk/; revision=32234
This commit is contained in:
Maykel Geerdink
2017-01-05 16:01:23 +00:00
parent a00276b59c
commit ba547a36c0
3 changed files with 79 additions and 13 deletions

View File

@@ -345,6 +345,13 @@ function cal_onChange(fieldID, params)
dt2.setSeconds(tm / 1000); // setSeconds gaat goed om met zomertijd/wintertijd
$('#'+fieldID).val(dt2.getTime());
}
else if ($("#time_from_" + fieldID).length == 0 && params.volgnr == 2)
{ // Tijdsveld niet aanwezig en het is een einddatum: De tijd van de einddatum op 23:59 zetten.
var dt2 = new Date(dt).midnight();
dt2.setHours(23, 59, 59);
$('#'+fieldID).val(dt2.getTime());
}
if (params.volgnr)
{
cal_checkVolgnr(fieldID, params.volgnr);

View File

@@ -322,9 +322,10 @@ for (var u = 0; u < uitvkeyArray.length; u++)
{ dbs: "mld_opdr_handfiat", typ: "check", val: (voluntaryApproval? 1 : 0) }
];
// Startdatum is vandaag: starttijd is huidige tijd.
// Startdatum is niet vandaag: 1) Uitvoertijd is in uren => starttijd is begin werkdag (bijv. 7:00).
// 2) Uitvoertijd is in dagen => starttijd is 0:00.
// Begindatum nieuwe opdracht (FSN#27648 en WTCA#38303).
// Begindatum is vandaag:
// Ja) begintijd is huidige tijd.
// Nee) begintijd is 00:00.
var startdate_is_today = (startdate.midnight().getTime() == sysdate.midnight().getTime());
var bedrijf_uitvoertijd = mld.getbedrijfuitvoertijd(uitvoerende); // vaak nodig
@@ -370,7 +371,39 @@ for (var u = 0; u < uitvkeyArray.length; u++)
}
else
{
fields.push({ dbs: "mld_opdr_einddatum", typ: "datetime", frm: "date_done" });
// Einddatum, aanmaak nieuwe opdracht (AALB#32981 en WTCA#38303).
// 1) Uitvoertijd is in uren: ingevoerde datum + tijd opslaan.
// 2) Uitvoertijd is in dagen:
// Is ingevoerde datum gelijk aan einddatum melding?
// Ja) Datum + tijd is einddatum melding.
// Nee) Tijd is einde werkdag (Setting fac_t_endofworkday).
// Het veld einddatum was aanwezig.
// Als het tijdsveld niet aanwezig is en de datum is aangepast/niet het einde van de melding, dan de eindtijd op einde van de werkdag zetten (fac_t_endofworkday).
// Dan moet ik eerst weten of het tijdsveld aanwezig was.
// Of het tijdsveld van de einddatum aanwezig was is afhankelijk van de uitvoertijd type van de melding.
if (mld_info.uitvoertijd_eenheid == 'U')
// Als uitvoertijd in uren is, dan is er een tijdsveld aanwezig geweest en dan wordt de tijd automatisch opgeslagen.
fields.push({ dbs: "mld_opdr_einddatum", typ: "datetime", frm: "date_done", track: L("lcl_opdr_enddate") });
else
{ // Het tijdsveld was niet aanwezig.
// Nog even checken of de einddatum van de opdracht gelijk is aan de einddatum van de melding (zonder tijd).
// Anders is de datum ONTERECHT te laat. Tijd einddatum opdracht (23:59) > tijd einddatum melding.
var mld_einddatum = mld_info.einddatum; // Einddatum melding.
var new_einddatum = getFParamDate("date_done", null); // Nieuwe einddatum opdracht.
if (new_einddatum.midnight().getTime() == mld_einddatum.midnight().getTime())
{
// Datum is gelijk aan einddatum melding. Maak de tijd (+ datum) gelijk aan de einddatum melding.
fields.push({ dbs: "mld_opdr_einddatum", typ: "datetime", val: mld_einddatum });
}
else
{ // Zet de eindtijd van de nieuwe einddatum op einde werkdag (fac_t_endofworkday)
// Dit gebeurt ook bij wijzigen.
var endofworkday = parseFloat(S("fac_t_endofworkday"));
new_einddatum.setHours(Math.floor(endofworkday), (endofworkday - Math.floor(endofworkday)) * 60);
fields.push({ dbs: "mld_opdr_einddatum", typ: "datetime", val: new_einddatum });
}
}
fields.push({ dbs: "mld_typeopdr_key", typ: "key", frm: "t_opdr" });
fields.push({ dbs: "prs_perslid_key", typ: "key", frm: "behandelaar" });
fields.push({ dbs: "mld_opdr_omschrijving", typ: "varchar", frm: "opdr_omschr" });
@@ -650,7 +683,12 @@ for (var u = 0; u < uitvkeyArray.length; u++)
}
}
// Startdatum bestaande opdracht
// Begindatum bestaande opdracht (FSN#27648 en WTCA#38303).
// Begindatum is aangepast?
// Nee) Begindatum niet opslaan.
// Ja) Is begindatum gelijk aan de registratiedatum van de opdracht?
// Ja) Datum + tijd is registratiedatum opdracht.
// Nee) Tijd is 00:00.
sql = "SELECT mld_opdr_datumbegin"
+ " FROM mld_opdr"
+ " WHERE mld_opdr_key = " + opdr_key;
@@ -667,7 +705,7 @@ for (var u = 0; u < uitvkeyArray.length; u++)
var registratiedatum = new Date(oRs("registratiedatum").Value);
var startdatum_is_registratiedatum = (startdate.midnight().getTime() == registratiedatum.midnight().getTime());
startdate = (startdatum_is_registratiedatum? registratiedatum : startdatebegin);
startdate = (startdatum_is_registratiedatum? registratiedatum : startdate.midnight().getTime());
}
// else startdatum niet aanpassen.
oRs.Close();
@@ -675,7 +713,17 @@ for (var u = 0; u < uitvkeyArray.length; u++)
var new_einddatum = getFParamDate("date_done", null);
if (new_einddatum)
{ // Het veld einddatum was aanwezig.
{
// Einddatum, wijzigen bestaande opdracht (AALB#32981 en WTCA#38303).
// 1) Uitvoertijd is in uren: ingevoerde datum + tijd opslaan.
// 2) Uitvoertijd is in dagen:
// Is ingevoerde datum aangepast?
// Nee) Einddatum niet opslaan.
// Ja) Is ingevoerde datum gelijk aan einddatum melding?
// Ja) Datum + tijd is einddatum melding.
// Nee) Tijd is einde werkdag (Setting fac_t_endofworkday).
// Het veld einddatum was aanwezig.
// Als het tijdsveld niet aanwezig is en de datum is aangepast, dan de eindtijd op einde van de werkdag zetten (fac_t_endofworkday).
// Dan moet ik eerst weten of het tijdsveld aanwezig was.
// Of het tijdsveld van de einddatum aanwezig was is afhankelijk van de uitvoertijd type van de melding.
@@ -689,10 +737,21 @@ for (var u = 0; u < uitvkeyArray.length; u++)
var new_einddatum_m = new_einddatum.midnight().getTime();
if (old_einddatum_m != new_einddatum_m)
{ // Zet de eindtijd van de nieuwe einddatum op einde werkdag (fac_t_endofworkday)
var endofworkday = parseFloat(S("fac_t_endofworkday"));
new_einddatum.setHours(Math.floor(endofworkday), (endofworkday - Math.floor(endofworkday)) * 60);
fields.push({ dbs: "mld_opdr_einddatum", typ: "datetime", val: new_einddatum, track: L("lcl_opdr_enddate") });
{ // Nog even checken of de einddatum van de opdracht gelijk is aan de einddatum van de melding (zonder tijd).
// Anders is de datum ONTERECHT te laat (Rood). Tijd einddatum opdracht (23:59) > tijd einddatum melding.
var mld_einddatum = mld_info.einddatum; // Einddatum melding.
var mld_einddatum_m = mld_einddatum.midnight().getTime(); // Einddatum melding.
if (new_einddatum_m == mld_einddatum_m)
{
// Datum is gelijk aan einddatum melding. Maak de tijd (+ datum) gelijk aan de einddatum melding.
fields.push({ dbs: "mld_opdr_einddatum", typ: "datetime", val: mld_einddatum });
}
else
{ // Zet de eindtijd van de nieuwe einddatum op einde werkdag (fac_t_endofworkday)
var endofworkday = parseFloat(S("fac_t_endofworkday"));
new_einddatum.setHours(Math.floor(endofworkday), (endofworkday - Math.floor(endofworkday)) * 60);
fields.push({ dbs: "mld_opdr_einddatum", typ: "datetime", val: new_einddatum, track: L("lcl_opdr_enddate") });
}
}
//else: Einddatum is niet gewijzigd. Dan ook de tijd niet aanpassen, ofwel het gehele veld niet opslaan.
}

View File

@@ -289,12 +289,12 @@ if (sendPortalOption)
+ "," + safe.quoted_sql(message.substr(0,4000))
if (vandatum)
sql += ", "+vandatum.toSQL(true)
sql += ", " + vandatum.toSQL(); // Editen van datum in msg_portal_message_save.asp ook zonder tijd
else
sql += ", NULL"
if (totdatum)
sql += ", " + totdatum.toSQL(true)
sql += ", " + totdatum.toSQL(); // Editen van datum in msg_portal_message_save.asp ook zonder tijd
else
sql += ", NULL"