• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

محاسبه تخفيف شبانه در NTTacPlus

Sign:Protected

Registered User
تاریخ عضویت
23 اکتبر 2003
نوشته‌ها
45
لایک‌ها
0
كار TacRas به اين صورته كه مياد حسابها رو دستكاري مي كنه و معمولا LeftTime رو افزايش ميده، پس از دريافت پيام Stop يه سري محاسبات رو انجام ميده و حساب تغيير يافته كاربر رو تصحيح مي كنه.
ولي مشكلاتي كه ممكنه بوجود بياد:
در حالتي كه NTTacPlus داره كار خودش رو به تنهايي انجام ميده، اگه سيستم قفل كنه يا به هر دليل مجبور به Restart اون بشيم در اين صورت كاربرايي كه وصل بودن اين اتصال آخرشون براشون مفت در مياد و نه از حساب اونا چيزي كم ميشه و نه تو stat ثبت ميشه. حالا اگه برنامه اي مثه TacRas حسابها رو دستكاري كرده باشه، بعد از اين اتفاق معلوم نيست چي ميشه. برنامه نويس اگه براي اين موضوع فكري نكرده باشه يه مشكل اساسي محسوب ميشه.
يكي ديگه از مشكلات قفل كردن، از كار افتادن يا قطع برق روتر و يا RAS هست، در اين صورت كاربرها بصورت Online مي مونن، اگرچه ميشه اونا رو از ليست حذف كرد و مصرف اونا رو تو حسابشون ثبت كرد ولي هيچ وقت پيام Stop براي اونا صادر نميشه و حسابهاي افزوده شده تصحيح نميشن. انتظار هست برنامه نويس فكري براي اينگونه مشكلات كرده باشه.
در ضمن اين برنامه در حقيقت Accounting رو بطور كامل به عهده نمي‌گيره و در واقع كار Accounting باز هم به عهده NTTacPlus هست. شايد اگه اين برنامه اين كار رو بطور كامل به عهده مي گرفت مي تونست منطقي تر حسابها رو كنترل كنه.
 

ar1428

کاربر تازه وارد
تاریخ عضویت
18 نوامبر 2003
نوشته‌ها
14
لایک‌ها
0
من هم همچین برنامه ای رو نوشتم... اگه خواستید باید بهم e-mail بزنید. تا بیشتر صحبت کنیم..

[email protected]
 

babak2536

Registered User
تاریخ عضویت
2 فوریه 2004
نوشته‌ها
181
لایک‌ها
0
سلام

نظر شما در مورد اين پيشنهاد براي پياده سازي تخفيف در ساعات مختلف چيه.
- اين برنامه بايستي از طريق post accounting external script بايد عمل كند.
-هيچ credit بهراي يوزرها set نميشود.group باقي ميماند .يعني يوزرها به صورت unlimited ميتوانند وارد شبكه شوند.
-منطق برنامه و سيستم گزارشگيري آن بايد نه زماني باشد نه كيلوبايتي بلكه بايد ريالي باشد.
-برنامه post accounting external script پس از قطع مشترك با توجه به جدول زماني تخفيف هزينه آن ارتباط را بر حسب ريال محاسبه كرده و مقدار اعتبار باقيمانده را در يكي از فيلدهاي بانك اطلاعاتي و با واحد ريال ذخيره مي كند و در صورتي كه اعتبار آن يوزر به صفر رسيد آن يوزر را disable مي كند.
-در صورتي كه نگران اتصال كاربر بيش از اعتبار در آخرين ارتباط هستيد post accounting external script ميتواند با تغيير Max Connection time به مقدار اعتبار باقيمانده از اين امر جلوگيري كند.
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
42
محل سکونت
Iran - Tehran
به نقل از babak2536 :
سلام

