PDA

View Full Version : درخواست یک راه حل برای محاسبه معوقات شارژ یک مجتمع



aknj56
جمعه 01 اردیبهشت 1391, 21:29 عصر
سلام دوستان امیدوارم خوب باشید
من یک برنامه برای مدیریت مجتمع مسکونی دارم درست میکنم یک مشکلی که گیر کردم و چیزی به ذهنم نمی رسه بحث معوقات هست و اون مطلب اینه که من چطوری معوقات هر شخص رو حساب کنم باتوجه به اینکه هر سال 12 ماه است اگر ما مقدار پرداختی شخص را حساب کنیم و از کل سال کم کنیم که این اشتباه است چون مثلا 6 ماه از سال گذشته است لذا برای شخص با آن که 6 دفعه شارژ داده باز هم 6 ماه دیگه براش میزینه و این اشتباه است میخام با توجه به مقداری که از سال گذشته حساب کند یعنی خودش حساب کند که این ماه مثلا 6 است و با توجه 6 ماه حساب کند و اگر شخص 3 تا پرداخت کرده 3 تای دیگه براش معوقه بزند
لطفا راهنمایی کنید

ROSTAM2
جمعه 01 اردیبهشت 1391, 21:40 عصر
بستگی داره اطلاعاتت رو چطور وارد کنی که راحت تر محاسبه کنی ، بهر حال شما نیاز به تاریخ دارید ، ماه از تاریخ قابل جدا سازیه
ماه آخرین تاریخ پرداخت توی سال رو می گیری می شه ماه هایی که پرداخت کرده ، می خوای بدونی معوقه چقد داره تاریخ حالا رو می گیری و آخرین تاریخ پرداخت تفاضلشون می شه ماههای معوقه

اگه منظورم و درست رسونده باشم

aknj56
جمعه 01 اردیبهشت 1391, 22:22 عصر
با تشکر از شما دوست عزیز
اگر میشه یه کم بیشتر توضیح بدین یا یک نمونه ساده برام بذارین
من ریاضیم خوب نیست و متوجه نمی شم

ROSTAM2
جمعه 01 اردیبهشت 1391, 22:50 عصر
نگفتین چطور اطلاعاتتون رو وارد می کنید ، سالها جداگانه هستند و اطلاعت ماههای سال در همون سال ثبت می شه ، یا اطلاعات بصورت کامل با همدیگه وارد می شن !

بهر حال جداسازی ماه از تاریخ با تابع split امکان پذیره
که قابلیت تبدیل به عدد رو داره

آخرین پرداخت یک فرد رو بدست بیارید می تونید شماره ماه رو از آخرین تاریخ پرداخت بیرون بکشید یا- اگه ماه های پرداخت رو می تونید از دفعات پرداخت بگیرید درصوورتی که آیتمی با عنوان دفعات پرداخت بصورت غیر قابل نمایش در اطلاعات در منبع اطلاعات داشته باشید که برای هر فرد مجزا و به صورت صعودی (خودکار) ثبت بشه (در صورت پرداخت) که برای اینکار می شه براش یه تابع ساخت با ورودی های نام فرد و سال تاریخ که بیشترین مقدار فیلد دفعات پرداخت رو باز پس بده

شماره ماه از تاریخ حالا رو با تابع split بیرون بکشید بعد شماره دفعات پرداخت رو با این شماره رو مقایسه کنید اگه بیشتر بود فرد برای چند ماه بیشتر پرداخت کرده اگه کمتر بود که فرد پرداخت معوقه داره

aknj56
یک شنبه 03 اردیبهشت 1391, 08:11 صبح
سلام دوستان
با تشکر از دوست عزیز که راهنمایی کردند
ولی من این تابع و اون روشهایی که گفتند رو بلد نیستم اگر امکان داره دوستان یک دستور یا یک نمونه بذارند خیلی ممنون میشم

ROSTAM2
یک شنبه 03 اردیبهشت 1391, 08:21 صبح
اگر تاریخ شمسی داشته باشیم نیاز است برای جدا سازی از تابع SPLIT استفاده کنیم

تاریخ 1391/2/2

Month = Split("1391/2/2","/")(1)

Hybrid
یک شنبه 03 اردیبهشت 1391, 12:06 عصر
سلام ، 2 راه به ذهنم رسید :

