PDA

View Full Version : حذف و ویرایش فاکتور



kamiloted
پنج شنبه 01 مهر 1395, 13:42 عصر
سلام دوستان
بنده اطلاعات یک فاکتور را در 6 جدول ثبت میکنم.
و در فرم ویرایش فاکتور با شماره فاکتور اطلاعات مربوطه رو در فرم ویرایش فراخوانی میکنم.
هر کدام جای خود.
لیست اقلام و تعداد و قیمت.
تسویه فاکتور
و اطلاعات مشتری.

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

و همچنین با حذف فاکتور به طور کامل اون فاکتور از 6 جدول حذف بشه.

دوستان چه روشی پیشنهاد میکنید؟
آیا نمونه ای دارید؟
جستجو هم انجام دادم به نتیجه ای نرسیدم.
ممنون از همگی.

daniyaltjm
پنج شنبه 01 مهر 1395, 15:30 عصر
سلام شما باید در هنگام تعریف رابطه کلید اصلی و کلید خارجی آپشن های Delete Rule و Edit Rule را از قسمت INSERT And UPDATE Specification رو روی حالت Cascade (آبشاری) بزارید تا اطلاعات مرتبط با جدول اصلیتون هم هنگام ویرایش و حذف بشوند.

kamiloted
پنج شنبه 01 مهر 1395, 16:19 عصر
سلام شما باید در هنگام تعریف رابطه کلید اصلی و کلید خارجی آپشن های Delete Rule و Edit Rule را از قسمت INSERT And UPDATE Specification رو روی حالت Cascade (آبشاری) بزارید تا اطلاعات مرتبط با جدول اصلیتون هم هنگام ویرایش و حذف بشوند.

ممنون دوست عزیز.
بنده یه جدول شرح دارم که با 4 فاکتور فروش و خرید و مرجوعی فروش و مرجوعی خرید پر میشود.

و ضمن اینکه ممکنه شماره فاکتور فروش و خرید و مرجوعی ها شماره فاکتور یکسان یا شماره سند یکسان داشته باشند .
بعد چطور برای این 4 جدول کلید خارجی از جدول شرح تعریف کنم.

اصلا یه نمونه کوچیک ندارین بزارین.یا لینک بدین.ممنون میشم

daniyaltjm
پنج شنبه 01 مهر 1395, 21:17 عصر
سلام دقیقا نمی دونم منطق برنامت چیه ولی شما باید برای هر جدولت یک کلید از نوع int بزارید و Identity رو برای اون فعال کنی یعنی هر جدولت یک آدی منحصر به فرد داشته باشه و توی جدولهای دیگت یه فیلد برای کلید خارجی از نوع int میزارید حالا این کلید خارجی باید مقدار کلید اصلی اون جدول رو داشته باشه که مشخص بشه این رکورد مربوطه به اون رکورد در جدول دیگت هست، حالا اگه بیای توی جدول اولت و یک رکورد رو پاک کنی که ID جدول اولت درون کلید خارجی جدول دومت باشه SQL بهت خطا میده که توی اون جدول دومت داده های وابسته به جدول اول داری، اگه اون کارایی که بالا گفتم رو انجام بدی حالا توی جدول اولت(پدر) اون رکورد رو پاک یا ویرایش کنی توی هر چی جدول که میخواد باشه اون رکورد های وابسته هم پاک یا ویرایش میشه برای همین بهش میگن آبشاری . یک نمونه ساده با سه جدول هم گذاشتم.

دانلود (http://s8.picofile.com/file/8268312668/test.rar.html)

kamiloted
پنج شنبه 01 مهر 1395, 21:55 عصر
سلام دقیقا نمی دونم منطق برنامت چیه ولی شما باید برای هر جدولت یک کلید از نوع int بزارید و Identity رو برای اون فعال کنی یعنی هر جدولت یک آدی منحصر به فرد داشته باشه و توی جدولهای دیگت یه فیلد برای کلید خارجی از نوع int میزارید حالا این کلید خارجی باید مقدار کلید اصلی اون جدول رو داشته باشه که مشخص بشه این رکورد مربوطه به اون رکورد در جدول دیگت هست، حالا اگه بیای توی جدول اولت و یک رکورد رو پاک کنی که ID جدول اولت درون کلید خارجی جدول دومت باشه SQL بهت خطا میده که توی اون جدول دومت داده های وابسته به جدول اول داری، اگه اون کارایی که بالا گفتم رو انجام بدی حالا توی جدول اولت(پدر) اون رکورد رو پاک یا ویرایش کنی توی هر چی جدول که میخواد باشه اون رکورد های وابسته هم پاک یا ویرایش میشه برای همین بهش میگن آبشاری . یک نمونه ساده با سه جدول هم گذاشتم.

دانلود (http://s8.picofile.com/file/8268312668/test.rar.html)

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

ali_md110
پنج شنبه 01 مهر 1395, 22:14 عصر
در وهله اول باید حسابداری خوب بلد باشید
و
ابتدا باید یک جدول سند حسابداری داشته باشید برای اسنادتون
شما به ازای هر عملیات مالی یا تجاری باید یک رکورد داشته باشید
مثلا عملیات فاکتور خرید یک سند بدهکار است
معادل اون یک سند مالی بستانکار مثل پرداخت نقدی باید داشته باشید
این جدول میشه Document
1- فیلد کلیذ اصلی
2- کد حساب معین کلید خارجی هست
3- کد حساب تفصیلی کلید خارجی جدول تفصیلی هست
3 مبلغ بدهکار
4 مبلغ بسانکار

شما باید یک Header بنام InvoiceHeader بسازید حاوی
1- Id فیلد کلید اصلی و نوع Identity
2- InvoiceTypeفیلد نوع فاکتور که معمولا یک enum در نظر میگرند
3-InvoiceDate
4-Persons
5- -کد سند حسابداری که کلید خارجی از جدول سند حسابداری شماست
و سایر فیلدهای داخواه
جدول دوم میشه InvoiceDetails
1- nvoiceHeaderId
فیلد خارجی
2- ProductId کالا و کلید خارجی از جدول کالا یا انبار
3-Price قیمت
4- Qty تعداد
چدول سوم میشه
جدول پرداختها
معمولا یک یا چند پرداخت ممکنه با یک یا چند فاکتور مرتبط بشه و یک جدول چند به چند باید بسازیم
PaymentInvoice
1-PayHeaderId
2-InvoiceHeaderId
جدول 4 جدول Payment هست که در بالا رابطه چند به چند داشت
شامل فیلدهای
1- Id کلید اصلی
2-کد سند حسابداری که کلید خارجی از جدول سند حسابداری شماست
3-مبلغ
نوع شامل نقدی-چک-نسیه و غیره که این فیلد از نوع enum باشه بهتره
چداول 5 یا 6 یا 7 بیشتر حالت توضیحی دارند
جدول 5 جزئیات پرداخت نقدی
و 6 جزئیات چرداخت چکی
و7 جزئیات نسیه
این سه چدول دارای کلید خارجی از جدول Payment هست

در اینجا جدول سند حسابداری میشه جدول اصلی برنامتون که خیلی مهم هست