Microsoft Dynamics 탐색 2009에서 해당 값 항목을 선택한 항목에 따라에서 할인해 판매 배송에 할당 된 항목 충전 분산 되지 않습니다. 이 문제를 해결 하려면 코드 변경 섹션의 단계를 따릅니다. 다음 제품에이 문제가 발생합니다.
-
Microsoft Dynamics 탐색 2009 R2
-
Microsoft Dynamics 탐색 2009 서비스 팩 1 (SP1)
해결 방법
핫픽스 정보
지원 되는 핫픽스를 Microsoft에서 출시 되었습니다. 이 문서에 설명 되어 있는 문제를 해결 하기 위한 것일 뿐입니다. 이러한 특정 문제가 발생 한 시스템에만 적용 됩니다. 이 핫픽스는 추가 테스트가 필요할 수 있습니다. 따라서이 문제의 영향이 심각 하지 다음 Microsoft Dynamics 탐색 2009 서비스 팩 또는이 핫픽스가 포함 된 다음 Microsoft Dynamics 탐색 버전까지 기다리는 것이 좋습니다.
참고: 특별 한 경우 일반적으로 호출 취소 될 수도 있습니다 경우 기술 지원 담당자는 Microsoft Dynamics 및 관련 된 제품에 대 한 지원에 따른 비용이 특정 업데이트로 문제를 해결할 수 있다고 결정 합니다. 추가 지원 질문과 특정 업데이트가 필요 하지 않은 문제에는 일반 지원 비용이 적용 됩니다.
설치 정보
Microsoft는 모든 보증, 그림에 대 한 묵시적인 보증. 이 포함 되지만 상품성 또는 특정 목적에의 적합성의 묵시적된 보증에 국한 되지는 않습니다. 이 문서는 작성 하 고 프로시저를 디버깅할 데 사용 되는 도구 및 여기서 설명 하는 프로그래밍 언어에 익숙한 가정 합니다. Microsoft 지원 엔지니어는 특정 프로시저의 기능을 설명할 수 있습니다. 그러나이 예제에서는 추가 기능을 제공 하거나 특정 요구 사항에 맞도록 프로시저를 구성 하려면 수정 하지 않습니다.
참고: 이 핫픽스를 설치 하기 전에 모든 Microsoft Dynamics 탐색 클라이언트 사용자가 시스템 로그를 확인 하십시오. Microsoft Dynamics 탐색 응용 프로그램 서버 (NAS) 서비스가 포함 됩니다. 이 핫픽스를 구현할 때 로그온 되어 있는 사용자만 클라이언트 수 있습니다.
이 핫픽스를 구현 하려면 개발자 라이센스가 있어야 합니다.
것을 권장 합니다 Windows 로그인 창이 나 데이터베이스 로그인 창에서 사용자 계정 "SUPER" 역할 ID를 할당할 수 사용자 계정 "SUPER" 역할 ID를 할당할 수 없습니다, 사용자 계정에 다음 권한이 있는지 확인 해야 합니다.
-
변경할 수 있는 개체에 대 한 수정 권한이 있습니다.
-
시스템 개체 ID 9015 및 시스템 개체 ID 5210 개체에 대 한 실행 권한
개체입니다.
참고: 데이터 복구를 수행 해야 할 경우가 아니면 데이터 저장소에 대 한 권한을 가질 필요가 없습니다.
코드 변경 사항
참고: 항상 테스트 코드 수정 제어 된 환경에 적용 하기 전에 프로덕션 컴퓨터에 수정 프로그램입니다.
이 문제를 해결하려면 다음과 같이 하십시오.
-
속성에서 코드 판매 게시물 codeunit (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:
... -
코드에서 판매 게시물 codeunit (80)에서 PostItemChargePerShpt 함수를 다음과 같이 변경.
기존 코드 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;
... -
코드에서 판매 게시물 codeunit (80)에서 PostItemChargePerRetRcpt 함수를 다음과 같이 변경.
기존 코드 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
... -
코드에서 판매 게시물 codeunit (80)에서 PostItemCharge 함수를 다음과 같이 변경.
기존 코드 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(
... -
ThePurch 속성의 코드 변경-codeunit (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:
... -
ThePurch PostItemChargePerRcpt 함수에서 코드를 변경-codeunit (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;
... -
ThePurch PostItemChargePerRetShpt 함수에서 코드를 변경-codeunit (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;
... -
ThePurch PostItemChargePerTransfer 함수에서 코드를 변경-codeunit (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 :=
... -
ThePurch PostItemChargePerITTransfer 함수에서 코드를 변경-codeunit (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;
... -
ThePurch PostItemChargePerSalesShpt 함수에서 코드를 변경-codeunit (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;
... -
ThePurch PostItemChargePerRetRcpt 함수에서 코드를 변경-codeunit (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
... -
ThePurch PostItemCharge 함수에서 코드를 변경-codeunit (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 탐색 2009 R2
-
Microsoft Dynamics 탐색 2009 SP1
제거 정보
이 핫픽스를 제거할 수 없습니다.
상태
Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.
참고: 이 문서는 Microsoft 지원 부서 내에서 직접 작성한 "빠른 게시" 문서입니다. 여기에 포함된 정보는 신흥 문제에 대한 응답으로 제공되었습니다. 신속히 사용할 수 있도록 작성되었으므로, 자료 입력 오류가 포함될 수 있으며 언제든지 예고없이 개정될 수 있습니다. 다른 고려 사항은 사용 약관을참조 하십시오.