Compare commits

...

2 Commits

Author SHA1 Message Date
7e9f2ced11 fremdrechnungen, etc. 2025-10-22 16:20:51 +02:00
0eb68d12d9 timasabfrage inkl. Schalter. 2025-10-22 12:18:45 +02:00
5 changed files with 440 additions and 230 deletions

View File

@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben: ' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")> ' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.4.7.2")> <Assembly: AssemblyVersion("1.4.7.3")>
<Assembly: AssemblyFileVersion("1.4.7.2")> <Assembly: AssemblyFileVersion("1.4.7.3")>

View File

@@ -79,10 +79,12 @@ Public Class usrcntlFremdrechnungen
KUNDE = kundenSQL.getKundeByKdNr(kdNr) KUNDE = kundenSQL.getKundeByKdNr(kdNr)
dtkeineMWST = (New SQL).loadDgvBySql("select Land, Erstattungsland, Lieferant from tblKeineMWSTErstattung", "FMZOLL") dtkeineMWST = (New SQL).loadDgvBySql("select Land, Erstattungsland, Lieferant from tblKeineMWSTErstattung", "FMZOLL")
If KUNDE IsNot Nothing Then If KUNDE.KundenNr > 0 Then
dtKundeMWST = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE.KundenNr, "FMZOLL") dtKundeMWST = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE.KundenNr, "FMZOLL")
cbx.Visible = True
End If End If
SET_SDL("") SET_SDL("")
dgvInitWait = False dgvInitWait = False
@@ -211,7 +213,6 @@ Public Class usrcntlFremdrechnungen
aktLieferant = SDLNrTmp aktLieferant = SDLNrTmp
Dim anzahlTop = 1000 Dim anzahlTop = 1000
Dim sqlfehlendePDF As String = "" Dim sqlfehlendePDF As String = ""
Dim sqlfehlendePDF_PLOSE As String = "" Dim sqlfehlendePDF_PLOSE As String = ""
@@ -367,6 +368,7 @@ Public Class usrcntlFremdrechnungen
Private Function setSQLWhere(aktLieferant As String, land As String) As String Private Function setSQLWhere(aktLieferant As String, land As String) As String
'das hier geht (aktuell) nur PRO KUNDE -> ALSO nicht in der Gesamtübersicht!!!!!!!!
Dim SQLWhere = " between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "'" Dim SQLWhere = " between '" & dat_Sum_Von.Value.ToShortDateString & "' and '" & dat_Sum_Bis.Value.ToShortDateString & "'"
@@ -451,6 +453,8 @@ Public Class usrcntlFremdrechnungen
Private Function setSQLDetailWhere(aktLieferant As String, land As String, Optional alle As Boolean = False) As String Private Function setSQLDetailWhere(aktLieferant As String, land As String, Optional alle As Boolean = False) As String
'das hier ist nur PRO KUNDE möglich!!!
Dim SQLWhere = "" Dim SQLWhere = ""
If cbx.Checked AndAlso KUNDE IsNot Nothing Then If cbx.Checked AndAlso KUNDE IsNot Nothing Then
@@ -704,9 +708,6 @@ Public Class usrcntlFremdrechnungen
Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click Private Sub Button4_Click_1(sender As Object, e As EventArgs) Handles Button4.Click
If SplitContainer1.Panel2Collapsed Then If SplitContainer1.Panel2Collapsed Then
SplitContainer1.Panel2Collapsed = False SplitContainer1.Panel2Collapsed = False
@@ -788,7 +789,7 @@ Public Class usrcntlFremdrechnungen
If groups.Count > 0 Then If groups.Count > 0 Then
If Not vbYes = MsgBox("Möchten Sie die Rechnungen von " & groups.Count & " Kunden per Mail verschicken? " & IIf(Not cbxMailoeffnen.Checked, vbNewLine & "Die Mails werden sofort verschickt!", ""), vbYesNoCancel) Then If Not vbYes = MsgBox("Möchten Sie die Rechnungen von " & groups.Count & " Kunden per Mail verschicken? " & IIf(Not cbxMailoeffnen.Checked, vbNewLine & "Die Mails werden sofort ohne Dialogfeld verschickt!", ""), vbYesNoCancel) Then
Exit Sub Exit Sub
End If End If
@@ -797,227 +798,369 @@ Public Class usrcntlFremdrechnungen
Dim TextHTMLtable = "" Dim TextHTMLtable = ""
TextHTMLtable &= "<table border=1>" Dim pdflist = createEMailTable(TextHTMLtable, kvp, cbx.Checked)
TextHTMLtable &= "<tr><td>Supplier</td><td>Country</td><td>Date</td></tr>"
Dim pdflist As New List(Of String)
For Each row In kvp.Value
Dim Lieferant = ""
If dgvLFRechnung.Columns.Contains("Lieferant") Then
Lieferant = row.Cells("Lieferant").Value
Else
Lieferant = aktLieferant
End If
If Lieferant = "VERAG" Then
'VERAG IGNORIEREN
'Dim ReDat = row.Cells("Rechnungsdatum").Value
'Dim ReNr = row.Cells("Rechnungsnummer").Value
'If ReDat IsNot Nothing AndAlso ReNr > 0 Then
' Me.Cursor = Cursors.WaitCursor
' Dim da_id = SQL.getValueTxtBySql("SELECT TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum as Date) ='" & ReDat & "' and Rechnungsausgang.RechnungsNr='" & ReNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL")
' cFakturierung.doRechnungsDruck_SRorER(da_id,, False, 3)
'End If
Else
If Lieferant = "IDS" Then
Dim dt As New DataTable
dt = initDGVRechnungsdetails(row.Cells("invoice_id").Value, True)
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & Lieferant & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Land") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Rechnungsdatum") & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId As Integer = IIf(IsDBNull(r.Item("daId")), -1, r.Item("daId"))
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
Next
Else
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & Lieferant & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Land").Value & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Rechnungsdatum").Value & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId As Integer = IIf(IsDBNull(row.Cells("daId").Value), -1, row.Cells("daId").Value)
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
End If
End If
Next
TextHTMLtable &= "</table>"
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Dim kundeMail As New cKunden()
kundeMail = kundenSQL.getKundeByKdNr(kvp.Key)
Select Case kundeMail.LandKz
Case "TR"
Mail.Subject = kundeMail.Kurzname & " - ORIJINAL FATURA "
Mail.HTMLBody = "Bayanlar ve Baylar!,<br><br>Ekte izlere orijinal faturalarinizi gönderiyoruz.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Iyi calismalar dileriz.<br><br>"
Case "A", "AT", "D", "DE", "CH"
Mail.Subject = kundeMail.Kurzname & " - ORIGINAL RECHNUNG "
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die Originalrechnungen.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>"
Case "RO"
Mail.Subject = kundeMail.Kurzname & " - FACTURI RETURNATE "
Mail.HTMLBody = "Stimati domni, stimate doamne,<br><br>Va returnam facturile originale care nu au fost utilizate spre recuperare TVA.<br><br>Va multumim pentru colaborarea.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Cu stima<br><br>"
Case "HR", "BIH", "SLO", "SRB", "BIH"
Mail.Subject = kundeMail.Kurzname & " - ORGINALNI RACUNI "
Mail.HTMLBody = "Postovanje,<br><br>prilozeno Vam dostavljamo orginalne racune za Vasu daljnu upotrebu.<br><br>Za pitanja stojimo na raspolaganju.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Srdacan pozdrav<br><br>"
Case Else
Mail.Subject = kundeMail.Kurzname & " - Invoice No."
Mail.HTMLBody = TextHTMLtable
Mail.HTMLBody = "Dear Sir or Madam,<br><br>attached we send you the original invoice mentioned above.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>"
End Select
Mail.HTMLBody &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
Mail.HTMLBody &= "<br>"
Mail.HTMLBody &= cFakturierung.getSignature("DE", 19, True, True)
If pdflist.Count > 0 Then
For Each pdf In pdflist
Mail.Attachments.Add(pdf, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , )
Next
End If
Mail.To &= kundeMail.EMail
Mail.CC &= kundeMail.EMail2
If cbxMailoeffnen.Checked Then
Try
Mail.Display()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
Try
If Mail IsNot Nothing Then
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "MAIL-ORIG-RG",,, kvp.Key)
API.api_EMail = Mail.To
API.api_EMailCC = Mail.CC
API.api_EMailBCC = IIf(Mail.BCC <> "", Mail.BCC & ";mmdabrechnung@verag.ag", "mmdabrechnung@verag.ag")
API.api_EMailSubject = Mail.Subject
API.api_EMailText = Mail.HTMLBody
API.api_EMailAttCnt = Mail.Attachments.Count
If Mail IsNot Nothing Then
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(API.api_EMail, API.api_EMailSubject, API.api_EMailText, "mmdabrechnung@verag.ag", False, False, API.api_EMailCC, API.api_EMailBCC, pdflist,, "mmdabrechnung@verag.ag") Then
API.UPDTAE_OK()
Else
API.UPDTAE_ERR()
End If
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Me.Cursor = Cursors.Default
End Try
End If
createEmail(kvp.Key, TextHTMLtable, pdflist)
Next Next
End If End If
End Sub End Sub
'Sub SelectRow(kdnr, kfz, SDLNr, history) Private Function createEMailTable(ByRef TextHTMLtable As String, kvp As KeyValuePair(Of Object, List(Of DataGridViewRow)), onlyRelevantInvioces As Boolean) As List(Of String)
' dgvInitWait = True
' dgvSDL.ClearSelection()
' For Each r As DataGridViewRow In dgvSDL.Rows
' If r.Cells("KundenNr").Value = kdnr AndAlso
' r.Cells("SDLNr").Value = SDLNr AndAlso
' r.Cells("KfzKennzeichen").Value = kfz AndAlso
' r.Cells("History").Value = history Then
' r.Selected = True
' dgvSDL.FirstDisplayedScrollingRowIndex = r.Index
' Exit For
' End If
' Next
' dgvInitWait = False
' 'ReloadLeistung()
' dgvSDL.PerformLayout()
'End Sub
'------------------------------------------------------------
'toDo-Logik für die Ausnahmen - START - wie in Function "setSQLWhere(aktLieferant As String, land As String) As String"
'------------------------------------------------------------
'1. wenn die Rechnung in dem Land in dem er ansässig ist ausgestellt wurde (rumän. Kunde Rechnung ausgestellt in Rumänien = z.B. IDS in RO getankt…)
Dim landKZiso2 = ""
Dim KUNDE_TEMP As cKunden
KUNDE_TEMP = kundenSQL.getKundeByKdNr(kvp.Key)
If KUNDE_TEMP.LandKz <> "" Then
If KUNDE_TEMP.LandKz.Length = 2 Then
landKZiso2 = KUNDE_TEMP.LandKz
ElseIf KUNDE_TEMP.LandKz.Length = 3 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE_TEMP.LandKz)
ElseIf KUNDE_TEMP.LandKz.Length = 1 Then
landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(KUNDE_TEMP.LandKz)
End If
End If
Dim dtKundeMWSTTemp As DataTable = (New SQL).loadDgvBySql("select LandKz from tblKundenMWST where KdNr = " & KUNDE_TEMP.KundenNr, "FMZOLL")
'2. wenn die Rechnung die Summe NULL aufweist
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt (auch nicht auf Diesel -> IDS)
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
'If cbx.Checked AndAlso aktLieferant <> "IDS" AndAlso KUNDE IsNot Nothing Then
' Dim erw As New cKundenErweitert(KUNDE.KundenNr)
' If erw.kde_keineMWSt Then Return SQLWhere
' SQLWhere &= "AND ("
' 'ORIGINAL-RECHNUNG senden wenn:
' '1. wenn die Rechnung in dem Land in dem er ansässig ist ausgestellt wurde (rumän. Kunde Rechnung ausgestellt in Rumänien = z.B. IDS in RO getankt…)
' Dim landKZiso2 = ""
' If LAND <> "" Then 'LandKZ vom Kunden muss auf ISO2 konvertiert werden, weil da ein Misch-Masch in der Datenbank herrscht!
' If KUNDE.LandKz <> "" Then
' If KUNDE.LandKz.Length = 2 Then
' landKZiso2 = KUNDE.LandKz
' ElseIf KUNDE.LandKz.Length = 3 Then
' landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO3Land(KUNDE.LandKz)
' ElseIf KUNDE.LandKz.Length = 1 Then
' landKZiso2 = VERAG_PROG_ALLGEMEIN.cProgramFunctions.getISO2LandFromISO1Land(KUNDE.LandKz)
' End If
' SQLWhere &= " " & LAND & " in ('" & landKZiso2 & "')"
' End If
' End If
' '2. wenn die Rechnung die MWST-SUMME 0 aufweist!!!
' Select Case aktLieferant
' Case "UTA" : SQLWhere &= " OR Gesamtbetrag_Umsatzsteuer_in_Darstellwährung = 0 " 'UTA bei UTA auch EPN ausblenden!
' Case "PLOSE" : SQLWhere &= " OR plInv_MWSTBetrag = 0" 'PLOSE
' Case "VERAG" : SQLWhere &= " OR tblTrdinInvoice.SteuerbetragLokal = 0" 'VERAG
' Case "MSE" : SQLWhere &= " OR total_vat_amount_euro = 0" 'MSE
' Case "RMC" : SQLWhere &= " OR rmc_betragMWST = 0" 'RMC
' Case "ALLE" : SQLWhere &= " OR temp.MWSt = 0" 'ALLE
' Case "UTA_" : SQLWhere &= " 1 <> 1"
' Case Else : SQLWhere &= " 1 <> 1"
' End Select
' '3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt
' If LAND <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then
' Dim dtkeineMWST_ohneContraint As DataTable = dtkeineMWST.Select("Lieferant <> 'IDS' AND Land = '" & landKZiso2 & "'").CopyToDataTable
' Dim counter = 0
' Dim landBez As String = ""
' For Each row As DataRow In dtkeineMWST_ohneContraint.Rows
' landBez &= "'" & row.Item("Erstattungsland") & "'"
' counter = counter + 1
' If (dtkeineMWST_ohneContraint.Rows.Count <> 0 And counter <> dtkeineMWST_ohneContraint.Rows.Count) Then landBez &= ","
' Next
' SQLWhere &= " OR " & LAND & " in (" & landBez & ")"
' If aktLieferant = "ALLE" Then SQLWhere &= " OR " & LAND & " in ('')" 'damit IDS ohne Land nicht ausgeschlossen wird.
' End If
' '4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
' If LAND <> "" AndAlso dtKundeMWST.Rows.Count > 0 Then
' Dim counter = 0
' Dim landBez As String = ""
' For Each row As DataRow In dtKundeMWST.Rows
' landBez &= "'" & row.Item("LandKz") & "'"
' counter = counter + 1
' If (dtKundeMWST.Rows.Count <> 0 And counter <> dtKundeMWST.Rows.Count) Then landBez &= ","
' Next
' SQLWhere &= " OR " & LAND & " in (" & landBez & ")"
' End If
' SQLWhere &= ")"
'------------------------------------------------------------
'toDo-Logik für die Ausnahmen - END
'------------------------------------------------------------
TextHTMLtable &= "<table border=1>"
TextHTMLtable &= "<tr><td>Supplier</td><td>Country</td><td>Date</td></tr>"
Dim pdflist As New List(Of String)
For Each row In kvp.Value
Dim erw As New cKundenErweitert(kvp.Key)
Dim Lieferant = ""
If dgvLFRechnung.Columns.Contains("Lieferant") Then
Lieferant = row.Cells("Lieferant").Value
Else
Lieferant = aktLieferant
End If
If onlyRelevantInvioces AndAlso Lieferant <> "IDS" AndAlso erw.kde_keineMWSt Then Exit For 'abbruchbedingung
Dim sendÍnvoice As Boolean = IIf(onlyRelevantInvioces, False, True)
'ORIGINAL-RECHNUNG senden wenn:
If onlyRelevantInvioces Then
'1. wenn die Rechnung in dem Land in dem er ansässig ist ausgestellt wurde (rumän. Kunde Rechnung ausgestellt in Rumänien = z.B. IDS in RO getankt…)
If row.Cells("Land").Value <> "" AndAlso landKZiso2 = row.Cells("Land").Value Then sendÍnvoice = True
'2. wenn die Rechnung die MWST-SUMME 0 aufweist!!!
If Not sendÍnvoice AndAlso row.Cells("MWSt").Value = 0 Then sendÍnvoice = True
'3. Rechnungen der Länder in denen der Kunde keine MWST erstattet bekommt -> dtkeineMWST
If Not sendÍnvoice AndAlso landKZiso2 <> "" AndAlso dtkeineMWST.Rows.Count > 0 Then
Dim rows() As DataRow = dtkeineMWST.Select("Lieferant <> 'IDS' AND Land = '" & landKZiso2 & "' and Erstattungsland = '" & row.Cells("Land").Value & "'")
Dim dtkeineMWST_ohneContraint As New DataTable
If rows.Length > 0 Then dtkeineMWST_ohneContraint = rows.CopyToDataTable()
If dtkeineMWST_ohneContraint.Rows.Count > 0 Then sendÍnvoice = True
End If
'4. Rechnungen der Länder, in denen der Kunde selber MWST beantragt
If Not sendÍnvoice AndAlso landKZiso2 <> "" AndAlso dtKundeMWSTTemp.Rows.Count > 0 Then
Dim rows() As DataRow = dtKundeMWSTTemp.Select("LandKz = '" & row.Cells("Land").Value & "'")
Dim dtKundeMWSTTemp_ohneContraint As New DataTable
If rows.Length > 0 Then dtKundeMWSTTemp_ohneContraint = rows.CopyToDataTable()
If dtKundeMWSTTemp_ohneContraint.Rows.Count > 0 Then sendÍnvoice = True
End If
End If
If Lieferant = "VERAG" Then
'VERAG IGNORIEREN
'Dim ReDat = row.Cells("Rechnungsdatum").Value
'Dim ReNr = row.Cells("Rechnungsnummer").Value
'If ReDat IsNot Nothing AndAlso ReNr > 0 Then
' Me.Cursor = Cursors.WaitCursor
' Dim da_id = SQL.getValueTxtBySql("Select TOP(1) RK_ID FROM Rechnungsausgang where cast(Rechnungsausgang.RechnungsDatum As Date) ='" & ReDat & "' and Rechnungsausgang.RechnungsNr='" & ReNr & "' AND FilialenNr = 4814 AND RK_ID is not null", "FMZOLL")
' cFakturierung.doRechnungsDruck_SRorER(da_id,, False, 3)
'End If
Else
If Lieferant = "IDS" Then
Dim dt As New DataTable
dt = initDGVRechnungsdetails(row.Cells("invoice_id").Value, True)
For Each r As DataRow In dt.Rows
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & Lieferant & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Land") & "</b></td>"
TextHTMLtable &= "<td><b>" & r.Item("Rechnungsdatum") & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId As Integer = IIf(IsDBNull(r.Item("daId")), -1, r.Item("daId"))
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
Next
Else
If sendÍnvoice Then
TextHTMLtable &= "<tr>"
TextHTMLtable &= "<td><b>" & Lieferant & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Land").Value & "</b></td>"
TextHTMLtable &= "<td><b>" & row.Cells("Rechnungsdatum").Value & "</b></td>"
TextHTMLtable &= "</tr>"
Dim daId As Integer = IIf(IsDBNull(row.Cells("daId").Value), -1, row.Cells("daId").Value)
If daId > 0 Then
Dim DS As New VERAG_PROG_ALLGEMEIN.cDATENSERVER(daId)
pdflist.Add(DS.GET_TOP1_PATH())
End If
End If
End If
End If
Next
TextHTMLtable &= "</table>"
Return pdflist
End Function
Private Sub createEmail(kdNr As Integer, ByRef TextHTMLtable As String, pdflist As List(Of String))
Dim outl As New Outlook.Application
Dim Mail As Microsoft.Office.Interop.Outlook.MailItem
Mail = outl.CreateItem(0)
Dim kundeMail As New cKunden()
kundeMail = kundenSQL.getKundeByKdNr(kdNr)
Select Case kundeMail.LandKz
Case "TR"
Mail.Subject = kundeMail.Kurzname & " - ORIJINAL FATURA "
Mail.HTMLBody = "Bayanlar ve Baylar!,<br><br>Ekte izlere orijinal faturalarinizi gönderiyoruz.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Iyi calismalar dileriz.<br><br>"
Case "A", "AT", "D", "DE", "CH"
Mail.Subject = kundeMail.Kurzname & " - ORIGINAL RECHNUNG "
Mail.HTMLBody = "Sehr geehrte Damen und Herren,<br><br>im Anhang senden wir Ihnen die Originalrechnungen.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Mit freundlichen Grüßen<br><br>"
Case "RO"
Mail.Subject = kundeMail.Kurzname & " - FACTURI RETURNATE "
Mail.HTMLBody = "Stimati domni, stimate doamne,<br><br>Va returnam facturile originale care nu au fost utilizate spre recuperare TVA.<br><br>Va multumim pentru colaborarea.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Cu stima<br><br>"
Case "HR", "BIH", "SLO", "SRB", "BIH"
Mail.Subject = kundeMail.Kurzname & " - ORGINALNI RACUNI "
Mail.HTMLBody = "Postovanje,<br><br>prilozeno Vam dostavljamo orginalne racune za Vasu daljnu upotrebu.<br><br>Za pitanja stojimo na raspolaganju.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Srdacan pozdrav<br><br>"
Case Else
Mail.Subject = kundeMail.Kurzname & " - Invoice No."
Mail.HTMLBody = TextHTMLtable
Mail.HTMLBody = "Dear Sir or Madam,<br><br>attached we send you the original invoice mentioned above.<br><br>"
Mail.HTMLBody &= TextHTMLtable
Mail.HTMLBody &= "<br><br><br>Best regards<br><br>"
End Select
Mail.HTMLBody &= VERAG_PROG_ALLGEMEIN.cAllgemein.USRNAME & "<br>"
Mail.HTMLBody &= "<br>"
Mail.HTMLBody &= cFakturierung.getSignature("DE", 19, True, True)
If pdflist.Count > 0 Then
For Each pdf In pdflist
Mail.Attachments.Add(pdf, Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, , )
Next
End If
Mail.To &= kundeMail.EMail
Mail.CC &= kundeMail.EMail2
If cbxMailoeffnen.Checked Then
Try
Mail.Display()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
Try
If Mail IsNot Nothing Then
Dim API = VERAG_PROG_ALLGEMEIN.cAPI.INSERT_API(VERAG_PROG_ALLGEMEIN.cAPI_INOUT.OUT, VERAG_PROG_ALLGEMEIN.cAPI_Type.MAIL, VERAG_PROG_ALLGEMEIN.cAPI_ART.SDL_OUT_SAMMELRECHNUNG, "MAIL-ORIG-RG",,, kdNr)
API.api_EMail = Mail.To
API.api_EMailCC = Mail.CC
API.api_EMailBCC = IIf(Mail.BCC <> "", Mail.BCC & ";mmdabrechnung@verag.ag", "mmdabrechnung@verag.ag")
API.api_EMailSubject = Mail.Subject
API.api_EMailText = Mail.HTMLBody
API.api_EMailAttCnt = Mail.Attachments.Count
If Mail IsNot Nothing Then
If VERAG_PROG_ALLGEMEIN.cProgramFunctions.sendMail(API.api_EMail, API.api_EMailSubject, API.api_EMailText, "mmdabrechnung@verag.ag", False, False, API.api_EMailCC, API.api_EMailBCC, pdflist,, "mmdabrechnung@verag.ag") Then
API.UPDTAE_OK()
Else
API.UPDTAE_ERR()
End If
End If
End If
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
Me.Cursor = Cursors.Default
End Try
End If
End Sub
Private Sub ToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem3.Click Private Sub ToolStripMenuItem3_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem3.Click
Me.Cursor = Cursors.WaitCursor Me.Cursor = Cursors.WaitCursor
cProgramFunctions.genExcelFromDGV(dgvLFRechnung, True) cProgramFunctions.genExcelFromDGV(dgvLFRechnung, True)
@@ -1042,16 +1185,6 @@ Public Class usrcntlFremdrechnungen
SET_SDL(aktLieferant) SET_SDL(aktLieferant)
End Sub End Sub
Private Sub dgvSDL_RELOADED() Handles dgvLFRechnung.RELOADED
' redRows()
End Sub
Private Sub usrCntlKartenDaten_SizeChanged(sender As Object, e As EventArgs) Handles Me.SizeChanged
' initDGVWidth()
End Sub
Dim vval As Integer Dim vval As Integer
Private Sub dgvSDL_GotFocus(sender As Object, e As EventArgs) Handles dgvLFRechnung.GotFocus Private Sub dgvSDL_GotFocus(sender As Object, e As EventArgs) Handles dgvLFRechnung.GotFocus
'dgvSDL.VerticalScrollingOffset = vval 'dgvSDL.VerticalScrollingOffset = vval

