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.Editors
Imports DevExpress.Data.Filtering
Imports DevExpress.Xpo
Imports DevExpress.Persistent.Validation
Imports DevExpress.ExpressApp.SystemModule
Imports DevExpress.ExpressApp.CloneObject
Imports DevExpress.ExpressApp.Model
Imports DevExpress.Persistent.BaseImpl
Imports DevExpress.ExpressApp.Utils

Public Class OrderInVC
    Inherits DevExpress.ExpressApp.ViewController
    Protected _selection As New ArrayList
    Protected _noselect As Boolean = False
    Private _getAlertFromOrderIn As String

    Public Sub New()
        MyBase.New()
        InitializeComponent()
        RegisterActions(components)

    End Sub
    Private Enum eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows
        eDeliveryNoteOutRows = 0
        eOrderInRows = 1
    End Enum
#Region "Overrides"

    Protected Overrides Sub OnActivated()
        MyBase.OnActivated()

        '     Frame.GetController(Of OrderInVC).aORI_RegenerateValues.Active.SetItemValue("", False)


        Frame.GetController(Of OrderInVC)().aFinalizeOrderIn.Active.SetItemValue("", False) ' -- Véglegesít egy bejövõ megrendelést
        Frame.GetController(Of OrderInVC)().aStornoOrderIn.Active.SetItemValue("", False) ' -- Stornírozz egy bejövõ megrendelést
        Frame.GetController(Of OrderInVC)().aUp_OrderIn.Active.SetItemValue("", False) ' -- Bejövõ megrendelés sorainak a row indexét csökkentjük
        Frame.GetController(Of OrderInVC)().aDown_OrderIn.Active.SetItemValue("", False) ' -- Bejövõ megrendelés sorainak a row indexét növeljük
        Frame.GetController(Of OrderInVC)().aGenerateStorageOutFromOrderIn.Active.SetItemValue("", False) ' -- Létrehoz egy kitárolást egy rendelésbõl betárolás soraiból
        Frame.GetController(Of OrderInVC)().aToTable_OrderIn.Active.SetItemValue("", False)
        Frame.GetController(Of OrderInVC)().aToTableD_OrderIn.Active.SetItemValue("", False)
        Frame.GetController(Of OrderInVC)().aGenerateStorageOutFromOrderInFIFO.Active.SetItemValue("", False)
        Frame.GetController(Of OrderInVC)().aBackToEdit_OrderInHeader.Active.SetItemValue("", False)
        Frame.GetController(Of OrderInVC).aORI_RegenerateValues.Active.SetItemValue("", False)

        Frame.GetController(Of OrderInVC).aProductFinder.Active.SetItemValue("", False)
        Frame.GetController(Of OrderInVC).aOrderIn_ChangeRows.Active.SetItemValue("", False)

        '--------- LISTVIEWS -------------------------------------------------------------------------------------------------------------------------------
        If View.Id = "OrderInHeader_OrderInRows_ListView" Then '--- Bejövõ megrendelések sorai
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of LinkUnlinkController)().Active.SetItemValue("", False)
            Frame.GetController(Of NewObjectViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of OrderInVC)().aUp_OrderIn.Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC)().aDown_OrderIn.Active.SetItemValue("", True)

            Dim nv As ListView = CType(View, ListView)
            Dim cs As PropertyCollectionSource = CType(nv.CollectionSource, PropertyCollectionSource)
            AddHandler cs.MasterObjectChanged, AddressOf cs_MasterObjectChanged


            'Dim _OrderInHeader As OrderInHeader = TryCast(cs.MasterObject, OrderInHeader)
            'If _OrderInHeader IsNot Nothing Then
            '    If _OrderInHeader.OrderInParameters.CurrencyName.ShortName <> "HUF" Then
            '        Dim _ModelListView As IModelListView
            '        _ModelListView = TryCast(View.Model.Application.Views.Item(View.Id), IModelListView)
            '        _ModelListView.Columns.Item("ListPriceDEV").Index = -1
            '        _ModelListView.Columns.Item("DiscountPriceDEV").Index = -1
            '        _ModelListView.Columns.Item("FinalPriceDEV").Index = -1
            '    End If
            'End If

        End If
        If View.Id = "OrderInHeader_ListView" Then
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of CloneObjectViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of OrderInVC)().aStornoOrderIn.Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC)().aBackToEdit_OrderInHeader.Active.SetItemValue("", True)
        End If
        If View.Id = "OrderInHeader_ListView_Editable" Then
            AddHandler Frame.GetController(Of DeleteObjectsViewController).DeleteAction.Executing, AddressOf OrderInHeader_ListView_Editable_DeleteAction_Executing
        End If

        If View.Id = "OrderInRows_StorageComputed_Collection_ListView" Then
            Frame.GetController(Of ListViewProcessCurrentObjectController)().Active.SetItemValue("", False)
        End If

        If View.Id = "OrderInHeader_OrderInHeaderVAT_ListView" Then
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of LinkUnlinkController)().Active.SetItemValue("", False)
            Frame.GetController(Of NewObjectViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of CloneObject.CloneObjectViewController).Active.SetItemValue("", False)
            Frame.GetController(Of ListViewProcessCurrentObjectController).Active.SetItemValue("", False)
        End If
        If View.Id = "OrderInHeader_OrderInTo_ListView" Then
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of LinkUnlinkController)().Active.SetItemValue("", False)
            Frame.GetController(Of NewObjectViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of CloneObjectViewController)().Active.SetItemValue("", False)
        End If
        If View.Id = "OrderInHeader_OrderInRows_ListView" Then
            Frame.GetController(Of OrderInVC).aOrderIn_ChangeRows.Active.SetItemValue("", True)
            AddHandler View.SelectionChanged, AddressOf OrderInHeader_OrderInRows_ListView_SelectionChanged
            'AddHandler Frame.GetController(Of DialogController)().PropertyChangedEventArgs, AddressOf OrderInHeader_OrderInRows_ListView_PropertyChangedEventArgs
        End If
        If View.Id = "OrderInHeader_OrderInRowsOther_ListView" Then
            Frame.GetController(Of OrderInVC).aOrderInOther_ChangeRows.Active.SetItemValue("", True)
            AddHandler View.SelectionChanged, AddressOf OrderInHeader_OrderInRowsOther_ListView_SelectionChanged
        End If
        If View.Id = "OrderInRowsOther_ListView" Then
            AddHandler View.SelectionChanged, AddressOf OrderInHeader_OrderInRowsOther_ListView_SelectionChanged
        End If
        If View.Id = "OrderInRows_StorageOutRowsInRows_Collection_ListView" Then
            'Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of LinkUnlinkController)().Active.SetItemValue("", False)
            Frame.GetController(Of NewObjectViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of CloneObjectViewController)().Active.SetItemValue("", False)
        End If
        '--------- DETAILVIEWS -------------------------------------------------------------------------------------------------------------------------------
        If View.Id = "OrderInHeader_DetailView" Then '---Véglegesíteni és Sztornózni csak a megfelelõ elemeket lehessen
            Frame.GetController(Of OrderInVC)().aRecalculateOrder.Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC)().aToTable_OrderIn.Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC)().aToTableD_OrderIn.Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC)().aGenerateStorageOutFromOrderIn.Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC).aGenerateStorageOutFromOrderInFIFO.Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC)().aStornoOrderIn.Active.SetItemValue("", False)
            Frame.GetController(Of CloneObjectViewController)().Active.SetItemValue("", False)
            Frame.GetController(Of OrderInVC).aProductFinder.Active.SetItemValue("", True)
            If View.SelectedObjects.Count <> 0 Then
                Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)

                If _OrderInHeader.IsEditable = True And _OrderInHeader.IsStorno = False Then
                    Frame.GetController(Of OrderInVC)().aFinalizeOrderIn.Active.SetItemValue("", True)
                    Frame.GetController(Of OrderInVC)().aStornoOrderIn.Active.SetItemValue("", False)
                End If
                If _OrderInHeader.IsEditable = False Then
                    Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", False)
                    Frame.GetController(Of OrderInVC)().aFinalizeOrderIn.Active.SetItemValue("", False)
                    Frame.GetController(Of ModificationsController)().SaveAction.Active.SetItemValue("", False)
                    Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Active.SetItemValue("", False)
                    Frame.GetController(Of ModificationsController)().SaveAndNewAction.Active.SetItemValue("", False)
                End If
            End If

        End If
        If View.Id = "ORI_Invoice_Popup_DetailView" Then
            AddHandler Frame.GetController(Of DialogController)().AcceptAction.Executing, AddressOf AcceptAction_Executing
        End If
        If View.Id = "StorageOutFromOrderInFIFO_PopUp_DetailView" Then
            AddHandler Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DialogController)().AcceptAction.Executing, AddressOf StorageOutFromOrderInFIFO_PopUp_DetailView_AcceptActionExecuting
        End If
        If View.Id = "ORI_Invoice_Popup_DetailView" Then
            AddHandler Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DialogController)().AcceptAction.Executing, AddressOf ORI_Invoice_Popup_DetailView_AcceptActionExecuting
        End If
        If View.Id = "OrderInHeader_ListView_Deleted" Then
            If TryCast(View, ListView) IsNot Nothing Then
                If TryCast(View, ListView).CollectionSource IsNot Nothing Then
                    If TryCast(View, ListView).CollectionSource.Collection IsNot Nothing Then
                        If TryCast(TryCast(View, ListView).CollectionSource.Collection, ProxyCollection) IsNot Nothing Then
                            If TryCast(TryCast(View, ListView).CollectionSource.Collection, ProxyCollection).OriginalCollection IsNot Nothing Then
                                If TryCast(TryCast(TryCast(View, ListView).CollectionSource.Collection, ProxyCollection).OriginalCollection, XPCollection) IsNot Nothing Then
                                    TryCast(TryCast(TryCast(View, ListView).CollectionSource.Collection, ProxyCollection).OriginalCollection, XPCollection).SelectDeleted = True
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        End If
    End Sub
    Protected Overrides Sub OnDeactivated()
        MyBase.OnDeactivated()

        If View.Id = "OrderInHeader_OrderInRows_ListView" Then '--- Bejövõ megrendelések sorai
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", True)
            Frame.GetController(Of LinkUnlinkController)().Active.SetItemValue("", True)
            Frame.GetController(Of NewObjectViewController)().Active.SetItemValue("", True)
            Frame.GetController(Of CloneObjectViewController)().Active.SetItemValue("", True)

            Dim nv As ListView = CType(View, ListView)
            Dim cs As PropertyCollectionSource = CType(nv.CollectionSource, PropertyCollectionSource)
            RemoveHandler cs.MasterObjectChanged, AddressOf cs_MasterObjectChanged
        End If
        If View.Id = "OrderInRows_StorageComputed_Collection_ListView" Then
            Frame.GetController(Of ListViewProcessCurrentObjectController)().Active.SetItemValue("", True)
        End If
        If View.Id = "ORI_Invoice_Popup_DetailView" Then
            RemoveHandler Frame.GetController(Of DialogController)().AcceptAction.Executing, AddressOf AcceptAction_Executing
        End If
        If View.Id = "OrderInHeader_OrderInHeaderVAT_ListView" Then
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", True)
            Frame.GetController(Of LinkUnlinkController)().Active.SetItemValue("", True)
            Frame.GetController(Of NewObjectViewController)().Active.SetItemValue("", True)
        End If
        If View.Id = "OrderInHeader_OrderInTo_ListView" Then
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", True)
            Frame.GetController(Of LinkUnlinkController)().Active.SetItemValue("", True)
            Frame.GetController(Of NewObjectViewController)().Active.SetItemValue("", True)
        End If
        If View.Id = "OrderInHeader_ListView" Then
            Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", True)
            Frame.GetController(Of CloneObjectViewController)().Active.SetItemValue("", True)
            Frame.GetController(Of OrderInVC)().aStornoOrderIn.Active.SetItemValue("", False)
            Frame.GetController(Of OrderInVC)().aBackToEdit_OrderInHeader.Active.SetItemValue("", False)
        End If
        If View.Id = "OrderInHeader_ListView_Editable" Then
            RemoveHandler Frame.GetController(Of DeleteObjectsViewController).DeleteAction.Executing, AddressOf OrderInHeader_ListView_Editable_DeleteAction_Executing
        End If
        '--------- DETAILVIEWS -------------------------------------------------------------------------------------------------------------------------------
        If View.Id = "OrderInHeader_DetailView" Then '---Véglegesíteni és Sztornózni csak a megfelelõ elemeket lehessen
            Frame.GetController(Of OrderInVC)().aRecalculateOrder.Active.SetItemValue("", False)
            Frame.GetController(Of OrderInVC)().aToTable_OrderIn.Active.SetItemValue("", False)
            Frame.GetController(Of OrderInVC)().aToTableD_OrderIn.Active.SetItemValue("", False)
            Frame.GetController(Of OrderInVC).aGenerateStorageOutFromOrderInFIFO.Active.SetItemValue("", False)
            Frame.GetController(Of CloneObjectViewController)().Active.SetItemValue("", True)
            If View.SelectedObjects.Count <> 0 Then
                Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)

                If _OrderInHeader.IsEditable = True And _OrderInHeader.IsStorno = False Then
                    Frame.GetController(Of OrderInVC)().aFinalizeOrderIn.Active.SetItemValue("", False)
                    Frame.GetController(Of OrderInVC)().aStornoOrderIn.Active.SetItemValue("", False)
                End If
                If _OrderInHeader.IsEditable = False Then
                    Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", True)
                    If _OrderInHeader.IsEditable = False Then
                        Frame.GetController(Of DeleteObjectsViewController)().Active.SetItemValue("", False)
                        Frame.GetController(Of OrderInVC)().aFinalizeOrderIn.Active.SetItemValue("", True)
                        Frame.GetController(Of ModificationsController)().SaveAction.Active.SetItemValue("", True)
                        Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Active.SetItemValue("", True)
                        Frame.GetController(Of ModificationsController)().SaveAndNewAction.Active.SetItemValue("", True)
                    End If
                End If
                If _OrderInHeader.IsStorno = False AndAlso _OrderInHeader.IsEditable = False Then
                    Frame.GetController(Of OrderInVC)().aStornoOrderIn.Active.SetItemValue("", True)
                End If
                If _OrderInHeader.DocumentNumber IsNot Nothing And _OrderInHeader.IsEditable = False Then
                    Frame.GetController(Of OrderInVC)().aGenerateStorageOutFromOrderIn.Active.SetItemValue("", False)
                End If
            End If
        End If
    End Sub
    Protected Overrides Sub OnViewControlsCreated()
        MyBase.OnViewControlsCreated()
    End Sub
