122 lines
5.5 KiB
VB.net
122 lines
5.5 KiB
VB.net
Imports VERAG_PROG_ALLGEMEIN
|
|
|
|
Public Class frmOffertenBearbeiten
|
|
|
|
Dim FIRMA_TMP = ""
|
|
|
|
Public cntOfferteLoad As Integer = 0
|
|
Public kdnr As Integer = -1
|
|
Dim SQL As New SQL
|
|
|
|
Sub New(kdnr)
|
|
|
|
' Dieser Aufruf ist für den Designer erforderlich.
|
|
InitializeComponent()
|
|
Me.kdnr = kdnr
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
|
|
End Sub
|
|
|
|
Private Sub frmOffertenBearbeiten_Load(sender As Object, e As EventArgs) Handles Me.Load
|
|
FlowLayoutPanel.Controls.Clear()
|
|
|
|
Dim KUNDE As New VERAG_PROG_ALLGEMEIN.cKunde(kdnr)
|
|
If KUNDE Is Nothing Then Me.Close()
|
|
If Not KUNDE.hasEntry Then Me.Close()
|
|
FIRMA_TMP = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KUNDE.FilialenNr)
|
|
|
|
Dim KUNDE_ERW As New cKundenErweitert(kdnr)
|
|
|
|
cboSprache.Items.Clear()
|
|
cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("DE", "DE"))
|
|
cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("EN", "EN"))
|
|
cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("RO", "RO"))
|
|
cboSprache.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("TR", "TR"))
|
|
|
|
cboFiliale.fillWithSQL("SELECT Filialen.FilialenNr FROM Filialen where Firma ='" & FIRMA_TMP & "' and Fil_Status = 'A' ORDER BY Filialen.FilialenNr", False, "FMZOLL", True)
|
|
|
|
|
|
Dim where = ""
|
|
Select Case FIRMA_TMP
|
|
Case "IMEX"
|
|
' where = " WHERE [Offertenstamm].[OffertenNr] IN (1,2,3,4,5,6,7,8,9,10,26,27,29,50,51)"
|
|
cboSprache.Enabled = False
|
|
cboSprache.changeItem("DE")
|
|
where = " WHERE [Offertenstamm].[OffertenNr] IN (SELECT ao_OffertenNr FROM tblAbfertigungsartenFiliale inner join tblAbfertigungsartOffertenstamm on ao_Abfertigungsart=Abfertigungsart WHERE FilialenNr=5501 ) "
|
|
If cboFiliale.Items.Count > 0 Then cboFiliale.changeItem("5501")
|
|
Case "VERAG"
|
|
If KUNDE_ERW IsNot Nothing AndAlso KUNDE_ERW.kde_Fakturierung_Sprache IsNot Nothing AndAlso KUNDE_ERW.kde_Fakturierung_Sprache <> "" AndAlso KUNDE.FilialenNr = 8001 AndAlso (KUNDE.KundenNrZentrale <> 140000 And KUNDE.KundenNrZentrale <> 150000 And KUNDE.KundenNrZentrale <> 180000) Then
|
|
cboSprache.changeItem(KUNDE_ERW.kde_Fakturierung_Sprache)
|
|
cboSprache.Enabled = True
|
|
|
|
Else
|
|
cboSprache.changeItem("DE")
|
|
cboSprache.Enabled = False
|
|
End If
|
|
If cboFiliale.Items.Count > 0 Then cboFiliale.changeItem("4803")
|
|
Case Else
|
|
cboSprache.changeItem("DE")
|
|
cboSprache.Enabled = False
|
|
If cboFiliale.Items.Count > 0 Then cboFiliale.SelectedIndex = 0
|
|
|
|
End Select
|
|
|
|
If cboFiliale.Items.Count = 0 Then cboFiliale.changeItem("")
|
|
|
|
|
|
Dim SQLsrt = " SELECT (select case when COUNT(*)>0 then 1 else 0 end FROM Offerten where KundenNr=" & kdnr & " and [Offerten].[OffertenNr]=[Offertenstamm].[OffertenNr]) as vorhanden," &
|
|
" [Offertenstamm].[OffertenNr],[OffertenBez] FROM Offertenstamm " & where & " order by OffertenNr"
|
|
|
|
For Each r As DataRow In SQL.loadDgvBySql(SQLsrt, "FMZOLL").Rows
|
|
Dim cbx As New VERAG_PROG_ALLGEMEIN.MyCheckBoxValue
|
|
cbx._value = r("OffertenNr")
|
|
cbx.AutoSize = False
|
|
cbx.Width = FlowLayoutPanel.Width - 30
|
|
cbx.Height = 18
|
|
cbx.Checked = CBool(r("vorhanden"))
|
|
If cbx.Checked Then cbx.Enabled = False
|
|
cbx.Text = r("OffertenNr") & " " & r("OffertenBez")
|
|
FlowLayoutPanel.Controls.Add(cbx)
|
|
If CBool(r("vorhanden")) Then cntOfferteLoad += 1
|
|
Next
|
|
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
|
|
If kdnr <= 0 Then MsgBox("Keine KundenNr gefunden!") : Exit Sub
|
|
Dim Neuanlage = False
|
|
For Each c In FlowLayoutPanel.Controls
|
|
If c.GetType Is GetType(VERAG_PROG_ALLGEMEIN.MyCheckBoxValue) Then
|
|
' MsgBox(c._value)
|
|
If c.enabled And c.checked Then
|
|
Dim o As New VERAG_PROG_ALLGEMEIN.cOfferte(kdnr, c._value, IIf(cboFiliale._value <> "", cboFiliale._value, Nothing), False)
|
|
o.Art = "Neuanlage"
|
|
o.SAVE() 'speichern
|
|
o.LOAD_POSITIONEN() 'positionen Laden
|
|
If o.POSITIONEN.Count = 0 Then 'wenn keine POS --> neues Offert
|
|
o.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, FIRMA_TMP, cboSprache.SelectedItem.ToString) '--> Standartofferten laden
|
|
Neuanlage = True
|
|
End If
|
|
|
|
|
|
'SQL.doSQL("INSERT INTO Offertenpositionen WHERE KundenNr=" & kdnr & " AND [OffertenNr]=" & kdnr & "")
|
|
|
|
Else
|
|
' SQL.doSQL("DELETE FROM Offertenpositionen WHERE KundenNr=" & kdnr & " AND [OffertenNr]=" & kdnr & "")
|
|
' SQL.doSQL("DELETE FROM Offerten WHERE KundenNr=" & kdnr & " AND [OffertenNr]=" & kdnr & "")
|
|
End If
|
|
End If
|
|
Next
|
|
If cntOfferteLoad = 0 And Neuanlage Then
|
|
'Es wurden 1 oder mehrere Offerten neu hinzugefügt, und es gab zuvor noch keine Offerten.
|
|
'Autofakturierung setzen
|
|
SQL.doSQL("update [tblKundenErweitert] set AutoFakturierung = 1 where kde_KundenNr='" & kdnr & "'", "FMZOLL")
|
|
End If
|
|
|
|
Me.Close()
|
|
End Sub
|
|
End Class |