View File

@@ -101,6 +101,7 @@ Public Class cMitarbeiter
Property mit_Notfall_Name As Object = Nothing Property mit_Notfall_Name As Object = Nothing
Property mit_Notfall_Handy As Object = Nothing Property mit_Notfall_Handy As Object = Nothing
Property mit_Notfall_Mail As Object = Nothing Property mit_Notfall_Mail As Object = Nothing
Property mit_SchalterID As Object = Nothing
@@ -219,6 +220,7 @@ Public Class cMitarbeiter
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("mit_Notfall_Name", mit_Notfall_Name)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("mit_Notfall_Name", mit_Notfall_Name))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("mit_Notfall_Handy", mit_Notfall_Handy)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("mit_Notfall_Handy", mit_Notfall_Handy))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("mit_Notfall_Mail", mit_Notfall_Mail)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("mit_Notfall_Mail", mit_Notfall_Mail))
list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("mit_SchalterID", mit_SchalterID))
@@ -428,6 +430,7 @@ Public Class cMitarbeiter
If Not dr.Item("mit_Notfall_Handy") Is DBNull.Value Then Me.mit_Notfall_Handy = dr.Item("mit_Notfall_Handy") If Not dr.Item("mit_Notfall_Handy") Is DBNull.Value Then Me.mit_Notfall_Handy = dr.Item("mit_Notfall_Handy")
If Not dr.Item("mit_Notfall_Name") Is DBNull.Value Then Me.mit_Notfall_Name = dr.Item("mit_Notfall_Name") If Not dr.Item("mit_Notfall_Name") Is DBNull.Value Then Me.mit_Notfall_Name = dr.Item("mit_Notfall_Name")
If Not dr.Item("mit_Notfall_Mail") Is DBNull.Value Then Me.mit_Notfall_Mail = dr.Item("mit_Notfall_Mail") If Not dr.Item("mit_Notfall_Mail") Is DBNull.Value Then Me.mit_Notfall_Mail = dr.Item("mit_Notfall_Mail")
If Not dr.Item("mit_SchalterID") Is DBNull.Value Then Me.mit_SchalterID = dr.Item("mit_SchalterID")
Catch ex As Exception Catch ex As Exception

