صديقي الموضوع بسيط جدا قم بعمل جدول للعقود اذا كان هناك عقد contracts :
con_id -رقم العقد
cust_id - رقم المشترك
con_duration - مده العقد ( 6 - 12- 24 ) بالشهر
price - لك الخيار بالسعر اذا اردت ضع السعر و من خلال مده العقد تستطيع تقسيم السعر على المدة لمعرفه سعر الشهري
date_start - تاريخ مختار
date_end - التاريخ المختار + مده العقد
note - لك الخيار
archive - وايضا لك الخيار لاضافه الارشفة
بعد ذلك اعمل جدول للدفعات payments :
id
con_id - رقم العقد لعمل علاقه مع جدول العقود
pay_number - رقم الدفعه وهي الدفعات من مده العقد يعني لو العقد 6 شهور سيكون 6 اسطر في الجدول لنفس العقد من رقم 1 الى 6
pay_value - الدفعات المدفوعه من الزبون ( تستطيع ان تجعل الزبون يدفع لاكثر من مره نفس الشهر و من البرنامج تحدث قميه الدفعه او يكون الدفع لمره واحدة
must_paid - المبلغ الواجب دفعه لكل شهر ( ياتي من سعر العقد / مده العقد)
date - التاريخ ويكون حسب التاريخ الحالي فمثلا 08-01-2018 القميه المدخله الاولى، الدفعه الثانيه ستكون بعد شهر وستكون 08-02-2018 وهكذا
pay_status عمود نعم او لا مدفوع او غير مدفوع ( عند دفع اشتراك شهري اذهب وقارن المدفوع بالواجب دفعه اذا تساو اعمل تحديث انه مدفوع اذا لا لا يكون مدفوع
archive - أرشفه
اضافه البيانات للعقد :
PHP كود :
'فحص الاتصال بقاعدة البيانات
If SQL.conn.State = ConnectionState.Open Then
SQL.conn.Close()
End If
SQL.conn.Open()
Dim cmd As New SqlCommand()
cmd.CommandText = "insert into contracts (con_id,cust_id,shop_id,con_duration,price,con_use,rent_type,price2,note2,date_start,date_end,note,image_exist) values(@con_id,@cust_id,@con_duration,@price,@date_start,@date_end,@note)"
cmd.Parameters.AddWithValue("@con_id", (cont_id_txt.Text))
cmd.Parameters.AddWithValue("@cust_id", (cust_id_txt.Text))
cmd.Parameters.AddWithValue("@shop_id", (shop_id_txt.Text))
cmd.Parameters.AddWithValue("@con_duration", (Duration_txt.Text))
cmd.Parameters.AddWithValue("@price", (price_txt.Text))
cmd.Parameters.AddWithValue("@date_start", (date_start))
cmd.Parameters.AddWithValue("@date_end", (date_end))
cmd.Parameters.AddWithValue("@note", (note_txt.Text))
cmd.Connection = SQL.conn
cmd.ExecuteNonQuery()
SQL.conn.Close()
أدخال البيانات للدفع الشهري'
Dim currentDate = Datepicker1.Value
For i = 1 To Duration_txt.Text
datee = currentDate.AddMonths(+i - 1)
insertt()
Next
اما بالنسبه لطريقه for loop للادخال كالاتي :
PHP كود :
Dim i As Integer
Dim datee As Date
Private Sub insertt()
Try
Dim must_paid As Decimal = (Val(price_txt.Text) + Val(add_price_txt.Text)) / Val(Duration_txt.Text)
'فحص الاتصال بقاعدة البيانات
If SQL.conn.State = ConnectionState.Open Then
SQL.conn.Close()
End If
SQL.conn.Open()
Dim cmd As New SqlCommand()
cmd.CommandText = "insert into payments (con_id,pay_number,must_paid,date) values(@con_id,@pay_number,@must_paid,@date)"
cmd.Parameters.AddWithValue("@con_id", ((cont_id_txt.Text) ))
cmd.Parameters.AddWithValue("@pay_number", (i))
cmd.Parameters.AddWithValue("@must_paid", (must_paid))
cmd.Parameters.AddWithValue("@date", (datee))
cmd.Connection = SQL.conn
cmd.ExecuteNonQuery()
SQL.conn.Close()
Catch ex As SqlException
MsgBox(ex.Message, MsgBoxStyle.Critical, "SQL Error")
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "General Error")
End Try
End Sub