Interaktion mit Objekten: Unterschied zwischen den Versionen

Aus sourceDESK Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Kunden == ... == Rechnungen == ... == Rechnungspositionen == ...“)
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
Sie können in sourceDESK mit verschiedenen Objekten interagieren.
 +
 
== Kunden ==
 
== Kunden ==
...
+
Klasse: ''User''
 +
 
 +
'''Benutzer abrufen'''
 +
<source lang="php">
 +
$userByMail = User::getInstance("max@mustermann.de"); // instanceof User oder false, wenn nicht (eindeutig) gefunden
 +
$userById  = User::getInstance(1, "ID");            // instanceof User oder false, wenn nicht gefunden
 +
</source>
 +
 
 +
'''Benutzerdaten abrufen'''
 +
<source lang="php">
 +
$data = $user->get(); // Array
 +
</source>
 +
 
 +
'''Benutzerdaten ändern'''
 +
<source lang="php">
 +
$user->set(Array(
 +
    "firstname" => "Max",
 +
    "lastname" => "Mustermann",
 +
));
 +
 
 +
$pwd = $user->generatePassword(); // Generiert ein zufälliges Passwort und gibt es zurück
 +
</source>
 +
 
 +
'''Änderungen in Änderungsverlauf aufnehmen'''
 +
<source lang="php">
 +
$user->saveChanges("client"); // Oder "admin", jenachdem wem die Änderungen zugeschrieben werden sollen
 +
</source>
 +
 
 +
'''Log-Eintrag erstellen'''
 +
<source lang="php">
 +
$user->log("Beliebige Log-Nachricht");
 +
</source>
 +
 
 +
'''Lokalisierungen abrufen'''
 +
<source lang="php">
 +
$currency = $user->getCurrency(); // instanceof Currency
 +
$language = $user->getLanguage();
 +
$nfo      = $user->getNumberFormat();
 +
$vat      = $user->getVAT();
 +
</source>
 +
 
 +
'''Rechnungen abrufen'''
 +
<source lang="php">
 +
$invoices  = $user->getInvoices($status = -1);          // Array mit Invoice-Objekten, $status = -1 -> beliebig
 +
$recurring = $user->getRecurringInvoices($status = -1); // Array mit RecurringInvoice-Objekten, $status = -1 -> beliebig
 +
$open      = $user->getOpenInvoices();                  // Entspricht $user->getInvoices(0);
 +
$limit    = $user->getLimit();                        // Zahlungslimit (Guthaben + Kreditlinie) abrufen
 +
</source>
 +
 
 +
'''Login auf einer Seite prüfen/anfordern (statische Methode)'''
 +
<source lang="php">
 +
User::status();
 +
</source>
 +
 
 +
'''Sonstiges'''
 +
<source lang="php">
 +
$user->getDomainPrice($tld, $type = "register"); // (Individuellen) Preis für Domain-Endung abrufen
 +
$user->addTax($amount);                          // Steuern auf einen Preis aufschlagen
 +
$user->getNS();                                  // Zu verwendende Nameserver abrufen
 +
$user->getfName();                              // Formatierten Namen (inkl. Firma wenn vorhanden) abrufen
 +
$user->getContacts();                            // Kontakte abrufen
 +
$user->getField($f);                            // Inhalt eines benutzerdefinierten Feldes abrufen
 +
$user->setField($f, $v);                        // Inhalt eines benutzerdefinierten Feldes setzen
 +
$user->autoScore();                              // Automatisches Scoring durchführen
 +
$user->getScore();                              // Scoring-Wert des Kunden abrufen
 +
</source>
  
 
== Rechnungen ==
 
== Rechnungen ==
...
+
Klasse: ''Invoice''
 +
 
 +
'''Bestehende Rechnung abrufen / bearbeiten'''
 +
<source lang="php">
 +
$inv = new Invoice;
 +
$inv->load(123);
 +
 
 +
$inv->getInfo();
 +
 
 +
$inv->getId();
 +
$inv->getDate();
 +
$inv->getDueDate();
 +
$inv->getCustomNo();
 +
$inv->getClientData();
 +
$inv->getStatus();
 +
$inv->getInvoiceNo();
 +
$inv->getShortNo();
 +
$inv->getItems();
 +
$inv->getAmount();
 +
$inv->getTaxAmount();
 +
$inv->getNet();
 +
 
 +
$user = User::getInstance($inv->getClient(), "ID");
 +
 
 +
$inv->encashmentFile();
 +
$inv->encashmentStatus();
 +
 
 +
$inv->setDate("2019-01-01");
 +
$inv->setDueDate("2019-01-14");
 +
$inv->setClient(5);
 +
 
 +
$inv->addItem(InvoiceItem $item);
 +
 
 +
$inv->clearClientData(); // Persistente Kundendaten zurücksetzen
 +
$inv->save();            // Änderungen speichern, wichtig!
 +
 
 +
$inv->delete();
 +
</source>
 +
 
 +
