Page tree
Skip to end of metadata
Go to start of metadata
 

Mit der Veröffentlichung von TecArt Version 4.10 wird diese Version des REST Webservice nicht weiterentwickelt, steht aber zu Zwecken der Abwärtskompatibilität weiter zur Verfügung. 

With the release of TecArt version 4.10 this version of REST Webservice will no longer receive further development, yet will stay available for reasons of downward compatibility.

1. Aufruf URL

http://hostname/dirname/rest/index.php/contracts

e.g. https://test.tecart-system.de/rest/index.php/contracts

2. Klasse

crmcontracts

3. Methoden

3.1. crmaddContract

Syntax:

int crmaddContract( array(string $session_id, array $crmContractItem) )

Beschreibung:

Gibt eine contract_id bei Erfolg zurück.

Eigenschaften von crmContractItem Array:

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
int                     $number                   RealNumber des Vertrags
string(255)             $shortdesc                Kurze Beschreibung des Vertrags
string(255)             $cid                      Contact-Id, Format: Contact-Id:Person-Id
string(255)             $category                 Kategorie des Vertrags
double                  $payoff                   Auftragswert des Vertrags in €
double                  $payment_interval         Zahlungsintervalwert des Vertrags in €
int                     $tax                      Steuer des Vertrags in Prozent
int                     $date                     Unix-Timestamp der Vertragserstellung
int                     $start                    Unix-Timestamp des Vertragsbeginns
int                     $stop                     Unix-Timestamp des Vertragsendes
int                     $maturity                 Fälligkeit
                                                  0 = einmalig
                                                  1 = monatlich
                                                  2 = vierteljährlich
                                                  3 = jährlich
                                                  4 = keine
int                     $duration                 Vertragsdauer
                                                  0 =  1 Tag
                                                  1 =  1 Woche
                                                  2 =  1 Monat
                                                  3 =  3 Monate
                                                  4 =  6 Monate
                                                  5 = 12 Monate
                                                  6 = 24 Monate
                                                  7 = 36 Monate
                                                  8 = unbegrenzt
                                                  9 = keine
int                     $pid                      Project-Id
int                     $ext_id                   Externe ID ( ab Version 4.2 )
string(65535)           $notes                    Notizen
int                     $bankcollection           Bankeinzug (0 = Nein, 1 = Ja)
int                     $cancellationperiod       Kündigungsfrist des Vertrages
                                                  0 =  1 Tag
                                                  1 =  1 Woche
                                                  2 =  1 Monat
                                                  3 =  3 Monate
                                                  4 =  6 Monate
                                                  5 = 12 Monate
                                                  6 = 24 Monate
                                                  7 = keine
int                     $cancellation             Vertrag gekündigt (0 = Nein, 1 = Ja)
int                     $cancellationdays         Unix-Timestamp der Kündigung
string(255)             $cancellationreason       Grund der Kündigung

string(255)             $user20                   Benutzerdefiniertes Feld Nr. 20
string(255)             $user21                   Benutzerdefiniertes Feld Nr. 21
   :                       :                                   :
string(255)             $user80                   Benutzerdefiniertes Feld Nr. 80

Beispiel:

<?php
 
