VAT घुमाव गलत के लिए सुधारात्मक प्रविष्टियों Microsoft Dynamics नेविगेशन 2009 R2 के चेक संस्करण में विक्रय/खरीद दस्तावेज़ पर कार्य करता है


यह आलेख Microsoft Dynamics नेविगेशन करने के लिए चेक (cz) क्षेत्र के लिए लागू होता है।

लक्षण


Microsoft Dynamics नेविगेशन 2009 R2 के चेक संस्करण में, सिस्टम VAT विक्रय/खरीद पर दस्तावेज़ों के लिए सुधारात्मक प्रविष्टियों घुमाव का परिकलन करता है। यह समस्या तब होती है जब सिस्टम पूर्णांक के लिए VAT और इनवॉइस घुमाव है।

समाधान


हॉटफिक्स जानकारी

अब एक समर्थित हॉटफिक्स Microsoft से उपलब्ध है। हालाँकि, यह केवल इस आलेख में वर्णित समस्या को ठीक करने के लिए अभिप्रेत है। यह जो इस विशिष्ट समस्या का अनुभव कर रहे हैं केवल उन्ही सिस्टमों पर लागू करें। यह हॉटफ़िक्स अतिरिक्त परीक्षण प्राप्त हो सकता है। इसलिए, अगर आप इस समस्या से बुरी तरह प्रभावित नहीं हैं, तो हम सुझाव देंगे कि आप अगले Microsoft Dynamics नेविगेशन 2009 सर्विस पैक या इस हॉटफ़िक्स वाले अगले Microsoft Dynamics नेविगेशन संस्करण के लिए प्रतीक्षा करें।

नोट विशेष मामलों में, निर्धारित करता है कोई विशिष्ट अद्यतन आपकी समस्या का निराकरण शुल्क जो सामान्यतया समर्थन कॉल किसी तकनीकी समर्थन विशेषज्ञ तो Microsoft Dynamics और संबंधित उत्पादों के लिए रद्द किया जा सकता है के लिए जाते हैं। अतिरिक्त समर्थन प्रश्नों और उन समस्याओं जो विशिष्ट में समस्याग्रस्त अद्यतन के योग्य नहीं सामान्य समर्थन शुल्क लागू होंगे।



स्थापना जानकारी

Microsoft प्रोग्रामिंग उदाहरण केवल चित्रण के लिए वारंटी के बिना, या तो व्यक्त या नहीं देता है। यह शामिल है, लेकिन करने के लिए, बिक्री या किसी विशेष उद्देश्य के लिए उपयुक्तता की अव्यक्त वॉरंटी तक सीमित नहीं है। यह आलेख मानता है कि आप वर्णन किया जा रहा है प्रोग्रामिंग भाषा के साथ और बनाने के लिए और प्रक्रियाएँ डीबग करने के लिए उपयोग किए जाने वाले उपकरणों के साथ परिचित हैं। Microsoft समर्थन इंजीनियर एक विशेष कार्यविधि की कार्यप्रणाली को समझाने में सहायता कर सकते हैं, लेकिन वे इन उदाहरणों कार्यक्षमता जोड़ देने या आपकी विशिष्ट आवश्यकताओं को पूरा करने के लिए कार्यविधियाँ कार्यप्रणालियों के लिए संशोधित नहीं करेंगे।

नोट इस हॉटफिक्स को स्थापित करने से पहले, सत्यापित करें कि सिस्टम बंद सभी Microsoft Navision क्लाइंट उपयोगकर्ता लॉग ऑन हैं। यह Microsoft Navision अनुप्रयोग सेवाओं (NAS) क्लाइंट उपयोगकर्ता शामिल हैं। आप इस हॉटफिक्स को लागू करते समय लॉग किया गया है केवल क्लाइंट उपयोगकर्ता होना चाहिए।

इस हॉटफिक्स को लागू करने के लिए, यदि आप कोई डेवलपर लाइसेंस होना आवश्यक है।

हम अनुशंसा करते हैं कि उस उपयोगकर्ता खाते को Windows लॉगिन विंडो में या डेटाबेस लॉगिन विंडो में "सुपर" भूमिका id असाइन किया उपयोगकर्ता खाता "सुपर" भूमिका ID असाइन नहीं किया जा सकता है, तो आप उपयोगकर्ता खाते को निम्न अनुमतियाँ हैं सत्यापित होना चाहिए:
  • संशोधित अनुमति ऑब्जेक्ट आप परिवर्तित हो जाएगा के लिए।
  • निष्पादन अनुमति सिस्टम ऑब्जेक्ट ID 5210 ऑब्जेक्ट और सिस्टम ऑब्जेक्ट ID 9015 ऑब्जेक्ट के लिए है।