نظر شما در مورد اين پيشنهاد براي پياده سازي تخفيف در ساعات مختلف چيه.
- اين برنامه بايستي از طريق post accounting external script بايد عمل كند.
-هيچ credit بهراي يوزرها set نميشود.group باقي ميماند .يعني يوزرها به صورت unlimited ميتوانند وارد شبكه شوند.
-منطق برنامه و سيستم گزارشگيري آن بايد نه زماني باشد نه كيلوبايتي بلكه بايد ريالي باشد.
-برنامه post accounting external script پس از قطع مشترك با توجه به جدول زماني تخفيف هزينه آن ارتباط را بر حسب ريال محاسبه كرده و مقدار اعتبار باقيمانده را در يكي از فيلدهاي بانك اطلاعاتي و با واحد ريال ذخيره مي كند و در صورتي كه اعتبار آن يوزر به صفر رسيد آن يوزر را disable مي كند.
-در صورتي كه نگران اتصال كاربر بيش از اعتبار در آخرين ارتباط هستيد post accounting external script ميتواند با تغيير Max Connection time به مقدار اعتبار باقيمانده از اين امر جلوگيري كند.

پيشنهاداتت خوبه. بايد در موردشون بحث کرد.
 

Delphan

کاربر تازه وارد
تاریخ عضویت
25 ژانویه 2004
نوشته‌ها
101
لایک‌ها
0
به نقل از babak2536 :
سلام

نظر شما در مورد اين پيشنهاد براي پياده سازي تخفيف در ساعات مختلف چيه.
- اين برنامه بايستي از طريق post accounting external script بايد عمل كند.
-هيچ credit بهراي يوزرها set نميشود.group باقي ميماند .يعني يوزرها به صورت unlimited ميتوانند وارد شبكه شوند.
-منطق برنامه و سيستم گزارشگيري آن بايد نه زماني باشد نه كيلوبايتي بلكه بايد ريالي باشد.
-برنامه post accounting external script پس از قطع مشترك با توجه به جدول زماني تخفيف هزينه آن ارتباط را بر حسب ريال محاسبه كرده و مقدار اعتبار باقيمانده را در يكي از فيلدهاي بانك اطلاعاتي و با واحد ريال ذخيره مي كند و در صورتي كه اعتبار آن يوزر به صفر رسيد آن يوزر را disable مي كند.
-در صورتي كه نگران اتصال كاربر بيش از اعتبار در آخرين ارتباط هستيد post accounting external script ميتواند با تغيير Max Connection time به مقدار اعتبار باقيمانده از اين امر جلوگيري كند.

من قبلش يه سوال ميپرسم. آيا منظور از تخفيف شبانه اينه كه اگر كاربري 100 ساعت خريد و مثلا 11 شب وصل شد اگر ساعت از 12 گذشت سيستم با اين كاربر مانند شبانه برخورد كنه.
البته من متن زير رو بر اساس جواب بله بالا نوشتم.
ببينيد هر چه مصرف كاربر بره بالا طبيعتا هزينه ساعتي اون هم كم ميشه. مثلا شما در نظر بگيريد كه روزانه ساعتي 1000 تومان باشه و شبانه 500 تومان. و اگر كسي 10 ساعت خريد روزانه ساعتيميشه 800 تومان وشبانه 400 تومان.
حال فرض كنيد يكي 8000 تومان و ديگري 2000 تومان خريدن. سيستم در مورد 2 ساعتي بايد تشخيص بده كه بيشتر از اون كم كنه و 10 ساعتي رو كمتر كه فرض كنيم با چند if تودر تو امكان پذير باشه. در اين صورت اگر اوني كه 10 ساعت خريده اعتبارش به 2 ساعت برسه چي؟ بايد كلي if باشه كه بتونه تشخيص بده و نياد از اين بيشتر كم كنه. حالا فرض كنيد كاربر شناسه اش رو تمديد ميكنه. در اينصورت مكانيسم كنترل خيلي سخت ميشه. اگر نرخ شبانه و روزانه تغيير كنه و يا نرخ تعداد ساعتهاي مختلف تغيير كنه بايد كل برنامه عوض شه.
من در مورد روشي دارم فكر ميكنم كه سعي ميكنم طرحم رو تكميل كنم و اونو بنويسم.
 

ar1428

کاربر تازه وارد
تاریخ عضویت
18 نوامبر 2003
نوشته‌ها
14
لایک‌ها
0
با سلام

