Skript für alle Kunden als Schleife ?
Hallo zusammen,
ich möchte gern die offenen Rechnungen über das Dashboard anmahnen. (für alle Kunden in einem Durchgang)
Bisher erstelle ich die Mahnung aus dem entsprechenden Vertragspartner heraus. Tabelle Kunden. / Bildfeld
Um das ganze aber einfacher zu gestalten, wollte ich im Dashboard (nicht verknüpft mit Kunden oder Rechnungsstellung) das Script über einen Button für alle Vertragspartner auslösen und gleichzeitig die dabei generierten pdf mit printRecord aufrufen. Ist das möglich?
Bisher für den einzelnen Kunden:
der untere teil ist nur für die Status Ausgabe.
'PDF Ausgabe 1.Mahnung' := null;
let myFileName := "Zahlungserinnerung" + " " + Firma + " " + 'Nachname oder Zusatz für Empfänger in PDF' + " " + "vom" + " " + format(today(), "DD-MM-YYYY") + ".pdf";
importFile(this, printAndSaveRecord(this, "1.Mahnung"), myFileName);
'PDF Ausgabe 1.Mahnung' := myFileName;
printRecord(this, "1.Mahnung");
let me := this;
for i in select Rechnungsstellung where Rechnungsstatus = 4 and Kunde.text('Kunden-Nr.') = me.text('Kunden-Nr.') do
let aa := i.Nr;
let bb := (select Rechnungsstellung);
bb[Nr = aa].('1.Mahnung erzeugt' := true)
end;
do as server
let myR := (select Rechnungsstellung);
myR[Rechnungstyp = 1 and 'in Rechnung wandeln' = false].(Rechnungsstatus := 9);
myR[Rechnungstyp = 1 and 'in Rechnung wandeln' = true].(Rechnungsstatus := 11);
myR['1.Mahnung erzeugt' = true].(Rechnungsstatus := 10);
myR['2.Mahnung erzeugt' = true].(Rechnungsstatus := 12);
myR['Offener Rechnungsbetrag' < 1].(Rechnungsstatus := 5);
myR['Offener Rechnungsbetrag' > 1 and 'Offener Rechnungsbetrag' < 'Brutto-Gesamt:'].(Rechnungsstatus := 8);
myR[Rechnungstyp > 1 and 'erwarteter Zahlungseingang' > today() and 'Offener Rechnungsbetrag' = 'Brutto-Gesamt:'].(Rechnungsstatus := 2);
myR['Versandart wählen' = 7].(Rechnungsstatus := 6);
myR[Rechnungstyp = 4 or 'in Gutschrift wandeln' = true].(Rechnungsstatus := 7);
myR[Rechnungstyp = 2 and 'erwarteter Zahlungseingang' < today() and 'Offener Rechnungsbetrag' = 'Brutto-Gesamt:' and 'in Gutschrift wandeln' = false and '1.Mahnung erzeugt' = false and '2.Mahnung erzeugt' = false].(Rechnungsstatus := 4)
end
10 Antworten
-
Woran erkennst du denn, daß eine 1.Mahnung erzeugt werden muss?
Laut gezeigtem Script, weißt du irgendwoher, das du den Button zum Erzeugen der 1.Mahnung drücken musst. Diese Erkenntnis musst du im Dashboard in ein Script umsetzen.
Da ich mich mit dem Ninox-Druckeditor nicht auskenne, aber mitbekommen habe, dass die Drucktemplates an den jeweiligen Tabellen hängen, musst du wohl dem Dashboard auch ein entsprechendes Druck-Template zuordnen und dieses in einer Schleife mit den zugehörigen Daten füttern. (Das sind meine laienhaften Überlegungen dazu)Mit Carbone wüsste ich, wie man einen Massendruck aus einer Schleife heraus initiieren könnte und die Druckergebnisse den Records zuordnet.
Hast du mal darüber nachgedacht, eine zentrale Fileverwaltung (pdf, Bilder, Dateien) statt dem wilden speichern der Dateien bei jedem Record vorzuziehen?
Damit hättest du alle Files zentral an einem Ort und über Funktionsfelder kannst du mittels Verknüpfungen jeden Record auch damit verbinden.
Ich füge mal eine Bsp-DB, die dieses Prinzip veranschaulicht, bei.
Dort kann man auch ohne großen Aufwand, wenn es angebracht ist, die Dateien auslagern und über ShareLinks Platzsparend wieder in Ninox einbinden.
Ich habe sowas schon mit Baserow gebaut, es wird aber auch mit anderen Anbietern wie DropBox, FileCloud etc. funktionieren, sofern man über einen von dort erstellten ShareLink ohne weiteres auf das dort abgelegte Bild zugreifen kann.
-
Hallo Michi,
ich kann völlig falsch liegen. Aber meines Wissens nach kann der Druckeditor nur auf direkt verknüpfte Tabellen zugreifen - nicht auf selbst erstellte Ansichten, was bei einem Dashboard eher der Fall sein sollte. Demnach müsstest Du für jedes Kundenspezifische Feld wie Name, Adresse, Rechnungsinformationen als Feld darstellen, wo der Druckeditor drauf zugreifen kann. Es sollte auch gehen, wenn das Feld nicht sichtbar ist. Also pro Schleife in die entsprechenden Felder schreiben und dann in eine separate Tabelle die PDF ablegen.
-
Patrick W. said:
Michi was soll die for Schleife denn bewirken?Blödsinn
hab jetzt eine Ansicht im Dashboard die mir alles anschaulich darstellt über: (select Kunden)['gesamt offen' > 1]
'gesamt offen' hab ich mir über:
let aa := this;
sum((select Rechnungsstellung)[text(Kunde.'Kunden-Nr.') = aa.text('Kunden-Nr.') and Rechnungsstatus = 4].'Brutto-Gesamt:')in die Tabelle Kunden geholt.
In der Tabelle Rechnungsstellung wird alles über den Rechnungsstatus geregelt. Entweder wird diese beim öffnen der DB aktualisiert oder bei relevanten Änderungen. Oder einfach manuell über einen Button. Das gibt immer den richtigen Status welcher nur über eingaben veränderbar ist.
do as server
let myR := (select Rechnungsstellung);
myR[Rechnungstyp = 1 and 'in Rechnung wandeln' = false].(Rechnungsstatus := 9);
myR[Rechnungstyp = 1 and 'in Rechnung wandeln' = true].(Rechnungsstatus := 11);
myR['1.Mahnung erzeugt' = true].(Rechnungsstatus := 10);
myR['2.Mahnung erzeugt' = true].(Rechnungsstatus := 12);
myR['Offener Rechnungsbetrag' < 1].(Rechnungsstatus := 5);
myR['Offener Rechnungsbetrag' > 1 and 'Offener Rechnungsbetrag' < 'Brutto-Gesamt:'].(Rechnungsstatus := 8);
myR[Rechnungstyp > 1 and 'erwarteter Zahlungseingang' > today() and 'Offener Rechnungsbetrag' = 'Brutto-Gesamt:'].(Rechnungsstatus := 2);
myR['Versandart wählen' = 7].(Rechnungsstatus := 6);
myR[Rechnungstyp = 4 or 'in Gutschrift wandeln' = true].(Rechnungsstatus := 7);
myR[Rechnungstyp = 2 and 'erwarteter Zahlungseingang' < today() and 'Offener Rechnungsbetrag' = 'Brutto-Gesamt:' and 'in Gutschrift wandeln' = false and '1.Mahnung erzeugt' = false and '2.Mahnung erzeugt' = false].(Rechnungsstatus := 4)
end
Content aside
- Status Answered
- vor 2 JahrenZuletzt aktiv
- 10Antworten
- 120Ansichten
-
4
Folge bereits