Files
SISBusiness/SISBusiness.Module/BusinessObjects/Financial/FinancialObjects/ProjectPlan/ProjectPlanVC.vb
T
2017-03-26 20:00:03 +02:00

761 lines
42 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 System.Linq
Imports System.Linq.Expressions
Imports DevExpress.Xpo
Imports DevExpress.Data.Filtering
Public Class ProjectPlanVC
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()
'This call is required by the Component Designer.
InitializeComponent()
RegisterActions(components)
End Sub
Private Sub aProjectPlanViewContract_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aProjectPlanViewContract.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ProjectPlanRows As ProjectPlanRows = _onew.GetObject(TryCast(View.SelectedObjects(0), ProjectPlanRows))
Dim _ContractRows_Controlling As New CollectionSource(_onew, GetType(ContractRows))
Dim _ContractRows As ContractRows
'_ContractRows.GLHeader.DateExecution.Date
_ContractRows_Controlling.BeginUpdateCriteria()
'_ContractRows_Controlling.Criteria("Plan1") = CriteriaOperator.Parse("(DebitChartOfAccounts.AccountNumber=? or CreditChartOfAccounts.AccountNumber=?)", _ProjectPlanRows.AccountNumber, _ProjectPlanRows.AccountNumber)
If _ProjectPlanRows.Controlling Is Nothing Then
_ContractRows_Controlling.Criteria("Controlling") = CriteriaOperator.Parse("isnull(Controlling)=True")
Else
_ContractRows_Controlling.Criteria("Controlling") = CriteriaOperator.Parse("Controlling=?", _ProjectPlanRows.Controlling)
End If
If _ProjectPlanRows.CostHolder Is Nothing Then
_ContractRows_Controlling.Criteria("CostHolder") = CriteriaOperator.Parse("isnull(CostHolder)=True")
Else
_ContractRows_Controlling.Criteria("CostHolder") = CriteriaOperator.Parse("CostHolder=?", _ProjectPlanRows.CostHolder)
End If
If _ProjectPlanRows.CostPlace Is Nothing Then
_ContractRows_Controlling.Criteria("CostPlace") = CriteriaOperator.Parse("isnull(CostPlace)=True")
Else
_ContractRows_Controlling.Criteria("CostPlace") = CriteriaOperator.Parse("CostPlace=?", _ProjectPlanRows.CostPlace)
End If
If _ProjectPlanRows.JobNumberObjects Is Nothing Then
_ContractRows_Controlling.Criteria("JobNumberObjects") = CriteriaOperator.Parse("isnull(JobNumberObjects)=True")
Else
_ContractRows_Controlling.Criteria("JobNumberObjects") = CriteriaOperator.Parse("JobNumberObjects=?", _ProjectPlanRows.JobNumberObjects)
End If
If _ProjectPlanRows.UniqueObjects Is Nothing Then
_ContractRows_Controlling.Criteria("UniqueObjects") = CriteriaOperator.Parse("isnull(UniqueObjects)=True")
Else
_ContractRows_Controlling.Criteria("UniqueObjects") = CriteriaOperator.Parse("UniqueObjects=?", _ProjectPlanRows.UniqueObjects)
End If
_ContractRows_Controlling.Criteria("DateExecution") = CriteriaOperator.Parse("GetYear(DateExecution)=? and GetMonth(DateExecution)=? and Contracts.CustomersFrom=?", _
_ProjectPlanRows.DateYear, _ProjectPlanRows.DateMonth, _ProjectPlanRows.ProjectPlan.CustomersFrom)
_ContractRows_Controlling.EndUpdateCriteria()
e.ShowViewParameters.CreatedView = Application.CreateListView("ContractRows_ListView_ProjectPlan", _ContractRows_Controlling, True)
End Sub
Private Sub aProjectPlanGenerateFact_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aProjectPlanGenerateFact.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _uow As New UnitOfWork(_onew.Session.DataLayer)
Dim _ProjectPlan As ProjectPlan = _uow.GetObjectByKey(Of ProjectPlan)(TryCast(View.SelectedObjects(0), ProjectPlan).Oid)
Dim _ProjectPlanRows As ProjectPlanRows
Dim _SQL As String
Select Case GLOBAL_SQLType
Case eSQLType.PostgreSQL
_SQL = "Update ""ProjectPlanRows"" set "
_SQL += " ""DebitAmountFactHUF""=0,""CreditAmountFactHUF""=0, "
_SQL += " ""DebitAmountContractHUF""=0,""CreditAmountContractHUF""=0 "
_SQL += " Where ""ProjectPlan""='" & _ProjectPlan.Oid.ToString & "'"
Case Else
_SQL = "Update ProjectPlanRows set "
_SQL += " DebitAmountFactHUF=0,CreditAmountFactHUF=0, "
_SQL += " DebitAmountContractHUF=0,CreditAmountContractHUF=0 "
_SQL += " Where ProjectPlan='" & _ProjectPlan.Oid.ToString & "'"
End Select
_onew.Session.ExecuteNonQuery(_SQL)
_onew.CommitChanges()
Dim _ChartOfAccounts As ChartOfAccounts
Dim _AccountNumber As String = ""
Dim _Customers As Customers
Dim _Controlling As Controlling
Dim _VAT As VAT
Dim _GLRows_xpquery = New XPQuery(Of GLRows)(_uow)
Dim query As System.Linq.IQueryable(Of Object)
Dim _criteria As String = ""
'// Tartozik láb alapján
query = From _glrows In _GLRows_xpquery
Where _glrows.GLHeader.IsEditable = False And _
_glrows.GLHeader.DateExecution.Date >= _ProjectPlan.DateFrom.Date And _
_glrows.GLHeader.DateExecution.Date < _ProjectPlan.DateTo.Date And _
_glrows.GLHeader IsNot Nothing And _
_glrows.GLHeader.CustomersFrom.Oid = _ProjectPlan.CustomersFrom.Oid _
Group _glrows By _glrows.DebitChartOfAccounts.AccountNumber, _
_glrows.GLHeader.DateExecution.Date.Year, _
_glrows.GLHeader.DateExecution.Date.Month, _
_glrows.Controlling, _
_glrows.CostHolder, _
_glrows.CostPlace, _
_glrows.UniqueObjects, _
_glrows.JobNumberObjects Into g = Group _
Select New With {Key .AccountNumber = AccountNumber, _
Key .DateYear = Year, _
Key .DateMonth = Month, _
Key .Controlling = Controlling, _
Key .CostHolder = CostHolder, _
Key .CostPlace = CostPlace, _
Key .UniqueObjects = UniqueObjects, _
Key .JobNumberObjects = JobNumberObjects, _
Key .AmountNettoHUF = g.Sum(Function(inv) (inv.AmountHUF))}
RaiseEvent InitWork(1, 1, query.Count)
For Each item In query
RaiseEvent DoWork()
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & item.AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_ProjectPlanRows.DebitAmountFactHUF += item.AmountNettoHUF
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", item.AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = item.AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
Next
_uow.CommitTransaction()
RaiseEvent FinalWork
'// Követel láb alapján
query = From _glrows In _GLRows_xpquery
Where _glrows.GLHeader.IsEditable = False And _
_glrows.GLHeader.DateExecution.Date >= _ProjectPlan.DateFrom.Date And _
_glrows.GLHeader.DateExecution.Date < _ProjectPlan.DateTo.Date And _
_glrows.GLHeader IsNot Nothing And _
_glrows.GLHeader.CustomersFrom.Oid = _ProjectPlan.CustomersFrom.Oid _
Group _glrows By _glrows.CreditChartOfAccounts.AccountNumber, _
_glrows.GLHeader.DateExecution.Date.Year, _
_glrows.GLHeader.DateExecution.Date.Month, _
_glrows.Controlling, _
_glrows.CostHolder, _
_glrows.CostPlace, _
_glrows.UniqueObjects, _
_glrows.JobNumberObjects Into g = Group _
Select New With {Key .AccountNumber = AccountNumber, _
Key .DateYear = Year, _
Key .DateMonth = Month, _
Key .Controlling = Controlling, _
Key .CostHolder = CostHolder, _
Key .CostPlace = CostPlace, _
Key .UniqueObjects = UniqueObjects, _
Key .JobNumberObjects = JobNumberObjects, _
Key .AmountNettoHUF = g.Sum(Function(inv) (inv.AmountHUF))}
RaiseEvent InitWork(1, 1, query.Count)
For Each item In query
RaiseEvent DoWork()
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & item.AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_ProjectPlanRows.CreditAmountFactHUF += item.AmountNettoHUF
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", item.AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = item.AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
Next
_uow.CommitTransaction()
RaiseEvent FinalWork
'// Most a vevõi szerzõdési sorok jönnek
Dim _ContractRows_xpquery = New XPQuery(Of ContractRows)(_uow)
query = From _ContractRows In _ContractRows_xpquery
Where _ContractRows.Contracts.State = State.Signed And _
_ContractRows.Contracts.ContractTemplate.PartnerType = ePartnerType.eReceivables And _
_ContractRows.DateExecution.Date >= _ProjectPlan.DateFrom.Date And _
_ContractRows.DateExecution.Date < _ProjectPlan.DateTo.Date And _
_ContractRows.Contracts IsNot Nothing And _
_ContractRows.Contracts.CustomersFrom.Oid = _ProjectPlan.CustomersFrom.Oid _
Group _ContractRows By _ContractRows.DateExecution.Date.Year, _
_ContractRows.DateExecution.Date.Month, _
_ContractRows.Controlling, _
_ContractRows.CostHolder, _
_ContractRows.CostPlace, _
_ContractRows.UniqueObjects, _
_ContractRows.Contracts.Customers, _
_ContractRows.VAT, _
_ContractRows.JobNumberObjects Into g = Group _
Select New With {Key .DateYear = Year, _
Key .DateMonth = Month, _
Key .Controlling = Controlling, _
Key .CostHolder = CostHolder, _
Key .CostPlace = CostPlace, _
Key .UniqueObjects = UniqueObjects, _
Key .JobNumberObjects = JobNumberObjects, _
Key .VAT = VAT,
Key .Customers = Customers,
Key .AmountNettoHUF = g.Sum(Function(inv) (inv.QTT * inv.NettoPriceHUF))}
RaiseEvent InitWork(1, 1, query.Count)
For Each item In query
RaiseEvent DoWork()
_Customers = item.Customers
_ChartOfAccounts = _Customers.CustomersGLParameters.GetChartOfAccounts(item.DateYear, eVATMode.eOut)
If _ChartOfAccounts IsNot Nothing Then
_AccountNumber = _ChartOfAccounts.AccountNumber
End If
'//Bruttó sor tartozikba -------------------
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & _AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_VAT = item.VAT
If _VAT IsNot Nothing Then
_ProjectPlanRows.DebitAmountContractHUF += Math.Round(item.AmountNettoHUF * (1 + _VAT.KeyValue), 0, MidpointRounding.AwayFromZero)
Else
_ProjectPlanRows.DebitAmountContractHUF += item.AmountNettoHUF
End If
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", _AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = _AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
'//Nettó sor követelbe --------------------------
_Controlling = item.Controlling
If _Controlling IsNot Nothing Then
_ChartOfAccounts = _Controlling.GetChartOfAccounts(item.DateYear, False)
If _ChartOfAccounts IsNot Nothing Then
_AccountNumber = _ChartOfAccounts.AccountNumber
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & _AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_ProjectPlanRows.CreditAmountContractHUF += item.AmountNettoHUF
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", _AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = _AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
End If
End If
'//ÁFA követelbe -------------------------------
If _VAT IsNot Nothing Then
_ChartOfAccounts = _VAT.GetChartOfAccounts(item.DateYear, eVATMode.eOut)
If _ChartOfAccounts IsNot Nothing Then
_AccountNumber = _ChartOfAccounts.AccountNumber
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & _AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_ProjectPlanRows.CreditAmountContractHUF += Math.Round(item.AmountNettoHUF * _VAT.KeyValue, 0, MidpointRounding.AwayFromZero)
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", _AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = _AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
End If
End If
Next
_uow.CommitTransaction()
RaiseEvent FinalWork
'// Most a Szállítói szerzõdési sorok jönnek
query = From _ContractRows In _ContractRows_xpquery
Where _ContractRows.Contracts.State = State.Signed And _
_ContractRows.Contracts.ContractTemplate.PartnerType = ePartnerType.ePayabels And _
_ContractRows.DateExecution.Date >= _ProjectPlan.DateFrom.Date And _
_ContractRows.DateExecution.Date < _ProjectPlan.DateTo.Date And _
_ContractRows.Contracts IsNot Nothing And _
_ContractRows.Contracts.CustomersFrom.Oid = _ProjectPlan.CustomersFrom.Oid _
Group _ContractRows By _ContractRows.DateExecution.Date.Year, _
_ContractRows.DateExecution.Date.Month, _
_ContractRows.Controlling, _
_ContractRows.CostHolder, _
_ContractRows.CostPlace, _
_ContractRows.UniqueObjects, _
_ContractRows.Contracts.Customers, _
_ContractRows.VAT, _
_ContractRows.JobNumberObjects Into g = Group _
Select New With {Key .DateYear = Year, _
Key .DateMonth = Month, _
Key .Controlling = Controlling, _
Key .CostHolder = CostHolder, _
Key .CostPlace = CostPlace, _
Key .UniqueObjects = UniqueObjects, _
Key .JobNumberObjects = JobNumberObjects, _
Key .VAT = VAT,
Key .Customers = Customers,
Key .AmountNettoHUF = g.Sum(Function(inv) (inv.QTT * inv.NettoPriceHUF))}
RaiseEvent InitWork(1, 1, query.Count)
For Each item In query
RaiseEvent DoWork()
_Customers = item.Customers
_ChartOfAccounts = _Customers.CustomersGLParameters.GetChartOfAccounts(item.DateYear, eVATMode.eIn)
If _ChartOfAccounts IsNot Nothing Then
_AccountNumber = _ChartOfAccounts.AccountNumber
End If
'//Bruttó sor követel -------------------
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & _AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_VAT = item.VAT
If _VAT IsNot Nothing Then
_ProjectPlanRows.CreditAmountContractHUF += Math.Round(item.AmountNettoHUF * (1 + _VAT.KeyValue), 0, MidpointRounding.AwayFromZero)
Else
_ProjectPlanRows.CreditAmountContractHUF += item.AmountNettoHUF
End If
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", _AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = _AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
'//Nettó sor tartozikba --------------------------
_Controlling = item.Controlling
If _Controlling IsNot Nothing Then
_ChartOfAccounts = _Controlling.GetChartOfAccounts(item.DateYear, False)
If _ChartOfAccounts IsNot Nothing Then
_AccountNumber = _ChartOfAccounts.AccountNumber
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & _AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_ProjectPlanRows.DebitAmountContractHUF += item.AmountNettoHUF
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", _AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = _AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
End If
End If
'//ÁFA követelbe -------------------------------
If _VAT IsNot Nothing Then
_ChartOfAccounts = _VAT.GetChartOfAccounts(item.DateYear, eVATMode.eIn)
If _ChartOfAccounts IsNot Nothing Then
_AccountNumber = _ChartOfAccounts.AccountNumber
'//-------------------------------------------------------------------------------------------------------------
_criteria = " AccountNumber='" & _AccountNumber & "' and"
_criteria += " DateYear=" & item.DateYear & " and "
_criteria += " DateMonth=" & item.DateMonth & " and "
If item.Controlling Is Nothing Then
_criteria += "isnull(Controlling)=True and "
Else
_criteria += " Controlling.Oid='" & item.Controlling.Oid.ToString & "' and "
End If
If item.CostHolder Is Nothing Then
_criteria += " isnull(CostHolder)=True and "
Else
_criteria += " CostHolder.Oid='" & item.CostHolder.Oid.ToString & "' and "
End If
If item.CostPlace Is Nothing Then
_criteria += " isnull(CostPlace)=True and "
Else
_criteria += " CostPlace.Oid='" & item.CostPlace.Oid.ToString & "' and "
End If
If item.UniqueObjects Is Nothing Then
_criteria += " isnull(UniqueObjects)=True and "
Else
_criteria += " UniqueObjects.Oid='" & item.UniqueObjects.Oid.ToString & "' and "
End If
If item.JobNumberObjects Is Nothing Then
_criteria += " isnull(JobNumberObjects)=True "
Else
_criteria += " JobNumberObjects.Oid='" & item.JobNumberObjects.Oid.ToString & "' "
End If
_ProjectPlanRows = _uow.FindObject(Of ProjectPlanRows)(PersistentCriteriaEvaluationBehavior.InTransaction, CriteriaOperator.Parse(_criteria))
If _ProjectPlanRows Is Nothing Then
_ProjectPlanRows = New ProjectPlanRows(_uow)
End If
_ProjectPlanRows.ProjectPlan = _ProjectPlan
_ProjectPlanRows.DebitAmountContractHUF += Math.Round(item.AmountNettoHUF * _VAT.KeyValue, 0, MidpointRounding.AwayFromZero)
_ChartOfAccounts = _uow.FindObject(Of ChartOfAccounts)(CriteriaOperator.Parse("AccountNumber=?", _AccountNumber))
If _ChartOfAccounts IsNot Nothing Then
_ProjectPlanRows.ChartOfAccountsName = _ChartOfAccounts.Name
End If
_ProjectPlanRows.AccountNumber = _AccountNumber
_ProjectPlanRows.Controlling = item.Controlling
_ProjectPlanRows.CostHolder = item.CostHolder
_ProjectPlanRows.DateYear = item.DateYear
_ProjectPlanRows.DateMonth = item.DateMonth
_ProjectPlanRows.JobNumberObjects = item.JobNumberObjects
_ProjectPlanRows.UniqueObjects = item.UniqueObjects
_uow.CommitTransaction()
End If
End If
Next
_uow.CommitTransaction()
_SQL = " Delete from ""ProjectPlanRows"" "
_SQL += " Where ""DebitAmountPlanHUF""=0 and "
_SQL += " ""CreditAmountPlanHUF""=0 and "
_SQL += " ""DebitAmountFactHUF""=0 and "
_SQL += " ""CreditAmountFactHUF""=0 and "
_SQL += " ""DebitAmountContractHUF""=0 and "
_SQL += " ""CreditAmountContractHUF""=0 "
_onew.Session.ExecuteNonQuery(_SQL)
RaiseEvent FinalWork
End Sub
Private Sub aProjectPlanGeneratePlan_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aProjectPlanEditPlan.Execute
End Sub
Private Sub aProjectPlanShowPlan_Execute(sender As Object, e As SimpleActionExecuteEventArgs)
End Sub
Private Sub aProjectPlanViewFact_Execute(sender As Object, e As SimpleActionExecuteEventArgs) Handles aProjectPlanViewFact.Execute
Dim _onew As Xpo.XPObjectSpace = Application.CreateObjectSpace
Dim _ProjectPlanRows As ProjectPlanRows = _onew.GetObject(TryCast(View.SelectedObjects(0), ProjectPlanRows))
Dim _GLRows_Controlling As New CollectionSource(_onew, GetType(GLRows))
Dim _GLRows As GLRows
'_GLRows.GLHeader.DateExecution.Date
_GLRows_Controlling.BeginUpdateCriteria()
_GLRows_Controlling.Criteria("Plan1") = CriteriaOperator.Parse("(DebitChartOfAccounts.AccountNumber=? or CreditChartOfAccounts.AccountNumber=?)", _
_ProjectPlanRows.AccountNumber, _ProjectPlanRows.AccountNumber)
If _ProjectPlanRows.Controlling Is Nothing Then
_GLRows_Controlling.Criteria("Controlling") = CriteriaOperator.Parse("isnull(Controlling)=True")
Else
_GLRows_Controlling.Criteria("Controlling") = CriteriaOperator.Parse("Controlling=?", _ProjectPlanRows.Controlling)
End If
If _ProjectPlanRows.CostHolder Is Nothing Then
_GLRows_Controlling.Criteria("CostHolder") = CriteriaOperator.Parse("isnull(CostHolder)=True")
Else
_GLRows_Controlling.Criteria("CostHolder") = CriteriaOperator.Parse("CostHolder=?", _ProjectPlanRows.CostHolder)
End If
If _ProjectPlanRows.CostPlace Is Nothing Then
_GLRows_Controlling.Criteria("CostPlace") = CriteriaOperator.Parse("isnull(CostPlace)=True")
Else
_GLRows_Controlling.Criteria("CostPlace") = CriteriaOperator.Parse("CostPlace=?", _ProjectPlanRows.CostPlace)
End If
If _ProjectPlanRows.JobNumberObjects Is Nothing Then
_GLRows_Controlling.Criteria("JobNumberObjects") = CriteriaOperator.Parse("isnull(JobNumberObjects)=True")
Else
_GLRows_Controlling.Criteria("JobNumberObjects") = CriteriaOperator.Parse("JobNumberObjects=?", _ProjectPlanRows.JobNumberObjects)
End If
If _ProjectPlanRows.UniqueObjects Is Nothing Then
_GLRows_Controlling.Criteria("UniqueObjects") = CriteriaOperator.Parse("isnull(UniqueObjects)=True")
Else
_GLRows_Controlling.Criteria("UniqueObjects") = CriteriaOperator.Parse("UniqueObjects=?", _ProjectPlanRows.UniqueObjects)
End If
_GLRows_Controlling.Criteria("DateExecution") = CriteriaOperator.Parse("GetYear(GLHeader.DateExecution)=? and GetMonth(GLHeader.DateExecution)=? and GLHeader.IsEditable=False and GLHeader.CustomersFrom=?", _
_ProjectPlanRows.DateYear, _ProjectPlanRows.DateMonth, _ProjectPlanRows.ProjectPlan.CustomersFrom)
_GLRows_Controlling.EndUpdateCriteria()
e.ShowViewParameters.CreatedView = Application.CreateListView("GLRows_ListView_ProjectPlan", _GLRows_Controlling, True)
End Sub
End Class