0

Rechnung mit mehreren Rechnungspositionen Buchen

Hallo zusammen

habe mal wieder ein Problem.

Ich habe ein Rechnungsformular mit mehreren Rechnungspositionen (diese stehen in einer Untertabelle) jetz möchte ich gerne die Rechnung Buchen, dafür würde ich gerne die einzelnen Rechnungspositionen nehmen und diese Buchen.

Rechnungx-Buchen

 

Danke für Eure Hilfe, 

Die gesamtsumme buchen kann ich 

 

let my := this;
let newB := (create 'x-Buchen');
newB.('Rechnung-Nr' := my.'Rechnung-ID');
newB.(Buchungstext := my.'Buchungs-Text');
newB.(Betrag := my.Rechnungssumme);
newB.('Konto aus' := 1000);
newB.(Kategorie := my.first(Rechnungsposition.'V-Preisliste'.Konto));
newB.('Buchungs-Artikel' := my.first(Rechnungsposition.Artikel));
newB.('Rechnungs Datum' := my.Rechnungsdatum);
newB.('Buchungs Datum' := now());
popupRecord(newB)

3 Antworten

null
    • Mirko
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ich weiß nicht, ob ich das richtig verstanden habe. Du möchtest jede einzelne Rechnungsposition als eine Buchung verbuchen?

    Anbei meine Test-DB dazu. Dem Buchen-Button ist der Code zugewiesen.

    Gruß

    Mirko

     

    let _my := this;
    let _AnzBuchungenNeu := 0;
    let _AnzBuchungenVorhanden := 0;
    let Info := "
    ******************************************
    *** Anzahl Rechnungspositionen zu der
    *** Rechnung ermitteln
    *****************************************
    ";
    let _AnzRePos := cnt(Rechnungspositionen);
    let Info := "
    *****************************************
    *** Felder, die aus Rechnungspositionen
    *** verbucht werden sollen, als Array
    *** zuweisen
    *****************************************
    ";
    let _RePosID := (select Rechnungspositionen where Rechnung = _my).Nr;
    let _RePosArtNr := (select Rechnungspositionen where Rechnung = _my).'Artikel-Nr';
    let _RePosPreis := (select Rechnungspositionen where Rechnung = _my).Preis;
    let _RePosEinheit := (select Rechnungspositionen where Rechnung = _my).Einheit;
    let _RePosKonto := (select Rechnungspositionen where Rechnung = _my).Konto;
    let Info := "
    *****************************************
    *** Buchungen aus Rechnungspositionen
    *** erstellen.
    *** Dabei wird geprüft, ob die Rechnungs-
    *** position bereits vorhanden ist (extra
    *** Feld 'ID' in x-Buchen, diese Pos.
    *** wird nicht nochmals verbucht
    *****************************************
    ";
    let _BuchungVorhanden := false;
    for ii in range(0, _AnzRePos) do
    _BuchungVorhanden := cnt(select 'x-Buchen' where ID = item(_RePosID, ii)) > 0;
    if _BuchungVorhanden then
    _AnzBuchungenVorhanden := _AnzBuchungenVorhanden + 1
    else
    let _Betrag := item(_RePosPreis, ii) * item(_RePosEinheit, ii);
    let _newB := (create 'x-Buchen');
    _newB.('Rechnung-Nr' := _my.'Rechnung-ID');
    _newB.(ID := number(item(_RePosID, ii)));
    _newB.(Buchungsartikel := item(_RePosArtNr, ii));
    _newB.(Betrag := _Betrag);
    _newB.('Konto aus' := item(_RePosKonto, ii));
    _AnzBuchungenNeu := _AnzBuchungenNeu + 1
    end
    end;
    alert(_AnzBuchungenNeu + " Buchung(en) angelegt || " + _AnzBuchungenVorhanden + " bereits vorhanden")

    • Mirko
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Ergebnis:

    • Susan_Schaffner_Owner
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Mirko vielen lieben dank, dass klapt so super

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 3Antworten
  • 1570Ansichten