چند نفر از دوستان مكانيزم كاركرد برنامه اي رو كه من نوشته بودم از جمله كوروش و آقاي شيرازي...
با عرض معذرت از اينكه جواب به نامه هاي دوستان بعضي مواقع خيلي طول ميكشه و من واقعا شرمنده ام . علتش هم گرفتاري شغلي شديد بنده است.

شرح برنامه و شيوه كاركرد آن:

1 - يك جدول اضافي در بانك اطلاعاتي nttac اضافه كردم و ليست گروهها و ميزان تخفيف و شروع و پايان تخفيف رو توي هر سطرش وارد كردم.

2 - برنامه اي رو نوشتم كه موقعي كه دستور STOP اكانتينگ بهش مياد. يعني چه يوزر بصورت اتوماتيك ،kill ميشه و چه بصورت دلخواه dc ميشه تخفيف رو به اعتبارش اضافه مي كنه.

محاسن:

پياده سازي اين روش آسونه و سريع و خوب هم جواب ميده

معايب:

اعتبار بعد از dc شدن كاربر به حسابش اضافه ميشه.

رفع عيب:

عمل dc كردن رو همين برنامه Post-accounting به عهده بگيره كه كاملا عمليه. روش آن هم استفاده از پيام UPDATE تو پيغامهايي است كه از طرف NAS ميرسه.

اگر دوستان محترم مطلب فوق رو خواندند. خواهش مي كنم نظرشون رو بفرمايند.

با تشكر - امير
[email protected]
 

Delphan

کاربر تازه وارد
تاریخ عضویت
25 ژانویه 2004
نوشته‌ها
101
لایک‌ها
0
همانند ديگر طرحها من هم نظرم اينه كه با اضافه كردن يه جدول اضافه و يا دو فيلد به جدول كاربران، و نوشتن يك اسكريپت با يه ورودي تخفيف شبانه پياده سازي بشه.
تفاوت نرخ بين شبانه و روزانه رو بر حسب Interval خود NTTAC و بر حسب درصد بدست آورده و به عنوان پارامتر ورودي به اسكريپت ميفرستيم.(SH).
زماني كه ساعت شبانه شروع ميشه بر حسب SH تخفيف رو به اعتبار كاربران اضافه ميكنيم. البته بايد اينجا اين تخفيف بر حسب مانده اعتبار كاربر محاسبه بشه كه از اون دو فيلد اضافي استفاده ميكنيم(F1و F2).
در F1 زماني رو كه كاربر رو خط ذخيره ميشه. از لحظه شروع تا ادامش.
در F2 زمان بين Interval رو ذخيره ميكنيم تا بر اساس اون زمان اضافه بدقت محاسبه بشه.
با هر Intervalمقدار F2 در SH ضرب شده و به Timeleft كاربر اضافه ميشه و F2 صفر ميشه.
زماني كه كاربر Stop بشه(به هر صورت) F1, F2 صفر ميشن.
چنانچه در اين برق بره، سرور قفل كنه و يا به هر دليلي، اين امر نه تنها از اعتبار كاربر كم نكرده، بلكه به اون هم اضافه شده كه براي رفع اين مشكل زماني كه سرويس NTTACشروع ميشه اين اسكريپت بايد چك كنه كه آيا F1,F2 بزرگتر از صفر وجود داره، در اينصورت بايدF1 رو از TimeLeft اون كم كنه و مجددا اينهارو صفر كنه.
(منظور من از Interval همون زمونيه كه بر اساس اون NTTAC مياد و اعتبار كاربران رو چك ميكنه).
 

Delphan

