2010-06-30 11 views
49

मुझे कई मुद्राओं से निपटने के लिए सर्वोत्तम प्रथाओं पर कोई चर्चा ढूंढना मुश्किल लगता है। क्या कोई मदद करने के लिए कुछ अंतर्दृष्टि या लिंक प्रदान कर सकता है?मल्टी-मुद्रा बेस्ट प्रैक्टिस एंड इम्प्लिमेंटेशन

मुझे समझ में आता है कि ऐसा करने के कई तरीके हैं - या तो लेनदेन से जहां आप दर्ज मूल्य को संग्रहीत करते हैं, या कार्यात्मक रूप से जहां आप आधार दर में परिवर्तित होते हैं। दोनों मामलों में विनिमय दर को संग्रहीत करने की आवश्यकता होती है जो उस मुद्रा को उस मुद्रा के लिए कवर करती है जिसे भविष्य में परिवर्तित करने की आवश्यकता हो सकती है।

मुझे लेनदेन संबंधी दृष्टिकोण की लचीलापन पसंद है, जो पुरानी विनिमय दर जानकारी को बाद की तारीख में दर्ज करने की अनुमति देता है, लेकिन संभवतः कार्यात्मक दृष्टिकोण की तुलना में अधिक ओवरहेड (जैसा कि आपको अधिक विनिमय दर डेटा स्टोर करना है) है।

प्रदर्शन & स्केलेबिलिटी प्रमुख कारक हैं। हमारे पास (सभी .net) एक जीत & वेब क्लाइंट, एक रिपोर्ट सूट और वेब सेवाओं का एक सेट है जो डेटाबेस बैक-एंड को कार्यक्षमता प्रदान करता है। यदि आवश्यक हो तो मैं विनिमय दर जानकारी कहीं (उदाहरण के लिए क्लाइंट पर) कैश कर सकता हूं।

संपादित करें: मुझे वास्तव में कुछ दस्तावेज़ों या उत्तरों के लिंक पसंद आएंगे जिनमें पिछले अनुभव से 'गॉथचास' शामिल है।

+0

मैं वे केवल पीटर Selinger से एक अच्छा ट्यूटोरियल है कि उपयोगी http://www.mathstat.dal.ca/~selinger/accounting/tutorial.html – Maske

उत्तर

33

मुझे कोई निश्चित चर्चा नहीं मिली, इसलिए मैंने अपने निष्कर्ष पोस्ट किए, मुझे उम्मीद है कि यह किसी की मदद करेगा।

मुद्रा तालिका में किसी भी वैश्वीकरण कक्षाओं का उपयोग करने के लिए संस्कृति कोड शामिल होना चाहिए।

लेन-देन की विधि

  • मुद्रा में स्टोर ग्राहकों के लिए स्थानीय और लेनदेन मुद्रा है कि जब लेन-देन हुआ लागू किया के लिए कई रूपांतरण दर की दुकान।
  • आवश्यक है प्रत्येक मुद्रा के लिए कई विनिमय दरों
  • साइट सेटिंग्स तालिका इनपुट मुद्रा संग्रहीत करेंगे ग्राहक स्तर पर मूल्यों की
  • इनपुट & आउटपुट कोई भूमि के ऊपर होता है के रूप में यह मूल्य माना जा सकता है सही मुद्रा में है
  • विनिमय दर लागू करने के लिए, आपको दर्ज मूल्यों की मुद्रा (जो क्रॉस क्लाइंट रिपोर्ट के लिए अलग हो सकती है) की जाननी होगी, फिर लेन-देन की अवधि के दौरान मान्य होने वाली संबद्ध इकाई विनिमय दर से गुणा करें।

कार्यात्मक विधि

  • स्टोर एक आधार मुद्रा, इस मुद्रा कि समय के साथ लागू करने के लिए रूपांतरण दर पकड़
  • विचार सामने अंत और डेटाबेस के बीच बिंदु पर दिए जाने की जरूरत है सबसे अच्छी जगह है में मूल्यों को परिवर्तित करें
  • इनपुट प्रदर्शन को सामान्य रूप से प्रभावित किया जाता है क्योंकि मूल मुद्रा में रूपांतरण होने की आवश्यकता होती है। एक्सचेंज रेट को क्लाइंट पर कैश किया जा सकता है (नोट करें कि प्रत्येक इकाई एक अलग विनिमय दर का उपयोग कर सकती है)
  • यह विनिमय दर (आधार से अन्य सभी आवश्यक मुद्राओं) से एक सेट की आवश्यकता है
  • विनिमय दर लागू करने के लिए, प्रत्येक लेनदेन की आवश्यकता होगी आधार और आवश्यक मुद्राओं

