Έκπτωση σε επιβάρυνση που εκχωρούνται σε αποστολές πωλήσεων δεν διανέμονται σύμφωνα με την επιλεγμένη ρύθμιση με αντίστοιχες αξιακές εγγραφές στο Microsoft Dynamics NAV 2009. Ακολουθήστε τα βήματα της ενότητας οι αλλαγές κώδικα για να επιλύσετε αυτό το ζήτημα. Αυτό το ζήτημα παρουσιάζεται στα ακόλουθα προϊόντα:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Προτεινόμενη αντιμετώπιση

Πληροφορίες άμεσης επιδιόρθωσης

Μια υποστηριζόμενη άμεση επιδιόρθωση είναι τώρα διαθέσιμη από τη Microsoft. Ωστόσο, προορίζεται μόνο για τη διόρθωση του ζητήματος που περιγράφεται σε αυτό το άρθρο. Eφαρμόστε τη μόνο σε συστήματα που αντιμετωπίζουν το συγκεκριμένο ζήτημα. Αυτή η επείγουσα επιδιόρθωση ενδέχεται να υποβληθεί σε πρόσθετο έλεγχο. Επομένως, εάν αυτό το ζήτημα δεν σας επηρεάζει ιδιαίτερα, σας συνιστούμε να περιμένετε έως το επόμενο service pack του Microsoft Dynamics NAV 2009 ή την επόμενη έκδοση του Microsoft Dynamics NAV που περιέχει αυτήν την επείγουσα επιδιόρθωση.

Σημείωση Σε ειδικές περιπτώσεις, οι χρεώσεις που υφίστανται κανονικά για κλήσεις υποστήριξης ενδέχεται να να ακυρωθούν, εάν έναν επαγγελματία τεχνικής υποστήριξης για το Microsoft Dynamics και σχετικά προϊόντα προσδιορίζει ότι μια συγκεκριμένη ενημερωμένη έκδοση θα επιλύσει το ζήτημά σας. Οι συνηθισμένες χρεώσεις υποστήριξης θα ισχύει για πρόσθετες ερωτήσεις υποστήριξης και για θέματα που δεν αφορούν τη συγκεκριμένη ενημερωμένη έκδοση.

Πληροφορίες εγκατάστασης

Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση, είτε σιωπηρή είτε ρητή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία διαδικασιών και τον εντοπισμό σφαλμάτων σε αυτές. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας. Ωστόσο, δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.

Σημείωση Πριν να εγκαταστήσετε αυτήν την επείγουσα επιδιόρθωση, επιβεβαιώστε ότι όλοι οι χρήστες προγράμματος-πελάτη Microsoft Dynamics NAV έχουν αποσυνδεθεί από το σύστημα. Αυτό περιλαμβάνει υπηρεσίες Microsoft Dynamics NAV εφαρμογών διακομιστή (NAS). Θα πρέπει να το πρόγραμμα-πελάτη μόνο χρήστη που είναι συνδεδεμένος κατά την εφαρμογή αυτής της επείγουσας επιδιόρθωσης.

Για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση, πρέπει να έχετε μια άδεια χρήσης του προγραμματιστή.

Συνιστούμε ότι ο λογαριασμός χρήστη στο παράθυρο "Συνδέσεις Windows" ή στο παράθυρο συνδέσεις βάσης δεδομένων να αντιστοιχιστεί το "SUPER" αναγνωριστικό ρόλου. Εάν ο λογαριασμός χρήστη δεν μπορεί να αντιστοιχιστεί το Αναγνωριστικό ρόλου "SUPER", πρέπει να επαληθεύσετε ότι ο λογαριασμός χρήστη έχει τα ακόλουθα δικαιώματα:

  • Το δικαίωμα "Τροποποίηση" για το αντικείμενο που θα αλλάξετε.

  • Τα δικαιώματα εκτέλεσης για το αντικείμενο 5210 Αναγνωριστικό αντικειμένου συστήματος και για την 9015 Αναγνωριστικό αντικειμένου συστήματος

    το αντικείμενο.

Σημείωση Δεν πρέπει να έχετε δικαιώματα για τους χώρους αποθήκευσης δεδομένων, εκτός και αν έχετε να εκτελέσετε επιδιόρθωση δεδομένων.

Αλλαγές κώδικα

Σημείωση Πάντα δοκιμή κώδικα διορθώνει σε ελεγχόμενο περιβάλλον πριν να εφαρμόσετε τις ενημερώσεις κώδικα στους υπολογιστές παραγωγής.

