PDA

View Full Version : بهترین راه برای بستن دوره مالی



asilverisis
شنبه 13 اسفند 1384, 19:37 عصر
سلام
می خواستم بدونم به نظر شما بهترین راه برای بستن دوره مالی چیه ؟
برای بانک sql Server

Hamedm
شنبه 13 اسفند 1384, 19:51 عصر
سلام
می خواستم بدونم به نظر شما بهترین راه برای بستن دوره مالی چیه ؟
برای بانک sql Server

سلام

منظورت چیه؟ میشه بیشتر توضیح بدی؟

در پناه حق موفق باشید و پرتوان

HO457
شنبه 13 اسفند 1384, 20:24 عصر
سلام

منظورت چیه؟ میشه بیشتر توضیح بدی؟

در پناه حق موفق باشید و پرتوان

حامد جان منظور از بستن دوره مالی یا سال مالی اینه که یک سال مالی بعد از اینکه تمام محاسبات روش انجام شد و کارها روی بدهکار و بستانکار و اسناد انجام شد، آخر سال، سال مالی بسته میشه و اسنادی که کارهای مالی روی آنها تمام نشده به سال بعد منتقل میشن و سال مالی یا دوره مالی جدید ایجاد میشه.


سلام
می خواستم بدونم به نظر شما بهترین راه برای بستن دوره مالی چیه ؟
برای بانک sql Server

ببین برای بستن دوره مالی یه برنامه داشتم مینوشتم، برای بستن بعد از اینکه تمام کارها انجام میشد و حسابهای مانده منتقل میشد به سال جدید،یه جدول داشتم که توش اطلاعات سال مالی ذخیره میشد. بعد یه فیلد داشت CloseYear اگه یک میشد سال مالی بسته میشد و دیگه قابل اطلاعات سال مالی قابل تغییر نبود و فقط قابل مشاهده بود.

Hamedm
شنبه 13 اسفند 1384, 20:40 عصر
سلام


حامد جان منظور از بستن دوره مالی یا سال مالی اینه که یک سال مالی بعد از اینکه تمام محاسبات روش انجام شد و کارها روی بدهکار و بستانکار و اسناد انجام شد، آخر سال، سال مالی بسته میشه و اسنادی که کارهای مالی روی آنها تمام نشده به سال بعد منتقل میشن و سال مالی یا دوره مالی جدید ایجاد میشه.
آهان. حالا فهمیدم.
من یک پروژه داشتم که مشابه همین کارو باید انجام میدادم (البته با جزئیات بیشتری). ایده ام این بود:
در این برنامه سطح دسترسی روی فرمها تعیین میشد. یک فرم داشتیم به نام "قفل کردن سال". در اون فرم هر سال رو قفل میکردم. و تنها مدیر عامل شرکت به این فرم دسترسی داشت (در برنامه اینجوری تعیین شده بود و کاربر میتونست تغییر بده). در زمان ذخیره کردن اطلاعات هم با استفاده از یک تابع که نوشته بودم (سال رو میگرفت و میگفت که این سال قفل شده یا نه؟) چک میکردم که آیا سال باز است یا نه؟

برای انتقال هم اصلا نمیشه اظهار نظر کرد. بستگی به ساختار برنامه و ساختار دیتابیست داره.

در پناه حق موفق باشید و پرتوان

HO457
شنبه 13 اسفند 1384, 21:08 عصر
بهترین کاری که میشه کرد واسه عدم دسترسی به سال بسته شده اینه که یه متغیر global‌ تعریف بشه، بعد موقع موقع تغییر سال مالی، بیاد مقدار این متغیر false بشه، اینجوری دیگه نیازی هم نیست که از فرم(اصلاح میکنم از بانک) دوباره بخونه، بعد اگه سال مالی جاری انتخاب شد دوباره بیاد مقدار این متغیر و true کنه.


برای انتقال هم اصلا نمیشه اظهار نظر کرد. بستگی به ساختار برنامه و ساختار دیتابیست داره.

کاملاَ با حامد موافقم

Hamedm
شنبه 13 اسفند 1384, 21:54 عصر
سلام


اینجوری دیگه نیازی هم نیست که از فرم دوباره بخونه
عزیز جان من از بانک میخونم نه از فرم. در ضمن برنامه من یک سال مالی داشت و یک ماه مالی، حتی کاربر میتونست عملیاتهای یک ماه رو هم قفل کنه.
به همین سادگی.


بهترین کاری که میشه کرد واسه عدم دسترسی به سال بسته شده اینه که یه متغیر global‌ تعریف بشه، بعد موقع موقع تغییر سال مالی، بیاد مقدار این متغیر false بشهمن با استفاده از متغییر PUBLIC موافق نیستم.

در پناه حق موفق باشید و پرتوان

