Reconfigure for GIT
This commit is contained in:
@@ -0,0 +1,431 @@
|
||||
Imports System
|
||||
Imports System.ComponentModel
|
||||
|
||||
Imports DevExpress.Xpo
|
||||
Imports DevExpress.Data.Filtering
|
||||
|
||||
Imports DevExpress.ExpressApp
|
||||
Imports DevExpress.Persistent.Base
|
||||
Imports DevExpress.Persistent.BaseImpl
|
||||
Imports DevExpress.Persistent.Validation
|
||||
Imports DevExpress.ExpressApp.ConditionalAppearance
|
||||
Public Enum ePlace
|
||||
Left = 0
|
||||
Center = 1
|
||||
Right = 2
|
||||
End Enum
|
||||
Public Enum eYearFormat
|
||||
YearNoDigit = 0
|
||||
YearOneDigit = 1
|
||||
YearTwoDigit = 2
|
||||
YearFourDigit = 4
|
||||
End Enum
|
||||
<DefaultClassOptions()> _
|
||||
<NavigationItem("GeneralStock")> _
|
||||
<DefaultProperty("DisplayName")> _
|
||||
<Appearance("Hide NewNumberPerMonth when NewNumberPerYear is False", AppearanceItemType.ViewItem, "NewNumberPerYear =False", TargetItems:="NewNumberPerMonth", visibility:=Editors.ViewItemVisibility.Hide)> _
|
||||
<Appearance("Disable MonthAfterYear when NewNumberPerMonth is True", AppearanceItemType.ViewItem, "NewNumberPerMonth =True", TargetItems:="MonthAfterYear", Enabled:=False)> _
|
||||
Public Class NumberGenerator
|
||||
Inherits BaseObject
|
||||
Private _NumberGeneratorGroups As NumberGeneratorGroups
|
||||
Private _PrefixString As String
|
||||
Private _PrefixTag As String
|
||||
Private _SuffixString As String
|
||||
Private _SuffixTag As String
|
||||
Private _SerialNumber As Long
|
||||
Private _SerialNumberPlace As ePlace
|
||||
Private _SerialNumberDigit As Long = 4
|
||||
Private _YearFormat As eYearFormat
|
||||
Private _NewNumberPerYear As Boolean
|
||||
Private _NewNumberPerMonth As Boolean
|
||||
Private _ShortName As String
|
||||
Private _MonthAfterYear As Boolean
|
||||
Private _CurrentDay As Boolean
|
||||
Private _CurrentDayFormat As String
|
||||
|
||||
Public Function GetNewNumber(ByVal NGO As NumberGenerator, Optional ByVal _YearString As String = "", Optional _MonthString As String = "")
|
||||
Dim _NGSemafor As NumberGeneratorSemafor
|
||||
|
||||
If _YearString = "" Or _YearString Is Nothing Then
|
||||
_YearString = Year(GetSQLTime(Session)).ToString
|
||||
Else
|
||||
|
||||
End If
|
||||
|
||||
If (_MonthString = "" And MonthAfterYear) Or (_MonthString Is Nothing And MonthAfterYear) Then
|
||||
_MonthString = Month(GetSQLTime(Session)).ToString
|
||||
End If
|
||||
|
||||
If NewNumberPerYear = True Then
|
||||
If _MonthString <> "" And NGO.MonthAfterYear And NGO.NewNumberPerMonth Then
|
||||
_NGSemafor = Session.FindObject(Of NumberGeneratorSemafor)(CriteriaOperator.Parse("NumberGenerator=? and YearString=? and MonthString=? and NewNumberPerMonth=?", NGO.Oid, _YearString, _MonthString, True))
|
||||
Else
|
||||
_NGSemafor = Session.FindObject(Of NumberGeneratorSemafor)(CriteriaOperator.Parse("NumberGenerator=? and YearString=? and NewNumberPerMonth=?", NGO.Oid, _YearString, False))
|
||||
End If
|
||||
Else
|
||||
Dim CurrentYear As Integer
|
||||
Dim BaseYear As Integer = Convert.ToInt32(_YearString) - 4
|
||||
For CurrentYear = Convert.ToInt32(_YearString) To BaseYear Step -1
|
||||
'If _MonthString <> "" And NGO.MonthAfterYear And NGO.NewNumberPerMonth Then
|
||||
' _NGSemafor = Session.FindObject(Of NumberGeneratorSemafor)(CriteriaOperator.Parse("NumberGenerator=? and YearString=? and MonthString=? and NewNumberPerMonth=?", NGO.Oid, CurrentYear.ToString(), _MonthString, True))
|
||||
' If _NGSemafor IsNot Nothing Then
|
||||
' Exit For
|
||||
' End If
|
||||
'Else
|
||||
_NGSemafor = Session.FindObject(Of NumberGeneratorSemafor)(CriteriaOperator.Parse("NumberGenerator=? and YearString=? and NewNumberPerMonth=?", NGO.Oid, CurrentYear.ToString(), False))
|
||||
If _NGSemafor IsNot Nothing Then
|
||||
Exit For
|
||||
End If
|
||||
'End If
|
||||
Next
|
||||
If _NGSemafor Is Nothing Then
|
||||
Dim _NGSemaforLastToNew As NumberGeneratorSemafor
|
||||
'If _MonthString <> "" And NGO.MonthAfterYear And NGO.NewNumberPerMonth Then
|
||||
' _NGSemaforLastToNew = Session.FindObject(Of NumberGeneratorSemafor)(CriteriaOperator.Parse("NumberGenerator=? and YearString=? and MonthString=?", NGO.Oid, (Convert.ToInt32(_YearString) - 5).ToString(), _MonthString))
|
||||
'Else
|
||||
_NGSemaforLastToNew = Session.FindObject(Of NumberGeneratorSemafor)(CriteriaOperator.Parse("NumberGenerator=? and YearString=? and NewNumberPerMonth=?", NGO.Oid, (Convert.ToInt32(_YearString) - 5).ToString(), False))
|
||||
'End If
|
||||
If _NGSemaforLastToNew IsNot Nothing Then
|
||||
_NGSemafor = New NumberGeneratorSemafor(Session)
|
||||
_NGSemafor.NumberGenerator = NGO
|
||||
_NGSemafor.YearString = _YearString
|
||||
_NGSemafor.MonthString = _MonthString
|
||||
_NGSemafor.SerialNumber = _NGSemaforLastToNew.SerialNumber
|
||||
_NGSemafor.Save()
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If _NGSemafor Is Nothing Then
|
||||
_NGSemafor = New NumberGeneratorSemafor(Session)
|
||||
_NGSemafor.NumberGenerator = NGO
|
||||
_NGSemafor.YearString = _YearString
|
||||
_NGSemafor.MonthString = _MonthString
|
||||
_NGSemafor.SerialNumber = Me.SerialNumber + 1
|
||||
If _NewNumberPerMonth = True Then
|
||||
_NGSemafor.NewNumberPerMonth = True
|
||||
End If
|
||||
_NGSemafor.Save()
|
||||
Else
|
||||
_NGSemafor.SerialNumber += 1
|
||||
If _NewNumberPerMonth = False Then
|
||||
_NGSemafor.MonthString = _MonthString
|
||||
End If
|
||||
_NGSemafor.Save()
|
||||
End If
|
||||
|
||||
'--- Paraméterek inicializálása
|
||||
_PrefixString = NGO.PrefixString
|
||||
_PrefixTag = NGO.PrefixTag
|
||||
_SuffixString = NGO.SuffixString
|
||||
_SuffixTag = NGO.SuffixTag
|
||||
_SerialNumberPlace = NGO.SerialNumberPlace
|
||||
_SerialNumberDigit = NGO.SerialNumberDigit
|
||||
_YearFormat = NGO.YearFormat
|
||||
_NewNumberPerYear = NGO.NewNumberPerYear
|
||||
_MonthAfterYear = NGO.MonthAfterYear
|
||||
Return CreateSampleString(_NGSemafor.YearString, _NGSemafor.MonthString, _NGSemafor.SerialNumber)
|
||||
End Function
|
||||
Function CreateSampleString(ByVal YearString As String, ByVal MonthString As String, ByVal NumberLong As Long) As String
|
||||
Dim _NumberString As String = ""
|
||||
Dim _SampleString As String = ""
|
||||
Dim _CurrentDateString As String = ""
|
||||
|
||||
If NewNumberPerYear = True Then
|
||||
Select Case YearFormat
|
||||
Case eYearFormat.YearNoDigit
|
||||
YearString = ""
|
||||
Case eYearFormat.YearFourDigit
|
||||
Case eYearFormat.YearOneDigit
|
||||
YearString = Mid(YearString, 4, 1)
|
||||
Case eYearFormat.YearTwoDigit
|
||||
YearString = Mid(YearString, 3, 2)
|
||||
End Select
|
||||
Else
|
||||
YearString = ""
|
||||
End If
|
||||
|
||||
_NumberString = AlignStr(CStr(NumberLong), eDirection.Left, "0", _SerialNumberDigit)
|
||||
|
||||
If CurrentDay Then
|
||||
_CurrentDateString = GetSQLTime(Session).ToString(CurrentDayFormat)
|
||||
Else
|
||||
_CurrentDateString = ""
|
||||
End If
|
||||
|
||||
If MonthAfterYear Then
|
||||
If MonthString.Length = 1 Then MonthString = "0" + MonthString
|
||||
If _SuffixTag = "" Then
|
||||
YearString += SuffixString & MonthString
|
||||
Else
|
||||
YearString += SuffixTag & MonthString
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If _SerialNumberPlace = ePlace.Center Then
|
||||
_SampleString = PrefixString & PrefixTag & _NumberString & SuffixTag & YearString & _CurrentDateString & SuffixTag & SuffixString
|
||||
ElseIf _SerialNumberPlace = ePlace.Left Then
|
||||
If CurrentDay Then
|
||||
_SampleString = PrefixString & PrefixTag & YearString & _CurrentDateString & SuffixTag & _NumberString
|
||||
Else
|
||||
_SampleString = PrefixString & PrefixTag & YearString & _CurrentDateString & SuffixTag & _NumberString & SuffixTag & SuffixString
|
||||
End If
|
||||
ElseIf _SerialNumberPlace = ePlace.Right Then
|
||||
_SampleString = PrefixString & _PrefixTag & _NumberString & SuffixTag & SuffixString & SuffixTag & YearString & _CurrentDateString
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Return _SampleString
|
||||
End Function
|
||||
ReadOnly Property SampleString()
|
||||
Get
|
||||
Return CreateSampleString(Year(Now), Month(Now), 0)
|
||||
End Get
|
||||
End Property
|
||||
Public Sub New(ByVal session As Session)
|
||||
MyBase.New(session)
|
||||
End Sub
|
||||
Public Overrides Sub AfterConstruction()
|
||||
MyBase.AfterConstruction()
|
||||
_SerialNumberPlace = ePlace.Right
|
||||
OnChanged("SerialNumberPlace")
|
||||
_NewNumberPerYear = True
|
||||
OnChanged("NewNumberPerYear")
|
||||
_YearFormat = eYearFormat.YearTwoDigit
|
||||
OnChanged("YearFormat")
|
||||
CurrentDayFormat = "ddMMyyyy"
|
||||
_NewNumberPerMonth = False
|
||||
|
||||
End Sub
|
||||
<RuleRequiredField("", DefaultContexts.Save)> _
|
||||
Property NumberGeneratorGroups As NumberGeneratorGroups
|
||||
Get
|
||||
Return _NumberGeneratorGroups
|
||||
End Get
|
||||
Set(ByVal value As NumberGeneratorGroups)
|
||||
SetPropertyValue("NumberGeneratorGroups", _NumberGeneratorGroups, value)
|
||||
End Set
|
||||
End Property
|
||||
<RuleRequiredField("", DefaultContexts.Save)> _
|
||||
<ImmediatePostData(True)> _
|
||||
Property ShortName As String
|
||||
Get
|
||||
Return _ShortName
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("ShortName", _ShortName, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property PrefixString As String
|
||||
Get
|
||||
Return _PrefixString
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("PrefixString", _PrefixString, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property PrefixTag As String
|
||||
Get
|
||||
Return _PrefixTag
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("PrefixTag", _PrefixTag, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property SuffixString As String
|
||||
Get
|
||||
Return _SuffixString
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("SuffixString", _SuffixString, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property SuffixTag As String
|
||||
Get
|
||||
Return _SuffixTag
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("SuffixTag", _SuffixTag, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property SerialNumber As Long
|
||||
Get
|
||||
Return _SerialNumber
|
||||
End Get
|
||||
Set(ByVal value As Long)
|
||||
SetPropertyValue("SerialNumber", _SerialNumber, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property SerialNumberPlace As ePlace
|
||||
Get
|
||||
Return _SerialNumberPlace
|
||||
End Get
|
||||
Set(ByVal value As ePlace)
|
||||
SetPropertyValue("SerialNumberPlace", _SerialNumberPlace, value)
|
||||
End Set
|
||||
End Property
|
||||
<RuleRequiredField("", DefaultContexts.Save)> _
|
||||
<ImmediatePostData(True)> _
|
||||
Property YearFormat As eYearFormat
|
||||
Get
|
||||
Return _YearFormat
|
||||
End Get
|
||||
Set(ByVal value As eYearFormat)
|
||||
SetPropertyValue("YearFormat", _YearFormat, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property NewNumberPerYear As Boolean
|
||||
Get
|
||||
Return _NewNumberPerYear
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
SetPropertyValue("NewNumberPerYear", _NewNumberPerYear, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property NewNumberPerMonth As Boolean
|
||||
Get
|
||||
Return _NewNumberPerMonth
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
SetPropertyValue("NewNumberPerMonth", _NewNumberPerMonth, value)
|
||||
If Session.IsObjectsLoading = False And Session.IsObjectsSaving = False Then
|
||||
If value = True Then
|
||||
Me.MonthAfterYear = True
|
||||
End If
|
||||
End If
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property SerialNumberDigit As Long
|
||||
Get
|
||||
Return _SerialNumberDigit
|
||||
End Get
|
||||
Set(ByVal value As Long)
|
||||
SetPropertyValue("SerialNumberDigit", _SerialNumberDigit, value)
|
||||
End Set
|
||||
End Property
|
||||
<ImmediatePostData(True)> _
|
||||
Property MonthAfterYear As Boolean
|
||||
Get
|
||||
Return _MonthAfterYear
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
SetPropertyValue("MonthAfterYear", _MonthAfterYear, value)
|
||||
End Set
|
||||
End Property
|
||||
Property CurrentDay As Boolean
|
||||
Get
|
||||
Return _CurrentDay
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
SetPropertyValue("CurrentDay", _CurrentDay, value)
|
||||
End Set
|
||||
End Property
|
||||
Property CurrentDayFormat As String
|
||||
Get
|
||||
Return _CurrentDayFormat
|
||||
End Get
|
||||
Set(value As String)
|
||||
SetPropertyValue("CurrentDayFormat", _CurrentDayFormat, value)
|
||||
End Set
|
||||
End Property
|
||||
ReadOnly Property DisplayName() As String
|
||||
Get
|
||||
Return SampleString & ", " & ShortName
|
||||
End Get
|
||||
End Property
|
||||
|
||||
End Class
|
||||
<DefaultClassOptions()> _
|
||||
<NavigationItem("GeneralStock")> _
|
||||
Public Class NumberGeneratorGroups
|
||||
Inherits BaseObject
|
||||
Private _ShortName As String
|
||||
Private _Description As String
|
||||
Public Sub New(ByVal session As Session)
|
||||
MyBase.New(session)
|
||||
End Sub
|
||||
<RuleRequiredField("", DefaultContexts.Save)> _
|
||||
<RuleUniqueValue("", DefaultContexts.Save)> _
|
||||
Property ShortName As String
|
||||
Get
|
||||
Return _ShortName
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("ShortName", _ShortName, value)
|
||||
End Set
|
||||
End Property
|
||||
<RuleRequiredField("", DefaultContexts.Save)> _
|
||||
Property Description As String
|
||||
Get
|
||||
Return _Description
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("Description", _Description, value)
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
<DefaultClassOptions()> _
|
||||
<NavigationItem("GeneralStock")> _
|
||||
Public Class NumberGeneratorSemafor
|
||||
Inherits BaseObject
|
||||
Private _NumberGenerator As NumberGenerator
|
||||
Private _YearString As String
|
||||
Private _MonthString As String
|
||||
Private _SerialNumber As Long
|
||||
Private _NewNumberPerMonth As Boolean
|
||||
Public Sub New(ByVal session As Session)
|
||||
MyBase.New(session)
|
||||
End Sub
|
||||
Property NumberGenerator() As NumberGenerator
|
||||
Get
|
||||
Return _NumberGenerator
|
||||
End Get
|
||||
Set(ByVal value As NumberGenerator)
|
||||
SetPropertyValue("NumberGenerator", _NumberGenerator, value)
|
||||
End Set
|
||||
End Property
|
||||
Property YearString As String
|
||||
Get
|
||||
Return _YearString
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
SetPropertyValue("YearString", _YearString, value)
|
||||
End Set
|
||||
End Property
|
||||
Property MonthString As String
|
||||
Get
|
||||
Return _MonthString
|
||||
End Get
|
||||
Set(value As String)
|
||||
SetPropertyValue("MonthString", _MonthString, value)
|
||||
End Set
|
||||
End Property
|
||||
Property SerialNumber As Long
|
||||
Get
|
||||
Return _SerialNumber
|
||||
End Get
|
||||
Set(ByVal value As Long)
|
||||
SetPropertyValue("SerialNumber", _SerialNumber, value)
|
||||
End Set
|
||||
End Property
|
||||
Property NewNumberPerMonth As Boolean
|
||||
Get
|
||||
Return _NewNumberPerMonth
|
||||
End Get
|
||||
Set(ByVal value As Boolean)
|
||||
SetPropertyValue("NewNumberPerMonth", _NewNumberPerMonth, value)
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
|
||||
|
||||
Reference in New Issue
Block a user