diff --git a/SDL/Fakturierung/cAutomailversand.vb b/SDL/Fakturierung/cAutomailversand.vb index e14cad41..1b5acccc 100644 --- a/SDL/Fakturierung/cAutomailversand.vb +++ b/SDL/Fakturierung/cAutomailversand.vb @@ -1,12 +1,15 @@ -Imports System.IO +Imports System.Diagnostics.PerformanceData +Imports System.IO +Imports GrapeCity.Documents.DX.Direct3D11 Imports Microsoft.Office.Interop Imports VERAG_PROG_ALLGEMEIN Public Class cAutomailversand - Sub sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, avisoIDs As List(Of Integer), Optional KundenNrList As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "", Optional datumBis As Date = Nothing, Optional clearBCC As Boolean = False) + Function sendMailSammelrechnung(_Rechnungsdatum As Date, SammelrechungArt As Integer, FirmaID As Integer, avisoIDs As List(Of Integer), Optional KundenNrList As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = False, Optional faktGruppe As String = "", Optional datumBis As Date = Nothing, Optional clearBCC As Boolean = False, Optional ByRef showCounter As String = "") Try Dim sql As New VERAG_PROG_ALLGEMEIN.SQL + Dim counterSent As Integer = 0 'BEI SAMMELRECHNUNG WIRD ZUERST INTERN DER STATUS AUF 2 GESETZT @@ -52,7 +55,7 @@ Public Class cAutomailversand For Each row As DataRow In dt.Rows - If dt.Rows.Count = 0 Then Exit Sub + If dt.Rows.Count = 0 Then Return False Dim BelegartenNr = "70" Dim steuerbetrag As Double = 0 @@ -176,7 +179,7 @@ Public Class cAutomailversand HTMLMail = "
" & TextHTML & "
" If setLog(SR_DT, row, FirmaID, SammelrechungArt, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,,, FISKAL) Then - + counterSent += 1 End If End If @@ -192,11 +195,14 @@ Public Class cAutomailversand Next + + showCounter = counterSent & " von " & dt.Rows.Count & " erfolgreich versendet!" + Catch ex As System.Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,,,,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", "mmdabrechnung@verag.ag")) End Try - End Sub + End Function Public Shared Function getWhereKundenNr(ids As List(Of Integer)) As String If ids Is Nothing Then Return "" @@ -210,9 +216,10 @@ Public Class cAutomailversand End Function - Sub sendMailEinzelrechnungen(FirmaID As Integer, Rechnungsdatum As Date, clearBCC As Boolean, Optional Sachbearbeiter As String = "", Optional RK_ID As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = True) + Sub sendMailEinzelrechnungen(FirmaID As Integer, Rechnungsdatum As Date, clearBCC As Boolean, Optional Sachbearbeiter As String = "", Optional RK_ID As List(Of Integer) = Nothing, Optional mailoeffnen As Boolean = True, Optional ByRef showCounter As String = "") Dim sql As New VERAG_PROG_ALLGEMEIN.SQL + Dim counterSent As Integer = 0 Dim SQL_RKID As String = "" @@ -306,7 +313,7 @@ Public Class cAutomailversand HTMLMail = "
" & TextHTML & "
" If setLog(dt, r, FirmaID, RECHNUNG.Sammelrechnung, Rechnungsdatum, ATTACHMENTS, Mailsubject, HTMLMail, MailTo, MailtoCC, MailtoBCC,, RECHNUNG, FISKAL, SPEDBUCH) Then - + counterSent += 1 End If End If @@ -319,6 +326,8 @@ Public Class cAutomailversand Next + showCounter = counterSent & " von " & dt.Rows.Count & " erfolgreich versendet!" + Catch ex As System.Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodBase.GetCurrentMethod.Name, VERAG_PROG_ALLGEMEIN.ERROR_OP.MAIL,,, "d.breimaier@verag.ag",,, setAccountToSend(FirmaID)) End Try @@ -1207,6 +1216,7 @@ Public Class cAutomailversand Dim AbfertigungsNr As Integer Dim FilialenNr As Integer Dim UnterNr As Integer + Dim RechnungsNr As Integer If SPEDBUCH IsNot Nothing Then FilialenNr = SPEDBUCH.FilialenNr @@ -1221,7 +1231,7 @@ Public Class cAutomailversand AbfertigungsNr = IIf(Not IsDBNull(r.Item("AbfertigungsNr")) AndAlso IsNumeric(r.Item("AbfertigungsNr")), CInt(r.Item("AbfertigungsNr")), 0) FilialenNr = IIf(Not IsDBNull(r.Item("FilialenNr")) AndAlso IsNumeric(r.Item("FilialenNr")), CInt(r.Item("FilialenNr")), 0) UnterNr = IIf(Not IsDBNull(r.Item("SpeditionsbuchUnterNr")) AndAlso IsNumeric(r.Item("SpeditionsbuchUnterNr")), CInt(r.Item("SpeditionsbuchUnterNr")), 0) - + RechnungsNr = IIf(Not IsDBNull(r.Item("RechnungsNr")) AndAlso IsNumeric(r.Item("RechnungsNr")), CInt(r.Item("RechnungsNr")), 0) Next End If @@ -1263,7 +1273,7 @@ Public Class cAutomailversand Else ' 'Bei erfolg. SAMMELRECHNUNG SENT-STATUS setzen - sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' + sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' and Rechnungsausgang.RechnungsNr = " & RechnungsNr & " And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4 And Automailversand_sent is null", "FMZOLL") End If @@ -1292,12 +1302,13 @@ Public Class cAutomailversand If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(EMails, EMail_subject, EMail_HTML, accountToSend, False, False, EMails_CC, EMails_BCC, attachList,, IIf(VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM, "d.breimaier@verag.ag", accountToSend)) Then API.UPDTAE_OK() + If RECHNUNG IsNot Nothing Then RECHNUNG.Automailversand_sent = Now() RECHNUNG.SAVE() Else - sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' + sql.doSQL("update Rechnungsausgang set Automailversand_sent = getDate() where Rechnungsausgang.Firma_ID = '" & FirmaID & "' And Rechnungsausgang.Sammelrechnung = '" & Sammelrechnungsart & "' And CONVERT(DATE,Rechnungsausgang.Rechnungsdatum,104) = '" & Rechnungsdatum.ToShortDateString & "' and Rechnungsausgang.RechnungsNr = " & RechnungsNr & " And isnull(Rechnungsausgang.Automailversand,0) = 1 And RechnungsNr > 0 And RechnungsKundenNr = " & row.Item("RechnungsKundenNr") & " And Status = 4 And Automailversand_sent is null", "FMZOLL") End If diff --git a/SDL/Fakturierung/frmAbrechnungsMaske.vb b/SDL/Fakturierung/frmAbrechnungsMaske.vb index 721e0d49..8f51f127 100644 --- a/SDL/Fakturierung/frmAbrechnungsMaske.vb +++ b/SDL/Fakturierung/frmAbrechnungsMaske.vb @@ -1031,7 +1031,8 @@ Public Class frmAbrechnungsMaske Next Dim fun As New cAutomailversand - fun.sendMailEinzelrechnungen(cboFirma._value, Today(), cbxMailoeffnen.Checked, cboSachbearbeiter._value, ListOfRK_ID, cbxMailoeffnen.Checked) + Dim ShowInfo As String = "" + fun.sendMailEinzelrechnungen(cboFirma._value, Today(), cbxMailoeffnen.Checked, cboSachbearbeiter._value, ListOfRK_ID, cbxMailoeffnen.Checked, ShowInfo) initDGV() If printAfterSent Then @@ -1044,6 +1045,11 @@ Public Class frmAbrechnungsMaske End If + If ShowInfo <> "" Then + MsgBox(ShowInfo) + End If + + End If diff --git a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb index 8e2f9af2..0f93c9ce 100644 --- a/SDL/Fakturierung/frmFaktSammelRgDrucken.vb +++ b/SDL/Fakturierung/frmFaktSammelRgDrucken.vb @@ -1018,10 +1018,16 @@ Public Class frmFaktSammelRgDrucken Next Dim fun As New cAutomailversand - fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked) + Dim ShowInfo As String = "" + fun.sendMailSammelrechnung(CDate(txtRechnungsdatum.Text), Sammelrechung, Firma, getAvisoIds(), getKundenNr(), cbxMailoeffnen.Checked,, CDate(txtZeitraumBis.Text), cbxMailoeffnen.Checked, ShowInfo) + If ShowInfo <> "" Then + MsgBox(ShowInfo) + End If initDGV() + + End If