FSN#23995 custfunctions.wsc beter implementeren

svn path=/Website/trunk/; revision=12158
This commit is contained in:
Jos Groot Lipman
2012-08-20 11:25:35 +00:00
parent 6fa2536f17
commit b08e6da888
2 changed files with 38 additions and 16 deletions

View File

@@ -6,20 +6,19 @@
Description: A deeplink call to CALCulate the DISTance of a 'dagroute'
Parameters: p_prs_perslid_key
p_datum
*/ %>
<%
DOCTYPE_Disable = 1;
%>
<!-- #include file="../Shared/common.inc" -->
<!-- #include file="../../appl/shared/json2.js" -->
<!-- #include file="../../appl/shared/funcodes.inc" -->
<%
var mld_opdr_uren_key = getQParamInt("mld_opdr_uren_key", -1);
//var p_datum = getQParamDate("p_datum", new Date);
var message = "";
sql=" select prs_perslid_key, mld_opdr_uren_datum" +
" from mld_opdr_uren" +
" where mld_opdr_uren_key = " + mld_opdr_uren_key;
@@ -27,19 +26,22 @@ DOCTYPE_Disable = 1;
var l_prs_perslid_key = oRs("prs_perslid_key").Value;
var l_mld_opdr_uren_datum = new Date(oRs("mld_opdr_uren_datum").Value);
oRs.Close();
// Fictieve insert van kilometers van persoon 'p_prs_perslid_key' op datum 'p_datum'
var l_result = fclt_calc_dist_from_google (l_prs_perslid_key, l_mld_opdr_uren_datum, "I");
//custfunc.mld_urenkostenpostsave(0, mld_opdr_uren_key, 1, 0, "I", 0)
var hook = custfunc.gethook();
if (!hook)
shared.internal_error("custfunctions.wsc niet goed geregistreerd?"); // lastige configuratiefout anders
var l_result = hook.fclt_calc_dist_from_google (l_prs_perslid_key, l_mld_opdr_uren_datum, "I");
hook = null; // vrijgeven voor de GC
sql=" select mld_opdruren_dagkosten_opm" +
" from mld_opdruren_dagkosten" +
" where prs_perslid_key = " + l_prs_perslid_key +
" and mld_opdruren_dagkosten_datum =" + l_mld_opdr_uren_datum.toSQL();
oRs = Oracle.Execute(sql);
//Response.Redirect(oRs("mld_opdruren_dagkosten_opm").Value);
result = { success : true, message : message }

View File

@@ -39,6 +39,11 @@
<PARAMETER name="p_actie"/>
<PARAMETER name="pResult"/>
</method>
<method name="fclt_calc_dist_from_google">
<PARAMETER name="p_prs_perslid_key"/>
<PARAMETER name="p_mld_opdr_uren_datum"/>
<PARAMETER name="p_actie"/>
</method>
</public>
<script language="javascript">
@@ -65,6 +70,20 @@ var __Log;
var __DoLog;
var safe;
care_km_cache_days = 56; // we kunnen niet bij S() dus maar hard
function padout(number) { return (number < 10) ? "0" + number : number; }
Date.prototype.toSQL = function toSQL(withTime)
{
var str = padout(this.getDate()) + "-" + padout(this.getMonth() + 1) + "-" + padout(this.getFullYear())
if (withTime)
{
str += " " + padout(this.getHours()) + ":" + padout(this.getMinutes());
return "to_date(" + safe.quoted_sql(str) + ", 'DD-MM-YYYY HH24:MI')";
}
else
return "to_date(" + safe.quoted_sql(str) + ", 'DD-MM-YYYY')";
}
// CARE: doorloop de week van deze persoon en bepaal de dagtotaalkilometers
// om op te slaan in mld_opdruren_dagkosten
@@ -129,7 +148,8 @@ mld_urenkostenpostsave = function (p_mld_opdruren_kosten_key, p_mld_opdruren_key
// Actie p_actie = I, U of D (insert/update/delete), andere codes werken niet (doen niets)
// p_prs_perslid_key is de key van de verzorger (route van verzorger)
// p_mld_opdr_uren_datum is de datum behorende bij de route (dag van de route)
function fclt_calc_dist_from_google (p_prs_perslid_key, p_mld_opdr_uren_datum, p_actie){
fclt_calc_dist_from_google = function (p_prs_perslid_key, p_mld_opdr_uren_datum, p_actie){
p_mld_opdr_uren_datum = new Date(p_mld_opdr_uren_datum); // is binnen wsc anders een object?
// URL voor het berekenen van de dag-route
var v_GoogleAPI_URL = "http://maps.googleapis.com/maps/api/directions/xml?sensor=false&language=NL";
@@ -171,11 +191,11 @@ function fclt_calc_dist_from_google (p_prs_perslid_key, p_mld_opdr_uren_datum, p
__Log ("Huis van client: " + l_client_huis);
if (p_adresARR.length == 0){
// Eerste keer: daddr-argument in de URL!!
v_url_google_route += "&daddr=" + Server.URLencode(l_client_huis);
v_url_google_route += "&daddr=" + encodeURIComponent(l_client_huis);
}
else{
// Volgende keren: :to in het daddr-argument (van de URL)!!!
v_url_google_route += "+to:" + Server.URLencode(l_client_huis);
v_url_google_route += "+to:" + encodeURIComponent(l_client_huis);
}
p_adresARR[p_adresARR.length]= l_client_huis;
oRs.MoveNext();
@@ -328,9 +348,9 @@ function GetGoogleDistance(p_GoogleAPI_URL, p_locatie1, p_locatie2, p_AdresArr,
}
__Log(l_waypoints);
var l_GoogleAPI_URL = p_GoogleAPI_URL
+ '&origin=' + Server.URLencode(p_locatie1)
+ '&destination=' + Server.URLencode(p_locatie2)
+ '&waypoints=' + Server.URLencode(l_waypoints)
+ '&origin=' + encodeURIComponent(p_locatie1)
+ '&destination=' + encodeURIComponent(p_locatie2)
+ '&waypoints=' + encodeURIComponent(l_waypoints)
objXMLHTTP.open("GET", l_GoogleAPI_URL, false);
objXMLHTTP.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
objXMLHTTP.send();