CustomerCompany#
NAME#
Kernel::System::CustomerCompany - customer company lib
DESCRIPTION#
All Customer functions. E.g. to add and update customer companies.
PUBLIC INTERFACE#
new()#
Don’t use the constructor directly, use the ObjectManager instead:
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');
CustomerCompanyAdd()#
add a new customer company
my $ID = $CustomerCompanyObject->CustomerCompanyAdd(
CustomerID => 'example.com',
CustomerCompanyName => 'New Customer Inc.',
CustomerCompanyStreet => '5201 Blue Lagoon Drive',
CustomerCompanyZIP => '33126',
CustomerCompanyCity => 'Miami',
CustomerCompanyCountry => 'USA',
CustomerCompanyURL => 'http://www.example.org',
CustomerCompanyComment => 'some comment',
ValidID => 1,
UserID => 123,
);
NOTE: Actual fields accepted by this API call may differ based on CustomerCompany mapping in your system configuration.
CustomerCompanyGet()#
get customer company attributes
my %CustomerCompany = $CustomerCompanyObject->CustomerCompanyGet(
CustomerID => 123,
);
Returns:
%CustomerCompany = (
'CustomerCompanyName' => 'Customer Inc.',
'CustomerID' => 'example.com',
'CustomerCompanyStreet' => '5201 Blue Lagoon Drive',
'CustomerCompanyZIP' => '33126',
'CustomerCompanyCity' => 'Miami',
'CustomerCompanyCountry' => 'United States',
'CustomerCompanyURL' => 'http://example.com',
'CustomerCompanyComment' => 'Some Comments',
'ValidID' => '1',
'CreateTime' => '2010-10-04 16:35:49',
'ChangeTime' => '2010-10-04 16:36:12',
);
NOTE: Actual fields returned by this API call may differ based on CustomerCompany mapping in your system configuration.
CustomerCompanyUpdate()#
update customer company attributes
$CustomerCompanyObject->CustomerCompanyUpdate(
CustomerCompanyID => 'oldexample.com', # required for CustomerCompanyID-update
CustomerID => 'example.com',
CustomerCompanyName => 'New Customer Inc.',
CustomerCompanyStreet => '5201 Blue Lagoon Drive',
CustomerCompanyZIP => '33126',
CustomerCompanyLocation => 'Miami',
CustomerCompanyCountry => 'USA',
CustomerCompanyURL => 'http://example.com',
CustomerCompanyComment => 'some comment',
ValidID => 1,
UserID => 123,
);
CustomerCompanySourceList()#
return customer company source list
my %List = $CustomerCompanyObject->CustomerCompanySourceList(
ReadOnly => 0 # optional, 1 returns only RO backends, 0 returns writable, if not passed returns all backends
);
CustomerCompanyList()#
get list of customer companies.
my %List = $CustomerCompanyObject->CustomerCompanyList();
my %List = $CustomerCompanyObject->CustomerCompanyList(
Valid => 0,
Limit => 0, # optional, override configured search result limit (0 means unlimited)
);
my %List = $CustomerCompanyObject->CustomerCompanyList(
Search => 'somecompany',
);
Returns:
%List = {
'example.com' => 'example.com Customer Inc.',
'acme.com' => 'acme.com Acme, Inc.',
};
CustomerCompanySearchDetail()#
To find customer companies in the system.
The search criteria are logically AND connected. When a list is passed as criteria, the individual members are OR connected. When an undef or a reference to an empty array is passed, then the search criteria is ignored.
Returns either a list, as an arrayref, or a count of found customer company ids.
The count of results is returned when the parameter Result = 'COUNT'
is passed.
my $CustomerCompanyIDsRef = $CustomerCompanyObject->CustomerCompanySearchDetail(
# all search fields possible which are defined in CustomerCompany::EnhancedSearchFields
CustomerID => 'example*', # (optional)
CustomerCompanyName => 'Name*', # (optional)
# array parameters are used with logical OR operator (all values are possible which
are defined in the config selection hash for the field)
CustomerCompanyCountry => [ 'Austria', 'Germany', ], # (optional)
# DynamicFields
# At least one operator must be specified. Operators will be connected with AND,
# values in an operator with OR.
# You can also pass more than one argument to an operator: ['value1', 'value2']
DynamicField_FieldNameX => {
Equals => 123,
Like => 'value*', # "equals" operator with wildcard support
GreaterThan => '2001-01-01 01:01:01',
GreaterThanEquals => '2001-01-01 01:01:01',
SmallerThan => '2002-02-02 02:02:02',
SmallerThanEquals => '2002-02-02 02:02:02',
}
OrderBy => [ 'CustomerID', 'CustomerCompanyCountry' ], # (optional)
# ignored if the result type is 'COUNT'
# default: [ 'CustomerID' ]
# (all search fields possible which are defined in
CustomerCompany::EnhancedSearchFields)
# Additional information for OrderBy:
# The OrderByDirection can be specified for each OrderBy attribute.
# The pairing is made by the array indices.
OrderByDirection => [ 'Down', 'Up' ], # (optional)
# ignored if the result type is 'COUNT'
# (Down | Up) Default: [ 'Down' ]
Result => 'ARRAY' || 'COUNT', # (optional)
# default: ARRAY, returns an array of change ids
# COUNT returns a scalar with the number of found changes
Limit => 100, # (optional)
# ignored if the result type is 'COUNT'
);
Returns:
Result: ‘ARRAY’
@CustomerIDs = ( 1, 2, 3 );
Result: ‘COUNT’
$CustomerIDs = 10;
CustomerCompanySearchFields()#
Get a list of defined search fields (optional only the relevant fields for the given source).
my @SeachFields = $CustomerCompanyObject->CustomerCompanySearchFields(
Source => 'CustomerCompany', # optional, but important in the CustomerCompanySearchDetail to get the right database fields
);
Returns an array of hash references.
@SeachFields = (
{
Name => 'CustomerID',
Label => 'CustomerID',
Type => 'Input',
},
{
Name => 'CustomerCompanyCountry',
Label => 'Country',
Type => 'Selection',
SelectionsData => {
'Germany' => 'Germany',
'United Kingdom' => 'United Kingdom',
'United States' => 'United States',
# ...
},
},
{
Name => 'DynamicField_Branch',
Label => '',
Type => 'DynamicField',
DatabaseField => 'Branch',
},
);
GetFieldConfig()#
This function collect some field config information from the customer user map.
my %FieldConfig = $CustomerCompanyObject->GetFieldConfig(
FieldName => 'CustomerCompanyName',
Source => 'CustomerCompany', # optional
);
Returns some field config information:
my %FieldConfig = (
Label => 'Name',
DatabaseField => 'name',
StorageType => 'var',
);
GetFieldSelections()#
This function collect the selections for the given field name, if the field has some selections.
my %SelectionsData = $CustomerCompanyObject->GetFieldSelections(
FieldName => 'CustomerCompanyCountry',
);
Returns the selections for the given field name (merged from all sources) or a empty hash:
my %SelectionData = (
'Germany' => 'Germany',
'United Kingdom' => 'United Kingdom',
'United States' => 'United States',
);