سلام خدمت همکاران و دوستان گرامی
نسخه 305 در اسفند ماه 1390 آماده شد و شامل تغییرات و امکانات زیر می باشد :
* صدور اطلاعات فروش در فایل صادره (XML) و فراخوانی آنها: تمامی اطلاعات پایه فروش، برگهها و قوانین صادر میشوند.
محدودیتی در فراخوانی سطرهای اصلی برگههای فروش و پیشفاکتورها و قراردادها وجود دارد: سطرهای اصلی همواره به صورت بهای واحد دستی فراخوانی میشوند و ارتباط آنها با تعرفه (و اکثر موارد هم بها با مرجع) قطع خواهد شد.
مکانیزمهای صدور اطلاعات بسیار شبیه به مکانیزمهای موجود برای اطلاعات، اسناد و برگههای قبلی میباشند. کماکان صادر کردن اسناد به معنی صادر کردن برگههای فروش ما به ازای آنها نیز هست.
اتصال درخواستها به پیشفاکتور و قرارداد اجباری نیست؛ یعنی همانطور که در مورد اتصال رخدادهای انبار به درخواستهای کالا داشتیم، در مورد اتصال درخواستها به پیشفاکتور یا قرارداد، چنانچه پیشفاکتور مرجع یافت نشود (فراخوانی نشده باشد) خطا نخواهیم داشت و صرفا درخواستهایی مستقل از پیشفاکتور یا قرارداد فراخوانی خواهند شد. شبیه این وضعیت در مورد اتصال رخدادهای انجام خدمات به درخواست خدمات و نیز اتصال رخدادهای درخواست خدمات به پیشفاکتور یا قرارداد هم وجود دارد.
در زمان فراخوانی اسناد و برگهها از یک فایل صادره، ترتیبی داده شده که برگهها و اسناد به ترتیب ایفای نقش در اتصالات رخدادها فراخوانی شوند - یعنی ابتدا پیشفاکتورها و قراردادها خوانده شده (و بعد قراردادهای الحاقی) و سپس درخواستها کالا و خدمات و برگههای انجام خدمات و پس از آنها به سراغ اسناد میرویم. در مورد اسناد، ترتیبی داده شده که اسناد انبار قبل از فروش فراخوانی شوند تا در زمان فراخوانی اسناد فروش (فاکتور یا صورت حساب برگشت) امکان اتصال رخدادهای فروش به رخدادهای انبار را داشته باشیم.
* ارتباط حساب با تفصیلیها صادر میشوند و فراخوانی هم میشوند. این نوع اتصال بسیار دردسرساز بود و تا این نسخه از آن صرفنظر کرده بودیم. این دردسر از رفتار متعارف سیستم در صدور و فراخوانی زنجیرهای اطلاعات ناشی شده بود. در مورد ارتباط حساب و تفصیلی، این رفتار زنجیرهای باعث میشد که در هر بار صدور و فراخوانی دادهها کاربر مجبور به تحمل فراخوانی تعداد زیادی حساب و تفصیلی شود (حتی اگر فقط میخواسته که تعداد اندکی حساب یا تفصیلی را جا به جا نماید). اگر نمیخواست که تفصیلیها (یا حسابها) را فراخوانی نماید هم مرتبا با خطای فلان داده در سیستم موجود نیست مواجه میشد.
برای رفع این مشکل دو تمهید اندیشیده شده: یکی اینکه ارتباط حساب با تفصیلیها را جزیی از حساب بدانیم (و نه تفصیلی). به این ترتیب در زمان صدور اطلاعات حسابها (و فراخوانی آنها) با این ارتباط درگیر هستیم و در زمان صدور و فراخوانی تفصیلیها اصولا کاری با این ارتباط نخواهیم داشت. این رفتار از انفجاری شدن حجم دادهها در اثر صدور و فراخوانی زنجیرهای دادهها ممانعت میکند.
دیگر اینکه در تنظیمات فراخوانی، یک پارامتر برای تعیین نحوه فراخوانی "ارتباط بین حسابهای جدید و تفصیلیها" تعریف شده است. این تنظیم به شرط فراخوانی حسابهای عملیاتی یا غیرعملیاتی فعال میشود و دارای 3 گزینه قابل انتخاب است:
بطور کامل فراخوانی شوند / به شرط وجود تفصیلیهای مربوط فراخوانی شوند / فراخوانی نشوند
حالت اول همان داستان استاندارد زنجیرهای است که در صورت انتخاب آن لازم است تا تفصیلیها نیز فراخوانی شوند، وگرنه ممکن است تعداد زیادی خطای "تفصیلی یافت نشد" دریافت شود. حالت آخر هم مشابه رفتار نسخههای قبل است. اما انتخاب حالت دوم باعث خواهد شد که ارتباط مورد نظر تا حد امکان فراخوانی شود - اگر تفصیلی یافت نشد، ارتباط هم برقرار نمیشود و البته خطا نخواهیم داشت.
* برگشتهای دوره قبل: پیش از این امکاناتی برای تسهیل تنظیم رخدادهای برگشت دوره جاری داشتیم - به شکل انتخاب یکباره تعدادی رخداد مرجع از فهرست رخدادهای انبار. شبیه این امکانات را برای برگشتهای دوره قبل نیز ایجاد کردیم. در برگههای برگشت دوره قبل میتوان فهرستی از رخدادهای انبار را احضار نمود و تعدادی از آنها را انتخاب کرد و متناظر با آنها برگشت دوره قبل تنظیم نمود. بهای رخدادهای برگشت خروج دوره قبل نیز متناظر با بهای رخداد خروج (با تقسیم به نسبت بر حسب مقدار) تعیین خواهد شد.
* در اختیارات کاربران دو آیتم در مورد بچهای منقضی شده اضافه کردهایم: "استفاده از بچهای منقضی شده در رخدادهای خروج" به دو گونه "با اخطار" و "بدون اخطار". این آیتمها در زمان ذخیره برگههای خروج و نیز ذخیره برگههای فروش (در صورتی که منجر به تنظیم خودکار برگههای خروج کالا شود) کنترل میشوند. با توجه به بحثهای قبلی، برای رخدادهای نقل و انتقال نیز این کنترل را انجام خواهیم داد. این آیتمها در شاخه برگه (انبار) --> تنظیم برگههای انبار قرار داده شدهاند.
* در تعیین خودکار بچ برای رخدادهای خروج (و نقل و انتقال)، ترتیب سطرهای احضار شده تغییر کردند به صورتی که بچهای منقضی شده در انتهای فهرست آورده شوند. بنابر این سیستم به صورت پیشفرض سعی میکند مقدار مورد نظر را ابتدا از بچهایی که دارای تاریخ انقضا هستند و هنوز منقضی نشدهاند تامین نماید. ترتیب سطرها در بین این موارد به گونهای است که احتمال استفاده از بچهایی که زودتر منقضی میشوند بیشتر باشد. سپس در صورت نیاز به سراغ بچهای فاقد تاریخ انقضا خواهد رفت و در انتهای فهرست هم بچهای منقضی شده نامزد خواهند شد.
* در فهرست رخدادهای مالی (حسابداری و دریافت و پرداخت) و نیز تمامی گزارشهای مبتنی بر این فهرست (عملا تمامی گزارشهای مالی) فیلدهای جدیدی حاوی اطلاعات مرکز عملیات مالی (دریافت و پرداخت) اضافه شدند. با در اختیار داشتن این فیلدها میتوانیم با تنظیم شرایط مناسب، مثلا یکباره از تمام اسناد یک مرکز یا تمام اسناد یک نوع مرکز (مثلا تنخواه) تراز بگیریم.
* یک پارامتر جدید در Admin در تنظیمات سرور اضافه کردیم: "پایگاههایی که کاربر به آنها دسترسی ندارد در فهرست بازنمایی نشوند". در صورت علامتگذاری این گزینه، در اتصال به سرور، فهرست پایگاهها پردازش میشود و پایگاههای پیشگفته از فهرست حذف خواهند شد. اینها پایگاههایی هستند که کاربر و هیچیک از گروههایی که کاربر به آنها تعلق دارد در پایگاه، مجاز (تعریف) نشده باشند.
* در Admin برای فهرست پایگاهها ستون ردیف اضافه شده است.
* مقایسه تاریخ درخواست و تحویل: فیلدهای زیر به فهرست رخدادهای انبار (و تمام سایر گزارشهای انبار) اضافه شدند: تاریخ درخواست، مقدار درخواست و تفاوت تاریخ تحویل و درخواست (بر حسب روز). در مورد تفاوت تاریخ به این شکل عمل شده که اگر رخداد انبار فاقد درخواست باشد، فیلد "خالی" خواهد بود و در غیر اینصورت تفاوت مزبور را بر حسب روز (مثبت یا منفی) بازنمایی میکند. مشابه این داستان را برای فهرست رخدادهای انجام خدمات نیز پیاده کردیم.
* در اختیارات کاربران، آیتمهایی برای ملاحظه مجموعه های حساب، تفصیلی و کالا لحاظ کردیم. ترتیبی اتخاذ شده که آیتمهای قبلی تعریف مجموعهها به جای ملاحظه مجموعهها نیز قابل استفاده باشد (اگر جز این بود، میبایست برای تمام کاربران قبلی سیستم که میتوانستند مجموعه تعریف کنند، اختیار ملاحظه مجموعه نیز لحاظ میشد!). همین نکته باعث شد که پیچیدگی این کار به توان 2 برسد و افزودن این موارد بسیار ساده (و لوکس و کم کاربرد) درست یک هفته زمان ببرد!!!
* بازنمایی نقل و انتقال در گزارشهای انبار: در فهرست رخدادهای انبار (و عملا در تمام گزارشهای انبار) برای رخدادهای طرف نقل و انتقال، تعدادی فیلد برای بازنمایی اطلاعات رخداد نقل و انتقال مربوط را تعریف کردیم. این فیلدها با پیشوند "نقل شده از" قابل شناسایی هستند و عبارتند از اطلاعات کالا و انبار و مقدار و مانند آنها. یک فرم نمایش نمونه برای بازنمایی این اطلاعات نیز برای گزارش فهرست رخدادهای انبار تعریف شده است. در تمام گزارشهای انبار میتوان از این فیلدها در شرایط نیز استفاده نمود.
* در "شرایط" برای فیلدهای "قابل انتخاب" - مثل نام انبار (قابل انتخاب) - دو عملگر جدید "یکی از" و "هیچیک از" پیاده شدهاند. با این عملگرها، در زمان تنظیم شرط با فهرستی از آیتمهای قابل انتخاب به صورت قابل علامتگذاری مواجه خواهید شد.
ترتیبی داده شد که در "تمام" صفحات سیستم، هر جا که میسر باشد از این فیلدهای قابل انتخاب در تنظیم شرایط استفاده کنیم. به صورت خلاصه در این موارد در اختیار هستند:
فهرست اسناد: بخش
خلاصه اسناد (و تمام گزارشهای مالی که با فهرست رخدادها در ارتباط هستند یا شرایط آنها برروی رخدادها تنظیم میشود): بخش + واحد پول (ارز) + واحد مقدار - تعداد
فهرستهای حساب و تفصیلی (و تمام مواردی که شرایط برروی حسابها و تفصیلیها تنظیم میشود): بخش + واحد پول پیشفرض + واحد مقدار - تعداد پیشفرض
رسیدها: بخش + نوع رسید
کالاها: واحد اصلی کالا
مراکز مصرف یا تامین کالاها و خدمات: گروه محاسباتی فروش
فهرست برگههای انبار: بخش + انبار برگه
فهرست رخدادهای انبار (و عملا تمام گزارشهای انبار): انبار برگه + بخش + انبار رخداد + واحد اصلی کالا + واحد فرعی
فهرست برگههای درخواست کالا: بخش + انبار
فهرست رخدادهای درخواست کالا: بخش + انبار + واحد اصلی کالا + واحد فرعی
فهرست برگههای انجام خدمات: بخش
فهرست رخدادهای انجام خدمات: بخش + واحد اصلی خدمت + واحد فرعی
فهرست برگههای درخواست خدمات: بخش
فهرست رخدادهای درخواست خدمات: بخش + واحد اصلی خدمت + واحد فرعی
فهرست پیشفاکتورها و قراردادها: بخش + نوع فروش + مرکز فروش + شرایط تحویل + نحوه پرداخت
فهرست سطرهای پیشفاکتورها و قراردادها: بخش + نوع فروش + مرکز فروش + شرایط تحویل + واحد مقدار فروش + واحد پول در عملیات ارزی + نحوه پرداخت + واحد اصلی کالا یا خدمت + واحد فرعی
فهرست قراردادهای الحاقی: بخش
فهرست برگههای فروش: بخش + نوع فروش + مرکز فروش + شرایط تحویل + نحوه پرداخت
فهرست سطرهای برگههای فروش (و عملا تمام گزارشهای فروش): بخش + نوع فروش + مرکز فروش + شرایط تحویل + واحد مقدار فروش + واحد پول در عملیات ارزی + نحوه پرداخت + واحد اصلی کالا یا خدمت + واحد فرعی + انبار
فهرست کسور و اضافات برگههای فروش: بخش + نوع فروش + مرکز فروش + شرایط تحویل + نحوه پرداخت + واحد پول برای مبلغ ارزی
فهرست پورسانتهای برگههای فروش: بخش + نوع فروش + مرکز فروش + شرایط تحویل + نحوه پرداخت + واحد پول برای مبلغ ارزی
به جز اینها در چاپ انواع قوانین فروش، درصورت وجود شرایط، امکان تنظیم شرط برروی انواع 4 گانه گروه محاسباتی + نوع فروش + مرکز فروش + شرایط تحویل + نحوه پرداخت را خواهیم داشت.
* ارتباط کاربر با بخش:
برای هر کاربر، به غیر از بخش (اصلی) میتوان به صورت اختیاری تعدادی بخش دیگر را نیز لحاظ نمود (درست همانند ارتباط کاربر با انبارها که از قبل داشتیم). در زمان اجرا، کاربر قادر خواهد بود بخش خود را از بین بخش اصلی و یکی از این سایر بخشهای مجاز انتخاب نماید. به این منظور یک گزینه در "تنظیمات سیستم برای کاربر فعلی" تعبیه شده است. این امکانات برای کاربرانی که امکان فعالیت در سایر بخشها را "نداشته باشند" کاربرد دارد. چنانچه کاربری در بیش از یک بخش مجاز به فعالیت باشد (ولی نه در تمام سایر بخشهای سیستم) میتوانیم ارتباط کاربر با بخشهای مجاز را به صورت پیشگفته برقرار کنیم و در ادامه خود کاربر در حین کار با سیستم میتواند بخش خود را به یکی از آن بخشها تغییر دهد.
در هر بخش حالت "غیرمجاز" هم دیده شده است. این، مربوط است به بخشهایی که از قبل برای یکی از گروههای کاربر (مثلا Everyone) مجاز شمرده شده و حال میخواهیم این مجاز بودن را برای کاربر لغو کنیم (غیرمجاز نماییم). منطق رفتار سیستم شبیه است به همان حالتهای 3 گانه تعیین نشده / مجاز / غیرمجاز که از قبل در امکانات کاربر وجود داشتهاند.
* مدارک دریافت و پرداخت دارای شماره تکراری: در فهرست مدارک دریافت و پرداخت، به تکمه ملاحظه (ذرهبین) یک منو الصاق کردیم و در آن گزینهای برای بازنمایی فهرست مدارک دارای شماره تکراری پیاده کردیم. کنترل تکراری بودن شماره مدارک با توجه به نوع و ماهیت مدارک انجام میشود (شماره تکراری در انواع یا ماهیتهای متفاوت گزارش نمیشود). همچنین برای سادگی بیشتر، ترتیبی دادیم که کنترل مزبور فقط در بین مدارکی که در فهرست بازنمایی شدهاند انجام شود. به این ترتیب اگر انواع یا حالتها یا محدوده خاصی از مدارک وجود داشته باشند که شماره تکراری در آنها از نظر کاربر بدون اشکال باشد، میتوانیم ترتیبی دهیم که آن مدارک در فهرست بازنمایی نشوند و به عنوان شمارههای تکراری هم گزارش نشوند.
* مکانیزم افزودن یکباره سطر به مجموعههای حساب، تفصیلی و کالا و همچنین افزودن یکباره تعدادی کالا به یک کالای مرکب و یک تعرفه بازنویسی شد. عملیات با استفاده از استانداردهای جدید محاورهها انجام میشود و در تمام آنها میتوان از شرایط هم استفاده کرد.
* برای انواع برگههای انبار (ورود و خروج) فیلد جدیدی به عنوان "پیش فرض کد انبار" اضافه شد. کد انباری که در این فیلد درج میشود در تنظیم برگههای جدید بررسی میشود - اگر انباری با آن کد وجود داشته باشد و در ضمن کد مزبور در محدوده مجاز قرار داشته باشد مورد استفاده واقع خواهد شد.
* کنترل شرایط تنظیم شده برروی انواع فیلدهای حرفی تغییر داده شد به صورتی که عبارتهای خالی (یا پاک شده) در شرایط "وجود ندارد" صدق نمایند.
* برای واگذاری مدرک دریافتنی به شخص ثالث یک روال استاندارد تعریف شد.
* در تعیین امکانات کاربران، برای درخت امکانات، توانایی جستجو را اضافه کردیم. به این منظور یک دریچه برای درج عبارت جستجو و تکمههایی برای جستجوی بعدی و قبلی یا جستجو از ابتدا تعبیه شدند. فشار کلید Enter در دریچه عبارت جستجو به معنی جستجوی بعدی خواهد بود.
* فیلد آخرین اصلاح کننده برای سطرهای تعدادی از برگهها تعریف شد: درخواست کالا، درخواست خدمات، انجام خدمات، پیشفاکتور، قرارداد و قرارداد الحاقی (تمام انواع سطرها).
* در فهرست برگههای فروش، فیلدهای جدید برای بارنمایی اجزاء تشکیل دهنده جمع بهای هر برگه اضافه شدند: بهای کالاها و خدمات؛ تخفیف مستقیم؛ بها پس از کسر تخفیف؛ عوارض قانونی؛ مالیات بر ارزش افزوده و جمع عوارض و مالیات.
* کلیدهای میانر جدید: Insert برای درج بهای دستی دلخواه در محاوره تعیین تعرفه؛ Ctrl+Alt+P برای فراخوانی پیشفاکتور یا قرارداد در فاکتور فروش؛ Ctrl+Alt+H برای فراخوانی برگه انبار در برگههای فروش.
* گزارش سرجمع درخواستهای مراکز برای کاربران فروش مجاز شد.
* در مکانیزم پرکردن نشانی تحویل با استفاده از دفتر تلفن و نشانی (در برگههای درخواست کالا و خدمات، برگههای انبار و برگههای انجام خدمات) فیلدهای شماره تلفن اصلی و شماره تلفن همراه نیز در صورت وجود در انتهای نشانی تحویل درج خواهند شد.
* تغییر تعریف: تعیین امکانات کاربران من بعد مستلزم Login کردن کاربر ارشد به تمام نرمافزارها نیست. امکانات سایر نرمافزارها در این وضعیت بدون تغییر باقی میمانند (به "تعیین نشده" تبدیل نمیشوند).