#End Region
    Private Sub AcceptAction_Executing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
        Validator.RuleSet.ValidateAll(View.ObjectSpace, View.SelectedObjects, DefaultContexts.Save)
    End Sub
    Private Sub cs_MasterObjectChanged(ByVal sender As Object, ByVal e As EventArgs)
        Dim _OrderInHeader As OrderInHeader = TryCast((CType(sender, PropertyCollectionSource)).MasterObject, OrderInHeader)
        If _OrderInHeader Is Nothing Then Exit Sub
        If _OrderInHeader.DocumentNumber IsNot Nothing And _OrderInHeader.IsEditable = False Then
            Frame.GetController(Of OrderInVC)().aGenerateStorageOutFromOrderIn.Active.SetItemValue("", True)
        End If
    End Sub
    Private Sub aFinalizeOrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aFinalizeOrderIn.Execute
        '---Az akció véglegesít egy bejövõ megrendelést------------------------------------------------
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)

        _OrderInHeader.IsEditable = False

        _ocur.CommitChanges()

        If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        End If
    End Sub
    Private Sub aStornoOrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aStornoOrderIn.Execute
        '---Az akció sztornóz egy véglegesített bejövő megrendelést----------------------------------------
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _OrderInRows As OrderInRows
        Dim _False As Boolean = False
        '--Ellenőrzés, hogy létezik-e olyan véglegesített kitárolási sor amelynek rendelési sora ehhez a fejléchez tartozik
        Dim _FinalizedStorageOutRowsFromOrder As StorageOutRows = TryCast(View.ObjectSpace, Xpo.XPObjectSpace).FindObject(Of StorageOutRows)(CriteriaOperator.Parse("OrderInRows.OrderInHeader=? And StorageOutHeader.IsEditable=?", _OrderInHeader, _False))

        If _FinalizedStorageOutRowsFromOrder Is Nothing Then
            For Each _OrderInRows In _OrderInHeader.OrderInRows
                Dim _StorageOutRowsCollection As xpcollection = New xpcollection(_ocur.Session, GetType(StorageOutRows), CriteriaOperator.Parse("OrderInRows=?", _OrderInRows))
                If _StorageOutRowsCollection.Count > 0 Then
                    '-- Nem véglegesístet kitárolási sorok elviekben töröltehõek
                    _ocur.Session.Delete(_StorageOutRowsCollection)
                End If
            Next
        Else
            '--Teszt Exception dobás ha létezik olyan sora a rendelésnek ami egy lezárt kitároslási sorhoz tartozik
            Throw New Exception("*Nem stornózható! A rendeléshez már tartozik véglegesített kitárolás!")
        End If
        _OrderInHeader.IsStorno = True
        _OrderInHeader.Save()
        _ocur.CommitChanges()
    End Sub
    Private Sub aUp_OrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aUp_OrderIn.Execute
        ' A kiválaszott sort egy sorral feljebb helyezi
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader
        Dim _OrderInRowsSelected As OrderInRows
        Dim _OrderInRowsMinus As OrderInRows
        Dim _OrderInrows As OrderInRows

        Try
            _OrderInRowsSelected = TryCast(View.SelectedObjects(0), OrderInRows) ' Kiveszi a kijelölt sorok közül az elsőt
            _OrderInHeader = _OrderInRowsSelected.OrderInHeader
        Catch
            ' TESZT MIATT!!!! ----------------------------------------------------------------
            Throw New Exception("*Nincs sor kiválasztva, vagy nem a sor kijelölése az aktív!")
        End Try

        If _OrderInRowsSelected.RowIndex > 0 Then
            For Each _OrderInrows In _OrderInHeader.OrderInRows
                If _OrderInrows.RowIndex = _OrderInRowsSelected.RowIndex - 1 Then
                    _OrderInRowsMinus = _OrderInrows
                    Exit For
                End If
            Next

            If _OrderInRowsMinus IsNot Nothing Then
                _OrderInRowsSelected.RowIndex -= 1
                _OrderInRowsMinus.RowIndex += 1
            End If
            _OrderInRowsMinus.Save()
            _OrderInRowsSelected.Save()
            _ocur.CommitChanges()
            View.Refresh()
        End If
    End Sub
    Private Sub aDown_OrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aDown_OrderIn.Execute
        ' A kiválaszott sort egy sorral lejebb helyezi
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader
        Dim _OrderInRowsSelected As OrderInRows
        Dim _OrderInRowsPlus As OrderInRows
        Dim _OrderInrows As OrderInRows

        Try
            _OrderInRowsSelected = TryCast(View.SelectedObjects(0), OrderInRows) ' Kiveszi a kijelölt sorok közül az elsőt
            _OrderInHeader = _OrderInRowsSelected.OrderInHeader
        Catch
            ' TESZT MIATT!!!! ----------------------------------------------------------------
            Throw New Exception("*Nincs sor kiválasztva, vagy nem a sor kijelölése az aktív!")
        End Try

        If _OrderInRowsSelected.RowIndex < _OrderInHeader.OrderInRows.Count - 1 Then
            For Each _OrderInrows In _OrderInHeader.OrderInRows
                If _OrderInrows.RowIndex = _OrderInRowsSelected.RowIndex + 1 Then
                    _OrderInRowsPlus = _OrderInrows
                    Exit For
                End If
            Next

            If _OrderInRowsPlus IsNot Nothing Then
                _OrderInRowsSelected.RowIndex += 1
                _OrderInRowsPlus.RowIndex -= 1
            End If
            _OrderInRowsPlus.Save()
            _OrderInRowsSelected.Save()
            _ocur.CommitChanges()
            View.Refresh()
        End If
    End Sub
    Private Sub aGenerateStorageOutFromOrder_CustomizePopupWindowParams(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aGenerateStorageOutFromOrderIn.CustomizePopupWindowParams
        '---Létrehoz egy ListView-t ahol a raktárat kell kiválasztani a rendelésből kitárolási akcióhoz
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
        Dim _OrderInRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("OrderInRows")
        Dim _OrderInRows As OrderInRows
        Try
            _OrderInRows = _OrderInRows_ListEditor.ListView.SelectedObjects(0)
        Catch
            ' --------------- TESZT MIATT ------------------------
            Throw New Exception("*Legalább egy sort ki kell választani!")
        End Try

        Dim Keys As New Collection
        Dim _In_StorageComputed As New XPCollection(Of StorageComputed)(_onew.Session, CriteriaOperator.Parse("Products=? AND QTTFree>0 AND Storage.CustomersFrom.Oid=?", _onew.GetObject(_OrderInRows.Products), _OrderInRows.OrderInHeader.CustomersFrom.Oid))
        Dim _StorageComputed As StorageComputed

        Keys.Clear()

        For Each _StorageComputed In _In_StorageComputed
            Keys.Add(_StorageComputed.Storage.Oid)
        Next

        Dim _InOperator As InOperator = New InOperator("Oid", Keys)
        Dim _CollectionSource As CollectionSource = New CollectionSource(_onew, GetType(Storage))
        _CollectionSource.BeginUpdateCriteria()
        _CollectionSource.Criteria("1") = _InOperator
        _CollectionSource.EndUpdateCriteria()

        e.View = Application.CreateListView("Storage_ListView_OrderIn", _CollectionSource, True)
    End Sub
    Private Sub aReCalculatePricing_OrderInRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aReCalculatePricing_OrderInRows.Execute
        ' Vizsgáljuk. hogy van e árkalkulációja az ügyfélnek, ha van kalkulálunk
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInRows).OrderInHeader
        Dim _OrderInRows As OrderInRows
        If _OrderInHeader.Customers.Pricing IsNot Nothing Then

            For Each _OrderInRows In _OrderInHeader.OrderInRows
                If _OrderInHeader.OrderInParameters.CurrencyName.ShortName = "HUF" Then ' Ha a Deviza HUF
                    _OrderInRows.ListPriceHUF = _OrderInHeader.Customers.Pricing.GetCurrentPriceNettoHUF(_OrderInRows.Products, _OrderInRows.QTT) ' A kedvezményt tartalmazó listaár HUF-ban
                    _OrderInRows.DiscountPriceHUF = 0 '_OrderInRows.Products.ListPriceOutHUF - _OrderInRows.ListPriceHUF ' A kedvezmény összege HUF-ban
                Else ' Ha a deviza nem HUF
                    _OrderInRows.ListPriceDEV = _OrderInHeader.Customers.Pricing.GetCurrentPriceNettoDEV(_OrderInRows.Products, _OrderInRows.QTT) ' A kedvezményt tartalmazó listaár DEV-ben
                    _OrderInRows.DiscountPriceDEV = 0 '_OrderInRows.Products.ListPriceOutDEV - _OrderInRows.ListPriceDEV ' A kedvezmény összege DEV-ben
                End If
                _OrderInRows.Save()
            Next
            View.Refresh()
        End If
    End Sub
    Private Sub aRecalculateOrder_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aRecalculateOrder.Execute
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)

        _OrderInHeader.RecalculateOrder(_OrderInHeader, _ocur)

        _ocur.CommitChanges()
    End Sub
    Private Sub aGenerateOrderOutTempFromOrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aGenerateOrderOutTempFromOrderIn.Execute
        '// Az eljárás továbbrendeli a kiválasztott tételt
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _ListPropertyEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("OrderInRows")
        Dim _OrderInRows As OrderInRows
        Dim _OrderInTo As OrderInTo
        Dim _OrderInTo_Collection As XPCollection(Of OrderInTo)
        Dim _QTT_To As Double = 0

        For i = 0 To _ListPropertyEditor.ListView.SelectedObjects.Count - 1
            _OrderInRows = TryCast(_ListPropertyEditor.ListView.SelectedObjects(i), OrderInRows)
            If _OrderInRows.QTT_Process <> 0 Then
                _OrderInTo = _ocur.FindObject(Of OrderInTo)(CriteriaOperator.Parse("OrderInRows=? and OrderOutRows is NULL", _OrderInRows), True)
                If _OrderInTo Is Nothing Then
                    _OrderInTo = _ocur.CreateObject(Of OrderInTo)()
                    _OrderInTo.QTT_To = _OrderInRows.QTT_Process
                    _OrderInTo.OrderInRows = _OrderInRows
                Else
                    _OrderInTo.QTT_To += _OrderInRows.QTT_Process
                End If
                _ocur.CommitChanges()
                _OrderInTo_Collection = New XPCollection(Of OrderInTo)(_ocur.Session, CriteriaOperator.Parse("OrderInRows=?", _OrderInRows))
                _QTT_To = 0
                For Each _OrderInTo In _OrderInTo_Collection
                    _QTT_To += _OrderInTo.QTT_To
                Next
                _OrderInRows.QTT_To = _QTT_To

            End If

        Next i
        _ocur.CommitChanges()
    End Sub
    Private Sub aGenerateStorageOutFromOrderInFIFO_CustomizePopupWindowParams(sender As System.Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aGenerateStorageOutFromOrderInFIFO.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInHeader_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("OrderInRows")
            Dim _OrderInRows As OrderInRows = TryCast(_OrderInHeader_ListEditor.ListView.SelectedObjects(0), OrderInRows)

            If _OrderInRows Is Nothing Then Throw New Exception("*Nincs kiválsztva egy sor sem a bejövő megrendelésen!")

            Dim _StorageOutFromOrderInFIFO_PopUp As StorageOutFromOrderInFIFO_PopUp = _onew.CreateObject(Of StorageOutFromOrderInFIFO_PopUp)()
            _StorageOutFromOrderInFIFO_PopUp.Products = _onew.GetObject(_OrderInRows.Products)
            _StorageOutFromOrderInFIFO_PopUp.QTT_Full = _OrderInRows.QTT

            e.View = Application.CreateDetailView(_onew, "StorageOutFromOrderInFIFO_PopUp_DetailView", True, _StorageOutFromOrderInFIFO_PopUp)

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aGenerateStorageOutFromOrderInFIFO_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aGenerateStorageOutFromOrderInFIFO.Execute
        Try
            If e.PopupWindow.View.SelectedObjects.Count = 0 Then _
                  Throw New Exception("*Nincs kiválsztva egy betárolási bizonylati sor sem!")

            Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace
            Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
            Dim _OrderInHeader_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("OrderInRows")
            Dim _OrderInRows As OrderInRows = TryCast(_OrderInHeader_ListEditor.ListView.SelectedObjects(0), OrderInRows)

            Dim _onew As Xpo.XPObjectSpace = e.PopupWindow.View.ObjectSpace
            Dim _StorageOutFromOrderInFIFO_PopUp As StorageOutFromOrderInFIFO_PopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), StorageOutFromOrderInFIFO_PopUp)
            Dim _StorageInRows_ListEditor As ListPropertyEditor = TryCast(e.PopupWindow.View, DetailView).FindItem("StorageInRows")


            For Each _StorageInRows_PopUp As StorageInRows In _StorageInRows_ListEditor.ListView.CollectionSource.Collection
                If _StorageInRows_PopUp.QTT_Will > _OrderInRows.QTT Then _
                    Throw New Exception(String.Format("A {0}  termék esetében a rendelet mennyiség {1} volt, így ennél többet nem lehet kitárolni!", _OrderInRows.Products.ShortName, _OrderInRows.QTT) + vbNewLine + _
                        String.Format("A kitárolásszándék: {0}", _StorageInRows_PopUp.QTT_Will) + vbNewLine + _
                        String.Format("Maximálisan kitárolható: {0}", _OrderInRows.QTT))
            Next


            Dim _StorageOutHeader As StorageOutHeader = _ocur.FindObject(Of StorageOutHeader)(CriteriaOperator.Parse("Customers=? AND CustomersFrom=? AND StorageMoveType=? AND IsEditable=?", _
                                                                                                                 _OrderInHeader.Customers, _OrderInHeader.CustomersFrom, _OrderInHeader.OrderInParameters.StorageMoveType, True))

            If _StorageOutHeader Is Nothing Then
                _StorageOutHeader = _ocur.CreateObject(Of StorageOutHeader)()
                _StorageOutHeader.Customers = _OrderInHeader.Customers
                _StorageOutHeader.CustomersFrom = _OrderInHeader.CustomersFrom
                _StorageOutHeader.StorageMoveType = _OrderInHeader.OrderInParameters.StorageMoveType
            End If


            For Each _StorageInRows_PopUp As StorageInRows In _StorageInRows_ListEditor.ListView.CollectionSource.Collection
                If _StorageOutHeader.Storage Is Nothing Then
                    _StorageOutHeader.Storage = _ocur.GetObjectByKey(Of Storage)(_StorageInRows_PopUp.StorageInHeader.Storage.Oid)
                End If
                Dim _StorageOutRows As StorageOutRows = _ocur.FindObject(Of StorageOutRows) _
                                             (CriteriaOperator.Parse("OrderInRows=? and StorageOutHeader.IsEditable=True and StorageOutHeader.IsStorno=False and Products=?", _
                                             _OrderInRows, _OrderInRows.Products), True)

                If _StorageInRows_PopUp.QTT_Will > 0 Then

                    Dim _StorageOutRowsInRows As StorageOutRowsInRows = _ocur.CreateObject(Of StorageOutRowsInRows)()
                    Dim _StorageComputed As StorageComputed = _ocur.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Products=? and Storage=?", _
                                                             _ocur.GetObjectByKey(Of Products)(_StorageInRows_PopUp.Products.Oid), _
                                                             _ocur.GetObjectByKey(Of Storage)(_StorageInRows_PopUp.StorageInHeader.Storage.Oid)))

                    _StorageComputed.QTTFree -= _StorageInRows_PopUp.QTT_Will
                    _StorageComputed.QTTReservedOut += _StorageInRows_PopUp.QTT_Will

                    If _StorageOutRows Is Nothing Then
                        _StorageOutRows = _ocur.CreateObject(Of StorageOutRows)()
                        _StorageOutRows.StorageOutHeader = _StorageOutHeader
                        _StorageOutRows.RowIndex = _StorageOutHeader.StorageOutRows.Count
                        _StorageOutRows.StorageComputed = _StorageComputed
                        _StorageOutRows.OrderInRows = _OrderInRows
                        _StorageOutRows.QTT = _StorageInRows_PopUp.QTT_Will
                        _StorageOutRows.Products = _ocur.GetObject(_StorageInRows_PopUp.Products)
                    Else
                        _StorageOutRows.QTT += _StorageInRows_PopUp.QTT_Will
                    End If



                    _StorageOutRowsInRows.QTT = _StorageInRows_PopUp.QTT_Will
                    _StorageOutRowsInRows.StorageInRows = _ocur.GetObjectByKey(Of StorageInRows)(_StorageInRows_PopUp.Oid)
                    _StorageOutRowsInRows.StorageOutRows = _StorageOutRows
                    _StorageOutRowsInRows.RowIndex = 0 'Itt irreleváns, majd később lehet állítani

                    _OrderInRows.QTT_Storaged_Will += _StorageInRows_PopUp.QTT_Will
                    _OrderInRows.QTT_Process -= _StorageInRows_PopUp.QTT_Will
                    _StorageInRows_PopUp.QTT_Out_Will += _StorageInRows_PopUp.QTT_Will
                    _StorageInRows_PopUp.QTT_Will = 0
                Else
                    MsgBox(String.Format("A {0} termék sorában a szándék mező nulla volt!", _StorageInRows_PopUp.Products.ShortName), MsgBoxStyle.OkOnly, "Figyelem!")
                End If
            Next
            _ocur.CommitChanges()

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aGenerateStorageOutFromOrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aGenerateStorageOutFromOrderIn.Execute
        Dim _ocur_original As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
        Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
        Dim _User As DevExpress.Persistent.BaseImpl.User = _onew.GetObject(Of DevExpress.Persistent.BaseImpl.User)(TryCast(SecuritySystem.CurrentUser, DevExpress.Persistent.BaseImpl.User))
        Dim _OrderInHeader As OrderInHeader = _onew.GetObjectByKey(Of OrderInHeader)(TryCast(View.SelectedObjects(0), OrderInHeader).Oid)


        Dim _OrderInRows As OrderInRows
        Dim _OrderInRows_Exists As OrderInRows
        Dim _OrderInRows_Collection As XPCollection(Of OrderInRows)
        Dim _StorageInRows As StorageInRows
        Dim _StorageInRows_Collection As XPCollection(Of StorageInRows)
        Dim _StorageOutRows As StorageOutRows
        Dim _StorageOutRows_Collection As XPCollection(Of StorageOutRows) = Nothing

        Dim _StorageOutRows_R As StorageOutRows
        Dim _StorageOutRows_Collection_R As XPCollection(Of StorageOutRows)

        Dim _StorageOutRows_Exists As StorageOutRows
        Dim _StorageOutHeader As StorageOutHeader = Nothing
        Dim _Storage As Storage = _onew.GetObjectByKey(Of Storage)(TryCast(e.PopupWindow.View.SelectedObjects(0), Storage).Oid)
        Dim _QTT_Mod As Double = 0
        Dim _QTT_Free As Double = 0
        Dim _StorageOutRowsInRows As StorageOutRowsInRows
        Dim _ExistsStorageOutHeader As Boolean = False
        Dim _StorageComputed As StorageComputed
        Dim _QTT_ReservedOut As Double = 0
        Dim _QTT_Will_Out As Double = 0
        If _Storage Is Nothing Then Exit Sub

        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\SISBusinessExceptions\StorageComputed", "CanNotStorageInByLocking")
                Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
                MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

                Exit Sub
            Else
                For Each _OrderInRows In _OrderInHeader.OrderInRows
                    If _OrderInRows.QTT_Process > 0 Then
                        _StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _Storage, _OrderInRows.Products), True)
                        If _StorageComputed IsNot Nothing Then
                            If _StorageComputed.QTTFree >= _OrderInRows.QTT_Process Then
                                _StorageInRows_Collection = New XPCollection(Of StorageInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
                                    CriteriaOperator.Parse("StorageInHeader.Storage=? and StorageInHeader.IsEditable=False and StorageInHeader.IsStorno=False and Products=?", _
                                    _Storage, _OrderInRows.Products))
                                _StorageInRows_Collection.Sorting.Add(New SortProperty("StorageInHeader.CreateDate", DB.SortingDirection.Ascending))
                                _StorageOutRows = _onew.FindObject(Of StorageOutRows) _
                                                  (CriteriaOperator.Parse("OrderInRows=? and StorageOutHeader.IsEditable=True and StorageOutHeader.IsStorno=False and Products=?", _
                                                  _OrderInRows, _OrderInRows.Products), True)

                                If _StorageOutRows Is Nothing Then
                                    '--- Új kitárolási sor !!!!
                                    _StorageOutRows = _onew.CreateObject(Of StorageOutRows)()
                                    _StorageOutRows.OrderInRows = _OrderInRows
                                    _StorageOutRows.Products = _OrderInRows.Products

                                    _OrderInRows_Collection = New XPCollection(Of OrderInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
                                                                                               CriteriaOperator.Parse("OrderInHeader.Oid=?", _OrderInRows.OrderInHeader.Oid))
                                    For Each _OrderInRows_Exists In _OrderInRows_Collection
                                        _StorageOutRows_Exists = _onew.FindObject(Of StorageOutRows) _
                                                  (CriteriaOperator.Parse("OrderInRows=? and StorageOutHeader.IsEditable=True and StorageOutHeader.IsStorno=False", _
                                                  _OrderInRows_Exists), True)
                                        If _StorageOutRows_Exists IsNot Nothing Then
                                            _StorageOutHeader = _StorageOutRows_Exists.StorageOutHeader
                                            _ExistsStorageOutHeader = True
                                            Exit For
                                        End If
                                    Next
                                    If _ExistsStorageOutHeader = False Then
                                        ' Új kitárolási fejléc !!!
                                        _StorageOutHeader = _onew.CreateObject(Of StorageOutHeader)()
                                        _StorageOutHeader.StorageMoveType = _OrderInRows.OrderInHeader.OrderInParameters.StorageMoveType
                                        _StorageOutHeader.Storage = _Storage
                                        _StorageOutHeader.CustomersFrom = _Storage.CustomersFrom
                                        _StorageOutHeader.Customers = _OrderInRows.OrderInHeader.Customers

                                    End If
                                    _StorageOutRows.StorageOutHeader = _StorageOutHeader
                                End If

                                '--- FIFO FOGLALÁS -------------------------------------------------------------------------------------------------------------------------------
                                _QTT_Mod = _OrderInRows.QTT_Process
                                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=?", _StorageInRows, _StorageOutRows), True)
                                        If _StorageOutRowsInRows IsNot Nothing Then
                                            _StorageOutRowsInRows.QTT += _QTT_Free
                                        Else
                                            _StorageOutRowsInRows = _onew.CreateObject(Of StorageOutRowsInRows)()
                                            _StorageOutRowsInRows.StorageInRows = _StorageInRows
                                            _StorageOutRowsInRows.StorageOutRows = _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=?", _StorageInRows, _StorageOutRows), True)
                                        If _StorageOutRowsInRows IsNot Nothing Then
                                            _StorageOutRowsInRows.QTT += _QTT_Mod
                                        Else
                                            _StorageOutRowsInRows = _onew.CreateObject(Of StorageOutRowsInRows)()
                                            _StorageOutRowsInRows.StorageInRows = _StorageInRows
                                            _StorageOutRowsInRows.StorageOutRows = _StorageOutRows
                                            _StorageOutRowsInRows.QTT = _QTT_Mod
                                        End If

                                        Exit For
                                    End If
                                Next

                                '--------------------------------------------------------------------------------------------------------------------------------------------------
                                _OrderInRows.QTT_Storaged_Will += _OrderInRows.QTT_Process
                                _OrderInRows.QTT_Process = 0

                                '--- StorageComputed újraszámolása

                                _StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _Storage, _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=?", _Storage, _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

                            End If
                        End If
                    End If
                Next
                _onew.CommitChanges()
                Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
            End If
        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
        End Try
    End Sub
    Private Sub aBackToEdit_OrderInHeader_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aBackToEdit_OrderInHeader.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)

        If _OrderInHeader IsNot Nothing Then
            _OrderInHeader.IsEditable = True
            _ocur.CommitChanges()
            View.Refresh()
        End If

    End Sub
    Private Sub OrderInHeader_ListView_Editable_DeleteAction_Executing(sender As Object, e As CancelEventArgs)
        '  Throw New NotImplementedException
        'nem lehet olyan sora ami ki van tárolva orderinrow or orderinrowother van akkor nem lehet törölni.
    End Sub
    Private Sub aProductFinder_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aProductFinder.CustomizePopupWindowParams
        Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
        Dim _ProductFinder As ProductFinder = _onew.CreateObject(Of ProductFinder)()

        _ProductFinder.MasterKey = View.SelectedObjects(0).Oid

        e.View = Application.CreateDetailView(_onew, "ProductFinder_DetailView", False, _ProductFinder)
    End Sub
    Private Sub aProductFinder_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aProductFinder.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _ProductSelected_Collection As New XPCollection(Of ProductSelected)(_ocur.Session, CriteriaOperator.Parse("MasterKey=?", _OrderInHeader.Oid))
        Dim _ProductSelected As ProductSelected

        If _ProductSelected_Collection.Count <= 0 Then Exit Sub

        For Each _ProductSelected In _ProductSelected_Collection
            _OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
            _OrderInHeader.row_Products = _ocur.FindObject(Of ProductSelect)(CriteriaOperator.Parse("Products.Oid=?", _ProductSelected.Products.Oid))
            _OrderInHeader.row_QTT = _ProductSelected.QTT
            Frame.GetController(Of OrderInVC).aToTable_OrderIn.DoExecute()
        Next

        _ProductSelected_Collection = New XPCollection(Of ProductSelected)(_ocur.Session, CriteriaOperator.Parse("MasterKey=?", _OrderInHeader.Oid))
        _ocur.Delete(_ProductSelected_Collection)
        _ocur.CommitChanges()
    End Sub
    Private Sub aOrderIn_ChangeRows_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aOrderIn_ChangeRows.CustomizePopupWindowParams
        _noselect = True
        Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
        Dim _OrderInRows_ChangeGroup As OrderInRows_ChangeGroup = _onew.CreateObject(Of OrderInRows_ChangeGroup)()
        If View.SelectedObjects.Count > 0 Then
            Dim _OrderInRows As OrderInRows = TryCast(View.SelectedObjects(0), OrderInRows)
            _OrderInRows_ChangeGroup.RowGroup1 = _onew.GetObject(_OrderInRows.RowGroup1)
            _OrderInRows_ChangeGroup.RowGroup2 = _onew.GetObject(_OrderInRows.RowGroup2)
            _OrderInRows_ChangeGroup.QualityOption = _onew.GetObject(_OrderInRows.QualityOption)
            _OrderInRows_ChangeGroup.FinalPricePercent = 0
            _OrderInRows_ChangeGroup.Description = _onew.GetObject(_OrderInRows.Description)

            e.View = Application.CreateDetailView(_onew, "OrderInRows_ChangeGroup_DetailView", False, _OrderInRows_ChangeGroup)
        Else
            Throw New UserFriendlyException("Nincs kijelölt elem!")
        End If
    End Sub
    Private Sub aOrderIn_ChangeRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aOrderIn_ChangeRows.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInRows_ChangeGroup As OrderInRows_ChangeGroup = TryCast(e.PopupWindow.View.SelectedObjects(0), OrderInRows_ChangeGroup)

        Dim _OrderInRows As OrderInRows '= TryCast(View.SelectedObjects(0), OrderInRows)
        'If _OrderInRows IsNot Nothing Then

        If _OrderInRows_ChangeGroup.Change_Description Then
            For Each _OrderInRows In _selection
                _OrderInRows.Description = _OrderInRows_ChangeGroup.Description
                _OrderInRows.Save()
            Next
        End If
        If _OrderInRows_ChangeGroup.Change_FinalPricePercent Then
            For Each _OrderInRows In _selection
                '_OrderInRows.FinalPriceHUF = _OrderInRows.FinalPriceHUF - (_OrderInRows.FinalPriceHUF * (_OrderInRows_ChangeGroup.FinalPricePercent / 100))
                '_OrderInRows.DiscountPercent = _OrderInRows_ChangeGroup.FinalPricePercent
                '_OrderInRows.RecalculateRow()
                '_OrderInRows.CanChangeProperty = False

                'If _OrderInRows.OfferOutHeader.CurrencyName.ShortName = "HUF" Then
                '    _OrderInRows.FinalPriceHUF = _OrderInRows.ListPriceHUF - _OrderInRows.DiscountPriceHUF
                'Else
                '    _OrderInRows.FinalPriceDEV = _OrderInRows.ListPriceDEV - _OrderInRows.FinalPriceDEV
                'End If

                '_OrderInRows.CanChangeProperty = True

                '_OrderInRows.Save()
            Next
        End If
        If _OrderInRows_ChangeGroup.Change_QualityOption Then
            For Each _OrderInRows In _selection
                _OrderInRows.QualityOption = _ocur.GetObjectByKey(Of QualityOption)(_OrderInRows.QualityOption.Oid)
                _OrderInRows.Save()
            Next
        End If
        If _OrderInRows_ChangeGroup.Change_RowGroup1 Then
            For Each _OrderInRows In _selection
                _OrderInRows.RowGroup1 = _OrderInRows_ChangeGroup.RowGroup1
                _OrderInRows.Save()
            Next
        End If
        If _OrderInRows_ChangeGroup.Change_RowGroup2 Then
            For Each _OrderInRows In _selection
                _OrderInRows.RowGroup2 = _OrderInRows_ChangeGroup.RowGroup2
                _OrderInRows.Save()
            Next
        End If
        If _OrderInRows_ChangeGroup.Change_DiscountPercent Then
            For Each _OrderInRows In _selection
                _OrderInRows.DiscountPriceHUF = _OrderInRows.ListPriceHUF * (_OrderInRows_ChangeGroup.DiscountPercent / 100)
                _OrderInRows.DiscountPriceDEV = _OrderInRows.ListPriceDEV * (_OrderInRows_ChangeGroup.DiscountPercent / 100)

            Next
        End If
        _ocur.CommitChanges()
        _noselect = False
    End Sub
    Private Sub OrderInHeader_OrderInRows_ListView_SelectionChanged(sender As Object, e As EventArgs)
        Dim _OrderInRows As OrderInRows
        If View Is Nothing Then Exit Sub
        If View.SelectedObjects.Count > 0 Then
            _selection.Clear()
            For Each _OrderInRows In View.SelectedObjects
                _selection.Add(_OrderInRows)
            Next
        End If
    End Sub
    Private Sub OrderInHeader_OrderInRowsOther_ListView_SelectionChanged(sender As Object, e As EventArgs)
        Dim _OrderInRowsOther As OrderInRowsOther
        If View Is Nothing Then Exit Sub
        If View.SelectedObjects.Count > 0 Then
            _selection.Clear()
            For Each _OrderInRowsOther In View.SelectedObjects
                _selection.Add(_OrderInRowsOther)
            Next
        End If
    End Sub
    Private Sub aOrderInOther_ChangeRows_CustomizePopupWindowParams(sender As Object, e As DevExpress.ExpressApp.Actions.CustomizePopupWindowParamsEventArgs) Handles aOrderInOther_ChangeRows.CustomizePopupWindowParams
        _noselect = True
        Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
        Dim _OrderInRowsOther_ChangeGroup As OrderInRowsOther_ChangeGroup = _onew.CreateObject(Of OrderInRowsOther_ChangeGroup)()
        If View.SelectedObjects.Count > 0 Then
            Dim _OrderInRowsOther As OrderInRowsOther = TryCast(View.SelectedObjects(0), OrderInRowsOther)
            _OrderInRowsOther_ChangeGroup.VAT = _onew.GetObject(_OrderInRowsOther.VAT)
            _OrderInRowsOther_ChangeGroup.Units = _onew.GetObject(_OrderInRowsOther.Units)
            _OrderInRowsOther_ChangeGroup.RowGroup1 = _onew.GetObject(_OrderInRowsOther.RowGroup1)
            _OrderInRowsOther_ChangeGroup.RowGroup2 = _onew.GetObject(_OrderInRowsOther.RowGroup2)
            _OrderInRowsOther_ChangeGroup.QualityOption = _onew.GetObject(_OrderInRowsOther.QualityOption)
            _OrderInRowsOther_ChangeGroup.FinalPricePercent = 0
            _OrderInRowsOther_ChangeGroup.ShortName = _onew.GetObject(_OrderInRowsOther.ShortName)
            _OrderInRowsOther_ChangeGroup.Description = _onew.GetObject(_OrderInRowsOther.Description)

            e.View = Application.CreateDetailView(_onew, "OrderInRowsOther_ChangeGroup_DetailView", False, _OrderInRowsOther_ChangeGroup)
        Else
            Throw New UserFriendlyException("Nincs kijelölt elem!")
        End If
    End Sub
    Private Sub aOrderInOther_ChangeRows_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aOrderInOther_ChangeRows.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInRowsOther_ChangeGroup As OrderInRowsOther_ChangeGroup = TryCast(e.PopupWindow.View.SelectedObjects(0), OrderInRowsOther_ChangeGroup)

        Dim _OrderInRowsOther As OrderInRowsOther '= TryCast(View.SelectedObjects(0), OrderInRowsOther)
        'If _OrderInRowsOther IsNot Nothing Then

        If _OrderInRowsOther_ChangeGroup.Change_Description Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.Description = _OrderInRowsOther_ChangeGroup.Description
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_FinalPricePercent Then
            For Each _OrderInRowsOther In _selection
                '_OrderInRowsOther.FinalPriceHUF = _OrderInRowsOther.FinalPriceHUF - (_OrderInRowsOther.FinalPriceHUF * (_OrderInRowsOther_ChangeGroup.FinalPricePercent / 100))
                '_OrderInRowsOther.DiscountPercent = _OrderInRowsOther_ChangeGroup.FinalPricePercent
                '_OrderInRowsOther.RecalculateRow()
                '_OrderInRowsOther.CanChangeProperty = False

                'If _OrderInRowsOther.OfferOutHeader.CurrencyName.ShortName = "HUF" Then
                '    _OrderInRowsOther.FinalPriceHUF = _OrderInRowsOther.ListPriceHUF - _OrderInRowsOther.DiscountPriceHUF
                'Else
                '    _OrderInRowsOther.FinalPriceDEV = _OrderInRowsOther.ListPriceDEV - _OrderInRowsOther.FinalPriceDEV
                'End If

                '_OrderInRowsOther.CanChangeProperty = True

                '_OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_QualityOption Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.QualityOption = _ocur.GetObjectByKey(Of QualityOption)(_OrderInRowsOther.QualityOption.Oid)
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_RowGroup1 Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.RowGroup1 = _OrderInRowsOther_ChangeGroup.RowGroup1
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_RowGroup2 Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.RowGroup2 = _OrderInRowsOther_ChangeGroup.RowGroup2
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_ShortName Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.ShortName = _OrderInRowsOther_ChangeGroup.ShortName
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_Units Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.Units = _ocur.GetObjectByKey(Of Units)(_OrderInRowsOther_ChangeGroup.Units.Oid)
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_VAT Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.VAT = _ocur.GetObjectByKey(Of VAT)(_OrderInRowsOther_ChangeGroup.VAT.Oid)
                _OrderInRowsOther.Save()
            Next
        End If

        If _OrderInRowsOther_ChangeGroup.Change_WorkState Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.WorkState = _ocur.GetObjectByKey(Of WorkState)(_OrderInRowsOther_ChangeGroup.WorkState.Oid)
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_WorkStateGroup Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.WorkStateGroup = _OrderInRowsOther_ChangeGroup.WorkStateGroup
                _OrderInRowsOther.Save()
            Next
        End If
        If _OrderInRowsOther_ChangeGroup.Change_WorkStateExpiration Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.WorkStateExpiration = _OrderInRowsOther_ChangeGroup.WorkStateExpiration
                _OrderInRowsOther.Save()
            Next
        End If

        If _OrderInRowsOther_ChangeGroup.Change_WorkStateStatus Then
            For Each _OrderInRowsOther In _selection
                _OrderInRowsOther.WorkStateStatus = _OrderInRowsOther_ChangeGroup.WorkStateStatus
                _OrderInRowsOther.Save()
            Next
        End If

        'End If
        _ocur.CommitChanges()
        _noselect = False
    End Sub
    Private Sub StorageOutFromOrderInFIFO_PopUp_DetailView_AcceptActionExecuting(sender As Object, e As CancelEventArgs)
        Dim _ActQTT = 0

        Dim _StorageOutFromOrderInFIFO_PopUp As StorageOutFromOrderInFIFO_PopUp = View.SelectedObjects(0)
        For Each _StorageInRows As StorageInRows In _StorageOutFromOrderInFIFO_PopUp.StorageInRows
            _ActQTT += _StorageInRows.QTT_Will
            If _StorageInRows.QTT < _StorageInRows.QTT_Will Then Throw New Exception("*Egy vagy több sorban a foglalni kívánt mennyiség meghaladja a szabad készlet mennyiségét!" _
                                                                + vbNewLine + vbNewLine + "Kérem, ellenőrizze!")
            If _StorageInRows.QTT_Will < 0 Then Throw New Exception("*Egy vagy több sorban negatív értékű foglalási szándék szerepel!" _
                                                                + vbNewLine + vbNewLine + "Kérem, ellenőrizze!")
        Next

        If _ActQTT <> _StorageOutFromOrderInFIFO_PopUp.QTT_Full Then Throw New Exception("*Nem végezhető el a foglalás, mert a foglalási szándék és a foglalás(ok) értéke nem egyezik meg!" _
                                                                + vbNewLine + vbNewLine + "Kérem, ellenőrizze!")
    End Sub
    Private Sub InvoiceHeaderSavedSettings(ByVal _InvoiceHeader As InvoiceHeader)
        On Error GoTo CheckError
        With _InvoiceHeader
            .Saved_Customers_Name = _InvoiceHeader.Customers.Name.ToString
            .Saved_Customers_Address_Country = _InvoiceHeader.Customers.Address1.Country.ToString
            .Saved_Customers_Address_ZipPostal = _InvoiceHeader.Customers.Address1.ZipPostal.ToString
            .Saved_Customers_Address_Street = _InvoiceHeader.Customers.Address1.Street.ToString
            .Saved_Customers_Address_City = _InvoiceHeader.Customers.Address1.City.ToString
            .Saved_Customers_Address_StateProvince = _InvoiceHeader.Customers.Address1.StateProvince.ToString
            .Saved_Customers_VATNumber = _InvoiceHeader.Customers.VATNumber.ToString
            .Saved_Customers_VATNumberEU = _InvoiceHeader.Customers.VATNumberEU.ToString

            .Saved_CustomersFrom_Name = _InvoiceHeader.CustomersFrom.Name.ToString
            .Saved_CustomersFrom_Address_ZipPostal = _InvoiceHeader.CustomersFrom.Address1.ZipPostal.ToString
            .Saved_CustomersFrom_Address_Street = _InvoiceHeader.CustomersFrom.Address1.Street.ToString
            .Saved_CustomersFrom_Address_City = _InvoiceHeader.CustomersFrom.Address1.City.ToString
            .Saved_CustomersFrom_Address_StateProvince = _InvoiceHeader.CustomersFrom.Address1.StateProvince.ToString
            .Saved_CustomersFrom_VATNumber = _InvoiceHeader.CustomersFrom.VATNumber.ToString
            .Saved_CustomersFrom_VATNumberEU = _InvoiceHeader.CustomersFrom.VATNumberEU.ToString

            .Saved_CustomersFrom_Bank_ShortName = _InvoiceHeader.BankInformation.FullBankAccount.ToString
            .Saved_CustomersFrom_Bank_IBAN = _InvoiceHeader.BankInformation.IBAN.ToString
            .Saved_CustomersFrom_Bank_SWIFT = _InvoiceHeader.BankInformation.SWIFT.ToString
            .Saved_CustomersFrom_Bank_AccountNumber = _InvoiceHeader.BankInformation.AccountNumber.ToString
        End With

