AMBAR, Ueberstundenauszahlung, etc.

This commit is contained in:
2024-04-30 17:38:24 +02:00
parent 54f7a3ca76
commit 1dc6528253
10 changed files with 609 additions and 279 deletions

View File

@@ -1,4 +1,5 @@
Imports System.IO
Imports VERAG_PROG_ALLGEMEIN
Public Class usrCntlFaktAbrechnung
@@ -20,6 +21,7 @@ Public Class usrCntlFaktAbrechnung
Dim vorherige_RK_ID = 0
Dim nachstehende_RK_ID = 0
Dim veragKunde As Integer = -1
' Public VALUE_CHANGED = True ' Eigenschaft, ob das Formular gespeichert ist oder verändert wurde
@@ -58,6 +60,7 @@ Public Class usrCntlFaktAbrechnung
Case "AMBAR"
Firma = 24
cboFiliale.changeItem(5701)
Case "FRONT-OFFICE"
Firma = 17
cboFiliale.changeItem(5801)
@@ -239,6 +242,8 @@ Public Class usrCntlFaktAbrechnung
'txtEmpfaengerPLZ.Text = If(RECHNUNG., "")
' sbEmpfaengerLand.Text = If(RECHNUNG.EmpfängerLandKz, "")
If RECHNUNG.VermittlerKundenNr IsNot Nothing AndAlso RECHNUNG.VermittlerKundenNr > 0 Then
kdFirmaAuftraggeber.KdNr = RECHNUNG.VermittlerKundenNr
kdFirmaAuftraggeber.Text = If(RECHNUNG.VermittlerName_1, "")
@@ -248,6 +253,8 @@ Public Class usrCntlFaktAbrechnung
kdFirmaAuftraggeber.Text = If(RECHNUNG.VermittlerName_1, "")
txtAuftraggeberName2.Text = If(RECHNUNG.VermittlerName_2, "")
End If
txtAuftragggeberStrasse.Text = If(RECHNUNG.VermittlerStraße, "")
txtAuftragggeberOrt.Text = If(RECHNUNG.VermittlerOrt, "")
'txtAuftragggeberPLZ.Text = If(RECHNUNG., "")
@@ -298,7 +305,7 @@ Public Class usrCntlFaktAbrechnung
End If
txtText.Text = If(RECHNUNG.Text, "")
txtTextZZ.Text = If(RECHNUNG.Textzz, "")
txtTextZZ.Text = If(RECHNUNG.TextZZ, "")
If RECHNUNG IsNot Nothing AndAlso RECHNUNG.ForceSteuerschlüssel IsNot Nothing Then
cboSteuerschlüssel.changeItem(RECHNUNG.ForceSteuerschlüssel)
@@ -349,6 +356,12 @@ Public Class usrCntlFaktAbrechnung
setControlsEnabled(pnlAuftraggeber, pnlEnabled)
setControlsEnabled(pnlAvisierer, pnlEnabled)
If RECHNUNG.Sachbearbeiter = "AUTO" AndAlso RECHNUNG.VermittlerKundenNr = "3013401" Then 'sperren, damit autom. generierte Email neu mit Offerte initialisiwert werden kann!
dgvOffertenSperrliste.Enabled = False
Else
dgvOffertenSperrliste.Enabled = True
End If
SAVED = True
loaded = True
@@ -493,6 +506,9 @@ Public Class usrCntlFaktAbrechnung
tGespeichert.Interval = 2000
cboRgGS.SelectedIndex = 0
EUStGutschriftAnVeragToolStripMenuItem.Visible = False
cboFiliale.fillWithSQL("SELECT FilialenNr, Grenzstelle FROM Filialen WHERE Fil_Status='A' ORDER BY FilialenNr ", True, "FMZOLL", True)
@@ -522,7 +538,6 @@ Public Class usrCntlFaktAbrechnung
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("OFFERTE_FREMD_VERAGIMEX", "SDL") Or VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGIMEX", "SDL") Then
FirmaTmp = "VERAGIMEX"
End If
Select Case FirmaTmp
Case "VERAG"
If VERAG_PROG_ALLGEMEIN.cBerechtignunen.CHECK_BERECHTIGUNG_bool("FAKTURIERUNG_VERAGAG_DE", "SDL") Then
@@ -538,7 +553,7 @@ Public Class usrCntlFaktAbrechnung
Case "ATILLA" : whereFirma = " AND Firma_ID=7 " : pnlDocs.Visible = True
Case "UNISPED" : whereFirma = " AND FIRMENGRUPPE IN ('UNISPED') " : firstEmpty = True : pnlDocs.Visible = True
Case "AMBAR" : whereFirma = " AND Firma_ID=24 " : pnlDocs.Visible = True
Case "AMBAR" : whereFirma = " AND Firma_ID=24 " : pnlDocs.Visible = True : EUStGutschriftAnVeragToolStripMenuItem.Visible = True
Case "FRONT-OFFICE" : whereFirma = " AND Firma_ID=17 " : pnlDocs.Visible = True
Case "VERAGIMEX"
whereFirma = " AND FIRMENGRUPPE IN ('VERAG','IMEX','ATILLA','VERAGUNISPED','FRONTOFFICE') "
@@ -590,7 +605,7 @@ Public Class usrCntlFaktAbrechnung
FlatButton3.Image = IIf(kdFirmaRechnungAn.KdNr_value > 0, My.Resources.person1, My.Resources.personInaktiv)
' setOffertFromAbfArt() 'setzt dir OffertenNr in RECHNUNG, für die Auswahl wichtig!
initDGVOffertenSperrliste(kdFirmaRechnungAn.KdNr_value)
initDGVOffertenSperrliste(kdFirmaRechnungAn.KdNr_value, IIf(veragKunde = -1, False, True))
initWarnKd(kdFirmaRechnungAn, picWarnRgAn)
cboRechnungSprache.changeItem("DE")
@@ -1016,15 +1031,16 @@ Public Class usrCntlFaktAbrechnung
Sub initDGVOffertenSperrliste(kdNr As Integer)
Sub initDGVOffertenSperrliste(kdNr As Integer, Optional VeragGU As Boolean = False)
With dgvOffertenSperrliste
If Not IsNumeric(kdNr) OrElse kdNr < 0 Then
.Columns.Clear()
Exit Sub
End If
Dim top = IIf(VeragGU, "top(1)", "")
.DataSource = SQL.loadDgvBySql("SELECT Offerten.OffertenNr, cast(Offerten.OffertenNr as varchar(3)) + ' - ' + Offertenstamm.OffertenBez as OffertenBez ,Offerten.Besonderheiten, Gesperrt, Gesperrt_Datum, Gesperrt_Grund FROM Offerten inner join Offertenstamm on [Offerten].OffertenNr=Offertenstamm.OffertenNr WHERE Offerten.KundenNr='" & kdNr & "' ORDER BY Offerten.OffertenNr ", "FMZOLL")
.DataSource = SQL.loadDgvBySql("SELECT " & top & "Offerten.OffertenNr, cast(Offerten.OffertenNr as varchar(3)) + ' - ' + Offertenstamm.OffertenBez as OffertenBez ,Offerten.Besonderheiten, Gesperrt, Gesperrt_Datum, Gesperrt_Grund FROM Offerten inner join Offertenstamm on [Offerten].OffertenNr=Offertenstamm.OffertenNr WHERE Offerten.KundenNr='" & kdNr & "' ORDER BY Offerten.OffertenNr ", "FMZOLL")
If .ColumnCount = 0 Then Exit Sub
.Columns("OffertenNr").Visible = False
.Columns("Besonderheiten").Visible = False
@@ -1904,6 +1920,7 @@ Public Class usrCntlFaktAbrechnung
If kdFirmaAuftraggeber.KdData_ADRESSEN IsNot Nothing Then
RECHNUNG.VermittlerLandKz = kdFirmaAuftraggeber.KdData_ADRESSEN.LandKz
'RECHNUNG.VermittlerOffertenNr = cProgramFunctions.isLeerNothing(absen.text)
End If
RECHNUNG.Rechnung_an = cProgramFunctions.isLeerNothing(cboRechnungAn._value) '!!!!
@@ -1987,7 +2004,7 @@ Public Class usrCntlFaktAbrechnung
RECHNUNG.Erlös = RECHNUNG.Abfertigungskosten - RECHNUNG.Vorkosten
' RECHNUNG.Währungscode = cProgramFunctions.isLeerNothing(cboWaehrung._value) '????????
If Not cbxAdmin.Checked Then
RECHNUNG.Sachbearbeiter = cProgramFunctions.isLeerNothing(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME)
RECHNUNG.Sachbearbeiter = IIf(veragKunde = "3013401", "AUTO", cProgramFunctions.isLeerNothing(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME))
RECHNUNG.FakturierungsGruppe = VERAG_PROG_ALLGEMEIN.cAllgemein.MITARBEITER.mit_fakturierungsgruppe
End If
@@ -2019,17 +2036,25 @@ Public Class usrCntlFaktAbrechnung
getValues_ANHAENGE()
End Sub
Sub getValues_ANHAENGE()
RECHNUNG.ANHAENGE.Clear()
For Each r As DataGridViewRow In dgvAnhaenge.Rows
If r.Cells("optAnhSel").Value Then
Dim ANH As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge
ANH.dsId = r.Cells("clmnDsId").Value
ANH.anhId = r.Cells("clmnAnhId").Value
ANH.Bezeichnung = r.Cells("clmnBezeichnung").Value
RECHNUNG.ANHAENGE.Add(ANH)
End If
Next
Try
If RECHNUNG.ANHAENGE.Count = 0 Then Exit Sub
RECHNUNG.ANHAENGE.Clear()
For Each r As DataGridViewRow In dgvAnhaenge.Rows
If r.Cells("optAnhSel") IsNot Nothing AndAlso r.Cells("optAnhSel").Value Then
Dim ANH As New VERAG_PROG_ALLGEMEIN.cRechnungsausgangAnhaenge
ANH.dsId = r.Cells("clmnDsId").Value
ANH.anhId = r.Cells("clmnAnhId").Value
ANH.Bezeichnung = r.Cells("clmnBezeichnung").Value
RECHNUNG.ANHAENGE.Add(ANH)
End If
Next
Catch ex As Exception
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
End Try
End Sub
Function Abfertigungskosten_Berechnen() As Double
@@ -3390,7 +3415,7 @@ Nächste_Textzeile_lesen:
f.selectedTAB = "Offerte"
f.ShowDialog(Me)
If vbYes = MsgBox("Sollen die Offerte/Preise neu geladen werden (Rg.-Positionen werden zurückgesetzt)?", vbYesNoCancel) Then
initDGVOffertenSperrliste(kdFirmaRechnungAn.KdNr_value)
initDGVOffertenSperrliste(kdFirmaRechnungAn.KdNr_value, IIf(veragKunde = -1, False, True))
End If
End If
End Sub
@@ -3913,5 +3938,122 @@ Nächste_Textzeile_lesen:
End If
End Sub
Private Sub EUStGutschriftAnVeragToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles EUStGutschriftAnVeragToolStripMenuItem.Click
Dim abfrage = "Soll eine neue Gutschrift an die Verag AG für die Verzollung/EUST erstellt werden?"
Dim PosWithWEustOrVerz As Boolean = False
Dim selectedPOS As New List(Of VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
For Each POS In RECHNUNG.POSITIONEN.Where(Function(x) x.Anzahl > 0).ToList
Select Case POS.LeistungsNr
Case "20" : abfrage &= vbNewLine & POS.Anzahl & "x EUSt: " & CDbl(POS.Preis) : PosWithWEustOrVerz = True : selectedPOS.Add(POS)
Case "340" : abfrage &= vbNewLine & POS.Anzahl & "x Verzollung: " : PosWithWEustOrVerz = True : selectedPOS.Add(POS)
End Select
Next
If Not PosWithWEustOrVerz Then Exit Sub
If vbYes = MsgBox(abfrage, vbYesNoCancel) Then
veragKunde = 3013401
saveMe()
Dim RECHNUNGOldID = RECHNUNG.RK_ID
'ALTE RECHNUNG--------------------------------------------------------------------------------------------
'If Not saveMe() Then Exit Sub 'alte Rechnung kopieren (in neuen DS speichern)
'Dim REM_POS_TMP As New List(Of VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
Dim RECHNUNG_TMP = New VERAG_PROG_ALLGEMEIN.cRechnungsausgang(RECHNUNGOldID)
'RECHNUNG_TMP.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME
'For Each POS In RECHNUNG_TMP.POSITIONEN
' REM_POS_TMP.Add(POS)
'Next
'initDGVRechnungenPositionen()
'RECHNUNG_TMP.SAVE_POSITIONEN(RECHNUNG_TMP.RK_ID)
'saveMe()
'--------------------------------------------------------------------------------------------
'Gutschrift
RECHNUNG.RK_ID = -1
RECHNUNG.RechnungsNr = -1
RECHNUNG.UnterNr = RECHNUNG.getMaxRGUnterNr()
RECHNUNG.RechnungsDatum = Nothing
RECHNUNG.DruckDatumZeit = Nothing
RECHNUNG.Status = 0
RECHNUNG.Trdin = 0
RECHNUNG.[BelegartenKz] = "AG" : RECHNUNG.[BelegartenNr] = 71 : RECHNUNG.Vorzeichen = "-"
RECHNUNG.OffertenNr = 1
cboRgGS.SelectedIndex = 1
dgvOfferteDetailsUebersicht.Columns.Clear()
przBerechneRAPos("")
loadFormRGPosInOfferte()
initDGVRechnungenPositionen()
cboFiliale.Focus()
'setze VERG ALS Vermittler/Kunde
Dim kundeVerag As New cKunde(veragKunde)
Dim kundeVeragAdr As New cAdressen(veragKunde)
Dim kundeVeragErw As New cKundenErweitert(veragKunde)
RECHNUNG.VermittlerKundenNr = veragKunde
kdFirmaAuftraggeber.KdNr_value = veragKunde
kdFirmaAuftraggeber.KdNr = veragKunde
kdFirmaAuftraggeber.KdData_KUNDE = kundeVerag
kdFirmaAuftraggeber.KdData_ADRESSEN = kundeVeragAdr
kdFirmaAuftraggeber.KdData_KUNDE_ERW = kundeVeragErw
cboRechnungAn.changeItem("3")
RECHNUNG.Rechnung_an = cboRechnungAn._value
cboFiliale.Focus()
saveMe()
RECHNUNG.OffertenNr = 1
Dim REM_POS_GU As New List(Of VERAG_PROG_ALLGEMEIN.cRechnungsausgangPositionen)
For Each POS In RECHNUNG_TMP.POSITIONEN
POS.RK_ID = RECHNUNG.RK_ID
Select Case POS.LeistungsNr
Case "20" '->org. EUST direkt in POS
''POS.Preis = POS.Preis * -1
'REM_POS_GU.Add(POS)
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
If r.Cells("LeistungsNr").Value = POS.LeistungsNr And r.Cells("LeistungsBez").Value = POS.LeistungsBez Then
r.Cells("Anzahl").Value = If(POS.Anzahl, 0)
r.Cells("Preis").Value = If(POS.Preis, 0)
End If
Next
Case "340" 'Verzollung in dgvPOS
For Each r As DataGridViewRow In dgvOfferteDetailsUebersicht.Rows
If r.Cells("LeistungsNr").Value = POS.LeistungsNr And r.Cells("LeistungsBez").Value = POS.LeistungsBez Then
r.Cells("Anzahl").Value = If(POS.Anzahl, 0)
End If
Next
End Select
Next
RECHNUNG.POSITIONEN.Clear()
przRefreshDGV_Positionen()
'For Each POS_NEW In REM_POS_GU
' RECHNUNG.POSITIONEN.Add(POS_NEW)
'Next
RECHNUNG.SAVE_POSITIONEN(RECHNUNG.RK_ID)
saveMe()
If Not loaded Then Exit Sub
initRECHNUNG()
RaiseEvent SOMETHING_CHANGED(RECHNUNG.RK_ID)
End If
veragKunde = -1
End Sub
End Class