BU, Faktsammelrechnungdruck, etc.

This commit is contained in:
2025-04-07 17:55:20 +02:00
parent 2f53eebd18
commit 792c57f3ec
6 changed files with 218 additions and 31 deletions

View File

@@ -311,7 +311,7 @@ Public Class frmFaktSammelRgDrucken
If Sammelrechung = 6 Then 'MDMSammelrechnung
'AKTUELL IMMER MIT KOPIE
MDMKopiedrucken = True
Dim reLandKZ As String = MyDatagridview1.Rows(0).Cells("RechnungsLandKz").Value
Dim reLandKZ As String = MyDatagridview1.SelectedRows(0).Cells("RechnungsLandKz").Value
Dim isEU As Boolean = dTLANDEU.AsEnumerable().Where(Function(res) res.Field(Of String)("LandKz") = reLandKZ).Select(Function(res) res.Field(Of Boolean)("MitgliedslandEU")).FirstOrDefault()
If isEU Then

View File

@@ -24,14 +24,16 @@ Public Class rptSammelRechnungAnlagenDruck_Leistungen
txtAbfertigungsart.Text = ""
lblSteuerfrei.Text = ""
lblSteuerpflichtig.Text = ""
Dim vorzeichen = If(If(RECHNUNG.Vorzeichen, "") = "-", -1, 1)
If Me.Fields.Item("clmnAnzahl") IsNot Nothing AndAlso Me.Fields.Item("clmnAnzahl").Value IsNot Nothing Then txtAbfertigungsart.Text &= Me.Fields.Item("clmnAnzahl").Value.ToString & "x "
If Me.Fields.Item("clmnLeistung") IsNot Nothing AndAlso Me.Fields.Item("clmnLeistung").Value IsNot Nothing Then txtAbfertigungsart.Text &= Me.Fields.Item("clmnLeistung").Value.ToString
If Me.Fields.Item("clmnLeistungsNr") IsNot Nothing AndAlso Me.Fields.Item("clmnLeistungsNr").Value IsNot Nothing Then txtAbfertigungsart.Text &= " (" & Me.Fields.Item("clmnLeistungsNr").Value.ToString & ") "
If Me.Fields.Item("clmnSteuerfreierBetrag") IsNot Nothing AndAlso Me.Fields.Item("clmnSteuerfreierBetrag").Value IsNot Nothing AndAlso CDbl(Me.Fields.Item("clmnSteuerfreierBetrag").Value) <> 0 Then
lblSteuerfrei.Text = CDbl(Me.Fields.Item("clmnSteuerfreierBetrag").Value.ToString).ToString("N2")
lblSteuerfrei.Text = CDbl(Me.Fields.Item("clmnSteuerfreierBetrag").Value.ToString * vorzeichen).ToString("N2")
End If
If Me.Fields.Item("clmnSteuerpflichtigerBetrag") IsNot Nothing AndAlso Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value IsNot Nothing AndAlso CDbl(Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value) <> 0 Then
lblSteuerpflichtig.Text = CDbl(Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value.ToString).ToString("N2")
lblSteuerpflichtig.Text = CDbl(Me.Fields.Item("clmnSteuerpflichtigerBetrag").Value.ToString * vorzeichen).ToString("N2")
End If
End If
End Sub

View File

@@ -4991,7 +4991,9 @@
<None Include="Resources\Verag-AG-Logo_DE.jpg" />
<None Include="Resources\plose_truckmaster.png" />
<None Include="Resources\pdf_s.png" />
<None Include="Resources\VERAG_360.jpg" />
<None Include="Resources\VERAG_360.jpg">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Resources\ungueltig_de.png">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

View File