CheckError:
        If Err.Number = 91 Then Resume Next
        If Err.Number = 13 Then Resume Next
    End Sub
    Private Sub StornoInvoice(_onew As Xpo.XPObjectSpace, _InvoiceHeaderNew_Collection As ArrayList, _InvoiceRows_Collection As ArrayList)
        ' Stornózandó fejlécek meghatározása
        '_______________________________________________________
        Dim _InvoiceHeaderOrig_Collection As New ArrayList
        For Each _InvoiceRows As InvoiceRows In _InvoiceRows_Collection
            Dim _InvoiceHeader As InvoiceHeader = _onew.GetObject(_InvoiceRows.InvoiceHeader)
            If _InvoiceHeaderOrig_Collection.Count = 0 Then
                _InvoiceHeaderOrig_Collection.Add(_InvoiceHeader)
            Else
                Dim _IsNeed As Boolean = True
                For Each _InvoiceHeaderInCollection As InvoiceHeader In _InvoiceHeaderOrig_Collection
                    If _InvoiceHeaderInCollection.Oid = _InvoiceRows.InvoiceHeader.Oid Then _IsNeed = False
                Next
                If _IsNeed Then _InvoiceHeaderOrig_Collection.Add(_InvoiceHeader)
            End If
        Next

        If _InvoiceHeaderOrig_Collection.Count = 0 Then Return

        For Each _InvoiceHeaderOrig As InvoiceHeader In _InvoiceHeaderOrig_Collection
            _InvoiceHeaderOrig = _onew.GetObjectByKey(Of InvoiceHeader)(_InvoiceHeaderOrig.Oid)
            _InvoiceHeaderOrig.IsStorno = True

            Dim _InvoiceHeaderNew As New InvoiceHeader(_onew.Session)
            With _InvoiceHeaderNew
                .IsStorno = True
                .BankInformation = _InvoiceHeaderOrig.BankInformation
                .ConnectInfo = _InvoiceHeaderOrig.DocumentNumber
                .CurrencyName = _InvoiceHeaderOrig.CurrencyName
                .CurrencyRate = _InvoiceHeaderOrig.CurrencyRate
                .Customers = _InvoiceHeaderOrig.Customers
                .CustomersFrom = _InvoiceHeaderOrig.CustomersFrom
                .DateCreated = GetSQLTime(_onew.Session)
                .PaymentOption = _InvoiceHeaderOrig.PaymentOption
                .DateExecution = _InvoiceHeaderOrig.DateExecution
                .DatePayment = _InvoiceHeaderOrig.DatePayment
                .DocumentNumber = _InvoiceHeaderOrig.InvoiceType.NumberGenerator.GetNewNumber(_InvoiceHeaderOrig.InvoiceType.NumberGenerator)
                .HUNumberToText = _InvoiceHeaderOrig.HUNumberToText
                .InvoiceType = _InvoiceHeaderOrig.InvoiceType
                .IsEditable = False
                .IsProforma = False
                .QualityOption = _InvoiceHeaderOrig.QualityOption
                .Saved_Customers_Address_City = _InvoiceHeaderOrig.Saved_Customers_Address_City
                .Saved_Customers_Address_Country = _InvoiceHeaderOrig.Saved_Customers_Address_Country
                .Saved_Customers_Address_StateProvince = _InvoiceHeaderOrig.Saved_Customers_Address_StateProvince
                .Saved_Customers_Address_Street = _InvoiceHeaderOrig.Saved_Customers_Address_Street
                .Saved_Customers_Address_ZipPostal = _InvoiceHeaderOrig.Saved_Customers_Address_ZipPostal
                .Saved_Customers_Name = _InvoiceHeaderOrig.Saved_Customers_Name
                .Saved_Customers_VATNumber = _InvoiceHeaderOrig.Saved_Customers_VATNumber
                .Saved_Customers_VATNumberEU = _InvoiceHeaderOrig.Saved_Customers_VATNumberEU
                .Saved_CustomersFrom_Address_City = _InvoiceHeaderOrig.Saved_CustomersFrom_Address_City
                .Saved_CustomersFrom_Address_Country = _InvoiceHeaderOrig.Saved_CustomersFrom_Address_Country
                .Saved_CustomersFrom_Address_StateProvince = _InvoiceHeaderOrig.Saved_CustomersFrom_Address_StateProvince
                .Saved_CustomersFrom_Address_Street = _InvoiceHeaderOrig.Saved_CustomersFrom_Address_Street
                .Saved_CustomersFrom_Address_ZipPostal = _InvoiceHeaderOrig.Saved_CustomersFrom_Address_ZipPostal
                .Saved_CustomersFrom_Bank_AccountNumber = _InvoiceHeaderOrig.Saved_CustomersFrom_Bank_AccountNumber
                .Saved_CustomersFrom_Bank_IBAN = _InvoiceHeaderOrig.Saved_CustomersFrom_Bank_IBAN
                .Saved_CustomersFrom_Bank_ShortName = _InvoiceHeaderOrig.Saved_CustomersFrom_Bank_ShortName
                .Saved_CustomersFrom_Bank_SWIFT = _InvoiceHeaderOrig.Saved_CustomersFrom_Bank_SWIFT

                .Saved_CustomersFrom_Name = _InvoiceHeaderOrig.Saved_CustomersFrom_Name
                .Saved_CustomersFrom_VATNumber = _InvoiceHeaderOrig.Saved_CustomersFrom_VATNumber
                .Saved_CustomersFrom_VATNumberEU = _InvoiceHeaderOrig.Saved_CustomersFrom_VATNumberEU

                .ShipmentOption = _InvoiceHeaderOrig.ShipmentOption
            End With

            For Each _InvoiceRowsOrig As InvoiceRows In _InvoiceHeaderOrig.InvoiceRows
                Dim _InvoiceRowsNew As New InvoiceRows(_onew.Session)
                With _InvoiceRowsNew
                    .InvoiceHeader = _InvoiceHeaderNew
                    .Controlling = _InvoiceRowsOrig.Controlling
                    .CostHolder = _InvoiceRowsOrig.CostHolder
                    .CostPlace = _InvoiceRowsOrig.CostPlace
                    .CustomsTariffs = _InvoiceRowsOrig.CustomsTariffs
                    .Description = _InvoiceRowsOrig.Description
                    .DiscountPriceDEV = _InvoiceRowsOrig.DiscountPriceDEV
                    .DiscountPriceHUF = _InvoiceRowsOrig.DiscountPriceHUF
                    .InvoiceRowtype = _InvoiceRowsOrig.InvoiceRowtype
                    .JobNumberObjects = _InvoiceRowsOrig.JobNumberObjects
                    .ListPriceDEV = _InvoiceRowsOrig.ListPriceDEV
                    .ListPriceHUF = _InvoiceRowsOrig.ListPriceHUF
                    .QTT = _InvoiceRowsOrig.QTT * (-1)
                    .QualityOption = _InvoiceRowsOrig.QualityOption
                    .RowIndex = _InvoiceRowsOrig.RowIndex
                    .ShortName = _InvoiceRowsOrig.ShortName
                    .UniqueObjects = _InvoiceRowsOrig.UniqueObjects
                    .Units = _InvoiceRowsOrig.Units
                    .VAT = _InvoiceRowsOrig.VAT
                    If _InvoiceRowsOrig.ContractRows IsNot Nothing Then
                        .ContractRows = _InvoiceRowsOrig.ContractRows
                    End If
                    If _InvoiceRowsOrig.OrderInRows IsNot Nothing Then
                        .OrderInRows = _InvoiceRowsOrig.OrderInRows
                        _InvoiceRowsOrig.OrderInRows.QTT_Invoiced -= _InvoiceRowsOrig.QTT
                    End If
                    If _InvoiceRowsOrig.DeliveryNoteOutRows IsNot Nothing Then
                        .DeliveryNoteOutRows = _InvoiceRowsOrig.DeliveryNoteOutRows
                        _InvoiceRowsOrig.DeliveryNoteOutRows.QTT_Invoiced -= _InvoiceRowsOrig.QTT
                        _InvoiceRowsOrig.DeliveryNoteOutRows.QTT_Will += _InvoiceRowsOrig.QTT
                    End If

                    .ChartOfAccounts = _InvoiceRowsOrig.ChartOfAccounts
                    .InvoiceRows = _InvoiceRowsOrig.InvoiceRows
                    .InvoiceRowsAdvance = _InvoiceRowsOrig.InvoiceRowsAdvance
                    .OrderInRows = _InvoiceRowsOrig.OrderInRows
                    .DeliveryNoteOutRows = _InvoiceRowsOrig.DeliveryNoteOutRows
                    .OrderInRowsOther = _InvoiceRowsOrig.OrderInRowsOther
                End With
            Next
            _InvoiceHeaderNew_Collection.Add(_InvoiceHeaderNew)
        Next
    End Sub
    Private Sub StornoDeliveryNoteOut(_onew As Xpo.XPObjectSpace, _DeliveryNoteOutHeader_Collection As ArrayList, _DeliveryNoteOutHeaderNew_Collection As ArrayList)
        For Each _DeliveryNoteOutHeader As DeliveryNoteOutHeader In _DeliveryNoteOutHeader_Collection
            _DeliveryNoteOutHeader.IsEditable = False
            _DeliveryNoteOutHeader.IsStorno = True

            Dim _DeliveryNoteOutHeaderNew As New DeliveryNoteOutHeader(_onew.Session)
            With _DeliveryNoteOutHeaderNew
                .ConnectInfo = _DeliveryNoteOutHeader.DocumentNumber
                .CurrencyName = _onew.GetObject(_DeliveryNoteOutHeader.CurrencyName)
                .Customers = _onew.GetObject(_DeliveryNoteOutHeader.Customers)
                .CustomersFrom = _onew.GetObject(_DeliveryNoteOutHeader.CustomersFrom)
                .DateCreated = GetSQLTime(_onew.Session)
                .DateExecution = _onew.GetObject(_DeliveryNoteOutHeader.DateExecution)
                .Note = _onew.GetObject(_DeliveryNoteOutHeader.Note)
                .QualityOption = _onew.GetObject(_DeliveryNoteOutHeader.QualityOption)
                .ShipmentOption = _onew.GetObject(_DeliveryNoteOutHeader.ShipmentOption)
                .TransportAddress = _onew.GetObject(_DeliveryNoteOutHeader.TransportAddress)
                .DeliveryNoteOutType = _onew.GetObject(_DeliveryNoteOutHeader.DeliveryNoteOutType)
                .IsStorno = True
                .IsEditable = False
            End With

            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutHeader.DeliveryNoteOutRows
                Dim _DeliveryNoteOutRowsNew As New DeliveryNoteOutRows(_onew.Session)
                With _DeliveryNoteOutRowsNew
                    .DeliveryNoteOutHeader = _DeliveryNoteOutHeaderNew
                    .RowIndex = _DeliveryNoteOutHeaderNew.DeliveryNoteOutRows.Count
                    .QTT = _DeliveryNoteOutRows.QTT * (-1)
                    .QTT_Will = 0
                    .StorageOutRowsInRows = _DeliveryNoteOutRows.StorageOutRowsInRows
                End With
                _DeliveryNoteOutRows.StorageOutRowsInRows.QTT_To_DeliveryOut -= _DeliveryNoteOutRows.QTT
                _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_DeliveryNoted -= _DeliveryNoteOutRows.QTT
            Next
            _DeliveryNoteOutHeaderNew_Collection.Add(_DeliveryNoteOutHeaderNew)
        Next
    End Sub
    Private Sub StornoDeliveryNoteOutStorageOut(_onew As Xpo.XPObjectSpace, _DeliveryNoteOutHeader_Collection As ArrayList, _StorageOutHeader_Collection As ArrayList, _DeliveryNoteOutHeaderNew_Collection As ArrayList, _StorageOutHeaderNew_Collection As ArrayList)
        StornoDeliveryNoteOut(_onew, _DeliveryNoteOutHeader_Collection, _DeliveryNoteOutHeaderNew_Collection)

        Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
        Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))

        If _StorageOutHeader_Collection.Count = 0 Then Return

        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\SISBusinessExceptions\StorageComputed", "CanNotStorageInByLocking")
            Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
            MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

            Exit Sub
        Else
            For Each _StorageOutHeader As StorageOutHeader In _StorageOutHeader_Collection
                Dim _StorageOutHeaderNew As New StorageOutHeader(_onew.Session)
                With _StorageOutHeaderNew
                    .ConnectInfo = _StorageOutHeader.DocumentNumber
                    .Storage = _onew.GetObject(_StorageOutHeader.Storage)
                    .StorageMoveType = _onew.GetObject(_StorageOutHeader.StorageMoveType)
                    .CustomersFrom = _onew.GetObject(_StorageOutHeader.CustomersFrom)
                    .Customers = _onew.GetObject(_StorageOutHeader.Customers)
                    .Active = False
                    .IsStorno = True
                    .IsEditable = False
                End With
                _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 = _onew.GetObject(_StorageOutRows.StorageComputed)
                        .OrderInRows = _onew.GetObject(_StorageOutRows.OrderInRows)
                        .QTT = _StorageOutRows.QTT * (-1)
                        .QTT_Will = 0
                        .QTT_To_DeliveryOut = 0
                        .Products = _onew.GetObject(_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=?", _onew.GetObject(_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)))
                        _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 = _StorageOutRowsInRows.StorageOutRows
                            .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 = _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.StorageOutStorno
                        _StorageMoveEvents.ExecutionDate = GetSQLTime(_onew.Session)

                        _StorageOutRows.QTT = 0
                    Next
                Next
                _StorageOutHeaderNew_Collection.Add(_StorageOutHeaderNew)
            Next
        End If
    End Sub
    Private Sub StornoDelivery(_onew As Xpo.XPObjectSpace, _DeliveryHeaderNew_Collection As ArrayList, _InvoiceRows_Collection As ArrayList)
        ' Stornózandó fejlécek meghatározása
        '_______________________________________________________
        Dim _DeliveryOutHeaderOrig_Collection As New ArrayList
        For Each _InvoiceRows As InvoiceRows In _InvoiceRows_Collection
            If _DeliveryOutHeaderOrig_Collection.Count = 0 Then
                _DeliveryOutHeaderOrig_Collection.Add(_onew.GetObject(_InvoiceRows.DeliveryNoteOutRows.DeliveryNoteOutHeader))
            Else
                Dim _IsNeed As Boolean = True
                For Each _DeliveryNoteOutHeader As DeliveryNoteOutHeader In _DeliveryOutHeaderOrig_Collection
                    If _DeliveryNoteOutHeader.Oid = _InvoiceRows.DeliveryNoteOutRows.DeliveryNoteOutHeader.Oid Then _IsNeed = False
                Next
                If _IsNeed Then _DeliveryOutHeaderOrig_Collection.Add(_onew.GetObject(_InvoiceRows.DeliveryNoteOutRows.DeliveryNoteOutHeader))
            End If
        Next

        If _DeliveryOutHeaderOrig_Collection.Count = 0 Then Return

        StornoDeliveryNoteOut(_onew, _DeliveryOutHeaderOrig_Collection, _DeliveryHeaderNew_Collection)
    End Sub
    Private Sub StornoStorage(_onew As Xpo.XPObjectSpace, _StorageOutHeaderNew_Collection As ArrayList, _InvoiceRows_Collection As ArrayList)
        Dim _uow_lock As New UnitOfWork(_onew.Session.DataLayer)
        Dim _User As User = _onew.GetObject(TryCast(SecuritySystem.CurrentUser, User))
        Dim _StorageOutHeaderOrig_Collection As New ArrayList

        For Each _InvoiceRows As InvoiceRows In _InvoiceRows_Collection
            If _StorageOutHeaderOrig_Collection.Count = 0 Then
                _StorageOutHeaderOrig_Collection.Add(_onew.GetObject(_InvoiceRows.DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.StorageOutHeader))
            Else
                Dim _IsNeed As Boolean = True
                For Each _StorageOutHeader As StorageOutHeader In _StorageOutHeaderOrig_Collection
                    If _StorageOutHeader.Oid = _InvoiceRows.DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.StorageOutHeader.Oid Then _IsNeed = False
                Next
                If _IsNeed Then _StorageOutHeaderOrig_Collection.Add(_onew.GetObject(_InvoiceRows.DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.StorageOutHeader))
            End If
        Next

        If _StorageOutHeaderOrig_Collection.Count = 0 Then Return

        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\SISBusinessExceptions\StorageComputed", "CanNotStorageInByLocking")
            Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
            MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

            Exit Sub
        Else
            For Each _StorageOutHeader As StorageOutHeader In _StorageOutHeaderOrig_Collection
                Dim _StorageOutHeaderNew As New StorageOutHeader(_onew.Session)
                With _StorageOutHeaderNew
                    .ConnectInfo = _StorageOutHeader.DocumentNumber
                    .Storage = _onew.GetObject(_StorageOutHeader.Storage)
                    .StorageMoveType = _onew.GetObject(_StorageOutHeader.StorageMoveType)
                    .CustomersFrom = _onew.GetObject(_StorageOutHeader.CustomersFrom)
                    .Customers = _onew.GetObject(_StorageOutHeader.Customers)
                    .Active = False
                    .IsStorno = True
                    .IsEditable = False
                End With
                _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 = _onew.GetObject(_StorageOutRows.StorageComputed)
                        .OrderInRows = _onew.GetObject(_StorageOutRows.OrderInRows)
                        .QTT = _StorageOutRows.QTT * (-1)
                        .QTT_Will = 0
                        .QTT_To_DeliveryOut = 0
                        .Products = _onew.GetObject(_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=?", _onew.GetObject(_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)))
                        _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 = _StorageOutRowsInRows.StorageOutRows
                            .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 = _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.StorageOutStorno
                        _StorageMoveEvents.ExecutionDate = GetSQLTime(_onew.Session)

                        _StorageOutRows.QTT = 0
                    Next
                Next
                _StorageOutHeaderNew_Collection.Add(_StorageOutHeaderNew)
            Next
        End If
    End Sub
    Private Sub aGenerateStorageOutFromOrderInBack_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aGenerateStorageOutFromOrderInBack.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)

            Dim _StorageOutRowsInRows_CollectionSource As CollectionSource = New CollectionSource(_onew, GetType(StorageOutRowsInRows))
            _StorageOutRowsInRows_CollectionSource.BeginUpdateCriteria()
            _StorageOutRowsInRows_CollectionSource.Criteria("1") = CriteriaOperator.Parse("StorageOutRows.OrderInRows.OrderInHeader=? AND StorageOutRows.StorageOutHeader.IsEditable=True AND QTT_To_DeliveryOut=0 AND QTT>0", _
                                                                                          _onew.GetObject(_OrderInHeader))
            _StorageOutRowsInRows_CollectionSource.EndUpdateCriteria()

            e.View = Application.CreateListView("StorageOutRowsInRows_ListView", _StorageOutRowsInRows_CollectionSource, True)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aGenerateStorageOutFromOrderInBack_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aGenerateStorageOutFromOrderInBack.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 _OrderInHeader As OrderInHeader = _onew.GetObjectByKey(Of OrderInHeader)(TryCast(View.SelectedObjects(0), OrderInHeader).Oid)
            If _OrderInHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            Dim _StorageOutRowsInRows_Collection As ArrayList = e.PopupWindow.View.SelectedObjects
            If _StorageOutRowsInRows_Collection.Count = 0 Then Throw New Exception("*Nem lett kijelölve egy sor sem!")

            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\SISBusinessExceptions\StorageComputed", "CanNotStorageInByLocking")
                Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
                MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

                Exit Sub
            Else
                For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
                    If _StorageOutRowsInRows.QTT > 0 Then
                        _StorageOutRowsInRows = _onew.GetObject(_StorageOutRowsInRows)
                        Dim _QTTMod As Double = _StorageOutRowsInRows.QTT
                        Dim _StorageOutRowsInRowsC As New XPCollection(Of StorageOutRowsInRows)(_onew.Session, CriteriaOperator.Parse(""))

                        _StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_Storaged_Will -= _QTTMod
                        _StorageOutRowsInRows.StorageInRows.QTT_Out_Will -= _QTTMod
                        _StorageOutRowsInRows.QTT -= _QTTMod
                        Dim _StorageComputed As StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.Storage, _
                                                                                                                              _StorageOutRowsInRows.StorageInRows.Products))
                        _StorageComputed.QTTReservedOut -= _QTTMod
                        _StorageComputed.QTTFree += _QTTMod
                    End If
                Next

                _onew.CommitChanges()
                Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        Finally
            LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
        End Try
    End Sub
    Private Sub aOrderIn_RecalculateDEV_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aOrderIn_RecalculateDEV.CustomizePopupWindowParams
        Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _RecalcDEV As RecalcDEV = _onew.CreateObject(Of RecalcDEV)()

        _RecalcDEV.CurrencyName = _onew.GetObject(_OrderInHeader.OrderInParameters.CurrencyName)
        _RecalcDEV.DateExecution = GetSQLTime(_onew.Session)


        e.View = Application.CreateDetailView(_onew, "RecalcDEV_DetailView", True, _RecalcDEV)
    End Sub
    Private Sub aOrderIn_RecalculateDEV_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aOrderIn_RecalculateDEV.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _RecalcDEV As RecalcDEV = TryCast(e.PopupWindow.View.SelectedObjects(0), RecalcDEV)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        'Dim _OrderInRows As OrderInRows
        'Dim _OrderInRowsOther As OrderInRowsOther

        RecalculateDEV(_RecalcDEV, _OrderInHeader)
        _ocur.CommitChanges()
        'If _OrderInHeader IsNot Nothing Then
        '    If _OrderInHeader.OrderInParameters.CurrencyName.ShortName <> "HUF" Then
        '        For Each _OrderInRows In _OrderInHeader.OrderInRows
        '            If _RecalcDEV.PriceMode = ePriceMode.eDEVToHUF Then
        '                _OrderInRows.ListPriceHUF = Math.Round(_OrderInRows.ListPriceDEV * _RecalcDEV.CurrencyRate, 0, MidpointRounding.AwayFromZero)
        '                _OrderInRows.DiscountPriceHUF = Math.Round(_OrderInRows.DiscountPriceDEV * _RecalcDEV.CurrencyRate, 0, MidpointRounding.AwayFromZero)

        '            Else
        '                If _RecalcDEV.CurrencyRate <> 0 Then
        '                    _OrderInRows.ListPriceDEV = Math.Round(_OrderInRows.ListPriceHUF / _RecalcDEV.CurrencyRate, 2, MidpointRounding.AwayFromZero)
        '                    _OrderInRows.DiscountPriceDEV = Math.Round(_OrderInRows.DiscountPriceHUF / _RecalcDEV.CurrencyRate, 2, MidpointRounding.AwayFromZero)
        '                End If
        '            End If
        '            _OrderInRows.RecalculateRows()
        '        Next

        '        For Each _OrderInRowsOther In _OrderInHeader.OrderInRowsOther
        '            If _RecalcDEV.PriceMode = ePriceMode.eDEVToHUF Then
        '                _OrderInRowsOther.ListPriceHUF = Math.Round(_OrderInRowsOther.ListPriceDEV * _RecalcDEV.CurrencyRate, 0, MidpointRounding.AwayFromZero)
        '                _OrderInRowsOther.DiscountPriceHUF = Math.Round(_OrderInRowsOther.DiscountPriceDEV * _RecalcDEV.CurrencyRate, 0, MidpointRounding.AwayFromZero)

        '            Else
        '                If _RecalcDEV.CurrencyRate <> 0 Then
        '                    _OrderInRowsOther.ListPriceDEV = Math.Round(_OrderInRowsOther.ListPriceHUF / _RecalcDEV.CurrencyRate, 2, MidpointRounding.AwayFromZero)
        '                    _OrderInRowsOther.DiscountPriceDEV = Math.Round(_OrderInRowsOther.DiscountPriceHUF / _RecalcDEV.CurrencyRate, 2, MidpointRounding.AwayFromZero)
        '                End If
        '            End If
        '            _OrderInRowsOther.RecalculateRows()
        '        Next

        '        _ocur.CommitChanges()
        '    End If
        'End If

    End Sub
    Private Sub ORI_Invoice_Popup_DetailView_AcceptActionExecuting(sender As Object, e As CancelEventArgs)
        Validator.RuleSet.ValidateAll(View.ObjectSpace, View.SelectedObjects, DefaultContexts.Save)
    End Sub
    Private Sub aORI_RegenerateValues_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aORI_RegenerateValues.CustomizePopupWindowParams
        Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _OrderInRegenerator_PopUp_Collection As New ArrayList

        Dim _ProductsList As New ArrayList

        'Összes Products a rendelésen
        For Each _OrderInRows As OrderInRows In _OrderInHeader.OrderInRows
            If _ProductsList.Count = 0 Then
                _ProductsList.Add(_OrderInRows.Products)
            Else
                Dim _Need As Boolean = True
                For Each _Products As Products In _ProductsList
                    If _Products.Oid = _OrderInRows.Products.Oid Then _Need = False
                    Exit For
                Next
                If _Need Then
                    _ProductsList.Add(_OrderInRows.Products)
                End If
            End If
        Next
        If _ProductsList.Count > 0 Then
            For Each _Products As Products In _ProductsList
                Dim _OrderInRows As OrderInRows = _onew.FindObject(Of OrderInRows)(CriteriaOperator.Parse("OrderInHeader=? AND Products=?", _onew.GetObject(_OrderInHeader), _onew.GetObject(_Products)))
                'Kitárolás
                Dim _StorageOutRowsInRows_Collection As New XPCollection(Of StorageOutRowsInRows)(_onew.Session, CriteriaOperator.Parse("StorageOutRows.OrderInRows=?", _OrderInRows))
                Dim _StoragedOut_QTT As Double = 0
                Dim _StorageOutHeader_Collection As New ArrayList

                For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
                    _StoragedOut_QTT += _StorageOutRowsInRows.QTT
                    If _StorageOutHeader_Collection.Count = 0 Then
                        _StorageOutHeader_Collection.Add(_StorageOutRowsInRows.StorageOutRows.StorageOutHeader)
                    Else
                        Dim _Need As Boolean = True
                        For Each _StorageOutHeader As StorageOutHeader In _StorageOutHeader_Collection
                            If _StorageOutHeader.Oid = _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.Oid Then _Need = False
                            Exit For
                        Next
                        If _Need Then
                            _StorageOutHeader_Collection.Add(_StorageOutRowsInRows.StorageOutRows.StorageOutHeader)
                        End If
                    End If
                Next

                If _StoragedOut_QTT <> _OrderInRows.QTT_Storaged Then
                    'Kitárolás probléma...
                    Dim _OrderInRegenerator_PopUp As New OrderInRegenerator_PopUp(_onew.Session)
                    With _OrderInRegenerator_PopUp
                        .RowIndex = _OrderInRows.RowIndex
                        .ResultString = _OrderInRows.Products.ShortName
                        .RegeneratorErrorType = eRegeneratorErrorType.eStorageError
                    End With
                    _OrderInRegenerator_PopUp_Collection.Add(_OrderInRegenerator_PopUp)
                End If

                'Szállítólevél
                Dim _StorageOutRowsInRows_Filter As String = ""

                For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
                    _StorageOutRowsInRows_Filter += "StorageOutRowsInRows.Oid='" + _StorageOutRowsInRows.Oid.ToString + "' OR "
                Next
                _StorageOutRowsInRows_Filter = _StorageOutRowsInRows_Filter.Remove(_StorageOutRowsInRows_Filter.Length - 4, 4)
                If _StorageOutRowsInRows_Filter.Length < 8 Then _StorageOutRowsInRows_Filter = "1=2" 'Biztonsági False criteria :)

                Dim _DeliveryNoteOutRows_Collection As New XPCollection(Of DeliveryNoteOutRows)(_onew.Session, CriteriaOperator.Parse(_StorageOutRowsInRows_Filter))

                Dim _DeliveredOut_QTT As Double = 0
                Dim _DeliveryNoteOutHeader_Collection As New ArrayList

                For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutRows_Collection
                    _DeliveredOut_QTT += _DeliveryNoteOutRows.QTT
                    If _DeliveryNoteOutHeader_Collection.Count = 0 Then
                        _DeliveryNoteOutHeader_Collection.Add(_DeliveryNoteOutRows.DeliveryNoteOutHeader)
                    Else
                        Dim _Need As Boolean = True
                        For Each _DeliveryNoteOutHeader As DeliveryNoteOutHeader In _DeliveryNoteOutHeader_Collection
                            If _DeliveryNoteOutHeader.Oid = _DeliveryNoteOutRows.DeliveryNoteOutHeader.Oid Then _Need = False
                            Exit For
                        Next
                        If _Need Then
                            _DeliveryNoteOutHeader_Collection.Add(_DeliveryNoteOutRows.DeliveryNoteOutHeader)
                        End If
                    End If

                Next

                If _DeliveredOut_QTT <> _OrderInRows.QTT_DeliveryNoted Then
                    'Kiszállítás probléma
                    Dim _OrderInRegenerator_PopUp As New OrderInRegenerator_PopUp(_onew.Session)
                    With _OrderInRegenerator_PopUp
                        .RowIndex = _OrderInRows.RowIndex
                        .ResultString = _OrderInRows.Products.ShortName
                        .RegeneratorErrorType = eRegeneratorErrorType.eDeliveryError
                    End With

                    _OrderInRegenerator_PopUp_Collection.Add(_OrderInRegenerator_PopUp)
                End If

                'Számla
                Dim _InvoiceRows_Collection As New XPCollection(Of InvoiceRows)(_onew.Session, CriteriaOperator.Parse("OrderInRows=?", _OrderInRows))
                Dim _Invoiced_QTT As Double = 0
                Dim _InvoiceHeader_Collection As New ArrayList

                For Each _InvoiceRows As InvoiceRows In _InvoiceRows_Collection
                    _Invoiced_QTT += _InvoiceRows.QTT
                    If _InvoiceHeader_Collection.Count = 0 Then
                        _InvoiceHeader_Collection.Add(_InvoiceRows.InvoiceHeader)
                    Else
                        Dim _Need As Boolean = True
                        For Each _InvoiceHeader As InvoiceHeader In _InvoiceHeader_Collection
                            If _InvoiceHeader.Oid = _InvoiceRows.InvoiceHeader.Oid Then _Need = False
                            Exit For
                        Next
                        If _Need Then
                            _InvoiceHeader_Collection.Add(_InvoiceRows.InvoiceHeader)
                        End If
                    End If

                Next

                If _Invoiced_QTT <> _OrderInRows.QTT_Invoiced Then
                    'Számla probléma
                    Dim _OrderInRegenerator_PopUp As New OrderInRegenerator_PopUp(_onew.Session)
                    With _OrderInRegenerator_PopUp
                        .RowIndex = _OrderInRows.RowIndex
                        .ResultString = _OrderInRows.Products.ShortName + " megrendelés sorban mennyiségi probléma van."
                        .RegeneratorErrorType = eRegeneratorErrorType.eInvoiceError
                    End With

                    _OrderInRegenerator_PopUp_Collection.Add(_OrderInRegenerator_PopUp)
                End If
                '-----------------------------------
                If _StoragedOut_QTT < _DeliveredOut_QTT Then
                    'Kitárolás-szállítólevél probléma
                    Dim _OrderInRegenerator_PopUp As New OrderInRegenerator_PopUp(_onew.Session)
                    With _OrderInRegenerator_PopUp
                        .RowIndex = _OrderInRows.RowIndex
                        .ResultString = _OrderInRows.Products.ShortName + " megrendelés sorban van olyan kiszállítás, melyhez nem tartozik kitárolás."
                        .RegeneratorErrorType = eRegeneratorErrorType.eDeliveryError
                    End With
                    _OrderInRegenerator_PopUp_Collection.Add(_OrderInRegenerator_PopUp)

                    If _StoragedOut_QTT = 0 And _OrderInHeader.StorageOutRowsInRows.Count > 0 Then

                        _OrderInRegenerator_PopUp = New OrderInRegenerator_PopUp(_onew.Session)
                        With _OrderInRegenerator_PopUp
                            .RowIndex = _OrderInRows.RowIndex
                            .ResultString = _OrderInRows.Products.ShortName + " megrendelés sorban stornózott kitároláshoz tartozik kiszállítás."
                            .RegeneratorErrorType = eRegeneratorErrorType.eDeliveryError
                        End With
                        _OrderInRegenerator_PopUp = New OrderInRegenerator_PopUp(_onew.Session)

                        With _OrderInRegenerator_PopUp
                            .RowIndex = _OrderInRows.RowIndex
                            .ResultString = _OrderInRows.Products.ShortName + " megrendelés sorban stornózott kitároláshoz tartozik számla."
                            .RegeneratorErrorType = eRegeneratorErrorType.eInvoiceError
                        End With
                        _OrderInRegenerator_PopUp_Collection.Add(_OrderInRegenerator_PopUp)
                    End If
                End If

            Next


            Dim _OrderInRegenerator_PopUp_CollectionSource As New CollectionSource(_onew, GetType(OrderInRegenerator_PopUp))
            For Each _OrderInRegenerator_PopUp As OrderInRegenerator_PopUp In _OrderInRegenerator_PopUp_Collection
                _OrderInRegenerator_PopUp_CollectionSource.Add(_OrderInRegenerator_PopUp)
            Next

            e.View = Application.CreateListView("OrderInRegenerator_PopUp_ListView", _OrderInRegenerator_PopUp_CollectionSource, True)
        End If
    End Sub
    Private Sub aORI_RegenerateValues_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_RegenerateValues.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)



    End Sub

    Private Function GetAlertFromOrderIn(_OrderInHeader As OrderInHeader, _onew As Xpo.XPObjectSpace) As String
        Dim _AlertMessage As String = ""
        Dim _uow As New UnitOfWork(TryCast(View.ObjectSpace, Xpo.XPObjectSpace).Session.DataLayer)
        For Each _OrderInRows As OrderInRows In _OrderInHeader.OrderInRows
            If _OrderInRows.QTT_Process <> 0 Then
                If _OrderInRows.ListPriceHUF <= 1 Then
                    _AlertMessage += Chr(13) & Chr(10) & " Nullánál kisebb eladási ár a " & Format(_OrderInRows.RowIndex, "#,##0") & ". sorban !"
                End If

                Dim _StorageComputed As StorageComputed = _uow.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Products.Oid=?", _OrderInRows.Products.Oid))
                If _StorageComputed IsNot Nothing Then
                    If _OrderInRows.ListPriceHUF < _StorageComputed.MimumumPriceOutHUF Then
                        _AlertMessage += Chr(13) & Chr(10) & " Minimum ár alatti eladás a " & Format(_OrderInRows.RowIndex, "#,##0") & ". sorban !"
                    End If
                End If
            End If
        Next

        '//Termeltetési szerződés átnézése
        Dim _FundingAmountHUF_Sum As Double = 0

        For Each _OrderInRows As OrderInRows In _OrderInHeader.OrderInRows
            If _OrderInRows.APCSheetByProducts IsNot Nothing Then

                Dim _APCSheetByProducts_Collection As New XPCollection(Of APCSheetByProducts)(_onew.Session, CriteriaOperator.Parse("APCSheetHeader=? AND GetDate(ProductExpirationDate)=?", _
                                                                                _onew.GetObject(_OrderInRows.APCSheetByProducts.APCSheetHeader), _OrderInRows.APCSheetByProducts.ProductExpirationDate.Date))
                Dim _InvoiceRows_Collection As New XPCollection(Of InvoiceRows)(_onew.Session, CriteriaOperator.Parse("OrderInRows=?", _onew.GetObject(_OrderInRows)))

                For Each _APCSheetByProducts As APCSheetByProducts In _APCSheetByProducts_Collection
                    _FundingAmountHUF_Sum += Math.Round(_APCSheetByProducts.FundingAmountHUF, 0, MidpointRounding.AwayFromZero)

                    If _APCSheetByProducts.Contracts IsNot Nothing Then
                        Dim _ContractRows_Collection As New XPCollection(Of ContractRows)(_onew.Session, CriteriaOperator.Parse("Contracts=?", _APCSheetByProducts.Contracts))



                    End If

                Next

            End If
        Next

        For Each _OrderInRowsOther As OrderInRowsOther In _OrderInHeader.OrderInRowsOther
            If _OrderInRowsOther.APCSheetByProducts IsNot Nothing Then
                Dim _APCSheetByProducts_Collection As New XPCollection(Of APCSheetByProducts)(_onew.Session, CriteriaOperator.Parse("APCSheetHeader=? AND GetDate(ProductExpirationDate)=?", _
                                                                               _onew.GetObject(_OrderInRowsOther.APCSheetByProducts.APCSheetHeader), _OrderInRowsOther.APCSheetByProducts.ProductExpirationDate.Date))
                Dim _InvoiceRows_Collection As New XPCollection(Of InvoiceRows)(_onew.Session, CriteriaOperator.Parse("OrderInRowsOther=?", _onew.GetObject(_OrderInRowsOther)))




            End If
        Next

        Return _AlertMessage
    End Function
