[Gelöst] Artikel Zu- und Abschläge

26. Oktober 2011 11:41

1. Auftrag des Kunden wird erfasst (ohne Versandkosten)
2. Bestellung des gewünschten Artikel beim Lieferanten, Bestellung wird ohne Bezugskosten angelegt
3. Lieferschein und Rechnung vom Lieferanten kommt, Bezugskosten werden nachträglich in die Bestellung eingepflegt und gebucht
4. Lagerbestand hat sich entsprechend erhöht
5. Für den unter 1. erfassten Auftrag sollen nun doch Versandkosten berechnet werden. Beim Buchen kommt nun aber diese Meldung:
Artikel 20252 kann nicht geliefert werden, weil der Bestand an Lagerort “ZENTRAL“, Lagerplatz““, Variante““ nur 0 beträgt.

Auf Lager liegt der Artikel aber definitiv, dies wird in der Artikelkarte auch angezeigt. Erst wenn die Versandkosten raus genommen werden lässt sich der Auftrag buchen.
Woran könnte dies liegen?
Zuletzt geändert von MJonas am 8. November 2011 13:21, insgesamt 1-mal geändert.

Re: Artikel Zu- und Abschläge

28. Oktober 2011 00:08

Hallo, hat keiner eine Idee, einen Ansatz, ob irgendwelche Einstellung in den Tiefen des Object Designers nicht irgendein Haken vergessen wurde???? Manchmal kann man wirklich verzweifeln an Software, wie z.B bei Lagerregulierungen buchen, wenn irgendwann einmal ein Mitarbeiter einen Fehler gemacht hat, dann kommt die Meldung, Wertposten zu laufender Nr. konnte nicht gefunden werden, dann stoppt die ganze Lagerregulierung und man steht da wie ein Vollidiot. Microsoft lebe hoch!!! :twisted: :evil:

Re: Artikel Zu- und Abschläge

28. Oktober 2011 01:04

Die Fehlermeldung kommt aus diesem Codestück aus Codeunit 21. Vom Bestand werden die Reservierungen abgezogen, sowohl die am Artikel ausgewiesenen (anhand der Reservierungsposten via Artikelposten -> gebucht) als auch die aus Buchungsblättern bei Verwendung des Produktionsmoduls (-> ungebucht).
Andere Möglichkeit: "Lief. bei neg. Lager sperren" in der Verkaufseinrichtung abschalten, dann wird die Prüfung nicht mehr ausgeführt, buchen und wieder einschalten.
Code:
  IF "Item Charge No." = '' THEN BEGIN
    SalesSetup.GET;
    IF SalesSetup."Block ship. when neg. invent." THEN BEGIN
      IF ("Entry Type" = "Entry Type"::Sale) AND (Quantity <> 0) THEN BEGIN
        Item.GET("Item No.");
        Item.SETRANGE("Variant Filter","Variant Code");
        Item.SETRANGE("Location Filter","Location Code");
        Item.SETRANGE("Bin Filter","Bin Code");
        Item.CALCFIELDS(Inventory,"Reserved Qty. on Inventory");
        QtyAvailable := Item.Inventory - Item."Reserved Qty. on Inventory";

        ResMgt.InitFilterAndSortingFor(ResEntry,TRUE);
        ItemJnlReserve.FilterReservFor(ResEntry,ItemJnlLine);
        IF ResEntry.FIND('-') THEN REPEAT
          QtyAvailable := QtyAvailable - ResEntry."Quantity (Base)";
        UNTIL ResEntry.NEXT = 0;

        IF (QtyAvailable < "Quantity (Base)") THEN
          ERROR(Text11500,  // cannot be shipped because of inventory
            "Item No.","Location Code","Bin Code","Variant Code",QtyAvailable);
      END;
    END;
  END;

Re: Artikel Zu- und Abschläge

28. Oktober 2011 08:20

Willst du die Versandkosten in einer gesonderten Rechnung auf die bereits erfolgte Lieferung berechnen, oder mit dem normalen Auftrag fakturieren?

Gruß, Fiddi

Re: Artikel Zu- und Abschläge

29. Oktober 2011 21:41

Ich möchte die Versandkosten mit dem normalen Auftrag fakturieren.

Das mit dem Häkchen raus nehmen über die Verwaltung und Verkaufseinrichtung ist ein guter Tip. Danke, es hat so funktioniert. Den Code selbst muss ich mir erst noch zu Gemüte führen, komme aber erst nächste Woche dazu. Danke erstmal.

Gruß Manfred

Re: Artikel Zu- und Abschläge

8. November 2011 13:20