कम्पोजिट

  • लेन-देन के बिंदु पर, दुकान व्यवहार मूल्य और कार्यात्मक मूल्य, कि जिस तरह से कोई विनिमय दर जानकारी संग्रहीत करने के लिए की आवश्यकता होगी के बीच परिवर्तित किया। (यह उपयुक्त एक समाधान के रूप में यह प्रभावी रूप से किसी भी मूल्य के लिए दो मुद्राओं के लिए आप को प्रतिबंधित नहीं होगा)

तुलना

वास्तविक, आप समारोह और लेन-देन संबंधी तरीकों के बीच चुनना है। दोनों के पास उनके फायदे & नुकसान हैं।

कार्यात्मक विधि को लेनदेन के लिए स्थानीय मुद्रा को स्टोर करने की आवश्यकता नहीं है, वर्तमान डीबी मूल्यों को मूल मुद्रा में परिवर्तित करने की आवश्यकता है, केवल विनिमय दर के एक सेट की आवश्यकता है, इसे लागू करने और बनाए रखने के लिए थोड़ा कठिन है हालांकि कम भंडारण की आवश्यकता है।

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

दोनों मामलों में, प्रत्येक लेनदेन को प्रत्येक मुद्रा के लिए लेनदेन के समय विनिमय दर की आवश्यकता होती है, जिसके लिए इसे परिवर्तित करने की आवश्यकता होती है - यह कार्यात्मक विधि के लिए लेनदेन के बिंदु पर आवश्यक है, हालांकि लेनदेन विधि पिछले विनिमय दर डेटा के रूप में अधिक लचीलापन की अनुमति देती है किसी भी समय प्रवेश किया जा सकता है (किसी भी मुद्रा का उपयोग करने की इजाजत देता है), यानी आप कार्यात्मक विधि में अन्य विनिमय दरों का उपयोग करने की क्षमता खो देते हैं।

निष्कर्ष

मुद्रा प्रबंधन के एक लेन-देन संबंधी विधि, एक लचीला दृष्टिकोण प्रदान करेगा ग्राहक प्रदर्शन और शून्य ग्राहक कोड संशोधन पर कोई नकारात्मक प्रभाव से बचने। रिपोर्टों में नकारात्मक प्रदर्शन प्रभाव होने की संभावना है, जहां विभिन्न मुद्राओं की आवश्यकता होने पर सभी को फिर से कार्य करने की आवश्यकता होगी। प्रत्येक ग्राहक साइट को एक मुद्रा संदर्भ स्टोर करने की आवश्यकता होगी जो बताती है कि उनकी इनपुट मुद्रा क्या है। उच्च स्तर पर विनिमय दरों को संग्रहीत करना संभव होना चाहिए (उदा। ग्राहक साइट आदि का समूह), इससे संग्रहीत डेटा की मात्रा कम हो जाएगी। यदि निम्न स्तर पर विनिमय दर की जानकारी आवश्यक हो तो समस्याएं हो सकती हैं।

+0

इससे कम से कम किसी की मदद की;) धन्यवाद। – Mic

+0

चीयर्स - कुछ फ्रीलांस काम करने के दौरान बस इसी तरह के समाधान के लिए इस खोज में आया! अच्छा है। –

+1

शुरू करने के लिए महान संसाधन। मैंने अपने डीबी टेबल में डेटा के दोनों सेट रिकॉर्ड करने का फैसला किया। यह प्रत्येक लेनदेन के लिए 'submit_currency, submitted_amount, conversion_rate, base_amount, base_currency' रिकॉर्ड है, जहां base_currency खाते के लिए डिफ़ॉल्ट मुद्रा है। इस तरह से मुझे पता है कि उपयोगकर्ता ने क्या दर्ज किया है, लेकिन मैं अभी भी समेकित प्रश्न कर सकता हूं और यदि मुझे आवश्यकता हो तो सब कुछ सामान्यीकृत रखें। – Federico

1

