diff --git a/SDL/Fakturierung/frmFaktEmail.vb b/SDL/Fakturierung/frmFaktEmail.vb index 050947d5..af6306f6 100644 --- a/SDL/Fakturierung/frmFaktEmail.vb +++ b/SDL/Fakturierung/frmFaktEmail.vb @@ -739,7 +739,7 @@ Public Class frmFaktEmail For Each r In SR_DT.Rows Dim SPEDBUCH As New VERAG_PROG_ALLGEMEIN.cSpeditionsbuch(r("FilialenNr"), r("AbfertigungsNr"), r("SpeditionsbuchUnterNr")) initRowSpedbuch(SPEDBUCH) - If SPEDBUCH.AbfertigungsNr = 26 Or SPEDBUCH.AbfertigungsNr = 28 Then + If (SPEDBUCH.AbfertigungsNr = 26 Or SPEDBUCH.AbfertigungsNr = 28) AndAlso (SPEDBUCH.FilialenNr = 4805 Or SPEDBUCH.FilialenNr = 4811) Then isFiskal = True End If Next diff --git a/SDL/kunden/usrCntlKundenBesonderheiten.vb b/SDL/kunden/usrCntlKundenBesonderheiten.vb index 4c4be2d4..f8823632 100644 --- a/SDL/kunden/usrCntlKundenBesonderheiten.vb +++ b/SDL/kunden/usrCntlKundenBesonderheiten.vb @@ -85,7 +85,9 @@ Public Class usrCntlKundenBesonderheiten End Sub Private Sub initDGV(Optional kdnrTmp = -1, Optional simpleView = False, Optional preferedKategorie = "", Optional preferedKategorieOtherIN = "") - dgvBesonderheiten.Columns.Clear() + If dgvBesonderheiten.Columns IsNot Nothing Then + dgvBesonderheiten.Columns.Clear() + End If If kdnrTmp > 0 Then Me.kdNr = kdnrTmp If kdNr <= 0 Then Exit Sub diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cUeberstunden.vb b/VERAG_PROG_ALLGEMEIN/Classes/cUeberstunden.vb new file mode 100644 index 00000000..559952b3 --- /dev/null +++ b/VERAG_PROG_ALLGEMEIN/Classes/cUeberstunden.vb @@ -0,0 +1,142 @@ + +Imports System.Data.SqlClient +Imports System.Reflection + +Public Class cUeberstunden + + Property uest_id As Integer + Property uest_maId As Object = Nothing + Property uest_timasId As Object = Nothing + Property uest_100 As Object = Nothing + Property uest_50 As Object = Nothing + Property uest_0 As Object = Nothing + Property uest_date As Date = Nothing + Property uest_created As Object = Nothing + Property uest_lastChanged As Object = Nothing + Property uest_deleted As Boolean + Property uest_systemuser As Object = Nothing + + Public hasEntry = False + + Dim SQL As New SQL + + + + Sub New(uest_maId, uest_date) + Me.uest_maId = uest_maId + Me.uest_date = uest_date + LOAD() + End Sub + + Sub New(uest_maId, uest_date, uest_created) + Me.uest_maId = uest_maId + Me.uest_date = uest_date + Me.uest_created = uest_created + End Sub + + 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("uest_id", uest_id,, True, True)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_maId", uest_maId)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_timasId", uest_timasId)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_100", uest_100)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_50", uest_50)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_0", uest_0)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_date", uest_date)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_created", uest_created)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_lastChanged", uest_lastChanged)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_deleted", uest_deleted)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("uest_systemuser", uest_systemuser)) + + 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 tblUeberstunden WHERE uest_maId=@uest_maId AND uest_date=@uest_date AND uest_deleted = 0) " & + " BEGIN " & getUpdateCmd() & " END " & + " Else " & + " BEGIN " & getInsertCmd() & " END " & + " commit tran " + + Return SQL.doSQLVarList(sqlstr, "ADMIN", , list) + End Function + + Public Sub LOAD() + Try + hasEntry = False + Using conn As SqlConnection = SQL.GetNewOpenConnectionADMIN() + Using cmd As New SqlCommand("SELECT TOP(1) * FROM tblUeberstunden WHERE uest_maId=@uest_maId AND uest_date=@uest_date AND uest_deleted = 0 order by uest_created desc", conn) + cmd.Parameters.AddWithValue("@uest_maId", uest_maId) + cmd.Parameters.AddWithValue("@uest_date", uest_date) + Dim dr = cmd.ExecuteReader() + If dr.Read Then + For Each li In getParameterList() + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable) + + If dr.Item(li.Text) Is DBNull.Value Then + propInfo.SetValue(Me, Nothing) + Else + propInfo.SetValue(Me, dr.Item(li.Text)) + End If + + Next + hasEntry = True + End If + dr.Close() + End Using + End Using + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub + + + + 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 [tblUeberstunden] SET " & str & " WHERE uest_maId=@uest_maId AND uest_date=@uest_date AND uest_deleted = 0 ") + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + 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 tblUeberstunden (" & str & ") VALUES(" & values & ") ") + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return "" + End Function + + +End Class + diff --git a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb index a22112dc..da018275 100644 --- a/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb +++ b/VERAG_PROG_ALLGEMEIN/DATENSERVER/cDATENSERVER.vb @@ -1409,7 +1409,10 @@ Public Class cFormularManager Using webClient As New Net.WebClient() Dim data() As Byte = webClient.DownloadData(URL) Using stream As New MemoryStream(data) - Dim doc As Spire.Pdf.PdfDocument = New Spire.Pdf.PdfDocument(stream) + + Dim doc As Spire.Pdf.PdfDocument = New Spire.Pdf.PdfDocument + doc.LoadFromStream(stream) + If doc IsNot Nothing Then doc.PageSettings.Size = Spire.Pdf.PdfPageSize.A4 doc.SaveToFile(targetPath) @@ -1422,7 +1425,7 @@ Public Class cFormularManager Return targetPath Catch ex As Exception - MsgBox(ex.Message & ex.StackTrace) + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) End Try Return "" End Function diff --git a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb index 4838d9a9..2c953047 100644 --- a/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb +++ b/VERAG_PROG_ALLGEMEIN/Mitarbeiterverzeichnis/frmUeberstundenauszahlen.vb @@ -337,9 +337,10 @@ Public Class frmUeberstundenauszahlen Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click - Dim sum100, sum50, gesamt As Double + Dim sum100, sum50, sum0, gesamt As Double sum100 = RoundOfDigits(CDbl(txtAusz100.Text) * 0.5, 2) 'Übergabe in ZE-System als heruntergerechnete 100%ige bzw. 50%ige ÜS! - sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / 150, 2) + CDbl(txtAusz50vonSaldo.Text) + sum50 = RoundOfDigits(CDbl(txtAusz50.Text) * 100 / 150, 2) + sum0 = CDbl(txtAusz50vonSaldo.Text) gesamt = CDbl(txtAusz.Text) Dim aksAuszahlung As MsgBoxResult = MsgBox("Überstunden für " & MA.mit_vname & " " & MA.mit_nname & " mit " & auszahlugsdatum.ToShortDateString() & " auszahlen?" & vbNewLine & sum100 & "x 100% ÜS :" & txtAusz100.Text & vbNewLine & sum50 & "x 50% ÜS: " & CDbl(txtAusz50.Text) + CDbl(txtAusz50vonSaldo.Text) & vbNewLine & "ÜS gesamt: " & gesamt, vbYesNo) @@ -364,6 +365,13 @@ Public Class frmUeberstundenauszahlen dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) End If + If sum0 >= 0 Then + Dim row = dtsetEntries.NewRow + row.Item("accountid") = 1551 + row.Item("value") = sum0.ToString.Replace(",", ".") + dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) + End If + If gesamt >= 0 Then 'vom ldf Saldo, ev. über API Möglich monatliche Korrektur direkt zu befüllen, dann muss dieser If Zweig überarbeitet werden!!!!!!!!!!!!!! Dim row = dtsetEntries.NewRow row.Item("accountid") = 993 @@ -371,9 +379,16 @@ Public Class frmUeberstundenauszahlen dtsetEntries.Rows.InsertAt(row, dtsetEntries.Rows.Count) End If + Dim ues As New cUeberstunden(MA.mit_id, auszahlugsdatum.ToShortDateString, Now()) + ues.uest_timasId = MA.mit_timasId + ues.uest_100 = sum100 + ues.uest_50 = sum50 + ues.uest_0 = sum0 + ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + Dim info As String = "" - If timas.setTimeAccountEntries(MA, dtsetEntries, auszahlugsdatum, info) Then + If timas.setTimeAccountEntries(MA, dtsetEntries, auszahlugsdatum, info) AndAlso ues.SAVE() Then MsgBox("Erfolgreich in Timas eingetragen") Else @@ -409,6 +424,11 @@ Public Class frmUeberstundenauszahlen End If If timas.deleteTimeAccounts(auszahlugsdatum, auszahlugsdatum, MA.mit_timasId, dtdeleteEntries) Then + Dim ues As New cUeberstunden(MA.mit_id, auszahlugsdatum.ToShortDateString) + ues.uest_deleted = True + ues.uest_lastChanged = Now() + ues.uest_systemuser = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME + ues.SAVE() MsgBox("Erfolgreich aus Timas zurückgesetzt!") picDel.Visible = False diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb index e9b75163..8746a01f 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/TIMAS/cTimasAPI.vb @@ -907,7 +907,7 @@ Public Class cTimasAPI 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("Login", GetType(String)) dt.Columns.Add("Personal-Nr (Lohn)", GetType(String)) dt.Columns.Add("Vorname", GetType(String)) dt.Columns.Add("Nachname", GetType(String)) @@ -923,7 +923,7 @@ Public Class cTimasAPI Dim employee As Chilkat.JsonObject = jsonArray.ObjectAt(j) Dim R As DataRow = dt.NewRow R("Id") = employee.IntOf("id") - '("externid") = employee.StringOf("externid") + 'R("Login") = employee.StringOf("login") R("Personal-Nr (Lohn)") = employee.StringOf("pnr1") R("Vorname") = employee.StringOf("firstname") R("Nachname") = employee.StringOf("lastname") diff --git a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj index 480057bc..ce01fba7 100644 --- a/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj +++ b/VERAG_PROG_ALLGEMEIN/VERAG_PROG_ALLGEMEIN.vbproj @@ -374,6 +374,7 @@ + frmErrorMeldung.vb