Kernel::System::CustomerCompany - customer company lib
All Customer functions. E.g. to add and update customer companies.
Don't use the constructor directly, use the ObjectManager instead:
my $CustomerCompanyObject = $Kernel::OM->Get('Kernel::System::CustomerCompany');
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.
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.
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, );
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 );
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.' };
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;
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', }, );
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', );
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', );
This software is part of the OTRS project (https://otrs.org/).
This software comes with ABSOLUTELY NO WARRANTY. For details, see the enclosed file COPYING for license information (GPL). If you did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.