HO457
شنبه 13 اسفند 1384, 22:50 عصر
خوب، حامد جان کاری که خودت انجام میدی به چه صورت هست؟ بگو اگه بهتر باشه از روش شما استفاده کنیم. در بالا هم منظورم همان بانک بود نه فرم اشتباه توی تایپ بود، ولی فقط یه بار خونده بشه و تو یه متغیر ریخته بشه. ولی بازم نحوه کاری که خودت انجام میدی رو لطف کن بگو.

Hamedm
شنبه 13 اسفند 1384, 23:28 عصر
سلام


خوب، حامد جان کاری که خودت انجام میدی به چه صورت هست؟ بگو اگه بهتر باشه از روش شما استفاده کنیم. در بالا هم منظورم همان بانک بود نه فرم اشتباه توی تایپ بود، ولی فقط یه بار خونده بشه و تو یه متغیر ریخته بشه. ولی بازم نحوه کاری که خودت انجام میدی رو لطف کن بگو. روش من، خاص پروژه ای بود که داشتم مینوشتم چون جزئیات زیاد داشت. روش رو اینجا میگم اولا اگه ایرادی دوستان توش میبینند بگند، دوما اگه خواستند ازش ایده بگیرند.

پروژه برنامه حقوق و دستمزده که توش قسمتی داشتم به نام قفل کردن اطلاعات این هم عکس فرم:


http://i2.tinypic.com/qpj9g4.jpg


کاربر نام پروژه و ماه (ماه میتوانست ماه جاری نباشد) و نام لیستی را که میخواست انتخاب میکرد. و با فشار دادن روی دکمه "ثبت" اون لیست در ماه و پروژه انتخاب شده قفل میشد.
ساختار جدولی که برای این کار در نظر گرفتم بصورت زیر است:


http://i2.tinypic.com/qpjeir.jpg


روند کار در این قسمت زیاد پیچیده نبود (برعکس بقیه قسمتهای پروژه که باعث شد من 6کیلو وزن کم کنم :چشمک:).
یک تابع نوشته بودم که سال لیست و ماه لیست و نیز نام پروژه رو دریافت میکرد و مقدار True یا False رو پاس میداد. اگه True پاس میداد یعنی لیست قفل شده است در غیر این صورت لیست باز است. این تابع در فرمهایی که کاربر اطلاعات رو ذخیره میکرد فراخوانی میشد. در اون تابع یک SELECT میساختم و به دیتابیس میفرستادم. اگه رکودی برمیگرداده یعنی لیست قفل شده است و در غیر این صورت لیست باز است و کاربر میتواند تغییرانی را در آن اعمال کند. البته میتونستم بجای این تابع یک SP بنویسم اما میخواستم این پروژه وابسته به سرور نباشه.
به همین سادگی.

در پناه حق موفق باشید و پرتوان

HO457
یک شنبه 14 اسفند 1384, 00:33 صبح
بستن تو برنامت به صورت ماه به ماه بود. اون برنامه ای که نوشته بودم بصورت سال به سال بسته میشد. بخاطر همین گفتم که داخل یک متغیر ذخیره بشه چون راحت تر میشه در طول برنامه چکش کرد.

Hamedm
یک شنبه 14 اسفند 1384, 00:42 صبح
سلام


بستن تو برنامت به صورت ماه به ماه بود. اون برنامه ای که نوشته بودم بصورت سال به سال بسته میشد. بخاطر همین گفتم که داخل یک متغیر ذخیره بشه چون راحت تر میشه در طول برنامه چکش کرد.
نه عزیز جان. این برنامه قسمت دیگری هم داره که بصورت سال به سال میبنده. نحوه کار اون قسمت هم مشابه همینه.

در پناه حق موفق باشید و پرتوان

HO457
یک شنبه 14 اسفند 1384, 00:49 صبح
من با استفاده از متغییر PUBLIC موافق نیستم.

حامد جان جزا موافق نیستی؟ مشکلی داره این روش؟ برای ماه به ماه موافقم که تعریف متغیر اشتباه هستش.برای سال به سال بعدا مشکلی ایجاد میکنه اگه متغیر تعریف بشه؟؟؟

Hamedm
یک شنبه 14 اسفند 1384, 01:02 صبح
سلام

حامد جان جزا موافق نیستی؟ مشکلی داره این روش؟ برای ماه به ماه موافقم که تعریف متغیر اشتباه هستش.برای سال به سال بعدا مشکلی ایجاد میکنه اگه متغیر تعریف بشه؟؟؟
ببین عزیز برنامه من قسمتی داشت به نام تغییر وضعیت که کاربر در اون قسمت میتونست وضعیت جاری رو تغییر بده. عکسشو میزارم اینجا تا بهتر متوجه بشی جریان چیه؟


