From 59f19c2f9f3edd2cd7de2581ba4e6e76530042e8 Mon Sep 17 00:00:00 2001 From: "d.breimaier" Date: Fri, 8 Aug 2025 10:47:22 +0200 Subject: [PATCH] Kundebeabeit, MDMDatenverarb., Fakt, Syska-Einarbeitung, Offerten, etc. --- SDL/My Project/AssemblyInfo.vb | 4 +- SDL/kunden/frmKundenblatt.Designer.vb | 46 ++-- SDL/kunden/frmOffertenBearbeiten.Designer.vb | 34 ++- SDL/kunden/frmOffertenBearbeiten.vb | 36 ++- SDL/kunden/usrCntlOfferte.vb | 14 +- SDL/mdm/frmMDMDatenverarbetiung.vb | 156 +----------- SDL/seriendruck/usrCntlFakturierung.vb | 2 + VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb | 228 +++++++++++++++++- .../Classes/cRechnungsausgang.vb | 4 +- VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb | 28 ++- .../Schnittstellen/cSyska_Interface.vb | 97 +++++++- 11 files changed, 448 insertions(+), 201 deletions(-) diff --git a/SDL/My Project/AssemblyInfo.vb b/SDL/My Project/AssemblyInfo.vb index 0361d55a..9609bff9 100644 --- a/SDL/My Project/AssemblyInfo.vb +++ b/SDL/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/SDL/kunden/frmKundenblatt.Designer.vb b/SDL/kunden/frmKundenblatt.Designer.vb index e1a5541d..eef7fb00 100644 --- a/SDL/kunden/frmKundenblatt.Designer.vb +++ b/SDL/kunden/frmKundenblatt.Designer.vb @@ -324,7 +324,7 @@ Partial Class frmKundenblatt Me.tbFirmendaten.Location = New System.Drawing.Point(4, 25) Me.tbFirmendaten.Name = "tbFirmendaten" Me.tbFirmendaten.Padding = New System.Windows.Forms.Padding(3) - Me.tbFirmendaten.Size = New System.Drawing.Size(1644, 1339) + Me.tbFirmendaten.Size = New System.Drawing.Size(1644, 1356) Me.tbFirmendaten.TabIndex = 3 Me.tbFirmendaten.Text = "Firmendaten" ' @@ -334,7 +334,7 @@ Partial Class frmKundenblatt Me.Panel4.Dock = System.Windows.Forms.DockStyle.Fill Me.Panel4.Location = New System.Drawing.Point(3, 3) Me.Panel4.Name = "Panel4" - Me.Panel4.Size = New System.Drawing.Size(1638, 1333) + Me.Panel4.Size = New System.Drawing.Size(1638, 1350) Me.Panel4.TabIndex = 0 ' 'UsrcntlKundeBearbeitenFull1 @@ -344,7 +344,7 @@ Partial Class frmKundenblatt Me.UsrcntlKundeBearbeitenFull1.Location = New System.Drawing.Point(0, 0) Me.UsrcntlKundeBearbeitenFull1.Margin = New System.Windows.Forms.Padding(4, 5, 4, 5) Me.UsrcntlKundeBearbeitenFull1.Name = "UsrcntlKundeBearbeitenFull1" - Me.UsrcntlKundeBearbeitenFull1.Size = New System.Drawing.Size(1638, 1333) + Me.UsrcntlKundeBearbeitenFull1.Size = New System.Drawing.Size(1638, 1350) Me.UsrcntlKundeBearbeitenFull1.TabIndex = 0 ' 'tbcntrMain @@ -590,7 +590,7 @@ Partial Class frmKundenblatt Me.TabPage2.Location = New System.Drawing.Point(4, 22) Me.TabPage2.Name = "TabPage2" Me.TabPage2.Padding = New System.Windows.Forms.Padding(3) - Me.TabPage2.Size = New System.Drawing.Size(710, 725) + Me.TabPage2.Size = New System.Drawing.Size(710, 742) Me.TabPage2.TabIndex = 1 Me.TabPage2.Text = "Umsatzbericht" Me.TabPage2.UseVisualStyleBackColor = True @@ -635,7 +635,7 @@ Partial Class frmKundenblatt Me.dgvUmsaetze.RowHeadersDefaultCellStyle = DataGridViewCellStyle8 Me.dgvUmsaetze.RowHeadersVisible = False Me.dgvUmsaetze.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvUmsaetze.Size = New System.Drawing.Size(707, 700) + Me.dgvUmsaetze.Size = New System.Drawing.Size(707, 717) Me.dgvUmsaetze.TabIndex = 182 ' 'Label13 @@ -683,7 +683,7 @@ Partial Class frmKundenblatt Me.TabPage3.Controls.Add(Me.dgvUmsatzNachLeistngsNr) Me.TabPage3.Location = New System.Drawing.Point(4, 22) Me.TabPage3.Name = "TabPage3" - Me.TabPage3.Size = New System.Drawing.Size(710, 725) + Me.TabPage3.Size = New System.Drawing.Size(710, 742) Me.TabPage3.TabIndex = 2 Me.TabPage3.Text = "Umsatz nach LeistungsNr" Me.TabPage3.UseVisualStyleBackColor = True @@ -739,7 +739,7 @@ Partial Class frmKundenblatt Me.dgvUmsatzNachLeistngsNr.RowHeadersDefaultCellStyle = DataGridViewCellStyle12 Me.dgvUmsatzNachLeistngsNr.RowHeadersVisible = False Me.dgvUmsatzNachLeistngsNr.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvUmsatzNachLeistngsNr.Size = New System.Drawing.Size(705, 702) + Me.dgvUmsatzNachLeistngsNr.Size = New System.Drawing.Size(705, 719) Me.dgvUmsatzNachLeistngsNr.TabIndex = 183 ' 'lblAdressenzusatz @@ -1154,7 +1154,7 @@ Partial Class frmKundenblatt Me.tbZoll.Location = New System.Drawing.Point(4, 25) Me.tbZoll.Name = "tbZoll" Me.tbZoll.Padding = New System.Windows.Forms.Padding(3) - Me.tbZoll.Size = New System.Drawing.Size(1644, 1339) + Me.tbZoll.Size = New System.Drawing.Size(1644, 1356) Me.tbZoll.TabIndex = 9 Me.tbZoll.Text = "ZOLL" Me.tbZoll.UseVisualStyleBackColor = True @@ -1166,7 +1166,7 @@ Partial Class frmKundenblatt Me.tbcntrZOLL.Location = New System.Drawing.Point(3, 3) Me.tbcntrZOLL.Name = "tbcntrZOLL" Me.tbcntrZOLL.SelectedIndex = 0 - Me.tbcntrZOLL.Size = New System.Drawing.Size(1638, 1333) + Me.tbcntrZOLL.Size = New System.Drawing.Size(1638, 1350) Me.tbcntrZOLL.TabIndex = 0 ' 'tabZoll_Artikel @@ -1174,7 +1174,7 @@ Partial Class frmKundenblatt Me.tabZoll_Artikel.Location = New System.Drawing.Point(4, 22) Me.tabZoll_Artikel.Name = "tabZoll_Artikel" Me.tabZoll_Artikel.Padding = New System.Windows.Forms.Padding(3) - Me.tabZoll_Artikel.Size = New System.Drawing.Size(1630, 1307) + Me.tabZoll_Artikel.Size = New System.Drawing.Size(1630, 1324) Me.tabZoll_Artikel.TabIndex = 1 Me.tabZoll_Artikel.Text = "Artikel" Me.tabZoll_Artikel.UseVisualStyleBackColor = True @@ -1185,7 +1185,7 @@ Partial Class frmKundenblatt Me.tbMdm.Location = New System.Drawing.Point(4, 25) Me.tbMdm.Name = "tbMdm" Me.tbMdm.Padding = New System.Windows.Forms.Padding(3) - Me.tbMdm.Size = New System.Drawing.Size(1644, 1339) + Me.tbMdm.Size = New System.Drawing.Size(1644, 1356) Me.tbMdm.TabIndex = 10 Me.tbMdm.Text = "MDM" Me.tbMdm.UseVisualStyleBackColor = True @@ -1204,7 +1204,7 @@ Partial Class frmKundenblatt Me.tbcntrMDM.Margin = New System.Windows.Forms.Padding(0) Me.tbcntrMDM.Name = "tbcntrMDM" Me.tbcntrMDM.SelectedIndex = 0 - Me.tbcntrMDM.Size = New System.Drawing.Size(1638, 1333) + Me.tbcntrMDM.Size = New System.Drawing.Size(1638, 1350) Me.tbcntrMDM.TabIndex = 0 ' 'tbSDL @@ -1216,7 +1216,7 @@ Partial Class frmKundenblatt Me.tbSDL.Margin = New System.Windows.Forms.Padding(0) Me.tbSDL.Name = "tbSDL" Me.tbSDL.Padding = New System.Windows.Forms.Padding(3) - Me.tbSDL.Size = New System.Drawing.Size(1630, 1307) + Me.tbSDL.Size = New System.Drawing.Size(1630, 1324) Me.tbSDL.TabIndex = 5 Me.tbSDL.Text = "SDL-Leistungen" Me.tbSDL.UseVisualStyleBackColor = True @@ -1258,7 +1258,7 @@ Partial Class frmKundenblatt DataGridViewCellStyle21.WrapMode = System.Windows.Forms.DataGridViewTriState.[True] Me.dgvSDLLeistungenFull.RowHeadersDefaultCellStyle = DataGridViewCellStyle21 Me.dgvSDLLeistungenFull.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect - Me.dgvSDLLeistungenFull.Size = New System.Drawing.Size(1624, 1111) + Me.dgvSDLLeistungenFull.Size = New System.Drawing.Size(1624, 1128) Me.dgvSDLLeistungenFull.TabIndex = 5 ' 'Panel6 @@ -1363,7 +1363,7 @@ Partial Class frmKundenblatt Me.Panel5.Controls.Add(Me.lblLetzterSA_SDL) Me.Panel5.Controls.Add(Me.rtbVermerke) Me.Panel5.Dock = System.Windows.Forms.DockStyle.Bottom - Me.Panel5.Location = New System.Drawing.Point(3, 1161) + Me.Panel5.Location = New System.Drawing.Point(3, 1178) Me.Panel5.Name = "Panel5" Me.Panel5.Size = New System.Drawing.Size(1624, 143) Me.Panel5.TabIndex = 177 @@ -2249,7 +2249,7 @@ Partial Class frmKundenblatt Me.tbOfferte.Location = New System.Drawing.Point(4, 25) Me.tbOfferte.Margin = New System.Windows.Forms.Padding(2) Me.tbOfferte.Name = "tbOfferte" - Me.tbOfferte.Size = New System.Drawing.Size(1644, 1339) + Me.tbOfferte.Size = New System.Drawing.Size(1644, 1356) Me.tbOfferte.TabIndex = 11 Me.tbOfferte.Text = "Offerte" Me.tbOfferte.UseVisualStyleBackColor = True @@ -2261,7 +2261,7 @@ Partial Class frmKundenblatt Me.UsrCntlOfferte1.Location = New System.Drawing.Point(0, 0) Me.UsrCntlOfferte1.Margin = New System.Windows.Forms.Padding(1) Me.UsrCntlOfferte1.Name = "UsrCntlOfferte1" - Me.UsrCntlOfferte1.Size = New System.Drawing.Size(1644, 1339) + Me.UsrCntlOfferte1.Size = New System.Drawing.Size(1644, 1356) Me.UsrCntlOfferte1.TabIndex = 0 ' 'tbUSTV @@ -2269,7 +2269,7 @@ Partial Class frmKundenblatt Me.tbUSTV.Controls.Add(Me.tbcntrUSTV) Me.tbUSTV.Location = New System.Drawing.Point(4, 25) Me.tbUSTV.Name = "tbUSTV" - Me.tbUSTV.Size = New System.Drawing.Size(1644, 1339) + Me.tbUSTV.Size = New System.Drawing.Size(1644, 1356) Me.tbUSTV.TabIndex = 12 Me.tbUSTV.Text = "USTV" Me.tbUSTV.UseVisualStyleBackColor = True @@ -2283,7 +2283,7 @@ Partial Class frmKundenblatt Me.tbcntrUSTV.Margin = New System.Windows.Forms.Padding(0) Me.tbcntrUSTV.Name = "tbcntrUSTV" Me.tbcntrUSTV.SelectedIndex = 0 - Me.tbcntrUSTV.Size = New System.Drawing.Size(1644, 1339) + Me.tbcntrUSTV.Size = New System.Drawing.Size(1644, 1356) Me.tbcntrUSTV.TabIndex = 1 ' 'tbUSTVDokumente @@ -2296,7 +2296,7 @@ Partial Class frmKundenblatt Me.tbUSTVDokumente.Controls.Add(Me.scanUSTVVollmachten) Me.tbUSTVDokumente.Location = New System.Drawing.Point(4, 22) Me.tbUSTVDokumente.Name = "tbUSTVDokumente" - Me.tbUSTVDokumente.Size = New System.Drawing.Size(1636, 1313) + Me.tbUSTVDokumente.Size = New System.Drawing.Size(1636, 1330) Me.tbUSTVDokumente.TabIndex = 8 Me.tbUSTVDokumente.Text = "Dokumente" Me.tbUSTVDokumente.UseVisualStyleBackColor = True @@ -2419,7 +2419,7 @@ Partial Class frmKundenblatt Me.tbFIBU.Controls.Add(Me.txtFIBUKuerzel) Me.tbFIBU.Location = New System.Drawing.Point(4, 25) Me.tbFIBU.Name = "tbFIBU" - Me.tbFIBU.Size = New System.Drawing.Size(1644, 1339) + Me.tbFIBU.Size = New System.Drawing.Size(1644, 1356) Me.tbFIBU.TabIndex = 13 Me.tbFIBU.Text = "FIBU" Me.tbFIBU.UseVisualStyleBackColor = True @@ -2446,7 +2446,7 @@ Partial Class frmKundenblatt ' Me.btnFirmendatenFormularSpeichern.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.btnFirmendatenFormularSpeichern.FlatStyle = System.Windows.Forms.FlatStyle.Flat - Me.btnFirmendatenFormularSpeichern.Location = New System.Drawing.Point(-1397, 18) + Me.btnFirmendatenFormularSpeichern.Location = New System.Drawing.Point(-2849, 18) Me.btnFirmendatenFormularSpeichern.Name = "btnFirmendatenFormularSpeichern" Me.btnFirmendatenFormularSpeichern.Size = New System.Drawing.Size(71, 52) Me.btnFirmendatenFormularSpeichern.TabIndex = 17 @@ -2724,7 +2724,7 @@ Partial Class frmKundenblatt ' Me.cntxtCntxtMDM.ImageScalingSize = New System.Drawing.Size(24, 24) Me.cntxtCntxtMDM.Name = "cntxtCntxtMDM" - Me.cntxtCntxtMDM.OwnerItem = Me.ToolStripMenuItem4 + Me.cntxtCntxtMDM.OwnerItem = Me.ToolStripMenuItem8 Me.cntxtCntxtMDM.Size = New System.Drawing.Size(61, 4) Me.cntxtCntxtMDM.Text = "cntxtMDM" ' diff --git a/SDL/kunden/frmOffertenBearbeiten.Designer.vb b/SDL/kunden/frmOffertenBearbeiten.Designer.vb index efe9c3b2..6206da96 100644 --- a/SDL/kunden/frmOffertenBearbeiten.Designer.vb +++ b/SDL/kunden/frmOffertenBearbeiten.Designer.vb @@ -26,6 +26,8 @@ Partial Class frmOffertenBearbeiten Me.FlowLayoutPanel = New System.Windows.Forms.FlowLayoutPanel() Me.btnOK = New System.Windows.Forms.Button() Me.lblBitteWahlenSieDieOffertenFurDenKundenAus = New System.Windows.Forms.Label() + Me.Label1 = New System.Windows.Forms.Label() + Me.cboSprache = New VERAG_PROG_ALLGEMEIN.MyComboBox() Me.SuspendLayout() ' 'FlowLayoutPanel @@ -34,10 +36,10 @@ Partial Class frmOffertenBearbeiten Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.FlowLayoutPanel.AutoScroll = True - Me.FlowLayoutPanel.Location = New System.Drawing.Point(9, 32) + Me.FlowLayoutPanel.Location = New System.Drawing.Point(9, 46) Me.FlowLayoutPanel.Margin = New System.Windows.Forms.Padding(2) Me.FlowLayoutPanel.Name = "FlowLayoutPanel" - Me.FlowLayoutPanel.Size = New System.Drawing.Size(321, 472) + Me.FlowLayoutPanel.Size = New System.Drawing.Size(321, 458) Me.FlowLayoutPanel.TabIndex = 0 ' 'btnOK @@ -64,12 +66,38 @@ Partial Class frmOffertenBearbeiten Me.lblBitteWahlenSieDieOffertenFurDenKundenAus.TabIndex = 2 Me.lblBitteWahlenSieDieOffertenFurDenKundenAus.Text = "Bitte wählen Sie die Offerten für den Kunden aus:" ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Label1.Location = New System.Drawing.Point(11, 27) + Me.Label1.Margin = New System.Windows.Forms.Padding(2, 0, 2, 0) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(58, 13) + Me.Label1.TabIndex = 3 + Me.Label1.Text = "Sprache:" + ' + 'cboSprache + ' + Me.cboSprache._allowedValuesFreiText = Nothing + Me.cboSprache._allowFreiText = False + Me.cboSprache._value = "" + Me.cboSprache.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend + Me.cboSprache.DropDownWidth = 50 + Me.cboSprache.FormattingEnabled = True + Me.cboSprache.Location = New System.Drawing.Point(74, 24) + Me.cboSprache.Name = "cboSprache" + Me.cboSprache.Size = New System.Drawing.Size(51, 21) + Me.cboSprache.TabIndex = 13 + ' 'frmOffertenBearbeiten ' Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.BackColor = System.Drawing.Color.White Me.ClientSize = New System.Drawing.Size(337, 559) + Me.Controls.Add(Me.cboSprache) + Me.Controls.Add(Me.Label1) Me.Controls.Add(Me.lblBitteWahlenSieDieOffertenFurDenKundenAus) Me.Controls.Add(Me.btnOK) Me.Controls.Add(Me.FlowLayoutPanel) @@ -85,4 +113,6 @@ Partial Class frmOffertenBearbeiten Friend WithEvents FlowLayoutPanel As System.Windows.Forms.FlowLayoutPanel Friend WithEvents btnOK As System.Windows.Forms.Button Friend WithEvents lblBitteWahlenSieDieOffertenFurDenKundenAus As System.Windows.Forms.Label + Friend WithEvents Label1 As Label + Friend WithEvents cboSprache As VERAG_PROG_ALLGEMEIN.MyComboBox End Class diff --git a/SDL/kunden/frmOffertenBearbeiten.vb b/SDL/kunden/frmOffertenBearbeiten.vb index 98b33ab7..f446c5dd 100644 --- a/SDL/kunden/frmOffertenBearbeiten.vb +++ b/SDL/kunden/frmOffertenBearbeiten.vb @@ -1,4 +1,6 @@ -Public Class frmOffertenBearbeiten +Imports VERAG_PROG_ALLGEMEIN + +Public Class frmOffertenBearbeiten Dim FIRMA_TMP = "" @@ -22,14 +24,36 @@ 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")) + - 'Dim OFFERTE As New cOfferteList(kdnr, False) 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 ) " + + 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 + Case Else + cboSprache.changeItem("DE") + cboSprache.Enabled = False End Select + 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" @@ -46,6 +70,12 @@ Next + + + + + + End Sub Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click @@ -59,7 +89,7 @@ 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) '--> Standartofferten laden + o.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, FIRMA_TMP, cboSprache.SelectedItem.ToString) '--> Standartofferten laden End If diff --git a/SDL/kunden/usrCntlOfferte.vb b/SDL/kunden/usrCntlOfferte.vb index 4958753f..abdc94f1 100644 --- a/SDL/kunden/usrCntlOfferte.vb +++ b/SDL/kunden/usrCntlOfferte.vb @@ -484,10 +484,22 @@ Public Class usrCntlOfferte Dim KUNDE As New VERAG_PROG_ALLGEMEIN.cKunde(kdNr) + Dim KUNDE_ERW As New VERAG_PROG_ALLGEMEIN.cKundenErweitert(kdNr) Dim FIRMA_TMP = VERAG_PROG_ALLGEMEIN.cAllgemein.getFirmaFromFiliale(KUNDE.FilialenNr) If Not vbYes = MsgBox("Möchten Sie die Standardofferte für den Kunden " & KUNDE.KundenNr & " laden?" & vbNewLine & "Aktuelle Offerteneinstellungen werden gelöscht.", vbYesNo) Then Exit Sub + Dim SPRACHE As String = "DE" + + If FIRMA_TMP = "VERAG" Then + 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 + If vbYes = MsgBox("Möchten Sie die Standardofferte in der Fakturierungssprache des Kunden (" & KUNDE_ERW.kde_Fakturierung_Sprache & ") einfügen ", vbYesNo) Then + SPRACHE = KUNDE_ERW.kde_Fakturierung_Sprache + End If + End If + End If + + edit = True handleEditMode(edit) saveCurrentOffert() @@ -499,7 +511,7 @@ Public Class usrCntlOfferte currentOffert.SAVE() currentOffert.LOAD_POSITIONEN() If currentOffert.POSITIONEN.Count = 0 Then ' - currentOffert.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, FIRMA_TMP) + currentOffert.RESET_STANDARTOFFERTEN_FIRMA(VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME, FIRMA_TMP, SPRACHE) End If dgvOfferteNew.GetOrder() diff --git a/SDL/mdm/frmMDMDatenverarbetiung.vb b/SDL/mdm/frmMDMDatenverarbetiung.vb index f70dc545..55fd8a4c 100644 --- a/SDL/mdm/frmMDMDatenverarbetiung.vb +++ b/SDL/mdm/frmMDMDatenverarbetiung.vb @@ -3185,159 +3185,6 @@ Public Class frmMDMDatenverarbetiung End Function - - - 'Function genPLOSE_RECHNUNG_BySPEDBUCH(KdNr As String, PLOSEKundenNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, von As Date, bis As Date) - ' Try - - ' Dim AD As New VERAG_PROG_ALLGEMEIN.cAdressen(SPEDBUCH.VermittlerKundenNr) - ' Dim KD As New VERAG_PROG_ALLGEMEIN.cKunde(SPEDBUCH.VermittlerKundenNr) - ' Dim RG As New VERAG_PROG_ALLGEMEIN.cRechnungsausgang - - ' Dim OffertenNr = 80 - ' Dim Abfertigungsart = 10 - - ' RG.FilialenNr = SPEDBUCH.FilialenNr - ' RG.AbfertigungsNr = SPEDBUCH.AbfertigungsNr - ' RG.SpeditionsbuchUnterNr = SPEDBUCH.UnterNr - ' RG.UnterNr = RG.getMaxRGUnterNr() - - ' RG.Buchungsjahr = cRKSV.getGJ(datPloseAnhang.Value) 'If(Now.Month = 1, Now.Year - 1, Now.Year) - ' RG.FilialenNr = SPEDBUCH.FilialenNr - ' RG.Abfertigungsdatum = SPEDBUCH.Abfertigungsdatum - ' RG.Sammelrechnung = 6 'MAUT/DIESEL - ' RG.BelegartenKz = "AR" - ' RG.BelegartenNr = 70 - ' RG.BelegartenBez = "Rechnung" - ' RG.Vorzeichen = "+" - - ' RG.VermittlerKundenNr = AD.AdressenNr - ' RG.VermittlerLandKz = AD.LandKz - ' RG.VermittlerName_1 = AD.Name_1 - ' RG.VermittlerName_2 = AD.Name_2 - ' RG.VermittlerOffertenNr = OffertenNr - ' RG.VermittlerOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "")) - ' RG.VermittlerStraße = AD.Straße - ' RG.Rechnung_an = 3 - ' RG.OffertenNr = OffertenNr - - ' RG.KundenNrZentrale = KD.KundenNrZentrale - ' RG.RechnungsKundenNr = AD.AdressenNr - ' RG.RechnungsLandKz = AD.LandKz - ' RG.RechnungsName_1 = AD.Name_1 - ' RG.RechnungsName_2 = AD.Name_2 - ' RG.RechnungsOrt = (If(AD.LandKz, "") & " " & If(AD.PLZ, "") & " " & If(AD.Ort, "")) - ' RG.RechnungsStraße = AD.Straße - - ' RG.RechnungsUstIdKz = AD.UstIdKz - ' RG.RechnungsUstIdNr = AD.UstIdNr - ' RG.RechnungsUstIdGeprüft = AD.UstIdGeprüft - - ' RG.Lastschrift = KD.Lastschrift - ' RG.Kunden_SVS = KD.SVS - ' RG.Steuerschlüssel = KD.Steuerschlüssel - ' RG.Vorkasse = KD.Vorkasse - ' RG.Vorlageprovision_Proz = KD.Vorlageprovision - ' RG.Kreditaufwendungen_Proz = KD.Kreditaufwendungen - ' RG.RechnungSprache = "DE" - - - ' RG.Anlage_1 = "" - ' RG.Anlage_2 = "" - ' RG.Anlage_3 = "" - ' RG.Anlage_4 = "" - ' RG.Anlage_5 = "" - ' RG.Anlage_6 = "" - - - ' RG.Text = "" - ' RG.EMailRechnungstext = Nothing ' "" - - ' RG.Firma_ID = 15 - ' RG.Nettozahlungsziel = KD.Zahlungsziel - - ' RG.SteuerpflichtigerGesamtbetrag = 0 - ' RG.SteuerfreierGesamtbetrag = 0 - ' RG.Status = 0 - - ' RG.[Vorkosten] = 0 - ' RG.[Erlös] = 0 - ' RG.[Buchungsjahr] = 0 - ' RG.[Währungscode] = "EUR" - ' RG.ReErfZeitstempel = Now - - - ' RG.Sachbearbeiter = VERAG_PROG_ALLGEMEIN.cAllgemein.USRKURZNAME - - ' RG.Buchungsjahr = cRKSV.getGJ(RG.RechnungsDatum) - - ' Dim OFFERTE As New VERAG_PROG_ALLGEMEIN.cOfferte(KdNr, OffertenNr, True) - - ' RG.LOAD_OFFERT_POSITIONEN() ' --> OFFERTE MIT ANZAHL >0 und Preis >0 - - ' ' RG.LOAD_POSITIONEN_FROM_OFFERTE(OFFERTE) - - ' Dim sqlstr As String = "" - ' sqlstr &= " SELECT [plp_LeistungsNr],sum([plose_NettobetragWaehrungAbbuchung]) as plose_NettobetragWaehrungAbbuchung,sum([plose_MWSTBetragWaehrungAbbuchung]) as [plose_MWSTBetragWaehrungAbbuchung],sum([plose_BruttobetragWaehrungAbbuchung]) as [plose_BruttobetragWaehrungAbbuchung] " - ' sqlstr &= " FROM tblPLOSE_Details INNER JOIN [tblPLOSE_Produktbeschreibung] on plose_ProduktCode=plp_ProductCode " - ' sqlstr &= " WHERE 1=1 " - ' sqlstr &= " AND plose_Fakturiert=0 " - ' sqlstr &= " AND plose_ProduktCode NOT IN (" & ProduktCode_NOT_IN & " ) " - ' sqlstr &= " AND plose_POLSEKundennummer = '" & PLOSEKundenNr & "' " - ' sqlstr &= " AND plp_LeistungsNr is not null " - ' sqlstr &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' " - - ' sqlstr &= " group by [plp_LeistungsNr]" - ' sqlstr &= " order by plp_LeistungsNr" - - ' Dim dt As DataTable = SQL.loadDgvBySql_Param(sqlstr, "FMZOLL") - - - ' For Each r In dt.Rows - ' Dim BLNr = r("plp_LeistungsNr") - ' 'Dim BProz = r("plose_BruttobetragWaehrungAbbuchung") - - ' Dim NettoBetrag As Double = r("plose_NettobetragWaehrungAbbuchung") - ' Dim BruttoBetrag As Double = r("plose_BruttobetragWaehrungAbbuchung") - ' Dim LeistungsNr As Integer = r("plp_LeistungsNr") - - - ' allPos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag) - - ' 'Rückvergütung Consortio !! - ' If r("plp_LeistungsNr") = "190" Then '(PRODUCTCODE=301; VERAG-LEISTUNGSNR=190!! - ' rabattPlosePos(RG, OFFERTE, LeistungsNr, NettoBetrag, BruttoBetrag) - ' End If - ' Next - - - ' Dim dtSt As DataTable = SQL.loadDgvBySql("SELECT TOP 1 isnull([Steuersatz %],0),isnull([Steuerbezeichnung],'') FROM [Steuertabelle] WHERE [Steuerschlüssel]='" & RG.Steuerschlüssel & "'", "FMZOLL") - ' If dtSt IsNot Nothing AndAlso dtSt.Rows.Count > 0 Then - ' RG.Steuersatz_Proz = dtSt.Rows(0)(0) - ' End If - - ' cFakturierung.setGesamtBetraege(RG) - - ' RG.Text = (cFakturierung.przRechnungstextTXT(RG, SPEDBUCH) & vbNewLine & cFakturierung.przRechnungstextZZ(RG)).Trim - - ' Call usrCntlFaktAbrechnung.przFixeTaxe(RG) ' Fixe Taxe errechnen - ' Call usrCntlFaktAbrechnung.przPP(RG) ' Porto/Papiere errechnen - - ' Call usrCntlFaktAbrechnung.przBS415(RG) ' Bankspesen errechnen - - ' If RG.SAVE Then - ' Return True - ' Else - ' Return False - ' End If - - ' Catch ex As System.Exception - ' MsgBox(ex.Message & ex.StackTrace) - ' End Try - ' Return "" - - 'End Function - Function gen_RECHNUNG_BySPEDBUCH(KdNr As String, SPEDBUCH As VERAG_PROG_ALLGEMEIN.cSpeditionsbuch, Lieferant As String, Optional PLOSEKundenNr As String = "", Optional von As Date = Nothing, Optional bis As Date = Nothing, Optional ByRef RE As cRechnungsausgang = Nothing) Try @@ -3458,7 +3305,6 @@ Public Class frmMDMDatenverarbetiung sqlstr &= " AND plose_POLSEKundennummer = '" & PLOSEKundenNr & "' " sqlstr &= " AND plp_LeistungsNr is not null " sqlstr &= " AND plose_DatumTransaktion between '" & von.ToShortDateString & "' and '" & bis.ToShortDateString & "' " - sqlstr &= " group by [plp_LeistungsNr]" sqlstr &= " order by plp_LeistungsNr" @@ -3676,7 +3522,7 @@ Public Class frmMDMDatenverarbetiung Try For Each o In OFFERTE.POSITIONEN - If o.LeistungsNr = LeistungsNr AndAlso IIf(leistungsBez <> "", o.LeistungsBez = leistungsBez, True) Then ' bei IDS muss ebenfalls die Leistungsbezeichnung eindeutig sein! + If o.LeistungsNr = LeistungsNr AndAlso IIf(leistungsBez <> "", o.LeistungsBez = leistungsBez, True) Then 'TODO: bei IDS muss ebenfalls die Leistungsbezeichnung eindeutig sein!, muss noch auf Mehrsprachigkeit geändert werden 'Dim PARK = RECHNUNG.POSITIONEN.FindAll(Function(x) (x.LeistungsNr = 313 Or x.LeistungsNr = 312)) 'If PARK Is Nothing Then diff --git a/SDL/seriendruck/usrCntlFakturierung.vb b/SDL/seriendruck/usrCntlFakturierung.vb index d288d3aa..315d52cd 100644 --- a/SDL/seriendruck/usrCntlFakturierung.vb +++ b/SDL/seriendruck/usrCntlFakturierung.vb @@ -900,6 +900,8 @@ Public Class usrcntlFakturierung Dim sql As New SQL NEWPOS.Steuerpflichtig = (New VERAG_PROG_ALLGEMEIN.SQL).DLookup("Steuerpflichtig", "Leistungen", "LeistungsNr= 415", "FMZOLL") End If + + 'TODO: Übersetzung in Fakt.Sprache NEWPOS.LeistungsBez = "Überweisungs/Bankspesen" Dim preis As Double = 0 diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb index d35816a2..5e448af9 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cOfferte.vb @@ -225,7 +225,7 @@ Public Class cOfferte End Function - Function RESET_STANDARTOFFERTEN(Sachbearbeiter) As Boolean + Function RESET_STANDARTOFFERTEN(Sachbearbeiter As String, Optional Sprache As String = "DE") As Boolean 'Zuserst alle OffertenPos von dem Offert löschen If SQL.doSQL("DELETE FROM [Offertenpositionen] WHERE KundenNr=" & Me.KundenNr & " and OffertenNr=" & Me.OffertenNr, "FMZOLL") Then 'jetzt die Standartofferten einfügen @@ -233,12 +233,28 @@ Public Class cOfferte Dim P As New cOffertPosition() Dim Leistung As New cLeistungen(r("LeistungsNr")) - P.KundenNr = Me.KundenNr P.OffertenNr = Me.OffertenNr - P.LeistungsNr = r("LeistungsNr") - P.LeistungsBez = r("LeistungsBez") + + Dim leistBez As String = "" + + Select Case Sprache + Case "EN" : leistBez = IIf(Not IsDBNull(r("LeistungsBez_EN")), r("LeistungsBez_EN"), "") + Case "RO" : leistBez = IIf(Not IsDBNull(r("LeistungsBez_RO")), r("LeistungsBez_RO"), "") + Case "TR" : leistBez = IIf(Not IsDBNull(r("LeistungsBez_TR")), r("LeistungsBez_TR"), "") + Case Else + P.LeistungsBez = r("LeistungsBez") + End Select + + If leistBez.Length > 30 Then + P.LeistungsBez = leistBez.Substring(0, 30) + Else + P.LeistungsBez = leistBez + End If + + If IsDBNull(P.LeistungsBez) OrElse P.LeistungsBez = "" Then P.LeistungsBez = r("LeistungsBez") + P.BerechnungsartNr = Leistung.BerechnungsartNr P.Preis = r("Preis") P.Anzahl = r("Anzahl") @@ -253,6 +269,23 @@ Public Class cOfferte 'P.Preisänderung = XXXXXXXXX 'P.PreisänderungProzent = XXXXXXXXX 'P.PreisAlt = XXXXXXXXX + + Dim LandISO As String = "" + + Select Case P.OffertenNr + + Case 31, 15, 14 + If (P.LeistungsNr = 124 Or P.LeistungsNr = 125 Or P.LeistungsNr = 126) Then + LandISO = P.LeistungsBez.ToString.Substring(P.LeistungsBez.ToString.Length - 2, 2) + End If + + + End Select + + If LandISO <> "" AndAlso LandISO.All(Function(c) Char.IsUpper(c)) Then + P.Land = LandISO + End If + If Not P.INSERT() Then Return False End If @@ -262,9 +295,9 @@ Public Class cOfferte End If Return True End Function - Public Function RESET_STANDARTOFFERTEN_FIRMA(Sachbearbeiter, Firma) As Boolean + Public Function RESET_STANDARTOFFERTEN_FIRMA(Sachbearbeiter As String, Firma As String, Optional Sprache As String = "DE") As Boolean If Firma = "" Or Firma = "VERAG" Then - Return RESET_STANDARTOFFERTEN(Sachbearbeiter) + Return RESET_STANDARTOFFERTEN(Sachbearbeiter, Sprache) Else 'Zuserst alle OffertenPos von dem Offert löschen @@ -279,7 +312,25 @@ Public Class cOfferte P.OffertenNr = Me.OffertenNr P.LeistungsNr = r("LeistungsNr") - P.LeistungsBez = r("LeistungsBez") + + Dim leistBez As String = "" + + Select Case Sprache + Case "EN" : leistBez = r("LeistungsBez_EN") + Case "RO" : leistBez = r("LeistungsBez_RO") + Case "TR" : leistBez = r("LeistungsBez_TR") + Case Else + P.LeistungsBez = r("LeistungsBez") + End Select + + If leistBez.Length > 30 Then + P.LeistungsBez = leistBez.Substring(0, 30) + Else + P.LeistungsBez = leistBez + End If + + If IsDBNull(P.LeistungsBez) OrElse P.LeistungsBez = "" Then P.LeistungsBez = r("LeistungsBez") + P.BerechnungsartNr = Leistung.BerechnungsartNr P.Preis = r("Preis") P.Anzahl = r("Anzahl") @@ -294,6 +345,20 @@ Public Class cOfferte 'P.Preisänderung = XXXXXXXXX 'P.PreisänderungProzent = XXXXXXXXX 'P.PreisAlt = XXXXXXXXX + + + Dim LandISO As String = "" + + Select Case P.OffertenNr + + Case 31, 15, 14 + LandISO = P.LeistungsBez.ToString.Substring(P.LeistungsBez.ToString.Length - 2, 2) + End Select + + If LandISO <> "" AndAlso LandISO.All(Function(c) Char.IsUpper(c)) Then + P.Land = LandISO + End If + If Not P.INSERT() Then Return False End If @@ -328,6 +393,10 @@ Public Class cOffertPosition Property PreisAlt As Object = Nothing Property BerechnungsartPosInkludiert As Object = Nothing Property SSMA_TimeStamp As Object = Nothing + Property Land As Object = Nothing + Property VZ As Object = Nothing + Property RMC As Object = Nothing + Property Fremd As Object = Nothing Dim SQL As New SQL @@ -355,6 +424,11 @@ Public Class cOffertPosition list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PreisänderungProzent", PreisänderungProzent)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("PreisAlt", PreisAlt)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartPosInkludiert", BerechnungsartPosInkludiert)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Land", Land)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZ", VZ)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("RMC", RMC)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Fremd", Fremd)) + Return list End Function @@ -735,3 +809,143 @@ Public Class cOffertPositionArchiv End Class + + +Public Class cStandardofferten + Property OffertenNr As Integer + Property Währungscode As Object = Nothing + Property LeistungsNr As Integer + Property LeistungsBez As Object = Nothing + Property Preis As Object = Nothing + Property Anzahl As Object = Nothing + Property BGebLeistungsNr As Object = Nothing + Property BGebProzent As Object = Nothing + Property BGebMinBetrag As Object = Nothing + Property BerechnungsartPosInkludiert As Object = Nothing + Property BerechnungsartNr As Object = Nothing + + Property LeistungsBez_EN As Object = Nothing + Property LeistungsBez_RO As Object = Nothing + + Property LeistungsBez_TR As Object = Nothing + + Public hasEntry = False + + Dim SQL As New SQL + + Sub New(OffertenNr, Währungscode, LeistungsNr, LeistungsBez) + Me.OffertenNr = OffertenNr + Me.Währungscode = Währungscode + Me.LeistungsNr = LeistungsNr + Me.LeistungsBez = LeistungsBez + LOAD() + End Sub + Function getParameterList() As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + Dim list As New List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("OffertenNr", OffertenNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Währungscode", Währungscode)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsNr", LeistungsNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez", LeistungsBez)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Preis", Preis)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Anzahl", Anzahl)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebLeistungsNr", BGebLeistungsNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebProzent", BGebProzent)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BGebMinBetrag", BGebMinBetrag)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartPosInkludiert", BerechnungsartPosInkludiert)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("BerechnungsartNr", BerechnungsartNr)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez_EN", LeistungsBez_EN)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez_RO", LeistungsBez_RO)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("LeistungsBez_TR", LeistungsBez_TR)) + + Return list + End Function + + + + Public Function SAVE() As Boolean + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim sqlstr = " BEGIN TRAN IF EXISTS(SELECT * FROM Standardofferten WHERE OffertenNr=@OffertenNr AND Währungscode=@Währungscode AND LeistungsNr=@LeistungsNr AND LeistungsBez=@LeistungsBez) " & + " BEGIN " & getUpdateCmd() & " END " & + " Else " & + " BEGIN " & getInsertCmd() & " END " & + " commit tran " + + Return SQL.doSQLVarList(sqlstr, "FMZOLL", , list) + End Function + + Public Sub LOAD() + Try + hasEntry = False + Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() + Using cmd As New SqlCommand("SELECT * FROM Standardofferten WHERE OffertenNr=@OffertenNr AND Währungscode=@Währungscode AND LeistungsNr=@LeistungsNr AND LeistungsBez=@LeistungsBez ", conn) + cmd.Parameters.AddWithValue("@OffertenNr", OffertenNr) + cmd.Parameters.AddWithValue("@Währungscode", Währungscode) + cmd.Parameters.AddWithValue("@LeistungsNr", LeistungsNr) + cmd.Parameters.AddWithValue("@LeistungsBez", LeistungsBez) + Dim dr = cmd.ExecuteReader() + If dr.Read Then + For Each li In getParameterList() + Dim propInfo As PropertyInfo = Me.GetType.GetProperty(li.Scalarvariable) + + If dr.Item(li.Text) Is DBNull.Value Then + propInfo.SetValue(Me, Nothing) + Else + propInfo.SetValue(Me, dr.Item(li.Text)) + End If + + Next + hasEntry = True + End If + dr.Close() + End Using + End Using + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + End Sub + + + + Public Function getUpdateCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + + Dim str As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "] = @" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + Return (" UPDATE [Standardofferten] SET " & str & " WHERE OffertenNr=@OffertenNr AND Währungscode=@Währungscode AND LeistungsNr=@LeistungsNr AND LeistungsBez=@LeistungsBez ") + + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return "" + End Function + + + Public Function getInsertCmd() As String + Try + Dim list As List(Of VERAG_PROG_ALLGEMEIN.SQLVariable) = getParameterList() + Dim str As String = "" + Dim values As String = "" + For Each i In list + If Not i.isPrimaryParam Then + str &= "[" & i.Text & "]," + values &= "@" & i.Scalarvariable & "," '.Replace("-", "").Replace(" ", "") & "," + End If + Next + str = str.Substring(0, str.Length - 1) 'wg. ',' + values = values.Substring(0, values.Length - 1) 'wg. ',' + Return (" INSERT INTO Standardofferten (" & str & ") VALUES(" & values & ") ") + Catch ex As Exception + VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name) + End Try + Return "" + End Function + +End Class + diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb index b934dcf5..b3307dd1 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cRechnungsausgang.vb @@ -371,8 +371,8 @@ Public Class cRechnungsausgang Public Sub LOAD(FilialeNr As Integer, AbfertigungsNr As Integer, Optional loadPos As Boolean = True) Try Using conn As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() - Using cmd As New SqlCommand("SELECT * FROM Rechnungsausgang WHERE FilialeNr=@FilialeNr AND AbfertigungsNr=@AbfertigungsNr ", conn) - cmd.Parameters.AddWithValue("@FilialeNr", FilialeNr) + Using cmd As New SqlCommand("SELECT * FROM Rechnungsausgang WHERE FilialenNr=@FilialenNr AND AbfertigungsNr=@AbfertigungsNr ", conn) + cmd.Parameters.AddWithValue("@FilialenNr", FilialeNr) cmd.Parameters.AddWithValue("@AbfertigungsNr", AbfertigungsNr) Dim dr = cmd.ExecuteReader() If dr.Read Then diff --git a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb index 74eadc17..1020c5fd 100644 --- a/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb +++ b/VERAG_PROG_ALLGEMEIN/Classes/cTrdInvoice.vb @@ -34,6 +34,7 @@ Public Class cTrdInvoice Property Nettozahlungsziel As Object = Nothing Property Firma_ID As Object = Nothing Property UStVAn_ID As Object = Nothing + Property VZ As Integer Property hasEntry As Boolean = False @@ -89,6 +90,7 @@ Public Class cTrdInvoice list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Nettozahlungsziel", Nettozahlungsziel)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Firma_ID", Firma_ID)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("UStVAn_ID", UStVAn_ID)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZ", VZ)) Return list @@ -238,6 +240,7 @@ Public Class cTrdProduct Property Belegdaten As Object = Nothing Property Sachkonto As Object = Nothing Property Buchungstext As Object = Nothing + Property VZBetrag As Object = Nothing Dim SQL As New SQL @@ -262,6 +265,7 @@ Public Class cTrdProduct list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Belegdaten", Belegdaten)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Sachkonto", Sachkonto)) list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("Buchungstext", Buchungstext)) + list.Add(New VERAG_PROG_ALLGEMEIN.SQLVariable("VZBetrag", VZBetrag)) Return list End Function @@ -447,6 +451,7 @@ Class TrdInvoice_FUNCTIONS TRD_INVOICE.SteuerfreierBetragLokal = 0 TRD_INVOICE.SteuerbetragLokal = 0 TRD_INVOICE.RechnungsbetragLokal = 0 + TRD_INVOICE.RechnungsbetragLokal = 0 WährungsdifferenzSteuerpflichtigerBetrag = TRD_INVOICE.SteuerpflichtigerBetragLokal WährungsdifferenzSteuerfreierBetrag = TRD_INVOICE.SteuerfreierBetragLokal @@ -475,10 +480,11 @@ Class TrdInvoice_FUNCTIONS TRD_INVOICE.Abgleich_op_debitor = 0 TRD_INVOICE.Nettozahlungsziel = ROW("RK_Nettozahlungsziel") TRD_INVOICE.Firma_ID = ROW("RK_Firma_ID") - TRD_INVOICE.UStVAn_ID = Nothing + TRD_INVOICE.UStVAn_ID = ROW("AntragsID") + TRD_INVOICE.VZ = ROW("VZ") If TRD_INVOICE.SAVE Then - If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), ROW("RK_Buchungstext"), TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr) Then + If TrdinSchreibenProduct(TRD_INVOICE.Rechnungsdatum, ROW("RK_RechnungsNr"), TRD_INVOICE.Rechnungsnummer, RK_Währungscode, ROW("RK_RechnungsLandKz"), ROW("RK_Buchungstext"), TRD_INVOICE.Firma_ID, lngSatzzähler, WährungsdifferenzSteuerpflichtigerBetrag, WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, ROW("VZ")) Then 'UPDATE rechnugnsausgang Dim firmaTmpsql = If(Firma > 0, " AND Firma_ID= '" & Firma & "' ", "") Dim buchungsjahrTmpsql = If(Buchungsjahr > 0, " AND Buchungsjahr= '" & Buchungsjahr & "' ", "") @@ -504,7 +510,7 @@ Class TrdInvoice_FUNCTIONS - Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, TRD_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag, Buchungsjahr) As Boolean + Shared Function TrdinSchreibenProduct(RechnungsDatum, RK_RechnungsNr, TRD_RechnungsNr, RK_Währungscode, RK_RechnungsLandKz, RK_Buchungstext, RK_Firma_ID, ByRef lngSatzzähler, ByRef WährungsdifferenzSteuerpflichtigerBetrag, ByRef WährungsdifferenzSteuerfreierBetrag, Buchungsjahr, isVZ) As Boolean Try Dim LOKALWÄHRUNG = "EUR" @@ -555,6 +561,18 @@ Class TrdInvoice_FUNCTIONS TRD_PRODUCT.Sachkonto = getSachkonto(RK_Firma_ID, ROW("RP_LeistungsNr"), RK_RechnungsLandKz, ROW("RP_Steuerpflichtig"), ROW("AufschubkontoNr")) TRD_PRODUCT.Buchungstext = RK_Buchungstext + If isVZ > 0 Then + Select Case ROW("RP_LeistungsNr") + Case "124", "125", "126", "117", "118", "119" + TRD_PRODUCT.VZBetrag = TRD_PRODUCT.SteuerfreierBetragLokal + + Case Else + TRD_PRODUCT.VZBetrag = 0 + End Select + + End If + + TRD_PRODUCT.SAVE() @@ -676,8 +694,8 @@ Class TrdInvoice_FUNCTIONS Sum(RechnungsausgangPositionen.SteuerfreierBetrag) AS RK_SteuerfreierBetrag , (Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)*min(Rechnungsausgang.[Steuersatz %])*100)/100 AS RK_Steuerbetrag, Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)+Sum(RechnungsausgangPositionen.SteuerfreierBetrag)+((Sum(RechnungsausgangPositionen.SteuerpflichtigerBetrag)*min(Rechnungsausgang.[Steuersatz %])*100)/100) AS RK_Rechnungsbetrag, - Count(1) AS RK_Satzzähler - FROM Rechnungsausgang INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID + Count(1) AS RK_Satzzähler, max(CONVERT(int,isnull(tblUStVPositionen.UStVPo_VZ,0))) as VZ, MAX(isnull(tblUStVPositionen.UStVAn_ID,0)) as AntragsID + FROM Rechnungsausgang INNER JOIN RechnungsausgangPositionen ON Rechnungsausgang.RK_ID = RechnungsausgangPositionen.RK_ID LEFT JOIN tblUStVPositionen on Rechnungsausgang.RK_ID = UStVPo_VZ_RKID WHERE (((Rechnungsausgang.RechnungsDatum) Is Not Null) AND ((Rechnungsausgang.RechnungsNr) Is Not Null) AND ((Rechnungsausgang.Trdin)=0)) " & If(Firma > 0, " and Firma_ID=" & Firma, "") & If(Buchungsjahr > 0, " and Buchungsjahr=" & Buchungsjahr, "") & " GROUP BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr ORDER BY Rechnungsausgang.RechnungsDatum, Rechnungsausgang.RechnungsNr, min(Rechnungsausgang.Abfertigungsdatum), min(Rechnungsausgang.FilialenNr), min(Rechnungsausgang.AbfertigungsNr), min(Rechnungsausgang.UnterNr);" diff --git a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb index 513e5879..cdb29df3 100644 --- a/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb +++ b/VERAG_PROG_ALLGEMEIN/Schnittstellen/cSyska_Interface.vb @@ -1,4 +1,5 @@ Imports System.Text.RegularExpressions +Imports sun.util.resources.cldr.ve Public Class cSyska_Interface Shared SQL As New VERAG_PROG_ALLGEMEIN.SQL @@ -359,6 +360,9 @@ Public Class cSyska_Interface If r("BelegartenNr") = 71 And Not ambargubuchungen Then 'GUTSCHRIFT ---> Immer am Schluss file.WriteLine(genBuchungsZeileSum(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen)) End If + If r("VZ") = 1 Then + file.WriteLine(genBuchungsZeileVZ(r, SummeBuchungen, Geschaeftsjahr, FIRMA, ambargubuchungen)) + End If Next ' file.WriteLine(genBuchungenEnd(SummeBuchungen)) bool_DatenVorhanden = True @@ -545,7 +549,7 @@ Public Class cSyska_Interface ,min(WährungFremd) as WährungFremd,min(SteuerbetragFremd) as SteuerbetragFremd,min(RechnungsbetragFremd) as RechnungsbetragFremd,min(TrdinDateiname) as TrdinDateiname,min(Abgleich_op_debitor+0) as Abgleich_op_debitor ,min(Nettozahlungsziel) as Nettozahlungsziel,min(Firma_ID) as Firma_ID,min(UStVAn_ID) as UStVAn_ID /*,Leistungsnummer,Leistungsbezeichnung,Steuerpflichtig*/,sum(PROD.SteuerpflichtigerBetragLokal) as SteuerpflichtigerBetragLokal ,sum(PROD.SteuerfreierBetragLokal) as SteuerfreierBetragLokal,sum(PROD.SteuerpflichtigerBetragFremd) as SteuerpflichtigerBetragFremd,sum(PROD.SteuerfreierBetragFremd) as SteuerfreierBetragFremd,min(Belegdaten) as Belegdaten - ,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd + ,min(Sachkonto) as Sachkonto,min(Buchungstext) as Buchungstext,Sum(PROD.[SteuerpflichtigerBetragLokal] + PROD.[SteuerfreierBetragLokal]) As BetragLokal, Sum(PROD.[SteuerpflichtigerBetragFremd]+PROD.[SteuerfreierBetragFremd]) As BetragFremd, MAX(VZ) as VZ, SUM(isnull(PROD.VZBetrag,0)) as VZBetrag FROM VERAG.dbo.tblTrdinInvoice as IVO left JOIN tblTrdinProduct as PROD on IVO.Rechnungsnummer=PROD.Rechnungsnummer and IVO.Rechnungsdatum=PROD.Rechnungsdatum " & where & " @@ -821,6 +825,97 @@ Public Class cSyska_Interface End Function + + Public Shared Function genBuchungsZeileVZ(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, ByRef curDifferenzbetrag As Double, Optional ambargubuchungen As Boolean = False) As String + + Dim curSteuerbetrag As Double + Dim curNettobetrag As Double + Dim curBruttobetrag As Double + Dim FiBuBruttobetrag As String + Dim FiBuEigenbruttobetrag As Double + Dim FiBuSteuersatz As Double + Dim FiBuSteuerbetrag As String + Dim FiBuSollkontonummer As Integer + Dim FiBuHabenkontonummer As Integer + + Dim FiBuWährung = "EUR" + + + Dim ANTRAG As New cUSTVAntrag(row("UStVAn_ID")) + Dim KUNDE_ERW As New cKundenErweitert(ANTRAG.UStVAn_KuNr) + + + Dim MonthStart As String = IIf(CDate(ANTRAG.UStVAn_ReDatVon).Month < 10, "0", "") & CDate(ANTRAG.UStVAn_ReDatVon).Month + Dim MonthEnd As String = IIf(CDate(ANTRAG.UStVAn_ReDatBis).Month < 10, "0", "") & CDate(ANTRAG.UStVAn_ReDatBis).Month + + + Select Case row("BelegartenNr") + Case 71 'Gutschrift + If Not ambargubuchungen Then + + Select Case row("KundenNrZentrale") + Case "150000", "180000" : FiBuSollkontonummer = 2865 + Case "140000" : FiBuSollkontonummer = 2868 + Case Else + FiBuSollkontonummer = 2866 + End Select + + FiBuHabenkontonummer = If(row("Sachkonto") IsNot DBNull.Value, row("Sachkonto"), " ") + + If row("WährungFremd") Is DBNull.Value Then + curNettobetrag = 0 - row("VZBetrag") + Else + curNettobetrag = 0 - row("VZBetrag") + End If + End If + + End Select + + 'If CBool(row("steuerpflichtig")) Then + ' curSteuerbetrag = CLng(curNettobetrag * CDbl(row("Steuersatz")) * 100) / 100 + ' curBruttobetrag = curNettobetrag + curSteuerbetrag + ' FiBuBruttobetrag = curBruttobetrag.ToString("N2") + ' curDifferenzbetrag = Math.Round(curDifferenzbetrag, 2) - Math.Round(CDbl(FiBuBruttobetrag), 2) + ' FiBuSteuersatz = Format(CDbl(row("Steuersatz")) * 100, "00.00") + ' ' Die folgende Zeile führt zu Buchungsfehler bei Fremdwährung, + ' ' Buchungssatz.FiBuSteuerbetrag = Format(curSteuerbetrag, "########0.00") + ' ' deshalb nur Steuerprozent und keinen Steuerbetrag übergeben. + ' FiBuSteuerbetrag = "" + 'Else + curBruttobetrag = curNettobetrag + FiBuBruttobetrag = curBruttobetrag.ToString("N2") + curDifferenzbetrag = Math.Round(curDifferenzbetrag, 2) - Math.Round(CDbl(FiBuBruttobetrag), 2) + FiBuSteuersatz = "00,00" + FiBuSteuerbetrag = "" + 'End If + + If row("WährungFremd") Is DBNull.Value Then + FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragLokal")) 'Bruttobetrag + FiBuWährung = row("WährungLokal") + Else + FiBuWährung = row("WährungFremd") + FiBuEigenbruttobetrag = CDbl(row("RechnungsbetragFremd")) 'Bruttobetrag + End If + + genBuchungsZeileVZ = "L" & vbTab + genBuchungsZeileVZ &= CDate(row("Rechnungsdatum")).ToString("dd.MM.yyyy") & vbTab + genBuchungsZeileVZ &= "VZ " & CDate(row("Rechnungsdatum")).ToString("ddMMyy") & vbTab + + genBuchungsZeileVZ &= FiBuSollkontonummer & vbTab + genBuchungsZeileVZ &= FiBuHabenkontonummer & vbTab + genBuchungsZeileVZ &= ANTRAG.UStVAn_KuNr & " " & IIf(Not IsDBNull(KUNDE_ERW.kde_BezFIBU), KUNDE_ERW.kde_BezFIBU, "") & " / " & ANTRAG.UStVAn_LandKz & " " & MonthStart & "-" & MonthEnd & "/" & CDate(ANTRAG.UStVAn_ReDatBis).Year.ToString.Substring(2) & " VZ" & vbTab + + genBuchungsZeileVZ &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab + genBuchungsZeileVZ &= Format(CDbl(FiBuSteuersatz), fmt) & vbTab 'FiBuSteuersatz + genBuchungsZeileVZ &= FormatStringDbl(FiBuSteuerbetrag) & vbTab 'FiBuSteuerbetrag + genBuchungsZeileVZ &= FiBuWährung & vbTab + genBuchungsZeileVZ &= Format(CDbl(FiBuBruttobetrag), fmt) & vbTab + + + + End Function + + Public Shared Function genBuchungsZeileDiffBetrag(row As DataRow, ByRef SummeBuchungen As Double, ByRef Geschäftsjahr As Integer, ByRef FIRMA As VERAG_PROG_ALLGEMEIN.cFirmen, ByRef curDifferenzbetrag As Double) As String ' Buchungssatz Steuerdifferenz