Για να επιλύσετε αυτό το ζήτημα, ακολουθήστε τα εξής βήματα:

  1. Αλλάξτε τον κωδικό στις ιδιότητες στη μονάδα κώδικα καταχώρηση πωλήσεων (80) ως εξής:
    Υπάρχοντα κωδικό 1

    ...PostJobContractLine(JobTaskSalesLine,TempJnlLineDim2);

    END;

    SalesLine.Type::"Charge (Item)":

    IF Invoice OR ItemChargeAssgntOnly THEN BEGIN

    // Delete the following line.
    ItemJnlRollRndg := FALSE;
    // End of the deleted line.

    ClearItemChargeAssgntFilter;

    TempItemChargeAssgntSales.SETCURRENTKEY("Applies-to Doc. Type");

    TempItemChargeAssgntSales.SETRANGE("Document Line No.",SalesLine."Line No.");

    IF TempItemChargeAssgntSales.FINDSET THEN
    ...

    Αντικατάσταση κώδικα 1

    ...PostJobContractLine(JobTaskSalesLine,TempJnlLineDim2);

    END;

    SalesLine.Type::"Charge (Item)":

    IF Invoice OR ItemChargeAssgntOnly THEN BEGIN

    // Add the following line.
    ItemJnlRollRndg := TRUE;
    // End of the added line.

    ClearItemChargeAssgntFilter;

    TempItemChargeAssgntSales.SETCURRENTKEY("Applies-to Doc. Type");

    TempItemChargeAssgntSales.SETRANGE("Document Line No.",SalesLine."Line No.");

    IF TempItemChargeAssgntSales.FINDSET THEN
    ...

    Υπάρχοντα κώδικα 2

    ...GenJnlLineDocNo := TempItemChargeAssgntSales."Applies-to Doc. No.";

    CASE TempItemChargeAssgntSales."Applies-to Doc. Type" OF

    TempItemChargeAssgntSales."Applies-to Doc. Type"::Shipment:

    BEGIN

    // Delete the following line.
    PostItemChargePerShpt(SalesLine);

    TempItemChargeAssgntSales.MARK(TRUE);

    END;

    TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":

    BEGIN
    ...

    Αντικατάσταση κώδικα 2

    ...GenJnlLineDocNo := TempItemChargeAssgntSales."Applies-to Doc. No.";

    CASE TempItemChargeAssgntSales."Applies-to Doc. Type" OF

    TempItemChargeAssgntSales."Applies-to Doc. Type"::Shipment:

    BEGIN

    // Add the following lines.
    PostItemChargePerShpt(SalesLine,SalesLine."Inv. Discount Amount",

    SalesLine.Quantity,SalesLine."Line Discount Amount",SalesLine."Line Amount");
    // End of the added lines.

    TempItemChargeAssgntSales.MARK(TRUE);

    END;

    TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":

    BEGIN
    ...

    Υπάρχοντα κώδικα 3

    ...TempItemChargeAssgntSales.MARK(TRUE);

    END;

    TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":

    BEGIN

    // Delete the following line.
    PostItemChargePerRetRcpt(SalesLine);

    TempItemChargeAssgntSales.MARK(TRUE);

    END;

    TempItemChargeAssgntSales."Applies-to Doc. Type"::Order,

    TempItemChargeAssgntSales."Applies-to Doc. Type"::Invoice:
    ...

    Αντικατάσταση κώδικα 3

    ...TempItemChargeAssgntSales.MARK(TRUE);

    END;

    TempItemChargeAssgntSales."Applies-to Doc. Type"::"Return Receipt":

    BEGIN

    // Add the following lines.
    PostItemChargePerRetRcpt(SalesLine,SalesLine."Inv. Discount Amount",

    SalesLine.Quantity,SalesLine."Line Discount Amount",SalesLine."Line Amount");
    // End of the added lines.

    TempItemChargeAssgntSales.MARK(TRUE);

    END;

    TempItemChargeAssgntSales."Applies-to Doc. Type"::Order,

    TempItemChargeAssgntSales."Applies-to Doc. Type"::Invoice:
    ...
  2. Αλλάξτε τον κωδικό στη συνάρτηση PostItemChargePerShpt στη μονάδα κώδικα καταχώρηση πωλήσεων (80) ως εξής:
    Υπάρχοντα κωδικό 1

    ...END;

    END;

    END;


    // Delete the following line.
    LOCAL PROCEDURE PostItemChargePerShpt@5807(SalesLine@1000 : Record 37);

    VAR

    SalesShptLine@1003 : Record 111;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...

    Αντικατάσταση κώδικα 1

    ...END;

    END;

    END;


    // Add the following line.
    LOCAL PROCEDURE PostItemChargePerShpt@5807(SalesLine@1000 : Record 37;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);

    VAR

    SalesShptLine@1003 : Record 111;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...

    Υπάρχοντα κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Delete the following line.
    AmountToAssign,QtyToAssign);

    NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Αντικατάσταση κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Add the following lines.
    AmountToAssign,QtyToAssign,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Υπάρχοντα κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Delete the following line.
    NonDistrAmountToAssign,NonDistrQtyToAssign);

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    PostItemCharge(SalesLine,

    SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",
    ...

    Αντικατάσταση κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Add the following lines.
    NonDistrAmountToAssign,NonDistrQtyToAssign,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    PostItemCharge(SalesLine,

    SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",
    ...

    Υπάρχοντα κωδικό 4

    ...END ELSE

    PostItemCharge(SalesLine,

    SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",

    TempItemChargeAssgntSales."Amount to Assign",

    // Delete the following lines.
    TempItemChargeAssgntSales."Qty. to Assign");

    END;



    LOCAL PROCEDURE PostItemChargePerRetRcpt@5810(SalesLine@1000 : Record 37);
    // End of the deleted lines.

    VAR

    ReturnRcptLine@1002 : Record 6661;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...

    Αντικατάσταση κώδικα 4

    ...END ELSE

    PostItemCharge(SalesLine,

    SalesShptLine."Item Shpt. Entry No.",SalesShptLine."Quantity (Base)",

    TempItemChargeAssgntSales."Amount to Assign",

    // Add the following lines.
    TempItemChargeAssgntSales."Qty. to Assign",TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);

    END;



    LOCAL PROCEDURE PostItemChargePerRetRcpt@5810(SalesLine@1000 : Record 37;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
    // End of the added lines.

    VAR

    ReturnRcptLine@1002 : Record 6661;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...
  3. Αλλάξτε τον κωδικό στη συνάρτηση PostItemChargePerRetRcpt στη μονάδα κώδικα καταχώρηση πωλήσεων (80) ως εξής:
    Υπάρχοντα κωδικό 1

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Delete the following line.
    AmountToAssign,QtyToAssign);

    NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Αντικατάσταση κώδικα 1

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Add the following lines.
    AmountToAssign,QtyToAssign,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    NonDistrQuantity := NonDistrQuantity - ABS(TempItemLedgEntry.Quantity);

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Υπάρχοντα κώδικα 2

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Delete the following line.
    NonDistrAmountToAssign,NonDistrQtyToAssign);

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    PostItemCharge(SalesLine,

    ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
    ...

    Αντικατάσταση κώδικα 2

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(SalesLine,

    TempItemLedgEntry."Entry No.",ABS(TempItemLedgEntry.Quantity),

    // Add the following lines.
    NonDistrAmountToAssign,NonDistrQtyToAssign,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    PostItemCharge(SalesLine,

    ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",
    ...

    Υπάρχοντα κώδικα 3

    ...END ELSE

    PostItemCharge(SalesLine,

    ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",

    TempItemChargeAssgntSales."Amount to Assign",

    // Delete the following line.
    TempItemChargeAssgntSales."Qty. to Assign")

    END;



    LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;

    VAR
    ...

    Αντικατάσταση κώδικα 3

    ...END ELSE

    PostItemCharge(SalesLine,

    ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",

    TempItemChargeAssgntSales."Amount to Assign",

    // Add the following lines.
    TempItemChargeAssgntSales."Qty. to Assign",TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)
    // End of the added lines.

    END;



    LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;

    VAR
    ...
  4. Αλλάξτε τον κωδικό στη συνάρτηση PostItemCharge στη μονάδα κώδικα καταχώρηση πωλήσεων (80) ως εξής:
    Υπάρχοντα κωδικό 1

    ...TempValueEntryRelation.DELETEALL;

    END;

    END;


    // Delete the following line.
    PROCEDURE PostItemCharge@42(SalesLine@1005 : Record 37;ItemEntryNo@1004 : Integer;QuantityBase@1003 : Decimal;AmountToAssign@1002 : Decimal;QtyToAssign@1001 : Decimal);

    VAR

    DummyTrackingSpecification@1000 : Record 336;

    BEGIN

    WITH TempItemChargeAssgntSales DO BEGIN
    ...

    Αντικατάσταση κώδικα 1

    ...TempValueEntryRelation.DELETEALL;

    END;

    END;


    // Add the following line.
    PROCEDURE PostItemCharge@42(SalesLine@1005 : Record 37;ItemEntryNo@1004 : Integer;QuantityBase@1003 : Decimal;AmountToAssign@1002 : Decimal;QtyToAssign@1001 : Decimal;VAR TotalInvDiscAmtRemaining@1006 : Decimal;VAR TotalQtyRemaining@1007 : Decimal;VAR TotalLineDiscAmtRemaining@1008 : Decimal;VAR TotalLineAmtRemaining@1009 : Decimal);

    VAR

    DummyTrackingSpecification@1000 : Record 336;

    BEGIN

    WITH TempItemChargeAssgntSales DO BEGIN
    ...

    Υπάρχοντα κώδικα 2

    ...SalesLine.Amount :=

    CurrExchRate.ExchangeAmtFCYToLCY(

    UseDate,SalesHeader."Currency Code",TotalChargeAmt,SalesHeader."Currency Factor");

    SalesLine."Inv. Discount Amount" := ROUND(

    // Delete the following lines.
    SalesLine."Inv. Discount Amount" / SalesLine.Quantity * QtyToAssign,

    GLSetup."Amount Rounding Precision");
    // End of the deleted lines.

    SalesLine.Amount := ROUND(SalesLine.Amount,GLSetup."Amount Rounding Precision") - TotalChargeAmtLCY;

    IF SalesHeader."Currency Code" <> '' THEN

    TotalChargeAmtLCY := TotalChargeAmtLCY + SalesLine.Amount;

    SalesLine."Unit Cost (LCY)" := ROUND(
    ...

    Αντικατάσταση κώδικα 2

    ...SalesLine.Amount :=

    CurrExchRate.ExchangeAmtFCYToLCY(

    UseDate,SalesHeader."Currency Code",TotalChargeAmt,SalesHeader."Currency Factor");

    SalesLine."Inv. Discount Amount" := ROUND(

    // Add the following lines.
    TotalInvDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,

    GLSetup."Amount Rounding Precision");

    SalesLine."Line Discount Amount" := ROUND(

    TotalLineDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,

    GLSetup."Amount Rounding Precision");

    SalesLine."Line Amount" := ROUND(

    TotalLineAmtRemaining / TotalQtyRemaining * QtyToAssign,

    GLSetup."Amount Rounding Precision");

    TotalInvDiscAmtRemaining := TotalInvDiscAmtRemaining - SalesLine."Inv. Discount Amount";

    TotalLineDiscAmtRemaining := TotalLineDiscAmtRemaining - SalesLine."Line Discount Amount";

    TotalLineAmtRemaining := TotalLineAmtRemaining - SalesLine."Line Amount";

    TotalQtyRemaining := TotalQtyRemaining - QtyToAssign;

    // End of the added lines.

    SalesLine.Amount := ROUND(SalesLine.Amount,GLSetup."Amount Rounding Precision") - TotalChargeAmtLCY;

    IF SalesHeader."Currency Code" <> '' THEN

    TotalChargeAmtLCY := TotalChargeAmtLCY + SalesLine.Amount;

    SalesLine."Unit Cost (LCY)" := ROUND(
    ...
  5. Να αλλάξετε τον κωδικό στις ιδιότητες σε thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής:
    Υπάρχοντα κωδικό 1

    ...3:

    ERROR(Text015);

    PurchLine.Type::"Charge (Item)":

    IF Invoice OR ItemChargeAssgntOnly THEN BEGIN

    // Delete the following line.
    ItemJnlRollRndg := FALSE;

    ClearItemChargeAssgntFilter;

    TempItemChargeAssgntPurch.SETCURRENTKEY("Applies-to Doc. Type");

    TempItemChargeAssgntPurch.SETRANGE("Document Line No.",PurchLine."Line No.");

    IF TempItemChargeAssgntPurch.FINDSET THEN
    ...

    Αντικατάσταση κώδικα 1

    ...3:

    ERROR(Text015);

    PurchLine.Type::"Charge (Item)":

    IF Invoice OR ItemChargeAssgntOnly THEN BEGIN

    // Add the following line.
    ItemJnlRollRndg := TRUE;

    ClearItemChargeAssgntFilter;

    TempItemChargeAssgntPurch.SETCURRENTKEY("Applies-to Doc. Type");

    TempItemChargeAssgntPurch.SETRANGE("Document Line No.",PurchLine."Line No.");

    IF TempItemChargeAssgntPurch.FINDSET THEN
    ...

    Υπάρχοντα κώδικα 2

    ...GenJnlLineDocNo := TempItemChargeAssgntPurch."Applies-to Doc. No.";

    CASE TempItemChargeAssgntPurch."Applies-to Doc. Type" OF

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::Receipt:

    BEGIN

    // Delete the following line.
    PostItemChargePerRcpt(PurchLine);

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":

    BEGIN
    ...

    Αντικατάσταση κώδικα 2

    ...GenJnlLineDocNo := TempItemChargeAssgntPurch."Applies-to Doc. No.";

    CASE TempItemChargeAssgntPurch."Applies-to Doc. Type" OF

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::Receipt:

    BEGIN

    // Add the following lines.
    PostItemChargePerRcpt(PurchLine,PurchLine."Inv. Discount Amount",

    PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
    // End of the added lines.

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":

    BEGIN
    ...

    Υπάρχοντα κώδικα 3

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":

    BEGIN

    // Delete the following line.
    PostItemChargePerTransfer(PurchLine);

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":

    BEGIN
    ...

    Αντικατάσταση κώδικα 3

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Transfer Receipt":

    BEGIN

    // Add the following lines.
    PostItemChargePerTransfer(PurchLine,PurchLine."Inv. Discount Amount",

    PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
    // End of the added lines.

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":

    BEGIN
    ...

    Υπάρχοντα κωδικό 4

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":

    BEGIN

    // Delete the following line.
    PostItemChargePerRetShpt(PurchLine);

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":

    BEGIN
    ...

    Αντικατάσταση κώδικα 4

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Shipment":

    BEGIN

    // Add the following lines.
    PostItemChargePerRetShpt(PurchLine,PurchLine."Inv. Discount Amount",

    PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
    // End of the added lines.

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":

    BEGIN
    ...

    Υπάρχοντα κώδικα 5

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":

    BEGIN

    // Delete the following line.
    PostItemChargePerSalesShpt(PurchLine);

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":

    BEGIN
    ...

    Αντικατάσταση κώδικα 5

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Sales Shipment":

    BEGIN

    // Add the following lines.
    PostItemChargePerSalesShpt(PurchLine,PurchLine."Inv. Discount Amount",

    PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
    // End of the added lines.

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":

    BEGIN
    ...

    Υπάρχοντα κώδικα 6

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":

    BEGIN

    // Delete the following line.
    PostItemChargePerRetRcpt(PurchLine);

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::Order,

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::Invoice:
    ...

    Αντικατάσταση κώδικα 6

    ...TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::"Return Receipt":

    BEGIN

    // Add the following lines.
    PostItemChargePerRetRcpt(PurchLine,PurchLine."Inv. Discount Amount",

    PurchLine.Quantity,PurchLine."Line Discount Amount",PurchLine."Line Amount");
    // End of the added lines.

    TempItemChargeAssgntPurch.MARK(TRUE);

    END;

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::Order,

    TempItemChargeAssgntPurch."Applies-to Doc. Type"::Invoice:
    ...
  6. Να αλλάξετε τον κωδικό στη συνάρτηση PostItemChargePerRcpt στο thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής:
    Υπάρχοντα κωδικό 1

    ...END;

    END;

    END;


    // Delete the following line.
    LOCAL PROCEDURE PostItemChargePerRcpt@5807(PurchLine@1000 : Record 39);

    VAR

    PurchRcptLine@1002 : Record 121;

    TempItemLedgEntry@1003 : TEMPORARY Record 32;

    ItemTrackingMgt@1005 : Codeunit 6500;
    ...

    Αντικατάσταση κώδικα 1

    ...END;

    END;

    END;


    // Add the following line.
    LOCAL PROCEDURE PostItemChargePerRcpt@5807(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);

    VAR

    PurchRcptLine@1002 : Record 121;

    TempItemLedgEntry@1003 : TEMPORARY Record 32;

    ItemTrackingMgt@1005 : Codeunit 6500;
    ...

    Υπάρχοντα κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    AmountToAssign * Sign,QtyToAssign,PurchRcptLine."Indirect Cost %");

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Αντικατάσταση κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    AmountToAssign * Sign,QtyToAssign,PurchRcptLine."Indirect Cost %",

    TotalInvDiscAmtRemaining,TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Υπάρχοντα κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,PurchRcptLine."Indirect Cost %");

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Αντικατάσταση κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,PurchRcptLine."Indirect Cost %",

    TotalInvDiscAmtRemaining,TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Υπάρχοντα κωδικό 4

    ...PostItemCharge(PurchLine,

    PurchRcptLine."Item Rcpt. Entry No.",PurchRcptLine."Quantity (Base)",

    TempItemChargeAssgntPurch."Amount to Assign" * Sign,

    TempItemChargeAssgntPurch."Qty. to Assign",

    // Delete the following lines.
    PurchRcptLine."Indirect Cost %");

    END;



    LOCAL PROCEDURE PostItemChargePerRetShpt@5811(PurchLine@1000 : Record 39);
    // End of the deleted lines.

    VAR

    ReturnShptLine@1002 : Record 6651;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...

    Αντικατάσταση κώδικα 4

    ...PostItemCharge(PurchLine,

    PurchRcptLine."Item Rcpt. Entry No.",PurchRcptLine."Quantity (Base)",

    TempItemChargeAssgntPurch."Amount to Assign" * Sign,

    TempItemChargeAssgntPurch."Qty. to Assign",

    // Add the following lines.
    PurchRcptLine."Indirect Cost %",TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);

    END;



    LOCAL PROCEDURE PostItemChargePerRetShpt@5811(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
    // End of the added lines.

    VAR

    ReturnShptLine@1002 : Record 6651;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...
  7. Να αλλάξετε τον κωδικό στη συνάρτηση PostItemChargePerRetShpt στο thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής:
    Υπάρχοντα κωδικό 1

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    AmountToAssign * Sign,QtyToAssign,ReturnShptLine."Indirect Cost %");

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Αντικατάσταση κώδικα 1

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    AmountToAssign * Sign,QtyToAssign,ReturnShptLine."Indirect Cost %",TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Υπάρχοντα κώδικα 2

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,ReturnShptLine."Indirect Cost %");

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Αντικατάσταση κώδικα 2

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,ReturnShptLine."Indirect Cost %",TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Υπάρχοντα κώδικα 3

    ...PostItemCharge(PurchLine,

    ReturnShptLine."Item Shpt. Entry No.",-ReturnShptLine."Quantity (Base)",

    ABS(TempItemChargeAssgntPurch."Amount to Assign") * Sign,

    TempItemChargeAssgntPurch."Qty. to Assign",

    // Delete the following lines.
    ReturnShptLine."Indirect Cost %");

    END;



    LOCAL PROCEDURE PostItemChargePerTransfer@23(PurchLine@1000 : Record 39);
    // End of the deleted lines.

    VAR

    TransRcptLine@1002 : Record 5747;

    ItemApplnEntry@1003 : Record 339;

    DummyTrackingSpecification@1001 : Record 336;
    ...

    Αντικατάσταση κώδικα 3

    ...PostItemCharge(PurchLine,

    ReturnShptLine."Item Shpt. Entry No.",-ReturnShptLine."Quantity (Base)",

    ABS(TempItemChargeAssgntPurch."Amount to Assign") * Sign,

    TempItemChargeAssgntPurch."Qty. to Assign",

    // Add the following lines.
    ReturnShptLine."Indirect Cost %",TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);

    END;



    LOCAL PROCEDURE PostItemChargePerTransfer@23(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1016 : Decimal;VAR TotalQtyRemaining@1017 : Decimal;VAR TotalLineDiscAmtRemaining@1018 : Decimal;VAR TotalLineAmtRemaining@1019 : Decimal);
    // End of the added lines.

    VAR

    TransRcptLine@1002 : Record 5747;

    ItemApplnEntry@1003 : Record 339;

    DummyTrackingSpecification@1001 : Record 336;
    ...
  8. Να αλλάξετε τον κωδικό στη συνάρτηση PostItemChargePerTransfer στο thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής
    Υπάρχοντα κώδικα

    ...PurchLine."Bin Code" := '';

    PurchLine."Line No." := "Document Line No.";



    IF TransRcptLine."Item Rcpt. Entry No." = 0 THEN

    // Delete the following line.
    PostItemChargePerITTransfer(PurchLine,TransRcptLine)

    ELSE BEGIN

    TotalAmountToPostFCY := "Amount to Assign";

    IF PurchHeader."Currency Code" <> '' THEN

    TotalAmountToPostLCY :=
    ...

    Αντικατάσταση κώδικα

    ...PurchLine."Bin Code" := '';

    PurchLine."Line No." := "Document Line No.";



    IF TransRcptLine."Item Rcpt. Entry No." = 0 THEN

    // Add the following lines.
    PostItemChargePerITTransfer(PurchLine,TransRcptLine,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)
    // End of the added lines.

    ELSE BEGIN

    TotalAmountToPostFCY := "Amount to Assign";

    IF PurchHeader."Currency Code" <> '' THEN

    TotalAmountToPostLCY :=
    ...
  9. Να αλλάξετε τον κωδικό στη συνάρτηση PostItemChargePerITTransfer στο thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής:
    Υπάρχοντα κωδικό 1

    ...END;

    END;

    END;


    // Delete the following line.
    LOCAL PROCEDURE PostItemChargePerITTransfer@43(PurchLine@1000 : Record 39;TransRcptLine@1017 : Record 5747);

    VAR

    TempItemLedgEntry@1016 : TEMPORARY Record 32;

    ItemTrackingMgt@1001 : Codeunit 6500;

    Factor@1023 : Decimal;
    ...

    Αντικατάσταση κώδικα 1

    ...END;

    END;

    END;


    // Add the following line.
    LOCAL PROCEDURE PostItemChargePerITTransfer@43(PurchLine@1000 : Record 39;TransRcptLine@1017 : Record 5747;VAR TotalInvDiscAmtRemaining@1026 : Decimal;VAR TotalQtyRemaining@1024 : Decimal;VAR TotalLineDiscAmtRemaining@1025 : Decimal;VAR TotalLineAmtRemaining@1030 : Decimal);

    VAR

    TempItemLedgEntry@1016 : TEMPORARY Record 32;

    ItemTrackingMgt@1001 : Codeunit 6500;

    Factor@1023 : Decimal;
    ...

    Υπάρχοντα κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    AmountToAssign,QtyToAssign,0);

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Αντικατάσταση κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    AmountToAssign,QtyToAssign,0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Υπάρχοντα κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    NonDistrAmountToAssign,NonDistrQtyToAssign,0);

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042);

    END;
    ...

    Αντικατάσταση κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    NonDistrAmountToAssign,NonDistrQtyToAssign,0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042);

    END;
    ...
  10. Να αλλάξετε τον κωδικό στη συνάρτηση PostItemChargePerSalesShpt στο thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής:
    Υπάρχοντα κωδικό 1

    ...ERROR(Text042);

    END;

    END;


    // Delete the following line.
    LOCAL PROCEDURE PostItemChargePerSalesShpt@41(PurchLine@1000 : Record 39);

    VAR

    SalesShptLine@1002 : Record 111;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...

    Αντικατάσταση κώδικα 1

    ...ERROR(Text042);

    END;

    END;


    // Add the following line.
    LOCAL PROCEDURE PostItemChargePerSalesShpt@41(PurchLine@1000 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);

    VAR

    SalesShptLine@1002 : Record 111;

    TempItemLedgEntry@1010 : TEMPORARY Record 32;

    ItemTrackingMgt@1009 : Codeunit 6500;
    ...

    Υπάρχοντα κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    AmountToAssign * Sign,QtyToAssign,0);

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Αντικατάσταση κώδικα 2

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    AmountToAssign * Sign,QtyToAssign,0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Υπάρχοντα κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0);

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Αντικατάσταση κώδικα 3

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Υπάρχοντα κωδικό 4

    ...ELSE

    PostItemCharge(PurchLine,

    SalesShptLine."Item Shpt. Entry No.",-SalesShptLine."Quantity (Base)",

    TempItemChargeAssgntPurch."Amount to Assign" * Sign,

    // Delete the following lines.
    TempItemChargeAssgntPurch."Qty. to Assign",0)

    END;



    PROCEDURE PostItemChargePerRetRcpt@37(PurchLine@1001 : Record 39);
    // End of the deleted lines.

    VAR

    ReturnRcptLine@1000 : Record 6661;

    TempItemLedgEntry@1011 : TEMPORARY Record 32;

    ItemTrackingMgt@1010 : Codeunit 6500;
    ...

    Αντικατάσταση κώδικα 4

    ...ELSE

    PostItemCharge(PurchLine,

    SalesShptLine."Item Shpt. Entry No.",-SalesShptLine."Quantity (Base)",

    TempItemChargeAssgntPurch."Amount to Assign" * Sign,

    // Add the following lines.
    TempItemChargeAssgntPurch."Qty. to Assign",0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)

    END;



    PROCEDURE PostItemChargePerRetRcpt@37(PurchLine@1001 : Record 39;VAR TotalInvDiscAmtRemaining@1012 : Decimal;VAR TotalQtyRemaining@1013 : Decimal;VAR TotalLineDiscAmtRemaining@1014 : Decimal;VAR TotalLineAmtRemaining@1015 : Decimal);
    // End of the added lines.

    VAR

    ReturnRcptLine@1000 : Record 6661;

    TempItemLedgEntry@1011 : TEMPORARY Record 32;

    ItemTrackingMgt@1010 : Codeunit 6500;
    ...
  11. Να αλλάξετε τον κωδικό στη συνάρτηση PostItemChargePerRetRcpt στο thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής:
    Υπάρχοντα κωδικό 1

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    AmountToAssign * Sign,QtyToAssign,0);

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Αντικατάσταση κώδικα 1

    ...AmountToAssign := ROUND(NonDistrAmountToAssign * Factor,GLSetup."Amount Rounding Precision");

    IF Factor < 1 THEN BEGIN

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    AmountToAssign * Sign,QtyToAssign,0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    NonDistrQuantity := NonDistrQuantity - TempItemLedgEntry.Quantity;

    NonDistrQtyToAssign := NonDistrQtyToAssign - QtyToAssign;

    NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time
    ...

    Υπάρχοντα κώδικα 2

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Delete the following line.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0);

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Αντικατάσταση κώδικα 2

    ...NonDistrAmountToAssign := NonDistrAmountToAssign - AmountToAssign;

    END ELSE // the last time

    PostItemCharge(PurchLine,

    TempItemLedgEntry."Entry No.",TempItemLedgEntry.Quantity,

    // Add the following lines.
    NonDistrAmountToAssign * Sign,NonDistrQtyToAssign,0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining);
    // End of the added lines.

    UNTIL TempItemLedgEntry.NEXT = 0;

    END ELSE

    ERROR(Text042)

    ELSE
    ...

    Υπάρχοντα κώδικα 3

    ...ELSE

    PostItemCharge(PurchLine,

    ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",

    TempItemChargeAssgntPurch."Amount to Assign" * Sign,

    // Delete the following line.
    TempItemChargeAssgntPurch."Qty. to Assign",0)

    END;



    LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;

    VAR
    ...

    Αντικατάσταση κώδικα 3

    ...ELSE

    PostItemCharge(PurchLine,

    ReturnRcptLine."Item Rcpt. Entry No.",ReturnRcptLine."Quantity (Base)",

    TempItemChargeAssgntPurch."Amount to Assign" * Sign,

    // Add the following lines.
    TempItemChargeAssgntPurch."Qty. to Assign",0,TotalInvDiscAmtRemaining,

    TotalQtyRemaining,TotalLineDiscAmtRemaining,TotalLineAmtRemaining)
    // End of the added lines.

    END;



    LOCAL PROCEDURE PostAssocItemJnlLine@3(QtyToBeShipped@1000 : Decimal;QtyToBeShippedBase@1001 : Decimal) : Integer;

    VAR
    ...
  12. Να αλλάξετε τον κωδικό στη συνάρτηση PostItemCharge στο thePurch.-καταχώρηση μονάδα κώδικα (90) ως εξής:
    Υπάρχοντα κωδικό 1

    ...TempValueEntryRelation.DELETEALL;

    END;

    END;


    // Delete the following line.
    LOCAL PROCEDURE PostItemCharge@42(PurchLine@1000 : Record 39;ItemEntryNo@1004 : Integer;QuantityBase@1005 : Decimal;AmountToAssign@1006 : Decimal;QtyToAssign@1007 : Decimal;IndirectCostPct@1008 : Decimal);

    VAR

    DummyTrackingSpecification@1001 : Record 336;

    BEGIN

    WITH TempItemChargeAssgntPurch DO BEGIN
    ...

    Αντικατάσταση κώδικα 1

    ...TempValueEntryRelation.DELETEALL;

    END;

    END;


    // Add the following line.
    LOCAL PROCEDURE PostItemCharge@42(PurchLine@1000 : Record 39;ItemEntryNo@1004 : Integer;QuantityBase@1005 : Decimal;AmountToAssign@1006 : Decimal;QtyToAssign@1007 : Decimal;IndirectCostPct@1008 : Decimal;VAR TotalInvDiscAmtRemaining@1009 : Decimal;VAR TotalQtyRemaining@1010 : Decimal;VAR TotalLineDiscAmtRemaining@1011 : Decimal;VAR TotalLineAmtRemaining@1012 : Decimal);

    VAR

    DummyTrackingSpecification@1001 : Record 336;

    BEGIN

    WITH TempItemChargeAssgntPurch DO BEGIN
    ...

    Υπάρχοντα κώδικα 2

    ...ROUND(

    PurchLine.Amount / QuantityBase,GLSetup."Unit-Amount Rounding Precision");



    PurchLine."Inv. Discount Amount" := ROUND(

    // Delete the following lines.
    PurchLine."Inv. Discount Amount" / PurchLine.Quantity * QtyToAssign,

    GLSetup."Amount Rounding Precision");



    PurchLine."Line Discount Amount" := ROUND(

    PurchLine."Line Discount Amount" / PurchLine.Quantity * QtyToAssign,

    GLSetup."Amount Rounding Precision");
    // End of the deleted lines.

    PostItemJnlLine(

    PurchLine,

    0,0,

    QuantityBase,QuantityBase,
    ...

    Αντικατάσταση κώδικα 2

    ...ROUND(

    PurchLine.Amount / QuantityBase,GLSetup."Unit-Amount Rounding Precision");



    PurchLine."Inv. Discount Amount" := ROUND(

    // Add the following lines.
    TotalInvDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,

    GLSetup."Amount Rounding Precision");



    PurchLine."Line Discount Amount" := ROUND(

    TotalLineDiscAmtRemaining / TotalQtyRemaining * QtyToAssign,

    GLSetup."Amount Rounding Precision");

    PurchLine."Line Amount" := ROUND(

    TotalLineAmtRemaining / TotalQtyRemaining * QtyToAssign,

    GLSetup."Amount Rounding Precision");

    TotalInvDiscAmtRemaining := TotalInvDiscAmtRemaining - PurchLine."Inv. Discount Amount";

    TotalLineDiscAmtRemaining := TotalLineDiscAmtRemaining - PurchLine."Line Discount Amount";

    TotalLineAmtRemaining := TotalLineAmtRemaining - PurchLine."Line Amount";

    TotalQtyRemaining := TotalQtyRemaining - QtyToAssign;
    // End of the added lines.


    PostItemJnlLine(

    PurchLine,

    0,0,

    QuantityBase,QuantityBase,
    ...


Προϋποθέσεις

Πρέπει να έχετε ένα από τα ακόλουθα προϊόντα, για να εφαρμόσετε αυτήν την επείγουσα επιδιόρθωση:

  • Microsoft Dynamics NAV 2009 R2

  • Microsoft Dynamics NAV 2009 SP1

Πληροφορίες κατάργησης

Δεν μπορείτε να καταργήσετε αυτήν την επείγουσα επιδιόρθωση.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Σημείωση Αυτό είναι ένα άρθρο "ΤΑΧΕΙΑΣ ΔΗΜΟΣΙΕΥΣΗΣ" που έχει δημιουργηθεί απευθείας από την εταιρεία υποστήριξης της Microsoft. Οι πληροφορίες που περιέχονται στο παρόν έγγραφο παρέχονται ως έχουν, ως απάντηση σε ζητήματα που προέκυψαν. Ως αποτέλεσμα της ταχύτητας διαθεσιμότητάς του, το υλικό ενδέχεται να περιλαμβάνει τυπογραφικά λάθη και μπορεί να αναθεωρηθεί οποιαδήποτε στιγμή, χωρίς προειδοποίηση. Για άλλα θέματα, ανατρέξτε στην ενότητα " Όροι χρήσης".

Χρειάζεστε περισσότερη βοήθεια;

Αναπτύξτε τις δεξιότητές σας
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Συμμετοχή στο Microsoft Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;

Σας ευχαριστούμε για τα σχόλιά σας!

×