@@ -56,6 +56,10 @@ Partial Class frmBU_Mahnlauf
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.MyTextBox2 = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.txtZahlEingaenge = New VERAG_PROG_ALLGEMEIN.MyTextBox()
Me.Button7 = New System.Windows.Forms.Button()
Me.btnMail_Intern = New System.Windows.Forms.Button()
Me.cbxKontotyp = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.Panel1.SuspendLayout()
Me.pnlTop.SuspendLayout()
Me.Panel2.SuspendLayout()
@@ -65,6 +69,8 @@ Partial Class frmBU_Mahnlauf
'
'Panel1
'
Me.Panel1.Controls.Add(Me.cbxKontotyp)
Me.Panel1.Controls.Add(Me.txtZahlEingaenge)
Me.Panel1.Controls.Add(Me.cbxZahlungseingaenge)
Me.Panel1.Controls.Add(Me.cbxNurFaellig)
Me.Panel1.Controls.Add(Me.MyComboBox1)
@@ -89,9 +95,9 @@ Partial Class frmBU_Mahnlauf
Me.cbxZahlungseingaenge.AutoSize = True
Me.cbxZahlungseingaenge.Location = New System.Drawing.Point(568, 87)
Me.cbxZahlungseingaenge.Name = "cbxZahlungseingaenge"
Me.cbxZahlungseingaenge.Size = New System.Drawing.Size(114, 17)
Me.cbxZahlungseingaenge.Size = New System.Drawing.Size(140, 17)
Me.cbxZahlungseingaenge.TabIndex = 39
Me.cbxZahlungseingaenge.Text = "Zahlungseingänge"
Me.cbxZahlungseingaenge.Text = "Zahlungseingänge vom:"
Me.cbxZahlungseingaenge.UseVisualStyleBackColor = True
'
'cbxNurFaellig
@@ -280,6 +286,8 @@ Partial Class frmBU_Mahnlauf
'
'Panel3
'
Me.Panel3.Controls.Add(Me.btnMail_Intern)
Me.Panel3.Controls.Add(Me.Button7)
Me.Panel3.Controls.Add(Me.btnKunde)
Me.Panel3.Controls.Add(Me.cbxMahnstufeErh)
Me.Panel3.Controls.Add(Me.Label8)
@@ -307,7 +315,7 @@ Partial Class frmBU_Mahnlauf
Me.btnKunde.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnKunde.Image = Global.SDL.My.Resources.Resources.person1
Me.btnKunde.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btnKunde.Location = New System.Drawing.Point(38, 87)
Me.btnKunde.Location = New System.Drawing.Point(38, 78)
Me.btnKunde.Name = "btnKunde"
Me.btnKunde.Padding = New System.Windows.Forms.Padding(0, 0, 2, 0)
Me.btnKunde.Size = New System.Drawing.Size(123, 32)
@@ -501,6 +509,69 @@ Partial Class frmBU_Mahnlauf
Me.MyTextBox2.TabIndex = 39
Me.MyTextBox2.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
'
'txtZahlEingaenge
'
Me.txtZahlEingaenge._DateTimeOnly = False
Me.txtZahlEingaenge._numbersOnly = False
Me.txtZahlEingaenge._numbersOnlyKommastellen = ""
Me.txtZahlEingaenge._numbersOnlyTrennzeichen = True
Me.txtZahlEingaenge._Prozent = False
Me.txtZahlEingaenge._ShortDateNew = True
Me.txtZahlEingaenge._ShortDateOnly = False
Me.txtZahlEingaenge._TimeOnly = False
Me.txtZahlEingaenge._TimeOnly_Seconds = False
Me.txtZahlEingaenge._value = ""
Me.txtZahlEingaenge._Waehrung = False
Me.txtZahlEingaenge._WaehrungZeichen = False
Me.txtZahlEingaenge.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtZahlEingaenge.ForeColor = System.Drawing.Color.Black
Me.txtZahlEingaenge.Location = New System.Drawing.Point(714, 85)
Me.txtZahlEingaenge.MaxLength = 10
Me.txtZahlEingaenge.MaxLineLength = -1
Me.txtZahlEingaenge.MaxLines_Warning = ""
Me.txtZahlEingaenge.MaxLines_Warning_Label = Nothing
Me.txtZahlEingaenge.Name = "txtZahlEingaenge"
Me.txtZahlEingaenge.Size = New System.Drawing.Size(88, 20)
Me.txtZahlEingaenge.TabIndex = 47
Me.txtZahlEingaenge.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
Me.txtZahlEingaenge.Visible = False
'
'Button7
'
Me.Button7.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.Button7.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!)
Me.Button7.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.Button7.Location = New System.Drawing.Point(38, 113)
Me.Button7.Name = "Button7"
Me.Button7.Size = New System.Drawing.Size(123, 23)
Me.Button7.TabIndex = 47
Me.Button7.Text = "OP-Liste aktualisieren"
Me.Button7.UseVisualStyleBackColor = True
'
'btnMail_Intern
'
Me.btnMail_Intern.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnMail_Intern.BackgroundImage = Global.SDL.My.Resources.Resources.email_big1
Me.btnMail_Intern.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom
Me.btnMail_Intern.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnMail_Intern.Location = New System.Drawing.Point(1213, 83)
Me.btnMail_Intern.Name = "btnMail_Intern"
Me.btnMail_Intern.Size = New System.Drawing.Size(41, 34)
Me.btnMail_Intern.TabIndex = 48
Me.btnMail_Intern.UseVisualStyleBackColor = True
'
'cbxKontotyp
'
Me.cbxKontotyp._allowedValuesFreiText = Nothing
Me.cbxKontotyp._allowFreiText = False
Me.cbxKontotyp._value = ""
Me.cbxKontotyp.FormattingEnabled = True
Me.cbxKontotyp.Location = New System.Drawing.Point(568, 103)
Me.cbxKontotyp.Name = "cbxKontotyp"
Me.cbxKontotyp.Size = New System.Drawing.Size(97, 21)
Me.cbxKontotyp.TabIndex = 48
Me.cbxKontotyp.Visible = False
'
'frmBU_Mahnlauf
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -558,4 +629,8 @@ Partial Class frmBU_Mahnlauf
Friend WithEvents cbxMahnstufeErh As CheckBox
Friend WithEvents btnKunde As Button
Friend WithEvents cbxZahlungseingaenge As CheckBox
Friend WithEvents txtZahlEingaenge As VERAG_PROG_ALLGEMEIN.MyTextBox
Friend WithEvents Button7 As Button
Friend WithEvents btnMail_Intern As Button
Friend WithEvents cbxKontotyp As VERAG_PROG_ALLGEMEIN.MyComboBox
End Class

