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();
Wiederkehrende Rechnungen
...