Table of Contents

Class CustomizationPackageVO

Namespace
PHCBusinessLayer
Assembly
PHCBusinessLayer.dll

Entidade que representa um Pacote de Costumização

[AttTable("CustomizationPackage", 20240404)]
[AttTableTarget(DBTarget.Home)]
[AttTableGama(Gamas.Grow)]
[AttTableOrderBy("fromstore, identifier, name")]
[AttTableFlags(new TableFlags[] { TableFlags.MasterEntity, TableFlags.RequiresAdminAccess, TableFlags.TableForJorge, TableFlags.AddOnNotDeployable, TableFlags.AddOnFramework, TableFlags.AddOnNotCustomizable, TableFlags.StudioOnly, TableFlags.UseImagePicker })]
[AttTableMaintenance(typeof(CustomizationPackageMaintenance))]
[AttTableVOInfo(typeof(CustomizationPackageAttInfo))]
public class CustomizationPackageVO : BusinessVO, IBaseSerialization, ICloneVO, ICloneable, IChange, IParent, IGenericVO
Inheritance
CustomizationPackageVO

Properties

AddonCategoryVO

[AttExternalCollection(typeof(AddonCategoryVO), new string[] { "[addonCategory].[addonCategorystamp]", "[CustomizationPackage].[addonCategorystamp]" })]
public AddonCategoryVO AddonCategoryVO { get; }

Property Value

AddonCategoryVO

addonCategorystamp

[AttLenght(25)]
[AttEntityAvailable(typeof(AddonCategoryVO))]
[AttForeignKey(CanDuplicate = true, HiddenField = false)]
[AttFieldType(new AttFieldType.FieldFlags[] { AttFieldType.FieldFlags.syncOnChange })]
public string addonCategorystamp { get; set; }

Property Value

string

addonproducts

[AttCollection(typeof(AddonProductVO))]
public List<AddonProductVO> addonproducts { get; set; }

Property Value

List<AddonProductVO>

benefits

[AttCollection(typeof(CustomizationPackageBenefitVO))]
public List<CustomizationPackageBenefitVO> benefits { get; set; }

Property Value

List<CustomizationPackageBenefitVO>

breakNews

news of an addon

[AttFieldType(AttFieldType.InputTypes.memo)]
public string breakNews { get; set; }

Property Value

string

category

Category or area of business where this customization package can be included.

[AttLenght(2)]
public int category { get; set; }

Property Value

int

companiesRecordsStatusJSON

This field saves information about records from addons pending to be copied/deleted to/from companies. It's a JSON with a List of KeyValueVO's where the key is the companystamp and value the status (CopyRecordsStatus)

[AttHidden]
public string companiesRecordsStatusJSON { get; set; }

Property Value

string

contactEmail

[AttLenght(45)]
[AttRGPDrank(RGPDranks.Personal)]
[AttFieldType(AttFieldType.InputTypes.email)]
public string contactEmail { get; set; }

Property Value

string

contentUrls

[AttCollection(typeof(CustomizationPackageLinkVO))]
public List<CustomizationPackageLinkVO> contentUrls { get; set; }

Property Value

List<CustomizationPackageLinkVO>

customizationPackageStamp

Campo único do registo, serve para ligação de outras entidades a esta entidade.

[AttLenght(25)]
public string customizationPackageStamp { get; set; }

Property Value

string

Remarks

Este campo identifica de forma única o registo (chave primária por defeito)

Tamanho 25

description

Customization Package Description

[AttFieldType(AttFieldType.InputTypes.memo)]
public string description { get; set; }

Property Value

string

edition

Edition to which we're applying this customization package

[AttLenght(2)]
[AttMandatory]
public Gamas edition { get; set; }

Property Value

Gamas

errorMessage

This field stores the error messages as a json list that might have occurred during the add-on installation Example value: ["One error message", "Another error message"]

public string errorMessage { get; set; }

Property Value

string

features

[AttCollection(typeof(CustomizationPackageFeatureVO))]
public List<CustomizationPackageFeatureVO> features { get; set; }

Property Value

List<CustomizationPackageFeatureVO>

formCustomizations

[AttCollection(typeof(FormCustomizationVO))]
public List<FormCustomizationVO> formCustomizations { get; set; }

Property Value

