Package org.compiere.model
Class PO
- java.lang.Object
-
- org.compiere.model.PO
-
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparator<Object>
,Evaluatee
- Direct Known Subclasses:
DocActionTemplate
,GenericPO
,X_A_Asset
,X_A_Asset_Acct
,X_A_Asset_Addition
,X_A_Asset_Change
,X_A_Asset_Class
,X_A_Asset_Delivery
,X_A_Asset_Disposed
,X_A_Asset_Group
,X_A_Asset_Group_Acct
,X_A_Asset_Info_Fin
,X_A_Asset_Info_Ins
,X_A_Asset_Info_Lic
,X_A_Asset_Info_Oth
,X_A_Asset_Info_Tax
,X_A_Asset_Product
,X_A_Asset_Retirement
,X_A_Asset_Reval
,X_A_Asset_Reval_Entry
,X_A_Asset_Reval_Index
,X_A_Asset_Split
,X_A_Asset_Transfer
,X_A_Asset_Type
,X_A_Asset_Use
,X_A_Depreciation
,X_A_Depreciation_Build
,X_A_Depreciation_Convention
,X_A_Depreciation_Entry
,X_A_Depreciation_Exp
,X_A_Depreciation_Forecast
,X_A_Depreciation_Method
,X_A_Depreciation_Table_Detail
,X_A_Depreciation_Table_Header
,X_A_Depreciation_Workfile
,X_A_FundingMode
,X_A_FundingMode_Acct
,X_A_Registration
,X_A_RegistrationAttribute
,X_A_RegistrationProduct
,X_A_RegistrationValue
,X_AD_AccessLog
,X_AD_Alert
,X_AD_AlertProcessor
,X_AD_AlertProcessorLog
,X_AD_AlertRecipient
,X_AD_AlertRule
,X_AD_AllClients_V
,X_AD_AllUsers_V
,X_AD_Archive
,X_AD_Attachment
,X_AD_AttachmentNote
,X_AD_Attribute
,X_AD_Attribute_Value
,X_AD_AuthorizationAccount
,X_AD_AuthorizationCredential
,X_AD_AuthorizationProvider
,X_AD_AuthorizationScopeProv
,X_AD_BroadcastMessage
,X_AD_ChangeLog
,X_AD_Chart
,X_AD_ChartDatasource
,X_AD_Client
,X_AD_ClientInfo
,X_AD_ClientShare
,X_AD_Color
,X_AD_Column
,X_AD_Column_Access
,X_AD_CtxHelp
,X_AD_CtxHelpMsg
,X_AD_CtxHelpSuggestion
,X_AD_Document_Action_Access
,X_AD_Element
,X_AD_EntityType
,X_AD_Error
,X_AD_Field
,X_AD_FieldGroup
,X_AD_FieldSuggestion
,X_AD_Find
,X_AD_Form
,X_AD_Form_Access
,X_AD_HouseKeeping
,X_AD_Image
,X_AD_ImpFormat
,X_AD_ImpFormat_Row
,X_AD_ImportTemplate
,X_AD_ImportTemplateAccess
,X_AD_IndexColumn
,X_AD_InfoColumn
,X_AD_InfoProcess
,X_AD_InfoRelated
,X_AD_InfoWindow
,X_AD_InfoWindow_Access
,X_AD_Issue
,X_AD_LabelPrinter
,X_AD_LabelPrinterFunction
,X_AD_Language
,X_AD_LdapAccess
,X_AD_LdapProcessor
,X_AD_LdapProcessorLog
,X_AD_Menu
,X_AD_Message
,X_AD_MigrationScript
,X_AD_ModelValidator
,X_AD_Modification
,X_AD_Note
,X_AD_Org
,X_AD_OrgInfo
,X_AD_OrgType
,X_AD_Package_Exp
,X_AD_Package_Exp_Detail
,X_AD_Package_Imp
,X_AD_Package_Imp_Backup
,X_AD_Package_Imp_Detail
,X_AD_Package_Imp_Inst
,X_AD_Package_Imp_Proc
,X_AD_Package_UUID_Map
,X_AD_Password_History
,X_AD_PasswordRule
,X_AD_PInstance
,X_AD_PInstance_Log
,X_AD_PInstance_Para
,X_AD_PostIt
,X_AD_Preference
,X_AD_PrintColor
,X_AD_PrintFont
,X_AD_PrintForm
,X_AD_PrintFormat
,X_AD_PrintFormatItem
,X_AD_PrintGraph
,X_AD_PrintHeaderFooter
,X_AD_PrintLabel
,X_AD_PrintLabelLine
,X_AD_PrintPaper
,X_AD_PrintTableFormat
,X_AD_Private_Access
,X_AD_Process
,X_AD_Process_Access
,X_AD_Process_Para
,X_AD_RecentItem
,X_AD_Record_Access
,X_AD_Ref_List
,X_AD_Ref_Table
,X_AD_Reference
,X_AD_Registration
,X_AD_RelationType
,X_AD_Replication
,X_AD_Replication_Log
,X_AD_Replication_Run
,X_AD_ReplicationDocument
,X_AD_ReplicationStrategy
,X_AD_ReplicationTable
,X_AD_ReportView
,X_AD_ReportView_Col
,X_AD_ReportView_Column
,X_AD_Role
,X_AD_Role_Included
,X_AD_Role_OrgAccess
,X_AD_Rule
,X_AD_Schedule
,X_AD_Scheduler
,X_AD_Scheduler_Para
,X_AD_SchedulerLog
,X_AD_SchedulerRecipient
,X_AD_SearchDefinition
,X_AD_Sequence
,X_AD_Sequence_Audit
,X_AD_Sequence_No
,X_AD_Session
,X_AD_SMTP
,X_AD_StatusLine
,X_AD_StatusLineUsedIn
,X_AD_StorageProvider
,X_AD_Style
,X_AD_StyleLine
,X_AD_SysConfig
,X_AD_System
,X_AD_Tab
,X_AD_Tab_Customization
,X_AD_Table
,X_AD_Table_Access
,X_AD_Table_ScriptValidator
,X_AD_TableIndex
,X_AD_Task
,X_AD_Task_Access
,X_AD_TaskInstance
,X_AD_ToolBarButton
,X_AD_ToolBarButtonRestrict
,X_AD_Tree
,X_AD_Tree_Favorite
,X_AD_Tree_Favorite_Node
,X_AD_TreeBar
,X_AD_TreeNode
,X_AD_TreeNodeBP
,X_AD_TreeNodeCMC
,X_AD_TreeNodeCMM
,X_AD_TreeNodeCMS
,X_AD_TreeNodeCMT
,X_AD_TreeNodeMM
,X_AD_TreeNodePR
,X_AD_TreeNodeU1
,X_AD_TreeNodeU2
,X_AD_TreeNodeU3
,X_AD_TreeNodeU4
,X_AD_User
,X_AD_User_OrgAccess
,X_AD_User_Roles
,X_AD_User_Substitute
,X_AD_UserBPAccess
,X_AD_UserDef_Field
,X_AD_UserDef_Info
,X_AD_UserDef_Info_Column
,X_AD_UserDef_Info_Related
,X_AD_UserDef_Proc
,X_AD_UserDef_Proc_Parameter
,X_AD_UserDef_Tab
,X_AD_UserDef_Win
,X_AD_UserMail
,X_AD_UserPreference
,X_AD_UserQuery
,X_AD_Val_Rule
,X_AD_ViewColumn
,X_AD_ViewComponent
,X_AD_WF_Activity
,X_AD_WF_ActivityApprover
,X_AD_WF_ActivityResult
,X_AD_WF_Block
,X_AD_WF_EventAudit
,X_AD_WF_NextCondition
,X_AD_WF_Node
,X_AD_WF_Node_Para
,X_AD_WF_NodeNext
,X_AD_WF_Process
,X_AD_WF_ProcessData
,X_AD_WF_Responsible
,X_AD_Window
,X_AD_Window_Access
,X_AD_WizardProcess
,X_AD_Wlistbox_Customization
,X_AD_Workflow
,X_AD_Workflow_Access
,X_AD_WorkflowProcessor
,X_AD_WorkflowProcessorLog
,X_AD_ZoomCondition
,X_ASP_ClientException
,X_ASP_ClientLevel
,X_ASP_Field
,X_ASP_Form
,X_ASP_Level
,X_ASP_Module
,X_ASP_Process
,X_ASP_Process_Para
,X_ASP_Ref_List
,X_ASP_Tab
,X_ASP_Task
,X_ASP_Window
,X_ASP_Workflow
,X_B_Bid
,X_B_BidComment
,X_B_Buyer
,X_B_BuyerFunds
,X_B_Offer
,X_B_Seller
,X_B_SellerFunds
,X_B_Topic
,X_B_TopicCategory
,X_B_TopicType
,X_C_1099Box
,X_C_AcctProcessor
,X_C_AcctProcessorLog
,X_C_AcctSchema
,X_C_AcctSchema_Default
,X_C_AcctSchema_Element
,X_C_AcctSchema_GL
,X_C_Activity
,X_C_AddressTransaction
,X_C_AddressValidation
,X_C_AddressValidationCfg
,X_C_AllocationHdr
,X_C_AllocationLine
,X_C_Bank
,X_C_BankAccount
,X_C_BankAccount_Acct
,X_C_BankAccount_Processor
,X_C_BankAccountDoc
,X_C_BankStatement
,X_C_BankStatementLine
,X_C_BankStatementLoader
,X_C_BankStatementMatcher
,X_C_BP_BankAccount
,X_C_BP_Customer_Acct
,X_C_BP_EDI
,X_C_BP_Employee_Acct
,X_C_BP_Group
,X_C_BP_Group_Acct
,X_C_BP_Relation
,X_C_BP_ShippingAcct
,X_C_BP_Vendor_Acct
,X_C_BP_Withholding
,X_C_BPartner
,X_C_BPartner_Location
,X_C_BPartner_Product
,X_C_Calendar
,X_C_Campaign
,X_C_Cash
,X_C_CashBook
,X_C_CashBook_Acct
,X_C_CashLine
,X_C_CashPlan
,X_C_CashPlanLine
,X_C_Channel
,X_C_Charge
,X_C_Charge_Acct
,X_C_ChargeType
,X_C_ChargeType_DocType
,X_C_City
,X_C_Commission
,X_C_CommissionAmt
,X_C_CommissionDetail
,X_C_CommissionLine
,X_C_CommissionRun
,X_C_ContactActivity
,X_C_Conversion_Rate
,X_C_ConversionType
,X_C_Country
,X_C_CountryGroup
,X_C_CountryGroupCountry
,X_C_Currency
,X_C_Currency_Acct
,X_C_Cycle
,X_C_CyclePhase
,X_C_CycleStep
,X_C_DepositBatch
,X_C_DepositBatchLine
,X_C_DocType
,X_C_DocTypeCounter
,X_C_Dunning
,X_C_DunningLevel
,X_C_DunningRun
,X_C_DunningRunEntry
,X_C_DunningRunLine
,X_C_Element
,X_C_ElementValue
,X_C_Greeting
,X_C_InterOrg_Acct
,X_C_Invoice
,X_C_InvoiceBatch
,X_C_InvoiceBatchLine
,X_C_InvoiceLine
,X_C_InvoicePaySchedule
,X_C_InvoiceSchedule
,X_C_InvoiceTax
,X_C_Job
,X_C_JobAssignment
,X_C_JobCategory
,X_C_JobRemuneration
,X_C_LandedCost
,X_C_LandedCostAllocation
,X_C_Location
,X_C_NonBusinessDay
,X_C_OnlineTrxHistory
,X_C_Opportunity
,X_C_Order
,X_C_OrderLandedCost
,X_C_OrderLandedCostAllocation
,X_C_OrderLine
,X_C_OrderPaySchedule
,X_C_OrderSource
,X_C_OrderTax
,X_C_OrgAssignment
,X_C_Payment
,X_C_PaymentAllocate
,X_C_PaymentBatch
,X_C_PaymentProcessor
,X_C_PaymentTerm
,X_C_PaymentTransaction
,X_C_PaySchedule
,X_C_PaySelection
,X_C_PaySelectionCheck
,X_C_PaySelectionLine
,X_C_Period
,X_C_PeriodControl
,X_C_Phase
,X_C_POS
,X_C_POSKey
,X_C_POSKeyLayout
,X_C_POSPayment
,X_C_POSTenderType
,X_C_Project
,X_C_Project_Acct
,X_C_ProjectIssue
,X_C_ProjectIssueMA
,X_C_ProjectLine
,X_C_ProjectPhase
,X_C_ProjectTask
,X_C_ProjectType
,X_C_Recurring
,X_C_Recurring_Run
,X_C_RecurringGroup
,X_C_Region
,X_C_Remuneration
,X_C_RevenueRecog_Service
,X_C_RevenueRecognition
,X_C_RevenueRecognition_Plan
,X_C_RevenueRecognition_Run
,X_C_RfQ
,X_C_RfQ_Topic
,X_C_RfQ_TopicSubscriber
,X_C_RfQ_TopicSubscriberOnly
,X_C_RfQLine
,X_C_RfQLineQty
,X_C_RfQResponse
,X_C_RfQResponseLine
,X_C_RfQResponseLineQty
,X_C_SalesRegion
,X_C_SalesStage
,X_C_ServiceLevel
,X_C_ServiceLevelLine
,X_C_SubAcct
,X_C_Subscription
,X_C_Subscription_Delivery
,X_C_SubscriptionType
,X_C_Task
,X_C_Tax
,X_C_Tax_Acct
,X_C_TaxBase
,X_C_TaxCategory
,X_C_TaxDeclaration
,X_C_TaxDeclarationAcct
,X_C_TaxDeclarationLine
,X_C_TaxDefinition
,X_C_TaxGroup
,X_C_TaxPostal
,X_C_TaxProvider
,X_C_TaxProviderCfg
,X_C_TaxType
,X_C_UOM
,X_C_UOM_Conversion
,X_C_UserRemuneration
,X_C_ValidCombination
,X_C_Withholding
,X_C_Withholding_Acct
,X_C_Year
,X_CM_Chat
,X_CM_ChatEntry
,X_CM_ChatType
,X_CM_ChatTypeUpdate
,X_CM_ChatUpdate
,X_DD_NetworkDistribution
,X_DD_NetworkDistributionLine
,X_DD_Order
,X_DD_OrderLine
,X_EXP_Format
,X_EXP_FormatLine
,X_EXP_Processor
,X_EXP_Processor_Type
,X_EXP_ProcessorParameter
,X_Fact_Acct
,X_Fact_Acct_Summary
,X_Fact_Reconciliation
,X_GL_Budget
,X_GL_BudgetControl
,X_GL_Category
,X_GL_Distribution
,X_GL_DistributionLine
,X_GL_Fund
,X_GL_FundRestriction
,X_GL_Journal
,X_GL_JournalBatch
,X_GL_JournalGenerator
,X_GL_JournalGeneratorLine
,X_GL_JournalGeneratorSource
,X_GL_JournalLine
,X_HR_Attribute
,X_HR_Concept
,X_HR_Concept_Acct
,X_HR_Concept_Category
,X_HR_Contract
,X_HR_Department
,X_HR_Employee
,X_HR_Job
,X_HR_List
,X_HR_ListLine
,X_HR_ListType
,X_HR_ListVersion
,X_HR_Movement
,X_HR_Payroll
,X_HR_PayrollConcept
,X_HR_Period
,X_HR_Process
,X_HR_Year
,X_I_Asset
,X_I_BankStatement
,X_I_BPartner
,X_I_Conversion_Rate
,X_I_ElementValue
,X_I_FAJournal
,X_I_FixedAsset
,X_I_GLJournal
,X_I_HR_Movement
,X_I_InOutLineConfirm
,X_I_Inventory
,X_I_Invoice
,X_I_Movement
,X_I_Order
,X_I_Payment
,X_I_PriceList
,X_I_Product
,X_I_ProductPlanning
,X_I_ReportLine
,X_IMP_Processor
,X_IMP_Processor_Type
,X_IMP_ProcessorLog
,X_IMP_ProcessorParameter
,X_M_Attribute
,X_M_AttributeInstance
,X_M_AttributeSearch
,X_M_AttributeSet
,X_M_AttributeSetExclude
,X_M_AttributeSetInstance
,X_M_AttributeUse
,X_M_AttributeValue
,X_M_BOM
,X_M_BOMAlternative
,X_M_BOMProduct
,X_M_BP_Price
,X_M_ChangeNotice
,X_M_ChangeRequest
,X_M_CommodityShipment
,X_M_Cost
,X_M_CostDetail
,X_M_CostElement
,X_M_CostHistory
,X_M_CostQueue
,X_M_CostType
,X_M_Demand
,X_M_DemandDetail
,X_M_DemandLine
,X_M_DiscountSchema
,X_M_DiscountSchemaBreak
,X_M_DiscountSchemaLine
,X_M_DistributionList
,X_M_DistributionListLine
,X_M_DistributionRun
,X_M_DistributionRunLine
,X_M_Forecast
,X_M_ForecastLine
,X_M_Freight
,X_M_FreightCategory
,X_M_InOut
,X_M_InOutConfirm
,X_M_InOutLine
,X_M_InOutLineConfirm
,X_M_InOutLineMA
,X_M_Inventory
,X_M_InventoryLine
,X_M_InventoryLineMA
,X_M_Locator
,X_M_LocatorType
,X_M_Lot
,X_M_LotCtl
,X_M_LotCtlExclude
,X_M_MatchInv
,X_M_MatchPO
,X_M_Movement
,X_M_MovementConfirm
,X_M_MovementLine
,X_M_MovementLineConfirm
,X_M_MovementLineMA
,X_M_OperationResource
,X_M_Package
,X_M_PackageLine
,X_M_PackageMPS
,X_M_PartType
,X_M_PerpetualInv
,X_M_PriceList
,X_M_PriceList_Version
,X_M_Product
,X_M_Product_Acct
,X_M_Product_BOM
,X_M_Product_Category
,X_M_Product_Category_Acct
,X_M_Product_PO
,X_M_Product_QualityTest
,X_M_ProductDownload
,X_M_Production
,X_M_ProductionLine
,X_M_ProductionLineMA
,X_M_ProductionPlan
,X_M_ProductOperation
,X_M_ProductPrice
,X_M_ProductPriceVendorBreak
,X_M_Promotion
,X_M_PromotionDistribution
,X_M_PromotionGroup
,X_M_PromotionGroupLine
,X_M_PromotionLine
,X_M_PromotionPreCondition
,X_M_PromotionReward
,X_M_QualityTest
,X_M_QualityTestResult
,X_M_RelatedProduct
,X_M_Replenish
,X_M_Requisition
,X_M_RequisitionLine
,X_M_RMA
,X_M_RMALine
,X_M_RMATax
,X_M_RMAType
,X_M_SerNoCtl
,X_M_SerNoCtlExclude
,X_M_Shipper
,X_M_ShipperCfg
,X_M_ShipperLabels
,X_M_ShipperLabelsCfg
,X_M_ShipperPackaging
,X_M_ShipperPackagingCfg
,X_M_ShipperPickupTypes
,X_M_ShipperPickupTypesCfg
,X_M_ShippingProcessor
,X_M_ShippingProcessorCfg
,X_M_ShippingTransaction
,X_M_ShippingTransactionLine
,X_M_StorageOnHand
,X_M_StorageReservation
,X_M_StorageReservationLog
,X_M_Substitute
,X_M_Transaction
,X_M_TransactionAllocation
,X_M_Warehouse
,X_M_Warehouse_Acct
,X_MFA_Method
,X_MFA_RegisteredDevice
,X_MFA_Registration
,X_MFA_Rule
,X_PA_Achievement
,X_PA_Benchmark
,X_PA_BenchmarkData
,X_PA_ColorSchema
,X_PA_DashboardContent
,X_PA_DashboardContent_Access
,X_PA_DashboardPreference
,X_PA_DocumentStatus
,X_PA_DocumentStatusAccess
,X_PA_Goal
,X_PA_GoalRestriction
,X_PA_Hierarchy
,X_PA_Measure
,X_PA_MeasureCalc
,X_PA_Ratio
,X_PA_RatioElement
,X_PA_Report
,X_PA_ReportColumn
,X_PA_ReportColumnSet
,X_PA_ReportCube
,X_PA_ReportLine
,X_PA_ReportLineSet
,X_PA_ReportSource
,X_PA_SLA_Criteria
,X_PA_SLA_Goal
,X_PA_SLA_Measure
,X_PP_Cost_Collector
,X_PP_Cost_CollectorMA
,X_PP_MRP
,X_PP_Order
,X_PP_Order_BOM
,X_PP_Order_BOMLine
,X_PP_Order_Cost
,X_PP_Order_Node
,X_PP_Order_Node_Asset
,X_PP_Order_Node_Product
,X_PP_Order_NodeNext
,X_PP_Order_Workflow
,X_PP_Product_BOM
,X_PP_Product_BOMLine
,X_PP_Product_Planning
,X_PP_WF_Node_Asset
,X_PP_WF_Node_Product
,X_QM_Specification
,X_QM_SpecificationLine
,X_R_Category
,X_R_CategoryUpdates
,X_R_ContactInterest
,X_R_Group
,X_R_GroupUpdates
,X_R_InterestArea
,X_R_IssueKnown
,X_R_IssueProject
,X_R_IssueRecommendation
,X_R_IssueStatus
,X_R_IssueSystem
,X_R_IssueUser
,X_R_MailText
,X_R_Request
,X_R_RequestAction
,X_R_RequestProcessor
,X_R_RequestProcessor_Route
,X_R_RequestProcessorLog
,X_R_RequestType
,X_R_RequestTypeUpdates
,X_R_RequestUpdate
,X_R_RequestUpdates
,X_R_Resolution
,X_R_StandardResponse
,X_R_Status
,X_R_StatusCategory
,X_RV_BPartner
,X_RV_WarehousePrice
,X_S_ExpenseType
,X_S_Resource
,X_S_ResourceAssignment
,X_S_ResourceType
,X_S_ResourceUnAvailable
,X_S_TimeExpense
,X_S_TimeExpenseLine
,X_S_TimeType
,X_S_Training
,X_S_Training_Class
,X_T_1099Extract
,X_T_Aging
,X_T_BankRegister
,X_T_BOM_Indented
,X_T_BOMLine
,X_T_CashFlow
,X_T_DistributionRunDetail
,X_T_InventoryValue
,X_T_InvoiceGL
,X_T_MRP_CRP
,X_T_Reconciliation
,X_T_Replenish
,X_T_Report
,X_T_ReportStatement
,X_T_Transaction
,X_Test
,X_U_BlackListCheque
,X_U_POSTerminal
,X_U_RoleMenu
,X_U_Web_Properties
,X_U_WebMenu
,X_WS_WebService
,X_WS_WebService_Para
,X_WS_WebServiceFieldInput
,X_WS_WebServiceFieldOutput
,X_WS_WebServiceMethod
,X_WS_WebServiceType
,X_WS_WebServiceTypeAccess
public abstract class PO extends Object implements Serializable, Comparator<Object>, Evaluatee, Cloneable
Persistent Object. Superclass for actual implementations- Version:
- $Id: PO.java,v 1.12 2006/08/09 16:38:47 jjanke Exp $
- Author:
- Jorg Janke, Teo Sarca, SC ARHIPAC SERVICE SRL
- FR [ 1675490 ] ModelValidator on modelChange after events
- BF [ 1704828 ] PO.is_Changed() and PO.is_ValueChanged are not consistent
- FR [ 1720995 ] Add PO.saveEx() and PO.deleteEx() methods
- BF [ 1990856 ] PO.set_Value* : truncate string more than needed
- FR [ 2042844 ] PO.get_Translation improvements
- FR [ 2818369 ] Implement PO.get_ValueAs*(columnName) https://sourceforge.net/p/adempiere/feature-requests/754/
- BF [ 2849122 ] PO.AfterSave is not rollback on error https://sourceforge.net/p/adempiere/bugs/2073/
- BF [ 2859125 ] Can't set AD_OrgBP_ID https://sourceforge.net/p/adempiere/bugs/2095/
- BF [ 2866493 ] VTreePanel is not saving who did the node move https://sourceforge.net/p/adempiere/bugs/2135/, Teo Sarca, teo.sarca@gmail.com
- BF [ 2876259 ] PO.insertTranslation query is not correct https://sourceforge.net/p/adempiere/bugs/2168/, Victor Perez, e-Evolution SC
- [ 2195894 ] Improve performance in PO engine
- https://sourceforge.net/p/adempiere/feature-requests/555/
- BF [2947622] The replication ID (Primary Key) is not working
- https://sourceforge.net/p/adempiere/bugs/2308/
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static int
ACCESSLEVEL_ALL
Access Level SCO 111 7 System shared infostatic int
ACCESSLEVEL_CLIENT
Access Level _C_ 010 2 Client infostatic int
ACCESSLEVEL_CLIENTORG
Access Level _CO 011 3 Client shared infostatic int
ACCESSLEVEL_ORG
Access Level __O 001 1 Organization infostatic int
ACCESSLEVEL_SYSTEM
Access Level S__ 100 4 System infostatic int
ACCESSLEVEL_SYSTEMCLIENT
Access Level SC_ 110 6 System/Client infostatic String
ENTITYTYPE_Dictionary
Dictionary Maintained Entity Typestatic String
ENTITYTYPE_UserMaintained
User Maintained Entity Typeprotected static Integer
I_ZERO
Zero Integerstatic String
LOCAL_TRX_PREFIX
protected CLogger
log
Loggerprotected Properties
p_ctx
Contextprotected POInfo
p_info
Model Infoprotected static String
XML_ATTRIBUTE_AD_Table_ID
Table ID Attributeprotected static String
XML_ATTRIBUTE_Record_ID
Record ID Attribute
-
Constructor Summary
Constructors Constructor Description PO(Properties ctx)
Create New Persistent ObjectPO(Properties ctx, int ID, String trxName)
Create and Load existing Persistent ObjectPO(Properties ctx, int ID, String trxName, ResultSet rs)
Create and Load existing Persistent Object.PO(Properties ctx, ResultSet rs, String trxName)
Create and Load existing Persistent Object.PO(Properties ctx, PO source, int AD_Client_ID, int AD_Org_ID)
Create New PO by Copying existing (key not copied).
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected boolean
afterDelete(boolean success)
Executed after Delete operation.protected boolean
afterSave(boolean newRecord, boolean success)
Called after Save for Post-Save Operationprotected boolean
beforeDelete()
Executed before Delete operation.protected boolean
beforeSave(boolean newRecord)
Called before Save for Pre-Save Operationprotected void
checkImmutable()
static void
clearCrossTenantSafe()
protected Object
clone()
Deprecated.boolean
columnExists(String columnName)
Verify if a column existsboolean
columnExists(String columnName, boolean throwException)
Verify if a column existsint
compare(Object o1, Object o2)
Compare based on DocumentNo, Value, Name, Descriptionprotected void
copyPO(PO copy)
Copy all properties from copy.static void
copyValues(PO from, PO to)
Copy old values of From to new values of To.protected static void
copyValues(PO from, PO to, int AD_Client_ID, int AD_Org_ID)
Copy old values of From to new values of To.MAttachment
createAttachment()
Create/return Attachment for PO.boolean
delete(boolean force)
Delete Current Recordboolean
delete(boolean force, String trxName)
Delete Current Recordprotected boolean
delete_Accounting(String acctTable)
Deprecated.protected boolean
delete_Tree(String treeType)
Delete ID Tree Nodesvoid
deleteEx(boolean force)
Delete Current Recordvoid
deleteEx(boolean force, String trxName)
Delete Current Recordvoid
dump()
Dump Recordvoid
dump(int index)
Dump columnboolean
equals(Object cmp)
Equals based on IDprotected abstract int
get_AccessLevel()
Get Table Access LevelObject
get_Attribute(String attributeName)
HashMap<String,Object>
get_Attributes()
int
get_ColumnCount()
Get Column Countprotected String
get_ColumnDescription(int index)
Get Column Descriptionprotected int
get_ColumnDisplayType(int index)
Get Column DisplayTypeint
get_ColumnIndex(String columnName)
Get Column Indexprotected String
get_ColumnLabel(int index)
Get Column Labelprotected Lookup
get_ColumnLookup(int index)
Get LookupString
get_ColumnName(int index)
Get Column NameString
get_DisplayValue(String columnName, boolean currentValue)
Get Display Value of valueprotected HashMap<String,String>
get_HashMap()
Create Hashmap with data as Stringsint
get_ID()
Return Single Key Record IDint
get_IDOld()
Return Deleted Single Key Record IDString[]
get_KeyColumns()
Get Key Columns.CLogger
get_Logger()
Get LoggerString[]
get_OptimisticLockingColumns()
int
get_Table_ID()
Get Table ID.String
get_TableName()
Get TableName.String
get_Translation(String columnName)
Get Translation of columnString
get_Translation(String columnName, boolean fallback)
Get Translation of columnString
get_Translation(String columnName, String AD_Language)
String
get_Translation(String columnName, String AD_Language, boolean reload)
Get Translation of columnString
get_Translation(String columnName, String AD_Language, boolean reload, boolean fallback)
Get Translation of column (if needed).String
get_TrxName()
Get TrxObject
get_Value(int index)
Get ValueObject
get_Value(String columnName)
Get Valueboolean
get_ValueAsBoolean(String columnName)
Get value as Booleanint
get_ValueAsInt(int index)
Get Value as intint
get_ValueAsInt(String columnName)
Get Integer ValueString
get_ValueAsString(String variableName)
Get Column ValueObject
get_ValueDifference(int index)
Return new - oldObject
get_ValueDifference(String columnName)
Return new - oldprotected Object
get_ValueE(String columnName)
Get Encrypted ValueObject
get_ValueOfColumn(int AD_Column_ID)
Get Value of ColumnObject
get_ValueOld(int index)
Get Old ValueObject
get_ValueOld(String columnName)
Get Old Valueint
get_ValueOldAsInt(String columnName)
Get Old Value as intString
get_WhereClause(boolean withValues)
Create Single/Multi Key Where ClauseString
get_WhereClause(boolean withValues, String uuID)
Create Single/Multi Key Where ClauseDocument
get_xmlDocument(boolean noComment)
Get XML Document representationStringBuffer
get_xmlString(StringBuffer xml)
Get Object xml representation as stringint
getAD_Client_ID()
Get AD_Clientint
getAD_Org_ID()
Get AD_Orgstatic int[]
getAllIDs(String TableName, String WhereClause, String trxName)
Get All IDs of Table.MAttachment
getAttachment()
Get Attachments.MAttachment
getAttachment(boolean requery)
Get Attachmentsbyte[]
getAttachmentData(String extension)
Get Attachment Data of typeTimestamp
getCreated()
Get Createdint
getCreatedBy()
Get CreatedByProperties
getCtx()
Get ContextDoc
getDoc()
Set the accounting document associated to the PO - for use in POST ModelValidatorprotected static String
getFindParameter(String query)
Get Find parameter.byte[]
getPdfAttachment()
Get PDF Attachment DataTimestamp
getUpdated()
Get Updatedint
getUpdatedBy()
Get UpdatedByString
getUUIDColumnName()
static String
getUUIDColumnName(String tableName)
int
hashCode()
protected abstract POInfo
initPO(Properties ctx)
Initialize and return PO_Infoprotected boolean
insert_Accounting(String acctTableName, String acctBaseTable, String whereClause)
Insert Accounting Recordsprotected boolean
insert_Tree(String treeType)
Insert id data into Treeprotected boolean
insert_Tree(String treeType, int C_Element_ID)
Insert id data into Treeboolean
is_Changed()
Is there a Change to be saved?boolean
is_Immutable()
boolean
is_new()
Is new recordboolean
is_UseOptimisticLocking()
boolean
is_ValueChanged(int index)
Is Value Changedboolean
is_ValueChanged(String columnName)
Is Value Changedboolean
isActive()
Is Activeboolean
isAttachment(String extension)
Do we have a Attachment of typeprotected boolean
isColumnMandatory(int index)
Is Column Mandatoryprotected boolean
isColumnUpdateable(int index)
Is Column Updateableprotected boolean
isMandatoryOK()
Are all mandatory Fields filled (i.e. can we save)?.boolean
isPdfAttachment()
Do we have a PDF Attachmentboolean
isReplication()
protected void
load(int ID, String trxName)
Load record with IDboolean
load(String trxName)
(re)Load record with m_ID[*]protected boolean
load(String uuID, String trxName)
(re)Load record with uuIDprotected boolean
load(ResultSet rs)
Load from the current position of a ResultSetprotected boolean
load(HashMap<String,String> hmIn)
Load from HashMapvoid
loadByUU(String uuID, String trxName)
Load record with UUIDprotected void
loadComplete(boolean success)
Load is completeprotected void
loadDefaults()
Load Defaultsprotected Object
loadSpecial(ResultSet rs, int index)
Load Special data (images, ..).boolean
lock()
Lock it.protected void
makeImmutable()
Turn on immutable checkprotected boolean
postDelete()
Executed after the Delete operation is committed in the database.static int
retrieveIdOfParentValue(String value, String tableName, int clientID, String trxName)
Returns the summary node with the corresponding valuestatic int
retrieveIdOfParentValue(String value, String tableName, String linkCol, int linkID, int clientID, String trxName)
boolean
save()
Update Value or create new record.boolean
save(String trxName)
Update Value or create new record.void
saveEx()
Update Value or create new record.void
saveEx(String trxName)
Update Value or create new record.protected void
saveNew_afterSetID()
Call after ID have been assigned for new recordprotected int
saveNew_getID()
Get ID for new record during save.protected String
saveNewSpecial(Object value, int index)
Save Special Data.void
saveReplica(boolean isFromReplication)
protected boolean
saveUpdate()
Update Record directlyvoid
set_Attribute(String attributeName, Object value)
set attribute valueprotected void
set_ColumnUpdateable(int index, boolean updateable)
Set Column Updateablevoid
set_CustomColumn(String columnName, Object value)
Set Custom Columnboolean
set_CustomColumnReturningBoolean(String columnName, Object value)
Set Custom Column returning booleanvoid
set_OptimisticLockingColumns(String[] columns)
set columns use for optimistic locking (auto add to where clause for update and delete)void
set_TrxName(String trxName)
Set Trxstatic void
set_TrxName(PO[] lines, String trxName)
PO.setTrxName - set given trxName to an array of POs As suggested by teo in [ 1854603 ]void
set_UseOptimisticLocking(boolean enable)
enable/disable optimistic lockingprotected boolean
set_Value(int index, Object value)
Set Value if updateable and correct class.protected boolean
set_Value(int index, Object value, boolean checkWritable)
Set Value if updateable and correct class.protected boolean
set_Value(String ColumnName, Object value)
Set Valueprotected boolean
set_Value(String ColumnName, Object value, boolean checkWritable)
Set Valueprotected boolean
set_ValueE(String ColumnName, Object value)
Set Encrypted Valueboolean
set_ValueNoCheck(String ColumnName, Object value)
Set Value w/o check (update, r/o, ..).protected boolean
set_ValueNoCheckE(String ColumnName, Object value)
Set Encrypted Value w/o check (update, r/o, ..).void
set_ValueOfColumn(int AD_Column_ID, Object value)
Set Value of Columnvoid
set_ValueOfColumn(String columnName, Object value)
Set value of Columnboolean
set_ValueOfColumnReturningBoolean(int AD_Column_ID, Object value)
Set Value of Columnboolean
set_ValueOfColumnReturningBoolean(String columnName, Object value)
Set value of Column returning booleanprotected void
setAD_Client_ID(int AD_Client_ID)
Set AD_Clientvoid
setAD_Org_ID(int AD_Org_ID)
Set AD_Orgprotected void
setClientOrg(int AD_Client_ID, int AD_Org_ID)
Overwrite Client Org if differentprotected void
setClientOrg(PO po)
Overwrite Client Org if differentstatic void
setCrossTenantSafe()
void
setDoc(Doc doc)
Set the accounting document associated to the PO - for use in POST ModelValidatorstatic void
setDocWorkflowMgr(DocWorkflowMgr docWFMgr)
Set Document Value Workflow Managervoid
setIsActive(boolean active)
Set Activevoid
setProcessedOn(String ColumnName, Object value, Object oldValue)
void
setReplication(boolean isFromReplication)
protected void
setStandardDefaults()
Set Default values.protected void
setUpdateable(boolean updateable)
Set all columns updateableprotected void
setUpdatedBy(int AD_User_ID)
Set UpdatedByString
toString()
String representationboolean
unlock(String trxName)
UnLock itvoid
update_Tree(String treeType)
Update parent key and seqno based on value if the tree is driven by valueboolean
validForeignKeys()
Validate Foreign keys for cross tenant to be called programmatically before saving in programs that can receive arbitrary values in IDs This is an expensive operation in terms of database, use it wisely TODO: there is huge room for performance improvement, for example: - caching the valid values found on foreign tables - caching the column ID of the foreign column - caching the systemAccess-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Comparator
reversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
-
-
-
-
Field Detail
-
LOCAL_TRX_PREFIX
public static final String LOCAL_TRX_PREFIX
- See Also:
- Constant Field Values
-
ENTITYTYPE_UserMaintained
public static final String ENTITYTYPE_UserMaintained
User Maintained Entity Type- See Also:
- Constant Field Values
-
ENTITYTYPE_Dictionary
public static final String ENTITYTYPE_Dictionary
Dictionary Maintained Entity Type- See Also:
- Constant Field Values
-
log
protected transient CLogger log
Logger
-
p_ctx
protected transient Properties p_ctx
Context
-
p_info
protected transient volatile POInfo p_info
Model Info
-
I_ZERO
protected static final Integer I_ZERO
Zero Integer
-
ACCESSLEVEL_SYSTEM
public static final int ACCESSLEVEL_SYSTEM
Access Level S__ 100 4 System info- See Also:
- Constant Field Values
-
ACCESSLEVEL_CLIENT
public static final int ACCESSLEVEL_CLIENT
Access Level _C_ 010 2 Client info- See Also:
- Constant Field Values
-
ACCESSLEVEL_ORG
public static final int ACCESSLEVEL_ORG
Access Level __O 001 1 Organization info- See Also:
- Constant Field Values
-
ACCESSLEVEL_ALL
public static final int ACCESSLEVEL_ALL
Access Level SCO 111 7 System shared info- See Also:
- Constant Field Values
-
ACCESSLEVEL_SYSTEMCLIENT
public static final int ACCESSLEVEL_SYSTEMCLIENT
Access Level SC_ 110 6 System/Client info- See Also:
- Constant Field Values
-
ACCESSLEVEL_CLIENTORG
public static final int ACCESSLEVEL_CLIENTORG
Access Level _CO 011 3 Client shared info- See Also:
- Constant Field Values
-
XML_ATTRIBUTE_AD_Table_ID
protected static final String XML_ATTRIBUTE_AD_Table_ID
Table ID Attribute- See Also:
- Constant Field Values
-
XML_ATTRIBUTE_Record_ID
protected static final String XML_ATTRIBUTE_Record_ID
Record ID Attribute- See Also:
- Constant Field Values
-
-
Constructor Detail
-
PO
public PO(Properties ctx)
Create New Persistent Object- Parameters:
ctx
- context
-
PO
public PO(Properties ctx, int ID, String trxName)
Create and Load existing Persistent Object- Parameters:
ID
- The unique ID of the objectctx
- contexttrxName
- transaction name
-
PO
public PO(Properties ctx, ResultSet rs, String trxName)
Create and Load existing Persistent Object.- Parameters:
ctx
- contextrs
- optional - load from current result set position (no navigation, not closed) if null, a new record is created.trxName
- transaction name
-
PO
public PO(Properties ctx, int ID, String trxName, ResultSet rs)
Create and Load existing Persistent Object.You load - an existing single key record with new PO (ctx, Record_ID) or new PO (ctx, Record_ID, trxName) or new PO (ctx, rs, get_TrxName()) - a new single key record with new PO (ctx, 0) - an existing multi key record with new PO (ctx, rs, get_TrxName()) - a new multi key record with new PO (ctx, null) The ID for new single key records is created automatically, you need to set the IDs for multi-key records explicitly.
- Parameters:
ctx
- contextID
- the ID if 0, the record defaults are applied - ignored if re existstrxName
- transaction namers
- optional - load from current result set position (no navigation, not closed)
-
PO
public PO(Properties ctx, PO source, int AD_Client_ID, int AD_Org_ID)
Create New PO by Copying existing (key not copied).- Parameters:
ctx
- contextsource
- source objectAD_Client_ID
- clientAD_Org_ID
- org
-
-
Method Detail
-
setDocWorkflowMgr
public static void setDocWorkflowMgr(DocWorkflowMgr docWFMgr)
Set Document Value Workflow Manager- Parameters:
docWFMgr
- mgr
-
copyPO
protected void copyPO(PO copy)
Copy all properties from copy. Method to help the implementation of copy constructor.- Parameters:
copy
-
-
initPO
protected abstract POInfo initPO(Properties ctx)
Initialize and return PO_Info- Parameters:
ctx
- context- Returns:
- POInfo
-
get_AccessLevel
protected abstract int get_AccessLevel()
Get Table Access Level- Returns:
- Access Level
-
toString
public String toString()
String representation
-
equals
public boolean equals(Object cmp)
Equals based on ID- Specified by:
equals
in interfaceComparator<Object>
- Overrides:
equals
in classObject
- Parameters:
cmp
- comparator- Returns:
- true if ID the same
-
compare
public int compare(Object o1, Object o2)
Compare based on DocumentNo, Value, Name, Description- Specified by:
compare
in interfaceComparator<Object>
- Parameters:
o1
- Object 1o2
- Object 2- Returns:
- -1 if o1 < o2
-
get_TableName
public String get_TableName()
Get TableName.- Returns:
- table name
-
get_KeyColumns
public String[] get_KeyColumns()
Get Key Columns.- Returns:
- table name
-
get_Table_ID
public int get_Table_ID()
Get Table ID.- Returns:
- table id
-
get_ID
public int get_ID()
Return Single Key Record ID- Returns:
- ID or 0
-
get_IDOld
public int get_IDOld()
Return Deleted Single Key Record ID- Returns:
- ID or 0
-
getCtx
public Properties getCtx()
Get Context- Returns:
- context
-
get_Logger
public CLogger get_Logger()
Get Logger- Returns:
- logger
-
get_Value
public final Object get_Value(int index)
Get Value- Parameters:
index
- index- Returns:
- value
-
get_ValueAsInt
public int get_ValueAsInt(int index)
Get Value as int- Parameters:
index
- index- Returns:
- int value or 0
-
get_Value
public final Object get_Value(String columnName)
Get Value- Parameters:
columnName
- column name- Returns:
- value or null
-
get_ValueE
protected final Object get_ValueE(String columnName)
Get Encrypted Value- Parameters:
columnName
- column name- Returns:
- value or null
-
get_ValueAsString
public String get_ValueAsString(String variableName)
Get Column Value- Specified by:
get_ValueAsString
in interfaceEvaluatee
- Parameters:
variableName
- name- Returns:
- value or ""
-
get_ValueOfColumn
public final Object get_ValueOfColumn(int AD_Column_ID)
Get Value of Column- Parameters:
AD_Column_ID
- column- Returns:
- value or null
-
get_ValueOld
public final Object get_ValueOld(int index)
Get Old Value- Parameters:
index
- index- Returns:
- value
-
get_ValueOld
public final Object get_ValueOld(String columnName)
Get Old Value- Parameters:
columnName
- column name- Returns:
- value or null
-
get_ValueOldAsInt
public int get_ValueOldAsInt(String columnName)
Get Old Value as int- Parameters:
columnName
- column name- Returns:
- int value or 0
-
is_ValueChanged
public final boolean is_ValueChanged(int index)
Is Value Changed- Parameters:
index
- index- Returns:
- true if changed
-
is_ValueChanged
public final boolean is_ValueChanged(String columnName)
Is Value Changed- Parameters:
columnName
- column name- Returns:
- true if changed
-
get_ValueDifference
public final Object get_ValueDifference(int index)
Return new - old. - New Value if Old Value is null - New Value - Old Value if Number - otherwise null- Parameters:
index
- index- Returns:
- new - old or null if not appropriate or not changed
-
get_ValueDifference
public final Object get_ValueDifference(String columnName)
Return new - old. - New Value if Old Value is null - New Value - Old Value if Number - otherwise null- Parameters:
columnName
- column name- Returns:
- new - old or null if not appropriate or not changed
-
set_Value
protected final boolean set_Value(String ColumnName, Object value)
Set Value- Parameters:
ColumnName
- column namevalue
- value- Returns:
- true if value set
-
set_Value
protected final boolean set_Value(String ColumnName, Object value, boolean checkWritable)
Set Value- Parameters:
ColumnName
- column namevalue
- valuecheckWritable
-- Returns:
- true if value set
-
set_ValueE
protected final boolean set_ValueE(String ColumnName, Object value)
Set Encrypted Value- Parameters:
ColumnName
- column namevalue
- value- Returns:
- true if value set
-
set_Value
protected final boolean set_Value(int index, Object value)
Set Value if updateable and correct class. (and to NULL if not mandatory)- Parameters:
index
- indexvalue
- value- Returns:
- true if value set
-
set_Value
protected final boolean set_Value(int index, Object value, boolean checkWritable)
Set Value if updateable and correct class. (and to NULL if not mandatory)- Parameters:
index
- indexvalue
- valuecheckWritable
-- Returns:
- true if value set
-
set_ValueNoCheck
public final boolean set_ValueNoCheck(String ColumnName, Object value)
Set Value w/o check (update, r/o, ..). Used when Column is R/O Required for key and parent values- Parameters:
ColumnName
- column namevalue
- value- Returns:
- true if value set
-
set_ValueNoCheckE
protected final boolean set_ValueNoCheckE(String ColumnName, Object value)
Set Encrypted Value w/o check (update, r/o, ..). Used when Column is R/O Required for key and parent values- Parameters:
ColumnName
- column namevalue
- value- Returns:
- true if value set
-
set_ValueOfColumn
public final void set_ValueOfColumn(String columnName, Object value)
Set value of Column- Parameters:
columnName
-value
-
-
set_ValueOfColumnReturningBoolean
public final boolean set_ValueOfColumnReturningBoolean(String columnName, Object value)
Set value of Column returning boolean- Parameters:
columnName
-value
-
-
set_ValueOfColumn
public final void set_ValueOfColumn(int AD_Column_ID, Object value)
Set Value of Column- Parameters:
AD_Column_ID
- columnvalue
- value
-
set_ValueOfColumnReturningBoolean
public final boolean set_ValueOfColumnReturningBoolean(int AD_Column_ID, Object value)
Set Value of Column- Parameters:
AD_Column_ID
- columnvalue
- value
-
set_CustomColumn
public final void set_CustomColumn(String columnName, Object value)
Set Custom Column- Parameters:
columnName
- columnvalue
- value
-
set_CustomColumnReturningBoolean
public final boolean set_CustomColumnReturningBoolean(String columnName, Object value)
Set Custom Column returning boolean- Parameters:
columnName
- columnvalue
- value
-
get_ColumnCount
public int get_ColumnCount()
Get Column Count- Returns:
- column count
-
get_ColumnName
public String get_ColumnName(int index)
Get Column Name- Parameters:
index
- index- Returns:
- ColumnName
-
get_ColumnLabel
protected String get_ColumnLabel(int index)
Get Column Label- Parameters:
index
- index- Returns:
- Column Label
-
get_ColumnDescription
protected String get_ColumnDescription(int index)
Get Column Description- Parameters:
index
- index- Returns:
- column description
-
isColumnMandatory
protected boolean isColumnMandatory(int index)
Is Column Mandatory- Parameters:
index
- index- Returns:
- true if column mandatory
-
isColumnUpdateable
protected boolean isColumnUpdateable(int index)
Is Column Updateable- Parameters:
index
- index- Returns:
- true if column updateable
-
set_ColumnUpdateable
protected void set_ColumnUpdateable(int index, boolean updateable)
Set Column Updateable- Parameters:
index
- indexupdateable
- column updateable
-
setUpdateable
protected void setUpdateable(boolean updateable)
Set all columns updateable- Parameters:
updateable
- updateable
-
get_ColumnDisplayType
protected int get_ColumnDisplayType(int index)
Get Column DisplayType- Parameters:
index
- index- Returns:
- display type
-
get_ColumnLookup
protected Lookup get_ColumnLookup(int index)
Get Lookup- Parameters:
index
- index- Returns:
- Lookup or null
-
get_ColumnIndex
public final int get_ColumnIndex(String columnName)
Get Column Index- Parameters:
columnName
- column name- Returns:
- index of column with ColumnName or -1 if not found
-
get_DisplayValue
public String get_DisplayValue(String columnName, boolean currentValue)
Get Display Value of value- Parameters:
columnName
- columnNamecurrentValue
- current value- Returns:
- String value with "./." as null
-
copyValues
protected static void copyValues(PO from, PO to, int AD_Client_ID, int AD_Org_ID)
Copy old values of From to new values of To. Does not copy Keys- Parameters:
from
- old, existing and unchanged POto
- new, not saved POAD_Client_ID
- clientAD_Org_ID
- org
-
copyValues
public static void copyValues(PO from, PO to)
Copy old values of From to new values of To. Does not copy Keys and AD_Client_ID/AD_Org_ID- Parameters:
from
- old, existing and unchanged POto
- new, not saved PO
-
load
protected void load(int ID, String trxName)
Load record with ID- Parameters:
ID
- IDtrxName
- transaction name
-
loadByUU
public void loadByUU(String uuID, String trxName)
Load record with UUID- Parameters:
uuID
- UUIDtrxName
- transaction name
-
load
public boolean load(String trxName)
(re)Load record with m_ID[*]- Parameters:
trxName
- transaction- Returns:
- true if loaded
-
load
protected boolean load(String uuID, String trxName)
(re)Load record with uuID- Parameters:
uuID
- RecrodUUtrxName
- transaction- Returns:
- true if loaded
-
load
protected boolean load(ResultSet rs)
Load from the current position of a ResultSet- Parameters:
rs
- result set- Returns:
- true if loaded
-
load
protected boolean load(HashMap<String,String> hmIn)
Load from HashMap- Parameters:
hmIn
- hash map- Returns:
- true if loaded
-
checkImmutable
protected void checkImmutable()
-
get_HashMap
protected HashMap<String,String> get_HashMap()
Create Hashmap with data as Strings- Returns:
- HashMap
-
loadSpecial
protected Object loadSpecial(ResultSet rs, int index) throws SQLException
Load Special data (images, ..). To be extended by sub-classes- Parameters:
rs
- result setindex
- zero based index- Returns:
- value value
- Throws:
SQLException
-
loadComplete
protected void loadComplete(boolean success)
Load is complete- Parameters:
success
- success To be extended by sub-classes
-
loadDefaults
protected void loadDefaults()
Load Defaults
-
setStandardDefaults
protected void setStandardDefaults()
Set Default values. Client, Org, Created/Updated, *By, IsActive
-
isMandatoryOK
protected boolean isMandatoryOK()
Are all mandatory Fields filled (i.e. can we save)?. Stops at first null mandatory field- Returns:
- true if all mandatory fields are ok
-
setAD_Client_ID
protected final void setAD_Client_ID(int AD_Client_ID)
Set AD_Client- Parameters:
AD_Client_ID
- client
-
getAD_Client_ID
public final int getAD_Client_ID()
Get AD_Client- Returns:
- AD_Client_ID
-
setAD_Org_ID
public final void setAD_Org_ID(int AD_Org_ID)
Set AD_Org- Parameters:
AD_Org_ID
- org
-
getAD_Org_ID
public int getAD_Org_ID()
Get AD_Org- Returns:
- AD_Org_ID
-
setClientOrg
protected void setClientOrg(int AD_Client_ID, int AD_Org_ID)
Overwrite Client Org if different- Parameters:
AD_Client_ID
- clientAD_Org_ID
- org
-
setClientOrg
protected void setClientOrg(PO po)
Overwrite Client Org if different- Parameters:
po
- persistent object
-
setIsActive
public final void setIsActive(boolean active)
Set Active- Parameters:
active
- active
-
isActive
public final boolean isActive()
Is Active- Returns:
- is active
-
getCreated
public final Timestamp getCreated()
Get Created- Returns:
- created
-
getUpdated
public final Timestamp getUpdated()
Get Updated- Returns:
- updated
-
getCreatedBy
public final int getCreatedBy()
Get CreatedBy- Returns:
- AD_User_ID
-
getUpdatedBy
public final int getUpdatedBy()
Get UpdatedBy- Returns:
- AD_User_ID
-
setUpdatedBy
protected final void setUpdatedBy(int AD_User_ID)
Set UpdatedBy- Parameters:
AD_User_ID
- user
-
get_Translation
public String get_Translation(String columnName, String AD_Language, boolean reload, boolean fallback)
Get Translation of column (if needed). It checks if the base language is used or the column is not translated. If there is no translation then it fallback to original value.- Parameters:
columnName
-AD_Language
-reload
- don't use cache, reload from DBfallback
- fallback to base if no translation found- Returns:
- translated string
- Throws:
IllegalArgumentException
- if columnName or AD_Language is null or model has multiple PK
-
get_Translation
public String get_Translation(String columnName)
Get Translation of column- Parameters:
columnName
-
-
get_Translation
public String get_Translation(String columnName, String AD_Language, boolean reload)
Get Translation of column- Parameters:
columnName
-AD_Language
-reload
- don't use cache, reload from DB
-
get_Translation
public String get_Translation(String columnName, boolean fallback)
Get Translation of column- Parameters:
columnName
-fallback
- fallback to base if no translation found- Returns:
- translation
-
is_new
public boolean is_new()
Is new record- Returns:
- true if new
-
save
public boolean save()
Update Value or create new record. To reload call load() - not updated- Returns:
- true if saved
-
saveEx
public void saveEx() throws AdempiereException
Update Value or create new record.- Throws:
AdempiereException
- See Also:
save()
-
save
public boolean save(String trxName)
Update Value or create new record. To reload call load() - not updated- Parameters:
trxName
- transaction- Returns:
- true if saved
-
saveReplica
public void saveReplica(boolean isFromReplication) throws AdempiereException
- Throws:
AdempiereException
-
saveEx
public void saveEx(String trxName) throws AdempiereException
Update Value or create new record.- Parameters:
trxName
- transaction- Throws:
AdempiereException
- See Also:
saveEx(String)
-
is_Changed
public boolean is_Changed()
Is there a Change to be saved?- Returns:
- true if record changed
-
beforeSave
protected boolean beforeSave(boolean newRecord)
Called before Save for Pre-Save Operation- Parameters:
newRecord
- new record- Returns:
- true if record can be saved
-
afterSave
protected boolean afterSave(boolean newRecord, boolean success)
Called after Save for Post-Save Operation- Parameters:
newRecord
- new recordsuccess
- true if save operation was success- Returns:
- if save was a success
-
saveUpdate
protected boolean saveUpdate()
Update Record directly- Returns:
- true if updated
-
is_UseOptimisticLocking
public boolean is_UseOptimisticLocking()
- Returns:
- true if optimistic locking is enable
-
set_UseOptimisticLocking
public void set_UseOptimisticLocking(boolean enable)
enable/disable optimistic locking- Parameters:
enable
-
-
get_OptimisticLockingColumns
public String[] get_OptimisticLockingColumns()
- Returns:
- optimistic locking columns
-
set_OptimisticLockingColumns
public void set_OptimisticLockingColumns(String[] columns)
set columns use for optimistic locking (auto add to where clause for update and delete)- Parameters:
columns
-
-
saveNew_getID
protected int saveNew_getID()
Get ID for new record during save. You can overwrite this to explicitly set the ID- Returns:
- ID to be used or 0 for default logic
-
saveNew_afterSetID
protected void saveNew_afterSetID()
Call after ID have been assigned for new record
-
get_WhereClause
public String get_WhereClause(boolean withValues)
Create Single/Multi Key Where Clause- Parameters:
withValues
- if true uses actual values otherwise ?- Returns:
- where clause
-
get_WhereClause
public String get_WhereClause(boolean withValues, String uuID)
Create Single/Multi Key Where Clause- Parameters:
withValues
- if true uses actual values otherwise ?uuID
- RecordUU- Returns:
- where clause
-
saveNewSpecial
protected String saveNewSpecial(Object value, int index)
Save Special Data. To be extended by sub-classes- Parameters:
value
- valueindex
- index- Returns:
- SQL code for INSERT VALUES clause
-
delete
public boolean delete(boolean force)
Delete Current Record- Parameters:
force
- delete also processed records- Returns:
- true if deleted
-
deleteEx
public void deleteEx(boolean force) throws AdempiereException
Delete Current Record- Parameters:
force
- delete also processed records- Throws:
AdempiereException
- See Also:
delete(boolean)
-
delete
public boolean delete(boolean force, String trxName)
Delete Current Record- Parameters:
force
- delete also processed recordstrxName
- transaction- Returns:
- true if deleted
-
deleteEx
public void deleteEx(boolean force, String trxName) throws AdempiereException
Delete Current Record- Parameters:
force
- delete also processed recordstrxName
- transaction- Throws:
AdempiereException
-
beforeDelete
protected boolean beforeDelete()
Executed before Delete operation.- Returns:
- true if record can be deleted
-
afterDelete
protected boolean afterDelete(boolean success)
Executed after Delete operation.- Parameters:
success
- true if record deleted- Returns:
- true if delete is a success
-
postDelete
protected boolean postDelete()
Executed after the Delete operation is committed in the database.- Returns:
- true if post delete is a success
-
insert_Accounting
protected boolean insert_Accounting(String acctTableName, String acctBaseTable, String whereClause)
Insert Accounting Records- Parameters:
acctTableName
- accounting sub tableacctBaseTable
- acct table to get data fromwhereClause
- optional where clause with alias "p" for acctBaseTable- Returns:
- true if records inserted
-
delete_Accounting
@Deprecated protected boolean delete_Accounting(String acctTable)
Deprecated.Delete Accounting records. NOP - done by database constraints- Parameters:
acctTable
- accounting sub table- Returns:
- true
-
insert_Tree
protected boolean insert_Tree(String treeType)
Insert id data into Tree- Parameters:
treeType
- MTree TREETYPE_*- Returns:
- true if inserted
-
insert_Tree
protected boolean insert_Tree(String treeType, int C_Element_ID)
Insert id data into Tree- Parameters:
treeType
- MTree TREETYPE_*C_Element_ID
- element for accounting element values- Returns:
- true if inserted
-
update_Tree
public void update_Tree(String treeType)
Update parent key and seqno based on value if the tree is driven by value- Parameters:
treeType
- MTree TREETYPE_*
-
retrieveIdOfParentValue
public static int retrieveIdOfParentValue(String value, String tableName, int clientID, String trxName)
Returns the summary node with the corresponding value
-
retrieveIdOfParentValue
public static int retrieveIdOfParentValue(String value, String tableName, String linkCol, int linkID, int clientID, String trxName)
-
delete_Tree
protected boolean delete_Tree(String treeType)
Delete ID Tree Nodes- Parameters:
treeType
- MTree TREETYPE_*- Returns:
- true if deleted
-
lock
public boolean lock()
Lock it.- Returns:
- true if locked
-
unlock
public boolean unlock(String trxName)
UnLock it- Parameters:
trxName
- transaction- Returns:
- true if unlocked (false only if unlock fails)
-
set_TrxName
public void set_TrxName(String trxName)
Set Trx- Parameters:
trxName
- transaction
-
get_TrxName
public String get_TrxName()
Get Trx- Returns:
- transaction
-
getAttachment
public MAttachment getAttachment()
Get Attachments. An attachment may have multiple entries- Returns:
- Attachment or null
-
getAttachment
public MAttachment getAttachment(boolean requery)
Get Attachments- Parameters:
requery
- requery- Returns:
- Attachment or null
-
createAttachment
public MAttachment createAttachment()
Create/return Attachment for PO. If not exist, create new- Returns:
- attachment
-
isAttachment
public boolean isAttachment(String extension)
Do we have a Attachment of type- Parameters:
extension
- extension e.g. .pdf- Returns:
- true if there is a attachment of type
-
getAttachmentData
public byte[] getAttachmentData(String extension)
Get Attachment Data of type- Parameters:
extension
- extension e.g. .pdf- Returns:
- data or null
-
isPdfAttachment
public boolean isPdfAttachment()
Do we have a PDF Attachment- Returns:
- true if there is a PDF attachment
-
getPdfAttachment
public byte[] getPdfAttachment()
Get PDF Attachment Data- Returns:
- data or null
-
dump
public void dump()
Dump Record
-
dump
public void dump(int index)
Dump column- Parameters:
index
- index
-
getAllIDs
public static int[] getAllIDs(String TableName, String WhereClause, String trxName)
Get All IDs of Table. Used for listing all Entitiesint[] IDs = PO.getAllIDs ("AD_PrintFont", null); for (int i = 0; i < IDs.length; i++) { pf = new MPrintFont(Env.getCtx(), IDs[i]); System.out.println(IDs[i] + " = " + pf.getFont()); }
- Parameters:
TableName
- table name (key column with _ID)WhereClause
- optional where clausetrxName
- transaction- Returns:
- array of IDs or null
-
getFindParameter
protected static String getFindParameter(String query)
Get Find parameter. Convert to upper case and add % at the end- Parameters:
query
- in string- Returns:
- out string
-
get_xmlString
public StringBuffer get_xmlString(StringBuffer xml)
Get Object xml representation as string- Parameters:
xml
- optional string buffer- Returns:
- updated/new string buffer header is only added once
-
get_xmlDocument
public Document get_xmlDocument(boolean noComment)
Get XML Document representation- Parameters:
noComment
- do not add comment- Returns:
- XML document
-
setDoc
public void setDoc(Doc doc)
Set the accounting document associated to the PO - for use in POST ModelValidator- Parameters:
doc
- Document
-
setReplication
public void setReplication(boolean isFromReplication)
-
isReplication
public boolean isReplication()
-
getDoc
public Doc getDoc()
Set the accounting document associated to the PO - for use in POST ModelValidator- Returns:
- Doc Document
-
set_TrxName
public static void set_TrxName(PO[] lines, String trxName)
PO.setTrxName - set given trxName to an array of POs As suggested by teo in [ 1854603 ]
-
get_ValueAsInt
public int get_ValueAsInt(String columnName)
Get Integer Value- Parameters:
columnName
-- Returns:
- int value
-
get_ValueAsBoolean
public boolean get_ValueAsBoolean(String columnName)
Get value as Boolean- Parameters:
columnName
-- Returns:
- boolean value
-
getUUIDColumnName
public String getUUIDColumnName()
- Returns:
- uuid column name
-
getUUIDColumnName
public static String getUUIDColumnName(String tableName)
- Parameters:
tableName
-- Returns:
- uuid column name
-
clone
@Deprecated protected Object clone() throws CloneNotSupportedException
Deprecated.- Overrides:
clone
in classObject
- Throws:
CloneNotSupportedException
-
set_Attribute
public void set_Attribute(String attributeName, Object value)
set attribute value- Parameters:
attributeName
-value
-
-
get_Attribute
public Object get_Attribute(String attributeName)
- Parameters:
attributeName
-- Returns:
- attribute value
-
makeImmutable
protected void makeImmutable()
Turn on immutable check
-
is_Immutable
public boolean is_Immutable()
- Returns:
- true if PO is immutable, false otherwise
-
setCrossTenantSafe
public static void setCrossTenantSafe()
-
clearCrossTenantSafe
public static void clearCrossTenantSafe()
-
validForeignKeys
public boolean validForeignKeys()
Validate Foreign keys for cross tenant to be called programmatically before saving in programs that can receive arbitrary values in IDs This is an expensive operation in terms of database, use it wisely TODO: there is huge room for performance improvement, for example: - caching the valid values found on foreign tables - caching the column ID of the foreign column - caching the systemAccess- Returns:
- true if all the foreign keys are valid
-
columnExists
public boolean columnExists(String columnName, boolean throwException)
Verify if a column exists- Parameters:
columnName
-throwException
- - must throw an exception when the column doesn't exist- Returns:
-
columnExists
public boolean columnExists(String columnName)
Verify if a column exists- Parameters:
columnName
-- Returns:
- boolean
-
-