So, habe mich nun doch noch mal mit dem Code auseinander gesetzt. Mir ließ es einfach keine Ruhe, dass man in der Verwaltung / Finanzmanagement / Debitoren & Verkauf Einr. das Häckchen "Lieferung bei negativem Lagerbestand sperren" deaktivieren soll, damit Zuschläge direkt in der Autftragserfassung auch gebucht werden können.

Im Quellcode der Codeunit 21:

Code:
      IF ResEntry.FIND('-') THEN REPEAT
        QtyAvailable := QtyAvailable - ResEntry."Quantity (Base)";
      UNTIL ResEntry.NEXT = 0;
      IF (QtyAvailable < "Quantity (Base)") THEN
          ERROR(Text11500,  // cannot be shipped because of inventory
            "Item No.","Location Code","Bin Code","Variant Code",QtyAvailable);


habe ich dem Datenfeld "Quantity (Base)" die Lokale Variablenbezeichnung ResEntry vorangestellt. ResEntry verweist als lokale Variable auf die Tabelle "Reservation Entry" bzw. die "Reservierungsposten". Meines Erachtens kann ohne die vorangestellte Variable gar kein Vergleich durchgeführt werden, so dass es mich wundert, dass es beim Compilieren keine Fehlermeldung "Unbekannte Variable" kommt.

Der geänderte Code sieht somit folgendermaßen aus:

Code:
      IF (QtyAvailable < ResEntry."Quantity (Base)") THEN
        ERROR(Text11500,  // cannot be shipped because of inventory
          "Item No.","Location Code","Bin Code","Variant Code",QtyAvailable);


Nachdem ich diese Änderung vorgenommen habe, konnte ich die Aufträge mit den Zuschlägen endlich buchen. Damit liegt hier wohl ein Fehler im Queltext vor.

Gruß Manfred

Re: [Gelöst] Artikel Zu- und Abschläge

8. November 2011 13:43

MJonas hat geschrieben:Damit liegt hier wohl ein Fehler im Queltext vor.

Das würde ich aber mal so nicht unterschreiben. Wie ist denn dein ResEntry überhaupt gefüllt? Wenn gar nicht, vergleichst du QtyAvailable nur mit Null.

Re: [Gelöst] Artikel Zu- und Abschläge

8. November 2011 15:06

Wie oben schon erwähnt, wird ResEntry mit den Werten aus der Tabelle 337 Reservierungsposten gefüllt. Wenn dort im Datenfeld "Quantity (Base)" für einen Artikel keine Reservierungen gebucht wurden, dann steht der Attributswert selbstverständlich bei 0 und dann ist die Menge QtyAvailable auch tatsächlich für einen Kundenauftrag verfüg bar. Würde auf dem Artikel Reservierungen von z.B. 10 Stück gebucht worden sein, und QtyAvailable wäre z.B. 5 Stück, dann könnte ein Kundenauftrag über 5 Stück nicht ausgeführt werden, da diese Stückzahl reserviert wurde, so dass dann die Fehlermeldung erscheint: Artikel 20252 kann nicht geliefert werden, weil der Bestand an Lagerort "Zentral", usw. nur 0 beträgt.

Re: [Gelöst] Artikel Zu- und Abschläge

8. November 2011 15:26

Kann es sein, das der Zuschlag auf einen anderen Lagerort geht, als der Artikel?

Gruß, Fiddi

Re: [Gelöst] Artikel Zu- und Abschläge

8. November 2011 15:27

Also dieser Teil
Code:
IF ResEntry.FIND('-') THEN REPEAT
        QtyAvailable := QtyAvailable - ResEntry."Quantity (Base)";

ist schon auf deine lokale Variable umgestellt, und direkt danach kommt
Code:
IF (QtyAvailable < ResEntry."Quantity (Base)") THEN
? Du vergleichst also QtyAvailable mit "Quantity (Base)" aus dem letzten Datensatz der Reservierungsposten.

Spätestens bei mehreren Reservierungsposten müsste das doch Schwierigkeiten machen.

Re: [Gelöst] Artikel Zu- und Abschläge

15. November 2011 11:27

Ich vergleich das nicht so, das ist Orginalquellcode von Microsoft. Auf jeden funktioniert es nun, wenn über die Auftragsmaske Zuschläge auf die Artikel gebucht werden.

Re: [Gelöst] Artikel Zu- und Abschläge

15. November 2011 12:21

Das kommt aber aus dem, was du hier geschrieben hast:
MJonas hat geschrieben:Der geänderte Code sieht somit folgendermaßen aus:
Code:
IF (QtyAvailable < ResEntry."Quantity (Base)") THEN
  ERROR(Text11500,  // cannot be shipped because of inventory
        "Item No.","Location Code","Bin Code","Variant Code",QtyAvailable);

Aber ich will's nun auch nicht wochenlang breit treten.