View File

@@ -24,8 +24,8 @@ Partial Class frmTimasabfrage
'Das Bearbeiten mit dem Code-Editor ist nicht möglich. 'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> <System.Diagnostics.DebuggerStepThrough()>
Private Sub InitializeComponent() Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container() Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel()
Me.MyPanel1 = New VERAG_PROG_ALLGEMEIN.MyPanel(Me.components) Me.cbxSchalterID = New VERAG_PROG_ALLGEMEIN.MyComboBox()
Me.rbHO = New System.Windows.Forms.RadioButton() Me.rbHO = New System.Windows.Forms.RadioButton()
Me.rbBuero = New System.Windows.Forms.RadioButton() Me.rbBuero = New System.Windows.Forms.RadioButton()
Me.Button1 = New System.Windows.Forms.Button() Me.Button1 = New System.Windows.Forms.Button()
@@ -33,6 +33,7 @@ Partial Class frmTimasabfrage
Me.btnClose = New System.Windows.Forms.Button() Me.btnClose = New System.Windows.Forms.Button()
Me.btn = New System.Windows.Forms.Button() Me.btn = New System.Windows.Forms.Button()
Me.Label1 = New System.Windows.Forms.Label() Me.Label1 = New System.Windows.Forms.Label()
Me.lblSchalter = New System.Windows.Forms.Label()
Me.MyPanel1.SuspendLayout() Me.MyPanel1.SuspendLayout()
Me.SuspendLayout() Me.SuspendLayout()
' '
@@ -40,6 +41,8 @@ Partial Class frmTimasabfrage
' '
Me.MyPanel1.BackColor = System.Drawing.Color.White Me.MyPanel1.BackColor = System.Drawing.Color.White
Me.MyPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.MyPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.MyPanel1.Controls.Add(Me.lblSchalter)
Me.MyPanel1.Controls.Add(Me.cbxSchalterID)
Me.MyPanel1.Controls.Add(Me.rbHO) Me.MyPanel1.Controls.Add(Me.rbHO)
Me.MyPanel1.Controls.Add(Me.rbBuero) Me.MyPanel1.Controls.Add(Me.rbBuero)
Me.MyPanel1.Controls.Add(Me.Button1) Me.MyPanel1.Controls.Add(Me.Button1)
@@ -53,6 +56,24 @@ Partial Class frmTimasabfrage
Me.MyPanel1.Size = New System.Drawing.Size(264, 103) Me.MyPanel1.Size = New System.Drawing.Size(264, 103)
Me.MyPanel1.TabIndex = 3 Me.MyPanel1.TabIndex = 3
' '
'cbxSchalterID
'
Me.cbxSchalterID._allowedValuesFreiText = Nothing
Me.cbxSchalterID._allowFreiText = False
Me.cbxSchalterID._value = ""
Me.cbxSchalterID.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
Me.cbxSchalterID.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cbxSchalterID.DropDownWidth = 50
Me.cbxSchalterID.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.cbxSchalterID.Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.cbxSchalterID.FormattingEnabled = True
Me.cbxSchalterID.Items.AddRange(New Object() {"", "100000-199999: XXXXXX", "200000-299999: XXXXXX", "300000-399999: XXXXXX", "400000-499999: XXXXXX", "500000-599999: XXXXXX", "600000-699999: XXXXXX", "700000-799999: XXXXXX", "800000-899999: XXXXXX", "900000-999999: XXXXXX"})
Me.cbxSchalterID.Location = New System.Drawing.Point(3, 34)
Me.cbxSchalterID.Name = "cbxSchalterID"
Me.cbxSchalterID.Size = New System.Drawing.Size(58, 28)
Me.cbxSchalterID.TabIndex = 10
Me.cbxSchalterID.Visible = False
'
'rbHO 'rbHO
' '
Me.rbHO.AutoSize = True Me.rbHO.AutoSize = True
@@ -145,6 +166,16 @@ Partial Class frmTimasabfrage
Me.Label1.Size = New System.Drawing.Size(222, 18) Me.Label1.Size = New System.Drawing.Size(222, 18)
Me.Label1.TabIndex = 6 Me.Label1.TabIndex = 6
' '
'lblSchalter
'
Me.lblSchalter.AutoSize = True
Me.lblSchalter.Location = New System.Drawing.Point(3, 20)
Me.lblSchalter.Name = "lblSchalter"
Me.lblSchalter.Size = New System.Drawing.Size(46, 13)
Me.lblSchalter.TabIndex = 11
Me.lblSchalter.Text = "Schalter"
Me.lblSchalter.Visible = False
'
'frmTimasabfrage 'frmTimasabfrage
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -169,4 +200,6 @@ Partial Class frmTimasabfrage
Friend WithEvents Button1 As Button Friend WithEvents Button1 As Button
Friend WithEvents rbHO As RadioButton Friend WithEvents rbHO As RadioButton
Friend WithEvents rbBuero As RadioButton Friend WithEvents rbBuero As RadioButton
Public WithEvents cbxSchalterID As MyComboBox
Friend WithEvents lblSchalter As Label
End Class End Class

