Interaktion mit Objekten: Unterschied zwischen den Versionen
Aus sourceDESK Wiki
(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); | ||
− | + | $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();