Imports System Imports System.ComponentModel Imports System.Collections.Generic Imports System.Diagnostics Imports System.Text Imports DevExpress.ExpressApp Imports DevExpress.ExpressApp.Actions Imports DevExpress.Persistent.Base Imports DevExpress.ExpressApp.SystemModule Imports DevExpress.ExpressApp.CloneObject Imports DevExpress.Xpo Imports DevExpress.Data.Filtering Imports DevExpress.ExpressApp.Utils Imports System.IO Imports DevExpress.Persistent.BaseImpl Public Class InventoryVC Inherits DevExpress.ExpressApp.ViewController Public Event InitWork(ByVal _Minimum As Long, ByVal _Step As Long, ByVal _Maximum As Long) Public Event DoWork() Public Event FinalWork Public Sub New() MyBase.New() InitializeComponent() RegisterActions(components) End Sub Protected Overrides Sub OnActivated() MyBase.OnActivated() Frame.GetController(Of InventoryVC).aCreateInventoryHeader.Active.SetItemValue("", False) Frame.GetController(Of InventoryVC).aCloseInventoryHeader.Active.SetItemValue("", False) Frame.GetController(Of InventoryVC).aCreatePDACollection.Active.SetItemValue("", False) Frame.GetController(Of InventoryVC).aCreateDifferent.Active.SetItemValue("", False) If View.Id = "InventoryHeader_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) ' Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False) Teszt miatt ideiglenesen enedélyezett Frame.GetController(Of InventoryVC).aCreateInventoryHeader.Active.SetItemValue("", True) Frame.GetController(Of InventoryVC).aCloseInventoryHeader.Active.SetItemValue("", True) End If If View.Id = "InventoryHeader_InventorySC_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", False) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", False) Frame.GetController(Of InventoryVC).aCreatePDACollection.Active.SetItemValue("", True) End If If View.Id = "InventoryHeader_InventorySIR_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", False) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", False) End If If View.Id = "InventoryHeader_InventoryPDA_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", False) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", False) End If If View.Id = "InventoryHeader_InventoryDifferent_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", False) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", False) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", False) Frame.GetController(Of InventoryVC).aCreateDifferent.Active.SetItemValue("", True) End If If View.Id = "Storage_LookupListView" Then Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) End If If View.Id = "InventoryParameters_ListView" Then Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) End If '--------------DeatilViewZ------------- If View.Id = "InventoryParameters_DetailView" Then Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", False) End If End Sub Protected Overrides Sub OnDeactivated() MyBase.OnDeactivated() If View.Id = "InventoryHeader_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", True) Frame.GetController(Of InventoryVC).aCreateInventoryHeader.Active.SetItemValue("", False) Frame.GetController(Of InventoryVC).aCloseInventoryHeader.Active.SetItemValue("", False) End If If View.Id = "Storage_LookupListView" Then Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) End If If View.Id = "InventoryHeader_InventorySC_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", True) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", True) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", True) Frame.GetController(Of InventoryVC).aCreatePDACollection.Active.SetItemValue("", False) End If If View.Id = "InventoryHeader_InventorySIR_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", True) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", True) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", True) End If If View.Id = "InventoryHeader_InventoryPDA_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", True) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", True) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", True) End If If View.Id = "InventoryHeader_InventoryDifferent_ListView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", True) Frame.GetController(Of LinkUnlinkController)?.Active.SetItemValue("", True) Frame.GetController(Of AuditTrailVC).aGetAuditTrail.Active.SetItemValue("", True) Frame.GetController(Of InventoryVC).aCreateDifferent.Active.SetItemValue("", False) End If If View.Id = "InventoryParameters_ListView" Then Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) End If '--------------DeatilViewZ------------- If View.Id = "InventoryHeader_DetailView" Then Frame.GetController(Of NewObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) Frame.GetController(Of DeleteObjectsViewController)?.Active.SetItemValue("", True) End If If View.Id = "InventoryParameters_DetailView" Then Frame.GetController(Of CloneObjectViewController)?.Active.SetItemValue("", True) End If End Sub Private Sub aCreateInventoryHeader_Cancel(sender As Object, e As System.EventArgs) Handles aCreateInventoryHeader.Cancel End Sub Private Sub aCreateInventoryHeader_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateInventoryHeader.CustomizePopupWindowParams Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace Dim _CreateInventoryHeader_PopUp As CreateInventoryHeader_PopUp = _onew.CreateObject(Of CreateInventoryHeader_PopUp)() e.View = Application.CreateDetailView(_onew, "CreateInventoryHeader_PopUp_DetailView", False, _CreateInventoryHeader_PopUp) End Sub Private Sub aCreateInventoryHeader_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateInventoryHeader.Execute Try GLOBAL_HAS_Audit = False Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace Dim _CreateInventoryHeader_PopUp As CreateInventoryHeader_PopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), CreateInventoryHeader_PopUp) Dim _InventoryHeader As InventoryHeader = _ocur.CreateObject(Of InventoryHeader)() With _InventoryHeader .Storage = _ocur.GetObject(_CreateInventoryHeader_PopUp.Storage) .DateClose = _CreateInventoryHeader_PopUp.DateClose .InventoryParameters = _ocur.GetObject(_CreateInventoryHeader_PopUp.InventoryParameters) .InventoryCreator = _ocur.GetObject(_CreateInventoryHeader_PopUp.InventoryCreator) .InventoryInspector = _ocur.GetObject(_CreateInventoryHeader_PopUp.InventoryInspector) End With Dim _StorageInRows_Collection As New XPCollection(Of StorageInRows)(_ocur.Session, _ CriteriaOperator.Parse("StorageInHeader.IsEditable=False AND " + " StorageInHeader.Active=True AND " + " StorageInHeader.Storage=? AND " + " StorageInHeader.ObjectCreated<=?", _ocur.GetObject(_CreateInventoryHeader_PopUp.Storage), _CreateInventoryHeader_PopUp.DateClose)) RaiseEvent InitWork(1, 1, _StorageInRows_Collection.Count) If _StorageInRows_Collection.Count > 0 Then For Each _StorageInRows As StorageInRows In _StorageInRows_Collection Dim _InventorySIR As InventorySIR = _ocur.CreateObject(Of InventorySIR)() With _InventorySIR .InventoryHeader = _InventoryHeader .StorageInRows = _StorageInRows .QTT = Math.Round(_StorageInRows.QTT, 4, MidpointRounding.AwayFromZero) Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(_ocur.Session, _ CriteriaOperator.Parse("StorageInRows=? and StorageOutRows.StorageOutHeader.ObjectCreated<=?", _StorageInRows, _CreateInventoryHeader_PopUp.DateClose)) For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection .QTT -= Math.Round(_StorageOutRowsInRows.QTT, 4, MidpointRounding.AwayFromZero) Next End With If _InventorySIR.QTT > 0 Then Dim _InventorySC As InventorySC = _ocur.FindObject(Of InventorySC)(CriteriaOperator.Parse("InventoryHeader=? AND Products=?", _ _InventoryHeader, _InventorySIR.StorageInRows.Products)) If _InventorySC Is Nothing Then _InventorySC = New InventorySC(_ocur.Session) With _InventorySC .InventoryHeader = _InventoryHeader .Products = _InventorySIR.StorageInRows.Products .QTT = Math.Round(_InventorySIR.QTT, 4, MidpointRounding.AwayFromZero) End With Else _InventorySC.QTT += Math.Round(_InventorySIR.QTT, 4, MidpointRounding.AwayFromZero) End If End If RaiseEvent DoWork() Next End If _ocur.CommitChanges() Dim _InventorySIR_DEL_Collection As New XPCollection(Of InventorySIR)(_ocur.Session, CriteriaOperator.Parse("InventoryHeader=? AND QTT=0", _InventoryHeader)) If _InventorySIR_DEL_Collection.Count > 0 Then _ocur.Delete(_InventorySIR_DEL_Collection) _ocur.CommitChanges() Catch ext As Exception MsgBox(ext.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba!") Finally GLOBAL_HAS_Audit = True RaiseEvent FinalWork End Try End Sub Private Sub aCloseInventoryHeader_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCloseInventoryHeader.Execute Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader) _InventoryHeader.InventoryStatus = eInventoryStatus.eClosed _InventoryHeader.InventoryHeaderDateClose = GetSQLTime(_ocur.Session) _ocur.CommitChanges() End Sub Private Sub aCreatePDACollection_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCreatePDACollection.Execute Try Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace Dim _InventoryHeader As InventoryHeader = TryCast(TryCast(View, ListView).CollectionSource, PropertyCollectionSource).MasterObject If _InventoryHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!") Dim _StoragePDACollectionHeader As StoragePDACollectionHeader = _ocur.CreateObject(Of StoragePDACollectionHeader)() _StoragePDACollectionHeader.StoragePDACollectionHeaderStatus = eStoragePDACollectionHeaderStatus.eOpen _StoragePDACollectionHeader.StoragePDAParameters = _ocur.FindObject(Of StoragePDAParameters)(CriteriaOperator.Parse("CustomersFrom=?", _InventoryHeader.Storage.CustomersFrom)) Dim _InventoryPDA As InventoryPDA = _ocur.CreateObject(Of InventoryPDA)() _InventoryPDA.InventoryHeader = _InventoryHeader _InventoryPDA.StoragePDACollectionHeader = _StoragePDACollectionHeader _ocur.CommitChanges() Catch ext As Exception MsgBox(ext.Message) End Try End Sub Private Sub aCreateDifferent_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCreateDifferent.Execute Try Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace Dim _InventoryHeader As InventoryHeader = TryCast(TryCast(View, ListView).CollectionSource, PropertyCollectionSource).MasterObject If _InventoryHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!") If _InventoryHeader.InventoryDifferent.Count > 0 Then Dim _InventoryDifferent_Collection As New XPCollection(Of InventoryDifferent)(_ocur.Session, CriteriaOperator.Parse("InventoryHeader=?", _InventoryHeader)) _ocur.Delete(_InventoryDifferent_Collection) End If If _InventoryHeader.InventorySC.Count > 0 Then For Each _InventorySC As InventorySC In _InventoryHeader.InventorySC Dim _InventoryDifferent As InventoryDifferent = _ocur.CreateObject(Of InventoryDifferent)() _InventoryDifferent.InventoryHeader = _InventoryHeader '_InventoryDifferent.Products = _InventorySC.StorageComputed.Products '_InventoryDifferent.QTT_SC_Free = _InventorySC.StorageComputed.QTTFree _InventoryDifferent.QTT_SC_Found = _InventorySC.QTT_Found Next End If If _InventoryHeader.InventoryPDA.Count > 0 Then For Each _InventoryPDA As InventoryPDA In _InventoryHeader.InventoryPDA If _InventoryPDA.StoragePDACollectionHeader.StoragePDACollectionRows.Count > 0 Then For Each _StoragePDACollectionRows As StoragePDACollectionRows In _InventoryPDA.StoragePDACollectionHeader.StoragePDACollectionRows Dim _InventoryDifferent As InventoryDifferent = _ocur.FindObject(Of InventoryDifferent)(CriteriaOperator.Parse("Products.Oid=? AND InventoryHeader=?", _StoragePDACollectionRows.Products.Oid, _InventoryHeader), True) If _InventoryDifferent IsNot Nothing Then _InventoryDifferent.QTT_PDA = _StoragePDACollectionRows.QTT End If Next End If Next End If If _InventoryHeader.InventorySIR.Count > 0 Then For Each _InventorySIR As InventorySIR In _InventoryHeader.InventorySIR Dim _InventoryDifferent As InventoryDifferent = _ocur.FindObject(Of InventoryDifferent)(CriteriaOperator.Parse("Products.Oid=? AND InventoryHeader=?", _InventorySIR.StorageInRows.Products.Oid, _InventoryHeader), True) Dim _StorageMoveEvents_IN_Collection As New XPCollection(Of StorageMoveEvents)(_ocur.Session, CriteriaOperator.Parse("StorageInRows.Oid=? AND StorageOutRows=?", _InventorySIR.StorageInRows.Oid, Nothing)) _StorageMoveEvents_IN_Collection.Sorting.Add(New SortProperty("ExecutionDate", DB.SortingDirection.Ascending)) _StorageMoveEvents_IN_Collection.Filter = CriteriaOperator.Parse("ExecutionDate>?", _InventoryHeader.ObjectCreated) If _StorageMoveEvents_IN_Collection.Count > 0 Then Dim _QTT_In As Double = 0 For Each _StorageMoveEvents As StorageMoveEvents In _StorageMoveEvents_IN_Collection _QTT_In += _StorageMoveEvents.QTT Next _InventoryDifferent.QTT_In = _QTT_In End If Dim _StorageMoveEvents_OUT_Collection As New XPCollection(Of StorageMoveEvents)(_ocur.Session, CriteriaOperator.Parse("StorageInRows.Oid=? AND StorageOutRows=?", _InventorySIR.StorageInRows.Oid, Not Nothing)) _StorageMoveEvents_OUT_Collection.Sorting.Add(New SortProperty("ExecutionDate", DB.SortingDirection.Ascending)) _StorageMoveEvents_OUT_Collection.Filter = CriteriaOperator.Parse("ExecutionDate>?", _InventoryHeader.ObjectCreated) If _StorageMoveEvents_OUT_Collection.Count > 0 Then Dim _QTT_Out As Double = 0 For Each _StorageMoveEvents As StorageMoveEvents In _StorageMoveEvents_OUT_Collection _QTT_Out += _StorageMoveEvents.QTT Next _InventoryDifferent.QTT_Out = _QTT_Out End If Next End If _ocur.CommitChanges() Catch ext As Exception MsgBox(ext.Message) End Try End Sub Private Sub aInventory_Print_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aInventory_Print.Execute Try Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader) Dim _ReportData As ReportData = _InventoryHeader.Storage.ReportInventory If _ReportData Is Nothing Then Throw New Exception(String.Format("""{0}"" raktárhoz nincs beállítva letár nyomtatvány!", _InventoryHeader.Storage.ShortName)) Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("InventoryHeader.Oid=?", _InventoryHeader.Oid), True) Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain"))) End Try End Sub Private Sub aInventoryHeader_RecreateInventory_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aInventoryHeader_RecreateInventory.Execute Try GLOBAL_HAS_Audit = False Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader) Dim _InventorySC_DELCollection As New XPCollection(Of InventorySC)(_ocur.Session, CriteriaOperator.Parse("InventoryHeader=?", _InventoryHeader)) Dim _InventorySIR_DELCollection As New XPCollection(Of InventorySIR)(_ocur.Session, CriteriaOperator.Parse("InventoryHeader=?", _InventoryHeader)) _ocur.Delete(_InventorySC_DELCollection) _ocur.Delete(_InventorySIR_DELCollection) Dim _StorageInRows_Collection As New XPCollection(Of StorageInRows)(_ocur.Session, _ CriteriaOperator.Parse("StorageInHeader.IsEditable=False AND " + " StorageInHeader.Active=True AND " + " StorageInHeader.Storage=? AND " + " StorageInHeader.ObjectCreated<=?", _InventoryHeader.Storage, _InventoryHeader.DateClose)) RaiseEvent InitWork(1, 1, _StorageInRows_Collection.Count) If _StorageInRows_Collection.Count > 0 Then For Each _StorageInRows As StorageInRows In _StorageInRows_Collection Dim _InventorySIR As InventorySIR = _ocur.CreateObject(Of InventorySIR)() With _InventorySIR .InventoryHeader = _InventoryHeader .StorageInRows = _StorageInRows .QTT = Math.Round(_StorageInRows.QTT, 4, MidpointRounding.AwayFromZero) Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(_ocur.Session, _ CriteriaOperator.Parse("StorageInRows=? AND StorageOutRows.StorageOutHeader.ObjectCreated<=?", _StorageInRows, _InventoryHeader.DateClose)) For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection .QTT -= Math.Round(_StorageOutRowsInRows.QTT, 4, MidpointRounding.AwayFromZero) Next .QTT = Math.Round(.QTT, 4, MidpointRounding.AwayFromZero) End With If _InventorySIR.QTT > 0 Then Dim _InventorySC As InventorySC = _ocur.FindObject(Of InventorySC)(CriteriaOperator.Parse("InventoryHeader=? AND Products=?", _ _InventoryHeader, _InventorySIR.StorageInRows.Products)) If _InventorySC Is Nothing Then _InventorySC = New InventorySC(_ocur.Session) With _InventorySC .InventoryHeader = _InventoryHeader .Products = _InventorySIR.StorageInRows.Products .QTT = Math.Round(_InventorySIR.QTT, 4, MidpointRounding.AwayFromZero) End With Else _InventorySC.QTT += Math.Round(_InventorySIR.QTT, 4, MidpointRounding.AwayFromZero) End If End If RaiseEvent DoWork() Next End If _ocur.CommitChanges() Dim _InventorySIR_DEL_Collection As New XPCollection(Of InventorySIR)(_ocur.Session, CriteriaOperator.Parse("InventoryHeader=? AND QTT<=0", _InventoryHeader)) If _InventorySIR_DEL_Collection.Count > 0 Then _ocur.Delete(_InventorySIR_DEL_Collection) _ocur.CommitChanges() Catch ext As Exception MsgBox(ext.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba!") Finally GLOBAL_HAS_Audit = True RaiseEvent FinalWork End Try End Sub Protected Sub aInventoryHeader_LoadSpreadFromParameters_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aInventoryHeader_LoadSpreadFromParameters.Execute 'WIN esben kidolgozva! End Sub Private Sub aInventoryRecalculatePrice_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aInventoryRecalculatePrice.Execute Try GLOBAL_HAS_Audit = False Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace) Dim _InventoryHeader As InventoryHeader = TryCast(View.SelectedObjects(0), InventoryHeader) Dim _StorageDateClearingPrice As StorageDateClearingPrice Dim _StorageDateClearingPrice_Collection As XPCollection(Of StorageDateClearingPrice) RaiseEvent InitWork(1, 1, _InventoryHeader.InventorySC.Count) For Each _InventorySC As InventorySC In _InventoryHeader.InventorySC RaiseEvent DoWork() _InventorySC.AveragePriceHUF = 0 _StorageDateClearingPrice_Collection = New XPCollection(Of StorageDateClearingPrice)(_ocur.Session, CriteriaOperator.Parse("CustomersFrom=? and Products=? and GetDate(DateExecution)<=?", _InventoryHeader.Storage.CustomersFrom, _InventorySC.Products, _InventoryHeader.DateClose.Date)) _StorageDateClearingPrice_Collection.Sorting.Add(New SortProperty("GetDate(DateExecution)", DB.SortingDirection.Descending)) _StorageDateClearingPrice_Collection.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending)) For Each _StorageDateClearingPrice In _StorageDateClearingPrice_Collection _InventorySC.AveragePriceHUF = _StorageDateClearingPrice.AveragePriceHUF_After _InventorySC.SumAveragePriceHUF = _InventorySC.AveragePriceHUF * _InventorySC.QTT _InventorySC.SumAveragePriceHUF_Found = _InventorySC.AveragePriceHUF * _InventorySC.QTT_Found _InventorySC.SumAveragePriceHUF_Different = _InventorySC.SumAveragePriceHUF_Found - _InventorySC.SumAveragePriceHUF _InventorySC.SumAveragePriceHUF_Surplus = 0 _InventorySC.SumAveragePriceHUF_Want = 0 If _InventorySC.SumAveragePriceHUF_Different > 0 Then _InventorySC.SumAveragePriceHUF_Surplus = _InventorySC.SumAveragePriceHUF_Different Else _InventorySC.SumAveragePriceHUF_Want = Math.Abs(_InventorySC.SumAveragePriceHUF_Different) End If Exit For Next For Each _InventorySIR As InventorySIR In _InventoryHeader.InventorySIR If _InventorySC.Products.Oid = _InventorySIR.StorageInRows.Products.Oid Then _InventorySIR.AveragePriceHUF = _InventorySC.AveragePriceHUF _InventorySIR.SumAveragePriceHUF = _InventorySIR.AveragePriceHUF * _InventorySIR.QTT _InventorySIR.SumAveragePriceHUF_Found = _InventorySIR.AveragePriceHUF * _InventorySIR.QTT_Found _InventorySIR.SumAveragePriceHUF_Different = _InventorySIR.SumAveragePriceHUF_Found - _InventorySIR.SumAveragePriceHUF _InventorySIR.SumAveragePriceHUF_Surplus = 0 _InventorySIR.SumAveragePriceHUF_Want = 0 If _InventorySIR.SumAveragePriceHUF_Different > 0 Then _InventorySIR.SumAveragePriceHUF_Surplus = _InventorySIR.SumAveragePriceHUF_Different Else _InventorySIR.SumAveragePriceHUF_Want = Math.Abs(_InventorySIR.SumAveragePriceHUF_Different) End If End If Next Next _ocur.CommitChanges() Catch ex As Exception MsgBox(ex.Message) Finally GLOBAL_HAS_Audit = True RaiseEvent FinalWork End Try End Sub End Class