Guest User

Untitled

a guest
May 20th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 25.69 KB | None | 0 0
  1. Imports System.ComponentModel
  2. Imports Microsoft.Office.Interop
  3. Imports System.Data.Sql
  4. Imports System.Data.SqlClient
  5. Imports System.Configuration
  6. Imports System.IO
  7.  
  8. Public Class Stock
  9. Implements IEditableObject
  10. Implements INotifyPropertyChanged
  11.  
  12. 'Properties
  13. #Region "Property"
  14.  
  15. Private _ProdId As Integer
  16. Public Property ProdId As Integer
  17. Get
  18. Return _ProdId
  19. End Get
  20. Set(ByVal value As Integer)
  21. _ProdId = value
  22. End Set
  23. End Property
  24.  
  25. Private _FuifId As Integer
  26. Public Property FuifId As Integer
  27. Get
  28. Return _FuifId
  29. End Get
  30. Set(ByVal value As Integer)
  31. _FuifId = value
  32. End Set
  33. End Property
  34.  
  35.  
  36. Private _Categorie As String
  37. Public Property Categorie As String
  38. Get
  39. Return _Categorie
  40. End Get
  41. Set(ByVal value As String)
  42. _Categorie = value
  43. End Set
  44. End Property
  45.  
  46.  
  47. Private _Aankoopprijs As Double
  48. Public Property Aankoopprijs As Double
  49. Get
  50. Return _Aankoopprijs
  51. End Get
  52. Set(ByVal value As Double)
  53. _Aankoopprijs = value
  54. End Set
  55. End Property
  56.  
  57.  
  58. Private _Aantal As Integer
  59. Public Property Aantal As Integer
  60. Get
  61. Return _Aantal
  62. End Get
  63. Set(ByVal value As Integer)
  64. _Aantal = value
  65. End Set
  66. End Property
  67.  
  68.  
  69. Private _Ratio As Byte
  70. Public Property Ratio As Byte
  71. Get
  72. Return _Ratio
  73. End Get
  74. Set(ByVal value As Byte)
  75. _Ratio = value
  76. End Set
  77. End Property
  78.  
  79.  
  80.  
  81. Private _Verkoopprijs As Double
  82. Public Property Verkoopprijs As Double
  83. Get
  84. Return _Verkoopprijs
  85. End Get
  86. Set(ByVal value As Double)
  87. _Verkoopprijs = value
  88. End Set
  89. End Property
  90.  
  91.  
  92. Private _RestAantal As Byte
  93. Public Property RestAantal As Byte
  94. Get
  95. Return _RestAantal
  96. End Get
  97. Set(ByVal value As Byte)
  98. _RestAantal = value
  99. End Set
  100. End Property
  101.  
  102. #End Region
  103.  
  104. #Region "Constructor"
  105.  
  106. Public Sub New(ByVal restaantal As Byte, ByVal prodid As Integer, ByVal fuifid As Integer, ByVal categorie As String, ByVal aantal As Integer, ByVal aankoopprijs As Double, Optional ByVal delen As Integer = 1, Optional ByVal BerekenVerkoopprijs As Boolean = True)
  107. _Aankoopprijs = aankoopprijs
  108. _Aantal = aantal
  109. _Categorie = categorie
  110. _FuifId = fuifid
  111. _ProdId = prodid
  112. If delen > 0 Then
  113. _Ratio = 1 / delen
  114. Else
  115. _Ratio = 1
  116. End If
  117. _RestAantal = restaantal
  118. If BerekenVerkoopprijs = True Then
  119. _Verkoopprijs = BepaalVerkoopprijs(aankoopprijs, fuifid, prodid)
  120. End If
  121.  
  122. End Sub
  123. #End Region
  124.  
  125. 'Functie stock in lijst plaatsen
  126. 'functie aankoopprijs verkrijgen van Product Id
  127. 'functie categorieen in lijst plaatsen
  128. 'Verkoopprijs Bepalen
  129. #Region "Functions"
  130. Public Shared Function FactuurMaken(ByVal FuifNaam As String, ByVal sBestandslocatie As String)
  131. 'Controleren of fuif al gedaan is
  132. Dim name As String = "BeursFuifConnectionString"
  133. Dim DatumFuif, EindUurFuif, FuifFactuur As String
  134. Dim FuifOrgId, FuifId As Integer
  135. Dim factuur As Boolean = False
  136.  
  137. Database.GetConnectionString(name)
  138. Dim conn As SqlConnection = Database.GetConnection(name)
  139.  
  140. Dim sql As String = "SELECT FuifId, FuifDatum,FuifEindtijd,FuifOrgId,FuifFactuur from fuif WHERE FuifNaam = @FuifNaam"
  141. Dim parameters() As SqlParameter = {New SqlParameter("@FuifNaam", FuifNaam)}
  142. Dim dr As SqlDataReader = Database.getDatareader(name, sql, parameters)
  143. While dr.Read
  144. FuifId = dr("FuifId")
  145. DatumFuif = dr("FuifDatum")
  146. EindUurFuif = dr("FuifEindtijd")
  147. FuifOrgId = dr("FuifOrgId")
  148. If Not IsDBNull(dr("FuifFactuur")) Then
  149. factuur = True
  150. FuifFactuur = dr("FuifFactuur")
  151. End If
  152. End While
  153. dr.Close()
  154.  
  155. If factuur = False Then
  156. Dim d, m, j, u, min As String
  157. d = DatumFuif.Substring(0, 2)
  158. m = DatumFuif.Substring(2, 2)
  159. j = DatumFuif.Substring(4, 4)
  160. If EindUurFuif.Length = 3 Then
  161. u = EindUurFuif.Substring(0, 1)
  162. min = EindUurFuif.Substring(1, 2)
  163. Else
  164. u = EindUurFuif.Substring(0, 2)
  165. min = EindUurFuif.Substring(2, 2)
  166. End If
  167. Dim dateFuif As New DateTime(j, m, d, u, min, 0)
  168.  
  169. Dim DateError As Boolean = True
  170.  
  171. If Now >= dateFuif Then
  172. DateError = False
  173. End If
  174.  
  175. If DateError = False Then
  176. 'stap 0: info uit app.config halen
  177. Dim sTemplate As String = ConfigurationManager.AppSettings("templateFactuur")
  178.  
  179. 'stap 1: bestandsnaam template samenstellen:
  180. sTemplate = Path.GetFullPath(sTemplate)
  181.  
  182. 'stap 2: word opstarten en bestand openen
  183. Dim oApp As New Word.Application
  184. oApp.Visible = True
  185.  
  186. 'opm: indien een word-sjabloon (*.dotx) -> Add-methode gebruiken
  187. ' indien een word-document (*.docx) -> Open-methode gebruiken
  188. Dim oDoc As Word.Document = oApp.Documents.Add(sTemplate)
  189.  
  190.  
  191. 'Organisatie ophalen
  192. Dim OrgId, OrgNaam, OrgAdreslijn1, OrgPlaats, OrgLand, OrgTelefoon, OrgMobiel, OrgEmail, OrgBTWNummer As String
  193. Dim OrgPostcode As Integer
  194.  
  195. sql = "SELECT OrgId,OrgNaam,OrgAdreslijn1,OrgPostcode,OrgPlaats,OrgLand,OrgTelefoon,OrgMobiel,OrgEmail,OrgBTWNummer from Organisatie WHERE OrgId = @OrgId"
  196. parameters = {New SqlParameter("@OrgId", FuifOrgId)}
  197. dr = Database.getDatareader(name, sql, parameters)
  198. Dim Organ As Organisatie
  199. While dr.Read
  200. OrgId = dr("OrgId")
  201. OrgNaam = dr("OrgNaam")
  202. OrgAdreslijn1 = dr("OrgAdreslijn1")
  203. OrgPlaats = dr("OrgPlaats")
  204. OrgLand = dr("OrgLand")
  205. If Not IsDBNull(dr("OrgTelefoon")) Then
  206. OrgTelefoon = dr("OrgTelefoon")
  207. End If
  208. If Not IsDBNull(dr("OrgMobiel")) Then
  209. OrgMobiel = dr("OrgMobiel")
  210. End If
  211. If Not IsDBNull(dr("OrgEmail")) Then
  212. OrgEmail = dr("OrgEmail")
  213. End If
  214. If Not IsDBNull(dr("OrgBTWNummer")) Then
  215. OrgBTWNummer = dr("OrgBTWNummer")
  216. End If
  217. If Not IsDBNull(dr("OrgPostcode")) Then
  218. OrgPostcode = dr("OrgPostcode")
  219. End If
  220.  
  221. Organ = New Organisatie(OrgNaam, OrgAdreslijn1, OrgPostcode, OrgPlaats, OrgLand, OrgTelefoon, OrgMobiel, OrgEmail, OrgBTWNummer)
  222. End While
  223. dr.Close()
  224.  
  225. 'stap 3: bladwijzers overlopen en telkens tekst daar gaan plaatsen
  226.  
  227. Dim rng As Word.Range = oDoc.Bookmarks("OrgNaam").Range
  228. rng.InsertAfter(Organ.Naam)
  229. rng = oDoc.Bookmarks("OrgAdres").Range
  230. rng.InsertAfter(Organ.Adreslijn1)
  231. rng = oDoc.Bookmarks("OrgPostcode").Range
  232. rng.InsertAfter(Organ.Postcode)
  233. rng = oDoc.Bookmarks("OrgPlaats").Range
  234. rng.InsertAfter(Organ.Plaats)
  235. rng = oDoc.Bookmarks("OrgLand").Range
  236. rng.InsertAfter(Organ.Land)
  237. rng = oDoc.Bookmarks("OrgTelefoon").Range
  238. rng.InsertAfter(Organ.Telefoon)
  239. rng = oDoc.Bookmarks("OrgMobiel").Range
  240. rng.InsertAfter(Organ.Mobiel)
  241. rng = oDoc.Bookmarks("OrgEmail").Range
  242. rng.InsertAfter(Organ.Email)
  243. rng = oDoc.Bookmarks("OrgBtw").Range
  244. rng.InsertAfter(Organ.BTWNummer)
  245.  
  246.  
  247.  
  248. 'tabel: voor sebiet
  249. rng = oDoc.Bookmarks("StartTabel").Range
  250. 'tabel even vastnemen...
  251. Dim tabel As Word.Table = rng.Tables(1)
  252. 'huidige cel opvragen
  253. Dim cel As Word.Cell = rng.Cells(1)
  254. 'rijnummer opvragen
  255. Dim iRijnummer As Integer = cel.RowIndex
  256.  
  257. Dim totalePrijsProduct As Double
  258. Dim ProductId As Integer
  259. sql = "select sum(VKPrijs) as TotalePrijsProduct, VKProdId from verkoop where VKFuifId= @VKFuifId group by VKProdId"
  260. parameters = {New SqlParameter("@VKFuifId", FuifId)}
  261. dr = Database.getDatareader(name, sql, parameters)
  262. Dim ProductInfo As New Dictionary(Of Integer, Double)
  263. While dr.Read
  264. totalePrijsProduct = dr("TotalePrijsProduct")
  265. ProductId = dr("VKProdId")
  266. ProductInfo.Add(Product.ProductNaam(ProductId), totalePrijsProduct)
  267. End While
  268. dr.Close()
  269.  
  270. For Each Product In ProductInfo
  271. tabel.Rows.Add()
  272. iRijnummer += 1
  273. cel = tabel.Cell(iRijnummer, 1)
  274. cel.Range.InsertAfter(Product.Key)
  275. cel = tabel.Cell(iRijnummer, 2)
  276. cel.Range.InsertAfter(Product.Value)
  277. cel = tabel.Cell(iRijnummer, 3)
  278. cel.Range.InsertAfter(Product.Value * 0.79)
  279. Next
  280.  
  281. 'stap 4: bestand opslaan en afsluiten
  282. oDoc.SaveAs(sBestandslocatie)
  283. oDoc.Close()
  284. 'stap 5: word afsluiten
  285. oApp.Quit()
  286. Else
  287. Return "Er kan geen factuur gemaakt worden als je fuif nog niet is geïndigd."
  288. End If
  289. Else
  290.  
  291. End If
  292. Return String.Empty
  293.  
  294. conn.Close()
  295. End Function
  296.  
  297. Public Shared Function GetStock(Optional ByVal fuifid As Integer = Nothing) As List(Of Stock)
  298. Dim Lijst As New List(Of Stock)
  299.  
  300. Dim name As String = "BeursFuifConnectionString"
  301.  
  302. Database.GetConnectionString(name)
  303. Dim conn As SqlConnection = Database.GetConnection(name)
  304.  
  305. Dim sql As String = "SELECT FPProdId, FPFuifId, FPCategorie, FPAankoopprijs, FPAantal, FPRatio, FPVerkoopprijs, FPRestAantal FROM FuifProduct"
  306. Dim dr As SqlDataReader
  307. Dim param(0) As SqlParameter
  308. If fuifid <> Nothing Then
  309. sql &= " WHERE FPFuifId=@fuifid"
  310. param(0) = New SqlParameter("@fuifid", fuifid)
  311. dr = Database.getDatareader(name, sql, param)
  312. Else
  313. dr = Database.getDatareader(name, sql, Nothing)
  314. End If
  315.  
  316.  
  317.  
  318. While dr.Read
  319. Dim stock As New Stock(dr("FPRestAantal"), dr("FPProdId"), dr("FPFuifId"), dr("FPCategorie"), dr("FPAantal"), dr("FPAankoopprijs"), , False)
  320. With stock
  321. .Ratio = dr("FPRatio")
  322. .Verkoopprijs = dr("FPVerkoopprijs")
  323. End With
  324. Lijst.Add(stock)
  325. End While
  326.  
  327. dr.Close()
  328. conn.Close()
  329. Return Lijst
  330. End Function
  331.  
  332. Private Shared Function GetAankoopprijs(ByVal ProdId As Byte)
  333. Dim aankoopprijs As Double
  334.  
  335. Dim name As String = "BeursFuifConnectionString"
  336.  
  337. Database.GetConnectionString(name)
  338. Dim conn As SqlConnection = Database.GetConnection(name)
  339.  
  340. Dim sql As String = "SELECT ProdAankoopprijs FROM dbo.Product WHERE ProdId=@Id"
  341. Dim parameters() As SqlParameter = {New SqlParameter("@Id", ProdId)}
  342.  
  343. Dim dr As SqlDataReader = Database.getDatareader(name, sql, parameters)
  344.  
  345. While dr.Read
  346. aankoopprijs = dr("ProdAankoopprijs")
  347. End While
  348. dr.Close()
  349. Return aankoopprijs
  350. End Function
  351.  
  352. Public Shared Function getCategorien() As List(Of String)
  353. Dim olijst As New List(Of String)
  354. Dim categorie As String
  355.  
  356. Dim name As String = "BeursFuifConnectionString"
  357.  
  358. Database.GetConnectionString(name)
  359. Dim conn As SqlConnection = Database.GetConnection(name)
  360.  
  361. Dim sql As String = "select DISTINCT(FPCategorie) from dbo.FuifProduct"
  362. Database.GetCommand(name, sql)
  363.  
  364. Dim dr As SqlDataReader = Database.getDatareader(name, sql, Nothing) ' eventuele parameters
  365.  
  366. Dim reader As New OleDb.OleDbCommand(name)
  367. While dr.Read
  368. categorie = dr("FPCategorie")
  369. olijst.Add(categorie)
  370. End While
  371. dr.Close()
  372. conn.Close()
  373. Return olijst
  374. End Function
  375.  
  376. Private Shared Function BepaalVerkoopprijs(ByVal Aankoopprijs As String, ByVal fuifId As Integer, ByVal productId As Integer) As Double
  377. Dim vkprijs As Double
  378.  
  379. Dim gemiddeldAantalVerkopenProduct, Bonwaarde, beoogdeWinstmarge As Double
  380. Dim oorspronkelijkStock, vooropgesteldDuurFuif, VerlopenTijd, StartTijdFuif As Integer
  381. Dim name As String = "BeursFuifConnectionString"
  382.  
  383. Database.GetConnectionString(name)
  384. Dim conn As SqlConnection = Database.GetConnection(name)
  385.  
  386. Dim sql As String = "SELECT FPAantal FROM FuifProduct where FPFuifId=@FPFuifId AND FPProdId=@FPProdId"
  387. Dim parameters() As SqlParameter = {New SqlParameter("@FPFuifId", fuifId), New SqlParameter("@FPProdId", productId)}
  388. Dim dr As SqlDataReader = Database.getDatareader(name, sql, parameters)
  389. While dr.Read
  390. oorspronkelijkStock = dr("FPAantal")
  391. End While
  392. dr.Close()
  393.  
  394. sql = "SELECT CONVERT(Integer,FuifEindtijd) - CONVERT(Integer,FuifStarttijd) as 'Verschil' ,FuifBonWaarde, FuifWinstmarge, FuifStarttijd from fuif where Fuifid=@Fuifid"
  395. parameters = {New SqlParameter("@Fuifid", fuifId)}
  396. dr = Database.getDatareader(name, sql, parameters)
  397. While dr.Read
  398. vooropgesteldDuurFuif = dr("Verschil")
  399. Bonwaarde = dr("FuifBonWaarde")
  400. beoogdeWinstmarge = dr("FuifWinstmarge")
  401. StartTijdFuif = dr("FuifStarttijd")
  402. End While
  403. dr.Close()
  404.  
  405. gemiddeldAantalVerkopenProduct = oorspronkelijkStock / vooropgesteldDuurFuif
  406.  
  407. Dim EffectiefGemiddelde As Double
  408. Dim Verkopen As Integer
  409.  
  410. sql = "SELECT count(VKId) as AantalVerkopen FROM Verkoop WHERE VKFuifId=@VKFuifId"
  411. parameters = {New SqlParameter("@VKFuifId", fuifId)}
  412. dr = Database.getDatareader(name, sql, parameters)
  413. While dr.Read
  414. Verkopen = dr("AantalVerkopen")
  415. End While
  416. dr.Close()
  417.  
  418. sql = "SELECT TOP 1 VKTijd FROM Verkoop WHERE VKFuifId=@VKFuifId Order By VKTijd desc"
  419. parameters = {New SqlParameter("@VKFuifId", fuifId)}
  420. dr = Database.getDatareader(name, sql, parameters)
  421. While dr.Read
  422. VerlopenTijd = dr("VKTijd")
  423. End While
  424. dr.Close()
  425.  
  426. EffectiefGemiddelde = Verkopen / VerlopenTijd
  427.  
  428. Dim EffVooropGem As Double = (EffectiefGemiddelde / gemiddeldAantalVerkopenProduct) ^ 2
  429. Dim reeeleWinstmarge As Double = EffVooropGem * beoogdeWinstmarge
  430.  
  431. If oorspronkelijkStock <> 0 Then
  432. vkprijs = Aankoopprijs * reeeleWinstmarge
  433. Else
  434. vkprijs = Aankoopprijs * ((beoogdeWinstmarge / 100) + 1)
  435. End If
  436.  
  437.  
  438. conn.Close()
  439. Return Math.Round(vkprijs, 2)
  440.  
  441.  
  442. End Function
  443.  
  444. Public Shared Function importProducten(ByVal sbestandsnaam As String, ByVal fuifnaam As String)
  445. Try
  446. Dim MyConnection As OleDb.OleDbConnection
  447. Dim fuifId As Byte = GetFuifId(fuifnaam)
  448. Dim DS As New DataSet
  449.  
  450. Dim MyCommand As OleDb.OleDbDataAdapter
  451.  
  452. MyConnection = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & sbestandsnaam & ";Extended Properties=""Excel 12.0 Xml;HDR=YES;""")
  453. '
  454. MyCommand = New OleDb.OleDbDataAdapter("select * from [Blad1$]", MyConnection)
  455. MyCommand.Fill(DS)
  456.  
  457. Dim LijstStock As New List(Of Stock)
  458. Dim lijstNbProduct As New List(Of String)
  459. Dim iteller As Byte = 0
  460. Dim test As New Collection
  461.  
  462. For i As Byte = 0 To DS.Tables(0).Rows.Count - 1
  463. If Not (DS.Tables(0).Rows(i) Is Nothing) Then
  464. Dim productnaam, cat As String
  465. Dim aantal, delen, rest As Byte
  466. Dim aankoopprijs As Double
  467. productnaam = DS.Tables(0).Rows(i).Item(0).ToString
  468. If productnaam <> "" Then
  469. aantal = DS.Tables(0).Rows(i).Item(1)
  470. delen = DS.Tables(0).Rows(i).Item(2)
  471. rest = DS.Tables(0).Rows(i).Item(3)
  472. cat = DS.Tables(0).Rows(i).Item(4)
  473. Dim productId As SByte = GetProdId(productnaam)
  474. If productId = -1 Then
  475. 'Product bestaat niet
  476. lijstNbProduct.Add(productnaam)
  477. Else
  478. aankoopprijs = GetAankoopprijs(productId)
  479.  
  480. 'product bestaat wel
  481. Dim ProdStock As New Stock(rest, productId, fuifId, cat, aantal, aankoopprijs, delen)
  482. LijstStock.Add(ProdStock)
  483. End If
  484. End If
  485. End If
  486. Next
  487. MyConnection.Close()
  488. test.Add(LijstStock)
  489. test.Add(lijstNbProduct)
  490. Return test
  491. Catch ex As Exception
  492. MsgBox(ex.Message)
  493. Finally
  494.  
  495. End Try
  496.  
  497. End Function
  498.  
  499. Public Shared Function GetFuifId(ByVal fuifnaam As String) As Byte
  500. Try
  501. Dim name As String = "BeursFuifConnectionString"
  502. Dim FuifId As Byte
  503.  
  504. Database.GetConnectionString(name)
  505. Dim conn As SqlConnection = Database.GetConnection(name)
  506.  
  507. Dim sql As String = "SELECT FuifId FROM dbo.Fuif WHERE FuifNaam=@FuifNaam"
  508. Dim parameters As SqlParameter = New SqlParameter("@FuifNaam", fuifnaam)
  509.  
  510. Dim dr As SqlDataReader = Database.getDatareader(name, sql, parameters) ' eventuele parameters
  511.  
  512. dr.Read()
  513. FuifId = dr("FuifId")
  514.  
  515. dr.Close()
  516. conn.Close()
  517.  
  518. Return FuifId
  519. Catch ex As Exception
  520. MsgBox(ex.Message)
  521. Finally
  522.  
  523. End Try
  524.  
  525. End Function
  526.  
  527. Private Shared Function GetProdId(ByVal productnaam As String) As SByte
  528. Try
  529. Dim name As String = "BeursFuifConnectionString"
  530. Dim prodid As Byte
  531.  
  532. Database.GetConnectionString(name)
  533. Dim conn As SqlConnection = Database.GetConnection(name)
  534.  
  535. Dim sql As String = "Select prodid from product where ProdNaam=@ProdNaam"
  536. Dim parameters() As SqlParameter = {New SqlParameter("@ProdNaam", productnaam)}
  537.  
  538. Dim dr As SqlDataReader = Database.getDatareader(name, sql, parameters) ' eventuele parameters
  539.  
  540. Dim reader As New SqlCommand(name)
  541. dr.Read()
  542. If dr.HasRows Then
  543. prodid = dr("prodid")
  544. Return prodid
  545. Else
  546. Return -1
  547. End If
  548. dr.Close()
  549. conn.Close()
  550. Catch ex As Exception
  551. MsgBox(ex.Message)
  552. Finally
  553.  
  554. End Try
  555.  
  556. End Function
  557. #End Region
  558.  
  559. 'Updaten van de stock & invoegen van de stock
  560. 'uitvoeren van de sql statement
  561. #Region "SQL Subs"
  562. Public Shared Sub addStock(ByVal Stock As Stock)
  563. Dim name As String = "BeursFuifConnectionString"
  564.  
  565. Database.GetConnectionString(name)
  566. Database.GetConnection(name)
  567. Dim sql As String = "INSERT INTO FUIFPRODUCT (FPProdId,FPFuifId,FPCategorie,FPAankoopprijs,FPAantal,FPRatio,FPVerkoopprijs,FPRestAantal) VALUES (@FPProdId,@FPFuifId,@FPCategorie,@FPAankoopprijs,@FPAantal,@FPRatio,@FPVerkoopprijs,@FPRestAantal)"
  568.  
  569. Dim parameters() As SqlParameter = {New SqlParameter("@FPProdId", Stock.ProdId), New SqlParameter("@FPFuifId", Stock.FuifId), New SqlParameter("@FPCategorie", Stock.Categorie), New SqlParameter("@FPAankoopprijs", Stock.Aankoopprijs), New SqlParameter("@FPAantal", Stock.Aantal), New SqlParameter("@FPRatio", Stock.Ratio), New SqlParameter("@FPVerkoopprijs", Stock.Verkoopprijs), New SqlParameter("@FPRestAantal", Stock.RestAantal)}
  570.  
  571. Database.ExecuteQuery(name, sql, parameters)
  572. End Sub
  573.  
  574. Public Shared Sub updateStock(ByVal Stock As Stock, ByVal oudeProdId As Integer, ByVal oudeFuifId As Integer)
  575. Dim name As String = "BeursFuifConnectionString"
  576.  
  577. Database.GetConnectionString(name)
  578. Database.GetConnection(name)
  579.  
  580. Dim sql As String = "UPDATE FUIFPRODUCT SET FPFuifId=@FPFuifId,FPProdId=@FPProdId, FPCategorie=@FPCategorie,FPAankoopprijs=@FPAankoopprijs,FPAantal=@FPAantal,FPRatio=@FPRatio,FPVerkoopprijs=@FPVerkoopprijs,FPRestAantal=@FPRestAantal WHERE FPProdId=@FPProdIdOud AND FPFuifId=@FPFuifIdOud"
  581.  
  582. Dim parameters() As SqlParameter = {New SqlParameter("@FPCategorie", Stock.Categorie), New SqlParameter("@FPProdId", Stock.ProdId),
  583. New SqlParameter("@FPAantal", Stock.Aantal.ToString.Replace(",", ".")), New SqlParameter("@FPAankoopprijs", Stock.Aankoopprijs.ToString.Replace(",", ".")),
  584. New SqlParameter("@FPRatio", Stock.Ratio), New SqlParameter("@FPVerkoopprijs", Stock.Verkoopprijs.ToString.Replace(",", ".")),
  585. New SqlParameter("@FPRestAantal", Stock.RestAantal.ToString.Replace(",", ".")), New SqlParameter("@FPFuifId", Stock.FuifId), New SqlParameter("@FPFuifIdOud", oudeFuifId), New SqlParameter("@FPProdIdOud", oudeProdId)}
  586.  
  587. Database.ExecuteQuery(name, sql, parameters)
  588.  
  589. End Sub
  590.  
  591. #End Region
  592.  
  593. #Region "Edit"
  594. Private msOldCategorie As String
  595. Private msOldAankoopprijs As Double
  596. Private mbFinalStatus As Boolean = True
  597. Private msOldRestAantal, msOldRatio, msOldDelen, msOldAantal, msOldFuifId, msOldProdId As Integer
  598.  
  599. Public Sub BeginEdit() Implements System.ComponentModel.IEditableObject.BeginEdit
  600. If mbFinalStatus = True Then
  601. 'start van editeren: oude waarden bijhouden (belangrijk bij cancel-opdracht)
  602. mbFinalStatus = False
  603. msOldCategorie = _Categorie
  604. msOldAankoopprijs = _Aankoopprijs
  605. msOldRestAantal = _RestAantal
  606. msOldRatio = _Ratio
  607. msOldAantal = _Aantal
  608. msOldFuifId = _FuifId
  609. msOldProdId = _ProdId
  610. End If
  611. End Sub
  612.  
  613. Public Sub CancelEdit() Implements System.ComponentModel.IEditableObject.CancelEdit
  614. If mbFinalStatus = False Then
  615. mbFinalStatus = True
  616. 'waarden terug zetten naar oorspronkelijke waarde
  617. _Categorie = msOldCategorie
  618. _Aankoopprijs = msOldAankoopprijs
  619. _RestAantal = msOldRestAantal
  620. _Ratio = msOldRatio
  621. _Aantal = msOldAantal
  622. _FuifId = msOldFuifId
  623. _ProdId = msOldProdId
  624. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Categorie"))
  625. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Aankoopprijs"))
  626. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("RestAantal"))
  627. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Ratio"))
  628. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Aantal"))
  629. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("FuifId"))
  630. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("ProdId"))
  631. End If
  632. End Sub
  633.  
  634. Public Sub EndEdit() Implements System.ComponentModel.IEditableObject.EndEdit
  635. If mbFinalStatus = False Then
  636. mbFinalStatus = True
  637. msOldCategorie = Nothing
  638. msOldAankoopprijs = Nothing
  639. msOldRestAantal = Nothing
  640. msOldRatio = Nothing
  641. msOldAantal = Nothing
  642. msOldFuifId = Nothing
  643. msOldProdId = Nothing
  644.  
  645. 'iedereen verwittigen dat er een aanpassing is
  646. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Categorie"))
  647. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Aankoopprijs"))
  648. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("RestAantal"))
  649. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Ratio"))
  650. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Aantal"))
  651. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("FuifId"))
  652. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("ProdId"))
  653. End If
  654. End Sub
  655. #End Region
  656.  
  657. Protected Overridable Sub onPropertyChanged(ByVal propertyName As String)
  658. RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
  659. End Sub
  660.  
  661. Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
  662.  
  663. End Class
Add Comment
Please, Sign In to add comment