کاربر تازه وارد
تاریخ عضویت
25 ژانویه 2004
نوشته‌ها
101
لایک‌ها
0
من يه فكر ديگه به ذهنم رسيد
اگر بخوايم اكانتينگ رو ما بر عهده بگيريم استفاده از همون روش ريالي عاليه. چيزي شبيه به محاسبه نرخ مكالمه سويچهاي مخابرات ميشه يعني براي هر كاربر ساعت و نرخ بريال و جداولي كه ساعات مختلف روز و قيمت اون ساعات رو داشته باشه تعريف ميكنيم. با اين كار ميشه طوري تنظيم كرد كه حتي در ساعات مختلف متغير حساب كنه. مثلا زماني كه كاربر مياد وصل ميشه به بازه زماني نگاه ميكنه و بر اساس نرخ اون ساعت از اعتبارش كم ميكنه. زماني هم كه صفر شد كاربر قطع و اعتبارش صفر ميشه.

يه روش كه شايد خيلي ساده تر هم باشه استفاده از يك جدول جداگانه و اضافه كردن يك فيلد SWبه جدول انتي تك هستش به اين صورت كه بازه هاي مختلف و نرخ هر بازه رو به درصد به جدول اضافه ميكنيم. و در حالت پيش فرض مقدار SW=0 هستش و زماني كه بازه هاي زماني عوض ميشن بر اساس درصد بازه و مقدار SW هم مقدار timeleft عوض ميشه و هم مقدار SW(مثلا اگر صفر بوده يك ميشه و يا بلعكس)
خيلي ساده ميشه در اكسس و يا SQL Server اين روشها رو پياده كرد و بنظر من برنامه خارجي شايد نخواد.
 

aryagohar

کاربر تازه وارد
تاریخ عضویت
31 جولای 2003
نوشته‌ها
680
لایک‌ها
0
سن
46
محل سکونت
Iran
بابا بحث خيلي خفنه. اي ول برنامه نويس هاي توپ.
راستياتش اين عقل ناقص ما چيزي از اين مباحث نفهميد. اگه به جايي رسيدن بي زحمت زير ديپلمي بنويسين ما هم حاليمون شه
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
42
محل سکونت
Iran - Tehran
Delphan جان بايد بشينيم عملا پياده اش کنيم تا مشکلاتش در بياد . . .
 

Delphan

کاربر تازه وارد
تاریخ عضویت
25 ژانویه 2004
نوشته‌ها
101
لایک‌ها
0
به نقل از koorosh :
Delphan جان بايد بشينيم عملا پياده اش کنيم تا مشکلاتش در بياد . . .

من با نظر شما كاملا موافقم چون اينا فقط در حد ايده هستند و تا الگوريتم و پياده سازي خيلي فاصله دارن.
ولي يه سوال دارم
به نظر شما امكانپذير هستش كه بدون اسكريپت خارجي اينو پياده سازي كرد(مثلا با استفاده از after edit و .. و يك تايمر خارجي، تا الان به اين فكر كرديد)
اگر كه شما بخوايد من حاضرم تو پياده سازيش كمك كنم.
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
42
محل سکونت
Iran - Tehran
من عقيده دارم برای پياده سازی يک ايده، بايد از بهترين ابزارها متناسب با نوع کاربرد استفاده کرد.
برای اين کار به نظر من استفاده از خود بانک بعنوان عملگر زياد مناسب نيست.
 

nttacplus

کاربر تازه وارد
تاریخ عضویت
14 سپتامبر 2004
نوشته‌ها
52
لایک‌ها
1
سن
42
سلام من اين برنامه TacRas رو ميخوام لطفا هر كس داره براي من هم ايميل بزنه
[email protected]
 

nttacplus

کاربر تازه وارد
تاریخ عضویت
14 سپتامبر 2004
نوشته‌ها
52
لایک‌ها
1
سن
42
سلام من يه برنامه دارم براي تخفيف در NTTacPlus اگر كسي خواست برام ايميل بزنه تا نسخه نمايشي اين برنامه رو براتون بفرستم.

[email protected]
 

KingMKH

