Files
Nuvolar/Nuvolar.Module/BusinessObjects/Business/BusinessTransactions/DeliveryNote/DeliveryNoteIn/Intrastat/IntrastatHeader_VC.vb
T
2017-03-08 11:21:27 +01:00

188 lines
10 KiB
VB.net

Imports System
Imports System.ComponentModel
Imports System.Collections.Generic
Imports System.Diagnostics
Imports System.Text
Imports DevExpress.ExpressApp
Imports DevExpress.ExpressApp.Actions
Imports DevExpress.Persistent.Base
Imports DevExpress.Xpo
Imports System.Linq
Imports DevExpress.Persistent.BaseImpl
Imports DevExpress.Data.Filtering
Imports DevExpress.ExpressApp.SystemModule
Imports DevExpress.ExpressApp.Utils
Public Class IntrastatHeader_VC
Inherits DevExpress.ExpressApp.ViewController
Public Event InitWork(ByVal _Minimum As Long, ByVal _Step As Long, ByVal _Maximum As Long)
Public Event DoWork()
Public Event FinalWork
Public Sub New()
MyBase.New()
InitializeComponent()
RegisterActions(components)
End Sub
Private Sub aIntrastatHeader_GenerateIntrastatRows_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aIntrastatHeader_GenerateIntrastatRows.Execute
Try
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _IntrastatHeader As IntrastatHeader = TryCast(View.SelectedObjects(0), IntrastatHeader)
Dim _IntrastatRows_DELCollection As New XPCollection(Of IntrastatRows)(_ocur.Session, DevExpress.Data.Filtering.CriteriaOperator.Parse("IntrastatHeader=?", _IntrastatHeader))
'// Nullás súlyok terméktörzsbõl update
_ocur.Delete(_IntrastatRows_DELCollection)
_ocur.CommitChanges()
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _DeliveryNoteInRows_XPQuery = New XPQuery(Of DeliveryNoteInRows)(_onew.Session)
Dim query = From _DeliveryNoteInRows In _DeliveryNoteInRows_XPQuery _
Where _DeliveryNoteInRows.DeliveryNoteInHeader.DateExecution.Year = _IntrastatHeader.DateExecution.Year And
_DeliveryNoteInRows.DeliveryNoteInHeader.DateExecution.Month = _IntrastatHeader.DateExecution.Month
Group _DeliveryNoteInRows By _DeliveryNoteInRows.DeliveryNoteInHeader.ShipmentOption,
_DeliveryNoteInRows.Products.CustomsTariff,
_DeliveryNoteInRows.DeliveryNoteInHeader.Customers.Address1.Country,
_DeliveryNoteInRows.Products.CountryFrom,
_DeliveryNoteInRows.ShipingCode,
_DeliveryNoteInRows.ITransactionNumber,
_DeliveryNoteInRows.DeliveryNoteInHeader.DateExecution Into g = Group _
Select New With {Key .ShipmentOption = ShipmentOption, _
Key .CustomTariffs = CustomsTariff, _
Key .ITransactionNumber = ITransactionNumber, _
Key .CountryFrom = CountryFrom, _
Key .ShipingCode = ShipingCode, _
Key .CountrySender = Country, _
Key .DateExecution = DateExecution, _
Key .AmountHUF_Sum = g.Sum(Function(inv) (inv.ListPriceHUF - inv.DiscountPriceHUF) * inv.QTT), _
Key .Area_Sum = g.Sum(Function(inv) inv.Area), _
Key .Weight_Sum = g.Sum(Function(inv) inv.Weight)}
Dim _RowIndex As Long = 1
RaiseEvent InitWork(1, 1, query.Count)
For Each item In query
RaiseEvent DoWork()
If GLOBAL_EUMemberStates.Contains(item.CountrySender.GetMemberValue("ShortName")) Then
Dim _IntrastatRows As New IntrastatRows(_onew.Session)
With _IntrastatRows
.IntrastatHeader = _onew.GetObject(_IntrastatHeader)
.RowIndex = _RowIndex
.ITransactionNumber = item.ITransactionNumber
.ShipmentOption = item.ShipmentOption
.CustomsTariffs = item.CustomTariffs
.CountrySender = item.CountrySender
.ShipingCode = item.ShipingCode
.CountryFrom = item.CountryFrom
.AmountHUF = item.AmountHUF_Sum
.Area = item.Area_Sum
.Weight = item.Weight_Sum
End With
_RowIndex += 1
End If
Next
_onew.CommitChanges()
If Frame.GetController(Of RefreshController).RefreshAction.Enabled Then
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, "Hiba!")
Finally
RaiseEvent FinalWork
End Try
End Sub
Private Sub aIntrastatCheckPrice_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aIntrastatCheckPrice.Execute
'// számlaigazolásból árak ellenõrzése
Dim _DeliveryNoteInRows As DeliveryNoteInRows
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _DeliveryNoteInRows In View.SelectedObjects
RaiseEvent DoWork()
If _DeliveryNoteInRows.DeliveryNoteInHeader.CurrencyName.ShortName <> "HUF" Then
If _DeliveryNoteInRows.DeliveryNoteInRRFC.Count > 0 Then
_DeliveryNoteInRows.ListPriceHUF = Math.Round(_DeliveryNoteInRows.ListPriceDEV * _DeliveryNoteInRows.DeliveryNoteInHeader.CurrencyRate, 0, MidpointRounding.AwayFromZero)
If _DeliveryNoteInRows.Weight <= 0 Then
_DeliveryNoteInRows.WeightMode = eWeightMode.eTotalWeightperQuantity
If _DeliveryNoteInRows.Products.NettoWeight <> 0 Then
_DeliveryNoteInRows.Weight = Math.Round(_DeliveryNoteInRows.QTT * _DeliveryNoteInRows.Products.NettoWeight, 4, 0)
End If
End If
End If
End If
Next
_ocur.CommitChanges()
RaiseEvent FinalWork
End Sub
Private Sub SimpleAction1_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aIntrastatCheckWeight.Execute
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _DeliveryNoteInRows As DeliveryNoteInRows
RaiseEvent InitWork(1, 1, View.SelectedObjects.Count)
For Each _DeliveryNoteInRows In View.SelectedObjects
RaiseEvent DoWork()
Dim _StorageInRows_Collection As New XPCollection(Of StorageInRows)(_ocur.Session,
CriteriaOperator.Parse("DeliveryNoteInRows=?", _DeliveryNoteInRows))
Dim _StorageInRows As StorageInRows
For Each _StorageInRows In _StorageInRows_Collection
If _StorageInRows.DeliveryNoteInRows IsNot Nothing Then
If _StorageInRows.DeliveryNoteInRows.Weight <> 0 Then
If _StorageInRows.DeliveryNoteInRows.QTT <> 0 Then
_StorageInRows.Weight = Math.Round((_StorageInRows.DeliveryNoteInRows.Weight / _StorageInRows.DeliveryNoteInRows.QTT) * _StorageInRows.QTT, 2, MidpointRounding.AwayFromZero)
End If
End If
End If
If _StorageInRows.StorageInRowsFrom IsNot Nothing Then
If _StorageInRows.StorageInRowsFrom.DeliveryNoteInRows IsNot Nothing Then
_StorageInRows.DeliveryNoteInRows = _StorageInRows.StorageInRowsFrom.DeliveryNoteInRows
If _StorageInRows.StorageInRowsFrom.DeliveryNoteInRows.Weight <> 0 Then
If _StorageInRows.StorageInRowsFrom.DeliveryNoteInRows.QTT <> 0 Then
_StorageInRows.Weight = Math.Round((_StorageInRows.StorageInRowsFrom.DeliveryNoteInRows.Weight / _StorageInRows.StorageInRowsFrom.DeliveryNoteInRows.QTT) * _StorageInRows.QTT, 2, MidpointRounding.AwayFromZero)
End If
End If
End If
End If
Dim _StorageInRows_From_Collection As New XPCollection(Of StorageInRows)(_ocur.Session, CriteriaOperator.Parse("StorageInRowsFrom=?", _StorageInRows))
Dim _StorageInRows_From As StorageInRows
For Each _StorageInRows_From In _StorageInRows_From_Collection
_StorageInRows_From.DeliveryNoteInRows = _StorageInRows.DeliveryNoteInRows
_StorageInRows_From.Weight = (_StorageInRows.Weight / _StorageInRows.QTT) * _StorageInRows_From.QTT
Next
_ocur.CommitChanges()
Next
Next
RaiseEvent FinalWork
End Sub
Private Sub aPrintIntrastat_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aPrintIntrastat.Execute
Try
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
Dim _IntrastatHeader As IntrastatHeader = TryCast(View.SelectedObjects(0), IntrastatHeader)
If _IntrastatHeader Is Nothing Then Throw New Exception("*Váratlan hiba történt, a folyamat megszakadt!")
Dim _ReportData As ReportData = _IntrastatHeader.IntrastatParameters.Report
If _ReportData Is Nothing Then Throw New Exception("*Nincs beállítva nyomtatvány!" + vbNewLine + "A folyamat megszakadt!")
Frame.GetController(Of Reports.ReportServiceController).ShowPreview(_ReportData, CriteriaOperator.Parse("IntrastatHeader.Oid=?", _IntrastatHeader.Oid), True)
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.OkOnly + MsgBoxStyle.Critical, String.Format(CaptionHelper.GetLocalizedText("Exceptions\NuvolarExceptions", "MsgBoxCheckItAgain")))
End Try
End Sub
End Class