List<FormCustomizationVO>

fromstore

Indicates if this addon was installed through the app store

public bool fromstore { get; set; }

Property Value

bool

fullName

[AttVirtualField]
public string fullName { get; set; }

Property Value

string

hasErrors

[AttVirtualField]
public bool hasErrors { get; set; }

Property Value

bool

hasInstructions

[AttVirtualField]
public bool hasInstructions { get; set; }

Property Value

bool

hasNewVersion

If this is true, then the "Upgrade version" is available

[AttVirtualField]
public bool hasNewVersion { get; set; }

Property Value

bool

hasNews

[AttVirtualField]
public bool hasNews { get; set; }

Property Value

bool

hasOldVersion

If this is true, then the "Revert version" is available

[AttVirtualField]
public bool hasOldVersion { get; set; }

Property Value

bool

hideOnStore

Indicates if this package is limited to set of specific customers.

[AttFieldType(AttFieldType.InputTypes.boolean)]
public bool hideOnStore { get; set; }

Property Value

bool

identifier

Unique identifier. This field identifies the customization package and should remain the same through all it's versions

[AttLenght(50)]
[AttMandatory]
[AttPrimaryKey]
[AttList(Inactive = true)]
public string identifier { get; set; }

Property Value

string

Remarks

Length 50.

identifierforparameter

Identifier withoud "_" to be user in parameters

[AttVirtualField]
public string identifierforparameter { get; }

Property Value

string

image

[AttExternalCollection(typeof(ImageInfoVO))]
public ImageInfoVO image { get; }

Property Value

ImageInfoVO

imagestamp

[AttLenght(25)]
[AttForeignKey(typeof(ImageInfoVO), HiddenField = false, CanDuplicate = true)]
[AttRGPDrank(RGPDranks.Personal)]
[AttFieldType(AttFieldType.InputTypes.image)]
public string imagestamp { get; set; }

Property Value

string

inPreSale

Indicates that addon is not for sale yet

[AttFieldType(AttFieldType.InputTypes.boolean)]
public bool inPreSale { get; set; }

Property Value

bool

installed

Indicates if this package is already installed

[AttList]
public bool installed { get; set; }

Property Value

bool

instructions

[AttCollection(typeof(CustomizationPackageInstructionVO))]
public List<CustomizationPackageInstructionVO> instructions { get; set; }

Property Value

List<CustomizationPackageInstructionVO>

isprivate

Indicates if this package is limited to set of specific customers.

[AttFieldType(AttFieldType.InputTypes.boolean)]
public bool isprivate { get; set; }

Property Value

bool

labelCategory

[AttVirtualField]
public string labelCategory { get; set; }

Property Value

string

language

Language where this customization package is available

[AttLenght(25)]
[AttPrimaryKey]
[AttMandatory]
[AttFieldType(AttFieldType.InputTypes.integer)]
public languages language { get; set; }

Property Value

languages
[AttExternalCollection(typeof(ImageInfoVO))]
public ImageInfoVO logo { get; }

Property Value

ImageInfoVO

logostamp

Connection field to the table ImageInfoVO

[AttLenght(25)]
[AttForeignKey(typeof(ImageInfoVO), CanDuplicate = true, HiddenField = false)]
[AttFieldType(AttFieldType.InputTypes.image)]
public string logostamp { get; set; }

Property Value

string

menuIcon

Menu folder icon

[AttLenght(20)]
public string menuIcon { get; set; }

Property Value

string

monthlyprice

Total value of the package per month.

[AttLenght(19, 6)]
[AttFieldType(AttFieldType.InputTypes.currency)]
public decimal monthlyprice { get; set; }

Property Value

decimal

Remarks

Lenght of 19, where the units are 12 and decimals are 6.

motrejeicao

Rejection Reason

[AttFieldType(AttFieldType.InputTypes.memo, new AttFieldType.FieldFlags[] { AttFieldType.FieldFlags.isReadOnly })]
public string motrejeicao { get; set; }

Property Value

string

name

Customization Package Name

[AttLenght(52)]
[AttMandatory]
[AttLogInfo(0)]
[AttList]
public string name { get; set; }

Property Value

string

news

[AttCollection(typeof(CustomizationPackageNewsVO))]
public List<CustomizationPackageNewsVO> news { get; set; }

