diff --git a/ax/AxFacilitor.NMK b/ax/AxFacilitor.NMK
new file mode 100644
index 0000000..93bcd93
--- /dev/null
+++ b/ax/AxFacilitor.NMK
@@ -0,0 +1,131 @@
+###############################################################################
+## AxFacilitor.nmk
+##
+## Project: SM44 FACILITOR
+##
+## (c) 1995-2014 SG|facilitor bv
+##
+##
+## $Revision: 21949 $
+## $Id: AxFacilitor.NMK 21949 2014-06-19 08:34:19Z jgl $
+##
+## Beschrijving:
+##
+#
+##
+###############################################################################
+## REQUIRES: (in searchpath)
+##
+## NMAKE.EXE (requires NMAKE.EXE)
+## Microsoft (R) Program Maintainance Utility Version 1.11
+## CL.EXE
+## Microsoft (R) C Optimizing Compiler Version 6.00A
+## -for precompiling only-
+## WRAP.EXE (from 10.2.x) for Oracle, renamed to WRAP10.EXE
+##
+## SED.EXE
+## GNU sed version 4.2
+## Copyright (C) 2003 Free Software Foundation, Inc.
+##
+## All to be found in ..\MAKTOOLS
+##
+## Uses (external) defines: None
+##
+## Note: If new modules are added, all source have to be mentioned separately,
+## which is quite obvious from the current state of this file..
+##
+## Note: For each new schema version the from and to version must be
+## mentioned explicitly, which is a pity but it makes sense too
+##
+###############################################################################
+##
+## Steps performed are:
+## All files are preprocessed directly into their result, no temp files
+
+
+#############
+##
+## Directories
+##
+#############
+PROJSRC=.\SRC
+PROJEXE=.\EXE
+
+### SOURCE DEFINES (gets info from commandline) ###
+
+##
+## New style using schemanumbers
+##
+VERSION=01
+
+
+##
+## PATH DEFINES
+##
+MAK=.
+
+##
+## Source rootdirectory
+##
+MSRC=$(PROJSRC)
+EXE=$(PROJEXE)
+
+PRECOMP=$(MAKTOOLS)\CL
+PRECOMP_OPTIONS=/EP /D_VER=$(VERSION)
+CLEANUP1=$(MAKTOOLS)\sedclean.bat
+
+.SUFFIXES: .JS .BAT .XML
+
+##
+## RESULTS
+##
+all: $(EXE)\AxFacilitor.js \
+ $(EXE)\AxFacilitor.bat \
+ $(EXE)\AxFacilitor.xml
+
+
+##########################################################################
+####
+#### AX FACILITOR
+####
+##########################################################################
+
+$(EXE)\AxFacilitor.bat : $(MSRC)\AxFacilitor.bat
+ echo Copying AxFacilitor.bat
+ COPY $(MSRC)\AxFacilitor.bat $(EXE)\AxFacilitor.bat > nul
+
+$(EXE)\AxFacilitor.xml : $(MSRC)\AxFacilitor.xml
+ echo Copying AxFacilitor.xml
+ COPY $(MSRC)\AxFacilitor.xml $(EXE)\AxFacilitor.xml > nul
+
+$(EXE)\AxFacilitor.js: \
+ $(MAK)\AxFacilitor.nmk \
+ $(MSRC)\AxFacilitor.js \
+ $(MSRC)\F_PutSync.js \
+ $(MSRC)\F_GetSuppliers.js \
+ $(MSRC)\A_GetOpdrachten.js \
+ $(MSRC)\T_GetOpdrachten.js \
+ $(MSRC)\F_PutOpdrachten.js \
+ $(MSRC)\A_SetSupplierText.js \
+ $(MSRC)\T_SetSupplierText.js \
+ $(MSRC)\F_GetOpdrachtenAfgemeld.js \
+ $(MSRC)\A_CompleteServiceTask.js \
+ $(MSRC)\T_CompleteServiceTask.js \
+ $(MSRC)\F_GetOpdrachtenGepland.js \
+ $(MSRC)\A_PlanServiceTask.js \
+ $(MSRC)\T_PlanServiceTask.js \
+ $(MSRC)\F_GetOpdrachtenAcceptedRefused.js \
+ $(MSRC)\A_RefuseServiceTask.js \
+ $(MSRC)\A_AcceptServiceTask.js \
+ $(MSRC)\T_AcceptServiceTask.js \
+ $(MSRC)\F_GetOpdrachtenOpmerking.js \
+ $(MSRC)\A_GetReturnCodes.js \
+ $(MSRC)\F_PutReturnCodes.js \
+ $(MSRC)\F_GetFacturen.js \
+ $(MSRC)\Common.js
+ $(PRECOMP) $(PRECOMP_OPTIONS) $(MAK)\AxFacilitor.src>$*.js
+
+
+
+
+## END-OF-FILE
diff --git a/ax/AxFacilitor.SRC b/ax/AxFacilitor.SRC
new file mode 100644
index 0000000..c88e16d
--- /dev/null
+++ b/ax/AxFacilitor.SRC
@@ -0,0 +1,30 @@
+//-- Copyright 2014 SG|facilitor bv.
+//-- All rights reserved!
+/*
+ * $Revision: 19961 $
+ * $Id: $
+ */
+
+#include "SRC\Common.js"
+#include "SRC\F_PutSync.js"
+#include "SRC\F_GetSuppliers.js"
+#include "SRC\A_GetOpdrachten.js"
+#include "SRC\T_GetOpdrachten.js"
+#include "SRC\F_PutOpdrachten.js"
+#include "SRC\A_SetSupplierText.js"
+#include "SRC\T_SetSupplierText.js"
+#include "SRC\F_GetOpdrachtenAfgemeld.js"
+#include "SRC\A_CompleteServiceTask.js"
+#include "SRC\T_CompleteServiceTask.js"
+#include "SRC\F_GetOpdrachtenGepland.js"
+#include "SRC\A_PlanServiceTask.js"
+#include "SRC\T_PlanServiceTask.js"
+#include "SRC\F_GetOpdrachtenAcceptedRefused.js"
+#include "SRC\A_RefuseServiceTask.js"
+#include "SRC\A_AcceptServiceTask.js"
+#include "SRC\T_AcceptServiceTask.js"
+#include "SRC\F_GetOpdrachtenOpmerking.js"
+#include "SRC\A_GetReturnCodes.js"
+#include "SRC\F_PutReturnCodes.js"
+#include "SRC\F_GetFacturen.js"
+#include "SRC\AxFacilitor.js"
diff --git a/ax/M.BAT b/ax/M.BAT
new file mode 100644
index 0000000..6614eea
--- /dev/null
+++ b/ax/M.BAT
@@ -0,0 +1,14 @@
+@echo off
+echo Making Ax-Facilitor
+
+SET MAKTOOLS=z:\Project\FACILITOR\Tools\MAKTOOLS
+
+SET INCLUDE=.
+%MAKTOOLS%\nmake /nologo /f AxFacilitor.nmk
+
+
+@echo Done... (check process output above)
+IF x%1==xNOWAIT GOTO DONE
+
+pause
+:DONE
\ No newline at end of file
diff --git a/ax/SRC/A_AcceptServiceTask.js b/ax/SRC/A_AcceptServiceTask.js
new file mode 100644
index 0000000..9d7fd25
--- /dev/null
+++ b/ax/SRC/A_AcceptServiceTask.js
@@ -0,0 +1,32 @@
+// --------------------------------------------------------------------------------------
+// A_AcceptServiceTask.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+
+function A_AcceptServiceTask(v_company_id, v_taskId)
+{
+var v_API = "acceptServiceTask";
+var v_req = ""
++ " " + v_company_id + ""
++ " " + v_taskId + ""
++ " ";
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+if (v_type == 1 && v_resp != "")
+ {
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(v_resp); // responseText geeft encoding problemen!
+ oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+ oStream.Close();
+
+ }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/A_CompleteServiceTask.js b/ax/SRC/A_CompleteServiceTask.js
new file mode 100644
index 0000000..5b81117
--- /dev/null
+++ b/ax/SRC/A_CompleteServiceTask.js
@@ -0,0 +1,34 @@
+// --------------------------------------------------------------------------------------
+// A_CompleteServiceTask.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+
+function A_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete)
+{
+
+var v_API = "completeServiceTask";
+var v_req = ""
++ " " + v_company_id + ""
++ " " + v_taskId + ""
++ " " + v_dateComplete + ""
++ " ";
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+if (v_type == 1 && v_resp != "")
+ {
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(v_resp); // responseText geeft encoding problemen!
+ oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+ oStream.Close();
+
+ }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/A_GetOpdrachten.js b/ax/SRC/A_GetOpdrachten.js
new file mode 100644
index 0000000..a0f21bb
--- /dev/null
+++ b/ax/SRC/A_GetOpdrachten.js
@@ -0,0 +1,61 @@
+// --------------------------------------------------------------------------------------
+// A_GetOpdrachten.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+function A_GetOpdrachten()
+{
+ var v_status_code = "o"; // open
+ var l_currentTime = new Date();
+ // l_aantal_dagen staat default/normaal op 1 (voor gisteren), dus alle opdrachten vanaf gisteren. Voor testdoeleinden kan dit wat opgerekt worden...
+ // var l_aantal_dagen = 1;
+ var l_aantal_dagen = Read_Ini_Setting("ax","opdr_past_days");
+ var l_yesterday = new Date((new Date()).valueOf() - l_aantal_dagen*1000*60*60*24);
+ var v_datum_vanaf = jsdatextoxml(l_yesterday);
+ var v_datum_tm = jsdatextoxml(l_currentTime);
+
+ var v_xml_opdrachten;
+
+ // Haal de aannemers (feitelijk de AX-aannemer-id's) uit Facilitor die geregistreerd zijn voor het aannemersportaal.
+ // Het aannemer-id van AX wordt uit Facilitor uitgelezen, en per aannemer wordt de webservice om de opdrachten van die aannemer op te halen, aangeroepen...
+ l_suppl_array = F_GetSuppliers();
+ for (var i = 0; i < l_suppl_array.length; i++){
+ v_supplier_id = l_suppl_array[i];
+
+ // Ophalen van de opdrachten voor aannemer 'v_supplier_id' vanaf (default) gisteren tot en met nu.
+ v_xml_opdrachten = A_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm);
+
+ // Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor....
+ api_F_PutOpdrachten(v_xml_opdrachten, "AX_OPDRACHTEN");
+ }
+}
+
+
+
+function A_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm)
+{
+
+var v_API = "GetSupplierTasksSpec";
+var v_req = ""
++ " " + v_supplier_id + ""
++ " " + v_status_code + ""
++ " " + v_datum_vanaf + ""
++ " " + v_datum_tm + ""
++ " ";
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+//if (v_type == 1 && v_resp != "")
+// {
+// oStream = new ActiveXObject("ADODB.Stream");
+// oStream.Open();
+// oStream.Type = 1; // adTypeBinary
+// oStream.Write(v_resp); // responseText geeft encoding problemen!
+// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+// oStream.Close();
+// }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/A_GetReturnCodes.js b/ax/SRC/A_GetReturnCodes.js
new file mode 100644
index 0000000..4f6ecda
--- /dev/null
+++ b/ax/SRC/A_GetReturnCodes.js
@@ -0,0 +1,82 @@
+// --------------------------------------------------------------------------------------
+// A_GetReturnCodes.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+function A_GetReturnCodes()
+{
+
+ var v_arr_company_id = [1];
+ var v_company_id;
+ var v_xml_weiger_codes;
+
+ // Haal de returncodes van de weigerteksten uit AX voor elke companyid.
+
+ for (var i = 0; i < v_arr_company_id.length; i++){
+ v_company_id = v_arr_company_id[i];
+
+ // Ophalen van de opdrachten voor aannemer 'v_supplier_id' vanaf (default) gisteren tot en met nu.
+ v_xml_returncodes = A_GetReturnCodes_van_Company(v_company_id);
+
+ // Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor....
+ F_PutReturnCodes(v_xml_returncodes);
+ }
+}
+
+
+
+/*
+
+
+
+
+ Besteld
+ Materialen besteld (vervolgbon op zelfde melding)
+
+
+ Materiaal
+ Materiaal gehaald, factuur volgt
+
+
+ Niet thuis
+ Bewoner niet thuis ondanks afspraak
+
+
+ Vervolg
+ Vervolgafspraak maken op zelfde melding
+
+
+ Wachten
+ Wacht op bestelde materialen
+
+
+
+
+*/
+
+
+function A_GetReturnCodes_van_Company(v_company_id)
+{
+
+var v_API = "getReturnCodes";
+var v_req = ""
++ " " + v_company_id + ""
++ " ";
+var v_type = 0;
+
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+//if (v_type == 1 && v_resp != "")
+// {
+// oStream = new ActiveXObject("ADODB.Stream");
+// oStream.Open();
+// oStream.Type = 1; // adTypeBinary
+// oStream.Write(v_resp); // responseText geeft encoding problemen!
+// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+// oStream.Close();
+// }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/A_PlanServiceTask.js b/ax/SRC/A_PlanServiceTask.js
new file mode 100644
index 0000000..86dc7ca
--- /dev/null
+++ b/ax/SRC/A_PlanServiceTask.js
@@ -0,0 +1,34 @@
+// --------------------------------------------------------------------------------------
+// A_PlanServiceTask.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+
+function A_PlanServiceTask(v_company_id, v_taskId, v_plandate)
+{
+var v_API = "planServiceTask";
+var v_req = ""
++ " " + v_company_id + ""
++ " " + v_taskId + ""
++ " " + v_plandate + ""
++ " ";
+
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+if (v_type == 1 && v_resp != "")
+ {
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(v_resp); // responseText geeft encoding problemen!
+ oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+ oStream.Close();
+
+ }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/A_RefuseServiceTask.js b/ax/SRC/A_RefuseServiceTask.js
new file mode 100644
index 0000000..99ea921
--- /dev/null
+++ b/ax/SRC/A_RefuseServiceTask.js
@@ -0,0 +1,44 @@
+// --------------------------------------------------------------------------------------
+// A_RefuseServiceTask.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+
+function A_RefuseServiceTask(v_company_id, v_taskId, v_resultCodeId)
+{
+var v_API = "refuseServiceTask";
+var v_req = ""
++ " " + v_company_id + ""
++ " " + v_taskId + ""
++ " " + v_resultCodeId + ""
++ " ";
+
+
+/*
+
+
+ 1
+ MLD00004536-01
+ Niet thuis
+
+
+*/
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+if (v_type == 1 && v_resp != "")
+ {
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(v_resp); // responseText geeft encoding problemen!
+ oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+ oStream.Close();
+
+ }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/A_SetSupplierText.js b/ax/SRC/A_SetSupplierText.js
new file mode 100644
index 0000000..7c6b48a
--- /dev/null
+++ b/ax/SRC/A_SetSupplierText.js
@@ -0,0 +1,35 @@
+// --------------------------------------------------------------------------------------
+// A_SetSupplierText.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+
+function A_SetSupplierText(v_company_id, v_taskId, v_extraInfo)
+{
+
+var v_API = "setSupplierText";
+var v_req = ""
++ " " + v_company_id + ""
++ " " + v_taskId + ""
++ " " + v_extraInfo + ""
++ " ";
+
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+if (v_type == 1 && v_resp != "")
+ {
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(v_resp); // responseText geeft encoding problemen!
+ oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+ oStream.Close();
+
+ }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/AxFacilitor.bat b/ax/SRC/AxFacilitor.bat
new file mode 100644
index 0000000..a4a9be6
--- /dev/null
+++ b/ax/SRC/AxFacilitor.bat
@@ -0,0 +1,16 @@
+REM --------------------------------------------------------------------------------------
+REM AxFacilitor.bat
+REM Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+REM Written by MB (2014)
+REM
+REM MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+REM --------------------------------------------------------------------------------------
+REM Scheduled Connector/Adapter voor alle communcatie van Ax -> Facilitor en van Facilitor -> Ax
+REM Staat elke nn minuten gescheduled en wisselt informatie uit tussen Ax e en FACILITOR
+
+REM 1. Connector/Adapter Ax -> FACILITOR
+REM Param 1 = URL Webservice AX
+REM Param 2 = Root-URL Webservice FCLT
+REM parameters staan voortaan in AxFacilitor.xml
+cscript /E:javascript AxFacilitor.js
+
diff --git a/ax/SRC/AxFacilitor.js b/ax/SRC/AxFacilitor.js
new file mode 100644
index 0000000..843c770
--- /dev/null
+++ b/ax/SRC/AxFacilitor.js
@@ -0,0 +1,185 @@
+// --------------------------------------------------------------------------------------
+// AxFacilitor.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+// Scheduled Connector/Adapter voor alle communcatie van Ax -> Facilitor
+// Staat elke nn minuten gescheduled
+
+//var proxy = "127.0.0.1:8888"; // Voor debugging met Fiddler
+
+function FCLT_Sync_START(){
+ F_PutSync(0);
+}
+function FCLT_Sync_END(){
+ F_PutSync(1);
+}
+
+// ----------------------------- AX functies -----------------------------------------
+function AX_2_FCLT_ReturnCodes(){
+ A_GetReturnCodes();
+}
+
+function AX_2_FCLT_Opdrachten(){
+ A_GetOpdrachten();
+}
+
+function FCLT_2_AX_OpmerkingOpdrachten(){
+ F_GetOpdrachten_Opmerking();
+}
+
+function FCLT_2_AX_AfgemeldeOpdrachten(){
+ F_GetOpdrachten_Afgemeld();
+}
+
+function FCLT_2_AX_GeplandeOpdrachten(){
+ F_GetOpdrachten_Gepland();
+}
+
+function FCLT_2_AX_AcceptRefuseOpdracht(){
+ F_GetOpdrachten_AcceptRefuse();
+}
+
+// ----------------------------- Tobias functies -----------------------------------------
+function Tobias_2_FCLT_Opdrachten(){
+ T_GetOpdrachten();
+}
+
+function FCLT_2_Tobias_OpmerkingOpdrachten(){
+ F_GetOpdrachten_Opmerking();
+}
+
+function FCLT_2_Tobias_AcceptRefuseOpdracht(){
+ F_GetOpdrachten_AcceptRefuse();
+}
+
+function FCLT_2_Tobias_GeplandeOpdrachten(){
+ F_GetOpdrachten_Gepland();
+}
+
+function FCLT_2_Tobias_AfgemeldeOpdrachten(){
+ F_GetOpdrachten_Afgemeld();
+}
+
+// ----------------------------- Xtractor functies -----------------------------------------
+function FCLT_2_AX_Facturen(){
+ F_GetFacturen();
+}
+
+
+
+
+function Ax_2_FACILITOR()
+{
+
+
+ __Log("*** START AX --> FCLT : Weiger returncodes/teksten uit AX en naar Facilitor ***");
+ AX_2_FCLT_ReturnCodes();
+ __Log("*** END");
+
+ __Log("*** START AX --> FCLT : Opdrachten uit AX en naar Facilitor ***");
+ AX_2_FCLT_Opdrachten();
+ __Log("*** END");
+
+ __Log("*** START FCLT --> AX : Opmerking opdrachten uit Facilitor naar AX ***");
+ FCLT_2_AX_OpmerkingOpdrachten();
+ __Log("*** END");
+
+ __Log("*** START FCLT --> AX : Geaccepteerde/geweigerde opdrachten uit Facilitor naar AX ***");
+ FCLT_2_AX_AcceptRefuseOpdracht();
+ __Log("*** END");
+
+ __Log("*** START FCLT --> AX : Geplande opdrachten uit Facilitor naar AX ***");
+ FCLT_2_AX_GeplandeOpdrachten();
+ __Log("*** END");
+
+ __Log("*** START FCLT --> AX : Afgemelde opdrachten uit Facilitor naar AX ***");
+ FCLT_2_AX_AfgemeldeOpdrachten();
+ __Log("*** END");
+
+}
+
+function Tobias_2_FACILITOR()
+{
+ // "*** START Tobias --> FCLT : Weiger returncodes/teksten uit Tobias ZIJN ER NIET (i.t.t. AX ***");
+
+ __Log("*** START Tobias --> FCLT : Opdrachten uit Tobias en naar Facilitor ***");
+ Tobias_2_FCLT_Opdrachten();
+ __Log("*** END");
+
+ __Log("*** START FCLT --> Tobias : Opmerking opdrachten uit Facilitor naar Tobias ***");
+ FCLT_2_Tobias_OpmerkingOpdrachten();
+ __Log("*** END");
+
+ __Log("*** START FCLT --> Tobias : Geaccepteerde/geweigerde opdrachten uit Facilitor naar Tobias ***");
+ FCLT_2_Tobias_AcceptRefuseOpdracht();
+ __Log("*** END");
+
+
+ __Log("*** START FCLT --> Tobias : Geplande opdrachten uit Facilitor naar Tobias ***");
+ FCLT_2_Tobias_GeplandeOpdrachten();
+ __Log("*** END");
+
+
+ __Log("*** START FCLT --> Tobias : Afgemelde opdrachten uit Facilitor naar Tobias ***");
+ FCLT_2_Tobias_AfgemeldeOpdrachten();
+ __Log("*** END");
+
+}
+
+function FACILITOR_2_Xtractor()
+{
+ __Log("*** START FCLT --> AX / Tobias/AX : Facturen met status INGEVOERD + AKKOORD uit Facilitor naar AX of Tobias/AX ***");
+ FCLT_2_AX_Facturen();
+ __Log("*** END");
+}
+
+//-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+// Filepointer voor Logfile
+var fso = new ActiveXObject("Scripting.FileSystemObject");
+
+
+var G_log_level = Read_Ini_Setting("common","logging");
+var G_ax_url = Read_Ini_Setting("ax","url");
+var G_tobias_url = Read_Ini_Setting("tobias","url");
+var G_fclt_url = Read_Ini_Setting("facilitor","url");
+var G_fclt_apikey = Read_Ini_Setting("facilitor","apikey");
+var G_ax_xtractorfolder = Read_Ini_Setting("xtractor","folder");
+
+
+__Log("************************************************** START AxFacilitor CONNECTOR ***********************************************");
+FCLT_Sync_START();
+
+if (AX_or_Tobias() == "A")
+{
+ __Log("AX");
+ Ax_2_FACILITOR();
+}
+if (AX_or_Tobias() == "T")
+{
+ __Log("TOBIAS");
+ Tobias_2_FACILITOR();
+}
+
+//if (G_ax_url != "")
+//{
+// __Log("AX");
+// Ax_2_FACILITOR();
+//}
+//if (G_tobias_url != "")
+//{
+// __Log("TOBIAS");
+// Tobias_2_FACILITOR();
+//}
+if (G_ax_xtractorfolder != "")
+{
+ __Log("XTRACTOR");
+ FACILITOR_2_Xtractor();
+}
+
+FCLT_Sync_END();
+
+__Log("************************************************** END AxFacilitor CONNECTOR ***********************************************");
+__Log("");
diff --git a/ax/SRC/AxFacilitor.xml b/ax/SRC/AxFacilitor.xml
new file mode 100644
index 0000000..94da6f8
--- /dev/null
+++ b/ax/SRC/AxFacilitor.xml
@@ -0,0 +1,32 @@
+
+
+
+
+ 0
+
+
+
+ http://so-connect-t/TobiasConnect2_T/TobiasConnect.asmx
+ Appserver://sg-iwtobias:5162/asAannemer_O
+ Interfaces\External\Aannemer_1.20.2\
+
+ 0
+
+ 1
+
+
+
+ http://so-connect-t/SupplierService/SupplierService.svc/soapUI
+
+ 1
+
+
+ c:\xtractor\xml\
+
+
+
+ https://sglp.facilitorlabs.nl/
+
+ ALXoEFzNuIiNlMmirQZIxYUDAOCxesWM
+
+
\ No newline at end of file
diff --git a/ax/SRC/Common.js b/ax/SRC/Common.js
new file mode 100644
index 0000000..bed48de
--- /dev/null
+++ b/ax/SRC/Common.js
@@ -0,0 +1,410 @@
+// --------------------------------------------------------------------------------------
+// Common.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+//var proxy = "127.0.0.1:8888"; // Voor debugging met Fiddler
+
+
+// Helper functies
+// 2013-11-13T07:00:00
+
+function AX_or_Tobias(){
+ if (G_ax_url != "") return "A";
+ else {if (G_tobias_url != "") return "T";
+ else return "";
+ }
+}
+
+// v_type = 0 (JSon Plain text is returned)
+// v_type = 1 (XMLresponse is returned)
+function apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelope)
+{
+ __Log("apiFCLT v_API: " + v_API,1);
+ __Log("apiFCLT v_APIKEY: " + v_APIKEY,1);
+ __Log("apiFCLT v_type: " + v_type,1);
+ __Log("apiFCLT v_soap_envelope: " + v_soap_envelope,1);
+
+ // var xmlhttp = new ActiveXObject("WinHTTP.WinHTTPRequest.5.1");
+ var xmlhttp = new ActiveXObject("MSXML2.ServerXMLHTTP.6.0");
+
+ SXH_PROXY_SET_PROXY = 2;
+ if (typeof proxy != "undefined" && proxy)
+ xmlhttp.setProxy(SXH_PROXY_SET_PROXY, proxy);
+
+ var xmlUrl = G_fclt_url + "?API=" + v_API + "&APIKEY=" + v_APIKEY;
+
+ xmlhttp.open("POST", xmlUrl, false);
+
+ xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8")
+
+ var msg = "" + v_req;
+ if (v_soap_envelope == 1){
+ msg = ""
+ + ""
+ + " "
+ + v_req
+ + " "
+ + "";
+ }
+
+
+ if (msg != "")
+ {
+ xmlhttp.send(msg);
+ var txt = "";
+ if (xmlhttp.status == 200)
+ {
+ try
+ {
+ if (v_type == 1){
+ var result_data = xmlhttp.responseXML;
+ __Log("XML :" + result_data.xml, 2);
+ if (G_log_level == 3){
+ var l_xml = xmlhttp.responseBody;
+ WriteXML2File("Log/", v_API, "xml" , l_xml);
+ }
+ return result_data;
+ }
+ else
+ {
+ var txt = xmlhttp.responseText || "{}";
+ var result_data = eval("(" + txt + ")");
+ __Log("XML :" + result_data,2);
+ return result_data;
+ }
+ }
+ catch (e)
+ {
+ // Waarschijnlijk http-error terug gekregen
+ __Log("apiFCLT failed: " + e.description,1);
+ __Log(txt,1);
+ return "";
+ }
+ }
+ else
+ {
+ __Log("apiFCLT - HTTP <> 200",1);
+ __Log("Status: "+xmlhttp.status,1);
+ __Log(xmlhttp.responseText,1);
+ return "";
+ }
+ }
+}
+
+function apiAX (v_API, v_req, v_type)
+{
+ var l_result;
+ if (AX_or_Tobias() == "A")
+ {
+ l_result = api2AX(G_ax_url, v_API, v_req, v_type);
+ }
+
+ if (AX_or_Tobias() == "T")
+ {
+ l_result = api2Tobias(G_tobias_url, v_API, v_req, v_type);
+ }
+
+ //if (G_ax_url != "")
+ //{
+ // l_result = api2AX(G_ax_url, v_API, v_req, v_type);
+ //}
+ //if (G_tobias_url != "")
+ //{
+ // l_result = api2Tobias(G_tobias_url, v_API, v_req, v_type);
+ //}
+ return l_result;
+}
+
+function api2AX (v_Url, v_API, v_req, v_type)
+{
+
+
+ __Log("apiAX v_API: " + v_API,1);
+ __Log("apiAX v_type: " + v_type,1);
+ __Log("apiAX v_req: " + v_req,1);
+
+
+ var xmlhttp = new ActiveXObject("WinHTTP.WinHTTPRequest.5.1");
+ SXH_PROXY_SET_PROXY = 2;
+ if (typeof proxy != "undefined" && proxy)
+ xmlhttp.setProxy(SXH_PROXY_SET_PROXY, proxy);
+
+ xmlhttp.open("POST", v_Url, false);
+
+ xmlhttp.setRequestHeader("Content-Type", "application/soap+xml; charset=utf-8")
+
+ var v_msg = ""
+ + ""
+ + ""
+ + "http://tempuri.org/ISupplierService/" + v_API + ""
+ + ""+ v_Url + ""
+ + ""
+ + ""
+ + v_req
+ + ""
+ + "";
+
+ xmlhttp.send(v_msg);
+
+ if (xmlhttp.status == 200)
+ { var txt = "";
+ try
+ {
+ switch (v_type)
+ {
+ case 0:
+ var txt = xmlhttp.responseText;
+ break;
+ case 1:
+ var txt = xmlhttp.responseBody;
+ break;
+ }
+ //var txt = xmlhttp.responseText || "{}";
+ //var txt = xmlhttp.responseBody;
+ ////var result_data = eval("(" + txt + ")");
+ ////return result_data;
+ __Log("XML :" + txt,2);
+ return txt;
+ }
+ catch (e)
+ {
+ // Waarschijnlijk http-error terug gekregen
+ __Log("apiAX failed: " + e.description,1);
+ __Log(txt,1);
+ return {};
+ }
+ }
+ else
+ {
+ __Log("apiAX - HTTP <> 200",1);
+ __Log("URL: " + v_Url,1);
+ __Log("Request: " + v_req,1);
+ __Log("Status: "+xmlhttp.status,1);
+ __Log(xmlhttp.responseText,1);
+ return ""
+ }
+}
+
+
+function api2Tobias (v_Url, v_API, v_req, v_type)
+{
+
+
+ __Log("apiTobias v_API: " + v_API,1);
+ __Log("apiTobias v_type: " + v_type,1);
+ __Log("apiTobias v_req: " + v_req,1);
+
+
+ var xmlhttp = new ActiveXObject("WinHTTP.WinHTTPRequest.5.1");
+ SXH_PROXY_SET_PROXY = 2;
+ if (typeof proxy != "undefined" && proxy)
+ xmlhttp.setProxy(SXH_PROXY_SET_PROXY, proxy);
+
+ xmlhttp.open("POST", v_Url, false);
+
+ xmlhttp.setRequestHeader("Content-Type", "text/xml;charset=UTF-8");
+
+ var l_tobias_appserver = Read_Ini_Setting("tobias","appserver");
+ var l_methodlocation = Read_Ini_Setting("tobias","methodlocation");
+
+ var v_msg = ""
+ + ""
+ + ""
+ + ""
+ + ""
+ + " "
+ + " " + v_API + ""
+ + " "
+ + " "
+ + " "
+ + " " + l_tobias_appserver + ""
+ + " "
+ + " " + l_methodlocation + ""
+ + " "
+ + " "
+ + v_req
+ + " "
+ + " "
+ + ""
+ + ""
+ + " "
+
+
+ xmlhttp.send(v_msg);
+
+ if (xmlhttp.status == 200)
+ { var txt = "";
+ try
+ {
+ switch (v_type)
+ {
+ case 0:
+ var txt = xmlhttp.responseText;
+ break;
+ case 1:
+ var txt = xmlhttp.responseBody;
+ break;
+ }
+ //var txt = xmlhttp.responseText || "{}";
+ //var txt = xmlhttp.responseBody;
+ ////var result_data = eval("(" + txt + ")");
+ ////return result_data;
+ __Log("XML :" + txt,2);
+ return txt;
+ }
+ catch (e)
+ {
+ // Waarschijnlijk http-error terug gekregen
+ __Log("apiAX failed: " + e.description,1);
+ __Log(txt,1);
+ return {};
+ }
+ }
+ else
+ {
+ __Log("apiAX - HTTP <> 200",1);
+ __Log("URL: " + v_Url,1);
+ __Log("Request: " + v_req,1);
+ __Log("Status: "+xmlhttp.status,1);
+ __Log(xmlhttp.responseText,1);
+ return ""
+ }
+}
+
+
+function WriteXML2File(p_path, p_filenaam, p_extension, p_xml) {
+
+ v_timestamp = displayTimeStamp();
+ var xml_filename = p_path + p_filenaam + v_timestamp + "." + p_extension;
+
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(p_xml); // responseText geeft encoding problemen!
+ oStream.SaveToFile (xml_filename, 2); // adSaveCreateOverWrite
+ oStream.Close();
+}
+
+function WriteText2File(p_path, p_filenaam, p_extension, p_txt) {
+ __Log("WriteText2File - p_path: " + p_path,1);
+ __Log("WriteText2File - p_filenaam: " + p_filenaam,1);
+ __Log("WriteText2File - p_extension: " + p_extension,1);
+ __Log("WriteText2File - p_txt: " + p_txt,1);
+ v_timestamp = displayTimeStamp();
+ var xml_filename = p_path + p_filenaam + v_timestamp + "." + p_extension;
+
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ //oStream.Type = 1; // adTypeBinary
+ oStream.WriteText(p_txt); // responseText geeft encoding problemen!
+ oStream.SaveToFile (xml_filename, 2); // adSaveCreateOverWrite
+ oStream.Close();
+}
+
+
+
+function displayTimeStamp() {
+ var str = "";
+
+ var currentTime = new Date();
+ var currentTime = new Date();
+
+ var jaar = currentTime.getFullYear();
+ var maand = currentTime.getMonth();
+ var dag = currentTime.getDate();
+ var hours = currentTime.getHours();
+ var minutes = currentTime.getMinutes();
+ var seconds = currentTime.getSeconds();
+
+ maand = maand + 1;
+ if (maand < 10) {
+ maand = "0" + maand
+ }
+ if (dag < 10) {
+ dag = "0" + dag
+ }
+ if (minutes < 10) {
+ minutes = "0" + minutes
+ }
+ if (seconds < 10) {
+ seconds = "0" + seconds
+ }
+ str += jaar + "-" + maand + "-" + dag + "T" + hours + "_" + minutes + "_" + seconds;
+
+ return str;
+}
+
+
+function xmltojsdate(datestamp)
+{
+ var pattern = /^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)$/;
+ var pieces = datestamp.match(pattern);
+ if(!pieces || pieces.length < 6)
+ return null;
+
+ return new Date(pieces[1], pieces[2]-1, pieces[3], pieces[4], pieces[5], pieces[6]);
+}
+function jsdatextoxml(dt)
+{
+ return toDateString(dt) + "T" + toTimeString(dt);
+}
+function jsdatetosqls(jsDate)
+{
+ return jsDate.getVarDate();
+}
+function padout(number) { return (number < 10) ? "0" + number : String(number); }
+
+// Noot: altijd jaar vooraan, goed voor logfiles, niet bedoeld voor presentatie
+function toDateString(jsDate)
+{
+ return padout(jsDate.getFullYear()) + "-" + padout(jsDate.getMonth() + 1) + "-" + padout(jsDate.getDate());
+}
+
+function toTimeString(jsDate)
+{
+ return padout(jsDate.getHours()) + ":" + padout(jsDate.getMinutes()) + ":" + padout(jsDate.getSeconds());
+}
+function __Log(s, level)
+{ if (level == undefined) level=0;
+ if (G_log_level > 0 || level==0){
+ if (level <= G_log_level){
+ WScript.Echo(s);
+ var dt = new Date;
+ var logname = "Log/AxFacilitor_" + padout(dt.getFullYear()) + "_" + padout(dt.getMonth() + 1) + ".log";
+ var flog = fso.OpenTextFile(logname, 8 /* ForAppending */, true /* create */);
+ var tms = toDateString(new Date) + " " + toTimeString(new Date);
+ flog.WriteLine(tms + " " +s);
+ flog.Close();
+ }
+ }
+}
+
+// Values v_section = ax, facilitor of common.
+// Values v_ini -> allerlei
+function Read_Ini_Setting(v_section, v_ini){
+ var v_result = "";
+ try{
+ var l_xml_file = "AxFacilitor.xml";
+
+ l_xml=new ActiveXObject("Microsoft.XMLDOM");
+ l_xml.async=false;
+ l_xml.load(l_xml_file);
+
+ var l_node = "//ini/" + v_section + "/" + v_ini;
+ var v_result = l_xml.selectSingleNode(l_node).text;
+ return v_result;
+ }
+ catch (e)
+ {
+ __Log("Read_Ini_Setting failed: " + e.description,1);
+ return v_result;
+ }
+}
+
+//---------------------------------------------------------------------------------------------------------------------------------
diff --git a/ax/SRC/F_GetFacturen.js b/ax/SRC/F_GetFacturen.js
new file mode 100644
index 0000000..188099a
--- /dev/null
+++ b/ax/SRC/F_GetFacturen.js
@@ -0,0 +1,38 @@
+// --------------------------------------------------------------------------------------
+// F_GetFacturen.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function F_GetFacturen()
+{
+
+ var v_API = "FACT4AX_XTRACTOR";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = "" + ""
+ var v_type = 1; // xml
+ var v_soap_envelop = 1; //soap-envelop eromheen
+
+ var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+ __Log("F_GetFacturen: " + v_resp.text,1);
+
+ // SPlitsen van XML's...
+ var i = 1;
+ var strQuery = "//batch/document[" + i + "]";
+ l_deelxml = v_resp.selectSingleNode(strQuery);
+ while (l_deelxml)
+ {
+ var XMLResult = ""
+ +""
+ + l_deelxml.xml
+ + "";
+ WriteText2File(G_ax_xtractorfolder, "xtractor[" + i + "]" , "xml" , XMLResult);
+ i = i + 1;
+ var strQuery = "//batch/document[" + i + "]";
+ l_deelxml = v_resp.selectSingleNode(strQuery);
+ }
+}
diff --git a/ax/SRC/F_GetOpdrachtenAcceptedRefused.js b/ax/SRC/F_GetOpdrachtenAcceptedRefused.js
new file mode 100644
index 0000000..fada090
--- /dev/null
+++ b/ax/SRC/F_GetOpdrachtenAcceptedRefused.js
@@ -0,0 +1,75 @@
+// --------------------------------------------------------------------------------------
+// F_GetOpdrachtenAcceptedRefused.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function F_GetOpdrachten_AcceptRefuse()
+{
+
+ var v_API = "ACCEPT_REFUSED_OPDR_4AX";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = "" + ""
+ var v_type = 1; // xml
+ var v_soap_envelop = 1; //soap-envelop eromheen
+
+ var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+ var l_node;
+ __Log("F_GetOpdrachten_AcceptRefuse: " + v_resp.text,1);
+
+ // Uitlezen van XML's...
+ var i = 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ var l_deelxml = v_resp.selectSingleNode(strQuery);
+ while (l_deelxml)
+ {
+ l_node = strQuery + "/ax_company_id";
+ var v_company_id = v_resp.selectSingleNode(l_node).text;
+
+ l_node = strQuery + "/mld_opdr_ordernr";
+ var v_taskId = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/mld_opdr_opmerking";
+ var v_extraInfo = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/fac_tracking_datum";
+ var v_date = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/fac_srtnotificatie_code";
+ var v_srtnotificatie_code = v_resp.selectSingleNode(l_node).text;
+
+
+ __Log("v_company_id: " + v_company_id,1);
+ __Log("v_taskId: " + v_taskId,1);
+ __Log("v_extraInfo: " + v_extraInfo,1);
+ __Log("v_date: " + v_date,1);
+ __Log("v_srtnotificatie_code: " + v_srtnotificatie_code,1);
+
+
+ if (v_srtnotificatie_code == 'ORDACP') {
+ if (AX_or_Tobias() == "A") {
+ A_AcceptServiceTask (v_company_id, v_taskId);
+ }
+ if (AX_or_Tobias() == "T") {
+ T_AcceptServiceTask (v_company_id, v_taskId, "Ja");
+ }
+ }
+ if (v_srtnotificatie_code == 'ORDCAN') {
+ if (AX_or_Tobias() == "A") {
+ A_RefuseServiceTask (v_company_id, v_taskId, v_extraInfo);
+ }
+ if (AX_or_Tobias() == "T") {
+ T_AcceptServiceTask (v_company_id, v_taskId, "Nee");
+ }
+ }
+
+
+ i = i + 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ l_deelxml = v_resp.selectSingleNode(strQuery);
+ }
+}
diff --git a/ax/SRC/F_GetOpdrachtenAfgemeld.js b/ax/SRC/F_GetOpdrachtenAfgemeld.js
new file mode 100644
index 0000000..33d1728
--- /dev/null
+++ b/ax/SRC/F_GetOpdrachtenAfgemeld.js
@@ -0,0 +1,59 @@
+// --------------------------------------------------------------------------------------
+// F_GetOpdrachten_Afgemeld.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function F_GetOpdrachten_Afgemeld()
+{
+
+ var v_API = "AFGEMELDE_OPDR_4AX";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = "" + ""
+ var v_type = 1; // xml
+ var v_soap_envelop = 1; //soap-envelop eromheen
+
+ var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+ var l_node;
+
+ __Log("F_GetOpdrachten_Afgemeld: " + v_resp.text,1);
+
+ // Uitlezen van XML's...
+ var i = 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ var l_deelxml = v_resp.selectSingleNode(strQuery);
+ while (l_deelxml)
+ {
+ l_node = strQuery + "/ax_company_id";
+ var v_company_id = v_resp.selectSingleNode(l_node).text;
+
+ l_node = strQuery + "/mld_opdr_ordernr";
+ var v_taskId = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/mld_opdr_opmerking";
+ var v_extraInfo = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/fac_tracking_datum";
+ var v_dateComplete = v_resp.selectSingleNode(l_node).text;
+
+ __Log("v_company_id: " + v_company_id,1);
+ __Log("v_taskId: " + v_taskId,1);
+ __Log("v_extraInfo: " + v_extraInfo,1);
+ __Log("v_dateComplete: " + v_dateComplete,1);
+
+ if (AX_or_Tobias() == "A") {
+ A_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete);
+ }
+ if (AX_or_Tobias() == "T") {
+ T_CompleteServiceTask (v_company_id, v_taskId, v_dateComplete);
+ }
+
+ i = i + 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ l_deelxml = v_resp.selectSingleNode(strQuery);
+ }
+}
diff --git a/ax/SRC/F_GetOpdrachtenGepland.js b/ax/SRC/F_GetOpdrachtenGepland.js
new file mode 100644
index 0000000..0ea6c54
--- /dev/null
+++ b/ax/SRC/F_GetOpdrachtenGepland.js
@@ -0,0 +1,59 @@
+// --------------------------------------------------------------------------------------
+// F_GetOpdrachten_Gepland.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function F_GetOpdrachten_Gepland()
+{
+
+ var v_API = "GEPLANDE_OPDR_4AX";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = "" + ""
+ var v_type = 1; // xml
+ var v_soap_envelop = 1; //soap-envelop eromheen
+
+ var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+ var l_node;
+
+ __Log("F_GetOpdrachten_Gepland: " + v_resp.text,1);
+
+ // Uitlezen van XML's...
+ var i = 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ var l_deelxml = v_resp.selectSingleNode(strQuery);
+ while (l_deelxml)
+ {
+ l_node = strQuery + "/ax_company_id";
+ var v_company_id = v_resp.selectSingleNode(l_node).text;
+
+ l_node = strQuery + "/mld_opdr_ordernr";
+ var v_taskId = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/mld_opdr_opmerking";
+ var v_extraInfo = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/mld_opdr_plandatum";
+ var v_date = v_resp.selectSingleNode(l_node).text;
+
+ __Log("v_company_id: " + v_company_id,1);
+ __Log("v_taskId: " + v_taskId,1);
+ __Log("v_extraInfo: " + v_extraInfo,1);
+ __Log("v_date: " + v_date,1);
+
+ if (AX_or_Tobias() == "A") {
+ A_PlanServiceTask (v_company_id, v_taskId, v_date);
+ }
+ if (AX_or_Tobias() == "T") {
+ T_PlanServiceTask (v_company_id, v_taskId, v_date);
+ }
+
+ i = i + 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ l_deelxml = v_resp.selectSingleNode(strQuery);
+ }
+}
diff --git a/ax/SRC/F_GetOpdrachtenOpmerking.js b/ax/SRC/F_GetOpdrachtenOpmerking.js
new file mode 100644
index 0000000..c09f58e
--- /dev/null
+++ b/ax/SRC/F_GetOpdrachtenOpmerking.js
@@ -0,0 +1,56 @@
+// --------------------------------------------------------------------------------------
+// F_GetOpdrachten_Afgemeld.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function F_GetOpdrachten_Opmerking()
+{
+
+ var v_API = "OPMERKING_OPDR_4AX";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = "" + ""
+ var v_type = 1; // xml
+ var v_soap_envelop = 1; //soap-envelop eromheen
+
+ var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+ var l_node;
+
+ __Log("F_GetOpdrachten_Opmerking: " + v_resp.text,2);
+
+ // Uitlezen van XML's...
+ var i = 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ var l_deelxml = v_resp.selectSingleNode(strQuery);
+ while (l_deelxml)
+ {
+ l_node = strQuery + "/ax_company_id";
+ var v_company_id = v_resp.selectSingleNode(l_node).text;
+
+ l_node = strQuery + "/mld_opdr_ordernr";
+ var v_taskId = v_resp.selectSingleNode(l_node).text;
+
+ var l_node = strQuery + "/mld_opdr_opmerking";
+ var v_extraInfo = v_resp.selectSingleNode(l_node).text;
+
+ __Log("v_company_id: " + v_company_id,1);
+ __Log("v_taskId: " + v_taskId,1);
+ __Log("v_extraInfo: " + v_extraInfo,1);
+
+ if (AX_or_Tobias() == "A") {
+ A_SetSupplierText(v_company_id, v_taskId, v_extraInfo);
+ }
+ if (AX_or_Tobias() == "T") {
+ T_SetSupplierText(v_company_id, v_taskId, v_extraInfo);
+ }
+
+
+ i = i + 1;
+ var strQuery = "//xml/mld_ordr[" + i + "]";
+ l_deelxml = v_resp.selectSingleNode(strQuery);
+ }
+}
diff --git a/ax/SRC/F_GetSuppliers.js b/ax/SRC/F_GetSuppliers.js
new file mode 100644
index 0000000..2c52a2f
--- /dev/null
+++ b/ax/SRC/F_GetSuppliers.js
@@ -0,0 +1,43 @@
+// --------------------------------------------------------------------------------------
+// F_GetSuppliers.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function F_GetSuppliers()
+{
+
+ var v_API = "AANNEMERS4AX";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = "" + ""
+ var v_type = 1; // xml
+ var v_soap_envelop = 1; //soap-envelop eromheen
+
+ //Resultaat van deze functie: array van l_ax_vendAccountNum
+ var l_result = [];
+
+
+ var v_resp = apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+ __Log("F_GetSuppliers: " + v_resp.text,1);
+
+ // SPlitsen van XML's...
+ var i = 1;
+ var strQuery = "//xml/prs_bedrijf[" + i + "]";
+ var l_deelxml = v_resp.selectSingleNode(strQuery);
+ while (l_deelxml)
+ {
+ var l_node = strQuery + "/ax_vendAccountNum";
+ var l_ax_vendAccountNum = v_resp.selectSingleNode(l_node);
+ __Log("l_ax_vendAccountNum: " + l_ax_vendAccountNum.text,1);
+ l_result.push(l_ax_vendAccountNum.text);
+
+ i = i + 1;
+ var strQuery = "//xml/prs_bedrijf[" + i + "]";
+ l_deelxml = v_resp.selectSingleNode(strQuery);
+ }
+ return l_result;
+}
diff --git a/ax/SRC/F_PutOpdrachten.js b/ax/SRC/F_PutOpdrachten.js
new file mode 100644
index 0000000..a94a5a4
--- /dev/null
+++ b/ax/SRC/F_PutOpdrachten.js
@@ -0,0 +1,21 @@
+// --------------------------------------------------------------------------------------
+// F_GetSuppliers.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function api_F_PutOpdrachten(v_xml, v_API)
+{
+
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = v_xml;
+ var v_type = 1; // xml
+ var v_soap_envelop = 0;
+ __Log(v_req,2);
+
+ apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+}
diff --git a/ax/SRC/F_PutReturnCodes.js b/ax/SRC/F_PutReturnCodes.js
new file mode 100644
index 0000000..a9e24c2
--- /dev/null
+++ b/ax/SRC/F_PutReturnCodes.js
@@ -0,0 +1,22 @@
+// --------------------------------------------------------------------------------------
+// F_GetSuppliers.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// --------------------------------------------------------------------------------------
+
+
+function F_PutReturnCodes(v_xml)
+{
+
+ var v_API = "WEIGER_RETURNCODES";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = v_xml;
+ var v_type = 1; // xml
+ var v_soap_envelop = 0;
+ __Log(v_req,2);
+
+ apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+}
diff --git a/ax/SRC/F_PutSync.js b/ax/SRC/F_PutSync.js
new file mode 100644
index 0000000..ae51890
--- /dev/null
+++ b/ax/SRC/F_PutSync.js
@@ -0,0 +1,22 @@
+// --------------------------------------------------------------------------------------
+// F_PutSync.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+// MAREON Connector/Adapter Ax -> FACILITOR en Facilitor -> Ax
+// Registreert de start of einde van de totale synchronisatie alle gegevens.
+// --------------------------------------------------------------------------------------
+
+// v_mode = 0 of 1: 0 = start sync, 1 = einde sync
+function F_PutSync(v_mode)
+{
+ var v_API = "AX_SYNC";
+ var v_APIKEY = G_fclt_apikey;
+ var v_req = "" + v_mode + ""
+ var v_type = 1; // xml
+ var v_soap_envelop = 0;
+ __Log(v_req,2);
+
+ apiFCLT(v_API, v_APIKEY, v_req, v_type, v_soap_envelop);
+
+}
diff --git a/ax/SRC/T_AcceptServiceTask.js b/ax/SRC/T_AcceptServiceTask.js
new file mode 100644
index 0000000..e6659ab
--- /dev/null
+++ b/ax/SRC/T_AcceptServiceTask.js
@@ -0,0 +1,33 @@
+// --------------------------------------------------------------------------------------
+// T_AcceptServiceTask.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
+// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
+// v_ja_nee heeft waarde Ja (= geaccepteerd) of Nee (= geweigerd).
+function T_AcceptServiceTask(v_company_id, v_bonId, v_ja_nee)
+{
+var v_API = "SetBonAcceptatie";
+var v_req = "BonId=" + v_bonId + ""
+ + "BonStatus=" + "Acceptatie" + ""
+ + "Geaccepteerd=" + v_ja_nee + ""
+
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+//if (v_type == 1 && v_resp != "")
+// {
+// oStream = new ActiveXObject("ADODB.Stream");
+// oStream.Open();
+// oStream.Type = 1; // adTypeBinary
+// oStream.Write(v_resp); // responseText geeft encoding problemen!
+// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+// oStream.Close();
+// }
+return v_resp;
+}
diff --git a/ax/SRC/T_CompleteServiceTask.js b/ax/SRC/T_CompleteServiceTask.js
new file mode 100644
index 0000000..78031e5
--- /dev/null
+++ b/ax/SRC/T_CompleteServiceTask.js
@@ -0,0 +1,45 @@
+// --------------------------------------------------------------------------------------
+// T_CompleteServiceTask.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
+// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
+// v_dateComplete is de plandatum en heeft formaat yyyy-mm-ddTuu:mm:ss
+function T_CompleteServiceTask (v_company_id, v_bonId, v_dateComplete)
+{
+
+// Je kunt in Tobias via een setting het gereedmelden direct in Tobias doen (default), of via sgweb ??
+// Dit wordt in AXFacilitor.xml bepaalt via de setting "methodegereedmelden":
+// 0 (default) = GereedMelden
+// 1 = GereedMeldenNaarSgWeb
+
+var l_method_gereed = Read_Ini_Setting("tobias","methodegereedmelden");
+
+// default...
+var v_API = "GereedMelden";
+if (l_method_gereed == "1")
+ {v_API = "GereedMeldenNaarSgWeb";}
+
+var v_req = "BonId=" + v_bonId + ""
+ + "DatumGereed=" + v_dateComplete + ""
+ + "Bewerking=" + "Gereed" + ""
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+if (v_type == 1 && v_resp != "")
+ {
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(v_resp); // responseText geeft encoding problemen!
+ oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+ oStream.Close();
+
+ }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/T_GetOpdrachten.js b/ax/SRC/T_GetOpdrachten.js
new file mode 100644
index 0000000..6399ea7
--- /dev/null
+++ b/ax/SRC/T_GetOpdrachten.js
@@ -0,0 +1,61 @@
+// --------------------------------------------------------------------------------------
+// T_GetOpdrachten.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+function T_GetOpdrachten()
+{
+ var v_status_code = "o"; // open
+ var l_currentTime = new Date();
+ // l_aantal_dagen staat default/normaal op 1 (voor gisteren), dus alle opdrachten vanaf gisteren. Voor testdoeleinden kan dit wat opgerekt worden...
+ // var l_aantal_dagen = 1;
+ var l_aantal_dagen = Read_Ini_Setting("tobias","opdr_past_days");
+ var l_yesterday = new Date((new Date()).valueOf() - l_aantal_dagen*1000*60*60*24);
+ var v_datum_vanaf = jsdatextoxml(l_yesterday);
+ var v_datum_tm = jsdatextoxml(l_currentTime);
+
+ var v_xml_opdrachten;
+
+ // Haal de aannemers (feitelijk de Tobias/AX-aannemer-id's) uit Facilitor die geregistreerd zijn voor het aannemersportaal.
+ // Het aannemer-id van Tobias/AX wordt uit Facilitor uitgelezen, en per aannemer wordt de webservice om de opdrachten van die aannemer op te halen, aangeroepen...
+ l_suppl_array = F_GetSuppliers();
+ for (var i = 0; i < l_suppl_array.length; i++){
+ v_supplier_id = l_suppl_array[i];
+
+ // Ophalen van de opdrachten voor aannemer 'v_supplier_id' vanaf (default) gisteren tot en met nu.
+ v_xml_opdrachten = T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm);
+
+ // Wegschrijven van de opdrachten (voor aannemer 'v_supplier_id') naar Facilitor....
+ api_F_PutOpdrachten(v_xml_opdrachten, "TOBIAS_OPDRACHTEN");
+ }
+}
+
+
+
+function T_GetOpdrachten_van_Aannemer(v_supplier_id, v_status_code, v_datum_vanaf, v_datum_tm)
+{
+
+
+var v_API = "GetBonnen";
+var v_req = "CrediteurNummer=" + v_supplier_id + ""
+ + "BonStatus=" + v_status_code + ""
+ + "BonDatumOpdrachtVan=" + v_datum_vanaf + ""
+
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+//if (v_type == 1 && v_resp != "")
+// {
+// oStream = new ActiveXObject("ADODB.Stream");
+// oStream.Open();
+// oStream.Type = 1; // adTypeBinary
+// oStream.Write(v_resp); // responseText geeft encoding problemen!
+// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+// oStream.Close();
+// }
+return v_resp;
+}
\ No newline at end of file
diff --git a/ax/SRC/T_PlanServiceTask.js b/ax/SRC/T_PlanServiceTask.js
new file mode 100644
index 0000000..1154ab1
--- /dev/null
+++ b/ax/SRC/T_PlanServiceTask.js
@@ -0,0 +1,53 @@
+// --------------------------------------------------------------------------------------
+// T_PlanServiceTask.js
+// Copyright 2014 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2014)
+//
+
+// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
+// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
+// v_plandate is de plandatum en heeft formaat yyyy-mm-ddTuu:mm:ss
+function T_PlanServiceTask(v_company_id, v_bonId, v_plandate)
+{
+
+var l_pos_T;
+var l_date;
+var l_time;
+
+l_pos_T = v_plandate.indexOf("T");
+if (l_pos_T >= 0){
+ l_date = v_plandate.substr(0, l_pos_T);
+ l_time = v_plandate.substr(l_pos_T + 1);
+}
+else {
+ l_date = v_plandate;
+ l_time = "";
+}
+
+
+var v_API = "SetPlanDatum";
+var v_req = "BonId=" + v_bonId + ""
+ + "BonStatus=" + "AannemerPlanning" + ""
+ + "PlanDatum=" + l_date + ""
+
+if (l_time != ""){
+ v_req = v_req + "PlanTijd=" + l_time + ""
+}
+
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+//if (v_type == 1 && v_resp != "")
+// {
+// oStream = new ActiveXObject("ADODB.Stream");
+// oStream.Open();
+// oStream.Type = 1; // adTypeBinary
+// oStream.Write(v_resp); // responseText geeft encoding problemen!
+// oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+// oStream.Close();
+// }
+return v_resp;
+}
diff --git a/ax/SRC/T_SetSupplierText.js b/ax/SRC/T_SetSupplierText.js
new file mode 100644
index 0000000..b2b6746
--- /dev/null
+++ b/ax/SRC/T_SetSupplierText.js
@@ -0,0 +1,31 @@
+// --------------------------------------------------------------------------------------
+// T_SetSupplierText.js
+// Copyright 2015 SG|facilitor. 053-4800 700, helpdesk@sgfacilitor.nl
+// Written by MB (2015)
+//
+
+// v_company_id is hier dummy, puur uit orthogonaliteit met de AX functie.
+// v_bonId is hier de bonid, uit het veld mld_opdr_ordernr.
+function T_SetSupplierText(v_company_id, v_bonId, v_extraInfo)
+{
+var v_API = "SetBonInfo";
+var v_req = "BonId=" + v_bonId + ""
+ + "BonStatus=" + "Informatie" + ""
+ + "BonInfo=" + v_extraInfo + ""
+
+var v_type = 0;
+
+var v_resp = apiAX(v_API, v_req, v_type);
+
+
+if (v_type == 1 && v_resp != "")
+ {
+ oStream = new ActiveXObject("ADODB.Stream");
+ oStream.Open();
+ oStream.Type = 1; // adTypeBinary
+ oStream.Write(v_resp); // responseText geeft encoding problemen!
+ oStream.SaveToFile ("Log/test" + v_supplier_id + ".xml", 2);
+ oStream.Close();
+ }
+return v_resp;
+}
\ No newline at end of file