http://i2.tinypic.com/qpnds9.jpg


کاربر میتونست در سالهای مختلف (همان طور که در عکس بالا میبینید) وضعیت حقوق رو مشاهده کنه. برای اینکه تغییرات این حالت رو کنترل کنم مجبور بودم از روشی که بالا گفتم استفاده کنم.

در پناه حق موفق باشید و پرتوان

asilverisis
یک شنبه 14 اسفند 1384, 02:19 صبح
سلام
اولا از دوستان ممنون که اینقدر سریع جواب دادن
ولی تمام اینها جزئیات سوال من بود که به نظر من هر کسی با روش دلخواه خودش کار می کنه
هر جور راحت تره
سوال اصلی من این بود که برای بستن سال مالی اطلاعات سال قبل رو چه کار کنم
چون می خوام اطلاعات سال جدید از صفر شروع بشه ( البته نه همه جداول )

حالا اطلاعات مورد نیاز از سال قبل رو چه کار کنم بتونم راحت هم بهشون دسترسی داشته باشم
یعنی مثلا یه دیتابیس دیگه با نام سال مالی درست کنم یا نه مثلا توی جداول یه فیلد سال مالی اضافه کنم و توی Select هام اونو چک کنم و یا ... از این قبیل روش ها

HO457
یک شنبه 14 اسفند 1384, 02:25 صبح
سوال اصلی من این بود که برای بستن سال مالی اطلاعات سال قبل رو چه کار کنم
چون می خوام اطلاعات سال جدید از صفر شروع بشه ( البته نه همه جداول )

فکر نکنم موقع بستن سال مالی جدید اطلاعات باید صفر بشه، ولی اگه میخوای صفر بشه، یه قسمت ایجاد بزار که اطلاعات رو از اول تو جدولت ایجاد بشه و اونایی که باید از سال قبل بیان رو بیار تو سال جدید. ولی به قول حامد:


برای انتقال هم اصلا نمیشه اظهار نظر کرد. بستگی به ساختار برنامه و ساختار دیتابیست داره.

ali_kolahdoozan
یک شنبه 14 اسفند 1384, 08:53 صبح
پیشنهاد من اینکه یه سری جدول جدید ایجاد کنید و در فولدری مثلا به نام 84 ذخیره کنید . یک فولدر هم به نام 85 بسازید و در آن هم جدول جدید ایجاد کنید . حالا با خواندن تاریخ سیستم چون سال 85 می شود (به شرط که اول هر سال تغییر دوره مالی انجام شود ) اطلاعات از 85 خوانده شود در صورت درخواست کاربر از 84 این کاری است که من همیشه می کنم

ab_ba
یک شنبه 14 اسفند 1384, 09:18 صبح
من برای برنامه حسابداری ام همین کار را کرده ام یعنی برای هر دوره مالی یک دیتا بیس جدید میسازم و یک تیبل هم مشخصات هر دوره را اعم از تاریخ شروع و پایان و بسته یا باز بودن را نگهداری میکند حسنش هم اینست که چون هر دوره از صف شروع میشود برای بک آپ گیری یا انتقال هر دوره را مجزا انتخاب میکنی و همه اطلاعات یکجا و حجیم نیست

Hamedm
یک شنبه 14 اسفند 1384, 10:07 صبح
سلام


پیشنهاد من اینکه یه سری جدول جدید ایجاد کنید و در فولدری مثلا به نام 84 ذخیره کنید . یک فولدر هم به نام 85 بسازید و در آن هم جدول جدید ایجاد کنید . حالا با خواندن تاریخ سیستم چون سال 85 می شود (به شرط که اول هر سال تغییر دوره مالی انجام شود ) اطلاعات از 85 خوانده شود در صورت درخواست کاربر از 84 این کاری است که من همیشه می کنممنظورتون از فولدر چیه؟

در پناه حق موفق باشید و پرتوان

ali_kolahdoozan
دوشنبه 15 اسفند 1384, 07:06 صبح
خوب اگه توی sql هستین یعنی بانکتون sql است فولدر رو بیخیال یه سری جدول جدید با پیشوند و یا پسوند 84 استفاده کنید . و با درخواست کاربر به آنها مراجعه کنید

asilverisis
دوشنبه 15 اسفند 1384, 19:08 عصر
خوب اگه توی sql هستین یعنی بانکتون sql است فولدر رو بیخیال یه سری جدول جدید با پیشوند و یا پسوند 84 استفاده کنید . و با درخواست کاربر به آنها مراجعه کنید

سلام
نه چرا بی خیال میشه دیتابیس جدید ایجاد کرد توی هر فولدر دلخواه
نمی دونم این روش مشکلی ایجاد می کنه یا نه
اگر دوستان نظری دارند لطفا ...