#Region "Invoice_Popup"
    Private Sub aORI_Invoice_Popup_Description_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aORI_Invoice_Popup_Description.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _InvoiceHeader_Collection As New XPCollection(Of InvoiceHeader)(_onew.Session)
            Dim _ORI_Invoice_Description_PopUp_CollectionSource As New CollectionSource(_onew, GetType(ORI_Invoice_Description_PopUp))
            If _InvoiceHeader_Collection.Count > 0 Then
                Dim _Description_Array As New ArrayList
                For Each _InvoiceHeader As InvoiceHeader In _InvoiceHeader_Collection
                    If Not String.IsNullOrEmpty(_InvoiceHeader.Description) Then
                        If _Description_Array.Count = 0 Then
                            _Description_Array.Add(_InvoiceHeader.Description)
                        Else
                            If Not _Description_Array.Contains(_InvoiceHeader.Description) Then _Description_Array.Add(_InvoiceHeader.Description)
                        End If
                    End If
                Next

                For Each _Description As String In _Description_Array
                    Dim _ORI_Invoice_Description_PopUp As New ORI_Invoice_Description_PopUp(_onew.Session)
                    With _ORI_Invoice_Description_PopUp
                        .Description = _Description
                    End With
                    _ORI_Invoice_Description_PopUp_CollectionSource.Add(_ORI_Invoice_Description_PopUp)
                Next
            End If

            e.View = Application.CreateListView("ORI_Invoice_Description_PopUp_ListView", _ORI_Invoice_Description_PopUp_CollectionSource, True)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aORI_Invoice_Popup_Description_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_Invoice_Popup_Description.Execute
        Try
            If e.PopupWindow.View.SelectedObjects.Count > 0 Then
                Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
                Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = TryCast(View.SelectedObjects(0), ORI_Invoice_Popup)
                If _ORI_Invoice_Popup Is Nothing Then Throw New Exception("*Váratlan hiba történt a folyamat megszakadt!")
                If String.IsNullOrEmpty(_ORI_Invoice_Popup.Description) Then
                    _ORI_Invoice_Popup.Description = TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Description_PopUp).Description
                Else
                    _ORI_Invoice_Popup.Description += vbNewLine
                    _ORI_Invoice_Popup.Description += TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Description_PopUp).Description
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aORI_Invoice_Popup_DescriptionHeader_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aORI_Invoice_Popup_DescriptionHeader.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _InvoiceHeader_Collection As New XPCollection(Of InvoiceHeader)(_onew.Session)
            Dim _ORI_Invoice_Description_PopUp_CollectionSource As New CollectionSource(_onew, GetType(ORI_Invoice_Description_PopUp))
            If _InvoiceHeader_Collection.Count > 0 Then
                Dim _Description_Array As New ArrayList
                For Each _InvoiceHeader As InvoiceHeader In _InvoiceHeader_Collection
                    If Not String.IsNullOrEmpty(_InvoiceHeader.DescriptionHeader) Then
                        If _Description_Array.Count = 0 Then
                            _Description_Array.Add(_InvoiceHeader.DescriptionHeader)
                        Else
                            If Not _Description_Array.Contains(_InvoiceHeader.DescriptionHeader) Then _Description_Array.Add(_InvoiceHeader.DescriptionHeader)
                        End If
                    End If
                Next

                For Each _Description As String In _Description_Array
                    Dim _ORI_Invoice_Description_PopUp As New ORI_Invoice_Description_PopUp(_onew.Session)
                    With _ORI_Invoice_Description_PopUp
                        .Description = _Description
                    End With
                    _ORI_Invoice_Description_PopUp_CollectionSource.Add(_ORI_Invoice_Description_PopUp)
                Next
            End If

            e.View = Application.CreateListView("ORI_Invoice_Description_PopUp_ListView", _ORI_Invoice_Description_PopUp_CollectionSource, True)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aORI_Invoice_Popup_DescriptionHeader_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_Invoice_Popup_DescriptionHeader.Execute
        Try
            If e.PopupWindow.View.SelectedObjects.Count > 0 Then
                Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
                Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = TryCast(View.SelectedObjects(0), ORI_Invoice_Popup)
                If _ORI_Invoice_Popup Is Nothing Then Throw New Exception("*Váratlan hiba történt a folyamat megszakadt!")
                If String.IsNullOrEmpty(_ORI_Invoice_Popup.Description_Header) Then
                    _ORI_Invoice_Popup.Description_Header = TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Description_PopUp).Description
                Else
                    _ORI_Invoice_Popup.Description_Header += vbNewLine
                    _ORI_Invoice_Popup.Description_Header += TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Description_PopUp).Description
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub

#End Region
#Region "Sorok"
    Private Sub aToTable_OrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aToTable_OrderIn.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = CType(View.SelectedObjects(0), OrderInHeader)
        If _OrderInHeader IsNot Nothing Then

            '// Termeltetési szerződés ellenőrzés lejárati időre csoportosítva és a szabad mennyiséget szummolva nincs elég keret !!!!
            'If _OrderInHeader.row_APCSheetByProducts IsNot Nothing Then
            '    If _OrderInHeader.row_APCSheetByProducts.FundingAmountAvailableHUF - (_OrderInHeader.row_Products.Products.ListPriceOutHUF * _OrderInHeader.row_QTT) < 0 Then
            '        MsgBox("Nincs ennyi termeltetési keret !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly)
            '        Exit Sub
            '    End If
            'End If

            '/// --------------------------------------------------------------------

            Dim _OrderInRows As OrderInRows = New OrderInRows(_ocur.Session)
            _OrderInRows.AddRows(_OrderInHeader)
            _ocur.CommitChanges()

            Dim ItemToFocus As ViewItem = TryCast(View, DetailView).FindItem("row_Products")
            If ItemToFocus IsNot Nothing Then
                Dim ItemControl As Object
                ItemControl = ItemToFocus.Control
                ItemControl.Focus()
            End If

            _OrderInHeader.row_Products = Nothing
            _OrderInHeader.row_QTT = 0

            If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
                Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
            End If
        End If
    End Sub
    Private Sub aToTableD_OrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aToTableD_OrderIn.Execute
        Dim _ocur As Xpo.XPObjectSpace = View.ObjectSpace
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _OrderInRows_Del_Collection As New ArrayList
        Dim _OrderInRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("OrderInRows")

        For Each _OrderInRows As OrderInRows In _OrderInRows_ListEditor.ListView.SelectedObjects
            If _OrderInRows.QTT_To = 0 And _OrderInRows.QTT_DeliveryNoted = 0 And _
                _OrderInRows.QTT_Invoiced = 0 And _OrderInRows.QTT_Storaged = 0 And _
                _OrderInRows.QTT_Storaged_Will = 0 Then
                _OrderInRows.RemoveRows(_OrderInHeader, _ocur)
                _OrderInRows_Del_Collection.Add(_OrderInRows)
            End If
        Next

        _ocur.Delete(_OrderInRows_Del_Collection)
        _OrderInHeader.Save()
        _ocur.CommitChanges()

        If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        End If
    End Sub

#End Region
#Region "Egyéb sorok"

#End Region
#Region "Továbbrendelt tételek"
    Private Sub aORI_OrderToIncoming_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aORI_OrderToIncoming.CustomizePopupWindowParams
        Try

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aORI_OrderToIncoming_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_OrderToIncoming.Execute
        Try

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub

    Private Sub aORI_OrderToSetCustomerOrder_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aORI_OrderToSetCustomerOrder.CustomizePopupWindowParams
        Try

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aORI_OrderToSetCustomerOrder_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_OrderToSetCustomerOrder.Execute
        Try

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub

#End Region
#Region "Transactions"
    '// Invoice customization
    Private Sub InvoiceCustomization(sender As Object, e As CustomizePopupWindowParamsEventArgs) _
                         Handles aORI_Create_DeliveryInvoice.CustomizePopupWindowParams, _
                                 aOrderInStorageOutDeliveryNoteOutInvoice.CustomizePopupWindowParams, _
                                 aORI_Create_Invoice.CustomizePopupWindowParams, _
                                 aGenerateInvoicefromOrderIn.CustomizePopupWindowParams, _
                                 aOrderInInvoiceAdvanceAsk.CustomizePopupWindowParams, _
                                 aOrderInInvoiceAdvance.CustomizePopupWindowParams, _
                                 aGenerateInvoiceFromOrderInFinal.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
            Dim _ORI_Invoice_Popup As New ORI_Invoice_Popup(_onew.Session)

            '// APCSheet ----------------------------------------------------------------------------------
            Dim _IsAPCSheet As Boolean = False
            Dim _DatePayment As Date
            Dim _PaymentOption As PaymentOption

            If _OrderInHeader.OrderInRows.Count > 0 Then
                For Each _OrderInRows As OrderInRows In _OrderInHeader.OrderInRows
                    If _OrderInRows.APCSheetByProducts IsNot Nothing Then
                        _IsAPCSheet = True
                        _DatePayment = _OrderInRows.APCSheetByProducts.FundingDate
                        Exit For
                    End If
                Next
            End If

            If _OrderInHeader.OrderInRowsOther.Count > 0 And Not (_IsAPCSheet) Then
                For Each _OrderInRowsOther As OrderInRowsOther In _OrderInHeader.OrderInRowsOther
                    If _OrderInRowsOther.APCSheetByProducts IsNot Nothing Then
                        _IsAPCSheet = True
                        _DatePayment = _OrderInRowsOther.APCSheetByProducts.FundingDate
                        Exit For
                    End If
                Next
            End If


            If _IsAPCSheet Then
                _PaymentOption = _onew.FindObject(Of PaymentOption)(CriteriaOperator.Parse("PayMode=1 AND PayDay=0 and ShortName like 'Átutalás%'"))
                If _PaymentOption Is Nothing Then
                    Dim _onew_paymentoption = Application.CreateObjectSpace
                    _PaymentOption = _onew_paymentoption.CreateObject(Of PaymentOption)()
                    With _PaymentOption
                        .PayMode = ePayMode.InTransfer
                        .PayDay = 0
                        .ShortName = "Átutalás, 0 nap"
                    End With
                    _onew_paymentoption.CommitChanges()
                End If
            End If
            '---------------------------------------------------------------------------------------------------------------------------

            With _ORI_Invoice_Popup
                .AlertMessage = GetAlertFromOrderIn(_OrderInHeader, _onew)
                .InvoiceType = _onew.GetObject(_OrderInHeader.OrderInParameters.InvoiceType)
                .StorageMoveType = _onew.GetObject(_OrderInHeader.OrderInParameters.StorageMoveType)
                .IsAPCSheet = _IsAPCSheet
                .CustomersFrom = _onew.GetObject(_OrderInHeader.CustomersFrom)
                .Customers = _onew.GetObject(_OrderInHeader.Customers)
                .DateExecution = GetSQLTime(_onew.Session)
                .CurrencyName = _onew.GetObjectByKey(Of CurrencyName)(_OrderInHeader.OrderInParameters.CurrencyName_Invoice.Oid)
                .DateCreated = GetSQLTime(_onew.Session)
                .DateExecution = _OrderInHeader.DateExecution
                .DatePayment = _DatePayment
                .QualityOption = _onew.GetObject(_OrderInHeader.QualityOption)
                If _IsAPCSheet Then
                    .PaymentOption = _onew.GetObject(_PaymentOption)
                Else
                    .PaymentOption = _onew.GetObject(_OrderInHeader.PaymentOption)
                End If
                Select Case sender.id
                    Case "aORI_Create_DeliveryInvoice"
                        .InvoiceStrategy = eInvoiceStrategy.eDeliveryNoteOutAndInvoice
                    Case "aOrderInStorageOutDeliveryNoteOutInvoice"
                        .InvoiceStrategy = eInvoiceStrategy.eStorageOutAndDeliveryNoteOutAndInvoice
                    Case "aORI_Create_Invoice"
                        .InvoiceStrategy = eInvoiceStrategy.eInvoice
                    Case "aGenerateInvoicefromOrderIn"
                        .InvoiceStrategy = eInvoiceStrategy.eInvoice
                    Case "aOrderInInvoiceAdvanceAsk"
                        .InvoiceStrategy = eInvoiceStrategy.eInvoiceAdvanceAsk
                        .InvoiceType = _onew.GetObject(_OrderInHeader.OrderInParameters.InvoiceTypeAdvanced)
                    Case "aGenerateInvoiceFromOrderInFinal"
                        .InvoiceStrategy = eInvoiceStrategy.eInvoiceFinal
                    Case "aOrderInInvoiceAdvance"
                        .InvoiceStrategy = eInvoiceStrategy.eInvoiceAdvance
                        .InvoiceType = _onew.GetObject(_OrderInHeader.OrderInParameters.InvoiceTypeAdvanced)
                        Dim _PCIDetail_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("PCIDetail")
                        Dim _PCIDetail As PCIDetail = TryCast(_PCIDetail_ListEditor.ListView.SelectedObjects(0), PCIDetail)

                        If _PCIDetail IsNot Nothing Then
                            Select Case _PCIDetail.MainType
                                Case "03-Cassa"
                                    If _PCIDetail.DateExecution.Date = GetSQLTime(_onew.Session).Date Then
                                        .DateCreated = _PCIDetail.DateExecution
                                        .DatePayment = _PCIDetail.DateExecution
                                        .DateExecution = _PCIDetail.DateExecution
                                        .PaymentOption = _onew.FindObject(Of PaymentOption)(CriteriaOperator.Parse("PayMode=0"))
                                    Else
                                        .DateExecution = _PCIDetail.DateExecution
                                        .PaymentOption = _onew.FindObject(Of PaymentOption)(CriteriaOperator.Parse("PayMode=1 AND PayDay=0 and ShortName like 'Átutalás%'"))
                                        .DatePayment = _PCIDetail.DateExecution
                                    End If
                                Case "02-Bank"
                                    .DateExecution = _PCIDetail.DateExecution
                                    .PaymentOption = _onew.FindObject(Of PaymentOption)(CriteriaOperator.Parse("PayMode=1 AND PayDay=0 and ShortName like 'Átutalás%'"))
                                    .DatePayment = _PCIDetail.DateExecution
                                    If TryCast(_PCIDetail.GLRows.GLHeader, GLBank) IsNot Nothing Then
                                        .BankInformation = _onew.FindObject(Of BankInformation)(CriteriaOperator.Parse("LiquidAssests.Oid = ?", TryCast(_PCIDetail.GLRows.GLHeader, GLBank).LiquidAssets_Main.Oid))
                                    End If
                            End Select
                        End If
                End Select



                .ShipmentOption = _onew.GetObject(_OrderInHeader.ShipmentOption)
                .QualityOption = _onew.GetObject(_OrderInHeader.QualityOption)

                If .Customers IsNot Nothing Then
                    If .Customers.ShipmentOption IsNot Nothing And _OrderInHeader.ShipmentOption Is Nothing Then .ShipmentOption = _onew.GetObjectByKey(Of ShipmentOption)(.Customers.ShipmentOption.Oid)
                    If .Customers.Address1 IsNot Nothing Then .TransportAddress = _onew.GetObjectByKey(Of Address)(.Customers.Address1.Oid)
                End If


            End With

            e.View = Application.CreateDetailView(_onew, "ORI_Invoice_Popup_DetailView", False, _ORI_Invoice_Popup)

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    '// DeliveryNoteOut customization
    Private Sub DeliveryNoteOutCustomization(sender As Object, e As CustomizePopupWindowParamsEventArgs) _
                     Handles aOrderInStorageOutDeliveryNoteOut.CustomizePopupWindowParams, _
                             aORI_Create_Delivery.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
            Dim _DeliveryNoteView As DeliveryNoteView = _onew.CreateObject(Of DeliveryNoteView)()
            With _DeliveryNoteView
                Select Case sender.id
                    Case "aOrderInStorageOutDeliveryNoteOut"
                        .StorageNeed = True
                    Case "aORI_Create_Delivery"
                End Select
                .DeliveryNoteOutTypeNeed = True
                .CustomersFrom = _onew.GetObjectByKey(Of CustomersFrom)(_OrderInHeader.CustomersFrom.Oid)
                .Customers = _onew.GetObjectByKey(Of Customers)(_OrderInHeader.Customers.Oid)
                .DateExecution = GetSQLTime(_onew.Session)
                .CurrencyName = _onew.GetObjectByKey(Of CurrencyName)(_OrderInHeader.OrderInParameters.CurrencyName.Oid)
                .ShipmentOption = _onew.GetObject(Of ShipmentOption)(_OrderInHeader.ShipmentOption)
                .QualityOption = _onew.GetObject(Of QualityOption)(_OrderInHeader.QualityOption)
                .StorageMoveType = _onew.GetObject(_OrderInHeader.OrderInParameters.StorageMoveType)
                If .Customers IsNot Nothing Then
                    If .Customers.Address1 IsNot Nothing Then .TransportAddress = _onew.GetObjectByKey(Of Address)(.Customers.Address1.Oid)
                    If .Customers.Address2 IsNot Nothing Then .TransportAddress = _onew.GetObjectByKey(Of Address)(.Customers.Address2.Oid)
                    If .Customers.ShipmentOption IsNot Nothing And _OrderInHeader.ShipmentOption Is Nothing Then .ShipmentOption = _onew.GetObjectByKey(Of ShipmentOption)(.Customers.ShipmentOption.Oid)
                    If .Customers.QualityOption IsNot Nothing And _OrderInHeader.QualityOption Is Nothing Then .QualityOption = _onew.GetObjectByKey(Of QualityOption)(.Customers.QualityOption.Oid)
                End If
            End With

            e.View = Application.CreateDetailView(_onew, "DeliveryNoteView_DetailView", False, _DeliveryNoteView)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub


