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