try { 
	$contract = array(
		'shortdesc'				=> 'Webservice Development',
		'payoff'				=> 899.50,
		'payment_interval'		=> 89.95,
		'tax'					=> 19,
		'date'					=> mktime(0,0,0, 6,19,2008),
		'start'					=> mktime(0,0,0, 6,19,2008),
		'maturity'				=> mktime(0,0,0, 6,30,2008),
		'duration'				=> 6,
		'notes'					=> 'wichtig',
		'cancellationperiod'	=> 3,
		'pid'					=> 360,
		'cid'					=> '5485:5336'
	);
 
	include_once 'crm_rest_api.php';
 
	/* @var $contracts crmcontracts */
	$contracts	= new crm_rest_api("http://hostname/dirname/rest/index.php/contracts");
	$params		= array( 'session_id'  => $session_id, 'crmContractItem' => $contract);
 
	$contract_id = $contracts->crmaddContract($params);
 
	echo $contract_id;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.2. crmchangeContract

Syntax:

int crmchangeContract( array(string $session_id, int $contract_id, array $crmContractItem) )

Beschreibung:

Ändert Eigenschaften eines bestehenden Vertrages.

Gibt die contract_id bei Erfolg zurück.

Eigenschaften von crmContractItem:

sind die selben wie für crmaddContract

Beispiel:

<?php
 
try {
	// Change short Beschreibung of contract with ID 91
	$contract = array('shortdesc' => 'New Webservice Development');
 
	$contract_id = $contracts->crmchangeContract(
		array(
			'session_id'		=> $session_id,
			'contract_id'		=> 91,
			'crmContractItem' 	=> $contract
		)
	);
 
	echo $contract_id;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.3. crmdeleteContract

Syntax:

int crmdeleteContract( array(string $session_id, int $contract_id) )

Beschreibung:

Löscht einen Vertrag. Gibt 1 bei Erfolg zurück.

Beispiel:

<?php
 
try {
	// Delete contract with ID 91
	$success = $contracts->crmdeleteContract( array('session_id' => $session_id, 'contract_id' => 91) );
	if ($success == 1) {
		echo "Delete contract success.";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.4. crmgetChangedContracts

Syntax:

array crmgetChangedContracts( array(string $session_id, int $timestamp) )

Beschreibung:

Gibt ein Array mit contract-Objekten zurück, die seit timestamp geändert wurden.

Eigenschaften der zurückgegebenen contract Objekte:

sind die selben wie für crmgetContract

Beispiel:

<?php
 
try {
	// Get contracts modified in the last 30 days
	$result = $contracts->crmgetChangedContracts(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> time() - 60 * 60 * 24 * 30
		)
	);
 
	foreach($result as $contract) {
		foreach($contract as $key => $val) {
			echo "$key => $val<br>\n";
			if (is_array($val)) {
				echo serialize($val);
			}
		}
		echo "<hr/>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.5. crmgetChangedContractsLimit

Syntax:

array crmgetChangedContractsLimit( array(string $session_id, int $timestamp, int $count, int $offset) )

Beschreibung:

Gibt ein Array mit Contract-Objekten zurück, die seit timestamp geändert wurden, limitiert von $count und $offset.

Eigenschaften der zurückgegebenen contract Objekte:

sind die selben wie für crmgetContract

Beispiel:

<?php
 
try {
	// Get first 10 contracts modified in the last 30 days
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> time() - 60 * 60 * 24 * 30,
		'count'			=> 10,
		'offset'		=> 0
	);
 
	$result = $contracts->crmgetChangedContracts($params);
 
	foreach($result as $contract) {
		foreach($contract as $key => $val) {
			echo "$key => $val<br>\n";
			if (is_array($val)) {
				echo serialize($val);
			}
		}
		echo "<hr/>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.6. crmgetChangedContractsUserFields

Syntax:

array crmgetChangedContractsUserFields( array( string $session_id, int $timestamp) )

Beschreibung:

Gibt ein Array mit Benutzerdefinierten Vertragsfeldern zurück, die seit $timestamp geändert wurden

Eigenschaften der zurückgegebenen contract userfields Objekte:

Type(Length)            Eigenschaft                  Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                          Contract-Id 
array                   $user_fields                 Array mit $user_fields Objekte - Feldnamen und deren Werte

Eigenschaften von user_fields Array:

sind die selben wie für user_fields object in crmgetContractUserFields

Beispiel:

<?php
 
try {
	// Get userdefined fields of contracts modified in the last 30 days
	$result = $contracts->crmgetChangedContractsUserFields(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> time() - 60 * 60 * 24 * 30
		)
	);
 
	foreach($result as $contract) {
 
		echo "Contract-ID: ".$contract->id."<br>\n";
 
		foreach($contract->user_fields as $field) {
			echo $field->name." => ".utf8_decode($field->value)."<br>\n";
		}
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.7. crmgetChangedContractsUserFieldsLimit

Syntax:

array crmgetChangedContractsUserFieldsLimit( array( string $session_id, int $timestamp, int $count, int $offset) )

Beschreibung:

Gibt ein Array mit Benutzerdefinierten Vertragsfeldern zurück, die seit $timestamp geändert wurden, limitiert von $count und $offset.

Eigenschaften der zurückgegebenen contract userfields Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       Contract-Id 
array                   $user_fields              Array mit user_fields Objekte - Feldnamen und deren Werte

Eigenschaften von user_fields Array:

sind die selben wie für user_fields object in crmgetContractUserFields

Beispiel:

<?php
 
try {
	// Get userdefined fields of first 10 contracts modified in the last 30 days
	$params = array(
		'session_id'	=> $session_id,
		'timestamp'		=> time() - 60 * 60 * 24 * 30,
		'count'			=> 10,
		'offset'		=> 0
	);
 
	$result = $contracts->crmgetChangedContractsUserFieldsLimit($params);
 
	foreach($result as $contract) {
 
		echo "Contract-ID: ".$contract->id."<br>\n";
 
		foreach($contract->user_fields as $field) {
			echo $field->name." => ".utf8_decode($field->value)."<br>\n";
		}
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.8. crmgetContract

Syntax:

array crmgetContract( array( string $session_id, int $contract_id) )

Beschreibung:

Gibt ein Array von Contract-Objekten mit nur einem Element zurück.

contract_id ist die Contract-ID.

Eigenschaften der zurückgegebenen contract Objekte:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
int                     $id                       Contract-Id 
int                     $ext_id                   Externe ID ( ab Version 4.2 )
int                     $number                   RealNumber des Vertrags
string(255)             $shortdesc                Kurze Beschreibung des Vertrags
string(255)             $cid                      Contact-Id, Format: Contact-Id:Person-Id
string(255)             $cname                    Kontakt-Name
string(255)             $category                 Kategorie des Vertrags
double                  $payoff                   Payoff Betrag des Auftrags in €
double                  $payment_interval         Zahlungsintervallbetrag des Vertrags in €
int                     $tax                      Steuer des Vertrags in Prozent
int                     $date                     Unix-Timestamp der Vertragserstellung
int                     $start                    Unix-Timestamp des Vertragsbeginns
int                     $stop                     Unix-Timestamp des Vertragsendes
int                     $maturity                 Fälligkeit
                                                  0 = einmalig
                                                  1 = monatlich
                                                  2 = vierteljährlich
                                                  3 = jährlich
                                                  4 = keine
int                     $duration                 Vertragsdauer
                                                  0 =  1 Tag
                                                  1 =  1 Woche
                                                  2 =  1 Monat
                                                  3 =  3 Monate
                                                  4 =  6 Monate
                                                  5 = 12 Monate
                                                  6 = 24 Monate
                                                  7 = 36 Monate
                                                  8 = unbegrenzt
                                                  9 = keine
int                     $pid                      Project-Id
string(255)             $pname                    Projekt-Name
string(65535)           $notes                    Notizen
int                     $bankcollection           Bankeinzug (0 = Nein, 1 = Ja)
int                     $cancellationperiod       Kündigungsfrist des Vertrages
                                                  0 =  1 Tag 
                                                  1 =  1 Woche
                                                  2 =  1 Monat
                                                  3 =  3 Monate
                                                  4 =  6 Monate
                                                  5 = 12 Monate
                                                  6 = 24 Monate
                                                  7 = keine
int                     $cancellation             Vertrag gekündigt (0 = Nein, 1 = Ja)
int                     $cancellationdays         Unix-Timestamp des Vertragsrücktritts
string(255)             $cancellationreason       Grund des Vertragsrücktritts

int                     $chguser                  Userid der letzten Änderung
int                     $chgtime                  Unix-Timestamp der letzten Änderung
int                     $createuser               Userid der Erstellung
int                     $createtime               Unix-Timestamp der Erstellung

string(255)             $user20                   Benutzerdefiniertes Feld Nr. 20
string(255)             $user21                   Benutzerdefiniertes Feld Nr. 21
   :                       :                                   :
string(255)             $user80                   Benutzerdefiniertes Feld Nr. 80

Beispiel:

<?php
 
try 
{
	// Get contract with ID 91
	$result = $contracts->crmgetContract(
		array(
			'session_id'	=> $session_id,
			'contract_id'	=> 91
		)
	);
 
	foreach($result as $contract) {
		foreach($contract as $key => $val) {
			echo $key." => ".$val."<br>\n";
			if (is_array($val)) {
				echo serialize($val);
			}
		}
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.9. crmgetContractIds

Syntax:

array crmgetContractIds( array( string $session_id, int $timestamp) )

Beschreibung:

Gibt ein Array mit Contract Ids für Verträge zurück, die seit timestamp geändert wurden (0 für alle).

Hinweis: Es werden nur Verträge zurückgegeben, für die der authentifizierte Benutzer die Leseberechtigungen hat.

Beispiel:

<?php
 
try {
	// Get all contract ids
	$result = $contracts->crmgetContractIds(
		array(
			'session_id'	=> $session_id,
			'timestamp'		=> 0
		)
	);
 
	foreach($result as $id) {
		echo $id."<br>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.10. crmgetContractsFrom

Syntax:

array crmgetContractsFrom( array( string $session_id, int $month, int $year) )

Beschreibung:

Gibt ein Array mit Contract-Objekten vom angegebenen Datum an zurück.

Wenn month gesetzt ist werden nur Verträge dieses Monats zurückgegeben. Wenn month auf 0 gesetzt ist werden Verträge für alle Monate zurückgegeben.

Wenn year gesetzt ist werden nur Verträge dieses Jahres zurückgegeben. Wenn year auf 0 gesetzt ist werden Verträge für alle Jahre zurückgegeben.

Eigenschaften der zurückgegebenen contract Objekte:

sind die selben wie für crmgetContract

Beispiel:

<?php
 
try {
	// Get all contracts
	$result = $contracts->crmgetContractsFrom(
		array(
			'session_id'	=> $session_id,
			'month'			=> 0,
			'year'			=> 0
		)
	);
 
	foreach($result as $contract) {
		foreach($contract as $key => $val) {
			echo $key." => ".$val."<br>\n";
			if (is_array($val)) {
				echo serialize($val);
			}
		}
		echo "<hr/>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.11. crmgetContractUserFields

Syntax:

array crmgetContractUserFields( array( string $session_id, int $contract_id) )

Beschreibung:

Gibt ein Array mit Benutzerdefinierten Feldern für Verträge zurück.

contract_id is the Contract-ID.

Eigenschaften von user_field Object:

Type(Length)            Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             $name                     Name des benutzerdefinierten Vertrags-Feldes
string(255)             $value                    Wert des benutzerdefinierten Vertrags-Feldes

Beispiel:

<?php
 
try {
	// Get userdefined fields of contract with ID 100
	$result = $contracts->crmgetContractUserFields(
		array(
			'session_id'	=> $session_id,
			'contract_id'	=> 100
		)
	);
 
	foreach($result as $field) {
		echo $field->name." => ".utf8_decode($field->value)."<br>\n";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}

3.12. crmsearchContracts

(Version >= 3.4.5382)

Syntax:

array crmsearchContracts( array $search_term, int $timestamp, int $count, int $offset )

Beschreibung:

Gibt ein Array mit Verträgeinformationen zurück.

$search_term ist ein assoziatives Array, bei dem der key das Feld zum Suchen und der value der Suchstring ist. Sie können ein %-Zeichen am Anfang und/oder Ende der Zeichenfolge als Platzhalter verwenden.

$timestamp ist die Unix-Zeit, wann der Vertrag geändert wurde.

$count ist die maximale Anzahl an Verträge, die zurückgegeben wird.

$offset ist die Offset Position der Ergebnisse, die zurückgegeben werden sollen.

Eigenschaften des zurückgegebenen Array: die gleichen wie für crmgetContract

Beispiel:

<?php
 
try {
    //Example 1: Get the first 10 contracts with subject like '%CRM%' AND expiration date is 30.11.2011 AND have changed since 01.11.2011
    $search = array( 'subject' => '%CRM%', 'cdate' => '1322607600' );
 
    $params = array('search_term' => $search, 'timestamp' => 1320102000, 'count' => 10, 'offset' => 0);
    $contracts  = $crmapi_contracts->crmsearchContracts($params);
 
    //Example 2: Get the first 5 contracts with name like "tecart" OR like "crm" AND expiration date is 30.11.2011 AND have changed since 01.11.2011
    $search = array( 'subject' => array('tecart', 'crm'), 'cdate' => '1322607600' );
 
    $params = array('search_term' => $search, 'timestamp' => 1320102000, 'count' => 5, 'offset' => 0);
    $contracts  = $crmapi_contracts->crmsearchContracts($params);
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
foreach( $contracts as $contract) {
    echo $contract->subject ."<br/>\n";
}



3.13. crmgetContractFields

(Version >= 3.5)

Syntax:

array crmgetContractFields( array(string $session_id) )

Beschreibung:

Gibt ein Objekt mit Information der Feldern für Contract zurück. Die Info enthält die Felder in der Datenbank, die angezeigte Namen und die Typen der Felder.

Eignenschaften von zurückgegebenen Objekt:

Typ(Länge)              Eigenschaft               Beschreibung
---------------------------------------------------------------------------------------------
string(255)             Attribute                 Name des Feldes in der Datenbank
array(255)              Value                     Objekt mit 
                                                  label: der angezeigte Name des Feldes
                                                  field: Name des Feldes in der Datenbank
                                                  type:  Typ des Feldes

Beispiel:

<?php
 
try {
	$result = $contracts->crmgetContractFields( array('session_id' => $session_id) );
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
$fields = get_object_vars($result);
 
foreach( $fields as $key => $val) {
    echo $key " => ". $val->label ."<br/>";
}



3.14. crmCreateFollowUp

(Version >= 4.1)

Syntax:

int crmCreateFollowUp( array( string $session_id, int $contract_id, array $article_list_ids = false))

Beschreibung:

Erzeugt einen Folgevertrag aus einem bestehenden Angebot und gibt bei Erfolg dessen ID zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

$contract_id ist die ID des Vertrags, aus dem ein Folgeangebots erzeugt werden soll.

$article_list_ids ist eine Doppelpunkt-getrennte Liste von Artikel-IDs aus der Artikelliste eines Angebotes. (optional)

Beispiel:

<?php
 
try {
    $result = $contracts->crmCreateFollowUp(array('session_id'=>$session_id, 'contract_id'=>$contract_id));
}
catch (CRMException $e) {
    echo $e->getMessage();
}
 
echo "ID des Folgevertrag ist $result";



3.15. crmGotoNextFlowStatus

(Version >= 4.1)

Syntax:

void crmGotoNextFlowStatus( array( string $session_id, int $contract_id))

Beschreibung:

Setzt den Bearbeitungsstand des angegebenen Vertrags um eine Stufe nach oben.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
    $contracts->crmGotoNextFlowStatus(array('session_id'=>$session_id, 'contract_id'=>$contract_id));
}
catch (CRMException $e) {
    echo $e->getMessage();
}



3.16. crmUnlockContract

(Version >= 4.1)

Syntax:

void crmUnlockContract( array( string $session_id, int $contract_id))

Beschreibung:

Gibt einen Vertrag zur Bearbeitung wieder frei. Gibt im Erfolgsfall die ID des Vertrags zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$contracts->crmUnlockContract(
		array(
			'session_id'	=>$session_id,
			'contract_id'	=>$contract_id
		)
	);
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.17. crmgetIdByExtId

(Version >= 4.2)

Syntax:

array crmgetIdByExtId( array( string $session_id, int $ext_id ) )

Beschreibung

Liefert interne ID(s) von Verträgen mit der übergebenen externen ID zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$result = $contracts->crmgetIdByExtId(
		array(
			'session_id'	=> $session_id,
			'ext_id'		=> 12345
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.18. crmgetAllExtIds

(Version >= 4.2)

Syntax:

array crmgetAllExtIds( array ( string $session_id ) )

Beschreibung

Liefert eine Liste aller externen IDs in Verträgen zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try { 
	$result = $contracts->crmgetAllExtIds(array('session_id' => $session_id));
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
foreach($result as $id) {
	echo $id."<br>  ";
}



3.19. crmgetPermission

(Version >= 4.2.12362)

Syntax:

array crmgetPermission ( array( string $session_id, int $contract_id) )

Beschreibung:

Gibt ein Array mit dem Contract-Permission zurück.

Eigenschaften von zurückgegebenen Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
array             $users                          Array mit User-Permission
array             $groups                         Array mit Group-Permission

Eigenschaften von User-Permission:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $id                          Userid
int               $read                        1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $write                       1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $delete                      1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert

Eigenschaften von Group-Permission:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $id                          Groupid
int               $read                        1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $write                       1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $delete                      1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert 

Beispiel:

<?php
 
try {
	$permission = $contracts->crmgetPermission( array('session_id' => $session_id, 'contract_id' => 4742) );
 
	echo "Users:<br>";
 
	foreach($permission->users as $id => $userperm) {
 
		echo "Userid: $id<br>";
		echo "Read:   {$userperm->read}<br>";
		echo "Write:  {$userperm->write}<br>";
		echo "Delete: {$userperm->delete}<br>";
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.20. crmsetPermission

(Version >= 4.2.12362)

Syntax:

boolean crmsetPermission ( string $session_id, array $permission )

Beschreibung:

Setzt die Berechtigungen eines einzelnen Vertrags. Gib true beim Erfolg zurück.

Eigenschaften von permission Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $cid                         Contract Id
array             $users                       Array mit users Elemente
array             $groups                      Array mit groups Elemente

Eigenschaften von users and groups Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $key                            User ID | oder Group ID
array             $value                          Array mit Permission

Eigenschaften von permission Array:

Type(Length)      Eigenschaft                     Beschreibung
---------------------------------------------------------------------------------------
int               $read                        1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $write                       1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert
int               $delete                      1 = gesetzt, 0 = nicht gesetzt, -1 = verweigert 

Beispiel:

<?php
 
try {
	$permission = array(
		'cid'	=> 4243,
		'users'	=> array(
			'55' => array('read' => -1, 'write' => -1, 'delete' => -1)
		),
		'groups' => array(
			'35' => array('read' => -1, 'write' => -1, 'delete' => -1)
		)
	);
 
	$success = $contracts->crmsetPermission(
		array(
			'session_id'	=> $session_id,
			'permission'	=> $permission
		)
	);
 
	if($success) {
		echo 'Set permission success!';
	}
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.21. crmaddRelation

(Version >= 4.2)

Syntax:

int crmaddRelation( array( string $session_id, int $contract_id , int $type , int $oid) )

Beschreibung

Verknüpft ein Objekt eines bestimmten Typs mit einem Vertrag.

Gibt die ID der angelegten Verknüpfung zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

$contract_id ist interne ID des Vertrages, für den die Verknüpfung erstellt werden soll.

$type ist der Typ der Verknüfung, die erstellt werden soll. Für den Typ stehen folgende Werte zur Verfügung:

1 ⇒ Kontakte

3 ⇒ Projekte

4 ⇒ Verträge

5 ⇒ Angebote

6 ⇒ Tickets

12 ⇒ Artikel

20 ⇒ Aufträge

$oid ist interne ID des Objektes vom Typ $type, das mit dem Vertrag verknüpft werden soll.

Beispiel: Verknüpft den Vertrag mit der ID 20 mit dem Vertrag mit der ID 99

<?php
 
try {
	$result = $contracts->crmaddRelation(
		array(
			'session_id'	=> $session_id,
			'contract_id'	=> 99,
			'type'			=> 4,
			'oid'			=> 20
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo $result;



3.22. crmdeleteRelation

(Version >= 4.2)

Syntax:

void crmdeleteRelation( array( string $session_id, int $relation_id) )

Beschreibung

Löscht eine Verknüpfung.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$result = $contracts->crmdeleteRelation(
		array(
			'session_id'	=> $session_id,
			'relation_id'	=> 1234
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}



3.23. crmgetRelations

(Version >= 4.2)

Syntax:

array crmgetRelations( array( string $session_id, int $contract_id , int $type) )

Beschreibung

Liefert eine Liste aller mit dem Vertrag verknüpften Objekte eines bestimmten Typs.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

$contract_id ist interne ID des Vertrages, für den die Verknüpfungen ermittelt werden sollen.

$type ist der Typ der Verknüfungen, die ermittelt werden sollten. Für den Typ stehen folgende Werte zur Verfügung:

1 ⇒ Kontakte

3 ⇒ Projekte

4 ⇒ Verträge

5 ⇒ Angebote

6 ⇒ Tickets

12 ⇒ Artikel

20 ⇒ Aufträge

Beispiel: Liefert alle mit dem Vertrag mit der ID 99 verknüpften Verträge

<?php
 
try {
	$result = $contracts->crmgetRelations(
		array(
			'session_id'	=> $session_id,
			'contract_id'	=> 99,
			'type'			=> 4
		)
	);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
print_r($result);



3.24. crmGetArticles

(Version >= 4.1)

Syntax:

array crmGetArticles(array($session_id, $contract_id))

Beschreibung:

Gibt Artikelliste des Vertrages zurück.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$articles = $contracts->crmGetArticles(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $contract_id
		)
	);
   
	foreach($articles as $article) {
		foreach($article as $key => $val) {
			echo "$key => $val<br>\n";
		}
	}
	echo "<hr/>";
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.25. crmAddArticleToList

(Version >= 4.1)

Syntax:

array crmAddArticleToList( array( string $session_id, $contract_id, $article_id))

Beschreibung:

Fügt den Artikel mit der übergebenen ID zu einem Vertrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$success = $contracts->crmAddArticleToList(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $contract_id,
			'article_id'	=> 10
		)
	);    
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}

3.26. crmAddTextToList

(Version >= 4.1)

Syntax:

array crmAddTextToList( array( string $session_id, $contract_id, $text))

Beschreibung:

Fügt einen Artikel-Text zu einem Vertrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$success = $contracts->crmAddTextToList(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $contract_id,
			'text'			=> 'Das ist ein Text'
		)
	);
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.27. crmAddSpecialToList

(Version >= 4.1)

Syntax:

array crmAddSpecialToList( array( string $session_id, $contract_id, $crmBillingItem))

Beschreibung:

Fügt einen Sonderartikel zu einem Vertrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

crmBillingItem ist ein assoziatives Array.

Eigenschaften:

Typ             Eigenschaft                          Beschreibung
---------------------------------------------------------------------------------------------
int             $quantity                            Menge
string          $realnumber                          Artikelnummer
string          $name                                Bezeichnung
int             $taxrate                             Steuersatz-Index
double          $discount                            Rabatt
int             $interval                            Abrechnungszeitraum-Index
string          $description                         Beschreibung
int             $ext_id                              Externe ID ( ab Version 4.2 )

Beispiel:

<?php
 
try {
	$data = array(
		'quantity'		=> 10,
		'realnumber'	=> '100001',
		'name'			=> 'API Special Article',
		'description'	=> 'API Special Article',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1
	);
 
	$success = $contracts->crmAddSpecialToList(
		array(
			'session_id'		=> $session_id,
			'object_id'			=> $contract_id,
			'crmBillingItem'	=> $data
		)
	);
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.28. crmAddGrouplineToList

(Version >= 4.1)

Syntax:

array crmAddGrouplineToList( array( string $session_id, $contract_id, $crmBillingItem))

Beschreibung:

Fügt eine Gruppenzeile zu einem Vertrag hinzu. Im Erfolgsfall wird 1 zurückgegeben.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

crmBillingItem ist ein assoziatives Array.

Eigenschaften:

Typ             Eigenschaft                          Beschreibung
---------------------------------------------------------------------------------------------
int             $quantity                            Menge
string          $name                                Bezeichnung
int             $taxrate                             Steuersatz-Index
double          $discount                            Rabatt
int             $interval                            Abrechnungszeitraum-Index
string          $description                         Beschreibung
int             $ext_id                              Externe ID ( ab Version 4.2 )

Beispiel:

<?php
 
try {
	$data = array(
		'quantity'		=> 3,
		'name'			=> 'API Groupline',
		'description'	=> 'API Groupline',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1
	);
 
	$success = $contracts->crmAddGrouplineToList(
		array(
			'session_id'		=> $session_id,
			'object_id'			=> $contract_id,
			'crmBillingItem'	=> $data
		)
	);
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.29. crmAddMultipleToList

(Version >= 4.1)

Syntax:

array crmAddMultipleToList( array( string $session_id, int $contract_id, array $crmMultipleListItems))

Beschreibung:

Fügt der Artikelliste eines Vertrages mehrere Artikel, Texte und/oder Gruppenzeilen hinzu. Im Erfolgsfall wird 1 zurückgegeben.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

crmMultipleListItems ist ein Array von Artikeln, die Eigenschaften sind die selben wie crmAddArticleToList, crmAddTextToList, crmAddSpecialToList und crmAddGrouplineToList. Die Unterscheidung erfolgt über das Feld "type".

Eigenschaften:

Typ             Eigenschaft                          Beschreibung
---------------------------------------------------------------------------------------------
array           $crmMultipleListItems                Artikelliste

Beispiel:

<?php
 
try {
	$items = array();
	$items['crmMultipleListItems'][] = array('type' => 'article', 'id' => 10);
	$items['crmMultipleListItems'][] = array('type' => 'text','text' => 'API-AddMultiple Text');
 
	$specialItem = array(
		'quantity'		=> 10,
		'realnumber'	=> '100001',
		'name'			=> 'API Special Article',
		'description'	=> 'API Special Article',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1,
		'type'			=> 'special'
	);    
	$items['crmMultipleListItems'][] = $specialItem;
 
	$data = array(
		'quantity'		=> 3,
		'name'			=> 'API Groupline',
		'description'	=> 'API Groupline',
		'taxrate'		=> 19,
		'discount'		=> 100,
		'interval'		=> 1,
		'type'			=> 'groupline'
	);
	$items['crmMultipleListItems'][] = $specialItem;
   
	$success = $contracts->crmAddMultipleToList(
		array(
			'session_id'		=> $session_id,
			'object_id'			=> $contract_id,
			'crmBillingItem'	=> $items
		)
	);
 
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.30. crmRemoveArticleFromList

(Version >= 4.1)

Syntax:

array crmRemoveArticleFromList( array( string $session_id, int $contract_id, int $article_id))

Beschreibung:

Löscht den Artikel mit der angegeben ID aus der Artikelliste des Vertrages. Im Erfolgsfall wird 1 zurückgegeben.

Im Falle eines Fehlers wird eine CRMException mit mehr Fehlerdetails geworfen.

Beispiel:

<?php
 
try {
	$success = $contracts->crmRemoveArticleFromList(
		array(
			'session_id'	=> $session_id,
			'object_id'		=> $contract_id,
			'article_id'	=> 11
		)
	);
   
	echo $success;
}
catch (Exception $e) {
	echo 'Exception abgefangen: ' .$e->getMessage(). "\n";
}



3.31. crmsetDuplicateConfig

(Version >= 4.4)

Syntax:

boolean | string <err_msg> crmsetDuplicateConfig( array( 'session_id' => string <session_id>, 'fields' => array( string <fieldname>, [string <fieldname>...])) )

Beschreibung:

Ermöglicht eine temporäre Überschreibung der Dublettenprüfungsfelder für die Laufzeit der angemeldeten Session.

Parameter fields ist ein Array mit den Feldnamen, die anstatt der aktuell für das Modul festgelegten Felder zur Dublettenprüfung herangezogen werden sollen.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/contracts';
	$session_id  = session_id();
	$contracts   = new crm_rest_api($rest_url);
 
	$params  = array(
		'session_id' => $session_id,
		'fields'     => array('subject', 'realnumber')
	);
	$success = $contracts->crmsetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo ($success ? 'override successful' : $success);



3.32. crmgetDuplicateConfig

(Version >= 4.4)

Syntax:

array | string <err_msg> crmgetDuplicateConfig( array( 'session_id' => string <session_id> ) )

Beschreibung:

Gibt Array mit aktueller Feldkonfiguration der Dublettenprüfung zurück.

Sollte aktuell keine temporäre Überschreibung der Feldkonfiguration aktiv sein (siehe crmsetDuplicateConfig), wird die durch die Administration konfigurierte Feldliste zurückgegeben.

Beispiel:

<?php
 
try {
	include_once 'crm_rest_api.php';
	$rest_url    = 'https://<hostname>/<dirname>/rest/index.php/contracts';
	$session_id  = session_id();
	$notes       = new crm_rest_api($rest_url);
 
	$params  = array('session_id' => $session_id);
	$fields  = $notes->crmgetDuplicateConfig($params);
}
catch (CRMException $e) {
	echo $e->getMessage();
}
 
echo ''.print_r($fields, true).'';
  • No labels