#Region "DetailView"
    Private Sub aOrderInInvoiceAdvanceAsk_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aOrderInInvoiceAdvanceAsk.Execute
        '//Előlegbekérő készítése bejövő megrendelés alapján
        aGenerateInvoicefromOrderIn_Execute(sender, e)
    End Sub

    Private Sub aOrderInStorageOutDeliveryNoteOut_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aOrderInStorageOutDeliveryNoteOut.Execute
        '//Kitárolás és kiszállítás egyben
        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))
        Dim _StorageComputed As StorageComputed
        Try
            '--==Ellenőrzések==--
            '____________________________________________________________________________________________________________________
            Dim _OrderInHeader As OrderInHeader = _onew.GetObjectByKey(Of OrderInHeader)(TryCast(View.SelectedObjects(0), OrderInHeader).Oid)
            Dim _DeliveryNoteView As DeliveryNoteView = _onew.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), DeliveryNoteView))
            If _OrderInHeader.OrderInRows.Count <= 0 Then
                Throw New Exception(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "NoRowsInOrder"), _
                                String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain"))))
            End If
            Dim _OrderInRows_Collection As New ArrayList

            For Each _OrderInRows As OrderInRows In _OrderInHeader.OrderInRows
                If _OrderInRows.QTT_Process > 0 Then

                    If _OrderInRows.QTT_Process + _OrderInRows.QTT_Storaged + _OrderInRows.QTT_Storaged_Will > _OrderInRows.QTT Then
                        '// Ha meghaladja a kitárolás a rendelteket
                        Throw New Exception(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "TooMutchQuantityInOrderIn"), _OrderInRows.RowIndex.ToString + _
                                String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain"))))
                    End If
                    If _OrderInRows.QTT_Process + _OrderInRows.QTT_DeliveryNoted > _OrderInRows.QTT Then
                        '// Ha meghaladja a kiszállítás a rendelteket
                        Throw New Exception(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "TooMutchQuantityInOrderIn"), _OrderInRows.RowIndex.ToString + _
                                String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain"))))
                    End If
                    '// Szabad készlet ellenőrzése
                    _StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage.Oid=? AND Products.Oid=?", _
                                                                        _DeliveryNoteView.Storage.Oid, _OrderInRows.Products.Oid))
                    If _StorageComputed Is Nothing Then
                        Throw New Exception(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\StorageComputed", "NoProductsInStorage"), _
                                _OrderInRows.RowIndex, _OrderInRows.Products.ShortName, _DeliveryNoteView.Storage.ShortName) + vbNewLine +
                                                     String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                    End If
                    If (_StorageComputed.QTTFree < _OrderInRows.QTT_Process) Then
                        Throw New Exception(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\StorageComputed", "NoProductsInStorage"), _
                            _OrderInRows.RowIndex, _OrderInRows.Products.ShortName, _DeliveryNoteView.Storage.ShortName) + vbNewLine +
                            String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                    End If
                    If _StorageComputed IsNot Nothing Then
                        '// Mimimum ár ellenőrzés
                        If TryCast(Application.Model.Options, IModelOptionsExtender).RequreMinimumPriceCheck Then
                            If _StorageComputed.MimumumPriceOutHUF < _OrderInRows.FinalPriceHUF Then
                                Throw New Exception(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\StorageComputed", "BadMinimumPrice"), _
                                _OrderInRows.RowIndex, _OrderInRows.Products.ShortName, _StorageComputed.MimumumPriceOutHUF, _OrderInRows.FinalPriceHUF) + vbNewLine +
                                String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                            End If
                        End If
                    End If

                    _OrderInRows_Collection.Add(_onew.GetObjectByKey(Of OrderInRows)(_OrderInRows.Oid))
                End If
            Next

            If _OrderInRows_Collection.Count = 0 Then Throw New Exception(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", _
                                                                                                          "NoSelectionforStorageOutandDeliveryNoteOut") + vbNewLine + _
                                                                                                          String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))

            '--==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\SISBusinessExceptions\StorageComputed", "CanNotStorageInByLocking")
                Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
                MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

                Exit Sub
            Else
                '--==Kitárolás==--
                '____________________________________________________________________________________________________________________
                Dim _StorageOutHeader As New StorageOutHeader(_onew.Session)
                With _StorageOutHeader
                    .Active = True
                    .CustomersFrom = _onew.GetObjectByKey(Of CustomersFrom)(_OrderInHeader.CustomersFrom.Oid)
                    .Customers = _onew.GetObjectByKey(Of Customers)(_OrderInHeader.Customers.Oid)
                    .StorageMoveType = _onew.GetObjectByKey(Of StorageMoveType)(_DeliveryNoteView.StorageMoveType.Oid)
                    .Storage = _onew.GetObjectByKey(Of Storage)(_DeliveryNoteView.Storage.Oid)
                End With

                For Each _OrderInRows As OrderInRows In _OrderInRows_Collection
                    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

                    Dim _StorageOutRows As New StorageOutRows(_onew.Session)
                    With _StorageOutRows
                        .StorageOutHeader = _StorageOutHeader
                        .Products = _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)
                        .OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_OrderInRows.Oid)
                    End With
                    Dim _StorageInRows_Collection As New XPCollection(Of StorageInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
                           CriteriaOperator.Parse("StorageInHeader.Storage=? and StorageInHeader.IsEditable=False and StorageInHeader.IsStorno=False and Products=?", _
                           _StorageOutHeader.Storage, _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)))
                    _StorageInRows_Collection.Sorting.Add(New SortProperty("StorageInHeader.CreateDate", DB.SortingDirection.Ascending))

                    _QTT_Mod = _OrderInRows.QTT_Process
                    For Each _StorageInRows As 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
                                _QTT_Mod -= _QTT_Free
                                '------- FIFO sor beszúrása
                                Dim _StorageOutRowsInRows As StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
                                                                                                                            _StorageInRows, _StorageOutRows), True)
                                If _StorageOutRowsInRows IsNot Nothing Then
                                    _StorageOutRowsInRows.QTT += _QTT_Free
                                Else
                                    _StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
                                    _StorageOutRowsInRows.StorageInRows = _StorageInRows
                                    _StorageOutRowsInRows.StorageOutRows = _StorageOutRows
                                    _StorageOutRowsInRows.QTT = _QTT_Free
                                End If

                            Else
                                _StorageInRows.QTT_Out_Will += _QTT_Mod
                                _StorageOutRows.QTT_Will += _QTT_Mod
                                '------- FIFO sor beszúrása
                                Dim _StorageOutRowsInRows As StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
                                                                                                                        _StorageInRows, _StorageOutRows), True)
                                If _StorageOutRowsInRows IsNot Nothing Then
                                    _StorageOutRowsInRows.QTT += _QTT_Mod
                                Else
                                    _StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
                                    _StorageOutRowsInRows.StorageInRows = _StorageInRows
                                    _StorageOutRowsInRows.StorageOutRows = _StorageOutRows
                                    _StorageOutRowsInRows.QTT = _QTT_Mod
                                End If

                                Exit For
                            End If
                        End If
                    Next

                    _StorageOutRows.RowIndex = _StorageOutHeader.StorageOutRows.Count

                    _StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _
                                                                                        _StorageOutHeader.Storage, _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)), True)
                    _QTT_ReservedOut = _StorageComputed.QTTReservedOut
                    Dim _StorageOutRows_Collection_R As New XPCollection(Of StorageOutRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
                                            CriteriaOperator.Parse("QTT_Will>0 and StorageOutHeader.Storage=? and Products=?", _StorageOutHeader.Storage, _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)))
                    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

                '--Kitárolás véglegesítése--
                '____________________________________________________________________________________________________________________

                For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
                    Dim _StorageOutRowsInRows_Collection As 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 New StorageMoveEvents(_onew.Session)
                            _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
                        End If
                    Next

                    _StorageOutRows.QTT += _StorageOutRows.QTT_Will

                    If _StorageOutRows.OrderInRows IsNot Nothing Then
                        Dim _QTT_WillOrug As Double = _StorageOutRows.QTT_Will
                        Dim _OrderInRows As OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_StorageOutRows.OrderInRows.Oid)
                        _OrderInRows.QTT_Storaged += _StorageOutRows.QTT_Will
                        _OrderInRows.QTT_Process = 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
                Next

                _StorageOutHeader.IsEditable = False
                _StorageOutHeader.IsFinalized = True


                '--==Szállítólevél==--
                '____________________________________________________________________________________________________________________

                Dim _DeliveryNoteOutHeader As New DeliveryNoteOutHeader(_onew.Session)
                With _DeliveryNoteOutHeader
                    .CurrencyName = _onew.GetObject(_DeliveryNoteView.CurrencyName)
                    .Customers = _onew.GetObject(_DeliveryNoteView.Customers)
                    .CustomersFrom = _onew.GetObject(_DeliveryNoteView.CustomersFrom)
                    .DateCreated = GetSQLTime(_onew.Session)
                    .DateExecution = _onew.GetObject(_DeliveryNoteView.DateExecution)
                    .Note = _onew.GetObject(_DeliveryNoteView.Note)
                    .QualityOption = _onew.GetObject(_DeliveryNoteView.QualityOption)
                    .ShipmentOption = _onew.GetObject(_DeliveryNoteView.ShipmentOption)
                    .TransportAddress = _onew.GetObject(_DeliveryNoteView.TransportAddress)
                    .DeliveryNoteOutType = _onew.GetObject(_DeliveryNoteView.DeliveryNoteOutType)
                    .IsEditable = False
                End With

                For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
                    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 _DeliveryNoteOutRows As New DeliveryNoteOutRows(_onew.Session)
                        With _DeliveryNoteOutRows
                            .DeliveryNoteOutHeader = _DeliveryNoteOutHeader
                            .RowIndex = _DeliveryNoteOutHeader.DeliveryNoteOutRows.Count
                            .QTT = _StorageOutRowsInRows.QTT
                            .StorageOutRowsInRows = _StorageOutRowsInRows
                        End With
                        Dim _QTT_Will_Orig = _StorageOutRowsInRows.QTT
                        _StorageOutRowsInRows.QTT_To_DeliveryOut += _QTT_Will_Orig
                        _StorageOutRowsInRows.QTT_Will = 0
                        Dim _OrderInRows As OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_StorageOutRowsInRows.StorageOutRows.OrderInRows.Oid)
                        _OrderInRows.QTT_DeliveryNoted += _QTT_Will_Orig
                    Next

                Next

                _onew.CommitChanges()
                Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError"))
        Finally
            LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
        End Try
    End Sub

    Private Sub aOrderInStorageOutDeliveryNoteOutInvoice_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aOrderInStorageOutDeliveryNoteOutInvoice.Execute
        '// Kitárolás + kiszállítás + számla egyben
        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))
        Dim _StorageComputed As StorageComputed
        Try
            '--==Ellenőrzések==--
            '____________________________________________________________________________________________________________________
            Dim _OrderInHeader As OrderInHeader = _onew.GetObjectByKey(Of OrderInHeader)(TryCast(View.SelectedObjects(0), OrderInHeader).Oid)
            Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = _onew.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup))
            If _OrderInHeader.OrderInRows.Count <= 0 Then Throw New Exception("*A megrendelésnek nincs egyetlen sora sem!")
            Dim _OrderInRows_Collection As New ArrayList

            For Each _OrderInRows As OrderInRows In _OrderInHeader.OrderInRows
                If _OrderInRows.QTT_Process > 0 Then
                    If _OrderInRows.QTT_Process + _OrderInRows.QTT_Storaged + _OrderInRows.QTT_Storaged_Will > _OrderInRows.QTT Then
                        '// Ha meghaladja a kitárolás a rendelteket
                        MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "TooMutchQuantityInOrderIn"), _
                                                                            _OrderInRows.RowIndex, _
                                                                            _OrderInRows.QTT_Process + _OrderInRows.QTT_Storaged + _OrderInRows.QTT_Storaged_Will, _
                                                                            _OrderInRows.QTT), _
                               MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                               String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                        Exit Sub
                    End If
                    If _OrderInRows.QTT_Process + _OrderInRows.QTT_DeliveryNoted > _OrderInRows.QTT Then
                        '// Ha meghaladja a kiszállítás a rendelteket
                        MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "TooMutchQuantityInOrderIn"), _
                                                                            _OrderInRows.RowIndex, _
                                                                            _OrderInRows.QTT_Process + _OrderInRows.QTT_DeliveryNoted, _
                                                                            _OrderInRows.QTT), _
                               MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                               String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                        Exit Sub
                    End If
                    If _OrderInRows.QTT_Process + _OrderInRows.QTT_Invoiced > _OrderInRows.QTT Then
                        '// Ha meghaladja a számlázás a rendelteket
                        MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "TooMutchQuantityInOrderIn"), _
                                                                            _OrderInRows.RowIndex, _
                                                                            _OrderInRows.QTT_Process + _OrderInRows.QTT_Invoiced, _
                                                                            _OrderInRows.QTT), _
                               MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                               String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                        Exit Sub
                    End If
                    '// Szabad készlet ellenőrzése
                    _StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? AND Products=?", _
                                                                        _onew.GetObjectByKey(Of Storage)(_ORI_Invoice_Popup.Storage.Oid), _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)))
                    If _StorageComputed Is Nothing Then
                        MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\StorageComputed", "NoProductsInStorage"), _
                                                                            _OrderInRows.RowIndex, _
                                                                            _OrderInRows.Products.ShortName, _
                                                                            _ORI_Invoice_Popup.Storage.ShortName), _
                               MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                               String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                        Exit Sub
                    End If
                    If (_StorageComputed.QTTFree < _OrderInRows.QTT_Process) Then
                        MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\StorageComputed", "NoProductsInStorage"), _
                                                                            _OrderInRows.RowIndex, _
                                                                            _OrderInRows.Products.ShortName, _
                                                                            _ORI_Invoice_Popup.Storage.ShortName), _
                               MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                               String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                        Exit Sub
                    End If
                    If _StorageComputed IsNot Nothing Then
                        '// Mimimum ár ellenőrzés
                        If TryCast(Application.Model.Options, IModelOptionsExtender).RequreMinimumPriceCheck Then
                            If _StorageComputed.MimumumPriceOutHUF < _OrderInRows.FinalPriceHUF Then
                                MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\StorageComputed", "BadMinimumPrice"), _
                                                                            _OrderInRows.RowIndex, _
                                                                            _OrderInRows.Products.ShortName, _
                                                                            _StorageComputed.MimumumPriceOutHUF, _
                                                                            _OrderInRows.FinalPriceHUF), _
                                       MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                                       String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                                Exit Sub
                            End If
                        End If
                    End If

                    _OrderInRows_Collection.Add(_onew.GetObjectByKey(Of OrderInRows)(_OrderInRows.Oid))
                End If
            Next

            If _OrderInRows_Collection.Count = 0 Then
                MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "NoSelectionforStorageOutandDeliveryNoteOut")), _
                                       MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                                       String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                Exit Sub
            End If

            '--==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\SISBusinessExceptions\StorageComputed", "CanNotStorageOutByLocking")
                Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
                MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

                Exit Sub
            Else

                '   RecalculateDEV(_ORI_Invoice_Popup, _OrderInHeader)

                '--==Kitárolás==--
                '____________________________________________________________________________________________________________________
                Dim _StorageOutHeader As New StorageOutHeader(_onew.Session)
                With _StorageOutHeader
                    .Active = True
                    .CustomersFrom = _onew.GetObjectByKey(Of CustomersFrom)(_OrderInHeader.CustomersFrom.Oid)
                    .Customers = _onew.GetObjectByKey(Of Customers)(_OrderInHeader.Customers.Oid)
                    .StorageMoveType = _onew.GetObjectByKey(Of StorageMoveType)(_ORI_Invoice_Popup.StorageMoveType.Oid)
                    .Storage = _onew.GetObjectByKey(Of Storage)(_ORI_Invoice_Popup.StorageMoveType.Storage.Oid)
                End With

                For Each _OrderInRows As OrderInRows In _OrderInRows_Collection
                    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

                    Dim _StorageOutRows As New StorageOutRows(_onew.Session)
                    With _StorageOutRows
                        .StorageOutHeader = _StorageOutHeader
                        .Products = _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)
                        .OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_OrderInRows.Oid)
                    End With
                    Dim _StorageInRows_Collection As New XPCollection(Of StorageInRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
                           CriteriaOperator.Parse("StorageInHeader.Storage=? and StorageInHeader.IsEditable=False and StorageInHeader.IsStorno=False and Products=?", _
                           _StorageOutHeader.Storage, _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)))
                    _StorageInRows_Collection.Sorting.Add(New SortProperty("StorageInHeader.CreateDate", DB.SortingDirection.Ascending))

                    _QTT_Mod = _OrderInRows.QTT_Process
                    For Each _StorageInRows As 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
                                Dim _StorageOutRowsInRows As StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
                                                                                                                            _StorageInRows, _StorageOutRows), True)
                                If _StorageOutRowsInRows IsNot Nothing Then
                                    _StorageOutRowsInRows.QTT += _QTT_Free
                                Else
                                    _StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
                                    _StorageOutRowsInRows.StorageInRows = _StorageInRows
                                    _StorageOutRowsInRows.StorageOutRows = _StorageOutRows
                                    _StorageOutRowsInRows.QTT = _QTT_Free
                                End If

                            Else
                                _StorageInRows.QTT_Out_Will += _QTT_Mod
                                _StorageOutRows.QTT_Will += _QTT_Mod
                                '------- FIFO sor beszúrása
                                Dim _StorageOutRowsInRows As StorageOutRowsInRows = _onew.FindObject(Of StorageOutRowsInRows)(CriteriaOperator.Parse("StorageInRows=? and StorageOutRows=?", _
                                                                                                                        _StorageInRows, _StorageOutRows), True)
                                If _StorageOutRowsInRows IsNot Nothing Then
                                    _StorageOutRowsInRows.QTT += _QTT_Mod
                                Else
                                    _StorageOutRowsInRows = New StorageOutRowsInRows(_onew.Session)
                                    _StorageOutRowsInRows.StorageInRows = _StorageInRows
                                    _StorageOutRowsInRows.StorageOutRows = _StorageOutRows
                                    _StorageOutRowsInRows.QTT = _QTT_Mod
                                End If

                                Exit For
                            End If
                        End If
                    Next

                    _StorageOutRows.RowIndex = _StorageOutHeader.StorageOutRows.Count

                    _StorageComputed = _onew.FindObject(Of StorageComputed)(CriteriaOperator.Parse("Storage=? and Products=?", _
                                                                                        _StorageOutHeader.Storage, _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)), True)
                    _QTT_ReservedOut = _StorageComputed.QTTReservedOut
                    Dim _StorageOutRows_Collection_R As New XPCollection(Of StorageOutRows)(PersistentCriteriaEvaluationBehavior.InTransaction, _onew.Session, _
                                            CriteriaOperator.Parse("QTT_Will>0 and StorageOutHeader.Storage=? and Products=?", _StorageOutHeader.Storage, _onew.GetObjectByKey(Of Products)(_OrderInRows.Products.Oid)))
                    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

                '--Kitárolás véglegesítése--
                '____________________________________________________________________________________________________________________

                For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
                    Dim _StorageOutRowsInRows_Collection As 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 New StorageMoveEvents(_onew.Session)
                            _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
                        End If
                    Next

                    _StorageOutRows.QTT += _StorageOutRows.QTT_Will

                    If _StorageOutRows.OrderInRows IsNot Nothing Then
                        Dim _QTT_WillOrug As Double = _StorageOutRows.QTT_Will
                        Dim _OrderInRows As OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_StorageOutRows.OrderInRows.Oid)
                        _OrderInRows.QTT_Storaged += _StorageOutRows.QTT_Will
                        _OrderInRows.QTT_Process = 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
                Next

                _StorageOutHeader.IsEditable = False
                _StorageOutHeader.IsFinalized = True


                '--==Szállítólevél==--
                '____________________________________________________________________________________________________________________

                Dim _DeliveryNoteOutHeader As New DeliveryNoteOutHeader(_onew.Session)
                With _DeliveryNoteOutHeader
                    .CurrencyName = _onew.GetObject(_ORI_Invoice_Popup.CurrencyName)
                    .Customers = _onew.GetObject(_ORI_Invoice_Popup.Customers)
                    .CustomersFrom = _onew.GetObject(_ORI_Invoice_Popup.CustomersFrom)
                    .DateCreated = GetSQLTime(_onew.Session)
                    .DateExecution = _onew.GetObject(_ORI_Invoice_Popup.DateExecution)
                    .Note = _onew.GetObject(_ORI_Invoice_Popup.Description)
                    .QualityOption = _onew.GetObject(_ORI_Invoice_Popup.QualityOption)
                    .ShipmentOption = _onew.GetObject(_ORI_Invoice_Popup.ShipmentOption)
                    .TransportAddress = _onew.GetObject(_ORI_Invoice_Popup.TransportAddress)
                    .DeliveryNoteOutType = _onew.GetObject(_ORI_Invoice_Popup.DeliveryNoteOutType)
                End With

                For Each _StorageOutRows As StorageOutRows In _StorageOutHeader.StorageOutRows
                    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 _DeliveryNoteOutRows As New DeliveryNoteOutRows(_onew.Session)
                        With _DeliveryNoteOutRows
                            .DeliveryNoteOutHeader = _DeliveryNoteOutHeader
                            .RowIndex = _DeliveryNoteOutHeader.DeliveryNoteOutRows.Count
                            .QTT = _StorageOutRowsInRows.QTT
                            .StorageOutRowsInRows = _StorageOutRowsInRows
                        End With
                        Dim _QTT_Will_Orig = _StorageOutRowsInRows.QTT
                        _StorageOutRowsInRows.QTT_To_DeliveryOut += _QTT_Will_Orig
                        _StorageOutRowsInRows.QTT_Will = 0
                        Dim _OrderInRows As OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_StorageOutRowsInRows.StorageOutRows.OrderInRows.Oid)
                        _OrderInRows.QTT_DeliveryNoted += _QTT_Will_Orig
                    Next

                Next
                '--==Szállítólevél véglegesítés==--
                '____________________________________________________________________________________________________________________
                'For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutHeader.DeliveryNoteOutRows
                '    _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_DeliveryNoted += _DeliveryNoteOutRows.QTT
                'Next
                _DeliveryNoteOutHeader.IsEditable = False

                '--==Számla==--
                '____________________________________________________________________________________________________________________
                Dim _InvoiceHeader As New InvoiceHeader(_onew.Session)
                With _InvoiceHeader
                    .InvoiceType = _onew.GetObjectByKey(Of InvoiceType)(_ORI_Invoice_Popup.InvoiceType.Oid)
                    .CustomersFrom = _onew.GetObjectByKey(Of CustomersFrom)(_ORI_Invoice_Popup.CustomersFrom.Oid)
                    .Customers = _onew.GetObjectByKey(Of Customers)(_ORI_Invoice_Popup.Customers.Oid)
                    .DateCreated = _ORI_Invoice_Popup.DateCreated
                    .DateExecution = _ORI_Invoice_Popup.DateExecution
                    .PaymentOption = _onew.GetObjectByKey(Of PaymentOption)(_ORI_Invoice_Popup.PaymentOption.Oid)
                    .DatePaymentMode = .PaymentOption.DatePaymentMode 'Javítva lett
                    .ShipmentOption = _onew.GetObjectByKey(Of ShipmentOption)(_ORI_Invoice_Popup.ShipmentOption.Oid)
                    .CurrencyName = _onew.GetObjectByKey(Of CurrencyName)(_ORI_Invoice_Popup.CurrencyName.Oid)
                    If .PaymentOption.PayMode = ePayMode.InCash Then
                    Else
                        .BankInformation = _onew.GetObjectByKey(Of BankInformation)(_ORI_Invoice_Popup.BankInformation.Oid)
                    End If

                    .Description = _ORI_Invoice_Popup.Description

                    InvoiceHeaderSavedSettings(_InvoiceHeader)

                    If .PaymentOption.PayMode = ePayMode.InContinuous Then
                        .DatePayment = _InvoiceHeader.DateExecution
                    Else
                        If _ORI_Invoice_Popup.IsAPCSheet Then
                            .DatePayment = _ORI_Invoice_Popup.DatePayment
                        Else
                            If .PaymentOption.DatePaymentMode = eDatePaymentMode.eDateCreated Then
                                .DatePayment = _InvoiceHeader.DateCreated.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                            Else
                                .DatePayment = _InvoiceHeader.DateExecution.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                            End If
                        End If
                    End If
                    If .InvoiceType.NumberGeneratorProforma IsNot Nothing Then
                        _InvoiceHeader.DocumentNumberProforma = _InvoiceHeader.InvoiceType.NumberGeneratorProforma.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGeneratorProforma)
                    End If

                    If .CurrencyName.ShortName <> "HUF" Then
                        .CurrencyRate = _ORI_Invoice_Popup.CurrencyRate
                    End If
                End With

                '--==Végszámla / Proforma számal ==--
                '____________________________________________________________________________________________________________________
                If _ORI_Invoice_Popup.IsFinalInvoice Then
                    _InvoiceHeader.IsEditable = False
                    _InvoiceHeader.IsProforma = False
                    _InvoiceHeader.IsStorno = False

                    _InvoiceHeader.ConnectInfo = _InvoiceHeader.InvoiceType.NumberGenerator.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGenerator)
                    _InvoiceHeader.DocumentNumber = _InvoiceHeader.ConnectInfo

                    If _ORI_Invoice_Popup.PaymentOption.PayMode = ePayMode.InCash Then
                        If _ORI_Invoice_Popup.IsLiquidAssets Then

                        End If
                    End If
                Else
                    _InvoiceHeader.IsEditable = False
                    _InvoiceHeader.IsProforma = True
                    _InvoiceHeader.IsStorno = False

                    _InvoiceHeader.ConnectInfo = _InvoiceHeader.InvoiceType.NumberGeneratorProforma.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGeneratorProforma)
                End If


                For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutHeader.DeliveryNoteOutRows
                    Dim _InvoiceRows As New InvoiceRows(_onew.Session)
                    With _InvoiceRows
                        .InvoiceHeader = _InvoiceHeader
                        .RowIndex = _InvoiceHeader.InvoiceRows.Count
                        .OrderInRows = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows)
                        .InvoiceRowtype = eInvoiceRowType.FromOrder
                        .DiscountPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceDEV
                        .DiscountPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceHUF
                        .ListPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceDEV
                        .ListPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceHUF
                        .QTT = _DeliveryNoteOutRows.QTT
                        .QualityOption = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.QualityOption)
                        .ShortName = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ShortName
                        '_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ProductNumber(+vbNewLine + _
                        '                         _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ShortName)
                        .Units = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.Units)
                        .VAT = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.VAT)
                        .Description = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Description
                        .CustomsTariffs = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.CustomsTariff)
                        .DeliveryNoteOutRows = _onew.GetObject(_DeliveryNoteOutRows)
                    End With

                    Dim _QTT_Will_Orig As Double = _DeliveryNoteOutRows.QTT
                    _DeliveryNoteOutRows = _DeliveryNoteOutRows
                    _DeliveryNoteOutRows.QTT_Invoiced += _QTT_Will_Orig
                    _DeliveryNoteOutRows.QTT_Will = 0
                    Dim _OrderInRows As OrderInRows = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows)
                    _OrderInRows.QTT_Invoiced += _QTT_Will_Orig
                Next

                If _OrderInHeader.OrderInRowsOther.Count > 0 Then
                    For Each _OrderInRowsOther As OrderInRowsOther In _OrderInHeader.OrderInRowsOther
                        Dim _InvoiceRows As New InvoiceRows(_onew.Session)
                        With _InvoiceRows

                            .InvoiceHeader = _InvoiceHeader
                            .OrderInRowsOther = _OrderInRowsOther
                            .QTT = _OrderInRowsOther.QTT_Process
                            _OrderInRowsOther.QTT_Invoiced += _OrderInRowsOther.QTT_Process
                            If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                                .DiscountPriceHUF = _OrderInRowsOther.DiscountPriceHUF
                                .ListPriceHUF = _OrderInRowsOther.ListPriceHUF
                            Else
                                .DiscountPriceDEV = _OrderInRowsOther.DiscountPriceDEV
                                .DiscountPriceHUF = _OrderInRowsOther.DiscountPriceDEV * _ORI_Invoice_Popup.CurrencyRate
                                .ListPriceDEV = _OrderInRowsOther.ListPriceDEV
                                .ListPriceHUF = _OrderInRowsOther.ListPriceDEV * _ORI_Invoice_Popup.CurrencyRate
                            End If

                            .InvoiceRowtype = eInvoiceRowType.FromOrder
                            .VAT = _OrderInRowsOther.VAT
                            .Units = _OrderInRowsOther.Units
                            .UniqueObjects = _OrderInRowsOther.UniqueObjects
                            .CostHolder = _OrderInRowsOther.CostHolder
                            .CostPlace = _OrderInRowsOther.CostPlace
                            .QualityOption = _OrderInRowsOther.QualityOption
                            .Description = _OrderInRowsOther.Description
                            .ShortName = _OrderInRowsOther.ShortName
                            .CustomsTariffs = _OrderInRowsOther.CustomsTariffs
                            .RowIndex = _InvoiceHeader.InvoiceRows.Count
                        End With
                    Next
                End If

                _onew.CommitChanges()
                _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _onew)
                _onew.CommitChanges()
                Frame.GetController(Of RefreshController).RefreshAction.DoExecute()

                '--==Nyomtatványok==--
                '____________________________________________________________________________________________________________________

                If _DeliveryNoteOutHeader.DeliveryNoteOutType.ReportData IsNot Nothing Then
                    Dim _DeliveryNoteOutReports As ReportData = _onew.FindObject(Of ReportData)(CriteriaOperator.Parse("Oid=?", _DeliveryNoteOutHeader.DeliveryNoteOutType.ReportData.Oid), True)
                    If _DeliveryNoteOutReports IsNot Nothing Then _
                        Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_DeliveryNoteOutReports, CriteriaOperator.Parse("DeliveryNoteOutHeader.DocumentNumber =?", _DeliveryNoteOutHeader.DocumentNumber), True)
                End If
                Dim _InvoiceHeaderReports As ReportData
                If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                    _InvoiceHeaderReports = _onew.FindObject(Of ReportData)(CriteriaOperator.Parse("Oid=?", _InvoiceHeader.InvoiceType.ReportData.Oid), True)
                Else
                    _InvoiceHeaderReports = _onew.FindObject(Of ReportData)(CriteriaOperator.Parse("Oid=?", _InvoiceHeader.InvoiceType.ReportData_DEV.Oid), True)
                End If

                If _InvoiceHeaderReports IsNot Nothing Then _
                    Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_InvoiceHeaderReports, CriteriaOperator.Parse("InvoiceHeader.Oid = ?", _InvoiceHeader.Oid), True)

            End If

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        Finally
            LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
        End Try
    End Sub

    Private Sub aGenerateInvoicefromOrderIn_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.PopupWindowShowActionExecuteEventArgs) Handles aGenerateInvoicefromOrderIn.Execute
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _InvoiceHeader As InvoiceHeader = _ocur.CreateObject(Of InvoiceHeader)()
        Dim _OrderInHeader As OrderInHeader = _ocur.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
        Dim _CurrencyRate As Double = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyRate)
        Dim _NG As NumberGenerator

        On Error GoTo CheckError

        ' --- Ellenőrzés, hogy kell-e engedély ! --------------------------------------------------------------------------------------------------
        If _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).PaymentOption).PayMode <> ePayMode.InCash Then
            If _OrderInHeader.SubjectToApproval(_OrderInHeader, _ocur) And _OrderInHeader.PermissionAllowed = False Then
                MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInHeader", "PermissionNotAllowedToCreateInvoice")), _
                                       MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, _
                                       String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                Exit Sub
            End If
        End If


        ' ---- FEJLÉC ADATOK MEGADÁSA -------------------------------------------------------------------------------------------------------------


        _InvoiceHeader.IsProforma = True
        _InvoiceHeader.IsEditable = False
        _InvoiceHeader.CustomersFrom = _OrderInHeader.CustomersFrom
        _InvoiceHeader.Customers = _OrderInHeader.Customers
        _InvoiceHeader.InvoiceType = _OrderInHeader.OrderInParameters.InvoiceType

        If _InvoiceHeader.InvoiceType.NumberGeneratorProforma IsNot Nothing Then
            _NG = _InvoiceHeader.InvoiceType.NumberGeneratorProforma
            _InvoiceHeader.DocumentNumberProforma = _NG.GetNewNumber(_NG)
        End If

        _InvoiceHeader.DateCreated = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DateCreated)
        _InvoiceHeader.DateExecution = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DateExecution)
        _InvoiceHeader.Description = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).Description)
        _InvoiceHeader.DescriptionHeader = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).Description_Header)
        _InvoiceHeader.BankInformation = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).BankInformation)


        _InvoiceHeader.CurrencyName = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyName)
        _InvoiceHeader.CurrencyRate = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyRate)

        _InvoiceHeader.PaymentOption = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).PaymentOption)
        _InvoiceHeader.DatePaymentMode = _InvoiceHeader.PaymentOption.DatePaymentMode 'Javítva lett
        If _InvoiceHeader.PaymentOption.DatePaymentMode = eDatePaymentMode.eDateCreated Then
            _InvoiceHeader.DatePayment = _InvoiceHeader.DateCreated.AddDays(_InvoiceHeader.PaymentOption.PayDay)
        Else
            _InvoiceHeader.DatePayment = _InvoiceHeader.DateExecution.AddDays(_InvoiceHeader.PaymentOption.PayDay)
        End If

        If _OrderInHeader.OrderInParameters.IsAPCSheet Then _InvoiceHeader.DatePayment = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DatePayment)

        '-- Próbaszámla miatt el kell menteni a tényleges adatokat --------------------------------------------------------
        _InvoiceHeader.Saved_Customers_Name = _OrderInHeader.Customers.Name.ToString
        _InvoiceHeader.Saved_Customers_Address_Country = _OrderInHeader.Customers.Address1.Country.ToString
        _InvoiceHeader.Saved_Customers_Address_ZipPostal = _OrderInHeader.Customers.Address1.ZipPostal.ToString
        _InvoiceHeader.Saved_Customers_Address_Street = _OrderInHeader.Customers.Address1.Street.ToString
        _InvoiceHeader.Saved_Customers_Address_City = _OrderInHeader.Customers.Address1.City.ToString
        _InvoiceHeader.Saved_Customers_Address_StateProvince = _OrderInHeader.Customers.Address1.StateProvince.ToString
        _InvoiceHeader.Saved_Customers_VATNumber = _OrderInHeader.Customers.VATNumber.ToString
        _InvoiceHeader.Saved_Customers_VATNumberEU = _OrderInHeader.Customers.VATNumberEU.ToString

        _InvoiceHeader.Saved_CustomersFrom_Name = _OrderInHeader.CustomersFrom.Name.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_ZipPostal = _OrderInHeader.CustomersFrom.Address1.ZipPostal.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_Street = _OrderInHeader.CustomersFrom.Address1.Street.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_City = _OrderInHeader.CustomersFrom.Address1.City.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_StateProvince = _OrderInHeader.CustomersFrom.Address1.StateProvince.ToString
        _InvoiceHeader.Saved_CustomersFrom_VATNumber = _OrderInHeader.CustomersFrom.VATNumber.ToString
        _InvoiceHeader.Saved_CustomersFrom_VATNumberEU = _OrderInHeader.CustomersFrom.VATNumberEU.ToString

        _InvoiceHeader.Saved_CustomersFrom_Bank_ShortName = _InvoiceHeader.BankInformation.FullBankAccount.ToString
        _InvoiceHeader.Saved_CustomersFrom_Bank_IBAN = _InvoiceHeader.BankInformation.IBAN.ToString
        _InvoiceHeader.Saved_CustomersFrom_Bank_SWIFT = _InvoiceHeader.BankInformation.SWIFT.ToString
        _InvoiceHeader.Saved_CustomersFrom_Bank_AccountNumber = _InvoiceHeader.BankInformation.AccountNumber.ToString

        _InvoiceHeader.Save()
        ' ---- FEJLÉC ADATOK MEGADÁSÁNAK VÉGE ----------------------------------------------------------------------------------------------------

        '------ A fejléchez tartozó sorok (termék és egyéb típusok) rendezése sorindex alapján ---------------
        _OrderInHeader.OrderInRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
        _OrderInHeader.OrderInRowsOther.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
        '-----------------------------------------------------------------------------------------------------

        ' A fejléchez tartozó sorok átadása -----------------------------------------------------------------
        Dim _InvoiceRows As InvoiceRows
        Dim _OrderInRows As OrderInRows
        Dim _OrderInRowsOther As OrderInRowsOther
        Dim i As Int16 = 0

        '----------------------------- Átadjuk az összes termék típusú sort --------------------------------------
        For Each _OrderInRows In _OrderInHeader.OrderInRows
            If _OrderInRows.QTT_Process > 0 Then
                If _OrderInRows.QTT - (_OrderInRows.QTT_Process + _OrderInRows.QTT_Invoiced) >= 0 Then
                    _InvoiceRows = _ocur.CreateObject(Of InvoiceRows)()
                    _InvoiceRows.InvoiceHeader = _InvoiceHeader
                    _InvoiceRows.OrderInRows = _OrderInRows
                    _InvoiceRows.QTT = _OrderInRows.QTT_Process
                    _OrderInRows.QTT_Invoiced += _OrderInRows.QTT_Process
                    If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                        _InvoiceRows.DiscountPriceHUF = _OrderInRows.DiscountPriceHUF
                        _InvoiceRows.ListPriceHUF = _OrderInRows.ListPriceHUF
                    Else
                        _InvoiceRows.DiscountPriceDEV = _OrderInRows.DiscountPriceDEV
                        _InvoiceRows.DiscountPriceHUF = _OrderInRows.DiscountPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                        _InvoiceRows.ListPriceDEV = _OrderInRows.ListPriceDEV
                        _InvoiceRows.ListPriceHUF = _OrderInRows.ListPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                    End If

                    _InvoiceRows.InvoiceRowtype = eInvoiceRowType.FromOrder
                    _InvoiceRows.VAT = _OrderInRows.VAT
                    _InvoiceRows.Units = _OrderInRows.Products.Units
                    _InvoiceRows.ShortName = _OrderInRows.Products.ShortName
                    _InvoiceRows.Description = _OrderInRows.Products.Description
                    _InvoiceRows.CustomsTariffs = _OrderInRows.Products.CustomsTariff
                    If _OrderInHeader.OrderInParameters IsNot Nothing Then
                        If _OrderInHeader.OrderInParameters.Controlling_Rows_Default IsNot Nothing Then
                            _InvoiceRows.Controlling = _OrderInHeader.OrderInParameters.Controlling_Rows_Default
                        End If
                    End If
                    _InvoiceRows.RowIndex = i
                    i += 1
                End If
            End If
        Next
        '----------------------------- Átadjuk az összes egyéb típusú sort --------------------------------------
        For Each _OrderInRowsOther In _OrderInHeader.OrderInRowsOther
            If _OrderInRowsOther.QTT_Process <> 0 Then
                If _OrderInRowsOther.QTT - (_OrderInRowsOther.QTT_Process + _OrderInRowsOther.QTT_Invoiced) >= 0 Then
                    _InvoiceRows = _ocur.CreateObject(Of InvoiceRows)()
                    _InvoiceRows.InvoiceHeader = _InvoiceHeader
                    _InvoiceRows.OrderInRowsOther = _OrderInRowsOther
                    _InvoiceRows.QTT = _OrderInRowsOther.QTT_Process
                    _OrderInRowsOther.QTT_Invoiced += _OrderInRowsOther.QTT_Process
                    If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                        _InvoiceRows.DiscountPriceHUF = _OrderInRowsOther.DiscountPriceHUF
                        _InvoiceRows.ListPriceHUF = _OrderInRowsOther.ListPriceHUF
                    Else
                        _InvoiceRows.DiscountPriceDEV = _OrderInRowsOther.DiscountPriceDEV
                        _InvoiceRows.DiscountPriceHUF = _OrderInRowsOther.DiscountPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                        _InvoiceRows.ListPriceDEV = _OrderInRowsOther.ListPriceDEV
                        _InvoiceRows.ListPriceHUF = _OrderInRowsOther.ListPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                    End If

                    _InvoiceRows.InvoiceRowtype = eInvoiceRowType.FromOrder
                    _InvoiceRows.VAT = _OrderInRowsOther.VAT
                    _InvoiceRows.Units = _OrderInRowsOther.Units
                    _InvoiceRows.UniqueObjects = _OrderInRowsOther.UniqueObjects
                    _InvoiceRows.CostHolder = _OrderInRowsOther.CostHolder
                    _InvoiceRows.CostPlace = _OrderInRowsOther.CostPlace
                    _InvoiceRows.QualityOption = _OrderInRowsOther.QualityOption
                    _InvoiceRows.Description = _OrderInRowsOther.Description
                    _InvoiceRows.ShortName = _OrderInRowsOther.ShortName
                    _InvoiceRows.CustomsTariffs = _OrderInRowsOther.CustomsTariffs
                    If _OrderInHeader.OrderInParameters IsNot Nothing Then
                        If _OrderInHeader.OrderInParameters.Controlling_OtherRows_Default IsNot Nothing Then
                            _InvoiceRows.Controlling = _OrderInHeader.OrderInParameters.Controlling_OtherRows_Default
                        End If
                    End If
                    _InvoiceRows.RowIndex = i

                    i += 1
                End If
            End If
        Next

        If _OrderInHeader.OrderInRows.Count = 0 And _OrderInHeader.OrderInRowsOther.Count = 0 Then
            ' --------------------- TESZT MIATT!!! ------------------------------------------------------------------------------------
            Throw New UserFriendlyException("Nincs egy sor sem a kiválasztott bejövő megrendelés fejlécén, így nem készül el a számla!")
        End If

        _ocur.CommitChanges()
        _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _ocur)
        _ocur.CommitChanges()

        Exit Sub
