PDA

View Full Version : بهترین روش در ثبت سند حسابداری؟



rahro
جمعه 18 بهمن 1392, 16:46 عصر
سلام ، وقت بخیر
در ثبت اسناد یک سند حسابداری ، چندین سرفصل در چندین سطر درگیر میشود ، ( در صورتی که از سرفصل مشابه استفاده نشود در کمترین مورد 2 سطر و بیشترین مورد به بیش از هزار سطر!)

در هنگام ثبت سند در sql ، دو کنترل اساسی میبایست روی اسناد صورت گیرد.

کنترل اول در خصوص مانده سرفصل :

در اپلیکیشن به اساس سطح دسترسی هر کاربر ، یکی از این سه نوع برخورد را در درج سندی که باعث شود مانده آن سرفصل منفی شود ، وجود دارد.
1- در سطح 1 سند رول بک میشود و به کاربر کد سرفصلی که با درج آن در دیتابیس ، باعث ایجاد مانده منفی میشود گزارش داده میشود.
2- در سطح 2 سند ثبت میشود ولی از درج سطری که باعث منفی شدن سرفصل شده ممانعت بعمل امده و کد سرفصل مورد دار با کد سرفصل سیستمی بدهکاران داخلی سیستم و یا بستانکاران داخلی سیستم جایگزین میشود
3- در سطح 3 بی تفاوت از نوع اتفاقی که می افتد ، امکان منفی شدن مانده را به کاربر میدهد.

کنترل دوم در خصوص چکاپ شماره سریال اسناد:
اگر سندی دارای کنترل اسناد باشد و قبلا در جدول کنترل اسناد خروج شده باشد و یا وجود نداشته باشد ، با توجه به سطح دسترسی هر کاربر
1- یا از ثبت سند جلوگیری بعمل می آید
2- و یا نسبت به ثبت اقدام کرده و گزارش آن بعد از ثبت عملیات به کاربر اعلام میگردد.

می بایست از چه روشی برای درج این سند استفاده کنم ، که بالاترین سرعت را داشته باشم .
متشکرم

benyaminrahimi
جمعه 18 بهمن 1392, 20:31 عصر
معمولا یه فیلد برای سند تحت عنوان وضعیت در نظر میگیرند (یادداشت - مو قت - دائم ) و یک sp برای کنترل هایی که مد نظر دارید مینویسند چنانچه بکی از موارد صادق نباشد مثلا سند در سطح کل زده شده یا ترز نباشد (مجموع بدهکار بستانکار ) سند ذخیره میشود اما بصورت ثبت یادداشت نکته ای که حائز اهمیت است اینست که اسناد ثبت یادداشت در هیچ گزارشی تاثیر نمیگذارد

rahro
شنبه 19 بهمن 1392, 16:23 عصر
دوست عزیز
نکاتی که فرمودید رو رعایت کردم ، مسئله برای من نحوه پیاده سازی آن با کدهای اس کیو ال هستش ،
اینکه استفاده از کرسر پیشنهاد میشه ، کرسر چطور پیاده سازی بشه با while سرعت بالایی داره ، یا اینکه کرسر مناسب نیست !!

linux
شنبه 19 بهمن 1392, 22:00 عصر
[QUOTE=rahro;1971936]
دوست گرامی بستگی به طراحی جداول شما دارد در یک طراحی بهینه نه کرسر لازم خواهد شد نه while
برای نگهداری سندها شما دو جدول لازم دارید یکی شامل اطلاعات کلی سند دیگری شامل اطلاعات ریز سند
۱-جدول اصلی ممکن شامل رکوردهای زیر باشد
کدسند:به صورت منحصر به فرد و تولید خودکار
تاریخ سند
شماره سند
۲- جدول ریزسند شامل
۱- کدریزسند
۲- کد سند
۳-شماره حساب
۴- مبلغ( برای این مبلغ می تونید دوتا فیلد در نظر بگیرید یا یک فیلد که اعداد را منفی و مثبت ذخیره کنید)


فرض کنید شما مبلغ ۱۰۰ ریال از حساب صندوق جهت پرداخت قبض تلفن هزینه کردید
برای جدول یک
۱- شماره سند:۱ که توسط sql تولید میشه
۲- تاریخ سند: امروز
۳- شماره سند: ۱۰۰۰ شماره‌ای که کاربر خودش اخصاص میده
برای جدول دو
کدریزسند:کدسند:شماره حساب:مبلغ
۱۰۰: ۱ : ۱۰۰۰(شماره حساب برای صندوق که توی جدول حسابها تعرف شده): ۱۰۰- (وقتی از صندوق برداشت میکنیم صندوق بستانکار میشه اینجا من بستانکار را منفی نشون دادم)
۱۰۱: ۱: ۲۰۰۰(شماره حساب برای پرداخت تلفن ) : ۱۰۰ (این حساب اینجا بدهکار شده من مثبت نشون دادم)


select sum(amount) from subDoc
مقدار مبلغ بدست میاد اگر صفر نباشه پس سند تراز نیست.
قبل از این هم از چون تمام ریز اسناد تو این جدول ذخیره شده با یک سلکت ساده موجودی حساب صندوق بدست میاد
select sum(amount ) from subDoc where accNo='1000' موجودی حساب ۱۰۰۰ که اینجا حساب صندوق بود بدست میاد
دیگه نه کرسر می خواهد نه while
گیر شما در طراحی جداول هست بشتر