'''Rechnung mit Position erstellen'''
 +
<source lang="php">
 +
$invoice = new Invoice;
 +
$invoice->setDate("2019-01-01");
 +
$invoice->setDueDate("2019-01-14");
 +
$invoice->setClient($user->get()['ID']);
 +
$invoice->setStatus(0);
 +
 
 +
$item = new InvoiceItem;
 +
$item->setDescription("Position 1");
 +
$item->setAmount(123.45);
 +
$item->setTax(true);
 +
 
 +
$invoice->addItem($item);
 +
 
 +
$item = new InvoiceItem;
 +
$item->setDescription("Schadensersatz (unversteuert)");
 +
$item->setAmount(2000);
 +
$item->setTax(false);
 +
 
 +
$invoice->addItem($item);
  
== Rechnungspositionen ==
+
$invoice->send();
...
+
</source>

Aktuelle Version vom 10. Oktober 2018, 09:08 Uhr

Sie können in sourceDESK mit verschiedenen Objekten interagieren.

Kunden

Klasse: User

Benutzer abrufen

$userByMail = User::getInstance("max@mustermann.de"); // instanceof User oder false, wenn nicht (eindeutig) gefunden
$userById   = User::getInstance(1, "ID");             // instanceof User oder false, wenn nicht gefunden

Benutzerdaten abrufen

$data = $user->get(); // Array

Benutzerdaten ändern

$user->set(Array(
    "firstname" => "Max",
    "lastname" => "Mustermann",
));
 
$pwd = $user->generatePassword(); // Generiert ein zufälliges Passwort und gibt es zurück

Änderungen in Änderungsverlauf aufnehmen

$user->saveChanges("client"); // Oder "admin", jenachdem wem die Änderungen zugeschrieben werden sollen

Log-Eintrag erstellen

$user->log("Beliebige Log-Nachricht");

Lokalisierungen abrufen

$currency = $user->getCurrency(); // instanceof Currency
$language = $user->getLanguage();
$nfo      = $user->getNumberFormat();
$vat      = $user->getVAT();

Rechnungen abrufen

$invoices  = $user->getInvoices($status = -1);          // Array mit Invoice-Objekten, $status = -1 -> beliebig
$recurring = $user->getRecurringInvoices($status = -1); // Array mit RecurringInvoice-Objekten, $status = -1 -> beliebig
$open      = $user->getOpenInvoices();                  // Entspricht $user->getInvoices(0);
$limit     = $user->getLimit();                         // Zahlungslimit (Guthaben + Kreditlinie) abrufen

Login auf einer Seite prüfen/anfordern (statische Methode)

User::status();

Sonstiges

$user->getDomainPrice($tld, $type = "register"); // (Individuellen) Preis für Domain-Endung abrufen
$user->addTax($amount);                          // Steuern auf einen Preis aufschlagen
$user->getNS();                                  // Zu verwendende Nameserver abrufen
$user->getfName();                               // Formatierten Namen (inkl. Firma wenn vorhanden) abrufen
$user->getContacts();                            // Kontakte abrufen
$user->getField($f);                             // Inhalt eines benutzerdefinierten Feldes abrufen
$user->setField($f, $v);                         // Inhalt eines benutzerdefinierten Feldes setzen
$user->autoScore();                              // Automatisches Scoring durchführen
$user->getScore();                               // Scoring-Wert des Kunden abrufen

Rechnungen

Klasse: Invoice

Bestehende Rechnung abrufen / bearbeiten

$inv = new Invoice;
$inv->load(123);
 
$inv->getInfo();
 
$inv->getId();
$inv->getDate();
$inv->getDueDate();
$inv->getCustomNo();
$inv->getClientData();
$inv->getStatus();
$inv->getInvoiceNo();
$inv->getShortNo();
$inv->getItems();
$inv->getAmount();
$inv->getTaxAmount();
$inv->getNet();
 
$user = User::getInstance($inv->getClient(), "ID");
 
$inv->encashmentFile();
$inv->encashmentStatus();
 
$inv->setDate("2019-01-01");
$inv->setDueDate("2019-01-14");
$inv->setClient(5);
 
$inv->addItem(InvoiceItem $item);
 
$inv->clearClientData(); // Persistente Kundendaten zurücksetzen
$inv->save();            // Änderungen speichern, wichtig!
 
$inv->delete();

Rechnung mit Position erstellen

$invoice = new Invoice;
$invoice->setDate("2019-01-01");
$invoice->setDueDate("2019-01-14");
$invoice->setClient($user->get()['ID']);
$invoice->setStatus(0);
 
$item = new InvoiceItem;
$item->setDescription("Position 1");
$item->setAmount(123.45);
$item->setTax(true);
 
$invoice->addItem($item);
 
$item = new InvoiceItem;
$item->setDescription("Schadensersatz (unversteuert)");
$item->setAmount(2000);
$item->setTax(false);
 
$invoice->addItem($item);
 
$invoice->send();