今天,我正在研究的Magento稅計算工作如何理解「的基礎上計稅方法」的行爲之間的區別。Magento爲什麼3個稅收計算方法?
我深深追查到Mage_Tax_Model_Sales_Total_Quote_Tax它實現在_unitBaseCalculation所有方法,_rowBaseCalculation,_totalBaseCalculation。
我發現他們產生相同的結果。那麼他們爲什麼要經歷實施它們的麻煩?
例如,單位價格計算就是計算單個單位的稅額,然後將折扣金額除以數量(如果折扣後應用了稅款),然後將兩者相減,然後再乘以數量...這只是引入舍入誤差。
而行彙總計算是最直觀的一個(這需要價格從行「分類彙總」)減去優惠金額(如果打折後加稅)。
而第三個是隻在第二個的集合體,一次計算。
這只是介紹了混亂和混淆稅務計算邏輯。任何人都可以闡明爲什麼這樣做?
(?舍入誤差的向後兼容性候選人TheDailyWTF獎?)
編輯:爲了記錄這是真的如Magento的1.6和1.7的,不知道舊的版本。
「剛剛引入的舍入誤差」 - 你確定嗎?你能證明兩種方法總是能產生相同的結果嗎?可能出現的問題示例:如果某個項目的稅金必須爲{貨幣單位}的確切數量,稅率爲17%,那麼每個成本爲20的項目的100個項目的總稅額不會超過2000個項目的1個項目! – AakashM 2012-08-14 12:53:38
嗯..我主要是用「很好」的數字進行測試,所以他們在我的測試中給出了相同的結果。我的意思是通過「舍入誤差」,每種方法都會根據舍入時間的不同而產生不同的結果,這對我來說似乎是非常直觀的。 – 2012-08-14 12:55:44
會計師(甚至更多稅務稽查員)都是陌生的人,他們很少被直覺,簡單的數學或者常識所打動。人們一直在做計費和稅收的時間比他們編程的時間長得多。有許多規則和法規'先有技術',軟件必須遵循,即使事後看來顯而易見的是重寫會帶來更好的系統。儘管如此,問還是有道理的。 – AakashM 2012-08-14 12:59:27