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.SystemModule Imports DevExpress.Persistent.Base.Security Imports DevExpress.ExpressApp.ConditionalAppearance Imports DevExpress.ExpressApp.Filtering Public Enum State Preparation = 0 'Előkészítés alatt Ready = 1 'Aláírásra kész Signed = 2 'Aláírt Terminating = 3 'Felmondás alatt Closed = 4 'Lezárt szerződés Waiting = 5 'Felfüggesztett, várakozik valamire End Enum Public Enum eDayOfWeek eMonday = 1 eTuesday = 2 eWednesday = 3 eThursday = 4 eFriday = 5 eSaturday = 6 eSunday = 7 End Enum Public Enum eDayOfMonth eLastDay = -1 e1 = 1 e2 = 2 e3 = 3 e4 = 4 e5 = 5 e6 = 6 e7 = 7 e8 = 8 e9 = 9 e10 = 10 e11 = 11 e12 = 12 e13 = 13 e14 = 14 e15 = 15 e16 = 16 e17 = 17 e18 = 18 e19 = 19 e20 = 20 e21 = 21 e22 = 22 e23 = 23 e24 = 24 e25 = 25 e26 = 26 e27 = 27 e28 = 28 e29 = 29 e30 = 30 e31 = 31 End Enum Public Enum eActionFrequency eDaily = 0 'Minden nap eWeekly = 1 '-- Minden héten eTwoWeekly = 5 '-- Minen második héten eMonthly = 2 ' -- Minden hónapban eQuarter = 3 '-- Minden negyedévben eYear = 4 '-- Minden évben End Enum Public Enum eContractRowsType eFix = 0 'Fix számlázandó sor eMileStone = 1 'Fix számlázandó, de meg kell adni számlázáskor a teljesítés dátumát eVariable = 2 ' Változó érték, a számlázás előtt meg kell adni és lehet kézileg módosítani eAdvance = 3 ' Előleg sortípus, előleg számla kiállításához eCustomRate = 4 'Dijbekérő !!! End Enum Public Enum eDefinite eFixedTerm = 0 'Határozott időtartamú eIndefinite = 1 'Határozatlan időtartamú End Enum ' _ ' _ ' _ ' _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 0", AppearanceItemType.ViewItem, "State<>0", TargetItems:="CustomersFrom;Customers;DateCreated;" & _ "DatePreContractSigned;DateClosed;DateWaiting;DateExecution;DateExpectClose;ContractTemplate;State;DocumentNumber;ObjectCreated;" & _ "UserCreated;CurrencyName;CurrencyName_Invoice;BankInformation;JobNumberObjects;UniqueObjects;ShortName;HRResponsible;CRMEstate_Opportunity_Immovables;" & _ "CRM_Opportunities;OfferInHeader;OrderInAcknowledgementHeader;Definite;TerminateDay", Enabled:=False)> _ 0 and State<>1", AppearanceItemType.ViewItem, "State<>0 AND State<>1", TargetItems:="File", Enabled:=False)> _ Public Class Contracts 'Szerződések Inherits BaseObject Private _CustomersFrom As CustomersFrom 'Saját cég Private _Customers As Customers 'Partner Private _ContractGroup As ContractGroup Private _DateCreated As Date 'Aláírás dátuma Private _DatePreContractSigned As Date 'Előszerződés aláírásának dátuma Private _DateClosed As Date 'Szerződés lezárás dátuma Private _DateWaiting As Date 'Felfüggesztés dátuma Private _DateTerminating As Date 'Felmondás dátuma Private _DateExecution As Date 'Hatálybalépés dátuma Private _DateExpectClose As Date 'Várható lezárás dátuma Private _ContractTemplate As ContractTemplate 'Szerződési sablon Private _File As FileData ' Csatolt fájl Private _State As State = State.Preparation Private _DocumentNumber As String Private _ObjectCreated As Date Private _UserCreated As User Private _CurrencyName As CurrencyName 'A szerződés deviza neme Private _CurrencyName_Invoice As CurrencyName 'A vevői szerződéshez kapcsolódó számla deviza nem Private _BankInformation As BankInformation 'A vevői szerződéshez kapcsolódó számlára felkerülő bankszámlaszám SAJÁT CÉG!!! Private _CustomerBankAccounts As CustomerBankAccounts 'ÜGYFÉL bankszámla Private _DocumentBody As String Private _JobNumberObjects As JobNumberObjects 'Munkaszám, project Private _UniqueObjects As UniqueObjects 'Egyedi azonosító Private _ShortName As String ' A szerződés tárgya Private _HRResponsible As HRPerson 'A szerződés felelőse Private _CRMEstate_Opportunity_Immovables As CRMEstate_Opportunity_Immovables 'Milyen ingatlanértékesítéshez tartozik Private _CRM_Opportunities As CRM_Opportunities 'Milyen CRM ügyhöz tartozik a szerződés Private _OfferInHeader As OfferInHeader 'Bejövő ajánlat Private _OfferOutHeader As OfferOutHeader Private _OrderInAcknowledgementHeader As OrderInAcknowledgementHeader 'Kimenő rendelés visszaigazolása Private _Definite As eDefinite 'Határozott vagy határozatlan időtartamú Private _TerminateDay As Long 'Felmondási nap, ha határozatlan Public Sub New(ByVal session As Session) MyBase.New(session) End Sub Protected Overrides Sub OnSaving() MyBase.OnSaving() If String.IsNullOrEmpty(DocumentNumber) Then If ContractTemplate IsNot Nothing Then If ContractTemplate.NumberGenerator IsNot Nothing Then _DocumentNumber = ContractTemplate.NumberGenerator.GetNewNumber(ContractTemplate.NumberGenerator) End If End If End If If Session.IsNewObject(Me) Then ObjectCreated = GetSQLTime(Session) UserCreated = Session.GetObjectByKey(Of User)(Session.GetKeyValue(SecuritySystem.CurrentUser)) End If End Sub Public Overrides Sub AfterConstruction() MyBase.AfterConstruction() CurrencyName = Session.FindObject(Of CurrencyName)(1, CriteriaOperator.Parse("ShortName='HUF'")) End Sub _ Property CustomersFrom() As CustomersFrom Get Return _CustomersFrom End Get Set(ByVal value As CustomersFrom) SetPropertyValue("CustomersFrom", _CustomersFrom, value) End Set End Property Property Customers() As Customers Get Return _Customers End Get Set(ByVal value As Customers) SetPropertyValue("Customers", _Customers, value) End Set End Property Property ContractGroup As ContractGroup Get Return _ContractGroup End Get Set(value As ContractGroup) SetPropertyValue("ContractGroup", _ContractGroup, value) End Set End Property Property DateCreated() As Date Get Return _DateCreated End Get Set(ByVal value As Date) SetPropertyValue("DateCreated", _DateCreated, value) End Set End Property _ ReadOnly Property DateCreated_ShortDate As String Get Return String.Format(DateCreated, "Short Date") End Get End Property Property DatePreContractSigned As Date Get Return _DatePreContractSigned End Get Set(ByVal value As Date) SetPropertyValue("DatePreContractSigned", _DatePreContractSigned, value) End Set End Property Property DateClosed As Date Get Return _DateClosed End Get Set(ByVal value As Date) SetPropertyValue("DateClosed", _DateClosed, value) End Set End Property Property DateWaiting As Date Get Return _DateWaiting End Get Set(ByVal value As Date) SetPropertyValue("DateWaiting", _DateWaiting, value) End Set End Property Property DateTerminating As Date Get Return _DateTerminating End Get Set(ByVal value As Date) SetPropertyValue("DateTerminating", _DateTerminating, value) End Set End Property Property DateExecution As Date Get Return _DateExecution End Get Set(ByVal value As Date) SetPropertyValue("DateExecution", _DateExecution, value) End Set End Property Property DateExpectClose As Date Get Return _DateExpectClose End Get Set(ByVal value As Date) SetPropertyValue("DateExpectClose", _DateExpectClose, value) End Set End Property Property ContractTemplate() As ContractTemplate Get Return _ContractTemplate End Get Set(ByVal value As ContractTemplate) SetPropertyValue("ContractTemplate", _ContractTemplate, value) End Set End Property _ Property File() As FileData Get Return _File End Get Set(ByVal value As FileData) SetPropertyValue("File", _File, value) End Set End Property _ Property DocumentNumber() As String Get Return _DocumentNumber End Get Set(ByVal value As String) SetPropertyValue("DocumentNumber", _DocumentNumber, value) End Set End Property _ Property ObjectCreated As Date Get Return _ObjectCreated End Get Set(value As Date) SetPropertyValue("ObjectCreated", _ObjectCreated, value) End Set End Property _ Property UserCreated As User Get Return _UserCreated End Get Set(value As User) SetPropertyValue("UserCreated", _UserCreated, value) End Set End Property _ _ Property CurrencyName As CurrencyName Get Return _CurrencyName End Get Set(ByVal value As CurrencyName) SetPropertyValue("CurrencyName", _CurrencyName, value) End Set End Property _ Property CurrencyName_Invoice As CurrencyName Get Return _CurrencyName_Invoice End Get Set(value As CurrencyName) SetPropertyValue("CurrencyName_Invoice", _CurrencyName_Invoice, value) End Set End Property Property BankInformation As BankInformation Get Return _BankInformation End Get Set(ByVal value As BankInformation) SetPropertyValue("CustomerBankAccounts", _BankInformation, value) End Set End Property Property CustomerBankAccounts As CustomerBankAccounts Get Return _CustomerBankAccounts End Get Set(value As CustomerBankAccounts) SetPropertyValue("CustomerBankAccounts", _CustomerBankAccounts, value) End Set End Property Property State() As State Get Return _State End Get Set(ByVal value As State) SetPropertyValue("State", _State, value) End Set End Property _ _ Property DocumentBody() As String Get If Session.IsNewObject(Me) = True Then If Not _ContractTemplate Is Nothing Then _DocumentBody = _ContractTemplate.DocumentBody End If End If Return _DocumentBody End Get Set(ByVal value As String) SetPropertyValue("DocumentBody", _DocumentBody, value) End Set End Property Property JobNumberObjects() As JobNumberObjects Get Return _JobNumberObjects End Get Set(ByVal value As JobNumberObjects) SetPropertyValue("JobNumberObjects", _JobNumberObjects, value) End Set End Property Property UniqueObjects As UniqueObjects Get Return _UniqueObjects End Get Set(value As UniqueObjects) SetPropertyValue("UniqueObjects", _UniqueObjects, value) End Set End Property _ Property ShortName As String Get Return _ShortName End Get Set(ByVal value As String) SetPropertyValue("ShortName", _ShortName, value) End Set End Property Property HRResponsible As HRPerson Get Return _HRResponsible End Get Set(ByVal value As HRPerson) SetPropertyValue("HRResponsible", _HRResponsible, value) End Set End Property Property CRMEstate_Opportunity_Immovables As CRMEstate_Opportunity_Immovables Get Return _CRMEstate_Opportunity_Immovables End Get Set(value As CRMEstate_Opportunity_Immovables) SetPropertyValue("CRMEstate_Opportunity_Immovables", _CRMEstate_Opportunity_Immovables, value) End Set End Property Property CRM_Opportunities As CRM_Opportunities Get Return _CRM_Opportunities End Get Set(value As CRM_Opportunities) SetPropertyValue("CRM_Opportunities", _CRM_Opportunities, value) End Set End Property Property OfferInHeader As OfferInHeader Get Return _OfferInHeader End Get Set(value As OfferInHeader) SetPropertyValue("OfferInHeader", _OfferInHeader, value) End Set End Property Property OfferOutHeader As OfferOutHeader Get Return _OfferOutHeader End Get Set(value As OfferOutHeader) SetPropertyValue("OfferOutHeader", _OfferOutHeader, value) End Set End Property Property OrderInAcknowledgementHeader As OrderInAcknowledgementHeader Get Return _OrderInAcknowledgementHeader End Get Set(value As OrderInAcknowledgementHeader) SetPropertyValue("OrderInAcknowledgementHeader", _OrderInAcknowledgementHeader, value) End Set End Property Property Definite As eDefinite Get Return _Definite End Get Set(value As eDefinite) SetPropertyValue("Definite", _Definite, value) End Set End Property Property TerminateDay As Long Get Return _TerminateDay End Get Set(value As Long) SetPropertyValue("TerminateDay", _TerminateDay, value) End Set End Property ReadOnly Property DateEstimatedTermination As Date Get Return DateAdd(DateInterval.Day, TerminateDay, Now) End Get End Property 'Readonly ReadOnly Property DisplayName() As String Get If Customers Is Nothing Then Return DocumentNumber & ", " & ShortName Else Return DocumentNumber & ", " & Customers.FullName & ", " & ShortName End If End Get End Property _ ReadOnly Property DocumentFile() As XPCollection(Of DocumentFileData) Get Return GetCollection(Of DocumentFileData)("DocumentFile") End Get End Property _ ReadOnly Property AuditTrail() As XPCollection(Of AuditDataItemPersistent) Get Return AuditedObjectWeakReference.GetAuditTrail(Session, Me) End Get End Property _ ReadOnly Property ContractRows() As XPCollection(Of ContractRows) Get Return GetCollection(Of ContractRows)("ContractRows") End Get End Property ReadOnly Property ContractsBankInformation As XPCollection(Of BankInformation) Get If Me.CustomersFrom IsNot Nothing Then Dim _BankInformation_Collection As New XPCollection(Of BankInformation)(Session, CriteriaOperator.Parse("1=2")) Dim _LiquidAssets_Collection As New XPCollection(Of LiquidAssets)(Session, CriteriaOperator.Parse("CustomerFrom=? AND LiquidAssetsType=1", Me.CustomersFrom)) For Each _LiquidAssets As LiquidAssets In _LiquidAssets_Collection Dim _BankInformation As BankInformation = Session.FindObject(Of BankInformation)(CriteriaOperator.Parse("LiquidAssests=?", _LiquidAssets)) If _BankInformation IsNot Nothing Then _BankInformation_Collection.Add(_BankInformation) End If Next Return _BankInformation_Collection Else Return Nothing End If End Get End Property _ ReadOnly Property ContractProductsCredit As XPCollection(Of ContractProductsCredit) Get Return GetCollection(Of ContractProductsCredit)("ContractProductsCredit") End Get End Property End Class