1 ) شما بیاین مثلا یک چک لیست باکس روی فرمتون قرار بدین و اسم 12 ماه رو داخلش بنویسید و وضعیت این آیتم ها رو در بانک ذخیره کنید مثلا این اجاره نشین ماه فروردین و اردیبهشت مبلغ شارژ رو پرداخت کرده تیک این ماه ها رو داخل بانک ذخیره کنید و بعد به میتونین راحت مبلغ بدهکاری و معوقه ها رو حساب کنید.

2 ) در بانکتون یک فیلد اضافه کنید که تعداد شارژهایی رو که امسال این اجاره نشین پرداخل کرده رو داخلش ذخیره کنید و از تعداد ماه هایی که گذشته کم کنید این میشه تعداد معوقه ها که ذخیره میشن و اگه تعداد معوقه ها در مبلغ هر ماه ضرب بشه مبلغ کل بدهکاری بدست میاد .

اگه اطلاعات بیشتری رو در اختیارمون قرار بدی بهتر میشه راهنمایی کرد مثلا اطلاعات مربوط به اجاره نشین ها رو چطور وارد میکنید و...

موفق باشید

aknj56
یک شنبه 03 اردیبهشت 1391, 12:44 عصر
با تشکر از شما دوست عزیز
من دو تا فرم گذاشتم یکی اطلاعات افراد مجتمع رو ثبت میکنه و هر شخص کدی داره که برای جستجو و بقیه کارها ازش استفاده میکنیم و اون این طوری هست که مثلا من بلوک 2 و واحد 12 هستم توی تکس باکس جمع این دو تکس باکس که پر کردم مبزنه 212 دیگه این طوری هیچ کدی ا شتباه نمی شه و کد تکراری نیست بلوک 3 واحد 12 میشود 312در فرم بعدیم که ثبت اطلاعات شارژ هست کد شخص رو و اسم و فامیلش رو میزنم و یک کومبوباکس سال داریم که تعیین میکنیم و یک کومبوباکس ماه و تعیی میکنیم و یک تکس باکس برای مبلغ لذا توی دیتا گردید نشون میده سال 90 ماه فروردین مبلغ 10000تومان حال میخام مشخص بشه که الان که ماه مثلا خرداد هست آقای فلانی که فقط فروردین رو داده چقدر بدهکار هست ضمنا چطوری بدست بیاریم که الان فقط سه ماه از سال گذشته تا نسبت به این سه ماه بدهکاری رو حساب کنه نه طول سال
باتشکر

aknj56
دوشنبه 04 اردیبهشت 1391, 07:57 صبح
با سلام خدمت دوستان
کسی نیست راهنمایی کنه کارم گیره

ROSTAM2
دوشنبه 04 اردیبهشت 1391, 08:22 صبح
شما 1. نیاز به یه قسمت برای مقدار دهی بهای شارژ به هر ماه دارید
2. طبق پولی که هر فرد داده محاسبه می کنید چقدر کسری داره
...

aknj56
دوشنبه 04 اردیبهشت 1391, 09:24 صبح
با تشکر از شما دوست عزیز
من بالا توضیح دادم که فرمم چطوری هست و برای وارد کردن مبلغ شارژ وماه شارژ هم فیلد گذاشتم اگر لطف کنید بالا رو حالا اسمش چیه نقل قوله یا چیز دیگه مطالعه کنید توضیح دادم
فکر نکنم دوست عزیز به این راحتی باشه

ROSTAM2
دوشنبه 04 اردیبهشت 1391, 14:16 عصر
:متفکر:
فکر نکنم دوست عزیز به این راحتی باشه :لبخند:


سال 90 ماه فروردین مبلغ 10000تومان حال میخام مشخص بشه که الان که ماه مثلا خرداد هست آقای فلانی که فقط فروردین رو داده چقدر بدهکار هست

میایم حساب می کنیم ماه فروردین سال 90 بهای شارژ همون 10000 تومن بوده ولی ماههای بعد قیمتا بالا رفته پس هزینه بیشتری باید پرداخت می کرده
بعد اینکه ماه چندم سال رو تشخیص دادیم بهای شارژ ماههای سال رو جمع می زنیم با پولی که آقای فروردین پرداخت کن پرداخت کرده مقایسه می کنیم می شه اونی که پرداخت نکرده خوب اونیم که پرداخت کرده که پرداخت کرده خوب همین! :ناراحت:

aknj56
دوشنبه 04 اردیبهشت 1391, 22:41 عصر
سلام دوست عزیز ممنون از توجه شما
اولا مبلغ شارژ ثابت است
ثانیا همین که از کجا بفهمیم ماه چندم است خیلی مهم است و راه بدست آوردن آن مهم است که من بلد نیستم

Hybrid
دوشنبه 04 اردیبهشت 1391, 23:07 عصر
ثانیا همین که از کجا بفهمیم ماه چندم است خیلی مهم است و راه بدست آوردن آن مهم است که من بلد نیستم

یک پروژه جدید باز کنید از نوع Windows App سپس آیتم های زیر روی روی فرم قرار بدین :

1 ) یک تکست باکس
2) یک دکمه

سپس در رویداد Click دکمه کد زیر رو بنویس :


Dim pc As New System.Globalization.PersianCalendar
Dim sb As New System.Text.StringBuilder

sb.Append(pc.GetYear(DateTime.Now) & "/")
sb.Append(pc.GetMonth(DateTime.Now) & "/")
sb.Append(pc.GetDayOfMonth(DateTime.Now))

TextBox1.Text = sb.ToString()

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


Split(TextBox1.Text, "/", , CompareMethod.Text)(1).ToString()

aknj56
دوشنبه 04 اردیبهشت 1391, 23:17 عصر
با تشکر از شما
دوست عزیز این کد که برای بدست آوردن ماه است رو باید کجا قرار بدیم

Hybrid
دوشنبه 04 اردیبهشت 1391, 23:20 عصر
با تشکر از شما
دوست عزیز این کد که برای بدست آوردن ماه است رو باید کجا قرار بدیم

میتونین داخل همین رویداد Click استفاده کنید مثلا بنویس :


MessageBox.Show(Split(TextBox1.Text, "/", , CompareMethod.Text)(1).ToString())

aknj56
سه شنبه 05 اردیبهشت 1391, 12:54 عصر
سلام دوستان
یک راه حل به ذهنم رسید و اینکه توی جدول دو فیلد درست کنم به نام بدهکار وبستانکار و تمام افراد رو اول هر ماه بدهکار کنم که با پرداخت پول بدهکاری صفر میشود حالا چطور بیام این کار رو بکنم که اول هر ماه سیستم خودش افراد رو بدهکار کنه

A_1397
سه شنبه 05 اردیبهشت 1391, 17:06 عصر
ببین دوست عزیز، من اگر قرار بود این برنامه رو بنویسم میومد یه تیبل طراحی میکردم با 12 فیلد که هر فیلد برای یک ماه سال باشه. حالا به ازای هر واحد هم یک روکورد داریم که وقتی واحدی شارژ یک ماه را پرداخت میکنه توی فیلد مربوط به همان ماه مبلغ گرداخت شده آن واحد ذخیره میشه.
حالا برای محاسبه معوقات یک واحد فقط کافیه همونطور که vbBoss توضیح داد ماه زمان کنونی رو بدست بیاری و ببینی برای فیلد های ماه های کمتر از ماه کنونی چنتا فیلد پر و چنتا خالیه یا اصلا محتویات فیلدهارو با هم جمع کنی و از مبلغ شارژ*عدد ماه کنونی، کم کنی. باقیمانده میشه معوقه آن واحد. به همین راحی!:لبخند:
حتی میتوانی همونطور که باز دوستمون VbBoss گفت یک چک لیست بزاری شامل 12 چک باکس و برای ماه هایی که فیلد مربوط به آنها پر ایت تیک بزنی و مقدار وارد شده در همان فیلد که میزان شارژ پرداختی هستش را جلوی چک بکست بنویسی. اینطوری کاملا مشخصه که یک واحد برای چه ماه هایی چه میزان شارژ پرداخت کرده. :چشمک:

swallow.pa
سه شنبه 05 اردیبهشت 1391, 17:25 عصر
بهای شارژ سالیانه باید توی یک جدول جداگانه نگه داری بشه