1.7 में मुद्दों को गोल करने की स्थिति क्या है?


27

हम Magento CE 1.7 का उपयोग कर रहे हैं और विभिन्न दौर मुद्दे हैं। विभिन्न गणनाओं में 0,01 EUR का अंतर है।

मूल मुद्दा यह हो सकता है कि लेख-मूल्य झुकाव हैं। कर।

सह-प्रोग्रामर Mage_Core_Model_Store::roundPrice()4 अंकों की परिशुद्धता के साथ गणना करने के लिए विधि को ओवरवोट करते हैं । लेकिन यह पेपल भुगतान के मुद्दों का कारण बनता है।

क्या उन समस्याओं का कोई हल है?

संपादित करें:

हमने वास्तव में एक आधिकारिक कोर पैच की कोशिश की, जो मूल रूप से 4-अंकीय गोलाई को जोड़ता है \Mage_Tax_Model_Sales_Total_Quote_Shipping::_round, \Mage_Tax_Model_Sales_Total_Quote_Subtotal::_deltaRoundऔर \Mage_Tax_Model_Sales_Total_Quote_Tax::_deltaRoundजो एक कूपन राउंडिंग समस्या को ठीक करता है , लेकिन पेपल समस्या नहीं।


जहाँ तक मुझे याद है कि Magento के 4 दशमलव बिंदुओं के साथ कीमतों का भंडार है। इसलिए यदि कीमतें 4 दशमलव अंकों के साथ इनपुट हैं तो गणना सही है। लेकिन हो सकता है मैं गलत हूं।
user487772

1
"4 अंक वाले इनपुट" से आपका क्या तात्पर्य है? लेकिन मैगेंटो गोलाई 2 डीईसी के साथ काम करता है। अंक। इसके अलावा, मुझे लगता है कि पेपाल इंटरफ़ेस 2 डीईसी के साथ काम करता है। अंक - ऐसा लगता है जहां समस्या शुरू होती है।
एलेक्स

यदि मैं सही ढंग से याद करता हूं, यदि आप 4 दशमलव अंकों के साथ व्यवस्थापक में इनपुट करते हैं तो इसे 4 दशमलव अंकों के साथ db में सहेजा जाएगा। फिर इसे आउटपुट के दौरान 2 बिंदु पर गोल किया जाएगा, लेकिन गोलाई सही होगी क्योंकि 4 दशमलव बिंदु के साथ कीमत गोल होगी।
user487772

ज़रूर - लेकिन हमारे पास मुख्य रूप से कुल गणना की समस्याएं हैं, खासकर अगर प्रतिशत-आधारित कूपन कोड शामिल हैं।
एलेक्स

ओह, तो मुझे आपका सवाल गलत लगा। माफ़ कीजिये।
user487772

जवाबों:


10

हम कोर मैगेंटो कर मॉड्यूल के कई चक्कर लगाने वाले मुद्दों से अवगत हैं जो वर्णित परिदृश्यों को कवर करते हैं। वर्तमान में हम एक आगामी 1.13 रिलीज के लिए उन मुद्दों पर काम कर रहे हैं। उन गोलमोल मुद्दों को एक साधारण पेपैल चेक ट्रिगर कर रहा है जो निर्धारित करता है कि कार्ट में लाइन आइटम सही तरीके से जोड़ते हैं या नहीं। ऐसा लगता है कि फैबियन का पैच शॉर्ट टर्म में पेपाल चेक का ख्याल रखता है।

यदि आपके पास कोई सवाल, टिप्पणी, या सुझाव हैं कि हम कैसे Magento टैक्स मॉड्यूल में सुधार कर सकते हैं तो कृपया मुझसे संपर्क करने में संकोच न करें क्योंकि मैं उत्पाद प्रबंधक करों के लिए जिम्मेदार हूं।

सादर, चक


महान! क्या दिखाने के लिए किसी तरह का टेस्ट सूट उपलब्ध है जो कि मुद्दों से निपटेगा?
एलेक्स

1
चक, क्या आप सत्यापित करने के लिए अपनी उपयोगकर्ता जानकारी सेट करना चाहेंगे?
बर्कमार्क

परीक्षण केवल आंतरिक हैं। जहाँ तक ज्ञात गोलाई मुद्दों पर अधिक विस्तार है - यह थोड़ा दिलचस्प है। एक ग्राहक उन्हें मूल्य, कर की दर, छूट आदि के विशिष्ट संयोजनों का उपयोग करते हुए कुछ कर कॉन्फ़िगरेशन से जुड़ा होने के रूप में देखेगा। 1.13 के लिए हमारा दृष्टिकोण सामान्य कर विन्यासों की पहचान करना और यह सुनिश्चित करना है कि # संयोजन गणितीय रूप से गोलाई त्रुटियों और टैग का उत्पादन नहीं करेंगे। कॉन्फ़िगरेशन (छोटे कोने वाले मामले) खतरनाक कॉन्फ़िगरेशन के रूप में जिन्हें टाला जाना चाहिए।
चक

