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 intACCESSLEVEL_ALLAccess Level SCO 111 7 System shared infostatic intACCESSLEVEL_CLIENTAccess Level _C_ 010 2 Client infostatic intACCESSLEVEL_CLIENTORGAccess Level _CO 011 3 Client shared infostatic intACCESSLEVEL_ORGAccess Level __O 001 1 Organization infostatic intACCESSLEVEL_SYSTEMAccess Level S__ 100 4 System infostatic intACCESSLEVEL_SYSTEMCLIENTAccess Level SC_ 110 6 System/Client infostatic StringENTITYTYPE_DictionaryDictionary Maintained Entity Typestatic StringENTITYTYPE_UserMaintainedUser Maintained Entity Typeprotected static IntegerI_ZEROZero Integerstatic StringLOCAL_TRX_PREFIXprotected CLoggerlogLoggerprotected Propertiesp_ctxContextprotected POInfop_infoModel Infoprotected static StringXML_ATTRIBUTE_AD_Table_IDTable ID Attributeprotected static StringXML_ATTRIBUTE_Record_IDRecord 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 booleanafterDelete(boolean success)Executed after Delete operation.protected booleanafterSave(boolean newRecord, boolean success)Called after Save for Post-Save Operationprotected booleanbeforeDelete()Executed before Delete operation.protected booleanbeforeSave(boolean newRecord)Called before Save for Pre-Save Operationprotected voidcheckImmutable()static voidclearCrossTenantSafe()protected Objectclone()Deprecated.booleancolumnExists(String columnName)Verify if a column existsbooleancolumnExists(String columnName, boolean throwException)Verify if a column existsintcompare(Object o1, Object o2)Compare based on DocumentNo, Value, Name, Descriptionprotected voidcopyPO(PO copy)Copy all properties from copy.static voidcopyValues(PO from, PO to)Copy old values of From to new values of To.protected static voidcopyValues(PO from, PO to, int AD_Client_ID, int AD_Org_ID)Copy old values of From to new values of To.MAttachmentcreateAttachment()Create/return Attachment for PO.booleandelete(boolean force)Delete Current Recordbooleandelete(boolean force, String trxName)Delete Current Recordprotected booleandelete_Accounting(String acctTable)Deprecated.protected booleandelete_Tree(String treeType)Delete ID Tree NodesvoiddeleteEx(boolean force)Delete Current RecordvoiddeleteEx(boolean force, String trxName)Delete Current Recordvoiddump()Dump Recordvoiddump(int index)Dump columnbooleanequals(Object cmp)Equals based on IDprotected abstract intget_AccessLevel()Get Table Access LevelObjectget_Attribute(String attributeName)HashMap<String,Object>get_Attributes()intget_ColumnCount()Get Column Countprotected Stringget_ColumnDescription(int index)Get Column Descriptionprotected intget_ColumnDisplayType(int index)Get Column DisplayTypeintget_ColumnIndex(String columnName)Get Column Indexprotected Stringget_ColumnLabel(int index)Get Column Labelprotected Lookupget_ColumnLookup(int index)Get LookupStringget_ColumnName(int index)Get Column NameStringget_DisplayValue(String columnName, boolean currentValue)Get Display Value of valueprotected HashMap<String,String>get_HashMap()Create Hashmap with data as Stringsintget_ID()Return Single Key Record IDintget_IDOld()Return Deleted Single Key Record IDString[]get_KeyColumns()Get Key Columns.CLoggerget_Logger()Get LoggerString[]get_OptimisticLockingColumns()intget_Table_ID()Get Table ID.Stringget_TableName()Get TableName.Stringget_Translation(String columnName)Get Translation of columnStringget_Translation(String columnName, boolean fallback)Get Translation of columnStringget_Translation(String columnName, String AD_Language)Stringget_Translation(String columnName, String AD_Language, boolean reload)Get Translation of columnStringget_Translation(String columnName, String AD_Language, boolean reload, boolean fallback)Get Translation of column (if needed).Stringget_TrxName()Get TrxObjectget_Value(int index)Get ValueObjectget_Value(String columnName)Get Valuebooleanget_ValueAsBoolean(String columnName)Get value as Booleanintget_ValueAsInt(int index)Get Value as intintget_ValueAsInt(String columnName)Get Integer ValueStringget_ValueAsString(String variableName)Get Column ValueObjectget_ValueDifference(int index)Return new - oldObjectget_ValueDifference(String columnName)Return new - oldprotected Objectget_ValueE(String columnName)Get Encrypted ValueObjectget_ValueOfColumn(int AD_Column_ID)Get Value of ColumnObjectget_ValueOld(int index)Get Old ValueObjectget_ValueOld(String columnName)Get Old Valueintget_ValueOldAsInt(String columnName)Get Old Value as intStringget_WhereClause(boolean withValues)Create Single/Multi Key Where ClauseStringget_WhereClause(boolean withValues, String uuID)Create Single/Multi Key Where ClauseDocumentget_xmlDocument(boolean noComment)Get XML Document representationStringBufferget_xmlString(StringBuffer xml)Get Object xml representation as stringintgetAD_Client_ID()Get AD_ClientintgetAD_Org_ID()Get AD_Orgstatic int[]getAllIDs(String TableName, String WhereClause, String trxName)Get All IDs of Table.MAttachmentgetAttachment()Get Attachments.MAttachmentgetAttachment(boolean requery)Get Attachmentsbyte[]getAttachmentData(String extension)Get Attachment Data of typeTimestampgetCreated()Get CreatedintgetCreatedBy()Get CreatedByPropertiesgetCtx()Get ContextDocgetDoc()Set the accounting document associated to the PO - for use in POST ModelValidatorprotected static StringgetFindParameter(String query)Get Find parameter.byte[]getPdfAttachment()Get PDF Attachment DataTimestampgetUpdated()Get UpdatedintgetUpdatedBy()Get UpdatedByStringgetUUIDColumnName()static StringgetUUIDColumnName(String tableName)inthashCode()protected abstract POInfoinitPO(Properties ctx)Initialize and return PO_Infoprotected booleaninsert_Accounting(String acctTableName, String acctBaseTable, String whereClause)Insert Accounting Recordsprotected booleaninsert_Tree(String treeType)Insert id data into Treeprotected booleaninsert_Tree(String treeType, int C_Element_ID)Insert id data into Treebooleanis_Changed()Is there a Change to be saved?booleanis_Immutable()booleanis_new()Is new recordbooleanis_UseOptimisticLocking()booleanis_ValueChanged(int index)Is Value Changedbooleanis_ValueChanged(String columnName)Is Value ChangedbooleanisActive()Is ActivebooleanisAttachment(String extension)Do we have a Attachment of typeprotected booleanisColumnMandatory(int index)Is Column Mandatoryprotected booleanisColumnUpdateable(int index)Is Column Updateableprotected booleanisMandatoryOK()Are all mandatory Fields filled (i.e. can we save)?.booleanisPdfAttachment()Do we have a PDF AttachmentbooleanisReplication()protected voidload(int ID, String trxName)Load record with IDbooleanload(String trxName)(re)Load record with m_ID[*]protected booleanload(String uuID, String trxName)(re)Load record with uuIDprotected booleanload(ResultSet rs)Load from the current position of a ResultSetprotected booleanload(HashMap<String,String> hmIn)Load from HashMapvoidloadByUU(String uuID, String trxName)Load record with UUIDprotected voidloadComplete(boolean success)Load is completeprotected voidloadDefaults()Load Defaultsprotected ObjectloadSpecial(ResultSet rs, int index)Load Special data (images, ..).booleanlock()Lock it.protected voidmakeImmutable()Turn on immutable checkprotected booleanpostDelete()Executed after the Delete operation is committed in the database.static intretrieveIdOfParentValue(String value, String tableName, int clientID, String trxName)Returns the summary node with the corresponding valuestatic intretrieveIdOfParentValue(String value, String tableName, String linkCol, int linkID, int clientID, String trxName)booleansave()Update Value or create new record.booleansave(String trxName)Update Value or create new record.voidsaveEx()Update Value or create new record.voidsaveEx(String trxName)Update Value or create new record.protected voidsaveNew_afterSetID()Call after ID have been assigned for new recordprotected intsaveNew_getID()Get ID for new record during save.protected StringsaveNewSpecial(Object value, int index)Save Special Data.voidsaveReplica(boolean isFromReplication)protected booleansaveUpdate()Update Record directlyvoidset_Attribute(String attributeName, Object value)set attribute valueprotected voidset_ColumnUpdateable(int index, boolean updateable)Set Column Updateablevoidset_CustomColumn(String columnName, Object value)Set Custom Columnbooleanset_CustomColumnReturningBoolean(String columnName, Object value)Set Custom Column returning booleanvoidset_OptimisticLockingColumns(String[] columns)set columns use for optimistic locking (auto add to where clause for update and delete)voidset_TrxName(String trxName)Set Trxstatic voidset_TrxName(PO[] lines, String trxName)PO.setTrxName - set given trxName to an array of POs As suggested by teo in [ 1854603 ]voidset_UseOptimisticLocking(boolean enable)enable/disable optimistic lockingprotected booleanset_Value(int index, Object value)Set Value if updateable and correct class.protected booleanset_Value(int index, Object value, boolean checkWritable)Set Value if updateable and correct class.protected booleanset_Value(String ColumnName, Object value)Set Valueprotected booleanset_Value(String ColumnName, Object value, boolean checkWritable)Set Valueprotected booleanset_ValueE(String ColumnName, Object value)Set Encrypted Valuebooleanset_ValueNoCheck(String ColumnName, Object value)Set Value w/o check (update, r/o, ..).protected booleanset_ValueNoCheckE(String ColumnName, Object value)Set Encrypted Value w/o check (update, r/o, ..).voidset_ValueOfColumn(int AD_Column_ID, Object value)Set Value of Columnvoidset_ValueOfColumn(String columnName, Object value)Set value of Columnbooleanset_ValueOfColumnReturningBoolean(int AD_Column_ID, Object value)Set Value of Columnbooleanset_ValueOfColumnReturningBoolean(String columnName, Object value)Set value of Column returning booleanprotected voidsetAD_Client_ID(int AD_Client_ID)Set AD_ClientvoidsetAD_Org_ID(int AD_Org_ID)Set AD_Orgprotected voidsetClientOrg(int AD_Client_ID, int AD_Org_ID)Overwrite Client Org if differentprotected voidsetClientOrg(PO po)Overwrite Client Org if differentstatic voidsetCrossTenantSafe()voidsetDoc(Doc doc)Set the accounting document associated to the PO - for use in POST ModelValidatorstatic voidsetDocWorkflowMgr(DocWorkflowMgr docWFMgr)Set Document Value Workflow ManagervoidsetIsActive(boolean active)Set ActivevoidsetProcessedOn(String ColumnName, Object value, Object oldValue)voidsetReplication(boolean isFromReplication)protected voidsetStandardDefaults()Set Default values.protected voidsetUpdateable(boolean updateable)Set all columns updateableprotected voidsetUpdatedBy(int AD_User_ID)Set UpdatedByStringtoString()String representationbooleanunlock(String trxName)UnLock itvoidupdate_Tree(String treeType)Update parent key and seqno based on value if the tree is driven by valuebooleanvalidForeignKeys()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:
equalsin interfaceComparator<Object>- Overrides:
equalsin 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:
comparein 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_ValueAsStringin 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 AdempiereExceptionUpdate 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 AdempiereExceptionDelete 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 AdempiereExceptionDelete 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:
clonein 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
-
-