Files
Nuvolar/Nuvolar.Module/BusinessObjects/Business/StorageTransactions/Out/StorageTransactionsOutVC.vb
T
ivanszabo 9cca882b34 Átállás 17.2.3-ra
Related Work Items: #123
2017-12-02 16:09:26 +01:00

1378 lines
95 KiB
VB.net

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.Xpo.Session
Imports DevExpress.Data.Filtering
Imports DevExpress.Xpo
Imports DevExpress.ExpressApp.Editors
Imports DevExpress.ExpressApp.SystemModule
Imports DevExpress.Persistent.Validation
Imports DevExpress.Persistent.BaseImpl
Imports DevExpress.ExpressApp.Utils
Public Class StorageTransactionsOutVC
Inherits DevExpress.ExpressApp.ViewController
Public Sub New()
MyBase.New()
InitializeComponent()
RegisterActions(components)
End Sub
Protected Overrides Sub OnActivated()
MyBase.OnActivated()
Frame.GetController(Of StorageTransactionsOutVC)().aFinalizeAndNew_StorageOut.Active.SetItemValue("", False) ' -- Kitárolási biz. véglegesítése és új nyitása
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutStorno.Active.SetItemValue("", False) ' -- Kitárolási biz. stornírozása
Frame.GetController(Of StorageTransactionsOutVC)().aToTable_StorageOut.Active.SetItemValue("", False) ' -- Kitárolási biz. sor hozzáadása
Frame.GetController(Of StorageTransactionsOutVC)().aBackToEdit_StorageOut.Active.SetItemValue("", False) ' -- Véglegesített Kit. biz. szerkeszthetőre állítása
Frame.GetController(Of StorageTransactionsOutVC)().aToTableD_StorageOut.Active.SetItemValue("", False) ' -- Sor törlése kitárolási biz ról
Frame.GetController(Of StorageTransactionsOutVC)().aCreateDeliveryNote.Active.SetItemValue("", False) ' -- Szállítólevél készítése a kiválasztott kit sorokból
Frame.GetController(Of StorageTransactionsOutVC)().aDown_StorageOut.Active.SetItemValue("", False) ' -- Kitárolási sor lejebb
Frame.GetController(Of StorageTransactionsOutVC)().aUp_StorageOut.Active.SetItemValue("", False) ' -- Kitárolási sor feljebb
Frame.GetController(Of StorageTransactionsOutVC).aBackToStorageOutFromOrderIn.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutFromPdaCollection.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC).aCreatePDACollectionFromStorageOut.Active.SetItemValue("", False)
'------------------------------------------ LISTVIEWS --------------------------------------------------------------------------------------------------------
'If View.Id = "StorageOutHeader_ListView" Or View.Id = "StorageOutHeader_ListView_Editable" Then
' AddHandler View.SelectionChanged, AddressOf SelectionChanged
'End If
If View.Id = "StorageOutHeader_ListView" Then
Frame.GetController(Of StorageTransactionsOutVC)().aBackToEdit_StorageOut.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutStorno.Active.SetItemValue("", True)
End If
If View.Id = "StorageOutHeader_StorageOutRows_ListView" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aUp_StorageOut.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aDown_StorageOut.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC).aCreatePDACollectionFromStorageOut.Active.SetItemValue("", True)
End If
If View.Id = "StorageOutHeader_ListView_Editable" Then
Frame.GetController(Of StorageTransactionsOutPrint)().aStorageTransactionsOutPrint.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
End If
If View.Id = "StorageOutHeader_ListView" Then
Frame.GetController(Of StorageTransactionsOutPrint)().aStorageTransactionsOutPrint.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
End If
If View.Id = "StorageOutRows_ListView_Order" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC).aBackToStorageOutFromOrderIn.Active.SetItemValue("", True)
End If
If View.Id = "StorageOutRows_ListView_DeliveryNote" Then
Frame.GetController(Of StorageTransactionsOutVC)().aCreateDeliveryNote.Active.SetItemValue("", True)
End If
If View.Id = "StorageOutRowsFromPDACollectionPopup_ListView" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
End If
'------------------------------------------ DETAILVIEWS ------------------------------------------------------------------------------------------------------
If View.Id = "StorageOutHeader_DetailView" Then
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
If _StorageOutHeader.IsEditable = False And _StorageOutHeader.IsStorno = False Then
Frame.GetController(Of StorageTransactionsOutVC)().aBackToEdit_StorageOut.Active.SetItemValue("", True)
End If
End If
If View.Id = "StorageOutHeader_DetailView" Then
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
Dim _IsFromOrderIn As Boolean = False
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)()?.Active.SetItemValue("", True)
If _StorageOutHeader IsNot Nothing Then
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows ' Végigmegy a kit biz sorain és ha talál olyan sort ahol van hozzá megrendelési sor akkor nem engedi stornózni
If _StorageOutRows.OrderInRows IsNot Nothing Then
_IsFromOrderIn = True
End If
Next
If (_StorageOutHeader.IsStorno = True Or _StorageOutHeader.IsEditable = True) Or _IsFromOrderIn = True Then
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutStorno.Active.SetItemValue("", False)
End If
If _StorageOutHeader.IsStorno = False And _StorageOutHeader.IsEditable = False And _IsFromOrderIn = False Then
If _IsFromOrderIn = False Then
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutStorno.Active.SetItemValue("", True)
End If
End If
If _StorageOutHeader.IsEditable = False Then
Frame.GetController(Of StorageTransactionsOutVC)().aFinalize_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aFinalizeAndNew_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)()?.Active.SetItemValue("", False)
Else
Frame.GetController(Of StorageTransactionsOutVC)().aFinalizeAndNew_StorageOut.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aFinalize_StorageOut.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aToTable_StorageOut.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aToTableD_StorageOut.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutFromPdaCollection.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aCreatePDACollectionFromStorageOut.Active.SetItemValue("", True)
End If
End If
End If
End Sub
Protected Overrides Sub OnDeactivated()
MyBase.OnDeactivated()
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
'------------------------------------------ LISTVIEWS --------------------------------------------------------------------------------------------------------
If View.Id = "StorageOutHeader_StorageOutRows_ListView" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
End If
If View.Id = "StorageOutHeader_ListView" Then
Frame.GetController(Of StorageTransactionsOutVC)().aBackToEdit_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutStorno.Active.SetItemValue("", False)
End If
If View.Id = "StorageOutHeader_StorageOutRows_ListView" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC)().aUp_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aDown_StorageOut.Active.SetItemValue("", False)
End If
If View.Id = "StorageOutHeader_ListView_Editable" Then
Frame.GetController(Of StorageTransactionsOutPrint)().aStorageTransactionsOutPrint.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
End If
If View.Id = "StorageOutHeader_ListView" Then
Frame.GetController(Of StorageTransactionsOutPrint)().aStorageTransactionsOutPrint.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
End If
If View.Id = "StorageOutRows_ListView_Order" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of StorageTransactionsOutVC).aBackToStorageOutFromOrderIn.Active.SetItemValue("", False)
End If
If View.Id = "StorageOutRows_ListView_DeliveryNote" Then
Frame.GetController(Of StorageTransactionsOutVC)().aCreateDeliveryNote.Active.SetItemValue("", False)
End If
If View.Id = "StorageOutRowsFromPDACollectionPopup_ListView" Then
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
End If
'------------------------------------------ DETAILVIEWS ------------------------------------------------------------------------------------------------------
If View.Id = "StorageOutHeader_DetailView" Then
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
If _StorageOutHeader.IsEditable = False And _StorageOutHeader.IsStorno = False Then
Frame.GetController(Of StorageTransactionsOutVC)().aBackToEdit_StorageOut.Active.SetItemValue("", False)
End If
End If
If View.Id = "StorageOutHeader_DetailView" Then
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
Dim _IsFromOrderIn As Boolean = False
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)()?.Active.SetItemValue("", False)
If _StorageOutHeader IsNot Nothing Then
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows ' Végigmegy a kit biz sorain és ha talál olyan sort ahol van hozzá megrendelési sor akkor nem engedi stornózni
If _StorageOutRows.OrderInRows IsNot Nothing Then
_IsFromOrderIn = True
End If
Next
If (_StorageOutHeader.IsStorno = True Or _StorageOutHeader.IsEditable = True) Or _IsFromOrderIn = True Then
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutStorno.Active.SetItemValue("", True)
End If
If _StorageOutHeader.IsStorno = False And _StorageOutHeader.IsEditable = False And _IsFromOrderIn = False Then
If _IsFromOrderIn = False Then
Frame.GetController(Of StorageTransactionsOutVC)().aStorageOutStorno.Active.SetItemValue("", False)
End If
End If
If _StorageOutHeader.IsEditable = False Then
Frame.GetController(Of StorageTransactionsOutVC)().aFinalize_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aFinalizeAndNew_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ModificationsController)()?.Active.SetItemValue("", False)
Else
Frame.GetController(Of StorageTransactionsOutVC)().aFinalizeAndNew_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aFinalize_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aToTable_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aToTableD_StorageOut.Active.SetItemValue("", False)
Frame.GetController(Of StorageTransactionsOutVC)().aCreatePDACollectionFromStorageOut.Active.SetItemValue("", False)
End If
End If
End If
End Sub
Private Sub aStorageOutStorno_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aStorageOutStorno.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
Try
Dim _StorageOutHeader As StorageOutHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), StorageOutHeader))
If _StorageOutHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
If _StorageOutHeader.IsStorno = True Then Throw New Exception(String.Format("A {0} bizonylat már stornózva lett!", _StorageOutHeader.DocumentNumber) _
+ vbNewLine + "Kérem, ellenőrizze!")
Dim _StorageOutRowsDelivered As StorageOutRows = Nothing
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
If _StorageOutRows.QTT_To_DeliveryOut > 0 Then
_StorageOutRowsDelivered = _StorageOutRows
Exit For
End If
Next
If _StorageOutRowsDelivered IsNot Nothing Then Throw New Exception(String.Format("A {0} termékből a {1} sorszámú kitárolási soron {2}{3} kiszállításar került!", _
_StorageOutRowsDelivered.Products.ShortName, _StorageOutRowsDelivered.RowIndex, _StorageOutRowsDelivered.QTT_To_DeliveryOut, _StorageOutRowsDelivered.Products.Units.ShortName) _
+ vbNewLine + "Kérem, ellenőrizze!")
'--==Zárolás==--
'____________________________________________________________________________________________________________________
If Not LockingModule.LockObject(_uow_lock, GetType(StorageComputed), "-", _User) Then
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(StorageComputed).Name + "-" + "-"))
Dim _Prompt As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions\StorageComputed", "CanNotStorageInByLocking")
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxError")
MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
Exit Sub
Else
Dim _StorageOutHeaderNew As New StorageOutHeader(_onew.Session)
With _StorageOutHeaderNew
.ConnectInfo = _StorageOutHeader.DocumentNumber
.Storage = _StorageOutHeader.Storage
.StorageMoveType = _StorageOutHeader.StorageMoveType
.CustomersFrom = _StorageOutHeader.CustomersFrom
.Customers = _StorageOutHeader.Customers
.Active = False
.IsStorno = True
.IsEditable = False
End With
_StorageOutHeader = _onew.GetObject(_StorageOutHeader)
_StorageOutHeader.IsEditable = False
_StorageOutHeader.IsStorno = True
_StorageOutHeader.Active = False
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
Dim _StorageOutRowsNew As New StorageOutRows(_onew.Session)
With _StorageOutRowsNew
.RowIndex = _StorageOutRows.RowIndex
.StorageOutHeader = _StorageOutHeaderNew
.StorageComputed = _StorageOutRows.StorageComputed
.OrderInRows = _StorageOutRows.OrderInRows
.QTT = _StorageOutRows.QTT * (-1)
.QTT_Will = 0
.QTT_To_DeliveryOut = 0
.Products = _StorageOutRows.Products
.OnStorno = True
End With
'----Vissza raktárba + mozgástábla
'____________________________________________________
Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageOutRows=?", _StorageOutRows))
For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
Dim _StorageComputed As StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? AND Products=?", _StorageOutHeader.Storage, _StorageOutRows.Products))
Dim _StorageMoveEvents_Collection As New XPCollection(Of StorageMoveEvents)(_onew.Session, CriteriaOperator.Parse("StorageInRows=? AND StorageOutRows=?", _
_StorageOutRowsInRows.StorageInRows, _StorageOutRows))
_StorageMoveEvents_Collection.Sorting.Add(New SortProperty("ObjectCreated", DB.SortingDirection.Descending))
_StorageComputed.QTTFree += _StorageOutRowsInRows.QTT
Dim _StorageOutRowsInRowsNew As New StorageOutRowsInRows(_onew.Session)
With _StorageOutRowsInRowsNew
.StorageInRows = _StorageOutRowsInRows.StorageInRows
.StorageOutRows = _StorageOutRowsNew
.QTT = _StorageOutRowsInRows.QTT * (-1)
.QTT_Will = 0
.QTT_To_DeliveryOut = 0
.StorageInRows.QTT_Out -= _StorageOutRowsInRows.QTT
End With
If _StorageOutRowsInRows.StorageOutRows.OrderInRows IsNot Nothing Then
_StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_Storaged -= _StorageOutRowsInRows.QTT
End If
Dim _StorageMoveEvents As New StorageMoveEvents(_onew.Session)
_StorageMoveEvents.QTT = _StorageOutRowsInRows.QTT
_StorageMoveEvents.StorageOutRows = _StorageOutRows
_StorageMoveEvents.StorageInRows = _StorageOutRowsInRows.StorageInRows
_StorageMoveEvents.QTT_Free_Before = _StorageMoveEvents_Collection(0).QTT_Free_After
_StorageMoveEvents.QTT_Free_After = _StorageMoveEvents.QTT_Free_Before + _StorageMoveEvents.QTT
_StorageMoveEvents.MoveEventsType = eMoveEventsType.StorageOutStorno
_StorageMoveEvents.ExecutionDate = _StorageOutRows.StorageOutHeader.CreateDate
_StorageOutRows.QTT = 0
Next
Next
_onew.CommitChanges()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
Finally
LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
End Try
End Sub
Private Sub aToTable_StorageOut_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aToTable_StorageOut.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
Dim _StorageOutHeader_Original As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
'--1. Levesszük a Nonpersistent propertyket az aktuális objektumról --------------------------------------------------------------------------------------------------
Dim _row_QTT_Will As Double = _StorageOutHeader_Original.row_QTT_Will
Dim _row_OutMode As eOutMode = _StorageOutHeader_Original.row_OutMode
Dim _row_StorageComputed_Oid As System.Guid
If _row_OutMode = eOutMode.eProducts Then
_row_StorageComputed_Oid = _StorageOutHeader_Original.row_StorageComputed.Oid
End If
Dim _row_StorageInRows_Oid As System.Guid
If _StorageOutHeader_Original.row_OutMode <> eOutMode.eProducts Then
_row_StorageInRows_Oid = _StorageOutHeader_Original.row_StorageInRows.Oid
End If
'---------------------------------------------------------------------------------------------------------------------------------------------------------------------
Dim _StorageOutHeader As StorageOutHeader = _onew.GetObjectByKey(Of StorageOutHeader)(TryCast(View.SelectedObjects(0), StorageOutHeader).Oid)
Dim _StorageOutRowsInRows As StorageOutRowsInRows
Dim _StorageOutRows As StorageOutRows
Dim _StorageComputed As StorageComputed
Dim _row_StorageComputed As StorageComputed = _onew.GetObjectByKey(Of StorageComputed)(_row_StorageComputed_Oid)
Dim _row_StorageInRows As StorageInRows = _onew.GetObjectByKey(Of StorageInRows)(_row_StorageInRows_Oid)
Dim _StorageInRows As StorageInRows
Dim _StorageInRows_Collection As XPCollection(Of StorageInRows)
Dim _StorageOutRows_R As StorageOutRows
Dim _StorageOutRows_Collection_R As XPCollection(Of StorageOutRows)
Dim _QTT_Mod As Double = 0
Dim _QTT_Free As Double = 0
Dim _QTT_ReservedOut As Double = 0
Dim _QTT_Will_Out As Double = 0
Try
If Not LockingModule.LockObject(_uow_lock, GetType(StorageComputed), "-", _User) Then
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(StorageComputed).Name + "-" + "-"))
Dim _Prompt As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions\StorageComputed", "CanNotStorageInByLocking")
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxError")
MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
Exit Sub
Else
If _row_OutMode = eOutMode.eProducts Then
If _row_StorageComputed.QTTFree < _row_QTT_Will Then
Throw New Exception("*Ebből a termékből ebben a raktárban ennyi nem áll rendellkezésre!")
End If
_StorageOutRows = _onew.FindObject(Of StorageOutRows) _
(CriteriaOperator.Parse("StorageOutHeader=? and Products=?", _
_StorageOutHeader, _row_StorageComputed.Products), True)
If _StorageOutRows Is Nothing Then
_StorageOutRows = New StorageOutRows(_onew.Session)
_StorageOutRows.StorageOutHeader = _StorageOutHeader
_StorageOutRows.Products = _row_StorageComputed.Products
End If
_StorageInRows_Collection = New XPCollection(Of StorageInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageInHeader.Storage=? and StorageInHeader.IsEditable=False and StorageInHeader.IsStorno=False and Products=?", _
_onew.GetObject(_StorageOutHeader.Storage), _onew.GetObject(_row_StorageComputed.Products)))
_StorageInRows_Collection.Sorting.Add(New SortProperty("StorageInHeader.CreateDate", DB.SortingDirection.Ascending))
_QTT_Mod = _row_QTT_Will
For Each _StorageInRows In _StorageInRows_Collection
_QTT_Free = _StorageInRows.QTT - _StorageInRows.QTT_Out - _StorageInRows.QTT_Out_Will
If _QTT_Free > 0 Then
If _QTT_Free < _QTT_Mod Then
_StorageInRows.QTT_Out_Will += _QTT_Free
_StorageOutRows.QTT_Will += _QTT_Free
_StorageInRows.Save()
_QTT_Mod -= _QTT_Free
'------- FIFO sor beszúrása
_StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
_onew.GetObject(_StorageInRows), _onew.GetObject(_StorageOutRows)))
If _StorageOutRowsInRows IsNot Nothing Then
_StorageOutRowsInRows.QTT += _QTT_Free
Else
_StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
_StorageOutRowsInRows.StorageInRows = _onew.GetObject(_StorageInRows)
_StorageOutRowsInRows.StorageOutRows = _onew.GetObject(_StorageOutRows)
_StorageOutRowsInRows.QTT = _QTT_Free
End If
Else
_StorageInRows.QTT_Out_Will += _QTT_Mod
_StorageOutRows.QTT_Will += _QTT_Mod
_StorageInRows.Save()
'------- FIFO sor beszúrása
_StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
_onew.GetObject(_StorageInRows), _onew.GetObject(_StorageOutRows)))
If _StorageOutRowsInRows IsNot Nothing Then
_StorageOutRowsInRows.QTT += _QTT_Mod
Else
_StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
_StorageOutRowsInRows.StorageInRows = _onew.GetObject(_StorageInRows)
_StorageOutRowsInRows.StorageOutRows = _onew.GetObject(_StorageOutRows)
_StorageOutRowsInRows.QTT = _QTT_Mod
End If
Exit For
End If
End If
Next
If _StorageOutRows.RowIndex = -1 Then
If _StorageOutHeader.StorageOutRows.Count = 0 Then
_StorageOutRows.RowIndex = 1
Else
_StorageOutRows.RowIndex = _StorageOutHeader.StorageOutRows.Count
End If
End If
_StorageOutRows.Save()
_StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _
_onew.GetObject(_StorageOutHeader.Storage), _onew.GetObject(_row_StorageComputed.Products)))
_QTT_ReservedOut = _StorageComputed.QTTReservedOut
_StorageOutRows_Collection_R = New XPCollection(Of StorageOutRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("QTT_Will>0 and StorageOutHeader.Storage=? and Products=?", _onew.GetObject(_StorageOutHeader.Storage), _onew.GetObject(_row_StorageComputed.Products)))
For Each _StorageOutRows_R In _StorageOutRows_Collection_R
_QTT_Will_Out += _StorageOutRows_R.QTT_Will
Next
_StorageComputed.QTTFree = _StorageComputed.QTTFree - (_QTT_Will_Out - _QTT_ReservedOut)
_StorageComputed.QTTReservedOut = _QTT_Will_Out
_onew.CommitChanges()
Else
_StorageOutRows = _onew.FindObject(Of StorageOutRows)(CriteriaOperator.Parse("StorageOutHeader=? and Products=?", _
_onew.GetObject(_StorageOutHeader), _onew.GetObject(_row_StorageInRows.Products)), True)
If _StorageOutRows Is Nothing Then
_StorageOutRows = New StorageOutRows(_onew.Session)
_StorageOutRows.StorageOutHeader = _onew.GetObject(_StorageOutHeader)
_StorageOutRows.Products = _onew.GetObject(_row_StorageInRows.Products)
End If
_StorageInRows_Collection = New XPCollection(Of StorageInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("Oid=?", _row_StorageInRows.Oid))
_StorageInRows_Collection.Sorting.Add(New SortProperty("StorageInHeader.CreateDate", DB.SortingDirection.Ascending))
_QTT_Mod = _row_QTT_Will
For Each _StorageInRows In _StorageInRows_Collection
_QTT_Free = _StorageInRows.QTT - _StorageInRows.QTT_Out - _StorageInRows.QTT_Out_Will
If _QTT_Free < _QTT_Mod Then
_StorageInRows.QTT_Out_Will += _QTT_Free
_StorageOutRows.QTT_Will += _QTT_Free
_QTT_Mod -= _QTT_Free
'------- FIFO sor beszúrása
_StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
_onew.GetObject(_StorageInRows), _onew.GetObject(_StorageOutRows)))
If _StorageOutRowsInRows IsNot Nothing Then
_StorageOutRowsInRows.QTT += _QTT_Free
Else
_StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
_StorageOutRowsInRows.StorageInRows = _onew.GetObject(_StorageInRows)
_StorageOutRowsInRows.StorageOutRows = _onew.GetObject(_StorageOutRows)
_StorageOutRowsInRows.QTT = _QTT_Free
End If
Else
_StorageInRows.QTT_Out_Will += _QTT_Mod
_StorageOutRows.QTT_Will += _QTT_Mod
'------- FIFO sor beszúrása
_StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
_onew.GetObject(_StorageInRows), _onew.GetObject(_StorageOutRows)), True)
If _StorageOutRowsInRows IsNot Nothing Then
_StorageOutRowsInRows.QTT += _QTT_Mod
Else
_StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
_StorageOutRowsInRows.StorageInRows = _onew.GetObject(_StorageInRows)
_StorageOutRowsInRows.StorageOutRows = _onew.GetObject(_StorageOutRows)
_StorageOutRowsInRows.QTT = _QTT_Mod
End If
Exit For
End If
Next
If _StorageOutRows.RowIndex = -1 Then
If _StorageOutHeader.StorageOutRows.Count = 0 Then
_StorageOutRows.RowIndex = 1
Else
_StorageOutRows.RowIndex = _StorageOutHeader.StorageOutRows.Count
End If
End If
_StorageOutRows.Save()
_StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _
_onew.GetObject(_StorageOutHeader.Storage), _onew.GetObject(_row_StorageInRows.Products)), True)
_QTT_ReservedOut = _StorageComputed.QTTReservedOut
_StorageOutRows_Collection_R = New XPCollection(Of StorageOutRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("QTT_Will>0 and StorageOutHeader.Storage=? and Products=?", _onew.GetObject(_StorageOutHeader.Storage), _onew.GetObject(_row_StorageInRows.Products)))
For Each _StorageOutRows_R In _StorageOutRows_Collection_R
_QTT_Will_Out += _StorageOutRows_R.QTT_Will
Next
_StorageComputed.QTTFree = _StorageComputed.QTTFree - (_QTT_Will_Out - _QTT_ReservedOut)
_StorageComputed.QTTReservedOut = _QTT_Will_Out
_onew.CommitChanges()
If _StorageOutHeader.StorageMoveType.MoveType = eMoveType.InventoryTransfer Then
CheckInventoryTransferStorageInRows(_uow, _StorageOutHeader.StorageInRows)
End If
End If
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
Finally
LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
End Try
End Sub
Private Sub aFinalizeAndNew_StorageOut_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aFinalizeAndNew_StorageOut.Execute, aFinalize_StorageOut.Execute
'--Az eljárás egy kitárolást véglegesít és nyit egy újat
'Ide lett irányítva a aFinalize_StorageOut_Execute is!!!!!!!!!! Ez így jó, vagy szét kell szedni külön?
'_______________________________________________________________________________________________
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
Try
If Not LockingModule.LockObject(_uow_lock, GetType(StorageComputed), "-", _User) Then
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(StorageComputed).Name + "-" + "-"))
Dim _Prompt As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions\StorageComputed", "CanNotStorageInByLocking")
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxError")
MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
Exit Sub
Else
Dim _StorageOutHeader As StorageOutHeader = _onew.GetObjectByKey(Of StorageOutHeader)(TryCast(View.SelectedObjects(0), StorageOutHeader).Oid)
If _StorageOutHeader.Storage Is Nothing Then Throw New Exception("*Nincs beállítva raktár!")
If _StorageOutHeader.StorageOutRows.Count = 0 Then Throw New Exception("*Nincs egyetlen kitárolási sor sem!")
For Each _StorageOutRows In _StorageOutHeader.StorageOutRows
Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageOutRows=?", _onew.GetObject(_StorageOutRows)))
For Each _StorageOutRowsInRows In _StorageOutRowsInRows_Collection
If _StorageOutRowsInRows.QTT > 0 Then
Dim _StorageMoveEvents_Collection As New XPCollection(Of StorageMoveEvents)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageInRows=?", _onew.GetObject(_StorageOutRowsInRows.StorageInRows)))
_StorageMoveEvents_Collection.Sorting.Add(New SortProperty("ObjectCreated", DB.SortingDirection.Descending))
_StorageOutRowsInRows.StorageInRows.QTT_Out += _StorageOutRowsInRows.QTT
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _StorageOutRowsInRows.QTT
Dim _StorageMoveEvents As New StorageMoveEvents(_onew.Session)
_StorageMoveEvents.StorageInRows = _onew.GetObject(_StorageOutRowsInRows.StorageInRows)
_StorageMoveEvents.StorageOutRows = _onew.GetObject(_StorageOutRowsInRows.StorageOutRows)
If _StorageMoveEvents_Collection.Count > 0 Then
_StorageMoveEvents.QTT_Free_Before = _StorageMoveEvents_Collection(0).QTT_Free_After
Else
_StorageMoveEvents.QTT_Free_Before = 0
End If
_StorageMoveEvents.QTT = (-1) * _StorageOutRowsInRows.QTT
_StorageMoveEvents.QTT_Free_After = _StorageMoveEvents.QTT_Free_Before + _StorageMoveEvents.QTT
_StorageMoveEvents.MoveEventsType = eMoveEventsType.StorageOutFinal
_StorageMoveEvents.ExecutionDate = _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.CreateDate
End If
Next
_StorageOutRows.QTT += _StorageOutRows.QTT_Will
If _StorageOutRows.OrderInRows IsNot Nothing Then
_StorageOutRows.OrderInRows.QTT_Storaged += _StorageOutRows.OrderInRows.QTT_Storaged_Will
_StorageOutRows.OrderInRows.QTT_Storaged_Will = 0
End If
Dim _StorageComputed As StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Products=? and Storage=?", _onew.GetObject(_StorageOutRows.Products), _
_onew.GetObject(_StorageOutRows.StorageOutHeader.Storage)), True)
_StorageComputed.QTTReservedOut -= _StorageOutRows.QTT_Will
_StorageOutRows.QTT_Will = 0
Next
_StorageOutHeader.IsEditable = False
_StorageOutHeader.IsFinalized = True
'//Ha 9-es tipusú a mozgás akkor be kell állítani bejövő szállítólevelenként a visszárúzott szumma mennyiséget !!!
If _StorageOutHeader.StorageMoveType.MoveType = eMoveType.ReturnBack Then
Dim _StorageOutRows As StorageOutRows
Dim _StorageOutRowsInRows As StorageOutRowsInRows
Dim _StorageOutRowsInRows2 As StorageOutRowsInRows
For Each _StorageOutRows In _StorageOutHeader.StorageOutRows
For Each _StorageOutRowsInRows In _StorageOutRows.StorageOutRowsInRows
If _StorageOutRowsInRows.StorageInRows.DeliveryNoteInRows IsNot Nothing Then
_StorageOutRowsInRows.StorageInRows.DeliveryNoteInRows.QTT_Returned = 0
End If
Next
Next
For Each _StorageOutRows In _StorageOutHeader.StorageOutRows
For Each _StorageOutRowsInRows In _StorageOutRows.StorageOutRowsInRows
If _StorageOutRowsInRows.StorageInRows.DeliveryNoteInRows IsNot Nothing Then
Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(_onew.Session,
CriteriaOperator.Parse("StorageOutRows.StorageOutHeader.StorageMoveType.MoveType='ReturnBack' and " +
" StorageOutRows.StorageOutHeader.IsEditable=False and " +
" StorageInRows.DeliveryNoteInRows.Oid=?", _StorageOutRowsInRows.StorageInRows.DeliveryNoteInRows.Oid))
Dim _QTT_Returned As Double = 0
For Each _StorageOutRowsInRows2 In _StorageOutRowsInRows_Collection
_QTT_Returned += _StorageOutRowsInRows2.QTT
Next
_StorageOutRowsInRows.StorageInRows.DeliveryNoteInRows.QTT_Returned += _QTT_Returned + _StorageOutRowsInRows.QTT
End If
Next
Next
End If
_onew.CommitChanges()
If _StorageOutHeader.StorageMoveType.MoveType = eMoveType.InventoryTransfer Then
CheckInventoryTransferStorageInRows(_uow, _StorageOutHeader.StorageInRows)
End If
If sender.id = "aFinalizeAndNew_StorageOut" Then
Frame.GetController(Of NewObjectViewController)().NewObjectAction.DoExecute(Frame.GetController(Of NewObjectViewController)().NewObjectAction.Items(0))
End If
Dim _ReportData As ReportData = _onew.FindObject(Of ReportData)(CriteriaOperator.Parse("Oid=?", _StorageOutHeader.Storage.ReportOut.Oid), True)
If _ReportData IsNot Nothing Then
Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("StorageOutRows.StorageOutHeader.DocumentNumber=?", _StorageOutHeader.DocumentNumber), True)
Else
MsgBox("Nincs beállítva nyomtatvány!")
End If
View.Close()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba")
Finally
LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
End Try
End Sub
Private Sub aSOFinList_Order_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aSOFinList_Order.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
Try
If Not LockingModule.LockObject(_uow_lock, GetType(StorageComputed), "-", _User) Then
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(StorageComputed).Name + "-" + "-"))
Dim _Prompt As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions\StorageComputed", "CanNotStorageInByLocking")
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxError")
MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
Exit Sub
Else
Dim _StorageOutRows As StorageOutRows
Dim _StorageOutHeader As StorageOutHeader = Nothing
Dim _IsHeaderCreated As Boolean = False
Dim _StorageOutHeader_Collection As New ArrayList
Dim _StorageOutHeader_Exists As Boolean = False
_StorageOutHeader_Collection.Clear()
For Each _StorageOutRows In e.SelectedObjects
_StorageOutRows = _onew.GetObject(_StorageOutRows)
_StorageOutHeader_Exists = False
For Each _StorageOutHeader In _StorageOutHeader_Collection
If _StorageOutRows.StorageOutHeader.Oid = _StorageOutHeader.Oid Then
_StorageOutHeader_Exists = True
Exit For
End If
Next
If _StorageOutHeader_Exists = False Then
_StorageOutHeader_Collection.Add(_StorageOutRows.StorageOutHeader)
End If
Next
For Each _StorageOutHeader In _StorageOutHeader_Collection
Dim _StorageComputed As StorageComputed
Dim _StorageOutRowsInRows_Collection As XPCollection(Of StorageOutRowsInRows)
Dim _StorageOutRowsInRows As StorageOutRowsInRows
Dim _QTT_Free_Before As Double = 0
Dim _QTT_Free_After As Double = 0
For Each _StorageOutRows In _StorageOutHeader.StorageOutRows
_StorageOutRowsInRows_Collection = New XPCollection(Of StorageOutRowsInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageOutRows=?", _StorageOutRows))
For Each _StorageOutRowsInRows In _StorageOutRowsInRows_Collection
If _StorageOutRowsInRows.QTT > 0 Then
Dim _StorageMoveEvents_Collection As New XPCollection(Of StorageMoveEvents)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageInRows=?", _StorageOutRowsInRows.StorageInRows))
_StorageMoveEvents_Collection.Sorting.Add(New SortProperty("ObjectCreated", DB.SortingDirection.Descending))
_StorageOutRowsInRows.StorageInRows.QTT_Out += _StorageOutRowsInRows.QTT
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _StorageOutRowsInRows.QTT
Dim _StorageMoveEvents As StorageMoveEvents = _onew.CreateObject(Of StorageMoveEvents)()
_StorageMoveEvents.StorageInRows = _StorageOutRowsInRows.StorageInRows
_StorageMoveEvents.StorageOutRows = _StorageOutRowsInRows.StorageOutRows
If _StorageMoveEvents_Collection.Count > 0 Then
_StorageMoveEvents.QTT_Free_Before = _StorageMoveEvents_Collection(0).QTT_Free_After
Else
_StorageMoveEvents.QTT_Free_Before = 0
End If
_StorageMoveEvents.QTT = (-1) * _StorageOutRowsInRows.QTT
_StorageMoveEvents.QTT_Free_After = _StorageMoveEvents.QTT_Free_Before + _StorageMoveEvents.QTT
_StorageMoveEvents.MoveEventsType = eMoveEventsType.StorageOutFinal
_StorageMoveEvents.ExecutionDate = _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.CreateDate
_StorageMoveEvents.Save()
End If
Next
_StorageOutRows.QTT += _StorageOutRows.QTT_Will
If _StorageOutRows.OrderInRows IsNot Nothing Then
_StorageOutRows.OrderInRows.QTT_Storaged += _StorageOutRows.OrderInRows.QTT_Storaged_Will
_StorageOutRows.OrderInRows.QTT_Storaged_Will = 0
End If
_StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Products=? and Storage=?", _StorageOutRows.Products, _StorageOutRows.StorageOutHeader.Storage), True)
_StorageComputed.QTTReservedOut -= _StorageOutRows.QTT_Will
_StorageOutRows.QTT_Will = 0
_StorageOutHeader.IsEditable = False
_StorageOutHeader.IsFinalized = True
_StorageOutHeader.CreateDate = GetSQLTime(_onew.Session)
Next
Next
_onew.CommitChanges() 'Véglegesítjük az újonnan létrehozott fejlécet ezáltal a sorai kitárolt állapotba kerülnek
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
Finally
LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
End Try
End Sub
Private Sub aBackToEdit_StorageOut_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aBackToEdit_StorageOut.Execute
'-- Az akció egy véglegesített kitárolási bizonylatot állít vissza szerkeszthetőre -------------------------
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
Dim _StorageOutHeader As StorageOutHeader = _onew.GetObjectByKey(Of StorageOutHeader)(TryCast(View.SelectedObjects(0), StorageOutHeader).Oid)
Try
If _StorageOutHeader.IsEditable = False And _StorageOutHeader.IsStorno = False And _StorageOutHeader.Active = True Then
Dim _AllowBackToEdit = False
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
If _StorageOutRows.QTT_To_DeliveryOut = 0 And _StorageOutRows.QTT_Will = 0 Then
_AllowBackToEdit = True
Exit For
End If
Next
If _AllowBackToEdit = True Then
If Not LockingModule.LockObject(_uow_lock, GetType(StorageComputed), "-", _User) Then
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(StorageComputed).Name + "-" + "-"))
Dim _Prompt As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions\StorageComputed", "CanNotStorageInByLocking")
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxError")
MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
Exit Sub
Else
_StorageOutHeader.IsEditable = True
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
_StorageOutRows.QTT_Will = _StorageOutRows.QTT
_StorageOutRows.Save()
Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageOutRows=?", _StorageOutRows))
For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
Dim _StorageComputed As StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? AND Products=?", _
_onew.GetObject(_StorageOutHeader.Storage), _onew.GetObject(_StorageOutRows.Products)))
Dim _StorageMoveEvents_Collection As New XPCollection(Of StorageMoveEvents)(_onew.Session, CriteriaOperator.Parse("StorageInRows=? AND StorageOutRows=?", _
_onew.GetObject(_StorageOutRowsInRows.StorageInRows), _onew.GetObject(_StorageOutRows)))
_StorageComputed.QTTReservedOut += _StorageOutRowsInRows.QTT
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will += _StorageOutRowsInRows.QTT
_StorageOutRowsInRows.StorageInRows.QTT_Out -= _StorageOutRowsInRows.QTT
If _StorageOutRowsInRows.StorageOutRows.OrderInRows IsNot Nothing Then
_StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_Storaged -= _StorageOutRowsInRows.QTT
_StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_Storaged_Will += _StorageOutRowsInRows.QTT
End If
Dim _StorageMoveEvents As New StorageMoveEvents(_onew.Session)
_StorageMoveEvents.QTT = _StorageOutRowsInRows.QTT
_StorageMoveEvents.StorageOutRows = _onew.GetObject(_StorageOutRows)
_StorageMoveEvents.StorageInRows = _onew.GetObject(_StorageOutRowsInRows.StorageInRows)
_StorageMoveEvents.QTT_Free_Before = _StorageMoveEvents_Collection(0).QTT_Free_After
_StorageMoveEvents.QTT_Free_After = _StorageMoveEvents.QTT_Free_Before + _StorageMoveEvents.QTT
_StorageMoveEvents.MoveEventsType = eMoveEventsType.StorageOutBackToEdit
_StorageMoveEvents.ExecutionDate = _StorageOutRows.StorageOutHeader.CreateDate
_StorageOutRows.QTT = 0
Next
Next
_onew.CommitChanges()
End If
End If
End If
If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba")
Finally
LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
End Try
End Sub
Private Sub aToTableD_StorageOut_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aToTableD_StorageOut.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
Try
If Not LockingModule.LockObject(_uow_lock, GetType(StorageComputed), "-", _User) Then
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(StorageComputed).Name + "-" + "-"))
Dim _Prompt As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions\StorageComputed", "CanNotStorageInByLocking")
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxError")
MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
Exit Sub
Else
Dim _StorageOutHeader As StorageOutHeader = _onew.GetObjectByKey(Of StorageOutHeader)(TryCast(View.SelectedObjects(0), StorageOutHeader).Oid)
Dim _StorageOutHeader_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("StorageOutRows")
Dim _StorageOutRows As StorageOutRows
Dim _StorageOutRows_R As StorageOutRows
Dim _StorageOutRows_Collection_R As XPCollection(Of StorageOutRows)
Dim _StorageComputed As StorageComputed
Dim _Storage As Storage = Nothing
Dim _StorageOutRowsInRows As StorageOutRowsInRows
Dim _StorageOutRowsInRows_Collection As XPCollection(Of StorageOutRowsInRows)
Dim _QTT_Process As Double = 0
Dim _QTT_Mod As Double = 0
Dim _QTT_Mod_In As Double = 0
Dim _QTT_ReservedOut As Double = 0
Dim _QTT_Will_Out As Double = 0
Dim _StorageOutRows_Original As StorageOutRows
For Each _StorageOutRows_Original In _StorageOutHeader_ListEditor.ListView.SelectedObjects
_StorageOutRows = _onew.GetObjectByKey(Of StorageOutRows)(_StorageOutRows_Original.Oid)
_QTT_Mod = Math.Round(_StorageOutRows.QTT_Will, 4, MidpointRounding.AwayFromZero)
_Storage = _StorageOutRows.StorageOutHeader.Storage
_StorageOutRowsInRows_Collection = New XPCollection(Of StorageOutRowsInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageOutRows=? and QTT>0", _onew.GetObject(_StorageOutRows)))
If _QTT_Mod <= _StorageOutRows.QTT_Will Then
_StorageOutRows.QTT_Will -= _QTT_Mod
' _StorageOutRows.Save()
_StorageOutRows.Delete()
'--- FIFO sor !!!
_QTT_Mod_In = _QTT_Mod
For Each _StorageOutRowsInRows In _StorageOutRowsInRows_Collection
If _QTT_Mod_In <= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will Then
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _QTT_Mod_In
_StorageOutRowsInRows.QTT -= _QTT_Mod_In
Exit For
Else
_QTT_Mod_In -= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will
_StorageOutRowsInRows.QTT = 0
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will = 0
End If
Next
Else
_QTT_Mod -= _StorageOutRows.QTT_Will
_StorageOutRows.QTT_Will = 0
_StorageOutRows.Delete()
'--- FIFO sor
_QTT_Mod_In = _QTT_Mod
For Each _StorageOutRowsInRows In _StorageOutRowsInRows_Collection
If _QTT_Mod_In <= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will Then
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _QTT_Mod_In
_StorageOutRowsInRows.QTT -= _QTT_Mod_In
Exit For
Else
_QTT_Mod_In -= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will
_StorageOutRowsInRows.QTT = 0
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will = 0
End If
Next
End If
'--- StorageComputed újraszámolása
_StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _onew.GetObject(_Storage), _onew.GetObject(_StorageOutRows.Products)), True)
_QTT_ReservedOut = _StorageComputed.QTTReservedOut
_StorageOutRows_Collection_R = New XPCollection(Of StorageOutRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("QTT_Will>0 and StorageOutHeader.Storage=? and Products=?", _onew.GetObject(_Storage), _onew.GetObject(_StorageOutRows.Products)))
For Each _StorageOutRows_R In _StorageOutRows_Collection_R
_QTT_Will_Out += Math.Round(_StorageOutRows_R.QTT_Will, 2, MidpointRounding.AwayFromZero)
Next
_StorageComputed.QTTFree = Math.Round(_StorageComputed.QTTFree - (Math.Round(_QTT_Will_Out, 2, MidpointRounding.AwayFromZero) - Math.Round(_QTT_ReservedOut, 2, MidpointRounding.AwayFromZero)), 2, MidpointRounding.AwayFromZero)
_StorageComputed.QTTReservedOut = Math.Round(_QTT_Will_Out, 2, MidpointRounding.AwayFromZero)
Next
_onew.CommitChanges()
If _StorageOutHeader.StorageMoveType.MoveType = eMoveType.InventoryTransfer Then
CheckInventoryTransferStorageInRows(_uow, _StorageOutHeader.StorageInRows)
End If
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba")
Finally
LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
End Try
End Sub
Private Sub aUp_StorageOut_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aUp_StorageOut.Execute
' A kiválaszott sort egy sorral feljebb helyezi
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutRows).StorageOutHeader
Dim _StorageOutRowsSelected As StorageOutRows
Dim _StorageOutRowsMinus As StorageOutRows = Nothing
Dim _StorageOutRows As StorageOutRows
Try
_StorageOutRowsSelected = TryCast(View.SelectedObjects(0), StorageOutRows) ' Kiveszi a kijelölt sorok közül az elsőt
Catch
' TESZT MIATT!!!! ----------------------------------------------------------------
Throw New Exception("*Nincs sor kiválasztva, vagy nem a sor kijelölése az aktív!")
End Try
If _StorageOutRowsSelected.RowIndex > 0 Then
For Each _StorageOutRows In _StorageOutHeader.StorageOutRows
If _StorageOutRows.RowIndex = _StorageOutRowsSelected.RowIndex - 1 Then
_StorageOutRowsMinus = _StorageOutRows
Exit For
End If
Next
If _StorageOutRowsMinus IsNot Nothing Then
_StorageOutRowsSelected.RowIndex -= 1
_StorageOutRowsMinus.RowIndex += 1
End If
_ocur.CommitChanges()
View.Refresh()
End If
End Sub
Private Sub aDown_StorageOut_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aDown_StorageOut.Execute
' A kiválaszott sort egy sorral lejebb helyezi
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutRows).StorageOutHeader
Dim _StorageOutRowsSelected As StorageOutRows
Dim _StorageOutRowsPlus As StorageOutRows = Nothing
Dim _StorageOutrows As StorageOutRows
Try
_StorageOutRowsSelected = TryCast(View.SelectedObjects(0), StorageOutRows) ' Kiveszi a kijelölt sorok közül az elsőt
Catch
' TESZT MIATT!!!! ----------------------------------------------------------------
Throw New Exception("*Nincs sor kiválasztva, vagy nem a sor kijelölése az aktív!")
End Try
If _StorageOutRowsSelected.RowIndex < _StorageOutHeader.StorageOutRows.Count - 1 Then
For Each _StorageOutrows In _StorageOutHeader.StorageOutRows
If _StorageOutrows.RowIndex = _StorageOutRowsSelected.RowIndex + 1 Then
_StorageOutRowsPlus = _StorageOutrows
Exit For
End If
Next
If _StorageOutRowsPlus IsNot Nothing Then
_StorageOutRowsSelected.RowIndex += 1
_StorageOutRowsPlus.RowIndex -= 1
End If
_ocur.CommitChanges()
View.Refresh()
End If
End Sub
Private Sub aCreateDeliveryNote_CustomizePopupWindowParams(ByVal sender As Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aCreateDeliveryNote.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _DeliveryNoteView As DeliveryNoteView = _onew.CreateObject(Of DeliveryNoteView)()
e.View = Application.CreateDetailView(_onew, "DeliveryNoteView_DetailView", False, _DeliveryNoteView)
End Sub
Private Sub aCreateDeliveryNote_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aCreateDeliveryNote.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _DeliveryNoteView As DeliveryNoteView = TryCast(e.PopupWindow.View.SelectedObjects(0), DeliveryNoteView)
Dim _DeliveryNoteOutHeader_New As DeliveryNoteOutHeader = _ocur.CreateObject(Of DeliveryNoteOutHeader)()
Dim _StorageOutRows As StorageOutRows
Dim _StorageOutRowsInRows As StorageOutRowsInRows
Dim i As Integer = 0
_DeliveryNoteOutHeader_New.CurrencyName = _ocur.GetObject(_DeliveryNoteView.CurrencyName)
_DeliveryNoteOutHeader_New.Customers = _ocur.GetObject(_DeliveryNoteView.Customers)
_DeliveryNoteOutHeader_New.CustomersFrom = _ocur.GetObject(_DeliveryNoteView.CustomersFrom)
_DeliveryNoteOutHeader_New.DateCreated = GetSQLTime(_ocur.Session)
_DeliveryNoteOutHeader_New.DateExecution = _ocur.GetObject(_DeliveryNoteView.DateExecution)
_DeliveryNoteOutHeader_New.Note = _ocur.GetObject(_DeliveryNoteView.Note)
_DeliveryNoteOutHeader_New.QualityOption = _ocur.GetObject(_DeliveryNoteView.QualityOption)
_DeliveryNoteOutHeader_New.ShipmentOption = _ocur.GetObject(_DeliveryNoteView.ShipmentOption)
_DeliveryNoteOutHeader_New.TransportAddress = _ocur.GetObject(_DeliveryNoteView.TransportAddress)
For Each _StorageOutRows In View.SelectedObjects
Dim _DeliveryNoteOutRows As DeliveryNoteOutRows = _ocur.CreateObject(Of DeliveryNoteOutRows)()
_DeliveryNoteOutRows.DeliveryNoteOutHeader = _DeliveryNoteOutHeader_New
_DeliveryNoteOutRows.QTT = _StorageOutRows.QTT_Will
For Each _StorageOutRowsInRows In _StorageOutRows.StorageOutRowsInRows
_DeliveryNoteOutRows.StorageOutRowsInRows = _StorageOutRowsInRows
Next
_DeliveryNoteOutRows.RowIndex = i
i += 1
Next
_ocur.CommitChanges()
End Sub
Private Sub aBackToStorageOutFromOrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aBackToStorageOutFromOrderIn.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
Try
If Not LockingModule.LockObject(_uow_lock, GetType(StorageComputed), "-", _User) Then
Dim _LockingObject As LockingObject = _onew.FindObject(Of LockingObject)(CriteriaOperator.Parse("TableName=?", GetType(StorageComputed).Name + "-" + "-"))
Dim _Prompt As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions\StorageComputed", "CanNotStorageInByLocking")
Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxError")
MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)
Exit Sub
Else
Dim _StorageOutRows As StorageOutRows = _onew.GetObject(TryCast(View.SelectedObjects(0), StorageOutRows))
Dim _OrderInRows As OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_StorageOutRows.OrderInRows.Oid)
Dim _StorageComputed As StorageComputed
Dim _QTT_Mod As Double = 0
Dim _QTT_Mod_In As Double = 0
Dim _QTT_ReservedOut As Double = 0
Dim _QTT_Process As Double = 0
Dim _QTT_Will_Out As Double = 0
Dim _StorageOutRows_Collection As XPCollection(Of StorageOutRows)
Dim _StorageOutRowsInRows_Collection As XPCollection(Of StorageOutRowsInRows)
Dim _StorageOutRows_Collection_R As XPCollection(Of StorageOutRows)
Dim _Storage As Storage
'-- FIFO láb alapján vissza !
_QTT_Process = _StorageOutRows.QTT_Will
_QTT_Mod = _StorageOutRows.QTT_Will
_StorageOutRows_Collection = New XPCollection(Of StorageOutRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("Oid=?", _StorageOutRows.Oid))
For Each _StorageOutRows In _StorageOutRows_Collection
_Storage = _onew.GetObject(_StorageOutRows.StorageOutHeader.Storage)
_StorageOutRowsInRows_Collection = New XPCollection(Of StorageOutRowsInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("StorageOutRows=? and QTT>0", _onew.GetObject(_StorageOutRows)))
If _QTT_Mod <= _StorageOutRows.QTT_Will Then
_StorageOutRows.QTT_Will -= _QTT_Mod
_StorageOutRows.Save()
'--- FIFO sor !!!
_QTT_Mod_In = _QTT_Mod
For Each _StorageOutRowsInRows In _StorageOutRowsInRows_Collection
If _QTT_Mod_In <= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will Then
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _QTT_Mod_In
_StorageOutRowsInRows.QTT -= _QTT_Mod_In
Exit For
Else
_QTT_Mod_In -= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will
_StorageOutRowsInRows.QTT = 0
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will = 0
End If
Next
Else
_QTT_Mod -= _StorageOutRows.QTT_Will
_StorageOutRows.QTT_Will = 0
_StorageOutRows.Save()
'--- FIFO sor
_QTT_Mod_In = _QTT_Mod
For Each _StorageOutRowsInRows In _StorageOutRowsInRows_Collection
If _QTT_Mod_In <= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will Then
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _QTT_Mod_In
_StorageOutRowsInRows.QTT -= _QTT_Mod_In
Exit For
Else
_QTT_Mod_In -= _StorageOutRowsInRows.StorageInRows.QTT_Out_Will
_StorageOutRowsInRows.QTT = 0
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will = 0
End If
Next
End If
_OrderInRows.QTT_Storaged_Will -= _QTT_Process
'--- StorageComputed újraszámolása
_StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _onew.GetObject(_Storage), _onew.GetObject(_OrderInRows.Products)), True)
_QTT_ReservedOut = _StorageComputed.QTTReservedOut
_StorageOutRows_Collection_R = New XPCollection(Of StorageOutRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
CriteriaOperator.Parse("QTT_Will>0 and StorageOutHeader.Storage=? and Products=?", _onew.GetObject(_Storage), _onew.GetObject(_OrderInRows.Products)))
For Each _StorageOutRows_R In _StorageOutRows_Collection_R
_QTT_Will_Out += _StorageOutRows_R.QTT_Will
Next
_StorageComputed.QTTFree = _StorageComputed.QTTFree - (_QTT_Will_Out - _QTT_ReservedOut)
_StorageComputed.QTTReservedOut = _QTT_Will_Out
Next
_onew.CommitChanges()
If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba")
Finally
LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
End Try
End Sub
Private Sub sis_SOFinal(ByVal _StorageOutHeader As StorageOutHeader, ByVal _ocur As Xpo.XPObjectSpace)
Dim _StorageComputed As StorageComputed
Dim _StorageOutRows As StorageOutRows
Dim _StorageOutRowsInRows_Collection As XPCollection(Of StorageOutRowsInRows)
Dim _StorageOutRowsInRows As StorageOutRowsInRows
Dim _QTT_Free_Before As Double = 0
Dim _QTT_Free_After As Double = 0
For Each _StorageOutRows In _StorageOutHeader.StorageOutRows
_StorageOutRowsInRows_Collection = New XPCollection(Of StorageOutRowsInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _ocur.Session, _
CriteriaOperator.Parse("StorageOutRows=?", _StorageOutRows))
For Each _StorageOutRowsInRows In _StorageOutRowsInRows_Collection
_StorageOutRowsInRows.StorageInRows.QTT_Out += _StorageOutRowsInRows.StorageInRows.QTT_Out_Will
_StorageOutRowsInRows.StorageInRows.QTT_Out_Will = 0
_StorageOutRowsInRows.StorageInRows.QTT_Will = 0
'--- Esemény beszúrása !!!!!
Next
_StorageOutRows.QTT += _StorageOutRows.QTT_Will
If _StorageOutRows.OrderInRows IsNot Nothing Then
_StorageOutRows.OrderInRows.QTT_Storaged += _StorageOutRows.OrderInRows.QTT_Storaged_Will
_StorageOutRows.OrderInRows.QTT_Storaged_Will = 0
End If
_StorageComputed = _ocur.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Products=? and Storage=?", _StorageOutRows.Products, _StorageOutRows.StorageOutHeader.Storage), True)
_StorageComputed.QTTReservedOut -= _StorageOutRows.QTT_Will
_StorageOutRows.QTT_Will = 0
Next
_ocur.CommitChanges()
End Sub
Private Sub aStorageOutFromPdaCollection_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aStorageOutFromPdaCollection.CustomizePopupWindowParams
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _StoragePDACollectionHeader_Collection As New XPCollection(Of StoragePDACollectionHeader)(_onew.Session)
Dim _CS As New CollectionSource(_onew, GetType(StorageOutRowsFromPDACollectionPopup))
For Each _StoragePDACollectionHeader As StoragePDACollectionHeader In _StoragePDACollectionHeader_Collection
Dim _StorageInRowsFromPDACollectionPopup As StorageOutRowsFromPDACollectionPopup = _onew.CreateObject(Of StorageOutRowsFromPDACollectionPopup)()
_StorageInRowsFromPDACollectionPopup.StoragePDACollectionHeader = _StoragePDACollectionHeader
_CS.Add(_StorageInRowsFromPDACollectionPopup)
Next
e.View = Application.CreateListView("StorageOutRowsFromPDACollectionPopup_ListView", _CS, False)
End Sub
Private Sub aStorageOutFromPdaCollection_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aStorageOutFromPdaCollection.Execute
Try
If e.PopupWindow.View.SelectedObjects.Count = 0 Then Throw New Exception("*Nincs kiválasztva egyetlen kollekció sem!" + vbNewLine _
+ "A művelet megszakadt.")
Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
For Each _StorageOutRowsFromPDACollectionPopup As StorageOutRowsFromPDACollectionPopup In e.PopupWindow.View.SelectedObjects
If _StorageOutRowsFromPDACollectionPopup.StoragePDACollectionHeader.StoragePDACollectionRows.Count > 0 Then
Dim _StorageComputed As StorageComputed
For Each _StoragePDACollectionRows As StoragePDACollectionRows In _StorageOutRowsFromPDACollectionPopup.StoragePDACollectionHeader.StoragePDACollectionRows
_StorageComputed = _ocur.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? AND Products=?", _StorageOutHeader.Storage, _
_ocur.GetObjectByKey(Of Products)(_StoragePDACollectionRows.Products.Oid)))
If _StorageComputed Is Nothing Then Throw New Exception("*Egy vagy több termékhez nem tartozik betárolás!" + vbNewLine + "A művelet megszakadt.")
_StorageOutHeader.row_StorageComputed = _StorageComputed
_StorageOutHeader.row_QTT_Will = _StoragePDACollectionRows.QTT
Frame.GetController(Of StorageTransactionsOutVC).aToTable_StorageOut.DoExecute()
_StorageComputed = Nothing
Next
End If
Next
_ocur.CommitChanges()
Catch ext As Exception
MsgBox(ext.Message, MsgBoxStyle.OkOnly, "Hiba!")
End Try
End Sub
Private Sub aCreatePDACollectionFromStorageOut_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCreatePDACollectionFromStorageOut.Execute
Try
Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
If _StorageOutHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a kellemetlenségért elnézést kérünk! A folyamat megszakadt.")
If _StorageOutHeader.StorageOutRows.Count = 0 Then Throw New Exception("*Nincs egy kitárolási sor sem, így nem készíthető PDA kollekció sem!")
Dim _StoragePDACollectionHeader As StoragePDACollectionHeader = _ocur.CreateObject(Of StoragePDACollectionHeader)()
_StoragePDACollectionHeader.StoragePDACollectionHeaderStatus = eStoragePDACollectionHeaderStatus.eOpen
_StoragePDACollectionHeader.StoragePDAParameters = _ocur.FindObject(Of StoragePDAParameters) _
(CriteriaOperator.Parse("CustomersFrom=?", _StorageOutHeader.CustomersFrom))
_StoragePDACollectionHeader.StorageCollectionType = eStoragePDACollectionType.eIsLocationOut
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
If _StorageOutRows.QTT_Will > 0 Then
Dim _StoragePDACollectionRows As StoragePDACollectionRows = _ocur.CreateObject(Of StoragePDACollectionRows)()
_StoragePDACollectionRows.StoragePDACollectionHeader = _StoragePDACollectionHeader
_StoragePDACollectionRows.Products = _StorageOutRows.Products
_StoragePDACollectionRows.QTT = _StorageOutRows.QTT_Will
End If
Next
_ocur.CommitChanges()
Catch ext As Exception
MsgBox(ext.Message, MsgBoxStyle.OkOnly, "Hiba!")
End Try
End Sub
Private Sub aGenerateStorageOutPDACollection_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aGenerateStorageOutPDACollection.CustomizePopupWindowParams
Try
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _GenerateStorageInPDALocationCollection As GenerateStorageInPDALocationCollection = _onew.CreateObject(Of GenerateStorageInPDALocationCollection)()
e.View = Application.CreateDetailView(_onew, "GenerateStorageInPDALocationCollection_DetailView", False, _GenerateStorageInPDALocationCollection)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly)
End Try
End Sub
Private Sub aGenerateStorageOutPDACollection_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aGenerateStorageOutPDACollection.Execute
Try
Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace
Dim _StorageOutHeader As StorageOutHeader = TryCast(View.SelectedObjects(0), StorageOutHeader)
Dim _GenerateStorageInPDALocationCollection As GenerateStorageInPDALocationCollection = TryCast(e.PopupWindow.View.SelectedObjects(0), GenerateStorageInPDALocationCollection)
If _StorageOutHeader Is Nothing Then Throw New Exception("*Nincs kijelölve egyetlen véglegesített betárolás sem!")
Dim _StoragePDACollectionHeader As StoragePDACollectionHeader = _ocur.CreateObject(Of StoragePDACollectionHeader)()
_StoragePDACollectionHeader.StoragePDACollectionHeaderStatus = eStoragePDACollectionHeaderStatus.eOpen
_StoragePDACollectionHeader.StorageCollectionType = eStoragePDACollectionType.eIsLocationOut
_StoragePDACollectionHeader.StoragePDAParameters = _ocur.GetObjectByKey(Of StoragePDAParameters)(_GenerateStorageInPDALocationCollection.StoragePDAParameters.Oid)
If _StorageOutHeader.StorageOutRows.Count > 0 Then
For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
If _StorageOutRows.Products.ProductType = eProductType.ePacketNumber Or _
_StorageOutRows.Products.ProductType = eProductType.eSerialNumber Then
Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(_ocur.Session, CriteriaOperator.Parse("StorageOutRows=?", _StorageOutRows))
Dim _StorageComputedLocations_Collection As XPCollection(Of StorageComputedLocations)
For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
If _StorageOutRowsInRows.StorageInRows.SerialNumber Is Nothing Or _StorageOutRowsInRows.StorageInRows.SerialNumber = "" Then
_StorageComputedLocations_Collection = New XPCollection(Of StorageComputedLocations)(_ocur.Session, CriteriaOperator.Parse("PacketNumber=?", _StorageOutRowsInRows.StorageInRows.PacketNumber))
End If
If _StorageOutRowsInRows.StorageInRows.PacketNumber Is Nothing Or _StorageOutRowsInRows.StorageInRows.PacketNumber = "" Then
_StorageComputedLocations_Collection = New XPCollection(Of StorageComputedLocations)(_ocur.Session, CriteriaOperator.Parse("SerialNumber=?", _StorageOutRowsInRows.StorageInRows.SerialNumber))
End If
If _StorageComputedLocations_Collection.Count > 0 Then Exit For
Next
If _StorageComputedLocations_Collection.Count = 0 Then Throw New Exception("*Nincs a raktárban elhelyezve a termék!")
Dim _QTT As Double = _StorageOutRows.QTT
For Each _StorageComputedLocations As StorageComputedLocations In _StorageComputedLocations_Collection
Dim _StoragePDACollectionRows As StoragePDACollectionRows = _ocur.CreateObject(Of StoragePDACollectionRows)()
_StoragePDACollectionRows.StoragePDACollectionHeader = _StoragePDACollectionHeader
_StoragePDACollectionRows.Products = _StorageOutRows.Products
_StoragePDACollectionRows.StorageLocation = _StorageComputedLocations.StorageLocation
_StoragePDACollectionRows.DateModified = GetSQLTime(_ocur.Session)
_StoragePDACollectionRows.SerialNumber = _StorageComputedLocations.SerialNumber
_StoragePDACollectionRows.PacketNumber = _StorageComputedLocations.PacketNumber
_StoragePDACollectionHeader.StorageOutHeader = _StorageOutHeader
If _StorageComputedLocations.QTT >= _QTT Then
_StoragePDACollectionRows.QTT = _QTT
_StorageComputedLocations.QTT -= _QTT
_QTT = 0
Else
_StoragePDACollectionRows.QTT += _StorageComputedLocations.QTT
_QTT -= _StorageComputedLocations.QTT
_StorageComputedLocations.QTT = 0
End If
If _QTT = 0 Then Exit For
Next
Else
Dim _StorageComputed As StorageComputed = _ocur.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Products=? AND Storage=?", _StorageOutRows.Products, _StorageOutHeader.Storage))
Dim _StorageComputedLocations_Collection As New XPCollection(Of StorageComputedLocations)(_ocur.Session, CriteriaOperator.Parse("StorageComputed=?", _StorageComputed))
If _StorageComputedLocations_Collection.Count = 0 Then Throw New Exception("*Nincs elhelyezve termék!")
Dim _QTT As Double = _StorageOutRows.QTT
For Each _StorageComputedLocations As StorageComputedLocations In _StorageComputedLocations_Collection
Dim _StoragePDACollectionRows As StoragePDACollectionRows = _ocur.CreateObject(Of StoragePDACollectionRows)()
_StoragePDACollectionRows.StoragePDACollectionHeader = _StoragePDACollectionHeader
_StoragePDACollectionRows.Products = _StorageOutRows.Products
_StoragePDACollectionRows.StorageLocation = _StorageComputedLocations.StorageLocation
_StoragePDACollectionRows.DateModified = GetSQLTime(_ocur.Session)
_StoragePDACollectionHeader.StorageOutHeader = _StorageOutHeader
If _StorageComputedLocations.QTT >= _QTT Then
_StoragePDACollectionRows.QTT = _QTT
_StorageComputedLocations.QTT -= _QTT
_QTT = 0
Else
_StoragePDACollectionRows.QTT += _StorageComputedLocations.QTT
_QTT -= _StorageComputedLocations.QTT
_StorageComputedLocations.QTT = 0
End If
If _QTT = 0 Then Exit For
Next
End If
Next
End If
_ocur.CommitChanges()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
End Try
End Sub
End Class