View File

@@ -1,8 +1,6 @@
Imports System.Globalization
Imports System.Windows
Imports Microsoft.Office.Interop
Imports VERAG_PROG_ALLGEMEIN
Imports VERAG_PROG_ALLGEMEIN.TESTJSON
Public Class frmBU_Mahnlauf
@@ -70,14 +68,20 @@ Public Class frmBU_Mahnlauf
ORDER BY KTO.c_name"
Dim SQLWhere = " and (c_kennung = 'KE' or BU.i_konto in (5827, 5829) or LEFT(BU.i_konto,1) = 0 or c_kennung = 'DE')"
Select Case cbxKontotyp._value
Case "DE", "KE", "KO" : SQLWhere &= " and c_kennung = '" & cbxKontotyp._value & "'"
End Select
Dim sqlStringVerag360Zahlungseingaenge = " SELECT cast(d_beleg as Date) as d_beleg ,c_urbelegid, c_buchtext, case when c_sollhabenkz = 'H' then eur_betrag else eur_betrag * -1 end as eur_betrag , BU.i_konto,KTO.c_landid
FROM [FIBU2].[dbo].[fibu_belegzeile] as BU
RIGHT join fibu_konto KTO on KTO.i_konto=BU.i_konto AND BU.i_firm_refid=KTO.i_firm_refid
where cast(d_beleg as date) = '03.04.2025' and BU.i_firm_refid=" & Firma_ID & " and (c_kennung = 'KE' or BU.i_konto in (5827, 5829) or LEFT(BU.i_konto,1) = 0 or c_kennung = 'DE')
where cast(d_beleg as date) = '" & txtZahlEingaenge._value & "' and BU.i_firm_refid=" & Firma_ID & SQLWhere & "
and (BU.i_konto in (2800, 2801, 2802, 2803, 2811, 2812, 2813, 2814, 2817, 2818, 2822 ,2826, 2827, 2828, 2831, 2832, 2833, 2837, 2845) or i_gegenkonto in (2800, 2801, 2802, 2803, 2811, 2812, 2813, 2814, 2817, 2818, 2822 ,2826, 2827, 2828, 2831, 2832, 2833, 2837, 2845))
order by i_beleg_refid, i_zeilen_refid"
order by i_konto, i_beleg_refid, i_zeilen_refid"
'MsgBox(sqlStr)
@@ -188,6 +192,13 @@ Public Class frmBU_Mahnlauf
MyComboBox2.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("12. Mahnung", "12"))
MyComboBox2.changeItem("")
cbxKontotyp.Items.Clear()
cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Alle", "A"))
cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Debitoren", "DE"))
cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Kreditoren", "KE"))
cbxKontotyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Sachkonten", "KO"))
cbxKontotyp.changeItem("Alle")
MyTextBox2._value = Now.ToShortDateString
End Sub
@@ -478,10 +489,10 @@ Public Class frmBU_Mahnlauf
Else
'über Übersetzung geregelt, alle anderen über getMahnstufe (sollte in Zukunft noch abgeändert werden!)
getMahnstufetext("DE", MAHNSTUFE, MahnTEXT_VOR, MahnTEXT_NACH, MAHNTEXT)
rpt.lblUeberschriftRG_GS.Text = MAHNTEXT
rpt.txtMahnungstextVOR.Text = MahnTEXT_VOR
rpt.txtVermerk.Text = MahnTEXT_NACH
End If
rpt.lblUeberschriftRG_GS.Text = MAHNTEXT
rpt.txtMahnungstextVOR.Text = MahnTEXT_VOR
rpt.txtVermerk.Text = MahnTEXT_NACH
End If
@@ -725,22 +736,22 @@ Public Class frmBU_Mahnlauf
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = Mail_Subject
Mail.HTMLBody = Mail_HTMLBody
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = Mail_Subject
Mail.HTMLBody = Mail_HTMLBody
Mail.To = Mail_To
Mail.CC = Mail_CC
Mail.BCC = Mail_BCC
Mail.To = Mail_To
Mail.CC = Mail_CC
Mail.BCC = Mail_BCC
Mail.Attachments.Add(tmpPath, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , pdfBezeichnung)
Try
'Mail.SentOnBehalfOfName = SDL.cFakturierung.getDefaultMail("AMBAR") ',"buchhaltung@verag.ag"
Catch ex2 As Exception
MsgBox(ex2.Message)
End Try
Mail.Display()
End Try
Mail.Display()
End Select
@@ -1234,7 +1245,7 @@ Public Class frmBU_Mahnlauf
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name, , "WiedergestellungsDatum Fehler")
Finally
fProgBar.Close
fProgBar.Close()
End Try
Me.Cursor = Cursors.Default
End Sub
@@ -1247,10 +1258,14 @@ Public Class frmBU_Mahnlauf
Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click
Me.Cursor = Cursors.WaitCursor
btnSuche.PerformClick()
' cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False)
'cProgramFunctions.genExcelFromDGV_NEW(MyDatagridview1, False)
Dim dt = MyDatagridview1.DataSource
cProgramFunctions.genExcelFromDT_NEW(dt, {"G1:G" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)})
If cbxZahlungseingaenge.Checked Then
cProgramFunctions.genExcelFromDT_NEW(dt, {"E1:E" & (dt.Rows.Count + 1)},,, "Zahlungseingänge vom " & txtZahlEingaenge._value,, True)
Else
cProgramFunctions.genExcelFromDT_NEW(dt, {"G1:G" & (dt.Rows.Count + 1), "J1:J" & (dt.Rows.Count + 1)})
End If
Me.Cursor = Cursors.Default
End Sub
@@ -1287,15 +1302,108 @@ Public Class frmBU_Mahnlauf
End Sub
Private Sub cbxZahlungseingaenge_CheckedChanged(sender As Object, e As EventArgs) Handles cbxZahlungseingaenge.CheckedChanged
'initDGV(cbxZahlungseingaenge.Checked)
If cbxZahlungseingaenge.Checked Then
txtZahlEingaenge.Visible = True
cbxKontotyp.Visible = True
btnMail_Intern.Visible = True
Select Case Now.DayOfWeek
Case 1 : txtZahlEingaenge._value = Today().AddDays(-3) 'Am Montag Daten von Freitag
Case Else : txtZahlEingaenge._value = Today().AddDays(-1) ' Sonst daten von gestern.
End Select
Else
txtZahlEingaenge.Visible = False
cbxKontotyp.Visible = False
btnMail_Intern.Visible = False
End If
End Sub
Private Sub cboFirma_SelectedValueChanged(sender As Object, e As EventArgs) Handles cboFirma.SelectedValueChanged
If cboFirma._value <> "" AndAlso cboFirma._value = 19 Then
cbxZahlungseingaenge.Visible = True
Else
cbxZahlungseingaenge.Visible = False
cbxZahlungseingaenge.Checked = False
End If
End Sub
Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
If cboFirma._value <> "" Then
If vbYes = MsgBox("Sollen die OPs aus Syska für die Firma " & cboFirma.Text.Replace(cboFirma._value, "") & " aktualisiert werden?" & vbNewLine & "Dieser Vorgang dauert unter Umständen etwas!", vbYesNoCancel) Then
If Not VERAG_PROG_ALLGEMEIN.cSyska_Interface.OP_Einlesen(cboFirma._value) Then
MsgBox("Fehler beim aktualisieren der OPs aus Syska!")
Else
initDGV(cbxZahlungseingaenge.Checked)
End If
End If
End If
End Sub
Private Sub btnMail_Intern_Click(sender As Object, e As EventArgs) Handles btnMail_Intern.Click
Try
Me.Cursor = Cursors.WaitCursor
btnSuche.PerformClick()
Dim dt = MyDatagridview1.DataSource
Dim desc = "Zahlungseingänge vom " & txtZahlEingaenge._value
Dim attachment = cProgramFunctions.genExcelFromDT_NEW(dt, {"E1:E" & (dt.Rows.Count + 1)},,, desc,, True,,,, False)
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Mail.Subject = desc & " (" & cbxKontotyp.Text & ")"
If cboFirma._value = 19 Then
Dim accountToSent = "fibu360@verag.ag "
If accountToSent <> "" Then
If outl.Session.Accounts.Count > 0 Then
For Each oAccount In outl.Session.Accounts
If oAccount.SmtpAddress = accountToSent Then
Mail.SendUsingAccount = oAccount
Exit For
End If
Next
End If
End If
End If
'noch keine unterscheidung der Abteilungen bei MDM, daher hardcodiert.
Dim MautVertrMail = "z.batinic@verag.ag;alex@verag.ag;maut.ro@verag.ag;ma@verag.ag;n.ljubas@verag.ag;s.vidovic@verag.ag;"
Dim MautFaktMail = "s.kriegner@verag.ag;"
Select Case cbxKontotyp._value
Case "A" : Mail.To = MautVertrMail & MautFaktMail
Case "DE" : Mail.To = MautVertrMail
Case "KE" : Mail.To = MautFaktMail
Case "KO" : Mail.To = ""
End Select
Mail.Attachments.Add(attachment)
Mail.Display()
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR("Fehler beim Ermitteln des Mail-Accounts." & ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
Me.Cursor = Cursors.Default
End Sub
End Class

View File

@@ -1124,7 +1124,7 @@ Public Class cProgramFunctions
Return ""
End Function
Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False) As String
Public Shared Function genExcelFromDT_NEW(dt As DataTable, Optional rangeAsWaehrung() As String = Nothing, Optional ShowAutoFilter As Boolean = True, Optional HeaderTxt As String = "", Optional HeaderTxt2 As String = "", Optional waehrungsZeichen As String = "", Optional fitCellsToContent As Boolean = False, Optional mergeHeadersToCell As Char = "", Optional Landscape As Boolean = False, Optional fitToOnePage As Boolean = False, Optional openFile As Boolean = True) As String
Try
Dim sPath As String = Environment.GetFolderPath(Environment.SpecialFolder.Personal) & "\VERAG\SDL\tmp\" ' My.Computer.FileSystem.GetTempFileName
@@ -1200,7 +1200,7 @@ Public Class cProgramFunctions
wb.SaveAs(filename)
Process.Start(filename)
If openFile Then Process.Start(filename)
Return filename
Catch ex As Exception