View File

@@ -2,6 +2,7 @@
Dim mit As VERAG_PROG_ALLGEMEIN.cMitarbeiter Dim mit As VERAG_PROG_ALLGEMEIN.cMitarbeiter
Public Datum As Date = CDate(Now.ToShortDateString) Public Datum As Date = CDate(Now.ToShortDateString)
Public typ As Integer = -1 Public typ As Integer = -1
Public Schalter As Integer = -1
Sub New() Sub New()
' Dieser Aufruf ist für den Designer erforderlich. ' Dieser Aufruf ist für den Designer erforderlich.
@@ -20,6 +21,12 @@
cboTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Büro", "0")) cboTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Büro", "0"))
cboTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Homeoffice", "3")) cboTyp.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Homeoffice", "3"))
cbxSchalterID.Items.Clear()
cbxSchalterID.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("", ""))
cbxSchalterID.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("1", "1"))
cbxSchalterID.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("2", "2"))
cbxSchalterID.changeItem("")
If mit IsNot Nothing Then If mit IsNot Nothing Then
Label1.Text = "Zeit erfassen für: " & mit.mit_nname & " " & mit.mit_vname Label1.Text = "Zeit erfassen für: " & mit.mit_nname & " " & mit.mit_vname
If mit.mit_homeoffice Then If mit.mit_homeoffice Then
@@ -29,10 +36,23 @@
rbHO.Checked = False rbHO.Checked = False
cboTyp.changeItem("Büro") cboTyp.changeItem("Büro")
End If End If
If mit.mit_niederlassung = "NKD" Then
cbxSchalterID.Visible = True
Else
cbxSchalterID.Visible = False
End If
lblSchalter.Visible = cbxSchalterID.Visible
End If End If
End Sub End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
@@ -40,10 +60,24 @@
If typ = -1 Then If typ = -1 Then
MsgBox("Bitte Typ auswählen") MsgBox("Bitte Typ auswählen")
DialogResult = Windows.Forms.DialogResult.None DialogResult = Windows.Forms.DialogResult.None
Else Else
DialogResult = Windows.Forms.DialogResult.OK DialogResult = Windows.Forms.DialogResult.OK
End If End If
If mit.mit_niederlassung = "NKD" AndAlso Schalter = -1 Then
MsgBox("Bitte Schalter auswählen")
DialogResult = Windows.Forms.DialogResult.None
Else
If Schalter > 0 Then
mit.mit_SchalterID = Schalter
mit.SAVE()
End If
DialogResult = Windows.Forms.DialogResult.OK
End If
End Sub End Sub
Private Sub rbBuero_CheckedChanged(sender As Object, e As EventArgs) Handles rbBuero.CheckedChanged, rbHO.CheckedChanged Private Sub rbBuero_CheckedChanged(sender As Object, e As EventArgs) Handles rbBuero.CheckedChanged, rbHO.CheckedChanged
@@ -58,4 +92,11 @@
End Sub End Sub
Private Sub cbxSchalterID_SelectedValueChanged(sender As Object, e As EventArgs) Handles cbxSchalterID.SelectedValueChanged
If cbxSchalterID._value <> "" AndAlso IsNumeric(cbxSchalterID._value) AndAlso CInt(cbxSchalterID._value) > 0 Then
Schalter = cbxSchalterID._value
Else
Schalter = -1
End If
End Sub
End Class End Class