नोट क्या आपके पास डेटा सुधार करने के लिए है जब तक कि डेटा संग्रह करने के लिए अधिकार के पास नहीं है।

कोड परिवर्तन

नोट यदि आप को लागू करने से पहले हमेशा परीक्षण कोड एक नियंत्रित वातावरण में फिक्सेस अपने उत्पादन कंप्यूटर्स के लिए हल करता है।
इस समस्या को हल करने के लिए, निम्न चरणों का पालन करें:
  1. विक्रय-पोस्ट codeunit (80) में RoundAmount फ़ंक्शन में कोड निम्नानुसार परिवर्तन:
    निम्नानुसार पाठ स्थिर जोड़ें:
    Text054: TextConst ' ENU = %1 %2 शून्य VAT सेटअप किया जाना चाहिए.'
    मौजूदा कोड
    ...      IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN BEGIN
    GetCurrency;
    GLSetup.GET;
    GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY);

    IF SalesHeader."Prices Including VAT" THEN
    ...
    प्रतिस्थापन कोड
    ...   IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN BEGIN
    GetCurrency;
    // Add the following lines.
    IF "System-Created Entry" THEN BEGIN
    RoundingPrecisionLCY := Currency."Amount Rounding Precision";
    RoundingDirectionLCY := Currency.VATRoundingDirection;
    END ELSE BEGIN
    // End of the added lines.

    GLSetup.GET;
    GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY);
    // Add the following line.
    END;

    IF SalesHeader."Prices Including VAT" THEN
    ...
  2. InvoiceRounding में विक्रय-पोस्ट codeunit (80) फ़ंक्शन में कोड निम्नानुसार परिवर्तन:
    निम्न स्थानीय चर को हटाएँ:
    • नाम: RoundingPrecision; डेटा प्रकार: दशमलव
    • नाम: RoundingDirection; डेटा प्रकार: पाठ [1]
    निम्न स्थानीय चर जोड़ें:
    • नाम: VATPostingSetup; डेटा प्रकार: रिकॉर्ड (325)
    • नाम: GLAcc; डेटा प्रकार: रिकॉर्ड (15)

    मौजूदा कोड 1
    ...// Delete the following line.
    GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection);

    Currency.TESTFIELD("Invoice Rounding Precision");
    InvoiceRoundingAmount :=
    -ROUND(
    TotalSalesLine."Amount Including VAT" -
    ROUND(
    TotalSalesLine."Amount Including VAT",
    Currency."Invoice Rounding Precision",
    Currency.InvoiceRoundingDirection),
    // Delete the following line.
    RoundingPrecision);

    IF InvoiceRoundingAmount <>0 THEN BEGIN
    CustPostingGr.GET(SalesHeader."Customer Posting Group");
    CustPostingGr.TESTFIELD("Invoice Rounding Account");

    WITH SalesLine DO BEGIN
    ...
    प्रतिस्थापन कोड 1
    ...  Currency.TESTFIELD("Invoice Rounding Precision");
    InvoiceRoundingAmount :=
    -ROUND(
    TotalSalesLine."Amount Including VAT" -
    ROUND(
    TotalSalesLine."Amount Including VAT",
    Currency."Invoice Rounding Precision",
    Currency.InvoiceRoundingDirection),

    // Add the following line.
    Currency."Amount Rounding Precision");

    IF InvoiceRoundingAmount <> 0 THEN BEGIN
    CustPostingGr.GET(SalesHeader."Customer Posting Group");
    CustPostingGr.TESTFIELD("Invoice Rounding Account");
    // Add the following lines.
    IF GLSetup."Rounding VAT (LCY)" <> GLSetup."Amount Rounding Precision" THEN BEGIN
    GLAcc.GET(CustPostingGr."Invoice Rounding Account");
    IF VATPostingSetup.GET(SalesHeader."VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group") THEN
    IF VATPostingSetup."VAT %" <> 0 THEN
    ERROR(Text054,CustPostingGr.FIELDCAPTION("Invoice Rounding Account"),CustPostingGr."Invoice Rounding Account");
    END;
    // End of the added lines.

    WITH SalesLine DO BEGIN
    ...
    मौजूदा कोड 2
    ...   ELSE
    VALIDATE(
    "Unit Price",
    ROUND(
    InvoiceRoundingAmount /
    (1 + (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100),
    // Delete the following line.
    RoundingPrecision));

    VALIDATE("Amount Including VAT",InvoiceRoundingAmount);
    ...
    प्रतिस्थापन कोड 2
    ...  ELSE
    VALIDATE(
    "Unit Price",
    ROUND(
    InvoiceRoundingAmount /
    (1 + (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100),
    // Add the following line.
    Currency."Amount Rounding Precision"));

    VALIDATE("Amount Including VAT",InvoiceRoundingAmount);
    ...
  3. RoundAmount फ़ंक्शन में कोड परिवर्तित करें Purch.-पोस्ट अनुसरण करता है, के रूप में codeunit (90):
    निम्न पाठ स्थिर जोड़ें:

    Text061: TextConst ' ENU = %1 %2 शून्य VAT सेटअप किया जाना चाहिए.'

    मौजूदा कोड
    ...  IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN BEGIN
    GetCurrency;
    GLSetup.GET;
    GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY);

    IF PurchHeader."Prices Including VAT" THEN
    ...
    प्रतिस्थापन कोड
    ...  IF ("VAT Calculation Type" = "VAT Calculation Type"::"Normal VAT") OR
    ("VAT Calculation Type" = "VAT Calculation Type"::"Reverse Charge VAT")
    THEN BEGIN
    GetCurrency;
    // Add the following lines.
    IF "System-Created Entry" THEN BEGIN
    RoundingPrecisionLCY := Currency."Amount Rounding Precision";
    RoundingDirectionLCY := Currency.VATRoundingDirection;
    END ELSE BEGIN
    // End of the added lines.
    GLSetup.GET;
    GLSetup.GetRoundingParamentersLCY(Currency,RoundingPrecisionLCY,RoundingDirectionLCY);
    // Add the following line.
    END;

    IF PurchHeader."Prices Including VAT" THEN
    ...
  4. InvoiceRounding में फ़ंक्शन में कोड परिवर्तित करें Purch.-पोस्ट अनुसरण करता है, के रूप में codeunit (90):
    निम्न स्थानीय चर को हटाएँ:
    • नाम: RoundingPrecision; डेटा प्रकार: दशमलव
    • नाम: RoundingDirection; डेटा प्रकार: पाठ [1]
    निम्न स्थानीय चर जोड़ें:
    • नाम: VATPostingSetup; डेटा प्रकार: रिकॉर्ड (325)
    • नाम: GLAcc; डेटा प्रकार: रिकॉर्ड (15)

    मौजूदा कोड
    ...   IF InvoiceRoundingAmount <> 0 THEN BEGIN
    VendPostingGr.GET(PurchHeader."Vendor Posting Group");
    VendPostingGr.TESTFIELD("Invoice Rounding Account");

    WITH PurchLine DO BEGIN
    ...
    प्रतिस्थापन कोड
    ...    IF InvoiceRoundingAmount <>  0 THEN BEGIN
    VendPostingGr.GET(PurchHeader."Vendor Posting Group");
    VendPostingGr.TESTFIELD("Invoice Rounding Account");
    // Add the following lines.
    IF GLSetup."Rounding VAT (LCY)" <> GLSetup."Amount Rounding Precision" THEN BEGIN
    GLAcc.GET(VendPostingGr."Invoice Rounding Account");
    IF VATPostingSetup.GET(PurchHeader."VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group") THEN
    IF VATPostingSetup."VAT %" <>0 THEN
    ERROR(Text061,VendPostingGr.FIELDCAPTION("Invoice Rounding Account"),VendPostingGr."Invoice Rounding Account");
    END;
    // End of the added lines.
    WITH PurchLine DO BEGIN
    ...
  5. में विक्रय लाइन तालिका (37) में मात्रा सहित VAT - OnValidate ट्रिगर कोड निम्नानुसार परिवर्तन:
    मौजूदा कोड
    ...    CASE "VAT Calculation Type" OF
    "VAT Calculation Type"::"Normal VAT",
    "VAT Calculation Type"::"Reverse Charge VAT":
    BEGIN
    GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection);

    Amount :=
    ...
    प्रतिस्थापन कोड
    ...  CASE "VAT Calculation Type" OF
    "VAT Calculation Type"::"Normal VAT",
    "VAT Calculation Type"::"Reverse Charge VAT":
    BEGIN
    // Add the following lines.
    IF "System-Created Entry" THEN
    RoundingPrecision := Currency."Amount Rounding Precision"
    ELSE
    // End of the added lines.
    GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection);

    Amount :=
    ...
  6. यह कोड CalcVATAmountLines फ़ंक्शन विक्रय लाइन तालिका (37) में निम्नानुसार परिवर्तन:
    मौजूदा कोड 1
    ...              END;
    END;
    // Delete the following line
    TotalVATAmount := TotalVATAmount + "Amount Including VAT" - Amount;
    VATCorrection := VATCorrection AND SalesLine."VAT Correction";
    END;
    UNTIL NEXT = 0;
    ...
    प्रतिस्थापन कोड 1
    ...            END;
    END;
    // Add the following lines.
    IF GLSetup."Rounding VAT (LCY)" = GLSetup."Amount Rounding Precision" THEN
    TotalVATAmount := TotalVATAmount + "Amount Including VAT" - Amount + "VAT Difference";
    // End of the added lines.
    VATCorrection := VATCorrection AND SalesLine."VAT Correction";
    END;
    UNTIL NEXT = 0;
    ...
    मौजूदा कोड 2
    ...    END;
    END;
    // Delete the following line.
    IF RoundingLineInserted THEN
    TotalVATAmount := TotalVATAmount - "VAT Amount";
    "Calculated VAT Amount" := "VAT Amount" - "VAT Difference";
    ...
    प्रतिस्थापन कोड 2
    ...     END;
    END;
    // Add the following line.
    IF RoundingLineInserted AND (GLSetup."Rounding VAT (LCY)" = GLSetup."Amount Rounding Precision") THEN
    TotalVATAmount := TotalVATAmount - "VAT Amount";
    "Calculated VAT Amount" := "VAT Amount" - "VAT Difference";
    ...
  7. मात्रा सहित VAT - OnValidate ट्रिगर में खरीद लाइन तालिका (39) में कोड निम्नानुसार परिवर्तन:
    मौजूदा कोड
    ...    CASE "VAT Calculation Type" OF
    "VAT Calculation Type"::"Normal VAT",
    "VAT Calculation Type"::"Reverse Charge VAT":
    BEGIN
    GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection);

    Amount :=
    ...
    प्रतिस्थापन कोड
    ...  CASE "VAT Calculation Type" OF
    "VAT Calculation Type"::"Normal VAT",
    "VAT Calculation Type"::"Reverse Charge VAT":
    BEGIN
    // Add the following lines.
    IF "System-Created Entry" THEN
    RoundingPrecision := Currency."Amount Rounding Precision"
    ELSE
    // End of the added lines.
    GLSetup.GetRoundingParamenters(Currency,RoundingPrecision,RoundingDirection);

    Amount :=
    ...
  8. यह कोड CalcVATAmountLines फ़ंक्शन में खरीद लाइन तालिका (39) में निम्नानुसार परिवर्तन:
    मौजूदा कोड 1
    ...       END;
    END;

    TotalVATAmount := TotalVATAmount + "Amount Including VAT" - Amount + "VAT Difference";
    VATCorrection := VATCorrection AND PurchLine."VAT Correction";
    ...
    प्रतिस्थापन कोड 1
    ...       END;
    END;
    // Add the following line.
    IF GLSetup."Rounding VAT (LCY)" = GLSetup."Amount Rounding Precision" THEN
    TotalVATAmount := TotalVATAmount + "Amount Including VAT" - Amount + "VAT Difference";
    VATCorrection := VATCorrection AND PurchLine."VAT Correction";
    ...
    मौजूदा कोड 2
    ...   END;
    END;
    // Delete the following line.
    IF RoundingLineInserted THEN
    TotalVATAmount := TotalVATAmount - "VAT Amount";
    "Calculated VAT Amount" := "VAT Amount" - "VAT Difference";
    ...
    प्रतिस्थापन कोड 2
    ...     END;
    END;
    // Add the following line
    IF RoundingLineInserted AND (GLSetup."Rounding VAT (LCY)" = GLSetup."Amount Rounding Precision") THEN
    TotalVATAmount := TotalVATAmount - "VAT Amount";
    "Calculated VAT Amount" := "VAT Amount" - "VAT Difference";
    ...

पूर्व-आवश्यकताएँ

आप का चेक संस्करण Microsoft Dynamics नेविगेशन 2009 इस हॉटफिक्स को लागू करने के लिए स्थापित R2 होना आवश्यक है।

निष्कासन जानकारी

आपको यह हॉटफ़िक्स नहीं निकाल सकते।

स्थिति


Microsoft ने पुष्टि की है कि यह "इन पर लागू" खण्ड में सूचीबद्ध Microsoft उत्पादों में एक समस्या है.

संदर्भ


VSTF DynamicsNAV पयोग करता: 254108
नोट यह एक "प्रकाशित फ़ास्ट" आलेख Microsoft समर्थन संगठन के अंदर से सीधे बनाया गया है। यहाँ शामिल जानकारी के रूप में प्रदान की गई है-emerging समस्याओं के प्रत्युत्तर में है। इसे उपलब्ध करने में गति, के परिणाम सामग्री typographical त्रुटियाँ शामिल हो सकते हैं और नोटिस के बिना किसी भी समय संशोधित किया जा सकता है। अन्य विचार के लिए उपयोग की शर्तें देखें।