CheckError:
        If Err.Number = 91 Then Resume Next
        If Err.Number = 13 Then Resume Next
        If Err.Number = 5 Then Throw New UserFriendlyException(Err.Description)

    End Sub
#End Region
#Region "Kitárolások fül"
    Private Sub aORI_Storno_StorageOut_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aORI_Storno_StorageOut.Execute
        '// Kitárolás stornó

        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
            '   Ellenőrzések
            '__________________________________________________________________________
            Dim _OrderInHeader As OrderInHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
            If _OrderInHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            Dim _StorageOutRowsInRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("StorageOutRowsInRows")
            If _StorageOutRowsInRows_ListEditor Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            If _StorageOutRowsInRows_ListEditor.ListView.SelectedObjects.Count = 0 Then Throw New Exception("*nincs kijelölve egyetlen kitárolási sor sem!")

            Dim _StorageOutRowsInRowsError As New ArrayList
            For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_ListEditor.ListView.SelectedObjects
                If _StorageOutRowsInRows.QTT_To_DeliveryOut > 0 Then _StorageOutRowsInRowsError.Add(_StorageOutRowsInRows)
                If _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.IsStorno = True Then _StorageOutRowsInRowsError.Add(_StorageOutRowsInRows)
            Next

            If _StorageOutRowsInRowsError.Count > 0 Then
                Dim _ErrorMessage As String = "Probléma merült fel a következő kitárolásokkal:" + vbNewLine
                For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRowsError
                    _ErrorMessage += _StorageOutRowsInRows.StorageOutRows.RowIndex.ToString + " " + _StorageOutRowsInRows.StorageOutRows.Products.ShortName _
                        + " " + _StorageOutRowsInRows.StorageOutRows.QTT.ToString + vbNewLine
                Next
                _ErrorMessage += "Kérem, ellenőrizze!"

                Throw New Exception(_ErrorMessage)
            End If

            '   Kitárolás fejléc kollekció
            '__________________________________________________________________________
            Dim _StorageOutHeader_Collection As New ArrayList

            For Each _StorageOutRowsInRows As StorageOutRowsInRows In _StorageOutRowsInRows_ListEditor.ListView.SelectedObjects
                If _StorageOutHeader_Collection.Count = 0 Then
                    _StorageOutHeader_Collection.Add(_StorageOutRowsInRows.StorageOutRows.StorageOutHeader)
                Else
                    Dim _IsNeed As Boolean = True
                    For Each _StorageOutHeader As StorageOutHeader In _StorageOutHeader_Collection
                        If _StorageOutHeader.Oid = _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.Oid Then _IsNeed = False
                    Next

                    If _IsNeed Then _StorageOutHeader_Collection.Add(_StorageOutRowsInRows.StorageOutRows.StorageOutHeader)
                End If
            Next

            '   Kitárolás(ok) stornózása
            '__________________________________________________________________________
            If _StorageOutHeader_Collection.Count > 0 Then
                '   StorageComputed 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\SISBusinessExceptions\StorageComputed", "CanNotStorageInByLocking")
                    Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
                    MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

                    Exit Sub
                Else
                    For Each _StorageOutHeader As StorageOutHeader In _StorageOutHeader_Collection
                        Dim _StorageOutHeaderNew As New StorageOutHeader(_onew.Session)
                        With _StorageOutHeaderNew
                            .ConnectInfo = _StorageOutHeader.DocumentNumber
                            .Storage = _onew.GetObject(_StorageOutHeader.Storage)
                            .StorageMoveType = _onew.GetObject(_StorageOutHeader.StorageMoveType)
                            .CustomersFrom = _onew.GetObject(_StorageOutHeader.CustomersFrom)
                            .Customers = _onew.GetObject(_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 = _onew.GetObject(_StorageOutRows.StorageComputed)
                                .OrderInRows = _onew.GetObject(_StorageOutRows.OrderInRows)
                                .QTT = _StorageOutRows.QTT * (-1)
                                .QTT_Will = 0
                                .QTT_To_DeliveryOut = 0
                                .Products = _onew.GetObject(_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=?", _onew.GetObject(_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)))
                                _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 = _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.StorageOutStorno
                                _StorageMoveEvents.ExecutionDate = GetSQLTime(_onew.Session)

                                _StorageOutRows.QTT = 0
                            Next
                        Next
                    Next
                End If
            End If
            _onew.CommitChanges()
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        Finally
            LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
        End Try
    End Sub

    Private Sub aORI_Create_Delivery_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_Create_Delivery.Execute
        '// Kitárolásról szállítólevél készítése

        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 _OrderInHeader As OrderInHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
            If _OrderInHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")

            Dim _DeliveryNoteView As DeliveryNoteView = TryCast(e.PopupWindow.View.SelectedObjects(0), DeliveryNoteView)
            If _DeliveryNoteView Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")

            Dim _StorageOutRowsInRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("StorageOutRowsInRows")
            If _StorageOutRowsInRows_ListEditor Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")


            Dim _StorageOutRowsInRows_Collection As New ArrayList
            For Each _StorageOutRowsInRows As StorageOutRowsInRows In _OrderInHeader.StorageOutRowsInRows
                If _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.IsStorno = False Then
                    If _StorageOutRowsInRows.QTT_Will > 0 Then
                        If _StorageOutRowsInRows_Collection.Count = 0 Then
                            _StorageOutRowsInRows_Collection.Add(_StorageOutRowsInRows)
                        Else
                            Dim _IsNeed As Boolean = True
                            For Each _StorageOutRowsInRowsInCollection As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
                                If _StorageOutRowsInRows.Oid = _StorageOutRowsInRowsInCollection.Oid Then _IsNeed = False
                            Next
                            If _IsNeed Then _StorageOutRowsInRows_Collection.Add(_StorageOutRowsInRows)
                        End If
                    End If
                End If
            Next

            If _StorageOutRowsInRows_Collection.Count = 0 Then Throw New Exception("*Nincs egyetlen olyan kitárolás sem kijelölve, amelyről kiszállítást lehetne készíteni" + vbNewLine + _
                                                "Ez abban az esetben fordulhat elő, ha a kiszállítási szándék érétke nulla." + 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\SISBusinessExceptions\StorageComputed", "CanNotStorageInByLocking")
                Dim _Title As String = DevExpress.ExpressApp.Utils.CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxError")
                MsgBox(String.Format(_Prompt, _LockingObject.User.FullName, _LockingObject.ObjectCreated), MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _Title)

                Exit Sub
            Else
                Dim _DeliveryNoteOutHeader As New DeliveryNoteOutHeader(_onew.Session)
                With _DeliveryNoteOutHeader
                    .CurrencyName = _onew.GetObject(_DeliveryNoteView.CurrencyName)
                    .Customers = _onew.GetObject(_DeliveryNoteView.Customers)
                    .CustomersFrom = _onew.GetObject(_DeliveryNoteView.CustomersFrom)
                    .DateCreated = GetSQLTime(_onew.Session)
                    .DateExecution = _onew.GetObject(_DeliveryNoteView.DateExecution)
                    .Note = _onew.GetObject(_DeliveryNoteView.Note)
                    .QualityOption = _onew.GetObject(_DeliveryNoteView.QualityOption)
                    .ShipmentOption = _onew.GetObject(_DeliveryNoteView.ShipmentOption)
                    .TransportAddress = _onew.GetObject(_DeliveryNoteView.TransportAddress)
                    .DeliveryNoteOutType = _onew.GetObject(_DeliveryNoteView.DeliveryNoteOutType)
                    .IsEditable = False
                End With

                For Each _StorageOutRowsInRows As StorageOutRowsInRows In _OrderInHeader.StorageOutRowsInRows
                    If _StorageOutRowsInRows.QTT_Will > 0 Then
                        Dim _DeliveryNoteOutRows As New DeliveryNoteOutRows(_onew.Session)
                        With _DeliveryNoteOutRows
                            .DeliveryNoteOutHeader = _DeliveryNoteOutHeader
                            .RowIndex = _DeliveryNoteOutHeader.DeliveryNoteOutRows.Count
                            .QTT = _StorageOutRowsInRows.QTT_Will
                            .StorageOutRowsInRows = _onew.GetObject(_StorageOutRowsInRows)
                        End With
                        Dim _QTT_Will_Orig As Double = _StorageOutRowsInRows.QTT_Will
                        _StorageOutRowsInRows = _onew.GetObjectByKey(Of StorageOutRowsInRows)(_StorageOutRowsInRows.Oid)
                        _StorageOutRowsInRows.QTT_To_DeliveryOut += _QTT_Will_Orig
                        _StorageOutRowsInRows.QTT_Will = 0
                        Dim _OrderInRows As OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_StorageOutRowsInRows.StorageOutRows.OrderInRows.Oid)
                        _OrderInRows.QTT_DeliveryNoted += _QTT_Will_Orig
                    End If
                Next
                _onew.CommitChanges()
                Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        Finally
            LockingModule.UnLockObject(_uow_lock, GetType(StorageComputed), "-", _User)
        End Try
    End Sub

    Private Sub aORI_Create_DeliveryInvoice_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_Create_DeliveryInvoice.Execute
        '// Kitárolt tételekről szállítólevél és számla
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace

            '--==Ellenőrzések==--
            Dim _OrderInHeader As OrderInHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
            If _OrderInHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            Dim _StorageOutRowsInRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("StorageOutRowsInRows")
            If _StorageOutRowsInRows_ListEditor Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            If _StorageOutRowsInRows_ListEditor.ListView.SelectedObjects.Count = 0 Then Throw New Exception("*nincs kijelölve egyetlen kitárolási sor sem!")
            Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = _onew.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup))


            ' --- Ellenőrzés, hogy kell-e engedély ! --------------------------------------------------------------------------------------------------
            If _onew.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).PaymentOption).PayMode <> ePayMode.InCash Then
                If _OrderInHeader.SubjectToApproval(_OrderInHeader, _onew) And _OrderInHeader.PermissionAllowed = False Then
                    MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInHeader", "PermissionNotAllowedToCreateInvoice")), _
                                           MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, _
                                           String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                    Exit Sub
                End If
            End If

            Dim _StorageOutRowsInRows_Collection As New ArrayList
            For Each _StorageOutRowsInRows As StorageOutRowsInRows In _OrderInHeader.StorageOutRowsInRows
                If _StorageOutRowsInRows.StorageOutRows.StorageOutHeader.IsStorno = False Then
                    If _StorageOutRowsInRows.QTT_Will > 0 Then
                        If _StorageOutRowsInRows_Collection.Count = 0 Then
                            _StorageOutRowsInRows_Collection.Add(_StorageOutRowsInRows)
                        Else
                            Dim _IsNeed As Boolean = True
                            For Each _StorageOutRowsInRowsInCollection As StorageOutRowsInRows In _StorageOutRowsInRows_Collection
                                If _StorageOutRowsInRows.Oid = _StorageOutRowsInRowsInCollection.Oid Then _IsNeed = False
                            Next
                            If _IsNeed Then _StorageOutRowsInRows_Collection.Add(_StorageOutRowsInRows)
                        End If
                    End If
                End If
            Next

            If _StorageOutRowsInRows_Collection.Count = 0 Then Throw New Exception("*Nincs egyetlen olyan kitárolás sem kijelölve, amelyről kiszállítást lehetne készíteni" + vbNewLine + _
                                                "Ez abban az esetben fordulhat elő, ha a kiszállítási szándék érétke nulla." + vbNewLine + "Kérem, ellenőrizze!")


            '--==Szállítólevél==--
            '____________________________________________________________________________________________________________________
            Dim _DeliveryNoteOutHeader As New DeliveryNoteOutHeader(_onew.Session)
            With _DeliveryNoteOutHeader
                .CurrencyName = _onew.GetObject(_ORI_Invoice_Popup.CurrencyName)
                .Customers = _onew.GetObject(_ORI_Invoice_Popup.Customers)
                .CustomersFrom = _onew.GetObject(_ORI_Invoice_Popup.CustomersFrom)
                .DateCreated = GetSQLTime(_onew.Session)
                .DateExecution = _onew.GetObject(_ORI_Invoice_Popup.DateExecution)
                .Note = _onew.GetObject(_ORI_Invoice_Popup.Description)
                .QualityOption = _onew.GetObject(_ORI_Invoice_Popup.QualityOption)
                .ShipmentOption = _onew.GetObject(_ORI_Invoice_Popup.ShipmentOption)
                .TransportAddress = _onew.GetObject(_ORI_Invoice_Popup.TransportAddress)
                .DeliveryNoteOutType = _onew.GetObject(_ORI_Invoice_Popup.DeliveryNoteOutType)
            End With

            For Each _StorageOutRowsInRows As StorageOutRowsInRows In _OrderInHeader.StorageOutRowsInRows
                If _StorageOutRowsInRows.QTT_Will > 0 Then
                    Dim _DeliveryNoteOutRows As New DeliveryNoteOutRows(_onew.Session)
                    With _DeliveryNoteOutRows
                        .DeliveryNoteOutHeader = _DeliveryNoteOutHeader
                        .RowIndex = _DeliveryNoteOutHeader.DeliveryNoteOutRows.Count
                        .QTT = _StorageOutRowsInRows.QTT_Will
                        .StorageOutRowsInRows = _onew.GetObject(_StorageOutRowsInRows)
                    End With
                    Dim _QTT_Will_Orig = _StorageOutRowsInRows.QTT_Will
                    _StorageOutRowsInRows.QTT_To_DeliveryOut += _QTT_Will_Orig
                    _StorageOutRowsInRows.QTT_Will = 0
                    Dim _OrderInRows As OrderInRows = _onew.GetObjectByKey(Of OrderInRows)(_StorageOutRowsInRows.StorageOutRows.OrderInRows.Oid)
                    _OrderInRows.QTT_DeliveryNoted += _QTT_Will_Orig
                End If
            Next

            '--==Szállítólevél véglegesítés==--
            '____________________________________________________________________________________________________________________
            _DeliveryNoteOutHeader.IsEditable = False

            '--==Számla==--
            '____________________________________________________________________________________________________________________
            Dim _InvoiceHeader As New InvoiceHeader(_onew.Session)
            With _InvoiceHeader
                .InvoiceType = _onew.GetObjectByKey(Of InvoiceType)(_ORI_Invoice_Popup.InvoiceType.Oid)
                .CustomersFrom = _onew.GetObjectByKey(Of CustomersFrom)(_ORI_Invoice_Popup.CustomersFrom.Oid)
                .Customers = _onew.GetObjectByKey(Of Customers)(_ORI_Invoice_Popup.Customers.Oid)
                .DateCreated = _ORI_Invoice_Popup.DateCreated
                .DateExecution = _ORI_Invoice_Popup.DateExecution            
                .DatePayment = _ORI_Invoice_Popup.DatePayment
                .PaymentOption = _onew.GetObjectByKey(Of PaymentOption)(_ORI_Invoice_Popup.PaymentOption.Oid)
                .DatePaymentMode = .PaymentOption.DatePaymentMode
                .ShipmentOption = _onew.GetObjectByKey(Of ShipmentOption)(_ORI_Invoice_Popup.ShipmentOption.Oid)
                .CurrencyName = _onew.GetObjectByKey(Of CurrencyName)(_ORI_Invoice_Popup.CurrencyName.Oid)
                If .PaymentOption.PayMode = ePayMode.InCash Then
                Else
                    .BankInformation = _onew.GetObjectByKey(Of BankInformation)(_ORI_Invoice_Popup.BankInformation.Oid)
                End If
                .Description = _ORI_Invoice_Popup.Description

                InvoiceHeaderSavedSettings(_InvoiceHeader)

                If .PaymentOption.PayMode = ePayMode.InContinuous Then
                    .DatePayment = _InvoiceHeader.DateExecution
                Else
                    If _ORI_Invoice_Popup.IsAPCSheet Then
                    Else
                        If .PaymentOption.DatePaymentMode = eDatePaymentMode.eDateCreated Then
                            .DatePayment = _InvoiceHeader.DateCreated.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                        Else
                            .DatePayment = _InvoiceHeader.DateExecution.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                        End If

                    End If
                End If
                If .InvoiceType.NumberGeneratorProforma IsNot Nothing Then
                    _InvoiceHeader.DocumentNumberProforma = _InvoiceHeader.InvoiceType.NumberGeneratorProforma.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGeneratorProforma)
                End If
            End With

            '--==Végszámla / Proforma számal ==--
            '____________________________________________________________________________________________________________________
            If _ORI_Invoice_Popup.IsFinalInvoice Then
                _InvoiceHeader.IsEditable = False
                _InvoiceHeader.IsProforma = False
                _InvoiceHeader.IsStorno = False

                _InvoiceHeader.ConnectInfo = _InvoiceHeader.InvoiceType.NumberGenerator.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGenerator)
                _InvoiceHeader.DocumentNumber = _InvoiceHeader.ConnectInfo

                If _ORI_Invoice_Popup.PaymentOption.PayMode = ePayMode.InCash Then
                    If _ORI_Invoice_Popup.IsLiquidAssets Then

                    End If
                End If
            Else
                _InvoiceHeader.IsEditable = False
                _InvoiceHeader.IsProforma = True
                _InvoiceHeader.IsStorno = False

                _InvoiceHeader.ConnectInfo = _InvoiceHeader.InvoiceType.NumberGeneratorProforma.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGeneratorProforma)
            End If

            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutHeader.DeliveryNoteOutRows
                Dim _InvoiceRows As New InvoiceRows(_onew.Session)
                With _InvoiceRows
                    .InvoiceHeader = _InvoiceHeader
                    .RowIndex = _InvoiceHeader.InvoiceRows.Count
                    .OrderInRows = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows)
                    .InvoiceRowtype = eInvoiceRowType.FromOrder
                    .DiscountPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceDEV
                    .DiscountPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceHUF
                    .ListPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceDEV
                    .ListPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceHUF
                    .QTT = _DeliveryNoteOutRows.QTT
                    .QualityOption = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.QualityOption)
                    .ShortName = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ProductNumber + vbNewLine + _
                                             _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ShortName
                    .Units = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.Units)
                    .VAT = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.VAT)
                    .Description = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Description
                    .CustomsTariffs = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.CustomsTariff)
                    .DeliveryNoteOutRows = _onew.GetObject(_DeliveryNoteOutRows)
                    If _OrderInHeader.OrderInParameters IsNot Nothing Then
                        If _OrderInHeader.OrderInParameters.Controlling_Rows_Default IsNot Nothing Then
                            .Controlling = _OrderInHeader.OrderInParameters.Controlling_Rows_Default
                        End If
                    End If
                End With

                Dim _QTT_Will_Orig As Double = _DeliveryNoteOutRows.QTT
                _DeliveryNoteOutRows = _DeliveryNoteOutRows
                _DeliveryNoteOutRows.QTT_Invoiced += _QTT_Will_Orig
                _DeliveryNoteOutRows.QTT_Will = 0
                Dim _OrderInRows As OrderInRows = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows)
                _OrderInRows.QTT_Invoiced += _QTT_Will_Orig
            Next

            If _OrderInHeader.OrderInRowsOther.Count > 0 Then
                For Each _OrderInRowsOther As OrderInRowsOther In _OrderInHeader.OrderInRowsOther
                    If _OrderInRowsOther.QTT_Process > 0 Then
                        Dim _InvoiceRows As New InvoiceRows(_onew.Session)
                        With _InvoiceRows

                            .InvoiceHeader = _InvoiceHeader
                            .OrderInRowsOther = _OrderInRowsOther
                            .QTT = _OrderInRowsOther.QTT_Process
                            _OrderInRowsOther.QTT_Invoiced += _OrderInRowsOther.QTT_Process
                            If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                                .DiscountPriceHUF = _OrderInRowsOther.DiscountPriceHUF
                                .ListPriceHUF = _OrderInRowsOther.ListPriceHUF
                            Else
                                .DiscountPriceDEV = _OrderInRowsOther.DiscountPriceDEV
                                .DiscountPriceHUF = _OrderInRowsOther.DiscountPriceDEV * _ORI_Invoice_Popup.CurrencyRate
                                .ListPriceDEV = _OrderInRowsOther.ListPriceDEV
                                .ListPriceHUF = _OrderInRowsOther.ListPriceDEV * _ORI_Invoice_Popup.CurrencyRate
                            End If

                            .InvoiceRowtype = eInvoiceRowType.FromOrder
                            .VAT = _OrderInRowsOther.VAT
                            .Units = _OrderInRowsOther.Units
                            .UniqueObjects = _OrderInRowsOther.UniqueObjects
                            .CostHolder = _OrderInRowsOther.CostHolder
                            .CostPlace = _OrderInRowsOther.CostPlace
                            .QualityOption = _OrderInRowsOther.QualityOption
                            .Description = _OrderInRowsOther.Description
                            .ShortName = _OrderInRowsOther.ShortName
                            .CustomsTariffs = _OrderInRowsOther.CustomsTariffs
                            .RowIndex = _InvoiceHeader.InvoiceRows.Count
                        End With
                    End If
                Next
            End If

            _onew.CommitChanges()
            _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _onew)
            _onew.CommitChanges()
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
#End Region
#Region "Kiszállítások fül"
    Private Sub aORI_Storno_DeliveryNoteOut_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aORI_Storno_DeliveryNoteOut.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _ORI_Storno_DeliveryNoteOut_PopUp As New ORI_Storno_DeliveryNoteOut_PopUp(_onew.Session)

            e.View = Application.CreateDetailView(_onew, "ORI_Storno_DeliveryNoteOut_PopUp_DetailView", False, _ORI_Storno_DeliveryNoteOut_PopUp)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aORI_Storno_DeliveryNoteOut_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_Storno_DeliveryNoteOut.Execute
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInHeader As OrderInHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
            If _OrderInHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            Dim _ORI_Storno_DeliveryNoteOut_PopUp As ORI_Storno_DeliveryNoteOut_PopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Storno_DeliveryNoteOut_PopUp)
            If _ORI_Storno_DeliveryNoteOut_PopUp Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            Dim _DeliveryNoteOutRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("DeliveryNoteOutRows")
            If _DeliveryNoteOutRows_ListEditor Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            If _DeliveryNoteOutRows_ListEditor.ListView.SelectedObjects.Count = 0 Then Throw New Exception("*Nincs kijelölve egyetlen kitárolási sor sem!")

            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutRows_ListEditor.ListView.SelectedObjects
                If _DeliveryNoteOutRows.QTT_Invoiced > 0 Then Throw New Exception("*A kiválaszott kiszállítási sorok közt szerepel olyan, melyről készült számal!" _
                                        + vbNewLine + "Számlázott kiszállítás stornózása nem lehetséges!" + vbNewLine + vbNewLine + "Kérem, ellenőrizze!")
                If _DeliveryNoteOutRows.DeliveryNoteOutHeader.IsStorno = True Then Throw New Exception("*A kiválaszott kiszállítási sor már stornózva lett!" + vbNewLine + "Kérem, ellenőrizze!")
            Next

            Dim _DeliveryNoteOutHeader_Collection As New ArrayList
            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutRows_ListEditor.ListView.SelectedObjects
                If _DeliveryNoteOutHeader_Collection.Count = 0 Then
                    _DeliveryNoteOutHeader_Collection.Add(_onew.GetObjectByKey(Of DeliveryNoteOutHeader)(_DeliveryNoteOutRows.DeliveryNoteOutHeader.Oid))
                Else
                    Dim _IsNeed As Boolean = True
                    For Each _DeliveryNoteOutHeader As DeliveryNoteOutHeader In _DeliveryNoteOutHeader_Collection
                        If _DeliveryNoteOutRows.DeliveryNoteOutHeader.Oid = _DeliveryNoteOutHeader.Oid Then _IsNeed = False
                    Next

                    If _IsNeed Then _DeliveryNoteOutHeader_Collection.Add(_onew.GetObjectByKey(Of DeliveryNoteOutHeader)(_DeliveryNoteOutRows.DeliveryNoteOutHeader.Oid))
                End If
            Next

            Dim _StorageOutHeader_Collection As New ArrayList
            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutRows_ListEditor.ListView.SelectedObjects
                If _StorageOutHeader_Collection.Count = 0 Then
                    _StorageOutHeader_Collection.Add(_onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.StorageOutHeader))
                Else
                    Dim _IsNeed As Boolean = True
                    For Each _StorageOutHeader As StorageOutHeader In _StorageOutHeader_Collection
                        If _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.StorageOutHeader.Oid = _StorageOutHeader.Oid Then _IsNeed = False
                    Next
                    If _IsNeed Then _StorageOutHeader_Collection.Add(_onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.StorageOutHeader.Oid))
                End If
            Next


            If _DeliveryNoteOutHeader_Collection.Count = 0 Then Throw New Exception("*A kiválaszott kiszállítási sorok közt nem szerepel olyan, melyet stornózni lehetne!" _
                                                                        + vbNewLine + vbNewLine + "Kérem, ellenőrizze!")

            Dim _DeliveryNoteOutHeaderNew_Collection As New ArrayList
            Dim _StorageOutHeaderNew_Collection As New ArrayList

            Select Case _ORI_Storno_DeliveryNoteOut_PopUp.ORIStornoDeliveryNoteOutType
                Case eORIStornoDeliveryNoteOutType.eStornoDeliveryNoteOut
                    StornoDeliveryNoteOut(_onew, _DeliveryNoteOutHeader_Collection, _DeliveryNoteOutHeaderNew_Collection)
                    If _DeliveryNoteOutHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
                Case eORIStornoDeliveryNoteOutType.eStornoDeliveryNoteOutStorageOut
                    StornoDeliveryNoteOutStorageOut(_onew, _DeliveryNoteOutHeader_Collection, _StorageOutHeader_Collection, _DeliveryNoteOutHeaderNew_Collection, _StorageOutHeaderNew_Collection)
                    If _DeliveryNoteOutHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
                    If _StorageOutHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            End Select
            _onew.CommitChanges()
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub

    Private Sub aORI_Create_Invoice_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_Create_Invoice.Execute
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInHeader As OrderInHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
            Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup)

            ' --- Ellenőrzés, hogy kell-e engedély ! --------------------------------------------------------------------------------------------------
            If _onew.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).PaymentOption).PayMode <> ePayMode.InCash Then
                If _OrderInHeader.SubjectToApproval(_OrderInHeader, _onew) And _OrderInHeader.PermissionAllowed = False Then
                    MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInHeader", "PermissionNotAllowedToCreateInvoice")), _
                                           MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, _
                                           String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                    Exit Sub
                End If
            End If


            Dim _DeliveryNoteOutRows_Error As New ArrayList

            _OrderInHeader.DeliveryNoteOutRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))

            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _OrderInHeader.DeliveryNoteOutRows
                If _DeliveryNoteOutRows.QTT_Will > 0 Then
                    If (_DeliveryNoteOutRows.QTT < (_DeliveryNoteOutRows.QTT_Will + _DeliveryNoteOutRows.QTT_Invoiced)) Then _
                        _DeliveryNoteOutRows_Error.Add(_DeliveryNoteOutRows)
                End If
            Next

            If _DeliveryNoteOutRows_Error.Count > 0 Then
                MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "TooMutchQuantityInOrderIn"), _
                                                                            _DeliveryNoteOutRows_Error(0).RowIndex, _
                                                                            _DeliveryNoteOutRows_Error(0).QTT_Will + _DeliveryNoteOutRows_Error(0).QTT_Invoiced, _
                                                                            _DeliveryNoteOutRows_Error(0).QTT), _
                               MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                               String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                Exit Sub
            End If

            Dim _DeliveryNoteOutRows_Collection As New ArrayList

            _OrderInHeader.DeliveryNoteOutRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))

            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _OrderInHeader.DeliveryNoteOutRows
                If _DeliveryNoteOutRows.QTT_Will > 0 Then
                    If _DeliveryNoteOutRows_Collection.Count = 0 Then
                        _DeliveryNoteOutRows_Collection.Add(_DeliveryNoteOutRows)
                    Else
                        Dim _IsNeed As Boolean = True
                        For Each _DeliveryNoteOutRowsInCollection As DeliveryNoteOutRows In _DeliveryNoteOutRows_Collection
                            If _DeliveryNoteOutRows.Oid = _DeliveryNoteOutRowsInCollection.Oid Then _IsNeed = False
                        Next
                        If _IsNeed Then _DeliveryNoteOutRows_Collection.Add(_DeliveryNoteOutRows)
                    End If
                End If
            Next

            If _DeliveryNoteOutRows_Collection.Count = 0 Then
                MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInRows", "NoSelectionforInvoice")), _
                                       MsgBoxStyle.Information + MsgBoxStyle.OkOnly, _
                                       String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                Exit Sub
            End If

            Dim _InvoiceHeader As New InvoiceHeader(_onew.Session)
            With _InvoiceHeader
                .InvoiceType = _onew.GetObjectByKey(Of InvoiceType)(_ORI_Invoice_Popup.InvoiceType.Oid)
                .CustomersFrom = _onew.GetObjectByKey(Of CustomersFrom)(_ORI_Invoice_Popup.CustomersFrom.Oid)
                .Customers = _onew.GetObjectByKey(Of Customers)(_ORI_Invoice_Popup.Customers.Oid)
                .DateCreated = _ORI_Invoice_Popup.DateCreated
                .DateExecution = _ORI_Invoice_Popup.DateExecution
                .PaymentOption = _onew.GetObjectByKey(Of PaymentOption)(_ORI_Invoice_Popup.PaymentOption.Oid)
                .DatePaymentMode = .PaymentOption.DatePaymentMode 'Javítva lett
                .ShipmentOption = _onew.GetObjectByKey(Of ShipmentOption)(_OrderInHeader.ShipmentOption.Oid)
                .CurrencyName = _onew.GetObjectByKey(Of CurrencyName)(_ORI_Invoice_Popup.CurrencyName.Oid)
                If .PaymentOption.PayMode = ePayMode.InCash Then
                Else
                    .BankInformation = _onew.GetObjectByKey(Of BankInformation)(_ORI_Invoice_Popup.BankInformation.Oid)
                End If
                .Description = _ORI_Invoice_Popup.Description

                InvoiceHeaderSavedSettings(_InvoiceHeader)

                If .PaymentOption.PayMode = ePayMode.InContinuous Then
                    .DatePayment = _InvoiceHeader.DateExecution
                Else
                    If _ORI_Invoice_Popup.IsAPCSheet Then
                        .DatePayment = _ORI_Invoice_Popup.DatePayment
                    Else
                        If .PaymentOption.DatePaymentMode = eDatePaymentMode.eDateCreated Then
                            .DatePayment = _InvoiceHeader.DateCreated.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                        Else
                            .DatePayment = _InvoiceHeader.DateExecution.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                        End If
                    End If
                End If

            End With

            If _ORI_Invoice_Popup.IsFinalInvoice Then
                _InvoiceHeader.IsEditable = False
                _InvoiceHeader.IsProforma = False
                _InvoiceHeader.IsStorno = False

                _InvoiceHeader.ConnectInfo = _InvoiceHeader.InvoiceType.NumberGenerator.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGenerator)
                _InvoiceHeader.DocumentNumber = _InvoiceHeader.ConnectInfo

                If _ORI_Invoice_Popup.PaymentOption.PayMode = ePayMode.InCash Then
                    If _ORI_Invoice_Popup.IsLiquidAssets Then
                        'Dim _GLCassa As New GLCassa(_onew.Session)
                        'With _GLCassa
                        '    .CustomersFrom = _onew.GetObjectByKey(Of CustomersFrom)(_ORI_Invoice_Popup.CustomersFrom.Oid)
                        '    .LiquidAssets_Cassa = _onew.GetObjectByKey(Of LiquidAssets)(_ORI_Invoice_Popup.LiquidAssets.Oid)
                        '    .CashMoveType = eCashMoveType.eIn
                        '    .CashHandler = _ORI_Invoice_Popup.Customers.FullName.ToString()
                        '    .DateExecution = _onew.GetObjectByKey(Of Date)(_ORI_Invoice_Popup.DateExecution)
                        '    .DateCreated = _onew.GetObjectByKey(Of Date)(_ORI_Invoice_Popup.DateCreated)
                        '    .NoteHeader = "SZLA.BEFIZ"
                        '    _GLCassa.Save()
                        'End With

                        'Dim _GLRows As New GLRows(_onew.Session)
                        'With _GLRows
                        '    .GLHeader = _onew.GetObjectByKey(Of GLCassa)(_GLCassa.Oid)
                        'End With
                    End If
                End If
            Else
                _InvoiceHeader.IsEditable = False
                _InvoiceHeader.IsProforma = True
                _InvoiceHeader.IsStorno = False

                If _InvoiceHeader.InvoiceType.NumberGeneratorProforma IsNot Nothing Then
                    _InvoiceHeader.DocumentNumberProforma = _InvoiceHeader.InvoiceType.NumberGeneratorProforma.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGeneratorProforma)
                End If
            End If


            For Each _DeliveryNoteOutRows As DeliveryNoteOutRows In _DeliveryNoteOutRows_Collection
                Dim _InvoiceRows As New InvoiceRows(_onew.Session)
                With _InvoiceRows
                    .InvoiceHeader = _InvoiceHeader
                    .RowIndex = _InvoiceHeader.InvoiceRows.Count
                    .OrderInRows = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows)
                    .InvoiceRowtype = eInvoiceRowType.FromOrder
                    .DiscountPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceDEV
                    .DiscountPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceHUF
                    .ListPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceDEV
                    .ListPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceHUF
                    .QTT = _DeliveryNoteOutRows.QTT_Will
                    .QualityOption = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.QualityOption)
                    .ShortName = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ProductNumber + vbNewLine + _
                                             _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ShortName
                    .Units = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.Units)
                    .VAT = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.VAT)
                    .Description = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Description
                    .CustomsTariffs = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.CustomsTariff)
                    .DeliveryNoteOutRows = _onew.GetObject(_DeliveryNoteOutRows)
                    If _OrderInHeader.OrderInParameters IsNot Nothing Then
                        If _OrderInHeader.OrderInParameters.Controlling_Rows_Default IsNot Nothing Then
                            .Controlling = _OrderInHeader.OrderInParameters.Controlling_Rows_Default
                        End If
                    End If
                End With

                Dim _QTT_Will_Orig = _DeliveryNoteOutRows.QTT_Will
                _DeliveryNoteOutRows = _onew.GetObject(_DeliveryNoteOutRows)
                _DeliveryNoteOutRows.QTT_Invoiced += _QTT_Will_Orig
                _DeliveryNoteOutRows.QTT_Will = 0
                Dim _OrderInRows As OrderInRows = _onew.GetObject(_DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows)
                _OrderInRows.QTT_Invoiced += _QTT_Will_Orig
            Next
            _onew.CommitChanges()
            _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _onew)
            _onew.CommitChanges()

            If _InvoiceHeader IsNot Nothing Then
                Dim _ReportData As ReportData = _InvoiceHeader.InvoiceType.ReportData
                Dim _ReportData_DEV As ReportData = _InvoiceHeader.InvoiceType.ReportData_DEV
                Dim _ReportData_DEV_EU As ReportData = _InvoiceHeader.InvoiceType.ReportData_DEV_EU
                If _ReportData IsNot Nothing Or _InvoiceHeader Is Nothing Then
                    If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                        Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("InvoiceHeader.Oid=?", _InvoiceHeader.Oid), True)
                    Else
                        Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData_DEV, CriteriaOperator.Parse("InvoiceHeader.Oid=?", _InvoiceHeader.Oid), True)
                    End If
                End If
            End If


            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