थोड़ा-सा ऑफ-टॉपिक, लेकिन क्या इसका मतलब यह है कि सीई 1.8 संस्करण भी होगा?
सर्गेई गुक

हां - सीई लगभग एक महीने के अंतराल पर ईई रिलीज जारी करता है। 1.13 अगली EE रिलीज़ है।
चक

7

एंड्रियास वोग्ट के लिए धन्यवाद, मैं पेपैल दौर बग को ठीक करने के लिए एक मॉड्यूल का निर्माण करता हूं। एंड्रियास ने मुझे कुछ कोर हैक की गई फाइलें दीं और मैंने मॉड्यूल बनाया। यह जाँचता है कि वेदर सही हैं और अगर नहीं तो इसे सही किया गया।

Afaik कोर हैक जंगली में परीक्षण किया गया है। बहुत से लोगों ने मॉड्यूल के लिए कहा, लेकिन किसी भी ओएनवी ने मुझे प्रतिक्रिया नहीं दी कि यह काम करता है। लेकिन यह इकाई परीक्षण है! (केवल फिर से लिखना काम पर ध्यान देना, क्योंकि मुझे पता नहीं था, पेपैल समस्या क्या है; ;-))

https://github.com/magento-hackathon/PaypalRoundBugfix


1
हम्म .. कौन सा बग ठीक करता है? कार्ट-लाइन-आइटम-स्थानांतरण बग जैसा दिखता है। हमने वास्तव में कार्ट-ट्रांसफर को बंद कर दिया है। और क्या इसे 4-अंकों के गोल पैच के साथ लागू किया जाना है?
एलेक्स

क्या एक से अधिक समस्याएँ हैं? जैसा कि मैंने कहा, मेरे पास कोई विचार नहीं है, यह वास्तव में क्या ठीक करता है - अगर एक से अधिक समस्या है :(
फेबियन ब्लेसस्मिड

5

हम दोनों का सामना कर रहे हैं, पेपाल राउंडिंग बग और 100% छूट के कूपन कोड के साथ मुद्दा। हमें केवल कीमतों पर समस्या है (जैसे Eur 3,99 incl। कर), जहां शुद्ध मूल्य 3 अंक 5 (3,325) है। तो भी कर (यहाँ 20% के साथ) 3 अंक पर एक 5 (0,665) है। इसलिए यदि आप गोल करते हैं और दोनों कीमतों को जोड़ते हैं (क्या पेपैल और मैजेंटो करता है) कुल तो बेस प्राइस (Eur 4,00) से अधिक Eur 0,01 है।

सही कैक्ल्यूलेशन ईयूआर 3,32 नेट + ईयूआर 0,67 टैक्स = ईयूआर 3,99 होना चाहिए

जैसा कि हम भी एक सामान्य समाधान खोजने की कोशिश कर रहे हैं, हम एक कोशिश को ठीक करने के पेपल को गोल करते हैं!


महान, मुझे बताओ कि अगर आपको समस्या है, तो मैं मदद करने के लिए उत्सुक हूं और जंगली को बगफिक्स देखने और इसे ज़रूरत पड़ने पर डीबग करने के लिए!
फेबियन ब्लेसश्मिड

1
आपके द्वारा बताई गई समस्या FYI हमारी आगामी रिलीज (1.8 CE / 1.13 EE) में तय की गई है।
चक

@ चक मैंने 1.13.0.1 से Mage_Tax_Model_Sales_Total_Quote_Tax के साथ अभी इस परिदृश्य का परीक्षण किया है और यह 1.12 परियोजना में ड्रॉप-इन प्रतिस्थापन के रूप में समस्या का समाधान करता है। बहुत बहुत धन्यवाद। क्या 1.8 ई के लिए अभी तक कोई ईटीए है?
जोनाथन डे

4

कीमतों, मात्रा, छूट, कर और उनकी प्राथमिकताओं के बीच एक सामान्य संबंध है।

Assume:
x is the price
y is the percentage
s is the rounded sub-total

2 Directions
A) incl. Tax => excl. Tax => incl. Tax
B) excl. => incl. => excl.

महत्वपूर्ण मुद्दा है गोल सबटोटल मैं अधिकतम के साथ गणना कर रहा हूं। त्रुटि। 2 भिन्नात्मक अंकों का अर्थ है 5 * 10 ^ -3

ए) x * 10 ^ 2 / (y + 10 ^ 2) // s * (y + 10 ^ 2) / 10 ^ 2