विनिमय दर में उतार-चढ़ाव के बाद, एक दृष्टिकोण जैसा आपने बताया है - एक "दर्ज की गई राशि" को संग्रहीत नहीं किया गया है, लेकिन एक साथी फ़ील्ड प्रदर्शित करता है जो केवल प्रदर्शित होता है और परिवर्तित राशि दिखाता है। रूपांतरण करने के लिए, विनिमय दरों की एक तालिका और उनकी लागू तिथि सीमाओं की आवश्यकता होगी। यदि इसका आकार छोटा है, तो क्लाइंट पर कैशिंग एक विकल्प है। अन्यथा, रूपांतरण करने के लिए एक दूरस्थ कॉल की आवश्यकता होगी।

+0

उपयोगकर्ता की inputting डेटा इस रूपांतरण में कोई दिलचस्पी नहीं कर रहे हैं हो सकता है मिल गया है, कभी भी अपनी स्थानीय मुद्रा देखना और दर्ज करना चाहते हैं। अन्य देश समेकित डेटा पर रिपोर्ट देखना चाहते हैं, लेकिन दूसरी मुद्रा में –

2

(मैं यह सोचते कर रहा हूँ आप पहले से ही पता है कि आप निश्चित रूप से नाव के रूप में मुद्रा डाटा स्टोर नहीं करना चाहिए और क्यों)

मेरी राय में, एक एकल आधार मुद्रा के साथ काम आसान हो सकता है; हालांकि, आपको मूल राशि, मूल मुद्रा, रूपांतरण दर और आधार मुद्रा राशि को सहेजना चाहिए - अन्यथा आपका लेखांकन विभाग। आपको जिंदा खा सकता है, क्योंकि वे अलग-अलग मुद्राओं को अलग-अलग रखने की संभावना रखते हैं।

+0

मैं सहमत हूं, मुझे लगता है कि एकल आधार मुद्रा आसान हो सकती है। यह मेरी कंपनी के लिए नहीं है - उत्पाद बाहरी ग्राहकों के लिए है, इसलिए हमारे लेखांकन विभाग परवाह नहीं है। उस जानकारी को संग्रहीत करना हमारे लिए बहुत अधिक ओवरहेड होगा। हालांकि इसका उल्लेख करने के लिए +1। –

+1

मैं एक उचित विश्लेषण की तलाश में हूं, इस तरह की चीज़ों पर कुछ साइटें या श्वेतपत्र होना चाहिए? –

15

कोई भी जवाब नहीं है, क्योंकि यह उस मुद्रा पर लेनदेन को संभालने के तरीके पर निर्भर करता है। कुछ कंपनियां विदेशी मुद्राओं का प्रबंधन करने के लिए काफी परिष्कृत तरीकों का उपयोग करती हैं। मेरा सुझाव है कि आप बहु मुद्रा एकाउंटिंग पर पढ़ लें।

मुख्य बात यह है कि यूनिट में डेटा कैप्चर करना, मूल्य & दिनांक जिसमें व्यापार लेनदेन किसी भी रूपांतरण के बिना किया जाता है, या आप अनुवाद में कुछ खोने का जोखिम लेते हैं। प्रदर्शन के लिए & रिपोर्टिंग, उपयोगकर्ता के इरादे के आधार पर मूल विनिमय दर या किसी अन्य विनिमय दर का उपयोग करके मांग पर रूपांतरित करें।

