19. Juli 2007 08:56
ValidateApplyRequirements(TempGenJnlLine : TEMPORARY Record "Gen. Journal Line")
IF (TempGenJnlLine."Bal. Account Type" = TempGenJnlLine."Bal. Account Type"::Customer) OR
(TempGenJnlLine."Bal. Account Type" = TempGenJnlLine."Bal. Account Type"::Vendor)
THEN
ExchAccGLJnlLine.RUN(TempGenJnlLine);
IF (TempGenJnlLine."Document Type" = TempGenJnlLine."Document Type"::Payment) OR
(TempGenJnlLine."Document Type" = TempGenJnlLine."Document Type"::Refund)
THEN
IF TempGenJnlLine."Account Type" = TempGenJnlLine."Account Type"::Customer THEN BEGIN
IF TempGenJnlLine."Applies-to ID" <> '' THEN BEGIN
CustLedgEntry.SETCURRENTKEY("Customer No.","Applies-to ID",Open);
CustLedgEntry.SETRANGE("Customer No.",TempGenJnlLine."Account No.");
CustLedgEntry.SETRANGE("Applies-to ID",TempGenJnlLine."Applies-to ID");
CustLedgEntry.SETRANGE(Open,TRUE);
IF CustLedgEntry.FIND('-') THEN
REPEAT
IF (TempGenJnlLine."Posting Date" < CustLedgEntry."Posting Date") THEN
ERROR(
Text015,TempGenJnlLine."Document Type",TempGenJnlLine."Document No.",
CustLedgEntry."Document Type",CustLedgEntry."Document No.");
UNTIL CustLedgEntry.NEXT = 0;
END ELSE IF TempGenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN
CustLedgEntry.SETCURRENTKEY("Document No.","Document Type","Customer No.");
CustLedgEntry.SETRANGE("Document No.",TempGenJnlLine."Applies-to Doc. No.");
IF TempGenJnlLine."Applies-to Doc. Type" <> TempGenJnlLine."Applies-to Doc. Type"::" " THEN
CustLedgEntry.SETRANGE("Document Type",TempGenJnlLine."Applies-to Doc. Type");
CustLedgEntry.SETRANGE("Customer No.",TempGenJnlLine."Account No.");
CustLedgEntry.SETRANGE(Open,TRUE);
IF CustLedgEntry.FIND('-') THEN
IF (TempGenJnlLine."Posting Date" < CustLedgEntry."Posting Date") THEN
ERROR(
Text015,TempGenJnlLine."Document Type",TempGenJnlLine."Document No.",
CustLedgEntry."Document Type",CustLedgEntry."Document No.");
END;
END ELSE IF TempGenJnlLine."Account Type" = TempGenJnlLine."Account Type"::Vendor THEN BEGIN
IF TempGenJnlLine."Applies-to ID" <> '' THEN BEGIN
VendLedgEntry.SETCURRENTKEY("Vendor No.","Applies-to ID",Open);
VendLedgEntry.SETRANGE("Vendor No.",TempGenJnlLine."Account No.");
VendLedgEntry.SETRANGE("Applies-to ID",TempGenJnlLine."Applies-to ID");
VendLedgEntry.SETRANGE(Open,TRUE);
REPEAT
IF (TempGenJnlLine."Posting Date" < VendLedgEntry."Posting Date") THEN
ERROR(
Text015,TempGenJnlLine."Document Type",TempGenJnlLine."Document No.",
VendLedgEntry."Document Type",VendLedgEntry."Document No.");
UNTIL VendLedgEntry.NEXT = 0;
IF VendLedgEntry.FIND('-') THEN BEGIN
END;
END ELSE IF TempGenJnlLine."Applies-to Doc. No." <> '' THEN BEGIN
VendLedgEntry.SETCURRENTKEY("Document No.","Document Type","Vendor No.");
VendLedgEntry.SETRANGE("Document No.",TempGenJnlLine."Applies-to Doc. No.");
IF TempGenJnlLine."Applies-to Doc. Type" <> TempGenJnlLine."Applies-to Doc. Type"::" " THEN
VendLedgEntry.SETRANGE("Document Type",TempGenJnlLine."Applies-to Doc. Type");
VendLedgEntry.SETRANGE("Vendor No.",TempGenJnlLine."Account No.");
VendLedgEntry.SETRANGE(Open,TRUE);
IF VendLedgEntry.FIND('-') THEN
IF (TempGenJnlLine."Posting Date" < VendLedgEntry."Posting Date") THEN
ERROR(
Text015,TempGenJnlLine."Document Type",TempGenJnlLine."Document No.",
VendLedgEntry."Document Type",VendLedgEntry."Document No.");
END;
END;
19. Juli 2007 09:49
19. Juli 2007 13:53
19. Juli 2007 14:00
19. Juli 2007 14:19
thommes hat geschrieben:@forki: DOCH, Du hast das Problem auf den Punkt getroffen. Microsoft hat das damals mit dem möglichen Skontoproblem begründet. Da es anscheinend keine andere Lösung gibt, als die Belege dann danach auszugleichen, werde ich diesen Eintrag nun als [gelöst] kennzeichnen.
Grüße @ all
thommes.
19. Juli 2007 14:38
19. Juli 2007 21:18
forki hat geschrieben:@Trollmama:
Also ich dachte es geht die ganze Zeit darum, dass die Zahlung zeitlich vor der Rechnung liegt. So heißt ja auch das Thema. Und das macht meiner Meinung auch durchaus Sinn.
Unsere Kunden bekommen monatlich Rechnungen. Diese werden mit zukünftigen Buchungsdatumswerten gebucht. Manchmal kommen Zahlungen aber früher als die Rechnungen ihr Buchungsdatum haben.
Diese sollen ja aber trotzdem betrachtet werden. Der Ausgleich darf dann natürlich erst zum Buchungsdatum der Rechnung erfolgen - dann stimmt auch das Skonto. Denke ich
Grüße Steffen