From df6223aaa216b6e071cc21dec45dbadc457031b8 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Tue, 19 Sep 2023 15:32:49 +0200 Subject: [PATCH] =?UTF-8?q?Timas,=20Fremdw=C3=A4hrungen,=20Vorauskasse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frmVorauskasse_FremdwaehrungBerechnen.vb | 8 +- .../Classes/cFremdwaehrungskurse.vb | 119 +++++ .../Schnittstellen/TIMAS/cTimasAPI.vb | 410 ++++++++++++++++-- .../VERAG_PROG_ALLGEMEIN.vbproj | 1 + 4 files changed, 507 insertions(+), 31 deletions(-) create mode 100644 VERAG_PROG_ALLGEMEIN/Classes/cFremdwaehrungskurse.vb diff --git a/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_FremdwaehrungBerechnen.vb b/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_FremdwaehrungBerechnen.vb index 2ee1cf93..50ab1d19 100644 --- a/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_FremdwaehrungBerechnen.vb +++ b/SDL/Formulare/KDFormulare/FormulareBaukasten/frmVorauskasse_FremdwaehrungBerechnen.vb @@ -24,8 +24,8 @@ Private Sub frmVorauskasse_FremdwaehrungBerechnen_Load(sender As Object, e As EventArgs) Handles Me.Load 'cboWaehrung.fillWithSQL(" SELECT Währungsschlüssel, Währungscode FROM Währungstabelle ORDER BY Währungscode,[Währungsschlüssel] DESC ", False, "FMZOLL", True) - cboWaehrung.fillWithSQL("SELECT Währungstabelle.Währungscode, Währungstabelle.Währungscode FROM Währungstabelle WHERE (((Währungstabelle.Eurokurs) Is Not Null And (Währungstabelle.Eurokurs)>0)) ORDER BY Währungstabelle.Währungscode; ", False, "FMZOLL", True) - cboWaehrungUmrechnung.fillWithSQL("SELECT Währungstabelle.Währungscode, Währungstabelle.Währungscode FROM Währungstabelle WHERE (((Währungstabelle.Eurokurs) Is Not Null And (Währungstabelle.Eurokurs)>0)) ORDER BY Währungstabelle.Währungscode; ", False, "FMZOLL", True) + cboWaehrung.fillWithSQL("SELECT tblZOLL_Wechselkurse.fw_iso3, tblZOLL_Wechselkurse.fw_iso3 FROM tblZOLL_Wechselkurse WHERE isnull(fw_kurswert,0)>0 AND CAST(GETDATE() AS DATE) BETWEEN cast(fw_startdatum as DATE) AND cast(fw_enddatum as DATE) ORDER BY tblZOLL_Wechselkurse.fw_iso3; ", False, "FMZOLL", True) + cboWaehrungUmrechnung.fillWithSQL("SELECT tblZOLL_Wechselkurse.fw_iso3, tblZOLL_Wechselkurse.fw_iso3 FROM tblZOLL_Wechselkurse WHERE isnull(fw_kurswert,0)>0 AND CAST(GETDATE() AS DATE) BETWEEN cast(fw_startdatum as DATE) AND cast(fw_enddatum as DATE) ORDER BY tblZOLL_Wechselkurse.fw_iso3; ", False, "FMZOLL", True) If SND IsNot Nothing Then If SND.tblSnd_Warenwert IsNot Nothing AndAlso IsNumeric(SND.tblSnd_Warenwert) AndAlso SND.tblSnd_Warenwert <> 0 Then @@ -49,7 +49,7 @@ Dim rg_Umrechnung As Double = 1 Dim euro As Double = txtWarenwert._value If cboWaehrung._value <> "EUR" Then - Dim kurs = CDbl(SQL.getValueTxtBySql("SELECT TOP 1 isnull([Eurokurs] ,0) FROM [Währungstabelle] where Währungscode='" & cboWaehrung._value & "' ORDER BY Währungsschlüssel DESC", "FMZOLL")) + Dim kurs = CDbl(SQL.getValueTxtBySql("SELECT TOP 1 isnull([fw_kurswert] ,0) FROM [tblZOLL_Wechselkurse] where fw_iso3='" & cboWaehrung._value & "' ORDER BY fw_startdatum DESC", "FMZOLL")) If IsNumeric(kurs) AndAlso kurs > 0 Then euro = CDbl(txtWarenwert._value / kurs) rg_Umrechnung /= kurs @@ -58,7 +58,7 @@ Dim umrechnung As Double = euro If cboWaehrungUmrechnung._value <> "EUR" Then - Dim kurs_Umrechnung = CDbl(SQL.getValueTxtBySql("SELECT TOP 1 isnull([Eurokurs] ,0) FROM [Währungstabelle] where Währungscode='" & cboWaehrungUmrechnung._value & "' ORDER BY Währungsschlüssel DESC", "FMZOLL")) + Dim kurs_Umrechnung = CDbl(SQL.getValueTxtBySql("SELECT TOP 1 isnull([fw_kurswert] ,0) FROM [tblZOLL_Wechselkurse] where fw_iso3='" & cboWaehrungUmrechnung._value & "' ORDER BY fw_startdatum DESC", "FMZOLL")) umrechnung = CDbl(euro * kurs_Umrechnung) rg_Umrechnung *= kurs_Umrechnung End If diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cFremdwaehrungskurse.vb b/VERAG_PROG_ALLGEMEIN/Classes/cFremdwaehrungskurse.vb new file mode 100644 index 00000000..6fab3ea0 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Classes/cFremdwaehrungskurse.vb @@ -0,0 +1,119 @@ +Imports System.Data.SqlClient +Imports System.Reflection + +Public Class cFremdwaehrungskurse + + + Property fw_id As String + Property fw_iso2 As String + Property fw_iso3 As String + Property fw_land As String + Property fw_startdatum As Date + Property fw_enddatum As Date + Property fw_kurswert As Double + + + Dim SQL As New SQL + + Sub New() + + End Sub + + + Public Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fw_id", fw_id)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fw_iso2", fw_iso2)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fw_iso3", fw_iso3)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fw_land", fw_land)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fw_startdatum", fw_startdatum)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fw_enddatum", fw_enddatum)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("fw_kurswert", fw_kurswert)) + + Return list + End Function + + + + + Public Function SAVE() As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + + Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM tblZOLL_Wechselkurse WITH(updlock,serializable) WHERE fw_id=@fw_id AND fw_startdatum=@fw_startdatum AND fw_enddatum=@fw_enddatum ) " & + " BEGIN " & getUpdateCmd() & " END " & + " Else " & + " BEGIN " & getInsertCmd() & " END " & + " commit tran " + + + Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) + End Function + + + + Public Function getUpdateCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim str As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + Return (" UPDATE [tblZOLL_Wechselkurse] SET " & str & " WHERE fw_id=@fw_id AND fw_startdatum=@fw_startdatum AND fw_enddatum=@fw_enddatum") + + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return "" + End Function + + + Public Function getInsertCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + Dim str As String = "" + Dim values As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "]," + values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + values = values.Substring(0, values.Length - 1) 'wg. ',' + Return (" INSERT INTO tblZOLL_Wechselkurse (" & str & ") VALUES(" & values & ") ") + Catch ex As Exception + MsgBox("Fehler in der Funktion '" & System.Reflection.MethodInfo.GetCurrentMethod.Name & "'" & vbNewLine & vbNewLine & ex.Message & vbNewLine & vbNewLine & ex.StackTrace) + End Try + Return "" + End Function + + + 'Public Function DELETE() As Boolean 'obj As Object, tablename As String, where As String) As Boolean + ' Dim sqlstr = " DELETE FROM [tblEZB_Waehrungskurse] WITH(updlock,serializable) WHERE ezb_waehrungscode='" & ezb_waehrungscode & "' AND ezb_datum='" & ezb_datum & "' " + ' Return SQL.doSQL(sqlstr, "FMZOLL") + 'End Function + + + 'Shared Function UPDATE_Waehrungstabelle(datum As Date) As Boolean 'obj As Object, tablename As String, where As String) As Boolean + ' Dim sqlstr = " UPDATE [Währungstabelle] SET [Währungstabelle].Eurokurs=tblEZB_Waehrungskurse.ezb_kurs + ' FROM [Währungstabelle] inner join tblEZB_Waehrungskurse on [Währungstabelle].Währungsschlüssel=tblEZB_Waehrungskurse.ezb_waehrungsschluessel where tblEZB_Waehrungskurse.ezb_datum='" & datum.ToShortDateString & "' " + ' Return (New SQL).doSQL(sqlstr, "FMZOLL") + 'End Function + + 'Shared Function GET_KURS(ezb_waehrungscode As String, datum As Date) As Double + ' Dim sqlstr = " SELECT TOP 1 [ezb_kurs] FROM [tblEZB_Waehrungskurse] where ezb_waehrungscode='" & ezb_waehrungscode & "' and ezb_datum<='" & datum.ToShortTimeString & "' order by ezb_datum desc" + ' Return (New SQL).getValueTxtBySql(sqlstr, "FMZOLL",,, 0) + 'End Function + + 'Shared Function EXCHANGE(betrag As Double, waehrungscode As String, datum As Date) As Double + ' Dim sqlstr = " SELECT TOP 1 [ezb_kurs] FROM [tblEZB_Waehrungskurse] where ezb_waehrungscode='" & waehrungscode & "' and ezb_datum<='" & datum.ToShortTimeString & "' order by ezb_datum desc" + ' Return (New SQL).getValueTxtBySql(sqlstr, "FMZOLL",,, 0) * betrag + 'End Function + + +End Class diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb index cf045186..fde94923 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb @@ -1,4 +1,7 @@ -Imports System.Net +Imports System.Diagnostics.Tracing +Imports System.Net +Imports System.Threading +Imports System.Windows.Forms Public Class cTimasAPI @@ -15,26 +18,26 @@ Public Class cTimasAPI Try Dim success As Boolean - rest.VerboseLogging = False - Dim bTls As Boolean = True - Dim port As Integer = 443 - Dim bAutoReconnect As Boolean = True - success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) - If (success <> True) Then - Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) - Debug.WriteLine(rest.LastErrorText) - failureText = rest.LastErrorText - Return False - End If + rest.VerboseLogging = False + Dim bTls As Boolean = True + Dim port As Integer = 443 + Dim bAutoReconnect As Boolean = True + success = rest.Connect(API_STRING, port, bTls, bAutoReconnect) + If (success <> True) Then + Debug.WriteLine("ConnectFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + failureText = rest.LastErrorText + Return False + End If - success = rest.SetAuthBasic("admin", "BmWr501956") + success = rest.SetAuthBasic("admin", "BmWr501956") - If (success <> True) Then - Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason) - Debug.WriteLine(rest.LastErrorText) - failureText = rest.LastErrorText - Return False - End If + If (success <> True) Then + Debug.WriteLine("BAFailReason: " & rest.ConnectFailReason) + Debug.WriteLine(rest.LastErrorText) + failureText = rest.LastErrorText + Return False + End If Return True @@ -200,7 +203,7 @@ Public Class cTimasAPI End Sub - Public Function createMA(ByVal mitarbeiter As cMitarbeiter, ByRef info As String, ByRef datatableTimas As DataTable, Optional ByRef requestDone As Boolean = False) + Public Function createEmployee(ByVal mitarbeiter As cMitarbeiter, ByRef info As String, ByRef datatableTimas As DataTable, Optional ByRef requestDone As Boolean = False) Try rest.ClearAllHeaders() @@ -229,8 +232,6 @@ Public Class cTimasAPI success = json.UpdateString("gender", IIf(mitarbeiter.mit_geschlecht = "m", "male", "female")) success = json.UpdateInt("card", mitarbeiter.mit_id) success = json.UpdateString("info", mitarbeiter.mit_firma & " - " & mitarbeiter.mit_abteilung) - 'success = json.UpdateString("clientNumber", "5600-02") - 'success = json.UpdateInt("rfid", 178230359) If mitarbeiter.mit_gebdat <> "" And IsDate(mitarbeiter.mit_gebdat) Then success = json.UpdateString("birthday", CDate(mitarbeiter.mit_gebdat).ToString("yyyy-MM-dd")) End If @@ -349,7 +350,6 @@ Public Class cTimasAPI Debug.WriteLine(json.LastErrorText) End If - Debug.WriteLine(json) info &= IIf(json.StringOf("entry") <> "", "Startdatum: " & json.StringOf("entry") & vbNewLine, "") info &= IIf(json.StringOf("externid") <> "", "MA-ID: " & json.StringOf("externid") & vbNewLine, "") info &= IIf(json.StringOf("pnr1") <> "", "PersonalNr: " & json.StringOf("pnr1") & vbNewLine, "") @@ -362,14 +362,265 @@ Public Class cTimasAPI info &= IIf(json.StringOf("password") <> "", "PW: " & json.StringOf("password"), "") End If - - Catch ex As WebException VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try End Sub - Public Sub getGroups(ByRef dt As DataTable) + Public Function getEmployee(mitarbeiterID As String) As cTimasEmployee + + Try + + If Not checkConnectionTImas("") Then + Return Nothing + End If + + Dim responseJson As String = rest.FullRequestNoBody("GET", "/rest/web-api/employees/" & mitarbeiterID) + If (rest.LastMethodSuccess <> True) Then + Debug.WriteLine(rest.LastErrorText) + Return Nothing + End If + + If (rest.ResponseStatusCode <> 200) Then + Debug.WriteLine(rest.ResponseHeader) + MsgBox(rest.ResponseStatusCode & " " & rest.ResponseStatusText) + Return Nothing + End If + + Debug.WriteLine(responseJson) + + + Dim json As New Chilkat.JsonObject + Dim success = json.Load(responseJson) + If (success <> True) Then + Debug.WriteLine(json.LastErrorText) + End If + + + Dim emp As New cTimasEmployee() + + emp.ID = json.StringOf("id") + emp.externid = json.StringOf("externid") + emp.pnr1 = json.StringOf("pnr1") + emp.pnr2 = json.StringOf("pnr2") + emp.firstname = json.StringOf("firstname") + emp.lastname = json.StringOf("lastname") + emp.gender = json.StringOf("gender") + emp.clientNumber = json.StringOf("clientNumber") + emp.card = json.StringOf("card") + emp.info = json.StringOf("info") + emp.rfid = json.StringOf("rfid") + emp.login = json.StringOf("login") + emp.email = json.StringOf("email") + emp.loginActive = json.BoolOf("loginActive") + emp.password = json.StringOf("password") + + emp.street = json.StringOf("street") + emp.zipcode = json.StringOf("zipcode") + emp.city = json.StringOf("city") + emp.phone1 = json.StringOf("phone1") + emp.phone2 = json.StringOf("phone2") + + emp.birthdayDate = json.StringOf("birthday") + emp.entryDate = json.StringOf("entry") + emp.exitDate = json.StringOf("exit") + + + + Dim groups As Chilkat.JsonArray = json.ArrayOf("groups") + If (json.LastMethodSuccess = False) Then + Debug.WriteLine("groups member not found.") + End If + + emp.Gruppen = New List(Of cTimasGruppe) + Dim numGroups As Integer = groups.Size + Dim i As Integer = 0 + While i < numGroups + Dim TIMASGroups As New cTimasGruppe(emp.ID) + TIMASGroups.Id = groups.IntAt(i) + emp.Gruppen.Add(TIMASGroups) + i = i + 1 + End While + + + Debug.WriteLine(json) + + Return emp + + Catch ex As WebException + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + End Function + + + Public Function updateEmployee(emp As cTimasEmployee, dgv As DataGridView) As Boolean + + Try + + Dim success As Boolean + + If True Then + + + If Not checkConnectionTImas("") Then + Return Nothing + End If + + Dim json As New Chilkat.JsonObject + + + success = json.UpdateString("externid", emp.externid) + success = json.UpdateString("pnr1", emp.pnr1) + success = json.UpdateString("pnr2", emp.pnr2) + success = json.UpdateString("firstname", emp.firstname) + success = json.UpdateString("lastname", emp.lastname) + success = json.UpdateString("gender", emp.gender) + + success = json.UpdateString("card", emp.card) + success = json.UpdateString("info", emp.info) + success = json.UpdateString("rfid", emp.rfid) + success = json.UpdateString("login", emp.login) + success = json.UpdateString("email", emp.email) + success = json.UpdateBool("loginActive", emp.loginActive) + success = json.UpdateString("password", emp.password) + + success = json.UpdateString("street", emp.street) + success = json.UpdateString("city", emp.city) + success = json.UpdateString("phone1", emp.phone1) + success = json.UpdateString("phone2", emp.phone2) + + success = json.UpdateString("birthday", emp.birthdayDate) + success = json.UpdateString("entry", emp.entryDate) + success = json.UpdateString("exit", emp.exitDate) + + + Dim sbRequestBody As New Chilkat.StringBuilder + json.EmitSb(sbRequestBody) + + Dim sbResponseBody As New Chilkat.StringBuilder + success = rest.FullRequestSb("PUT", "/rest/web-api/employees/" & emp.ID, sbRequestBody, sbResponseBody) + + If (rest.LastMethodSuccess <> True) Then + Debug.WriteLine(rest.LastErrorText) + Return Nothing + End If + + If (rest.ResponseStatusCode <> 201) Then + Debug.WriteLine(rest.ResponseHeader) + MsgBox(rest.ResponseStatusCode & " " & rest.ResponseStatusText) + Return Nothing + End If + + Debug.WriteLine(sbResponseBody) + End If + + If dgv IsNot Nothing AndAlso dgv.RowCount > 0 AndAlso emp.Gruppen IsNot Nothing Then + + + + For Each r As DataGridViewRow In dgv.Rows + For Each i As cTimasGruppe In emp.Gruppen + If r.Cells("set").Value = False AndAlso r.Cells("id").Value = i.Id Then + deleteGroupmembers(i.Id, emp.ID) + Exit For + ElseIf r.Cells("set").Value = True AndAlso r.Cells("id").Value <> i.Id Then + addGroupmembers(r.Cells("id").Value, emp.ID) + Exit For + + End If + + Next + Next + + End If + + Return success + + Catch ex As WebException + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + End Function + + Public Sub getAllGroups(ByRef dt As DataTable, Optional initialGroup As Boolean = True) + + Try + + Dim failureText As String = "" + If Not checkConnectionTImas(failureText) Then + Exit Sub + End If + + + Dim responseBody As String = rest.FullRequestNoBody("GET", API_STRING & "/rest/web-api/groups3") + If (rest.LastMethodSuccess <> True) Then + Debug.WriteLine(rest.LastErrorText) + Exit Sub + End If + + If (rest.ResponseStatusCode <> 200) Then + Debug.WriteLine(rest.ResponseStatusCode & " " & rest.ResponseStatusText) + End If + + + Dim jsonArray As New Chilkat.JsonArray + Dim success As Boolean = jsonArray.Load(responseBody) + If (success <> True) Then + Debug.WriteLine(jsonArray.LastErrorText) + Exit Sub + End If + + + Dim num As Integer = jsonArray.Size + If num = -1 Then + Exit Sub + End If + + + Dim j As Integer = 0 + + If dt IsNot Nothing And Not dt.Columns.Contains("id") Then + + dt.Columns.Add("id", GetType(Integer)) + dt.Columns.Add("name", GetType(String)) + dt.Columns.Add("groupType", GetType(String)) + dt.Columns.Add("info", GetType(String)) + dt.Columns.Add("set", GetType(Boolean)) + + While j < num + + Dim groups As Chilkat.JsonObject = jsonArray.ObjectAt(j) + + Dim R As DataRow = dt.NewRow + R("id") = groups.IntOf("id") + R("name") = groups.StringOf("name") + R("groupType") = groups.StringOf("groupType") + R("info") = groups.StringOf("info") + If initialGroup = True Then + If R("id") = "19" Or R("id") = "129" Then 'Typ Mitarbeiter und Standardgruppe für Mitarbeiter Default true + R("set") = True + Else + R("set") = False + End If + End If + dt.Rows.Add(R) + j = j + 1 + End While + + dt.DefaultView.Sort = " groupType asc, name asc" + dt = dt.DefaultView.ToTable() + + End If + + + Catch ex As WebException + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + End Sub + + Public Sub getGroupsFromEmployee(ByRef dt As DataTable) Try @@ -444,6 +695,59 @@ Public Class cTimasAPI End Sub + + Public Sub addGroupmembers(ByVal groupID As Integer, ByVal maId As Integer) + + Try + + Dim success As Boolean + Dim jarr As New Chilkat.JsonArray + jarr.AddIntAt(-1, maId) + + Dim sbRequestBody As New Chilkat.StringBuilder + jarr.EmitSb(sbRequestBody) + + Dim sbResponseBody As New Chilkat.StringBuilder + + success = rest.FullRequestSb("POST", "/rest/web-api/groups/" & groupID & "/addmembers", sbRequestBody, sbResponseBody) + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + + End If + + Catch ex As WebException + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + End Sub + + Public Sub deleteGroupmembers(ByVal groupID As Integer, ByVal maId As Integer) + + Try + + Dim success As Boolean + Dim jarr As New Chilkat.JsonArray + jarr.AddIntAt(-1, maId) + + Dim sbRequestBody As New Chilkat.StringBuilder + jarr.EmitSb(sbRequestBody) + + Dim sbResponseBody As New Chilkat.StringBuilder + + success = rest.FullRequestSb("POST", "/rest/web-api/groups/" & groupID & "/removemembers", sbRequestBody, sbResponseBody) + If (success <> True) Then + Debug.WriteLine(rest.LastErrorText) + + End If + + Catch ex As WebException + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + + End Sub + + + Public Function setTimeEntry(ByVal mitarbeiter As cMitarbeiter, ByVal timeEntry As DateTime, ByRef info As String, ByRef inout As String) Dim failureText As String = "" Dim timeEntryCreated As Boolean = False @@ -557,7 +861,7 @@ Public Class cTimasAPI Return "Array Failure" End If - If dt IsNot Nothing And Not dt.Columns.Contains("Id") Then + If dt IsNot Nothing AndAlso Not dt.Columns.Contains("Id") Then dt.Columns.Add("Id", GetType(Integer)) 'dt.Columns.Add("externid", GetType(String)) dt.Columns.Add("Personal-Nr (Lohn)", GetType(String)) @@ -595,3 +899,55 @@ Public Class cTimasAPI End Class + +Public Class cTimasEmployee + + Public ID As Integer + Public externid As String + Public pnr1 As String + Public pnr2 As String + Public firstname As String + Public lastname As String + Public gender As String + Public clientNumber As String + Public rfid As String + Public card As Integer + Public info As String + Public login As String + Public email As String + Public loginActive As Boolean + Public password As String + + Public street As String + Public city As String + Public zipcode As String + Public phone1 As String + Public phone2 As String + + Public birthdayDate As String + Public entryDate As String + Public exitDate As String + + Public Gruppen As List(Of cTimasGruppe) + + Sub New() + + End Sub + +End Class + +Public Class cTimasGruppe + + Public empID As Integer + Public Id As Integer + Public name As String + Public groupType As String + Public info As String + + Sub New(empId) + Me.empID = empId + End Sub + + + +End Class \ No newline at end of file diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj index d8b8e12e..27b77b1b 100644 --- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj +++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj @@ -342,6 +342,7 @@ +