#End Region
#Region "Kimenő számla sorok"
    Private Sub aORI_Storno_Invoice_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aORI_Storno_Invoice.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _ORI_Storno_Invoice_PopUp As New ORI_Storno_Invoice_PopUp(_onew.Session)

            e.View = Application.CreateDetailView(_onew, "ORI_Storno_Invoice_PopUp_DetailView", False, _ORI_Storno_Invoice_PopUp)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aORI_Storno_Invoice_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aORI_Storno_Invoice.Execute
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace

            Dim _OrderInHeader As OrderInHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
            If _OrderInHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")

            Dim _ORI_Storno_Invoice_PopUp As ORI_Storno_Invoice_PopUp = TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Storno_Invoice_PopUp)
            If _ORI_Storno_Invoice_PopUp Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")

            Dim _InvoiceRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("InvoiceRows")
            If _InvoiceRows_ListEditor Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            If _InvoiceRows_ListEditor.ListView.SelectedObjects.Count = 0 Then Throw New Exception("*Nincs kijelölve egyetlen kitárolási sor sem!")

            Dim _InvoiceRows_Collection As New ArrayList
            For Each _InvoiceRows As InvoiceRows In _InvoiceRows_ListEditor.ListView.SelectedObjects
                If _InvoiceRows.InvoiceHeader.IsStorno = False And
                     _InvoiceRows.InvoiceHeader.IsEditable = False And
                     _InvoiceRows.InvoiceHeader.IsProforma = False And _
                     String.IsNullOrEmpty(_InvoiceRows.InvoiceHeader.DocumentNumber) = False Then _
                    _InvoiceRows_Collection.Add(_InvoiceRows)
            Next
            If _InvoiceRows_Collection.Count = 0 Then Throw New Exception("*A kiválasztott számlasorok közt nincs egyetlen olyan sem, melyet stornozni lehetne!" _
                                                                  + vbNewLine + "Kérem, ellenőrize!")

            Dim _InvoiceHeaderNew_Collection As New ArrayList
            Dim _DeliveryHeaderNew_Collection As New ArrayList
            Dim _StorageOutHeaderNew_Collection As New ArrayList

            Select Case _ORI_Storno_Invoice_PopUp.ORIStornoInvoiceType
                Case eORIStornoInvoiceType.eStornoInvoice
                    StornoInvoice(_onew, _InvoiceHeaderNew_Collection, _InvoiceRows_Collection)
                    If _InvoiceHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
                Case eORIStornoInvoiceType.eStornoInvoiceDelivery
                    StornoInvoice(_onew, _InvoiceHeaderNew_Collection, _InvoiceRows_Collection)
                    StornoDelivery(_onew, _DeliveryHeaderNew_Collection, _InvoiceRows_Collection)
                    If _InvoiceHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
                    If _DeliveryHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
                Case eORIStornoInvoiceType.eStornoInvoiceDeliveryStorageOut
                    StornoInvoice(_onew, _InvoiceHeaderNew_Collection, _InvoiceRows_Collection)
                    StornoDelivery(_onew, _DeliveryHeaderNew_Collection, _InvoiceRows_Collection)
                    StornoStorage(_onew, _StorageOutHeaderNew_Collection, _InvoiceRows_Collection)
                    If _InvoiceHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
                    If _DeliveryHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
                    If _StorageOutHeaderNew_Collection.Count = 0 Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            End Select

            _onew.CommitChanges()

            For Each _InvoiceHeader As InvoiceHeader In _InvoiceHeaderNew_Collection
                _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _onew)
                _onew.CommitChanges()
            Next
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub

    Private Sub aOrderIn_InvoiceRowFinalize_CustomizePopupWindowParams(sender As Object, e As CustomizePopupWindowParamsEventArgs) Handles aOrderIn_InvoiceRowFinalize.CustomizePopupWindowParams
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInHeader As OrderInHeader = _onew.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
            If _OrderInHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            Dim _OrderInRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("InvoiceRows")
            If _OrderInRows_ListEditor Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            If _OrderInRows_ListEditor.ListView.SelectedObjects.Count = 0 Then Throw New Exception("*Nincs kiválasztva egyetlen számla sor sem!")
            Dim _InvoiceHeader As InvoiceHeader = _onew.GetObject(TryCast(TryCast(_OrderInRows_ListEditor.ListView.SelectedObjects(0), InvoiceRows).InvoiceHeader, InvoiceHeader))
            If _InvoiceHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            If String.IsNullOrEmpty(_InvoiceHeader.DocumentNumberProforma) Then Throw New Exception("*A véglegesíteni kívánt számla nem proforma száma!")
            If Not String.IsNullOrEmpty(_InvoiceHeader.DocumentNumber) Then Throw New Exception("*A véglegesíteni kívánt számla már rendelkezik sorszámmal!")

            Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = _onew.CreateObject(Of ORI_Invoice_Popup)()

            _ORI_Invoice_Popup.CurrencyName = _InvoiceHeader.CurrencyName
            _ORI_Invoice_Popup.CustomersFrom = _InvoiceHeader.CustomersFrom
            _ORI_Invoice_Popup.DateCreated = GetSQLTime(_onew.Session)
            _ORI_Invoice_Popup.DateExecution = _InvoiceHeader.DateExecution
            _ORI_Invoice_Popup.PaymentOption = _InvoiceHeader.PaymentOption
            _ORI_Invoice_Popup.DatePayment = _InvoiceHeader.DatePayment
            _ORI_Invoice_Popup.BankInformation = _InvoiceHeader.BankInformation
            _ORI_Invoice_Popup.Description = _InvoiceHeader.Description
            _ORI_Invoice_Popup.Description_Header = _InvoiceHeader.DescriptionHeader
            _ORI_Invoice_Popup.Customers = _InvoiceHeader.Customers
            _ORI_Invoice_Popup.InvoiceType = _InvoiceHeader.InvoiceType
            _ORI_Invoice_Popup.IsAPCSheet = _OrderInHeader.OrderInParameters.IsAPCSheet
            _ORI_Invoice_Popup.QualityOption = _InvoiceHeader.QualityOption

            e.View = Application.CreateDetailView(_onew, "ORI_Invoice_Popup_DetailView", False, _ORI_Invoice_Popup)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub
    Private Sub aOrderIn_InvoiceRowFinalize_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aOrderIn_InvoiceRowFinalize.Execute
        Try
            Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
            Dim _OrderInRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("InvoiceRows")
            If _OrderInRows_ListEditor Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            If _OrderInRows_ListEditor.ListView.SelectedObjects.Count = 0 Then Throw New Exception("*Nincs kiválasztva egyetlen számla sor sem!")
            Dim _InvoiceHeader As InvoiceHeader = _onew.GetObject(TryCast(TryCast(_OrderInRows_ListEditor.ListView.SelectedObjects(0), InvoiceRows).InvoiceHeader, InvoiceHeader))
            If _InvoiceHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
            Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup)

            _InvoiceHeader.IsEditable = False
            _InvoiceHeader.IsProforma = False
            _InvoiceHeader.ConnectInfo = _InvoiceHeader.InvoiceType.NumberGenerator.GetNewNumber(_InvoiceHeader.InvoiceType.NumberGenerator)
            _InvoiceHeader.DocumentNumber = _InvoiceHeader.ConnectInfo
            _InvoiceHeader.DateCreated = _ORI_Invoice_Popup.DateCreated
            _InvoiceHeader.DateExecution = _ORI_Invoice_Popup.DateExecution
            _InvoiceHeader.PaymentOption = _onew.GetObject(_ORI_Invoice_Popup.PaymentOption)
            If _InvoiceHeader.PaymentOption.PayMode = ePayMode.InCash Then
            Else
                _InvoiceHeader.BankInformation = _onew.GetObject(_ORI_Invoice_Popup.BankInformation)
            End If
            _InvoiceHeader.Description = _ORI_Invoice_Popup.Description
            _InvoiceHeader.DescriptionHeader = _ORI_Invoice_Popup.Description_Header
            _InvoiceHeader.CurrencyRate = _ORI_Invoice_Popup.CurrencyRate
            _InvoiceHeader.CurrencyName = _onew.GetObject(_ORI_Invoice_Popup.CurrencyName)

            If _InvoiceHeader.PaymentOption.PayMode = ePayMode.InContinuous Then
                _InvoiceHeader.DatePayment = _InvoiceHeader.DateExecution
            Else
                ' -- Egyébként számolja ki a fizetési opcióból, hogy hány nap van a kiállítás dátuma és a fizetési határidő között
                If _InvoiceHeader.PaymentOption.PayDay = 0 Then
                Else

                    Select Case _InvoiceHeader.DatePaymentMode
                        Case eDatePaymentMode.eDateCreated
                            _InvoiceHeader.DatePayment = _InvoiceHeader.DateCreated.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                        Case eDatePaymentMode.eDateExecution
                            _InvoiceHeader.DatePayment = _InvoiceHeader.DateExecution.AddDays(_InvoiceHeader.PaymentOption.PayDay)
                    End Select
                End If
                If _ORI_Invoice_Popup.IsAPCSheet Then
                    _InvoiceHeader.DatePayment = _ORI_Invoice_Popup.DatePayment
                End If
            End If

            ' -- Ha előleg típusú számla akkor a teljesítés és a fizetési határidő is megegyezik
            If _InvoiceHeader.InvoiceType.InvoiceTypeBase = eInvoiceTypeBase.eAdvancePayment Then
                _InvoiceHeader.DatePayment = _InvoiceHeader.DateExecution
            End If

            If String.IsNullOrEmpty(_InvoiceHeader.Customers.Name) Then
                _InvoiceHeader.Customers.Name = _InvoiceHeader.Customers.FullName
            End If

            _onew.CommitChanges()
            _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _onew)
            _onew.CommitChanges()

            Dim _uow_pci As New UnitOfWork(_onew.Session.DataLayer)
            GLFunctions.ReconfigurePCI(_uow_pci, _InvoiceHeader.CustomersFrom, _InvoiceHeader.Customers, 0, _InvoiceHeader.ConnectInfo)

            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub

    Private Sub aORI_DeleteInvoiceProforma_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aORI_DeleteInvoiceProforma.Execute
        '// proforma számla törlése
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)

        Dim _InvoiceHeader_Collection As New XPCollection(Of InvoiceHeader)(_ocur.Session, CriteriaOperator.Parse("1=2"))

        If _OrderInHeader IsNot Nothing Then
            Dim _InvoiceRows_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("InvoiceRows")
            If _InvoiceRows_ListEditor IsNot Nothing Then

                Dim _InvoiceHeaderExist_Collection As New ArrayList

                For Each _InvoiceRows As InvoiceRows In _InvoiceRows_ListEditor.ListView.SelectedObjects
                    If _InvoiceHeaderExist_Collection.Count = 0 Then
                        _InvoiceHeaderExist_Collection.Add(_InvoiceRows.InvoiceHeader)
                    Else
                        Dim _Need As Boolean = True
                        For Each _InvoiceHeader As InvoiceHeader In _InvoiceHeaderExist_Collection
                            If _InvoiceRows.InvoiceHeader.Oid = _InvoiceHeader.Oid Then
                                _Need = False
                                Exit For
                            End If
                        Next

                        If _Need Then _InvoiceHeaderExist_Collection.Add(_InvoiceRows.InvoiceHeader)
                    End If
                Next

                For Each _InvoiceHeader As InvoiceHeader In _InvoiceHeaderExist_Collection
                    If _InvoiceHeader.IsProforma And String.IsNullOrEmpty(_InvoiceHeader.DocumentNumber) Then
                        _InvoiceHeader_Collection.Add(_InvoiceHeader)
                        For Each _InvoiceRows As InvoiceRows In _InvoiceHeader.InvoiceRows
                            If _InvoiceRows.OrderInRows IsNot Nothing Then
                                _InvoiceRows.OrderInRows.QTT_Invoiced -= _InvoiceRows.QTT
                                _InvoiceRows.OrderInRows.Save()
                            End If
                            If _InvoiceRows.OrderInRowsOther IsNot Nothing Then
                                _InvoiceRows.OrderInRowsOther.QTT_Invoiced -= _InvoiceRows.QTT
                                _InvoiceRows.OrderInRowsOther.Save()
                            End If
                            If _InvoiceRows.DeliveryNoteOutRows IsNot Nothing Then
                                _InvoiceRows.DeliveryNoteOutRows.QTT_Invoiced -= _InvoiceRows.QTT
                                _InvoiceRows.DeliveryNoteOutRows.Save()
                            End If
                        Next
                    End If
                Next

                _ocur.Delete(_InvoiceHeader_Collection)
            End If
            _ocur.CommitChanges()
        End If

        If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        End If
    End Sub
    Private Sub aOrderInInvoiceAdvance_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aOrderInInvoiceAdvance.Execute
        '//Előlegszámla készítése előlegbekérő és p.ü. teljesítés alapján
        On Error GoTo CheckError

        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _OrderInHeader As OrderInHeader = TryCast(View.SelectedObjects(0), OrderInHeader)
        Dim _InvoiceHeader As InvoiceHeader = _ocur.CreateObject(Of InvoiceHeader)()
        Dim _InvoiceRows As InvoiceRows
        Dim _CurrencyRate As Double = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyRate)
        Dim _NG As NumberGenerator
        Dim _VAT As VAT
        Dim _ConnectInfo_Old As String = ""
        Dim _ORI_Invoice_Popup As ORI_Invoice_Popup = TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup)
        If _OrderInHeader IsNot Nothing Then
            Dim _PCIDetail_ListEditor As ListPropertyEditor = TryCast(View, DetailView).FindItem("PCIDetail")
            Dim _PCIDetail As PCIDetail = TryCast(_PCIDetail_ListEditor.ListView.SelectedObjects(0), PCIDetail)

            If _PCIDetail IsNot Nothing Then
                Select Case _PCIDetail.MainType
                    Case "03-Cassa", "02-Bank"
                        '// Megvan a nyitott p.ü teljesítés, lehet kiállítani az előleg számlát
                        _InvoiceHeader.IsProforma = False
                        _InvoiceHeader.IsEditable = False
                        _InvoiceHeader.CustomersFrom = _OrderInHeader.CustomersFrom
                        _InvoiceHeader.Customers = _OrderInHeader.Customers
                        _InvoiceHeader.InvoiceType = _OrderInHeader.OrderInParameters.InvoiceTypeAdvanced

                        If _InvoiceHeader.InvoiceType.NumberGenerator IsNot Nothing Then
                            _NG = _InvoiceHeader.InvoiceType.NumberGenerator
                            _InvoiceHeader.DocumentNumber = _NG.GetNewNumber(_NG)
                            _InvoiceHeader.ConnectInfo = _InvoiceHeader.DocumentNumber
                            _PCIDetail.GLRows.ConnectInfo = _InvoiceHeader.DocumentNumber
                            _PCIDetail.GLRows.Save()
                            _ocur.Delete(_PCIDetail)
                        End If

                        _InvoiceHeader.DateCreated = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DateCreated)
                        _InvoiceHeader.DateExecution = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DateExecution)
                        _InvoiceHeader.Description = _ORI_Invoice_Popup.Description
                        _InvoiceHeader.DescriptionHeader = _ORI_Invoice_Popup.Description_Header
                        _InvoiceHeader.BankInformation = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).BankInformation)


                        _InvoiceHeader.CurrencyName = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyName)
                        _InvoiceHeader.CurrencyRate = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyRate)

                        _InvoiceHeader.PaymentOption = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).PaymentOption)
                        _InvoiceHeader.DatePayment = _InvoiceHeader.DateExecution

                        '-- Próbaszámla miatt el kell menteni a tényleges adatokat --------------------------------------------------------
                        _InvoiceHeader.Saved_Customers_Name = _OrderInHeader.Customers.Name.ToString
                        _InvoiceHeader.Saved_Customers_Address_Country = _OrderInHeader.Customers.Address1.Country.ToString
                        _InvoiceHeader.Saved_Customers_Address_ZipPostal = _OrderInHeader.Customers.Address1.ZipPostal.ToString
                        _InvoiceHeader.Saved_Customers_Address_Street = _OrderInHeader.Customers.Address1.Street.ToString
                        _InvoiceHeader.Saved_Customers_Address_City = _OrderInHeader.Customers.Address1.City.ToString
                        _InvoiceHeader.Saved_Customers_Address_StateProvince = _OrderInHeader.Customers.Address1.StateProvince.ToString
                        _InvoiceHeader.Saved_Customers_VATNumber = _OrderInHeader.Customers.VATNumber.ToString
                        _InvoiceHeader.Saved_Customers_VATNumberEU = _OrderInHeader.Customers.VATNumberEU.ToString

                        _InvoiceHeader.Saved_CustomersFrom_Name = _OrderInHeader.CustomersFrom.Name.ToString
                        _InvoiceHeader.Saved_CustomersFrom_Address_ZipPostal = _OrderInHeader.CustomersFrom.Address1.ZipPostal.ToString
                        _InvoiceHeader.Saved_CustomersFrom_Address_Street = _OrderInHeader.CustomersFrom.Address1.Street.ToString
                        _InvoiceHeader.Saved_CustomersFrom_Address_City = _OrderInHeader.CustomersFrom.Address1.City.ToString
                        _InvoiceHeader.Saved_CustomersFrom_Address_StateProvince = _OrderInHeader.CustomersFrom.Address1.StateProvince.ToString
                        _InvoiceHeader.Saved_CustomersFrom_VATNumber = _OrderInHeader.CustomersFrom.VATNumber.ToString
                        _InvoiceHeader.Saved_CustomersFrom_VATNumberEU = _OrderInHeader.CustomersFrom.VATNumberEU.ToString

                        _InvoiceHeader.Saved_CustomersFrom_Bank_ShortName = _InvoiceHeader.BankInformation.FullBankAccount.ToString
                        _InvoiceHeader.Saved_CustomersFrom_Bank_IBAN = _InvoiceHeader.BankInformation.IBAN.ToString
                        _InvoiceHeader.Saved_CustomersFrom_Bank_SWIFT = _InvoiceHeader.BankInformation.SWIFT.ToString
                        _InvoiceHeader.Saved_CustomersFrom_Bank_AccountNumber = _InvoiceHeader.BankInformation.AccountNumber.ToString

                        ' ---- FEJLÉC ADATOK MEGADÁSÁNAK VÉGE ----------------------------------------------------------------------------------------------------

                        '------ Egy darab sor az átvett előleg alapján ---------------------------------------------------------------------------- ---------------
                        _OrderInHeader.OrderInRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
                        _OrderInHeader.OrderInRowsOther.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
                        '-----------------------------------------------------------------------------------------------------

                        _InvoiceRows = _ocur.CreateObject(Of InvoiceRows)()
                        _InvoiceRows.InvoiceHeader = _InvoiceHeader
                        _InvoiceRows.QTT = 1

                        Select Case _OrderInHeader.OrderInParameters.ExportMode
                            Case eExportMode.eInversVAT
                                _VAT = _ocur.FindObject(Of VAT)(CriteriaOperator.Parse("DefaultForInversVAT"))
                            Case eExportMode.eExternalEUwithVAT
                                _VAT = _ocur.FindObject(Of VAT)(CriteriaOperator.Parse("DefaultForBusinnes"))
                            Case eExportMode.eExternalEUNoVAT
                                _VAT = _ocur.FindObject(Of VAT)(CriteriaOperator.Parse("DefaultForExternalEUNoVAT"))
                            Case eExportMode.eExternalOther
                                _VAT = _ocur.FindObject(Of VAT)(CriteriaOperator.Parse("DefaultForExternalOther"))
                            Case eExportMode.eInternalwithVAT
                                _VAT = _ocur.FindObject(Of VAT)(CriteriaOperator.Parse("DefaultForBusinnes"))
                            Case Else
                                _VAT = _ocur.FindObject(Of VAT)(CriteriaOperator.Parse("DefaultForBusinnes"))
                        End Select

                        If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                            _InvoiceRows.DiscountPriceHUF = 0
                            _InvoiceRows.ListPriceHUF = Math.Round(Math.Abs(_PCIDetail.BallanceHUF) / (1 + _VAT.KeyValue), 2)
                        Else
                            _InvoiceRows.DiscountPriceDEV = 0
                            _InvoiceRows.DiscountPriceHUF = 0
                            _InvoiceRows.ListPriceDEV = Math.Round(Math.Abs(_PCIDetail.BallanceDEV) / (1 + _VAT.KeyValue), 2)
                            _InvoiceRows.ListPriceHUF = Math.Round(Math.Abs(_PCIDetail.BallanceHUF) / (1 + _VAT.KeyValue), 2)
                        End If

                        _InvoiceRows.InvoiceRowtype = eInvoiceRowType.FromManual
                        _InvoiceRows.VAT = _VAT
                        _InvoiceRows.Units = _ocur.FindObject(Of Units)(CriteriaOperator.Parse("DefaultForBusinnes=True"))
                        _InvoiceRows.ShortName = "ELŐLEG"
                        _InvoiceRows.Description = "ELŐLEG ÁTVÉTELE RENDELÉS ALAPJÁN. RENDELÉSI SZÁM : " & _OrderInHeader.DocumentNumber

                        If _OrderInHeader.OrderInParameters IsNot Nothing Then
                            If _OrderInHeader.OrderInParameters.Controlling_InvoiceAdvance_Default IsNot Nothing Then
                                _InvoiceRows.Controlling = _OrderInHeader.OrderInParameters.Controlling_InvoiceAdvance_Default
                            End If
                        End If
                        _InvoiceRows.RowIndex = 1

                        _ocur.CommitChanges()
                        _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _ocur)
                        _ocur.CommitChanges()

                        Dim _uow_pci As New UnitOfWork(_ocur.Session.DataLayer)
                        GLFunctions.ReconfigurePCI(_uow_pci, _InvoiceHeader.CustomersFrom, _InvoiceHeader.Customers, 0, _InvoiceHeader.ConnectInfo)

                        '// Előlegszámla nyomtatása

                        Dim _ReportData As ReportData
                        Dim _ReportData_DEV As ReportData
                        Dim _ReportData_DEV_EU As ReportData
                        Dim _CurrencyName As CurrencyName
                        _CurrencyName = _InvoiceHeader.CurrencyName
                        If _InvoiceHeader IsNot Nothing Then
                            _ReportData = _InvoiceHeader.InvoiceType.ReportData
                            _ReportData_DEV = _InvoiceHeader.InvoiceType.ReportData_DEV
                            _ReportData_DEV_EU = _InvoiceHeader.InvoiceType.ReportData_DEV_EU
                            If _ReportData IsNot Nothing Or _InvoiceHeader Is Nothing Then
                                If _CurrencyName.ShortName = "HUF" Then
                                    Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("InvoiceHeader.Oid=?", _InvoiceHeader.Oid), True)
                                Else
                                    Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData_DEV, CriteriaOperator.Parse("InvoiceHeader.Oid=?", _InvoiceHeader.Oid), True)
                                End If
                            End If
                        End If
                End Select
            End If
        End If

        If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
            Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        End If
        Exit Sub