کاربر تازه وارد
تاریخ عضویت
2 سپتامبر 2004
نوشته‌ها
11
لایک‌ها
0
Azizan Man Nttacplus Daram Va Takhfife Service Shabaneh Ham Daram az 10% Ta 100%(Raiegan) Beine Yek Bazeye Zamani Va Hatta Tarife Bazeye Zamani Dar Roozhaye Khasi Az Hafte
Faghat Baraye In Kar Bayad Az Yek Narmafzare Reporting Ezafi Estefadeh Konid Ke 500000 Toman HastNarm Afzar-e-Tac Box
Ye Service Jalebe Dige Ham Ke dare Inke Bad Az Etmam-e-etebar Kart Mishe Goroohe Karto Tagheer Dad
Masalan alan Man Ye Seri Kart Daram Ka 2 Satast Vali Agar Beine Saate 1 Ta 5 Sobh Estefadeh Beshe Mishe 4 Saateh Va Baad Az Eenke Etebare Kart Tamoom beshe Be Modate Yek Hafte Beine saate 6 ta 9 Sobh Be Soorate Raiegan Ghabele Estefadast
 

Meteor

کاربر تازه وارد
تاریخ عضویت
31 می 2004
نوشته‌ها
124
لایک‌ها
1
سن
44
سلام به همه
بر و بچ که منو میشناسن .
ببینید من شروع کردم و یه برنامه با دلفی نوشتم . اما چون وقت نداشتم الان ولش کردم .
پیشنهاد میکنم از یه جایی شروع کنیم.
یه برنامه باید از ساده شروع بشه و به پیچیده برسه .
برای اینکه برنامه تخفیف شبانه نوشته بشه باید از سیستم Post Accounting استفاده کرد که میتونید اطلاعات بیشتر را از اینجا بگیرید . این پست اکانتینگ یه سری پارامتر را به صورت کامند لاین میگیره . که به این شرح هستند
user Username
$pass Password typed by the user
$nas Ip address or NAS name
$port NAS port number/name
$clid Caller ID (if available)
$addr Network address
$priv Privilege level
$svc Service type numeric code
$action Requested action
$type Authentication typeخوب پس ما فقط این اطلاعات را داریم .
ان تی تک بعد از هر ورود یا خروج خط دستوری را که به پست اکانتینگ داده شده اجرا میکنه و نحوه کار که همون شروع و پایان و به روز رسانی باشه را به اسکریپت بیرونی ارسال میکنه .
من برای این کار دو روش را توی ذهنم پیاده کردم . یه روش خیلی ساده این بود : از یک فایل یا دیتا بیس استفاده کنیم واسه اینکه اطلاعات اولیه برنامه را نگهداری کنیم . دوم نحوه تخفیف ساده باشه .
یعنی اینکه برنامه فقط برای کسانی تخفیف را در نظر بگیره که مثلا از ساعت 1 شب تا 8 صبح وارد شده باشند یعنی لاگین کرده باشند و اونهایی که قبل از ساعت یک شب آمده اند از تخفیف بهره مند نشوند . (به این تیکه اش گیر ندین برنامه باید تکمیل بشه )خیلی ساده برنامه پیام استارت را دریافت میکنه و از اطلاعات تنظیمی خودش چک میکنه ببینه زمان استارت بعد از تنظیم هست یا نه ؟ در صورتی که بعد از ساعت مورد نظر وارد شده باشه برای اون یه مدخل یه جایی باز میکنه و هر وقت که براش دستور توقف یا همون STOp رسید زمان استفاده شده را تعیین و در میزان تخفیف ضرب میکنه و مقدار بدست آمده را به کاربر برمیگردونه . این را باید به یاد داشته باشیم که ان تی تک همه این کار ها را بعد از انجام کارهای خودش انجام میده .
پس این برنامه ساده این امکانات را باید داشته باشه :
محدوده زمانی وارد شدن .
میزان تخفیف به درصد
سیستم INIfile برای نگهداری اطلاعات پایه
ضمنا من دلفی کار میکنم

الگوریتم :
ورودی کامند لاین را بخوان
در صورتی که START ساعت ورود را چک کن
----اگر ساعت ورود قبل از زمان مورد نظر است به آخر برو
----اگر زمان ورود بعد از زمان مورد نظر است اطلاعات ورود را ثبت کن
در صورتی که پیام STOP است تخفیف را محاسبه کن
-----مقدار اعتبار لازم را به حساب برگردان

حالا شاخ و برگش را بعدا میاریم .
 
بالا