स्टोर & मूल्यों के साथ 'दशमलव' (सी # में) के रूप में गणना करें - फ्लोट/डबल का उपयोग न करें या आप स्वयं को गोलाकार त्रुटियों के लिए कमजोर छोड़ दें।

उदाहरण के लिए, जिस तरह से मैं एक पिछले जन्म में एक बहु मुद्रा एप्लिकेशन किया था:

  • हर दिन, दिन के लिए विनिमय दर निर्धारित किया जाएगा और यह एक डेटाबेस में संग्रहीत और रूपांतरण के लिए कैश की गई हो गया आवेदन में।
  • सभी लेन-देन मूल्य + मुद्रा + दिनांक (यानी।कोई रूपांतरण नहीं)
  • उपयोगकर्ता की मुद्रा में लेनदेन प्रदर्शित करना फ्लाई पर किया गया था। यह स्पष्ट करें कि यह लेनदेन मुद्रा नहीं है, लेकिन एक प्रदर्शन मुद्रा है। जब आप छुट्टी पर जाते हैं तो यह क्रेडिट कार्ड स्टेटमेंट के समान होता है। यह विदेशी लेनदेन राशि दिखाता है और फिर यह आपकी मूल मुद्रा में कितना खर्च करता है।
+6

कोई 'एक विनिमय दर प्रति दिन' नहीं है। यह अवधारणा वास्तविक जीवन पर लागू नहीं होती है, उसी दिन, आप अपने बैंक से 2 बार और 2 अलग-अलग विनिमय दर पर यूरो खरीद सकते हैं। –

+2

दिलचस्प अंक। आपने जो कुछ कहा है, वह उस पर अधिक ध्यान नहीं देता है। हमारे अधिकांश ग्राहकों के पास एक सेट एक्सचेंज दर होगी जिसमें 3-6 महीने शामिल होंगे। ऐसा लगता है कि बड़े corperations ऐसा करते हैं। चूंकि हमारे पास एक व्यवसाय नहीं है, इसलिए हमें एक मानकीकृत दृष्टिकोण की आवश्यकता है। अनुवाद में कुछ खोने के बारे में आपकी क्या बात नहीं है - जब तक लेनदेन के दौरान आपके पास वैध विनिमय दर हो, तब तक आपको वह समस्या नहीं होगी। अच्छे उत्तर के लिए –

+0

+1, हालांकि मुझे यकीन नहीं है कि यह हमारे सॉफ़्टवेयर के लिए सबसे अच्छा तरीका है। –

8

हमारी कंपनी एकाधिक मुद्राओं के लेखांकन और बजट से संबंधित है। समाधान हम कार्यान्वित काफी सीधी-सपाट है, और निम्नलिखित शामिल हैं:

  1. एक मुद्रा की मेज, साथ दशमलव की संख्या सहित कुछ क्षेत्रों मुद्रा के लिए विचार किया जाना (हाँ, कुछ मुद्राओं के साथ प्रबंधित किया जा करने के लिए है 3 दशमलव ...) और एक विनिमय दर मूल्य, जिसका 'गैर-निष्पादित' या 'लंबित' वित्तीय लेनदेन (इन्फ्रा देखें) का मूल्यांकन करते समय 'प्रस्तावित/डिफ़ॉल्ट विनिमय दर' होने के अलावा कोई अन्य अर्थ नहीं है

  2. इन इस मुद्रा तालिका में, रिकॉर्ड में से एक की विनिमय दर 1 है। यह हमारी प्रणाली में मुख्य/पिवट मुद्रा है

सभी वित्तीय लेन-देन, या एक वित्तीय आयाम (क्या हम अपनी भाषा में प्रतिबद्धताओं कहते हैं) के साथ सभी कार्यों, या तो 'लंबित' या 'मार डाला' हल कर रहे हैं:

  1. लंबित लेनदेन उदाहरण चालानों के लिए हैं जिन्हें किसी निश्चित तारीख पर किसी निश्चित राशि के लिए प्राप्त होने की उम्मीद है। हमारे बजट अनुवर्ती प्रणाली में, इन राशियों को हमेशा मुद्रा तालिका में उपलब्ध 'प्रस्तावित/डिफ़ॉल्ट विनिमय दर' के अनुसार पुनर्मूल्यांकन किया जाता है।

  2. निष्पादित लेनदेन हमेशा निष्पादन दिनांक, राशि, मुद्रा और विनिमय दर से बचाया जाता है, जिसे निष्पादन डेटा दर्ज करते समय पुष्टि/टाइप किया जाना चाहिए।

+0

मुख्य/पिवट मुद्रा क्या है? उपयोगी उत्तर के लिए +1 पर विरोधाभास करता है, क्या आपने कभी ऐसी प्रणाली के साथ काम किया है जो मूल मुद्रा में परिवर्तित हो जाता है? हम डेटा के साथ विनिमय दर जानकारी नहीं रखेंगे, क्योंकि विनिमय दर समय के साथ लागू होगी। बस हमारे ग्राहक ऐसा कैसे करते हैं। वैसे भी हर लेनदेन के लिए लाइव एक्सचेंज रेट प्राप्त करने में बहुत अधिक ओवरहेड होगा। –

+1

लेनदेन के साथ विनिमय दर को संग्रहीत करके, क्या इसका मतलब केवल एक मुद्रा (और पीछे) में रूपांतरण की अनुमति देकर प्रतिबंधित नहीं है? –

संबंधित मुद्दे