CheckError:
        Select Case Err.Number
            Case 91, 13
                Resume Next
            Case Else
                Throw New UserFriendlyException(Err.Description)
        End Select
    End Sub
    Private Sub aGenerateInvoiceFromOrderInFinal_Execute(sender As Object, e As PopupWindowShowActionExecuteEventArgs) Handles aGenerateInvoiceFromOrderInFinal.Execute
        '// Végszámla készítése előlegek beszámításával
        Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
        Dim _InvoiceHeader As InvoiceHeader = _ocur.CreateObject(Of InvoiceHeader)()
        Dim _OrderInHeader As OrderInHeader = _ocur.GetObject(TryCast(View.SelectedObjects(0), OrderInHeader))
        Dim _CurrencyRate As Double = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyRate)
        Dim _NG As NumberGenerator
        Dim _InvoiceRows As InvoiceRows
        Dim _OrderInRows As OrderInRows
        Dim _OrderInRowsOther As OrderInRowsOther
        Dim _DeliveryNoteOutRows As DeliveryNoteOutRows

        Dim _InvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows As eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows = eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows.eOrderInRows


        On Error GoTo CheckError

        ' --- Ellenőrzés, hogy kell-e engedély ! --------------------------------------------------------------------------------------------------
        If _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).PaymentOption).PayMode <> ePayMode.InCash Then
            If _OrderInHeader.SubjectToApproval(_OrderInHeader, _ocur) And _OrderInHeader.PermissionAllowed = False Then
                MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInHeader", "PermissionNotAllowedToCreateInvoice")), _
                                       MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, _
                                       String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
                Exit Sub
            End If
        End If

        '// Meg kell nézni, hogy van-e mindenütt szándék !
        Dim _ReadyForFinalInvoice As Boolean = False

        '// Ha van kiállítva szállítólevél, akkor abból lesz a számla !
        If _OrderInHeader.DeliveryNoteOutRows IsNot Nothing Then
            If _OrderInHeader.DeliveryNoteOutRows.Count > 0 Then
                _InvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows = eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows.eDeliveryNoteOutRows
            Else
                _InvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows = eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows.eOrderInRows
            End If
        Else
            _InvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows = eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows.eOrderInRows
        End If


        If _InvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows = eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows.eDeliveryNoteOutRows Then
            For Each _DeliveryNoteOutRows In _OrderInHeader.DeliveryNoteOutRows
                If Math.Round(_DeliveryNoteOutRows.QTT_Will, 4, MidpointRounding.AwayFromZero) > 0 Then
                    _ReadyForFinalInvoice = True
                    Exit For
                End If
            Next
        Else
            For Each _OrderInRows In _OrderInHeader.OrderInRows
                If Math.Round(_OrderInRows.QTT_Process, 4, MidpointRounding.AwayFromZero) > 0 Then
                    _ReadyForFinalInvoice = True
                    Exit For
                End If
            Next
        End If

        For Each _OrderInRowsOther In _OrderInHeader.OrderInRowsOther
            If Math.Round(_OrderInRowsOther.QTT_Process, 4, MidpointRounding.AwayFromZero) > 0 Then
                _ReadyForFinalInvoice = True
                Exit For
            End If
        Next

        If _ReadyForFinalInvoice = False Then
            MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInHeader", "NoSelectionforFinalInvoice")), _
                                   MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, _
                                   String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
            Exit Sub
        End If

        '// Ha van proforma állapot akkor NE engedjen számlázni 
        _ReadyForFinalInvoice = True
        For Each _InvoiceRows In _OrderInHeader.InvoiceRows
            If _InvoiceRows.InvoiceHeader.IsProforma And String.IsNullOrEmpty(_InvoiceRows.InvoiceHeader.DocumentNumber) Then
                _ReadyForFinalInvoice = False
                Exit For
            End If
        Next
        If _ReadyForFinalInvoice = False Then
            MsgBox(String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions\OrderInHeader", "YesProformaInOrderInHeader")), _
                                             MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, _
                                             String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
            Exit Sub
        End If

        ' ---- FEJLÉC ADATOK MEGADÁSA -------------------------------------------------------------------------------------------------------------

        _InvoiceHeader.IsProforma = True
        _InvoiceHeader.IsEditable = False
        _InvoiceHeader.CustomersFrom = _OrderInHeader.CustomersFrom
        _InvoiceHeader.Customers = _OrderInHeader.Customers
        _InvoiceHeader.InvoiceType = _OrderInHeader.OrderInParameters.InvoiceType

        If _InvoiceHeader.InvoiceType.NumberGeneratorProforma IsNot Nothing Then
            _NG = _InvoiceHeader.InvoiceType.NumberGeneratorProforma
            _InvoiceHeader.DocumentNumberProforma = _NG.GetNewNumber(_NG)
        End If

        _InvoiceHeader.DateCreated = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DateCreated)
        _InvoiceHeader.DateExecution = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DateExecution)
        _InvoiceHeader.Description = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).Description)
        _InvoiceHeader.DescriptionHeader = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).Description_Header)
        _InvoiceHeader.BankInformation = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).BankInformation)


        _InvoiceHeader.CurrencyName = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyName)
        _InvoiceHeader.CurrencyRate = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).CurrencyRate)

        _InvoiceHeader.PaymentOption = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).PaymentOption)
        _InvoiceHeader.DatePayment = _ocur.GetObject(TryCast(e.PopupWindow.View.SelectedObjects(0), ORI_Invoice_Popup).DatePayment)

        '-- Próbaszámla miatt el kell menteni a tényleges adatokat --------------------------------------------------------
        _InvoiceHeader.Saved_Customers_Name = _OrderInHeader.Customers.Name.ToString
        _InvoiceHeader.Saved_Customers_Address_Country = _OrderInHeader.Customers.Address1.Country.ToString
        _InvoiceHeader.Saved_Customers_Address_ZipPostal = _OrderInHeader.Customers.Address1.ZipPostal.ToString
        _InvoiceHeader.Saved_Customers_Address_Street = _OrderInHeader.Customers.Address1.Street.ToString
        _InvoiceHeader.Saved_Customers_Address_City = _OrderInHeader.Customers.Address1.City.ToString
        _InvoiceHeader.Saved_Customers_Address_StateProvince = _OrderInHeader.Customers.Address1.StateProvince.ToString
        _InvoiceHeader.Saved_Customers_VATNumber = _OrderInHeader.Customers.VATNumber.ToString
        _InvoiceHeader.Saved_Customers_VATNumberEU = _OrderInHeader.Customers.VATNumberEU.ToString

        _InvoiceHeader.Saved_CustomersFrom_Name = _OrderInHeader.CustomersFrom.Name.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_ZipPostal = _OrderInHeader.CustomersFrom.Address1.ZipPostal.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_Street = _OrderInHeader.CustomersFrom.Address1.Street.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_City = _OrderInHeader.CustomersFrom.Address1.City.ToString
        _InvoiceHeader.Saved_CustomersFrom_Address_StateProvince = _OrderInHeader.CustomersFrom.Address1.StateProvince.ToString
        _InvoiceHeader.Saved_CustomersFrom_VATNumber = _OrderInHeader.CustomersFrom.VATNumber.ToString
        _InvoiceHeader.Saved_CustomersFrom_VATNumberEU = _OrderInHeader.CustomersFrom.VATNumberEU.ToString

        _InvoiceHeader.Saved_CustomersFrom_Bank_ShortName = _InvoiceHeader.BankInformation.FullBankAccount.ToString
        _InvoiceHeader.Saved_CustomersFrom_Bank_IBAN = _InvoiceHeader.BankInformation.IBAN.ToString
        _InvoiceHeader.Saved_CustomersFrom_Bank_SWIFT = _InvoiceHeader.BankInformation.SWIFT.ToString
        _InvoiceHeader.Saved_CustomersFrom_Bank_AccountNumber = _InvoiceHeader.BankInformation.AccountNumber.ToString

        _InvoiceHeader.Save()
        ' ---- FEJLÉC ADATOK MEGADÁSÁNAK VÉGE ----------------------------------------------------------------------------------------------------

        '------ A fejléchez tartozó sorok (termék és egyéb típusok) rendezése sorindex alapján ---------------
        _OrderInHeader.OrderInRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
        _OrderInHeader.OrderInRowsOther.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
        _OrderInHeader.DeliveryNoteOutRows.Sorting.Add(New SortProperty("RowIndex", DB.SortingDirection.Ascending))
        '-----------------------------------------------------------------------------------------------------

        ' A fejléchez tartozó sorok átadása -----------------------------------------------------------------

        Dim i As Int16 = 0

        '----------------------------- Átadjuk az összes termék típusú sort --------------------------------------
        If _InvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows = eInvoiceRows_Mode_DeliveryNoteOutRows_Or_OrderInRows.eOrderInRows Then
            For Each _OrderInRows In _OrderInHeader.OrderInRows
                If _OrderInRows.QTT_Process > 0 Then
                    If _OrderInRows.QTT - (_OrderInRows.QTT_Process + _OrderInRows.QTT_Invoiced) >= 0 Then
                        _InvoiceRows = _ocur.CreateObject(Of InvoiceRows)()
                        _InvoiceRows.InvoiceHeader = _InvoiceHeader
                        _InvoiceRows.OrderInRows = _OrderInRows
                        _InvoiceRows.QTT = _OrderInRows.QTT_Process
                        _OrderInRows.QTT_Invoiced += _OrderInRows.QTT_Process
                        If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                            _InvoiceRows.DiscountPriceHUF = _OrderInRows.DiscountPriceHUF
                            _InvoiceRows.ListPriceHUF = _OrderInRows.ListPriceHUF
                        Else
                            _InvoiceRows.DiscountPriceDEV = _OrderInRows.DiscountPriceDEV
                            _InvoiceRows.DiscountPriceHUF = _OrderInRows.DiscountPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                            _InvoiceRows.ListPriceDEV = _OrderInRows.ListPriceDEV
                            _InvoiceRows.ListPriceHUF = _OrderInRows.ListPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                        End If

                        _InvoiceRows.InvoiceRowtype = eInvoiceRowType.FromOrder
                        _InvoiceRows.VAT = _OrderInRows.VAT
                        _InvoiceRows.Units = _OrderInRows.Products.Units
                        _InvoiceRows.ShortName = _OrderInRows.Products.ShortName
                        _InvoiceRows.Description = _OrderInRows.Products.Description
                        _InvoiceRows.CustomsTariffs = _OrderInRows.Products.CustomsTariff
                        If _OrderInHeader.OrderInParameters IsNot Nothing Then
                            If _OrderInHeader.OrderInParameters.Controlling_Rows_Default IsNot Nothing Then
                                _InvoiceRows.Controlling = _OrderInHeader.OrderInParameters.Controlling_Rows_Default
                            End If
                        End If
                        _InvoiceRows.RowIndex = i
                        i += 1
                    End If
                End If
            Next
        Else
            For Each _DeliveryNoteOutRows In _OrderInHeader.DeliveryNoteOutRows
                If _DeliveryNoteOutRows.QTT_Will > 0 Then
                    If Math.Round(_DeliveryNoteOutRows.QTT, 4, MidpointRounding.AwayFromZero) - Math.Round((_DeliveryNoteOutRows.QTT_Will + _DeliveryNoteOutRows.QTT_Invoiced), 4, MidpointRounding.AwayFromZero) >= 0 Then
                        _InvoiceRows = _ocur.CreateObject(Of InvoiceRows)()
                        _InvoiceRows.InvoiceHeader = _InvoiceHeader
                        _InvoiceRows.OrderInRows = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows
                        _InvoiceRows.QTT = _DeliveryNoteOutRows.QTT_Will
                        _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.QTT_Invoiced += _DeliveryNoteOutRows.QTT_Will
                        _DeliveryNoteOutRows.QTT_Invoiced += _DeliveryNoteOutRows.QTT_Invoiced + _DeliveryNoteOutRows.QTT_Will
                        If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                            _InvoiceRows.DiscountPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceHUF
                            _InvoiceRows.ListPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceHUF
                        Else
                            _InvoiceRows.DiscountPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceDEV
                            _InvoiceRows.DiscountPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.DiscountPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                            _InvoiceRows.ListPriceDEV = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceDEV
                            _InvoiceRows.ListPriceHUF = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.ListPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                        End If

                        _InvoiceRows.InvoiceRowtype = eInvoiceRowType.FromOrder
                        _InvoiceRows.VAT = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.VAT
                        _InvoiceRows.Units = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.Units
                        _InvoiceRows.ShortName = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.ShortName
                        _InvoiceRows.Description = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.Description
                        _InvoiceRows.CustomsTariffs = _DeliveryNoteOutRows.StorageOutRowsInRows.StorageOutRows.OrderInRows.Products.CustomsTariff
                        _InvoiceRows.DeliveryNoteOutRows = _DeliveryNoteOutRows
                        If _OrderInHeader.OrderInParameters IsNot Nothing Then
                            If _OrderInHeader.OrderInParameters.Controlling_Rows_Default IsNot Nothing Then
                                _InvoiceRows.Controlling = _OrderInHeader.OrderInParameters.Controlling_Rows_Default
                            End If
                        End If
                        _InvoiceRows.RowIndex = i
                        i += 1
                    End If
                End If
            Next
        End If
        '----------------------------- Átadjuk az összes egyéb típusú sort --------------------------------------
        For Each _OrderInRowsOther In _OrderInHeader.OrderInRowsOther
            If _OrderInRowsOther.QTT_Process > 0 Then
                If _OrderInRowsOther.QTT - (_OrderInRowsOther.QTT_Process + _OrderInRowsOther.QTT_Invoiced) >= 0 Then
                    _InvoiceRows = _ocur.CreateObject(Of InvoiceRows)()
                    _InvoiceRows.InvoiceHeader = _InvoiceHeader
                    _InvoiceRows.OrderInRowsOther = _OrderInRowsOther
                    _InvoiceRows.QTT = _OrderInRowsOther.QTT_Process
                    _OrderInRowsOther.QTT_Invoiced += _OrderInRowsOther.QTT_Process
                    If _InvoiceHeader.CurrencyName.ShortName = "HUF" Then
                        _InvoiceRows.DiscountPriceHUF = _OrderInRowsOther.DiscountPriceHUF
                        _InvoiceRows.ListPriceHUF = _OrderInRowsOther.ListPriceHUF
                    Else
                        _InvoiceRows.DiscountPriceDEV = _OrderInRowsOther.DiscountPriceDEV
                        _InvoiceRows.DiscountPriceHUF = _OrderInRowsOther.DiscountPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                        _InvoiceRows.ListPriceDEV = _OrderInRowsOther.ListPriceDEV
                        _InvoiceRows.ListPriceHUF = _OrderInRowsOther.ListPriceDEV * _CurrencyRate ' A kerekítést még meg kell beszélni
                    End If

                    _InvoiceRows.InvoiceRowtype = eInvoiceRowType.FromOrder
                    _InvoiceRows.VAT = _OrderInRowsOther.VAT
                    _InvoiceRows.Units = _OrderInRowsOther.Units
                    _InvoiceRows.UniqueObjects = _OrderInRowsOther.UniqueObjects
                    _InvoiceRows.CostHolder = _OrderInRowsOther.CostHolder
                    _InvoiceRows.CostPlace = _OrderInRowsOther.CostPlace
                    _InvoiceRows.QualityOption = _OrderInRowsOther.QualityOption
                    _InvoiceRows.Description = _OrderInRowsOther.Description
                    _InvoiceRows.ShortName = _OrderInRowsOther.ShortName
                    _InvoiceRows.CustomsTariffs = _OrderInRowsOther.CustomsTariffs
                    If _OrderInHeader.OrderInParameters IsNot Nothing Then
                        If _OrderInHeader.OrderInParameters.Controlling_OtherRows_Default IsNot Nothing Then
                            _InvoiceRows.Controlling = _OrderInHeader.OrderInParameters.Controlling_OtherRows_Default
                        End If
                    End If
                    _InvoiceRows.RowIndex = i

                    i += 1
                End If
            End If
        Next

        '// Most mínusszal a beszámított előkegek
        Dim _ListView As ListPropertyEditor = TryCast(e.PopupWindow.View, DetailView).FindItem("InvoiceAdvance")
        If _ListView IsNot Nothing Then
            For Each _InvoiceHeader_Advance As InvoiceHeader In _ListView.ListView.SelectedObjects
                For Each _InvoiceRows_Advance As InvoiceRows In _InvoiceHeader_Advance.InvoiceRows
                    _InvoiceRows = _ocur.CreateObject(Of InvoiceRows)()
                    _InvoiceRows.InvoiceHeader = _InvoiceHeader
                    _InvoiceRows.InvoiceRowsAdvance = _ocur.GetObject(_InvoiceRows_Advance)
                    _InvoiceRows.QTT = -1
                    _InvoiceRows.DiscountPriceDEV = 0
                    _InvoiceRows.DiscountPriceHUF = 0
                    _InvoiceRows.ListPriceDEV = _ocur.GetObject(_InvoiceRows_Advance.ListPriceDEV)
                    _InvoiceRows.ListPriceHUF = _ocur.GetObject(_InvoiceRows_Advance.ListPriceHUF)
                    _InvoiceRows.InvoiceRowtype = eInvoiceRowType.FromOrder
                    _InvoiceRows.VAT = _ocur.GetObject(_InvoiceRows_Advance.VAT)
                    _InvoiceRows.Units = _ocur.GetObject(_InvoiceRows_Advance.Units)
                    _InvoiceRows.UniqueObjects = _ocur.GetObject(_InvoiceRows_Advance.UniqueObjects)
                    _InvoiceRows.CostHolder = _ocur.GetObject(_InvoiceRows_Advance.CostHolder)
                    _InvoiceRows.CostPlace = _ocur.GetObject(_InvoiceRows_Advance.CostPlace)
                    _InvoiceRows.QualityOption = _ocur.GetObject(_InvoiceRows_Advance.QualityOption)
                    _InvoiceRows.Description = String.Format("ELŐLEG BESZÁMÍTÁSA A {0} SZÁMLA ALAPJÁN", _InvoiceRows_Advance.InvoiceHeader.DocumentNumber)
                    _InvoiceRows.ShortName = "ELŐLEG BESZÁMÍTÁSA"
                    _InvoiceRows.CustomsTariffs = _ocur.GetObject(_InvoiceRows_Advance.CustomsTariffs)
                    If _OrderInHeader.OrderInParameters IsNot Nothing Then
                        If _OrderInHeader.OrderInParameters.Controlling_InvoiceAdvance_Default IsNot Nothing Then
                            _InvoiceRows.Controlling = _OrderInHeader.OrderInParameters.Controlling_InvoiceAdvance_Default
                        End If
                    End If
                    _InvoiceRows.RowIndex = i
                Next
            Next
        End If

        _ocur.CommitChanges()
        _InvoiceHeader.RecalculateInvoice(_InvoiceHeader, _ocur)
        _ocur.CommitChanges()

        Frame.GetController(Of RefreshController).RefreshAction.DoExecute()

        Exit Sub
CheckError:
        If Err.Number = 91 Then Resume Next
        If Err.Number = 13 Then Resume Next
        If Err.Number = 5 Then Throw New UserFriendlyException(Err.Description)

    End Sub

#End Region
#End Region

    Private Sub RecalculateDEV(_Object As Object, _OrderInHeader As OrderInHeader)
        Try
            Dim _OrderInRows As OrderInRows
            Dim _OrderInRowsOther As OrderInRowsOther
            If _OrderInHeader IsNot Nothing Then
                If _OrderInHeader.OrderInParameters.CurrencyName.ShortName <> "HUF" Then
                    For Each _OrderInRows In _OrderInHeader.OrderInRows
                        If _Object.PriceMode = ePriceMode.eDEVToHUF Then
                            _OrderInRows.ListPriceHUF = Math.Round(_OrderInRows.ListPriceDEV * _Object.CurrencyRate, 0, MidpointRounding.AwayFromZero)
                            _OrderInRows.DiscountPriceHUF = Math.Round(_OrderInRows.DiscountPriceDEV * _Object.CurrencyRate, 0, MidpointRounding.AwayFromZero)

                        Else
                            If _Object.CurrencyRate <> 0 Then
                                _OrderInRows.ListPriceDEV = Math.Round(_OrderInRows.ListPriceHUF / _Object.CurrencyRate, 2, MidpointRounding.AwayFromZero)
                                _OrderInRows.DiscountPriceDEV = Math.Round(_OrderInRows.DiscountPriceHUF / _Object.CurrencyRate, 2, MidpointRounding.AwayFromZero)
                            End If
                        End If
                        _OrderInRows.RecalculateRows()
                    Next

                    For Each _OrderInRowsOther In _OrderInHeader.OrderInRowsOther
                        If _Object.PriceMode = ePriceMode.eDEVToHUF Then
                            _OrderInRowsOther.ListPriceHUF = Math.Round(_OrderInRowsOther.ListPriceDEV * _Object.CurrencyRate, 0, MidpointRounding.AwayFromZero)
                            _OrderInRowsOther.DiscountPriceHUF = Math.Round(_OrderInRowsOther.DiscountPriceDEV * _Object.CurrencyRate, 0, MidpointRounding.AwayFromZero)

                        Else
                            If _Object.CurrencyRate <> 0 Then
                                _OrderInRowsOther.ListPriceDEV = Math.Round(_OrderInRowsOther.ListPriceHUF / _Object.CurrencyRate, 2, MidpointRounding.AwayFromZero)
                                _OrderInRowsOther.DiscountPriceDEV = Math.Round(_OrderInRowsOther.DiscountPriceHUF / _Object.CurrencyRate, 2, MidpointRounding.AwayFromZero)
                            End If
                        End If
                        _OrderInRowsOther.RecalculateRows()
                    Next

                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\SISBusinessExceptions", "MsgBoxCheckItAgain")))
        End Try
    End Sub

    Private Sub aORI_RecalculateTotalBrutto_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aORI_RecalculateTotalBrutto.Execute
        'Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)

        'For Each _OrderInHeader As OrderInHeader In View.SelectedObjects

        '    _OrderInHeader.RecalculateHeaderTotalBrutto()

        'Next
        '_ocur.CommitChanges()
        'If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
        '    Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
        'End If

    End Sub
End Class
