이 문서는 인도어(in) 언어 로캘에 대한 Microsoft Dynamics NAV에 적용됩니다.
증상
인도 버전의 Microsoft Dynamics NAV 2009 SP1(서비스 팩 1)에서 다음 시나리오를 고려합니다.
- 항목에 외화를 사용하는 구매 주문을 만듭니다.
- CVD를 계산하거나 항목에서 소비하기 위해 구매에 구조를 연결합니다.
- 구매 주문을 영수증으로 게시합니다.
- RG 23 파트 II 항목이 만들어집니다.
- 영수증 받기 기능을 사용하여 구매 주문에 대한 구매 청구서를 만듭니다.
- 구매 청구서를 게시합니다.
이 시나리오에서는 추가 RG 23 파트 II 항목이 예기치 않게 만들어집니다.
또한 고정 자산 또는 대문자 항목 검사 상자가 선택된 항목에 대해 다른 구매 주문을 만든다고 가정합니다. 동일한 시나리오에서 구매 주문에 대해 생성된 해당 구매 청구서를 게시하면 RG 23 C 파트 II 항목이 예기치 않게 생성됩니다.
해결 방법
핫픽스 정보
이제 Microsoft에서 지원되는 핫픽스를 사용할 수 있습니다. 그러나 이 문서에 설명된 문제만 수정하기 위한 것입니다. 이 특정 문제가 발생하는 시스템에만 적용합니다. 이 핫픽스는 추가 테스트를 받을 수 있습니다. 따라서 이 문제의 심각한 영향을 받지 않는 경우 다음 Microsoft Dynamics NAV 서비스 팩 또는 이 핫픽스가 포함된 다음 Microsoft Dynamics NAV 버전을 기다리는 것이 좋습니다.
참고 특별한 경우 Microsoft Dynamics 및 관련 제품에 대한 기술 지원 전문가가 특정 업데이트가 문제를 resolve 판단하는 경우 지원 호출에 대해 일반적으로 발생하는 요금이 취소될 수 있습니다. 특정 업데이트가 필요하지 않은 추가 지원 질문과 문제에는 일반 지원 비용이 적용됩니다.
설치 정보
Microsoft는 명시적이거나 묵시적인 보증 없이 설명용으로만 프로그래밍 예제를 제공합니다. 여기에는 상품성 또는 특정 목적에의 적합성에 대한 묵시적 보증이 포함되지만 이에 국한되지 않습니다. 이 문서에서는 설명 중인 프로그래밍 언어와 프로시저를 만들고 디버깅하는 데 사용되는 도구에 대해 잘 알고 있다고 가정합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다.
참고 이 핫픽스를 설치하기 전에 모든 Microsoft Navision 클라이언트 사용자가 시스템에서 로그오프되었는지 확인합니다. 여기에는 NAS(Microsoft Navision Application Services) 클라이언트 사용자가 포함됩니다. 이 핫픽스를 구현할 때 로그온한 유일한 클라이언트 사용자여야 합니다.
이 핫픽스를 구현하려면 개발자 라이선스가 있어야 합니다.
Windows 로그인 창 또는 데이터베이스 로그인 창의 사용자 계정에 "SUPER" 역할 ID가 할당되는 것이 좋습니다. 사용자 계정에 "SUPER" 역할 ID를 할당할 수 없는 경우 사용자 계정에 다음 권한이 있는지 확인해야 합니다.
- 변경할 개체에 대한 수정 권한입니다.
- 시스템 개체 ID 5210 개체 및 System Object ID 9015 개체에 대한 Execute 권한입니다.
참고 데이터 복구를 수행해야 하는 경우가 아니면 데이터 저장소에 대한 권한이 있을 필요가 없습니다.
코드 변경 내용
참고 프로덕션 컴퓨터에 수정 사항을 적용하기 전에 제어된 환경에서 항상 코드 수정을 테스트합니다.
이 문제를 해결하려면 다음과 같이 하십시오.
다음과 같이 구매 라인 테이블(39)의 필드에서 코드를 변경합니다.
기존 코드 1... Currency."Amount Rounding Precision"); "Inv. Discount Amount" := 0; "Inv. Disc. Amount to Invoice" := 0; UpdateAmounts; UpdateUnitCost; END; CaptionML=ENU=Line Discount %; DecimalPlaces=0:5; MinValue=0; ...대체 코드 1
... Currency."Amount Rounding Precision"); "Inv. Discount Amount" := 0; "Inv. Disc. Amount to Invoice" := 0; UpdateAmounts; UpdateUnitCost; // Add the following line. CheckExciseRegister; END; CaptionML=ENU=Line Discount %; DecimalPlaces=0:5; MinValue=0; ...기존 코드 2
... "Line Discount %" := 0; "Inv. Discount Amount" := 0; "Inv. Disc. Amount to Invoice" := 0; UpdateAmounts; UpdateUnitCost; END; CaptionML=ENU=Line Discount Amount; AutoFormatType=1; AutoFormatExpr="Currency Code" } ...대체 코드 2
... "Line Discount %" := 0; "Inv. Discount Amount" := 0; "Inv. Disc. Amount to Invoice" := 0; UpdateAmounts; UpdateUnitCost; // Add the following lines. GetPurchHeader; CheckExciseRegister; // End of the lines. END; CaptionML=ENU=Line Discount Amount; AutoFormatType=1; AutoFormatExpr="Currency Code" } ...Purchase Line 테이블(39)에 새 전역 변수를 추가한 다음 다음과 같이 변수를 지정합니다.
- 이름: Text16510
- DataType: TextConst
- 값: 영수증에 대해 ENU=RG 레지스터가 이미 생성되었습니다. 변경 내용을 RG 레지스터에 반영하려면 청구서에서 ''영수증 줄 가져오기' 기능을 사용한 다음 게시하세요.
다음과 같이 Purchase Line 테이블(39)의 UpdateStruOrdLineDetails 함수에서 코드를 변경합니다.
기존 코드... BEGIN GetPurchHeader; PurchHeader.TESTFIELD(Structure); StructureDetail.SETRANGE(Code, PurchHeader.Structure); StructureDetail.SETRANGE(Type,StructureDetail.Type::Excise); IF StructureDetail.FIND('-') THEN BEGIN StrOrderLineDetails.GET(StrOrderLineDetails.Type::Purchase,StructureDetail."Calculation Order", "Document Type","Document No.","No.","Line No.",StructureDetail.Type,'','EXCISE'); ...대체 코드
... BEGIN GetPurchHeader; PurchHeader.TESTFIELD(Structure); // Add the following line. CheckExciseRegister; StructureDetail.SETRANGE(Code, PurchHeader.Structure); StructureDetail.SETRANGE(Type,StructureDetail.Type::Excise); IF StructureDetail.FIND('-') THEN BEGIN StrOrderLineDetails.GET(StrOrderLineDetails.Type::Purchase,StructureDetail."Calculation Order", "Document Type","Document No.","No.","Line No.",StructureDetail.Type,'','EXCISE'); ...다음과 같이 구매 라인 테이블(39)의 ShowSubOrderRcptForm 함수에서 코드를 변경합니다.
기존 코드... FORM.RUNMODAL(FORM::"Order Subcon Details Receipt",PurchaseLine) ELSE FORM.RUNMODAL(FORM::"Ord. Subcon Details Rcpt. List",PurchaseLine) END; // Delete the following line. BEGIN END. } } ...대체 코드
... FORM.RUNMODAL(FORM::"Order Subcon Details Receipt",PurchaseLine) ELSE FORM.RUNMODAL(FORM::"Ord. Subcon Details Rcpt. List",PurchaseLine) END; // Add the following lines. PROCEDURE CheckExciseRegister@1102601000(); BEGIN IF ((("Document Type" = "Document Type" ::"Return Order") OR ("Document Type" ="Document Type" ::Order)) AND ("Quantity Received" <> 0 ) AND ("Excise Amount" <> 0 )) THEN BEGIN IF NOT PurchHeader.Trading THEN IF ("Direct Unit Cost" <> xRec."Direct Unit Cost") OR ("Line Amount" <> xRec."Line Amount") OR ("Line Discount %" <> xRec."Line Discount %") OR ("Line Discount Amount" <> xRec."Line Discount Amount") OR ("BED Amount" <> xRec."BED Amount") OR ("AED(GSI) Amount" <> xRec."AED(GSI) Amount") OR ("SED Amount" <>xRec."SED Amount") OR ("SAED Amount" <> xRec."SAED Amount") OR ("CESS Amount" <> xRec."CESS Amount") OR ("NCCD Amount" <> xRec."NCCD Amount") OR ("eCess Amount" <> xRec."eCess Amount") OR ("ADET Amount" <> xRec."ADET Amount") OR ("ADE Amount"<> xRec."ADE Amount") OR ("SHE Cess Amount" <> xRec."SHE Cess Amount") OR ("AED(TTA) Amount" <> "AED(TTA) Amount") THEN ERROR(Text16510); END; // End of the lines. END;} } ...다음과 같이 RG 23 A Part II 테이블(13720)의 키를 변경합니다.
기존 코드... { ;Entry No. ;Clustered=Yes } { ;Document No.,Posting Date } { ;Type } { ;Location E.C.C. No. ;SumIndexFields=BED Credit,AED(GSI) Credit,SED Credit,SAED Credit,NCCD Credit,eCess Credit,CESS Debit,ADC VAT Credit,SHE Cess Credit } { ;Posting Date,Location E.C.C. No.,Type } // Delete the following line. { ;Excise as Service Tax Credit,Closed,Remaining Excise Amount,Location E.C.C. No. } { ;Location E.C.C. No.,Excise as Service Tax Credit; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Closed,Remaining Excise Amount,Excise as Service Tax Credit,Cenvat Cr. Receivable Account; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Excise as Service Tax Credit,Posting Date; ...리포지토리 코드
... { ;Entry No. ;Clustered=Yes } { ;Document No.,Posting Date } { ;Type } { ;Location E.C.C. No. ;SumIndexFields=BED Credit,AED(GSI) Credit,SED Credit,SAED Credit,NCCD Credit,eCess Credit,CESS Debit,ADC VAT Credit,SHE Cess Credit } { ;Posting Date,Location E.C.C. No.,Type } // Add the following line. { ;Excise as Service Tax Credit,Closed,Location E.C.C. No. } { ;Location E.C.C. No.,Excise as Service Tax Credit; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Closed,Remaining Excise Amount,Excise as Service Tax Credit,Cenvat Cr. Receivable Account; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Excise as Service Tax Credit,Posting Date; ...다음과 같이 RG 23 C 파트 II 테이블(13722)의 키를 변경합니다.
기존 코드... { ;Entry No. ;Clustered=Yes } { ;Document No.,Posting Date } { ;Type } { ;Location E.C.C. No. ;SumIndexFields=BED Credit,AED(GSI) Credit,SED Credit,SAED Credit,CESS Credit,NCCD Credit,eCess Credit,SHE Cess Credit,ADC VAT Credit } { ;Posting Date,Location E.C.C. No.,Type } // Delete the following line. { ;Excise as Service Tax Credit,Closed,Remaining Excise Amount,Location E.C.C. No. } { ;Location E.C.C. No.,Excise as Service Tax Credit; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Closed,Remaining Excise Amount,Excise as Service Tax Credit; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Excise as Service Tax Credit,Posting Date; ...대체 코드
... { ;Entry No. ;Clustered=Yes } { ;Document No.,Posting Date } { ;Type } { ;Location E.C.C. No. ;SumIndexFields=BED Credit,AED(GSI) Credit,SED Credit,SAED Credit,CESS Credit,NCCD Credit,eCess Credit,SHE Cess Credit,ADC VAT Credit } { ;Posting Date,Location E.C.C. No.,Type } // Add the following line. { ;Excise as Service Tax Credit,Closed,Location E.C.C. No. } { ;Location E.C.C. No.,Excise as Service Tax Credit; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Closed,Remaining Excise Amount,Excise as Service Tax Credit; SumIndexFields=Remaining BED Credit,Remaining AED(GSI) Credit,Remaining SED Credit,Remaining SAED Credit,Remaining NCCD Credit,Remaining eCess Credit,Remaining ADET Credit,Remaining AED(TTA) Credit,Remaining ADE Credit,Remaining ADC VAT Credit,Remaining SHECess Credit } { ;Location E.C.C. No.,Excise as Service Tax Credit,Posting Date; ...Purch.-Post codeunit(90)의 CheckExciseInvoiceDiff 함수에 새 지역 변수를 추가하고 다음과 같이 변수를 지정합니다.
- 이름: PurchRcptHead
- DataType: 레코드
- 하위 유형: Purch. Rcpt. Header (120)
다음과 같이 Purch.-Post codeunit(90)의 CheckExciseInvoiceDiff 함수에서 코드를 변경합니다.
기존 코드 1... EXIT; IF ("Document Type" = "Document Type"::Invoice) AND ("Receipt No." = '') THEN EXIT; IF ("Document Type" = "Document Type"::"Credit Memo") AND ("Return Shipment No." = '') THEN EXIT; // Delete the following lines. IF (NOT (Type IN[2,3])) THEN EXIT; // End of the lines. TempPurchLine.INIT; TempPurchLine.TRANSFERFIELDS(PurchLine); TempPurchLine.INSERT; IF ("Receipt No." <> '') THEN BEGIN ...대체 코드 1
... EXIT; IF ("Document Type" = "Document Type"::Invoice) AND ("Receipt No." = '') THEN EXIT; IF ("Document Type" = "Document Type"::"Credit Memo") AND ("Return Shipment No." = '') THEN EXIT; // Add the following lines. IF (NOT (Type IN[1,2,3])) THEN EXIT; // End of the lines. TempPurchLine.INIT; TempPurchLine.TRANSFERFIELDS(PurchLine); TempPurchLine.INSERT; IF ("Receipt No." <> '') THEN BEGIN ...기존 코드 2
... TempPurchLine.INSERT; IF ("Receipt No." <> '') THEN BEGIN RcptHeader.GET("Receipt No."); RcptLine.GET("Receipt No.","Receipt Line No."); "BED Amount" -= RcptLine."BED Amount"; "ADET Amount" -= RcptLine."ADET Amount"; "ADE Amount" -= RcptLine."ADE Amount"; "AED(GSI) Amount" -= RcptLine."AED(GSI) Amount"; "AED(TTA) Amount" -= RcptLine."AED(TTA) Amount"; ...대체 코드 2
... TempPurchLine.INSERT; IF ("Receipt No." <> '') THEN BEGIN RcptHeader.GET("Receipt No."); RcptLine.GET("Receipt No.","Receipt Line No."); // Add the following lines. IF RcptHeader."Currency Code" <> '' THEN BEGIN "BED Amount" := ("BED Amount" * RcptHeader."Currency Factor") - RcptLine."BED Amount"; "ADET Amount" := ("ADET Amount" * RcptHeader."Currency Factor") - RcptLine."ADET Amount"; "ADE Amount" := ("ADE Amount" * RcptHeader."Currency Factor") - RcptLine."ADE Amount"; "AED(GSI) Amount" := ("AED(GSI) Amount" * RcptHeader."Currency Factor") - RcptLine."AED(GSI) Amount"; "AED(TTA) Amount" := ("AED(TTA) Amount" * RcptHeader."Currency Factor") - RcptLine."AED(TTA) Amount"; "CESS Amount" := ("CESS Amount" * RcptHeader."Currency Factor") - RcptLine."CESS Amount"; "NCCD Amount" := ("NCCD Amount" * RcptHeader."Currency Factor") - RcptLine."NCCD Amount"; "SAED Amount" := ("SAED Amount" * RcptHeader."Currency Factor") - RcptLine."SAED Amount"; "SED Amount" := ("SED Amount" * RcptHeader."Currency Factor") - RcptLine."SED Amount"; "eCess Amount" := ("eCess Amount" * RcptHeader."Currency Factor") - RcptLine."eCess Amount"; "ADC VAT Amount" := ("ADC VAT Amount" * RcptHeader."Currency Factor") - RcptLine."ADC VAT Amount"; "SHE Cess Amount" := ("SHE Cess Amount" * RcptHeader."Currency Factor") - RcptLine."SHE Cess Amount"; "Custom eCess Amount" := ("Custom eCess Amount" * RcptHeader."Currency Factor") - RcptLine."Custom eCess Amount"; "Custom SHECess Amount" := ("Custom SHECess Amount" * RcptHeader."Currency Factor") - RcptLine."Custom SHECess Amount"; END ELSE BEGIN // End of the lines. "BED Amount" -= RcptLine."BED Amount"; "ADET Amount" -= RcptLine."ADET Amount"; "ADE Amount" -= RcptLine."ADE Amount"; "AED(GSI) Amount" -= RcptLine."AED(GSI) Amount"; "AED(TTA) Amount" -= RcptLine."AED(TTA) Amount"; ...기존 코드 3
... "eCess Amount" -= RcptLine."eCess Amount"; "ADC VAT Amount" -= RcptLine."ADC VAT Amount"; "SHE Cess Amount" -= RcptLine."SHE Cess Amount"; "Custom eCess Amount" -= RcptLine."Custom eCess Amount"; "Custom SHECess Amount" -= RcptLine."Custom SHECess Amount"; IF (("BED Amount" <> 0) OR ("ADET Amount" <> 0) OR ("AED(GSI) Amount" <> 0) OR ("AED(TTA) Amount" <> 0) OR ("CESS Amount" <> 0) OR("NCCD Amount" <> 0) OR ("SAED Amount" <> 0) OR ("SED Amount" <> 0) OR ("eCess Amount" <> 0) OR ("ADE Amount" <> 0) OR ("ADC VAT Amount" <> 0) OR ("SHE Cess Amount" <> 0) OR ("Custom eCess Amount" <> 0) OR ("Custom SHECess Amount" <> 0)) AND ("Excise Loading on Inventory" = FALSE) ...대체 코드 3
... "eCess Amount" -= RcptLine."eCess Amount"; "ADC VAT Amount" -= RcptLine."ADC VAT Amount"; "SHE Cess Amount" -= RcptLine."SHE Cess Amount"; "Custom eCess Amount" -= RcptLine."Custom eCess Amount"; "Custom SHECess Amount" -= RcptLine."Custom SHECess Amount"; // Add the following line. END; IF (("BED Amount" <> 0) OR ("ADET Amount" <> 0) OR ("AED(GSI) Amount" <> 0) OR ("AED(TTA) Amount" <> 0) OR ("CESS Amount" <> 0) OR("NCCD Amount" <> 0) OR ("SAED Amount" <> 0) OR ("SED Amount" <> 0) OR ("eCess Amount" <> 0) OR ("ADE Amount" <> 0) OR ("ADC VAT Amount" <> 0) OR ("SHE Cess Amount" <> 0) OR ("Custom eCess Amount" <> 0) OR ("Custom SHECess Amount" <> 0)) AND ("Excise Loading on Inventory" = FALSE) ...기존 코드 4
... THEN BEGIN "Qty. to Receive (Base)" := RcptLine.Quantity; "Line No." := RcptLine."Line No."; IF (((Type = Type::Item) AND ("Capital Item" = TRUE)) OR (Type = Type::"Fixed Asset")) THEN ExciseInsertRGRegister.InsertRG23CPartIIPurchase(PurchLine,RcptHeader,ReturnShptHeader,TRUE) // Delete the following lines. ELSE ExciseInsertRGRegister.InsertRG23APartIIPurchase(PurchLine,RcptHeader,ReturnShptHeader,TRUE); // End of the lines. RcptLine."BED Amount" := TempPurchLine."BED Amount"; RcptLine."ADET Amount" := TempPurchLine."ADET Amount"; RcptLine."ADE Amount" := TempPurchLine."ADE Amount"; RcptLine."AED(GSI) Amount" := TempPurchLine."AED(GSI) Amount"; RcptLine."AED(TTA) Amount" := TempPurchLine."AED(TTA) Amount"; ...대체 코드 4
... THEN BEGIN "Qty. to Receive (Base)" := RcptLine.Quantity; "Line No." := RcptLine."Line No."; IF (((Type = Type::Item) AND ("Capital Item" = TRUE)) OR (Type = Type::"Fixed Asset")) THEN ExciseInsertRGRegister.InsertRG23CPartIIPurchase(PurchLine,RcptHeader,ReturnShptHeader,TRUE) // Add the following lines. ELSE BEGIN IF (PurchLine."Receipt No." <> '') AND (PurchHeader."Currency Code" <> '') THEN BEGIN PurchRcptHead.GET(PurchLine."Receipt No."); IF PurchRcptHead."Currency Code" <> '' THEN ExciseInsertRGRegister.InsertRG23APartIIPurchase(PurchLine,RcptHeader,ReturnShptHeader,TRUE); END ELSE ExciseInsertRGRegister.InsertRG23APartIIPurchase(PurchLine,RcptHeader,ReturnShptHeader,TRUE); END; // End of the lines. RcptLine."BED Amount" := TempPurchLine."BED Amount"; RcptLine."ADET Amount" := TempPurchLine."ADET Amount"; RcptLine."ADE Amount" := TempPurchLine."ADE Amount"; RcptLine."AED(GSI) Amount" := TempPurchLine."AED(GSI) Amount"; RcptLine."AED(TTA) Amount" := TempPurchLine."AED(TTA) Amount";Excise Insert RG Registers codeunit(13701)에서 InsertRG23APartIIPurchase 함수의 코드를 다음과 같이 변경합니다.
기존 코드... RG23APartII."Remaining Excise Amount" := RG23APartII."Remaining BED Credit" + RG23APartII."Remaining AED(GSI) Credit" + RG23APartII."Remaining SED Credit" + RG23APartII."Remaining SAED Credit" + RG23APartII."Remaining NCCD Credit" + RG23APartII."Remaining eCess Credit" + RG23APartII."Remaining ADET Credit" + RG23APartII."Remaining AED(TTA) Credit" + RG23APartII."Remaining ADE Credit" + RG23APartII."Remaining ADC VAT Credit" + RG23APartII."Remaining SHECess Credit"; END ELSE BEGIN RG23APartII."Posting Date" := ReturnShptHeader."Posting Date"; RG23APartII."Document No." := ReturnShptHeader."No."; IF NOT ExciseDifference THEN BEGIN RG23APartII."BED Debit" := ...대체 코드
... RG23APartII."Remaining Excise Amount" := RG23APartII."Remaining BED Credit" + RG23APartII."Remaining AED(GSI) Credit" + RG23APartII."Remaining SED Credit" + RG23APartII."Remaining SAED Credit" + RG23APartII."Remaining NCCD Credit" + RG23APartII."Remaining eCess Credit" + RG23APartII."Remaining ADET Credit" + RG23APartII."Remaining AED(TTA) Credit" + RG23APartII."Remaining ADE Credit" + RG23APartII."Remaining ADC VAT Credit" + RG23APartII."Remaining SHECess Credit"; // Add the following lines. IF ExciseDifference THEN AdjustCrEntriesRG23A(RG23APartII); // End of the lines. END ELSE BEGIN RG23APartII."Posting Date" := ReturnShptHeader."Posting Date"; RG23APartII."Document No." := ReturnShptHeader."No."; IF NOT ExciseDifference THEN BEGIN RG23APartII."BED Debit" := ...Excise Insert RG Registers codeunit(13701)의 InsertRG23CPartIIPurchase 함수에 새 지역 변수를 추가하고 다음과 같이 변수를 지정합니다.
- 이름: TempRG23CPartII2
- DataType: 임시 레코드
- 하위 유형: RG 23 C 파트 II (13722)
Excise Insert RG Registers codeunit(13701)에서 InsertRG23CPartIIPurchase 함수의 코드를 다음과 같이 변경합니다.
기존 코드... RG23CPartII."Remaining Excise Amount" := RG23CPartII."Remaining BED Credit" + RG23CPartII."Remaining AED(GSI) Credit" + RG23CPartII."Remaining SED Credit" + RG23CPartII."Remaining SAED Credit" + RG23CPartII."Remaining NCCD Credit" + RG23CPartII."Remaining eCess Credit" + RG23CPartII."Remaining ADET Credit" + RG23CPartII."Remaining AED(TTA) Credit" + RG23CPartII."Remaining ADE Credit" + RG23CPartII."Remaining ADC VAT Credit" + RG23CPartII."Remaining SHECess Credit"; END ELSE BEGIN RG23CPartII."Posting Date" := ReturnShptHeader."Posting Date"; RG23CPartII."Document No." := ReturnShptHeader."No."; IF NOT ExciseDifference THEN BEGIN RG23CPartII."BED Debit":= ...대체 코드
... RG23CPartII."Remaining Excise Amount" := RG23CPartII."Remaining BED Credit" + RG23CPartII."Remaining AED(GSI) Credit" + RG23CPartII."Remaining SED Credit" + RG23CPartII."Remaining SAED Credit" + RG23CPartII."Remaining NCCD Credit" + RG23CPartII."Remaining eCess Credit" + RG23CPartII."Remaining ADET Credit" + RG23CPartII."Remaining AED(TTA) Credit" + RG23CPartII."Remaining ADE Credit" + RG23CPartII."Remaining ADC VAT Credit" + RG23CPartII."Remaining SHECess Credit"; // Add the following lines. IF ExciseDifference THEN BEGIN TempRG23CPartII2.INIT; TempRG23CPartII2.TRANSFERFIELDS(RG23CPartII); TempRG23CPartII2."BED Debit" := ROUND(TempRG23CPartII2."BED Debit" * 0.5); TempRG23CPartII2."AED(GSI) Debit" := ROUND(TempRG23CPartII2."AED(GSI) Debit" * 0.5); TempRG23CPartII2."SAED Debit" := ROUND(TempRG23CPartII2."SAED Debit" * 0.5); TempRG23CPartII2."NCCD Debit" := ROUND(TempRG23CPartII2."NCCD Debit" * 0.5); TempRG23CPartII2."eCess Debit" := ROUND(TempRG23CPartII2."eCess Debit" * 0.5); TempRG23CPartII2."SED Debit" := ROUND(TempRG23CPartII2."SED Debit" * 0.5); TempRG23CPartII2."ADET Debit" := ROUND(TempRG23CPartII2."ADET Debit" * 0.5); TempRG23CPartII2."AED(TTA) Debit" := ROUND(TempRG23CPartII2."AED(TTA) Debit" * 0.5); TempRG23CPartII2."ADE Debit":= ROUND(TempRG23CPartII2."ADE Debit" * 0.5); TempRG23CPartII2."SHE Cess Debit" := ROUND(TempRG23CPartII2."SHE Cess Debit" * 0.5); TempRG23CPartII2."ADC VAT Debit" := ROUND(TempRG23CPartII2."ADC VAT Debit" * 0.5); AdjustCrEntriesRG23C(TempRG23CPartII2); END; // End of the lines. END ELSE BEGIN RG23CPartII."Posting Date" := ReturnShptHeader."Posting Date"; RG23CPartII."Document No." := ReturnShptHeader."No."; IF NOT ExciseDifference THEN BEGIN RG23CPartII."BED Debit":= ...Excise Insert RG Registers codeunit(13701)에서 AdjustCrEntriesRG23A 함수의 코드를 다음과 같이 변경합니다.
기존 코드 1... BEGIN WITH RG23APartII2 DO BEGIN RG23APartII3.RESET; // Delete the following line. RG23APartII3.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Remaining Excise Amount","Location E.C.C. No."); IF "Excise Credit Availed as ST" THEN BEGIN RG23APartII3.SETRANGE("Excise as Service Tax Credit",TRUE); NextEntryNo := 0; ExciseAsSTUtilisation2.RESET; IF ExciseAsSTUtilisation2.FINDLAST THEN ...대체 코드 1
... BEGIN WITH RG23APartII2 DO BEGIN RG23APartII3.RESET; // Add the following line. RG23APartII3.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Location E.C.C. No."); IF "Excise Credit Availed as ST" THEN BEGIN RG23APartII3.SETRANGE("Excise as Service Tax Credit",TRUE); NextEntryNo := 0; ExciseAsSTUtilisation2.RESET; IF ExciseAsSTUtilisation2.FINDLAST THEN ...기존 코드 2
... IF ExciseAsSTUtilisation2.FINDLAST THEN NextEntryNo := ExciseAsSTUtilisation2."Entry No."; END; RG23APartII3.SETRANGE(Closed,FALSE); // Delete the following line. RG23APartII3.SETFILTER("Remaining Excise Amount",'>%1',0); RG23APartII3.SETRANGE("Location E.C.C. No.","Location E.C.C. No."); IF RG23APartII3.FINDSET THEN REPEAT RG23APartII4 := RG23APartII3; CompareAmt(RG23APartII4."Remaining BED Credit","BED Debit",RG23APartII4."Remaining Excise Amount"); ...대체 코드 2
... IF ExciseAsSTUtilisation2.FINDLAST THEN NextEntryNo := ExciseAsSTUtilisation2."Entry No."; END; RG23APartII3.SETRANGE(Closed,FALSE); RG23APartII3.SETRANGE("Location E.C.C. No.","Location E.C.C. No."); IF RG23APartII3.FINDSET THEN REPEAT RG23APartII4 := RG23APartII3; CompareAmt(RG23APartII4."Remaining BED Credit","BED Debit",RG23APartII4."Remaining Excise Amount"); ...Excise Insert RG Registers codeunit(13701)에서 AdjustCrEntriesRG23C 함수의 코드를 다음과 같이 변경합니다.
기존 코드 1... BEGIN WITH RG23CPartII2 DO BEGIN RG23CPartII3.RESET; // Delete the following line. RG23CPartII3.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Remaining Excise Amount","Location E.C.C. No."); IF "Excise Credit Availed as ST" THEN BEGIN RG23CPartII3.SETRANGE("Excise as Service Tax Credit",TRUE); NextEntryNo := 0; ExciseAsSTUtilisation2.RESET; IF ExciseAsSTUtilisation2.FINDLAST THEN ...대체 코드 1
... BEGIN WITH RG23CPartII2 DO BEGIN RG23CPartII3.RESET; // Add the following line. RG23CPartII3.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Location E.C.C. No."); IF "Excise Credit Availed as ST" THEN BEGIN RG23CPartII3.SETRANGE("Excise as Service Tax Credit",TRUE); NextEntryNo := 0; ExciseAsSTUtilisation2.RESET; IF ExciseAsSTUtilisation2.FINDLAST THEN ...기존 코드 2
... ExciseAsSTUtilisation2.RESET; IF ExciseAsSTUtilisation2.FINDLAST THEN NextEntryNo := ExciseAsSTUtilisation2."Entry No."; END; RG23CPartII3.SETRANGE(Closed,FALSE); // Delete the following line. RG23CPartII3.SETFILTER("Remaining Excise Amount",'>%1',0); RG23CPartII3.SETRANGE("Location E.C.C. No.","Location E.C.C. No."); IF RG23CPartII3.FINDSET THEN REPEAT RG23CPartII4 := RG23CPartII3; CompareAmt(RG23CPartII4."Remaining BED Credit","BED Debit",RG23CPartII4."Remaining Excise Amount"); ...대체 코드 2
... ExciseAsSTUtilisation2.RESET; IF ExciseAsSTUtilisation2.FINDLAST THEN NextEntryNo := ExciseAsSTUtilisation2."Entry No."; END; RG23CPartII3.SETRANGE(Closed,FALSE); RG23CPartII3.SETRANGE("Location E.C.C. No.","Location E.C.C. No."); IF RG23CPartII3.FINDSET THEN REPEAT RG23CPartII4 := RG23CPartII3; CompareAmt(RG23CPartII4."Remaining BED Credit","BED Debit",RG23CPartII4."Remaining Excise Amount"); ...다음과 같이 Service Tax Management codeunit(16471)에서 PostRegEntries 함수의 코드를 변경합니다.
기존 코드 1... GenJnlLine.RESET; GenJnlLine.SETRANGE("Document No.",DocNo); IF GenJnlLine.FINDFIRST THEN BEGIN CheckAvailableRGCredit(GenJnlLine);; RG23APartII.RESET; // Delete the following lines. RG23APartII.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Remaining Excise Amount","Location E.C.C. No."); RG23APartII.SETRANGE("Excise as Service Tax Credit",TRUE); RG23APartII.SETRANGE(Closed,FALSE); RG23APartII.SETFILTER("Remaining Excise Amount",'>%1',0); // End of the lines. RG23APartII.SETRANGE("Location E.C.C. No.",GenJnlLine."E.C.C. No."); IF RG23APartII.FINDFIRST THEN BEGIN GenJnlLine."Excise Bus. Posting Group" := RG23APartII."Excise Bus. Posting Group"; GenJnlLine."Excise Prod. Posting Group" := RG23APartII."Excise Prod. Posting Group"; GenJnlLine.VALIDATE("Account No.",RG23APartII."Cenvat Cr. Receivable Account"); ...대체 코드 1
... GenJnlLine.RESET; GenJnlLine.SETRANGE("Document No.",DocNo); IF GenJnlLine.FINDFIRST THEN BEGIN CheckAvailableRGCredit(GenJnlLine);; RG23APartII.RESET; // Add the following lines. RG23APartII.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Location E.C.C. No."); RG23APartII.SETRANGE("Excise as Service Tax Credit",TRUE); RG23APartII.SETRANGE(Closed,FALSE); // End of the lines. RG23APartII.SETRANGE("Location E.C.C. No.",GenJnlLine."E.C.C. No."); IF RG23APartII.FINDFIRST THEN BEGIN GenJnlLine."Excise Bus. Posting Group" := RG23APartII."Excise Bus. Posting Group"; GenJnlLine."Excise Prod. Posting Group" := RG23APartII."Excise Prod. Posting Group"; GenJnlLine.VALIDATE("Account No.",RG23APartII."Cenvat Cr. Receivable Account"); ...기존 코드 2
... GenJnlLine."Excise Bus. Posting Group" := RG23APartII."Excise Bus. Posting Group"; GenJnlLine."Excise Prod. Posting Group" := RG23APartII."Excise Prod. Posting Group"; GenJnlLine.VALIDATE("Account No.",RG23APartII."Cenvat Cr. Receivable Account"); END ELSE BEGIN RG23CPartII.RESET; // Delete the following lines. RG23CPartII.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Remaining Excise Amount","Location E.C.C. No."); RG23CPartII.SETRANGE("Excise as Service Tax Credit",TRUE); RG23CPartII.SETRANGE(Closed,FALSE); RG23CPartII.SETFILTER("Remaining Excise Amount",'>%1',0); // End of the lines. RG23CPartII.SETRANGE("Location E.C.C. No.",GenJnlLine."E.C.C. No."); IF RG23CPartII.FINDFIRST THEN BEGIN GenJnlLine."Excise Bus. Posting Group" := RG23CPartII."Excise Bus. Posting Group"; GenJnlLine."Excise Prod. Posting Group" := RG23CPartII."Excise Prod. Posting Group"; GenJnlLine.VALIDATE("Account No.",RG23CPartII."Cenvat Cr. Receivable Acc."); ...대체 코드 2
... GenJnlLine."Excise Bus. Posting Group" := RG23APartII."Excise Bus. Posting Group"; GenJnlLine."Excise Prod. Posting Group" := RG23APartII."Excise Prod. Posting Group"; GenJnlLine.VALIDATE("Account No.",RG23APartII."Cenvat Cr. Receivable Account"); END ELSE BEGIN RG23CPartII.RESET; // Add the following lines. RG23CPartII.SETCURRENTKEY("Excise as Service Tax Credit",Closed,"Location E.C.C. No."); RG23CPartII.SETRANGE("Excise as Service Tax Credit",TRUE); RG23CPartII.SETRANGE(Closed,FALSE); // End of the lines. RG23CPartII.SETRANGE("Location E.C.C. No.",GenJnlLine."E.C.C. No."); IF RG23CPartII.FINDFIRST THEN BEGIN GenJnlLine."Excise Bus. Posting Group" := RG23CPartII."Excise Bus. Posting Group"; GenJnlLine."Excise Prod. Posting Group" := RG23CPartII."Excise Prod. Posting Group"; GenJnlLine.VALIDATE("Account No.",RG23CPartII."Cenvat Cr. Receivable Acc."); ...
필수 구성 요소
이 핫픽스를 적용하려면 인도 버전의 Microsoft Dynamics NAV 2009 서비스 팩 1이 설치되어 있어야 합니다.
제거 정보
이 핫픽스는 제거할 수 없습니다.
상태
Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.
참고 이 문서는 Microsoft 지원 부서에서 직접 작성한 "빠른 게시" 문서입니다. 여기에 포함된 정보는 새로운 문제에 대한 응답으로 있는 그대로 제공됩니다. 문서를 제공하는 속도로 인해 문서에 오자가 있을 수 있으며 사전 통지 없이 언제든지 수정될 수 있습니다. 다른 고려 사항은 사용 약관을 참조하십시오.