679 lines
41 KiB
VB.net
679 lines
41 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 FarPoint.Win.Spread
|
|
Imports DevExpress.ExpressApp.SystemModule
|
|
Imports System.IO
|
|
Imports DevExpress.Persistent.BaseImpl
|
|
Imports DevExpress.Data.Filtering
|
|
Imports DevExpress.ExpressApp.Win.Editors
|
|
Imports DevExpress.Xpo
|
|
Imports DevExpress.ExpressApp.Win.SystemModule
|
|
Imports DevExpress.ExpressApp.Editors
|
|
|
|
|
|
Public Class CornerVC
|
|
Inherits DevExpress.ExpressApp.ViewController
|
|
Dim _WaitFormClass As New WaitFormClass
|
|
Private _FpSpread As FpSpread
|
|
Private _GridListEditor As GridListEditor
|
|
Public Sub New()
|
|
MyBase.New()
|
|
InitializeComponent()
|
|
RegisterActions(components)
|
|
End Sub
|
|
Protected Overrides Sub OnActivated()
|
|
MyBase.OnActivated()
|
|
If View.Id = "Corner_InvoiceNameParameters_ListView" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of PrintingController)()?.Active.SetItemValue("", False)
|
|
End If
|
|
If View.Id = "Corner_CustomerNameParameters_ListView" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of PrintingController)()?.Active.SetItemValue("", False)
|
|
End If
|
|
If View.Id = "Corner_GLAccounts_ListView" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of PrintingController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", False)
|
|
End If
|
|
If View.Id = "GLHeader_GLRows_ListView_Accounts" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", False)
|
|
Frame.GetController(Of PrintingController)()?.Active.SetItemValue("", False)
|
|
End If
|
|
If View.Id = "Corner_DetailView" Then
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAction.Executing, AddressOf SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndCloseAction.Executing, AddressOf SaveAction_Executing
|
|
AddHandler Frame.GetController(Of ModificationsController)().SaveAndNewAction.Executing, AddressOf SaveAction_Executing
|
|
End If
|
|
End Sub
|
|
Protected Overrides Sub OnDeactivated()
|
|
MyBase.OnDeactivated()
|
|
If View.Id = "Corner_InvoiceNameParameters_ListView" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", True)
|
|
End If
|
|
If View.Id = "Corner_CustomerNameParameters_ListView" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", True)
|
|
End If
|
|
If View.Id = "Corner_GLAccounts_ListView" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of PrintingController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.DeleteObjectsViewController)()?.Active.SetItemValue("", True)
|
|
End If
|
|
If View.Id = "GLHeader_GLRows_ListView_Accounts" Then
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.LinkUnlinkController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.CloneObject.CloneObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.NewObjectViewController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ListViewProcessCurrentObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.Win.SystemModule.OpenObjectController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.ExportController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of DevExpress.ExpressApp.SystemModule.RecordsNavigationController)()?.Active.SetItemValue("", True)
|
|
Frame.GetController(Of PrintingController)()?.Active.SetItemValue("", True)
|
|
End If
|
|
If View.Id = "Corner_CustomerNameParameters_ListView" Then ' Az inline edit beállítása.
|
|
Dim _ListView As ListView = TryCast(View, ListView)
|
|
_GridListEditor = TryCast(_ListView.Editor, GridListEditor)
|
|
|
|
If _GridListEditor IsNot Nothing Then
|
|
Dim _Grid = _GridListEditor.GridView
|
|
RemoveHandler _Grid.ShownEditor, AddressOf GridView_ShownEditor
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub ExcelControlViewItem_ControlCreated(ByVal sender As Object, ByVal e As EventArgs)
|
|
Dim itemControl As Object = (CType(sender, ViewItem)).Control
|
|
|
|
_FpSpread = TryCast(itemControl, ExcelUserControl).FpSpreadControl
|
|
|
|
Dim _FileName As String = Path.GetTempPath & "Out.xls"
|
|
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
|
|
Dim _Corner As Corner = TryCast(View.SelectedObjects(0), Corner)
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
|
|
If _Corner IsNot Nothing Then
|
|
If _ocur.Session.IsNewObject(_Corner) = False Then
|
|
_Corner.ExcelFile.SaveToStream(_StreamFile)
|
|
_StreamFile.Close()
|
|
_FpSpread.OpenExcel(_FileName)
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
Protected Overrides Sub OnViewControlsCreated()
|
|
MyBase.OnViewControlsCreated()
|
|
If View.Id = "Corner_DetailView" Then
|
|
Dim _DetailView As DetailView = TryCast(View, DetailView)
|
|
Dim _ExcelControlViewItem As ViewItem
|
|
If _DetailView IsNot Nothing Then
|
|
_ExcelControlViewItem = _DetailView.GetItems(Of ExcelPropertyEditor)(0)
|
|
If _ExcelControlViewItem IsNot Nothing Then
|
|
AddHandler _ExcelControlViewItem.ControlCreated, AddressOf ExcelControlViewItem_ControlCreated
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
'If View.Id = "Corner_InvoiceNameParameters_ListView" Then ' Az inline edit beállítása.
|
|
' Dim _ListView As ListView = TryCast(View, ListView)
|
|
' _GridListEditor = TryCast(_ListView.Editor, GridListEditor)
|
|
|
|
' If _GridListEditor IsNot Nothing Then
|
|
' _GridListEditor.AllowEdit = True
|
|
|
|
' For i As Integer = 0 To _GridListEditor.Columns.Count - 1
|
|
' If _GridListEditor.GridView.Columns(i).FieldName <> "Controlling!" Then
|
|
' _GridListEditor.GridView.Columns(i).OptionsColumn.ReadOnly = True
|
|
' _GridListEditor.GridView.Columns(i).OptionsColumn.AllowEdit = False
|
|
' _GridListEditor.GridView.Columns(i).OptionsColumn.TabStop = False
|
|
' End If
|
|
' Next i
|
|
|
|
' End If
|
|
'End If
|
|
|
|
If View.Id = "Corner_CustomerNameParameters_ListView" Then ' Az inline edit beállítása.
|
|
Dim _ListView As ListView = TryCast(View, ListView)
|
|
_GridListEditor = TryCast(_ListView.Editor, GridListEditor)
|
|
|
|
If _GridListEditor IsNot Nothing Then
|
|
|
|
Dim _Grid = _GridListEditor.GridView
|
|
AddHandler _Grid.ShownEditor, AddressOf GridView_ShownEditor
|
|
|
|
'_GridListEditor.AllowEdit = True
|
|
|
|
'For i As Integer = 0 To _GridListEditor.Columns.Count - 1
|
|
' If _GridListEditor.GridView.Columns(i).FieldName <> "Customers!" Then
|
|
' _GridListEditor.GridView.Columns(i).OptionsColumn.ReadOnly = True
|
|
' _GridListEditor.GridView.Columns(i).OptionsColumn.AllowEdit = False
|
|
' _GridListEditor.GridView.Columns(i).OptionsColumn.TabStop = False
|
|
' End If
|
|
'Next i
|
|
|
|
End If
|
|
End If
|
|
End Sub
|
|
Sub GridView_ShownEditor(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
Dim _LookupEdit As LookupEdit = sender.ActiveEditor
|
|
|
|
If _LookupEdit.Frame IsNot Nothing Then
|
|
_LookupEdit.Frame.GetController(Of FilterController)().FullTextFilterAction.Value = _GridListEditor.GridView.GetRowCellValue(_GridListEditor.GridView.FocusedRowHandle, "CustomerText")
|
|
|
|
End If
|
|
End Sub
|
|
Sub SaveAction_Executing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
|
|
Dim _FileName As String = Path.GetTempPath & "In.xls"
|
|
Dim _StreamFile As New FileStream(_FileName, FileMode.Create)
|
|
Dim _Corner As Corner = TryCast(View.SelectedObjects(0), Corner)
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
If _Corner IsNot Nothing Then
|
|
_FpSpread.SaveExcel(_StreamFile)
|
|
_StreamFile.Close()
|
|
Dim _StreamFile2 As New FileStream(_FileName, FileMode.Open)
|
|
_Corner.ExcelFile = New FileData(_ocur.Session)
|
|
_Corner.ExcelFile.LoadFromStream("Excel worksheet", _StreamFile2)
|
|
_Corner.Save()
|
|
_StreamFile2.Close()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub aCreateGLAccounts_Corner_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCreateGLAccounts_Corner.Execute
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
|
|
|
|
Dim _Corner As Corner = _uow.GetObjectByKey(Of Corner)(TryCast(View.SelectedObjects(0), Corner).Oid)
|
|
Dim _GLAccounts As GLAccounts = Nothing
|
|
Dim _GLAccounts_check As GLAccounts
|
|
Dim _GLRows As GLRows
|
|
Dim _CustomersFrom As CustomersFrom = Nothing
|
|
Dim _InvoiceNameParameters As InvoiceNameParameters
|
|
Dim _CustomerNameParameters As CustomerNameParameters
|
|
|
|
Dim _column As Integer = 0
|
|
Dim _row As Integer = 0
|
|
Dim _firstHeaderSRow As Integer
|
|
Dim _FooterIndicator As Boolean = False
|
|
Dim _HeaderIndicator As String = "T."
|
|
Dim _GUID As Guid
|
|
Dim _RowIndex As Integer = 0
|
|
Dim _SysDate As DateTime
|
|
Dim _Rate As Double
|
|
Dim _VAT As VAT = Nothing
|
|
Dim _VATText As String = ""
|
|
Dim _CustomersText As String = ""
|
|
Dim _CustomersFromText As String = ""
|
|
|
|
Dim _iCustomer As Integer = 0
|
|
Dim _iPaymentOption As Integer = 0
|
|
Dim _iCurrencyName As Integer = 0
|
|
Dim _iCurrencySum As Integer = 0
|
|
Dim _iDateCreated As Integer = 0
|
|
Dim _iDateExecution As Integer = 0
|
|
Dim _iDatePayment As Integer = 0
|
|
Dim _iDocumentNumber As Integer = 0
|
|
Dim _iVATHeader As Integer = 0
|
|
Dim _iVATRow As Integer = 0
|
|
Dim _iNetHeader As Integer = 0
|
|
Dim _iNetRow As Integer = 0
|
|
Dim _iGrossHeader As Integer = 0
|
|
Dim _iGrossRow As Integer = 0
|
|
Dim _iCustomerNumber As Integer = 0
|
|
|
|
Dim _GLAccounts_List As New ArrayList
|
|
_GLAccounts_List.Clear()
|
|
|
|
'_uow.GetObjectByKey(Of InvoiceNameParameters)("PHImportType=0 And IsNull(Controlling)")
|
|
_InvoiceNameParameters = _uow.FindObject(Of InvoiceNameParameters)(CriteriaOperator.Parse("PHImportType=0 And IsNull(Controlling)"))
|
|
If _InvoiceNameParameters IsNot Nothing Then ' Megvizsgáljuk, hogy az összes tétel megnevezéséhez tartozik-e controlling adat.
|
|
Throw New UserFriendlyException("A művelet indítása előtt végezze el a Megnevezés paraméterek feldolgozását!")
|
|
End If
|
|
|
|
For _column = 0 To _FpSpread.ActiveSheet.GetLastNonEmptyColumn(NonEmptyItemFlag.Data) 'Saját cég nevének megeresése a táblázatban.
|
|
If _FpSpread.ActiveSheet.Cells(0, _column).Text <> "" Then
|
|
'_CustomersFromText = _FpSpread.ActiveSheet.Cells(0, _column).Text.Trim 'Ha itt kap értéket a változó, a blokkon kívül nem látható az értéke. (???)
|
|
Exit For
|
|
End If
|
|
Next
|
|
_CustomersFromText = _FpSpread.ActiveSheet.Cells(0, _column).Text.Trim
|
|
|
|
' Mégsem a táblázatból olvassuk ki a saját céget, hanem egy propertybe bekérjük.
|
|
'_CustomersFrom = _uow.FindObject(Of CustomersFrom)(CriteriaOperator.Parse("Name=?", _CustomersFromText))
|
|
'If _CustomersFrom Is Nothing Then ' Saját cég keresése.
|
|
' Throw New UserFriendlyException("A számlát kiállító saját cég nem azonosítható.")
|
|
'End If
|
|
|
|
For _row = 0 To _FpSpread.ActiveSheet.GetLastNonEmptyRow(NonEmptyItemFlag.Data) 'Fejléc keresése.
|
|
If _FpSpread.ActiveSheet.Cells(_row, 0).Text = _HeaderIndicator Then
|
|
_firstHeaderSRow = _row
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
For _column = 0 To _FpSpread.ActiveSheet.GetLastNonEmptyColumn(NonEmptyItemFlag.Data) ' Fejléc feldolgozása.
|
|
Select Case _FpSpread.ActiveSheet.Cells(_firstHeaderSRow, _column).Text
|
|
Case "Számlaszám"
|
|
_iDocumentNumber = _column
|
|
Case "Megrendelő neve"
|
|
_iCustomer = _column
|
|
Case "R-Nr"
|
|
_iCustomerNumber = _column
|
|
Case "Kelte"
|
|
_iDateCreated = _column
|
|
Case "Teljesítés"
|
|
_iDateExecution = _column
|
|
Case "Esedékes"
|
|
_iDatePayment = _column
|
|
Case "Mennyiség"
|
|
_iCurrencySum = _column
|
|
Case "FM"
|
|
_iPaymentOption = _column
|
|
Case "Áfakulcs"
|
|
_iCurrencyName = _column
|
|
Case "ÁFA"
|
|
If _FpSpread.ActiveSheet.Cells(_firstHeaderSRow, _column).Font.Bold = True Then
|
|
_iVATHeader = _column
|
|
Else
|
|
_iVATRow = _column
|
|
End If
|
|
Case "Nettó"
|
|
If _FpSpread.ActiveSheet.Cells(_firstHeaderSRow, _column).Font.Bold = True Then
|
|
_iNetHeader = _column
|
|
Else
|
|
_iNetRow = _column
|
|
End If
|
|
Case "Bruttó"
|
|
If _FpSpread.ActiveSheet.Cells(_firstHeaderSRow, _column).Font.Bold = True Then
|
|
_iGrossHeader = _column
|
|
Else
|
|
_iGrossRow = _column
|
|
End If
|
|
End Select
|
|
Next
|
|
|
|
_SysDate = GetSQLTime(_uow)
|
|
_WaitFormClass.InitWork(1, 1, _FpSpread.ActiveSheet.GetLastNonEmptyRow(NonEmptyItemFlag.Data))
|
|
For _row = _firstHeaderSRow + 1 To _FpSpread.ActiveSheet.GetLastNonEmptyRow(NonEmptyItemFlag.Data) 'Számlák készítése indul.
|
|
|
|
_VAT = Nothing
|
|
If (_FpSpread.ActiveSheet.Cells(_row, _iDocumentNumber).Text = "SZÁMLÁK ÖSSZESÍTÉS FIZETÉSI MÓDONKÉNT") _
|
|
Or (_FpSpread.ActiveSheet.Cells(_row, _iCustomerNumber).Text = "SZÁMLÁK ÖSSZESÍTÉS FIZETÉSI MÓDONKÉNT") Then 'Innét tudjuk, hogy elfogytak a feldolgozandó sorok.
|
|
_FooterIndicator = True
|
|
End If
|
|
|
|
_WaitFormClass.DoWork()
|
|
|
|
If (_FpSpread.ActiveSheet.Cells(_row, 0).Text <> _HeaderIndicator) And (_FpSpread.ActiveSheet.Cells(_row, _iDocumentNumber).Text.Trim <> _CustomersFromText) _
|
|
And Not _FooterIndicator Then
|
|
|
|
If (_FpSpread.ActiveSheet.Cells(_row, _iDocumentNumber).Text <> "") Then
|
|
|
|
_GLAccounts_check = _uow.FindObject(Of GLAccounts)(CriteriaOperator.Parse("DocumentNumber=? And CustomersFrom=?", _FpSpread.ActiveSheet.Cells(_row, _iDocumentNumber).Text, _Corner.CustomersFrom))
|
|
If _GLAccounts_check IsNot Nothing Then ' A DocumentNumbernek egyedinek kell lennie.
|
|
_ocur.Rollback()
|
|
_WaitFormClass.Finalwork
|
|
Throw New UserFriendlyException("A művelet nem végezhető el, már létezik számla ezzel a számmal: " + _GLAccounts_check.DocumentNumber)
|
|
End If
|
|
|
|
'_GLAccounts = _ocur.CreateObjec(Of GLAccounts)()
|
|
'_GLAccounts = New GLAccounts(_ocur.Session)
|
|
_GLAccounts = New GLAccounts(_uow)
|
|
|
|
_RowIndex = _RowIndex + 1
|
|
_GLAccounts.HeaderInfo = Format(_SysDate.Date, "yyyy-MM-dd") + " " + Format(_RowIndex, "0000") + " " + _FpSpread.ActiveSheet.Cells(_row, _iDocumentNumber).Text
|
|
|
|
_GLAccounts.PartnerType = ePartnerType.eReceivables ' Partner típusa.
|
|
_GLAccounts.CustomersFrom = _Corner.CustomersFrom ' Saját cég.
|
|
_CustomersText = _FpSpread.ActiveSheet.Cells(_row, _iCustomer).Text ' Partner neve a táblázatban
|
|
_CustomerNameParameters = _uow.FindObject(Of CustomerNameParameters)(CriteriaOperator.Parse("CustomerNumber=? And PHImportType=0", _FpSpread.ActiveSheet.Cells(_row, _iCustomerNumber).Text))
|
|
|
|
If _FpSpread.ActiveSheet.Cells(_row, _iPaymentOption).Text = "KP" Then ' A fizetési módnak megfelelő ügyfél és fizetési mód kiválasztása.
|
|
_GLAccounts.Customers = _Corner.Customers_Cash ' Partner.
|
|
If _CustomerNameParameters IsNot Nothing Then
|
|
If _CustomerNameParameters.Customers IsNot Nothing Then
|
|
_GLAccounts.Customers = _CustomerNameParameters.Customers ' Ha találunk partnert a CustomerNameParameters táblában, akkor felülírjuk
|
|
End If
|
|
End If
|
|
_GLAccounts.PaymentOption = _uow.FindObject(Of PaymentOption)(CriteriaOperator.Parse("PayMode=?", ePayMode.InCash)) ' Fizetési mód.
|
|
Else 'ElseIf _FpSpread.ActiveSheet.Cells(_row, _iPaymentOption).Text = "HK" Then
|
|
_GLAccounts.Customers = _Corner.Customers_ATM ' Partner
|
|
If _CustomerNameParameters IsNot Nothing Then
|
|
If _CustomerNameParameters.Customers IsNot Nothing Then
|
|
_GLAccounts.Customers = _CustomerNameParameters.Customers ' Ha találunk partnert a CustomerNameParameters táblában, akkor felülírjuk
|
|
End If
|
|
End If
|
|
_GLAccounts.PaymentOption = _uow.FindObject(Of PaymentOption)(CriteriaOperator.Parse("PayMode=?", ePayMode.InTransfer))
|
|
End If
|
|
|
|
_GLAccounts.CurrencyName = _uow.FindObject(Of CurrencyName)(CriteriaOperator.Parse("ShortName=?", _FpSpread.ActiveSheet.Cells(_row, _iCurrencyName).Text()))
|
|
If _GLAccounts.CurrencyName Is Nothing Then
|
|
_ocur.Rollback()
|
|
_WaitFormClass.Finalwork
|
|
Throw New UserFriendlyException("Nem sikerült beazonosítani az alábbi devizanemet: " + _FpSpread.ActiveSheet.Cells(_row, _iCurrencyName).Text)
|
|
End If
|
|
|
|
If _GLAccounts.CurrencyName.ShortName = "HUF" Then ' Árfolyam kiszámolása.
|
|
_Rate = 1 ' A belső számolásokhoz
|
|
_GLAccounts.CurrencyRateVAT = 1
|
|
Else
|
|
_Rate = Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iGrossHeader).Text) / Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iCurrencySum).Text) ' A belső számolásokhoz
|
|
_GLAccounts.CurrencyRateVAT = Math.Round(_Rate, 4, MidpointRounding.AwayFromZero)
|
|
End If
|
|
_GLAccounts.CurrencyRate = _GLAccounts.CurrencyRateVAT ' A két árfolyam azonos.
|
|
|
|
_GLAccounts.DateCreated = Convert.ToDateTime(_FpSpread.ActiveSheet.Cells(_row, _iDateCreated).Text).Date
|
|
_GLAccounts.DateExecution = Convert.ToDateTime(_FpSpread.ActiveSheet.Cells(_row, _iDateExecution).Text).Date
|
|
_GLAccounts.DatePayment = Convert.ToDateTime(_FpSpread.ActiveSheet.Cells(_row, _iDatePayment).Text).Date
|
|
|
|
_GLAccounts.DocumentNumber = _FpSpread.ActiveSheet.Cells(_row, _iDocumentNumber).Text
|
|
_GLAccounts.ConnectInfo = _FpSpread.ActiveSheet.Cells(_row, _iDocumentNumber).Text
|
|
_GLAccounts.GLDocumentType = eGLDocumentType.eGLAccount ' Dokumentum típusa.
|
|
|
|
_GLAccounts.IsEditable = False ' Nem szerkeszthető.
|
|
_GLAccounts.IsStorno = False ' Nem sztornózott.
|
|
|
|
_GLAccounts.NoteHeader = "Corner"
|
|
_GLAccounts.ImportedOther = _Corner.Oid
|
|
|
|
_GLAccounts.Save()
|
|
_GLAccounts_List.Add(_GLAccounts)
|
|
End If
|
|
|
|
If _FpSpread.ActiveSheet.Cells(_row, _iGrossRow).Text <> "" Then ' Tétel sorok.
|
|
_GUID = Guid.NewGuid
|
|
_InvoiceNameParameters = _uow.FindObject(Of InvoiceNameParameters)(CriteriaOperator.Parse("PHImportType=0 And ShortName=?", _FpSpread.ActiveSheet.Cells(_row, _iPaymentOption).Text))
|
|
|
|
If _InvoiceNameParameters Is Nothing Then ' Megvizsgáljuk, hogy az adott tétel megtalálható-e.
|
|
_ocur.Rollback()
|
|
_WaitFormClass.Finalwork
|
|
Throw New UserFriendlyException("A művelet nem végezhető el, végre kell hajtani a Megnevezés paraméterek feldolgozását!")
|
|
End If
|
|
|
|
If _VAT Is Nothing Then
|
|
Select Case _FpSpread.ActiveSheet.Cells(_row, _iCurrencyName).Text ' Egyenlőre úgy tűnik, át kell konvertálni az ÁFA kódolkat, ez a PH-ra lett szabva.
|
|
Case "27"
|
|
_VATText = "27%"
|
|
Case "25"
|
|
_VATText = "25%"
|
|
Case "18"
|
|
_VATText = "18%"
|
|
Case "0"
|
|
_VATText = "ÁTHK"
|
|
Case Else
|
|
_VATText = ""
|
|
End Select
|
|
_VAT = _uow.FindObject(Of VAT)(CriteriaOperator.Parse("ShortName=?", _VATText))
|
|
End If
|
|
|
|
If _VAT Is Nothing Then
|
|
_VAT = _uow.FindObject(Of VAT)(CriteriaOperator.Parse("ShortName=?", LTrim(RTrim(_FpSpread.ActiveSheet.Cells(_row, _iCurrencyName).Text)) + "%"))
|
|
End If
|
|
If _VAT Is Nothing Then
|
|
_VAT = _uow.FindObject(Of VAT)(CriteriaOperator.Parse("ShortName=?", LTrim(RTrim(_FpSpread.ActiveSheet.Cells(_row, _iCurrencyName).Text)) + " %"))
|
|
End If 'Nem egységes az áfakulcs sor rögzítése, de megtesszük, amit lehet...
|
|
|
|
If _VAT Is Nothing Then ' Nem találtuk meg az ÁFA-kulcsot
|
|
_ocur.Rollback()
|
|
_WaitFormClass.Finalwork
|
|
Throw New UserFriendlyException("Nem sikerült megtalálni az Áfa-kulcs paramétert: " + _VATText)
|
|
End If
|
|
|
|
|
|
If Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iNetRow).Text) <> 0 Then ' Nettó rész.
|
|
_GLRows = New GLRows(_uow)
|
|
|
|
If _GLAccounts.CurrencyName.ShortName = "HUF" Then
|
|
_GLRows.AmountHUF = Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iNetRow).Text)
|
|
Else
|
|
_GLRows.AmountDEV = Math.Round(Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iNetRow).Text) / _Rate, 4, MidpointRounding.AwayFromZero) ' Számolni kell.
|
|
_GLRows.AmountHUF = Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iNetRow).Text)
|
|
End If
|
|
|
|
If _FpSpread.ActiveSheet.Cells(_row, _iPaymentOption).Text = "KP" Then ' Más a főkönyvi szlaszám kp., és más utalás esetén.
|
|
_GLRows.DebitChartOfAccounts = _Corner.Customers_Cash.CustomersGLParameters.GetChartOfAccounts(_GLAccounts.DateExecution.Year, eVATMode.eOut)
|
|
Else
|
|
_GLRows.DebitChartOfAccounts = _Corner.Customers_ATM.CustomersGLParameters.GetChartOfAccounts(_GLAccounts.DateExecution.Year, eVATMode.eOut)
|
|
End If
|
|
_GLRows.CreditChartOfAccounts = _InvoiceNameParameters.Controlling.ChartOfAccounts
|
|
|
|
_GLRows.GLRowsGUID = _GUID
|
|
_GLRows.ConnectInfo = _GLAccounts.DocumentNumber
|
|
_GLRows.GLHeader = TryCast(_GLAccounts, GLHeader)
|
|
|
|
_GLRows.Customer = _GLAccounts.Customers
|
|
_GLRows.PartnerType = ePartnerType.eReceivables
|
|
_GLRows.NoteRows = _CustomersText
|
|
_GLRows.GLHeader.NoteHeader = _CustomersText
|
|
|
|
_GLRows.DateVAT = _GLAccounts.DateExecution
|
|
_GLRows.VAT = _VAT
|
|
_GLRows.GLRowsTypeVAT = eGLRowsTypeVAT.eNettoRow
|
|
|
|
_GLRows.CostHolder = _Corner.CostHolder
|
|
_GLRows.Controlling = _InvoiceNameParameters.Controlling
|
|
_GLRows.CostPlace = Nothing
|
|
_GLRows.JobNumberObjects = Nothing
|
|
|
|
_GLRows.Save()
|
|
_GLAccounts.RecalculateTotal()
|
|
|
|
|
|
_GLRows = New GLRows(_uow) ' Áfa rész
|
|
|
|
If _GLAccounts.CurrencyName.ShortName = "HUF" Then
|
|
_GLRows.AmountHUF = Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iVATRow).Text)
|
|
Else
|
|
_GLRows.AmountDEV = Math.Round(Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iVATRow).Text) / _Rate, 4, MidpointRounding.AwayFromZero) ' Számolni kell.
|
|
_GLRows.AmountHUF = Convert.ToDouble(_FpSpread.ActiveSheet.Cells(_row, _iVATRow).Text)
|
|
End If
|
|
|
|
If _FpSpread.ActiveSheet.Cells(_row, _iPaymentOption).Text = "KP" Then ' Más a főkönyvi szlaszám kp., és más utalás esetén.
|
|
_GLRows.DebitChartOfAccounts = _Corner.Customers_Cash.CustomersGLParameters.GetChartOfAccounts(_GLAccounts.DateExecution.Year, eVATMode.eOut)
|
|
Else
|
|
_GLRows.DebitChartOfAccounts = _Corner.Customers_ATM.CustomersGLParameters.GetChartOfAccounts(_GLAccounts.DateExecution.Year, eVATMode.eOut)
|
|
End If
|
|
_GLRows.CreditChartOfAccounts = _VAT.ChartOfAccountsOut
|
|
|
|
_GLRows.GLRowsGUID = _GUID
|
|
_GLRows.ConnectInfo = _GLAccounts.DocumentNumber
|
|
_GLRows.GLHeader = TryCast(_GLAccounts, GLHeader)
|
|
|
|
_GLRows.Customer = _GLAccounts.Customers
|
|
_GLRows.PartnerType = ePartnerType.eReceivables
|
|
_GLRows.NoteRows = _CustomersText
|
|
_GLRows.GLHeader.NoteHeader = _CustomersText
|
|
|
|
_GLRows.DateVAT = _GLAccounts.DateExecution
|
|
_GLRows.VAT = _VAT
|
|
_GLRows.GLRowsTypeVAT = eGLRowsTypeVAT.eVATRow
|
|
|
|
_GLRows.CostHolder = _Corner.CostHolder
|
|
_GLRows.Controlling = _InvoiceNameParameters.Controlling
|
|
_GLRows.CostPlace = Nothing
|
|
_GLRows.JobNumberObjects = Nothing
|
|
|
|
_GLRows.Save()
|
|
_GLAccounts.RecalculateTotal()
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
_uow.CommitChanges()
|
|
_WaitFormClass.Finalwork
|
|
|
|
'// Pontozás lefuttatása
|
|
_WaitFormClass.InitWork(1, 1, _GLAccounts_List.Count)
|
|
For Each _GLAccounts In _GLAccounts_List
|
|
_WaitFormClass.DoWork()
|
|
GLFunctions.ReconfigurePCI(_uow, _GLAccounts.CustomersFrom, _GLAccounts.Customers, ePartnerType.eReceivables, _GLAccounts.ConnectInfo)
|
|
Next
|
|
_WaitFormClass.Finalwork
|
|
|
|
|
|
View.Refresh()
|
|
|
|
End Sub
|
|
|
|
Private Sub aCheckName_Corner_Execute(ByVal sender As System.Object, ByVal e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aCheckName_Corner.Execute
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
|
|
|
|
Dim _InvoiceNameParameters As InvoiceNameParameters
|
|
Dim _CustomerNameParameters As CustomerNameParameters
|
|
|
|
Dim _firstHeaderSRow As Integer
|
|
Dim _HeaderIndicator As String = "T."
|
|
Dim _ColumnName1 As String = "FM"
|
|
Dim _ColumnName2 As String = "Bruttó"
|
|
Dim _ColumnName3 As String = "Megrendelő neve"
|
|
Dim _ColumnName31 As String = "Útlevél"
|
|
Dim _ColumnName4 As String = "R-Nr"
|
|
Dim _ColumnName5 As String = "Mennyiség"
|
|
Dim _iCol1 As Integer
|
|
Dim _iCol2 As Integer
|
|
Dim _iCol3 As Integer
|
|
Dim _iCol4 As Integer
|
|
Dim _iCol5 As Integer
|
|
|
|
Dim _row As Integer
|
|
Dim _column As Integer
|
|
|
|
For _row = 0 To _FpSpread.ActiveSheet.GetLastNonEmptyRow(NonEmptyItemFlag.Data) 'Megkeressük az első oldal fejlécét.
|
|
If _FpSpread.ActiveSheet.Cells(_row, 0).Text = _HeaderIndicator Then
|
|
_firstHeaderSRow = _row
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
For _column = 0 To _FpSpread.ActiveSheet.GetLastNonEmptyColumn(NonEmptyItemFlag.Data) 'Végigmegyünk az oszlopokon.
|
|
|
|
Select Case _FpSpread.ActiveSheet.Cells(_firstHeaderSRow, _column).Text ' Fejléc feldolgozása.
|
|
Case _ColumnName1
|
|
_iCol1 = _column ' Eltároljuk a "fizetési mód/megnevezés" oszlop sorszámát.
|
|
Case _ColumnName2
|
|
If _FpSpread.ActiveSheet.Cells(_firstHeaderSRow, _column).Font.Bold = False Then
|
|
_iCol2 = _column ' Eltároljuk a "tételsor bruttó értéke" oszlop sorszámát
|
|
End If
|
|
Case _ColumnName3 ' Eltároljuk a "Vendég neve/Útlevél" oszlop sorszámát
|
|
_iCol3 = _column
|
|
Case _ColumnName4 ' Eltároljuk az "R-Nr" oszlop sorszámát
|
|
_iCol4 = _column
|
|
Case _ColumnName5 ' Eltároljuk a "Mennyiség" oszlop sorszámát
|
|
_iCol5 = _column
|
|
|
|
End Select
|
|
Next
|
|
|
|
_WaitFormClass.InitWork(1, 1, _FpSpread.ActiveSheet.GetLastNonEmptyRow(NonEmptyItemFlag.Data))
|
|
For _row = _firstHeaderSRow To _FpSpread.ActiveSheet.GetLastNonEmptyRow(NonEmptyItemFlag.Data) ' Végigmegyünk az egész táblázaton.
|
|
|
|
_WaitFormClass.DoWork()
|
|
|
|
If _FpSpread.ActiveSheet.Cells(_row, _iCol2).Text <> _ColumnName2 And _FpSpread.ActiveSheet.Cells(_row, _iCol2).Text <> "" Then ' Ha a cella szövege nem üres, de nem is az oszlop fejlécének szövege, akkor találtunk tételsort.
|
|
_InvoiceNameParameters = _uow.FindObject(Of InvoiceNameParameters)(CriteriaOperator.Parse("ShortName=? And PHImportType=0", _FpSpread.ActiveSheet.Cells(_row, _iCol1).Text))
|
|
|
|
If _InvoiceNameParameters Is Nothing Then ' Amennyigen a megnevezés még nincs az InvoiceNameParameters táblában, beszúrjuk.
|
|
_InvoiceNameParameters = New InvoiceNameParameters(_uow)
|
|
_InvoiceNameParameters.PHImportType = ePHImportType.eCorner
|
|
_InvoiceNameParameters.ShortName = _FpSpread.ActiveSheet.Cells(_row, _iCol1).Text
|
|
|
|
Try
|
|
_InvoiceNameParameters.Save()
|
|
_uow.CommitChanges()
|
|
Catch
|
|
_WaitFormClass.Finalwork
|
|
End Try
|
|
End If
|
|
End If
|
|
|
|
If _FpSpread.ActiveSheet.Cells(_row, _iCol3).Text <> _ColumnName3 And _FpSpread.ActiveSheet.Cells(_row, _iCol3).Text <> _ColumnName31 _
|
|
And _FpSpread.ActiveSheet.Cells(_row, _iCol3).Text <> "" And _FpSpread.ActiveSheet.Cells(_row, _iCol5).Text <> "" Then ' Ha a cella szövege nem üres, de nem is az oszlop fejlécének szövege, akkor találtunk tételsort.
|
|
_CustomerNameParameters = _uow.FindObject(Of CustomerNameParameters)(CriteriaOperator.Parse("CustomerNumber=? And PHImportType=0", _FpSpread.ActiveSheet.Cells(_row, _iCol4).Text))
|
|
|
|
If _CustomerNameParameters Is Nothing Then ' Amennyigen az ügyfélszám még nincs az CustomerNameParameters táblában, beszúrjuk.
|
|
_CustomerNameParameters = New CustomerNameParameters(_uow)
|
|
_CustomerNameParameters.PHImportType = ePHImportType.eCorner
|
|
_CustomerNameParameters.CustomerText = _FpSpread.ActiveSheet.Cells(_row, _iCol3).Text
|
|
_CustomerNameParameters.CustomerNumber = _FpSpread.ActiveSheet.Cells(_row, _iCol4).Text
|
|
|
|
Try
|
|
_CustomerNameParameters.Save()
|
|
_uow.CommitChanges()
|
|
Catch
|
|
_WaitFormClass.Finalwork
|
|
End Try
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
_WaitFormClass.Finalwork
|
|
View.Refresh()
|
|
End Sub
|
|
Private Sub aRemoveGLAccounts_Corner_Execute(sender As System.Object, e As DevExpress.ExpressApp.Actions.SimpleActionExecuteEventArgs) Handles aRemoveGLAccounts_Corner.Execute
|
|
Dim _ocur As Xpo.XPObjectSpace = TryCast(View.ObjectSpace, Xpo.XPObjectSpace)
|
|
Dim _uow As New UnitOfWork(_ocur.Session.DataLayer)
|
|
Dim _Corner As Corner = TryCast(View.SelectedObjects(0), Corner)
|
|
Dim _GLAccounts_Collection As New XPCollection(Of GLAccounts)(_uow, CriteriaOperator.Parse("ImportedOther=?", _Corner.Oid))
|
|
|
|
_uow.Delete(_GLAccounts_Collection)
|
|
_uow.CommitChanges()
|
|
|
|
Frame.GetController(Of RefreshController).RefreshAction.DoExecute()
|
|
End Sub
|
|
End Class
|