बी) x * (y + 10 ^ 2) / 10 ^ 2 // s * 10 ^ 2 / (10 ^ 2 + y)

A)
Subtotal precision 2 fractional digits:
5*10^-3*(y+10^2)/10^2 => (y+10^2)/10^2<1 => no y
3 fractional digits:
5*10^-4*(y+10^2)/10^2 => (y+10^2)/10^2<10 => y<900
4 fractional digits:
5*10^-5*(y+10^2)/10^2 => (y+10^2)/10^2<10^2 => y<90900
(must be a very bad country)

......

B)
Subtotal precision 2 fractional digits:
(5*10^-3)*10^2/(10^2+y) => 10^2/(10^2+y)&lt;1 => every y

यदि आप छूट या करों के साथ गणना करना चाहते हैं और कीमत को पुनर्गणना करना चाहते हैं , तो अगला स्पष्टीकरण आपके लिए दिलचस्प हो सकता है। कृपया ध्यान रखें क्योंकि मैं किसी भी मामले को फ्रंट-एंड में नहीं जानता, यह संभव है कि एक आंतरिक गणना हो। ए) कुल => कर / छूट => कुल बी) कर / छूट => कुल => कर / छूट

ए) x * y / 10 ^ 2 // s * 10 ^ 2 / y

बी) x * 10 ^ 2 / y // s * y / 10 ^ 2

A) Subtotal precision 2 fractional digits:
(5*10^-3)*10^2/y => 10^2/y < 1 => y>10^2
Subtotal precision 3 fractional digits:
(5*10^-4)*10^2/y => 10^2/y < 10 => y>10
Subtotal precision 4 fractional digits:
... 10^2/y < 10^2 => y>1

2 अंकों की सटीकता के साथ, आपके पास NO FRACTIONAL DIGITS के साथ एक दर होनी चाहिए। उदाहरण: कुल: 15,15 कर-दर: 0,3% => कर 0,04545 => गोल 0,0455 कर: 0,0455 => कुल: 15,17

B) Subtotal precision 2 fractional digits:
(5*10^-3)*y/10^2 => y/10^2 &lt; 1 => y < 10^2

यदि कोई सटीक है, तो y + + 2 से कम होना चाहिए।

कृपया ध्यान दें कि क्या आप मात्रा को संभालते हैं। त्रुटि को गुणा किया जाएगा। इसलिए यदि आपके पास अधिकतम 10 ^ 5 है, तो आपके पास 7 की सटीकता होनी चाहिए। यह केवल चिंताजनक है, अगर आप ऑफसेट के साथ गणना कर रहे हैं!

ADDITION (9.10.2013 Magento संस्करण 1.7.0.2) ब्रुट्टो <=> नेट्टो और टैक्स // अमेरिका <=> पुराने यूरोप सेट पूर्णांक (सेंट) और मानचित्रण
f (x) = दौर (एक * x) a> 1 है विशेषण नहीं। मेरे शब्दों में: प्रत्येक मूल्य के लिए नहीं। एक मूल्य बहिष्करण मौजूद है। या कभी-कभी 2 कीमतें होती हैं। एक कीमत के लिए। या आप कैसे गणना करते हैं इसके आधार पर आपको 2 अलग-अलग परिणाम मिल सकते हैं

जर्मनी से वास्तविक-विश्व-उदाहरण:

आप एक मूल्य झुकाव दर्ज करने का प्रयास करते हैं। करों: 19,95 आप अपने मूल्यों के रूप में 16,76 (2 अंक) प्राप्त करते हैं। करों (19%)। यदि आप 19% करों की गणना करते हैं (16,76 * 0.19) 3,18। (जागरूक रहें: 19.95 * 019 / 1.19 ~ 3.19)

तो 1 सेंट अंतर है। 16,76 => 19.94 16.77 => 19.96

अमेरिका में कोई कीमत 19,95 है - नेट्टो की भूमि।

इसलिए जहां तक ​​संभव हो मूल कीमतों के साथ गणना करें। कीमतों में शामिल मूल्य और करों (टूटी संख्या) का उपयोग करें।

PayPal के पास यह धोखाधड़ी की जाँच है - अब मुझे यकीन नहीं है - लेकिन PayPal सिर्फ वह संख्या जोड़ता है जो Magento इसे देता है। देखें http://fabiankrueger.de/blog/magento-und-paypayl-rundungsfehler/ यदि यह सही नहीं है और PayPal पुनर्गणना कर या कुल, यह समस्या हल नहीं है, अन्यथा कीमतें - गलत या सही - Magento में पहले दिखाई गई हैं । इसे वहां हल करें। मेरे लिए यह काम करने लगता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.