Property Value

List<CustomizationPackageNewsVO>

notesForApproval

[AttFieldType(AttFieldType.InputTypes.memo)]
public string notesForApproval { get; set; }

Property Value

string

notifyUser

mark addon to show notification at system notification

public AddonNotificationTypes notifyUser { get; set; }

Property Value

AddonNotificationTypes

oneshotprice

Total value of the package if bough in one single transaction.

[AttLenght(19, 6)]
[AttFieldType(AttFieldType.InputTypes.currency)]
public decimal oneshotprice { get; set; }

Property Value

decimal

Remarks

Lenght of 19, where the units are 12 and decimals are 6.

owned

if the addon is owned or not it doesnt mean that is installed

[AttVirtualField]
public bool owned { get; set; }

Property Value

bool

packageItems

[AttCollection(typeof(CustomizationPackageItemVO))]
public List<CustomizationPackageItemVO> packageItems { get; set; }

Property Value

List<CustomizationPackageItemVO>

preSaleLabel

pre sale url label button

[AttLenght(200)]
public string preSaleLabel { get; set; }

Property Value

string

preSaleURL

pre sale url

[AttLenght(500)]
public string preSaleURL { get; set; }

Property Value

string

prices

[AttCollection(typeof(CustomizationPackagePriceVO))]
public List<CustomizationPackagePriceVO> prices { get; set; }

Property Value

List<CustomizationPackagePriceVO>

privateidentifiers

[AttCollection(typeof(CustomizationPackagePrivateURLVO))]
public List<CustomizationPackagePrivateURLVO> privateidentifiers { get; set; }

Property Value

List<CustomizationPackagePrivateURLVO>

productType

It indicates if record is an addon or other type

[AttLenght(2)]
[AttMandatory]
public ProductType productType { get; set; }

Property Value

ProductType

productid

Used to manage the Add-on accesses. Will be calculated when installing from store.

[AttLenght(4)]
public int productid { get; set; }

Property Value

int

sample

Indicates if this Add-on will be used as a demo

[AttLenght(1)]
public CustomizationPackageSample sample { get; set; }

Property Value

CustomizationPackageSample

screenshot

[AttExternalCollection(typeof(ImageInfoVO))]
public ImageInfoVO screenshot { get; }

Property Value

ImageInfoVO

screenshotstamp

Connection field to the table ImageInfoVO

[AttLenght(25)]
[AttForeignKey(typeof(ImageInfoVO), CanDuplicate = true, HiddenField = false)]
[AttFieldType(AttFieldType.InputTypes.image)]
public string screenshotstamp { get; set; }

Property Value

string

slogan

Slogan for Store

[AttFieldType(AttFieldType.InputTypes.memo)]
public string slogan { get; set; }

Property Value

string

sloganSecondary

Secondary Slogan for Store

[AttFieldType(AttFieldType.InputTypes.memo)]
public string sloganSecondary { get; set; }

Property Value

string

status

Status of the Add-on.

[AttLenght(2)]
public CustomizationPackageStatus status { get; set; }

Property Value

CustomizationPackageStatus

storeversion

Store Version.

[AttLenght(6, 2)]
public decimal storeversion { get; set; }

Property Value

decimal

Remarks

If this value is greater than the version, it means that there is a new version in the store to update.

trienniallyprice

Total value of the package three years.

[AttLenght(19, 6)]
[AttFieldType(AttFieldType.InputTypes.currency)]
public decimal trienniallyprice { get; set; }

Property Value

decimal

Remarks

Lenght of 19, where the units are 12 and decimals are 6.

version

Version.

[AttLenght(6, 2)]
[AttPrimaryKey]
[AttFieldType(AttFieldType.InputTypes.decimal)]
[AttList]
public decimal version { get; set; }

Property Value

decimal

Remarks

The integer part of this number should be incremented when major features have been added.

If minor features or significant fixes are added then it's the decimal part that should be incremented

6.1

yearlyprice

Total value of the package per year.

[AttLenght(19, 6)]
[AttFieldType(AttFieldType.InputTypes.currency)]
public decimal yearlyprice { get; set; }

Property Value

decimal

Remarks

Lenght of 19, where the units are 12 and decimals are 6.