امکانات جدید ارزی در نرمافزار فروش
مستند تکمیلی امکانات نسخه 9.02
سیاست کلی سیستم مالی نوسا XP در پردازش دادههای ارزی حفظ همزمان مبالغ ارز و معادل همان مبالغ برحسب واحد پول اصلی سیستم در کلیهی دادهها است. در این روش نرخ برابری ارز کاملا شناور خواهد بود و عملا به تفکیک هر برگه، رخداد و حتی فیلد قابل تعیین است. هر واحد پول (ارز) دارای یک نرخ برابری جاری یا "کنونی" با واحد پولی اصلی سیستم است که در جدول واحدهای پول (منوی سیستم) تعیین میشود. در همهی عملیات ارزی همین نرخ به عنوان پیشفرض لحاظ میشود. در بیشتر کاربردها (محاورههای تبدیل ارز به واحد پول اصلی سیستم، گزارشهای اختصاصی ارزی، تشکیل سند تسعیر...) امکان اصلاح نرخ برابری به دلخواه کاربر وجود دارد و همانطور که گفته شد، در حین ورود اطلاعات، با توجه به حفظ همزمان مبالغ ارزی و ریالی، نرخ مزبور نیز عملا در سیستم حفظ خواهد شد.
در برخی از کاربردهایی که به نظر ما حالت بلادرنگ و آنی داشتهاند (و بنا نبوده که رخدادها به جز تاریخ جاری در سیستم درج شوند) به صورت غیرقابل تغییر از نرخ برابری جاری ارز استفاده میشده است – مثل تعرفهها و محاسبات مربوط به کسور و اضافات و احیانا پورسانتهای ارزی. با این همه با تغییرات اساسی و عملا لحظهای نرخ ارز در سال(های) گذشته، برخی اصلاحات اساسی و مهم در سازو کار محاسبات ارزی برگههای فروش (تعرفهها و قوانین مکمل بها) ضروری به نظر میرسیدند. به صورت خلاصه اقدامات زیر انجام شدهاند:
- در محاسبات کسور و اضافات و پورسانتهای ارزی به جای توجه به نرخ برابری جاری (سیستم) به محتویات سطرهای اصلی برگههای فروش توجه میشود و همان نرخ برابری مورد استفاده قرار میگیرد.
- از این پس در هر برگهی فروش، در کنار "واحد پول (ارز) پیشفرض"، "پیشفرض نرخ برابری ارز" هم قابل تعیین است.
- در حین تعیین تعرفه برای سطرهای جدید، چنانچه واحد پول (ارز) سطر همان پیشفرض برگه باشد، از پیشفرض نرخ برابری ارز برگه استفاده خواهد شد.
- در محاورههای استاندارد تبدیل مبالغ ارزی به واحد پول اصلی سیستم در برگههای فروش، چنانچه واحد پول (ارز) همان پیشفرض برگه باشد، از پیشفرض نرخ برابری ارز برگه استفاده خواهد شد.
- در اصلاح تعرفه در یکی از سطرهای اصلی ارزی برگههای فروش، از نرخ قبلی (با توجه به محتویات سطر اصلی پیش از اصلاح تعرفه) استفاده میشود.
- در محاورهی تعیین تعرفه برای سطرهای اصلی برگههای فروش امکان تغییر آنی نرخ برابری فراهم شده است.
- اصلاح یکباره بهای سطرهای ارزی برگههای فروش با محدودیتها (و اشکالات) زیادی مواجه بود و تکمیل (و رفع اشکال) گردید.
روش جدید محاسبهی کسور و اضافات و پورسانتهای ارزی
در محاسبات مربوط به یک قانون مکمل بهای ارزی (کسور و اضافات و پورسانتها) ابتدا مبلغ ارزی محاسبه میشود و پس از آن مبلغ مابهازای آن برحسب واحد پول اصلی سیستم بدست میآید. بدیهی است که این عمل نیاز به یک نرخ برابری ارز دارد. تا پیش از این، نرخهای برابری ارز جاری سیستم در این محاسبات بکار میرفت.
باید توجه کنیم که قوانین مکمل بهای ارزی فقط در صورتی فعال میشوند که آن ارز در سطرهای اصلی برگهی فروش بکار رفته باشد. از طرف دیگر مبالغ مبنای مورد استفاده در این محاسبات ارزی همیشه از جمع مبالغ سطرهای ارزی برگهی فروش حاصل میشوند – نه همهی سطرها؛ فقط سطرهایی که "همان" واحد پول (ارز) قانون مکمل بها در آنها درج شده باشد.
در روش جدید، نرخ برابری ارز از محتویات سطرهای اصلی حاصل میشود؛ جمع مبالغ ریالی و ارزی بهای سطرهایی که همان واحد پول در آنها بکار رفته باشد محاسبه میشوند و نرخ برابری از حاصل تقسیم این دو ناشی میشود. اگر سطرهایی با نرخ برابری متفاوت داشته باشیم، از آنجا که از جمع بهای سطرهای استفاده کردهایم، نرخ برابری مورد استفاده در محاسبات مکمل بها عملا میانگین نرخهای برابری مورد استفاده در سطرهای اصلی برگه خواهد بود.
از قبل این امکان وجود داشته است که مبالغ قوانین مکمل بها، چنانچه در تعریف قانون مجاز شمرده شده باشد، توسط کاربر اصلاح شوند. در کسور و اضافات ارزی این اصلاح همزمان برروی مبالغ ارزی و ریالی میسر است – به عبارت دیگر نرخ برابری ارز در این سطرها به نوعی به دلخواه کاربر خواهد بود. البته اگر از محاوره تبدیل مبلغ ارزی به واحد پول اصلی سیستم استفاده شود، همان نرخ برابری که سیستم از قبل محاسبه کرده است مجددا دیده خواهد شد و قابل استفاده خواهد بود. اما توجه کنید که اینکه مبلغ توسط کاربر اصلاح شده است در سطر کسر یا اضافه (یا پورسانت) حفظ میشود و این موضوع تبعاتی دارد.
به عنوان مثال فرض کنید سطرهای اصلی را مثلا با نرخ برابری 120،000 تنظیم کنید + کسور و اضافات را محاسبه کنید + بهای یکی از کسور و اضافات را تغییر دهید ولی نرخ برابری را تغییر ندهید + برگشت از محاسبهی کسور و اضافات را انجام دهید + نرخ برابری سطرهای اصلی را مثلا به 130،000 تغییر دهید + در نهایت دوباره کسور و اضافات را محاسبه کنید، سیستم به خاطر میآورد که شما بهای یک قانون را از قبل تغییر دادهاید – این وضعیت را در محاورهی "محاسبه کسور و اضافات" برای همان قانون بازنمایی هم میکند. در این وضعیت قانون مورد اشاره با همان مبالغی که قبلا برای آن تنظیم کردهاید در برگه درج خواهد شد و در اینجا با همان نرخ برابری قبلی (120،000 به جای نرخ جدید 130،000) اعمال خواهد شد. البته با برداشتن علامت از گزینهی "مبلغ توسط کاربر اصلاح شود" مبلغ و نرخ برابری به مقدار پیشفرض (در این مثال 130،000) برگردانده خواهند شد.
نکتهی دیگری که ارزش اشاره دارد این است که اگر در فراخوانی (کپی) برگههای فروش، فرمان "کسور و اضافات یا پورسانتها فراخوانی شوند" صادر شود و همزمان فرمان "بهای کسور و اضافات حفظ شوند" هم صادر شود کسور و اضافات فراخوانی شده در وضعیت "مبلغ توسط کاربر اصلاح شود" قرار داده میشوند و نکاتی که در بالا اشاره کردیم در آنها صدق خواهند کرد.
اضافه کردن فیلد پیشفرض نرخ برابری ارز به برگههای فروش
در تنظیم برگههای فروش ارزی جدید (یا اصلاح برگههای قبلی) در عملیات متعددی نیاز به تبدیل ارز به واحد پول اصلی سیستم داریم. یکی از این عملیات را در بخش قبلی دیدیم: محاسبه کسور و اضافات و پورسانتهای ارزی و محاسبهی معادل آنها برحسب واحد پول اصلی سیستم. به جز این، در سطرهای اصلی برگههای فروش، بهای سطر، تخفیف مستقیم، مالیات و عوارض ارزش افزوده ارزی وجود دارد که همهی آنها نیز دارای معادل ریالی هستند. روش کار در برگههای فروش ارزی چنین است که ابتدا مبالغ ارزی تنظیم یا تعیین میشوند (توسط کاربر یا به صورت خودکار) و سپس معادل آنها برحسب واحد پول اصلی سیستم در مبالغ متناظر قرار میگیرند. در محاسبهی معادلهای ریالی مبالغ ارزی از نرخ برابری ارز استفاده میشود. این نرخ به تفکیک برای هر واحد پول (ارز) در سیستم تعیین میشود.
در برگههای فروش، از قبل، یک فیلد اختیاری به نام "پیشفرض واحد پول (ارز)" داشتیم. اگر این فیلد در برگه تعیین شده باشد (خالی باقی نمانده باشد) در تنظیم سطرهای اصلی جدید، به عنوان واحد پول (ارز) همان سطر مورد استفاده قرار میگیرد. البته تعیین یا تغییر واحد پول (ارز) در سطرها به واحدی متفاوت از پیشفرض برگه هم میسر است – تا پیش از تعیین تعرفه. این وضعیت تاثیر مستقیمی در انواع فراخوانی یا پرکردن برگههای فروش نیز دارد – مثلا با فراخوانی یک کالای مرکب یا برگهی تحویل کالا یا خدمات، سطرهای جدید با همان واحد پول (ارز) پیشفرض برگه ایجاد میشوند.
در نسخهی جدید، در کنار این پیشفرض، فیلد جدیدی به نام "پیشفرض نرخ برابری ارز" هم اضافه شده است. این فیلد هم اختیاری است. در همهی برگههایی که در نسخههای قبلی سیستم مالی ایجاد و در پایگاه اطلاعات ذخیره شدهاند، فیلد مزبور خالی است (و با توجه به ماهیت اختیاری آن، اشکالی هم ندارد). اما در هر برگهی جدیدی که در نسخهی جدید سیستم مالی تنظیم شود چنین عمل میشود: فیلد "پیشفرض نرخ برابری ارز" برای برگههایی که واحد پول (ارز) پیشفرض ندارند همیشه خالی و غیرفعال است. به محض تعیین واحد پول پیشفرض در برگه، نرخ برابری آن واحد پول (مقدار جاری و کنونی) از سیستم استخراج میشود و در این فیلد درج میگردد. کاربر میتواند مقدار پیشفرض را به دلخواه تغییر دهد. توجه کنید که تغییر مجدد واحد پول پیشفرض منجر به تغییر خودکار فیلد "پیش فرض نرخ برابری" میشود و مقدار قبلی را بازنویسی میکند (مقداری که ممکن است توسط کاربر تعیین شده باشد).
در بخشهای بعدی خواهیم دید که از این پس در برگههای فروش از این نرخ برابری پیشفرض به جای نرخ برابری جاری سیستم استفاده خواهد شد. چنین است که هر جا نیاز به نرخ برابری ارز باشد، ابتدا واحد پول (ارز) مورد نظر با واحد پول (ارز) پیشفرض برگه مقایسه میشود و اگر مساوی بودند و در ضمن برای برگه نرخ برابری پیشفرض تعیین شده باشد از همان نرخ برابری پیشفرض برگه استفاده میشود. اگر این شرایط برقرار نبودند همانند قبل از نرخ برابری جاری سیستم استفاده خواهد شد.
یکی از انواع برگههای فروش، قرارداد الحاقی است. در قراردادهای الحاقی از قبل امکان تعیین واحد پول (ارز) پیشفرض را نداشتیم. به صورت مشابه امکان تعیین پیشفرض نرخ برابری ارز را نیز نخواهیم داشت. البته دو فیلد مشابه تعبیه شدهاند که مربوط به قرارداد مرجع (همان قراردادی که به آن الحاق صورت گرفته است) هستند و بدیهی است که کاربر نمیتواند آنها را تغییر دهد. اما در عملیات ارزی از دو فیلد مربوط به قرارداد مرجع به همان صورت استفاده خواهد شد – رفتار سیستم در حین کار با قرارداد الحاقی درست مثل این خواهد بود که مشغول ویرایش قرارداد مرجع باشیم.
استفاده از پیشفرض نرخ برابری ارز برگه در حین استفاده از تعرفهها
همانطور که احتمالا پیشبینی کردهاید، مهمترین کاربرد فیلد پیشفرض نرخ برابری ارز برگههای فروش، در تعرفهها است. البته اگر مکانیزم اختصاصی و منطقی محاسبهی کسور و اضافات ارزی را نداشتیم در آن محاسبات هم ممکن بود از این پیشفرض استفاده شود اما با رجوع کسور و اضافات ارزی به بهای سطرهای اصلی، دیگر نیازی به این پیشفرض نخواهیم داشت. استفاده از پیشفرض نرخ برابری توضیح زیادی لازم ندارد: صرفا به جای اینکه از نرخ برابری جاری سیستم استفاده شود از نرخی که برگه تعیین میکند استفاده میشود. یادآوری میکنیم که این نرخ فقط به شرطی استفاده میشود که اولا واحد پول (ارز) مورد نظر همان واحد پول (ارز) پیشفرض برگه باشد و ثانیا پیشفرض نرخ برابری ارز در برگه تعیین شده باشد. مثلا در برگههایی که در نسخههای قبلی تنظیم شده باشند (و فاقد پیشفرض نرخ برابری باشند) کماکان همان نرخ برابری جاری سیستم اعلام خواهد شد. همچنین اگر کاربر پیشفرض نرخ برابری را وارد نکند (یا آنرا حذف – پاک – کند) مجددا همان نرخ برابری جاری سیستم اعلام خواهد شد.
استفاده از تعرفهها در بسیاری از مواقع به صورت خودکار (و بدون دخالت کاربر) انجام میشود. مثلا اگر مبداء تعیین بهای یک سطر اصلی جدید "تعیین با تعرفه" باشد ولی خود تعرفه انتخاب نشده باشد سیستم به صورت خودکار تعرفه و قوانین تغییر تعرفهی مناسب را اعمال میکند. به صورت مشابه در انواع فراخوانی برگهها، رخدادها، کالاهای مرکب و... نیز تعرفه به صورت خودکار تعیین میشود. در همهی این موارد، اگر برگه دارای واحد پول (ارز) پیشفرض باشد همان واحد پول در سطرهای جدید درج خواهد شد؛ درنتیجه مکانیزمهای مرتبط با تعرفه نیز "ارزی" خواهند شد و به همان صورتی که گفته شد از پیشفرض نرخ برابری ارز سیستم (بدون دخالت کاربر) استفاده خواهد شد.
استفاده از پیشفرض نرخ برابری ارز برگه در محاورههای تبدیل مبلغ ارز به واحد پول اصلی سیستم
برای درج دستی مبالغ ارزی از یک محاورهی استاندارد در کل سیستم مالی استفاده شده است. مثلا برای تعیین بهای واحد ارزی:
ابتدا کارکرد و امکانات این محاوره را یادآوری میکنیم. همانطور که دیده میشود دریچههایی برای تعیین مبالغ ارزی و ریالی و نرخ تبدیل در محاوره تعبیه شدهاند. دو تکمه به شکلهای و در کنار دریچههای مبلغ دیده میشوند. یکی از این تکمهها حالت "انتخابشده" دارد (جدارهی پررنگ – در شکل فوق تکمهی مجاور دریچهی مبلغ ارزی). وضعیت فوق به این معنی است که مبلغ ارزی به عنوان مبنا لحاظ میشود و با تغییر آن مبلغ ریالی بر اساس نرخ تبدیل محاسبه میشود. همچنین اگر در همین وضعیت مبلغ ریالی را تغییر دهیم مبلغ ارزی تغییر نمیکند بلکه نرخ تبدیل از روی مبالغ ریالی و ارزی محاسبه میشود. حال اگر تکمهی مجاور دریچهی مبلغ (ریال) را فشار دهید و آنرا در وضعیت انتخاب شده قرار دهیم اولا تکمهی مجاور مبلغ ارزی به شکل (انتخاب نشده) درمیآید و ثانیا از این پس تغییر مبلغ ریالی منجر به محاسبهی مبلغ ارزی از روی نرخ تبدیل میشود و در مقابل تغییر مبلغ ارزی منجر به تغییر نرخ تبدیل میشود.
وضعیت این دو تکمه در واکنش سیستم به تغییر نرخ تبدیل هم موثر است. اگر مبنا مبلغ ارزی باشد (تکمهی مجاور آن انتخاب شده باشد) تغییر نرخ تبدیل منجر به محاسبهی مبلغ ریالی خواهد شد و برعکس.
اگر از این محاوره برای تنظیم یک مبلغ جدید استفاده شود (یعنی از قبل در مبالغی که در اینجا ویرایش میشوند – در این مثال بهای واحد و بهای واحد ارزی – چیزی درج نشده باشد) پیشفرض نرخ برابری ارز در دریچهی نرخ تبدیل درج میشود. این پیشفرض در سایر بخشهای سیستم مالی (و تا پیش از این، حتی در برگههای فروش) همان نرخ برابری جاری سیستم بوده است. اما از این پس در برگههای فروش از پیشفرض نرخ برابری برگه (با تعریفی که پیش از این گفتیم) استفاده خواهد شد. توجه کنید که پیشفرض نرخ برابری برگه به شرطی قابل استفاده است که اولا تعیین شده باشد و ثانیا واحد پول (ارز) مندرج در سطری که مشغول ویرایش آن هستیم همان واحد پول (ارز) پیشفرض برگه باشد. اگر چنین نباشد مجددا از نرخ برابری جاری سیستم استفاده خواهد شد.
اما اگر از این محاوره برای اصلاح مبالغی که از قبل درج شدهاند استفاده شود نرخ تبدیل از محتویات قبلی فیلدهای در دست اصلاح (در این مثال بهای واحد و بهای واحد ارزی) محاسبه و بازنمایی میشود و البته به روشی که در بالا گفتیم قابل اصلاح است.
در کنار دریچهی نرخ تبدیل یک تکمه برای بازنشانی نرخ تبدیل پیشفرض یا سیستم نیز تعبیه شده است. در سایر بخشهای سیستم مالی (و تا پیش از این، حتی در برگههای فروش) این بازنشانی منجر به درج نرخ برابری جاری سیستم در نرخ تبدیل میشد. از این پس در برگههای فروش از پیشفرض نرخ برابری برگه در اینجا استفاده میشود. بازنشانی نرخ تبدیل، حسب مورد و بسته به اینکه کدام مبلغ (ارزی یا ریالی) را با تکمههای مجاور به عنوان مبنا انتخاب کرده باشیم، منجر به محاسبهی مبلغ ریالی از روی مبلغ ارزی و نرخ تبدیل یا برعکس خواهد شد.
استفادهی مجدد از نرخ برابری ارز اولیه در اصلاح تعرفه
فرض کنید در یک برگهی فروش که قبلا تنظیم و ذخیره کردهاید یک نرخ برابری ارز (قاعدتا مربوط به تاریخ قدیمی برگه) در سطرهای اصلی برای تعرفهها بکار رفته باشد. حال همان برگه را برای اصلاح احضار کنید و بخواهید مثلا تعرفه را تغییر دهید یا از یک قانون تغییر تعرفه جدید در آن استفاده نمایید. تا پیش از این همهی محاسباتی که در محاورهی تعرفه برای بدست آوردن مبالغ ریالی از روی مبالغ ارزی انجام میشدند، همگی، از نرخ برابری جاری ارز سیستم استفاده میکردند. با تغییراتی که در بخشهای قبل دیدیم معلوم شد که از این پس ممکن است به جای نرخ برابری جاری از پیشفرض نرخ برابری برگه استفاده شود (به شرطی که اولا وارد شده باشد و ثانیا واحد پولی که مشغول کار با آن هستیم همان واحد پول پیشفرض برگه باشد). اگر این شرایط برقرار نباشد (مثلا در حین اصلاح یکی از برگههای قدیمی که با نسخههای قبلی سیستم مالی تنظیم شدهاند و پیشفرض نرخ برابری در آنها درج نشده باشد)، کماکان از نرخ برابری جاری سیستم استفاده میشود. این وضعیت یک اشکال بسیار جدی را در اصلاح برگههای فروش قدیمی پیش میآورد.
در نسخهی جدید، اگر محاورهی تعرفه برای اصلاح یک سطر که از قبل تنظیم شده باشد بکار رود، همان نرخ برابری قبلی (که در بهای ریالی و ارزی سطر تاثیر داشته است) در محاورهی تعرفه به عنوان مبنای محاسبات بکار میرود.
یادآوری میکنیم که در برگههای فروش امکان تعیین تعرفه به صورت همزمان برای تعدادی سطر وجود دارد (مثلا برای استفاده از مقادیر پلکانی روی مجموع مقدار چند سطر و انتخاب یکباره تعرفه برای آنها). در این کاربرد نرخ برابری ارز از نخستین سطر از بین سطرهای انتخاب شده استخراج خواهد شد.
نرخ برابری قبلی به شرطی دوباره مورد استفاده قرار میگیرد که واحد پول (ارز) در محاورهی تعرفه همانی باشد که قبلا انتخاب شده است. بدیهی است که با تغییر واحد پول (ارز) دیگر نمیتوان از نرخ موجود از قبل استفاده کرد. البته اگر پس از تغییر واحد پول دوباره به همان واحد پولی که قبلا در سطر بوده بازگردید مجددا همان نرخ قبلی مورد استفاده واقع خواهد شد.
در بخش بعدی خواهیم دید که امکان تغییر دلخواه نرخ برابری و همچنین بازنشانی نرخ برابری پیشفرض برگه (یا سیستم) هم در محاورهی تعرفه تعبیه شده است.
امکان تغییر نرخ برابری ارز در محاورهی تعیین تعرفه
یک امکان جدید مفید دیگر، امکان تعیین یا تغییر دلخواه نرخ برابری ارز در محاورهی تعرفه است. همانطور که پیش از این دیدیم این نرخ در شروع کار از مقدار قبلی یا پیشفرض برگه (یا سیستم) تامین میشود. یک دریچه برای بازنمایی نرخ کنونی و همچنین تغییر دلخواه نرخ در انتهای محاوره (مجاور نتایج) قرار داده شده است. برای تغییر نرخ کافی است با mouse یا Tab مکاننما را به دریچهی "نرخ برابری ارز" منتقل کنید و نرخ مورد نظر را وارد کنید. اگر با Tab یا mouse از این دریچه خارج شوید نرخ جدید اعمال خواهد شد و میتوانید نتیجه را در مشاهده کنید. تصویب محاوره هم در همان حالت میسر است (و نرخ اعمال خواهد شد). تکمهی آشنای بازنشانی نرخ برابری پیشفرض یا سیستم هم درکنار دریچه (پس از تکمهی ماشین حساب) قرار داده شده است که کارکرد مشخصی دارد.
توجه کنید که با تغییر واحد پول (ارز) در محاورهی تعرفه، نرخ برابری ارز تغییر خواهد کرد و مقداری که وارد کردهاید با نرخ برابری واحد پول جدید جایگزین خواهد شد. در این حالت اگر پس از تغییر واحد پول مجددا به واحد پول قبلی بازگردید نرخ برابری مجددا توسط سیستم بازنویسی خواهد شد و حسب مورد به نرخی که قبلا در سطر استفاده شده بوده است یا نرخ پیشفرض برگه (یا سیستم) تبدیل میشود و به هر حال مقداری که شما وارد کردهاید حذف خواهد شد.