<< Пред.           стр. 9 (из 12)           След. >>

Список литературы по разделу

 rst.MoveLast
 Дата = rst![Дата]
 j = rst.RecordCount
 rst.MoveFirst
 
 For i = 1 To j
 ЦенаП = rst![Цена] + ЦенаП
 rst.MoveNext
 Next i
 Forms![Просмотр]![ОсновныеСчета].Form![ПоПлатежке] = ЦенаП
 rst.Close
 
 If ЦенаП < Сумма Then
  Msg = "Cумма по счету" & Chr(13) & " - " & Сумма & "р." & Chr(13) & "Cуммы по платежкам " & Chr(13) & " - " & ЦенаП & "р." & Chr(13) & "Cуммы по платежкам меньше суммы по счета." ' Сообщение.
  'Msg = "Cуммы по платежкам меньше суммы по счетам." & Chr(13) & "Занести в авансовый отчет?" ' Сообщение.
  Style = vbCancel + vbCritical ' Кнопки.
  Title = "Предупреждение" ' Заголовок.
  Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.
 
  Exit Sub
 
 End If
 
 If ЦенаП > Сумма Then
  Msg = "Cумма по счету" & Chr(13) & " - " & Сумма & "р." & Chr(13) & "Cуммы по платежкам " & Chr(13) & " - " & ЦенаП & "р." & Chr(13) & "Cуммы по платежкам больше суммы по счета." ' Сообщение.
  'Msg = "Cуммы по платежкам больше суммы по счета." & Chr(13) & "Занести в авансовый отчет?" ' Сообщение.
  Style = vbOKCancel + vbCritical ' Кнопки.
  Title = "Предупреждение" ' Заголовок.
  Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.
  If Response = vbOK Then ' Если нажата кнопка "Да" (Yes).
  flagБольше = True
  Разница = ЦенаП - Сумма
  GoTo labelOK
  Else
  Exit Sub
  End If
 End If
 
 
 
  'ЦенаП_Р = ЦенаП
  'Сумма_Р = Сумма
  Msg = "Cумма по счету" & Chr(13) & " - " & Сумма & "р." & Chr(13) & "Cуммы по платежкам " & Chr(13) & " - " & ЦенаП & "р." & Chr(13) & "Суммы совпадают." & Chr(13) & "Занести в авансовый отчет?" ' Сообщение.
  Style = vbOKCancel + vbInformation ' Кнопки.
  Title = "Сообщение" ' Заголовок.
  Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.
 
  If Response = vbOK Then ' Если нажата кнопка "Да" (Yes).
  Forms![Просмотр]![ОсновныеСчета].Form![Разница] = 0
  GoTo labelOK
  Else
  Exit Sub
  End If
 
 labelOK:
 
  Set rst = dbs.OpenRecordset("ДанныеДляАвансОтчета")
  strSQL = "SELECT DISTINCTROW ОсновныеСчета.НомерСчета, Дистрибутивы.КодСистемы, Дистрибутивы.Цена, Дистрибутивы.ТолькоИПС, Дистрибутивы.Сопровождение, Дистрибутивы.КоличествоМ, Дистрибутивы.Количество FROM [ОсновныеСчета] INNER JOIN Дистрибутивы ON ОсновныеСчета.КодСчета = Дистрибутивы.КодСчета WHERE (((ОсновныеСчета.НомерСчета)=" & sing & Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & sing & "));"
 
  '"SELECT DISTINCTROW ОсновныеСчета.НомерСчета, Дистрибутивы.КодСистемы, Дистрибутивы.Цена, Дистрибутивы.Сопровождение, Дистрибутивы.КоличествоМ, Дистрибутивы.Количество FROM [ОсновныеСчета] INNER JOIN Дистрибутивы ON ОсновныеСчета.НомерСчета = Дистрибутивы.НомерСчета WHERE (((ОсновныеСчета.НомерСчета)=" & Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & "));"
  Set rstПоCчету = dbs.OpenRecordset(strSQL)
  Set rstПоАО = dbs.OpenRecordset("АвансовыйОтчет")
 
  rstПоCчету.MoveLast
  j = rstПоCчету.RecordCount
 
  ДатаStore = Дата
  Select Case Forms![Просмотр]![ОсновныеСчета].Form![Код]
  Case 1, 3
  Нал = False
  Case 2
  Нал = True
  End Select
 
 
  rstПоCчету.MoveFirst
  'ОСНОВНОЙ ЦИКЛ
  flagДата = False
  For i = 1 To j
 
  'Проверка для вторичного ИПС
 
  If rstПоCчету![Цена] = 0 Then
  If flagДата = False Then
  GoTo ДатаОпределение
  End If
 
  Дата = ДатаStore
 
  Set dbs = CurrentDb
  strSQLTMP = "SELECT DISTINCTROW ДанныеДляАвансОтчета.Код, ДанныеДляАвансОтчета.КодЗаказчика, ДанныеДляАвансОтчета.КодСистемы, ДанныеДляАвансОтчета.КоличествоМС, Max(ДанныеДляАвансОтчета.ДатаПМС) AS ДатаПМС FROM [ДанныеДляАвансОтчета] GROUP BY ДанныеДляАвансОтчета.Код, ДанныеДляАвансОтчета.КодЗаказчика, ДанныеДляАвансОтчета.КодСистемы, ДанныеДляАвансОтчета.КоличествоМС HAVING (((ДанныеДляАвансОтчета.КодЗаказчика)=" & Forms![Просмотр]![КодЗаказчика] & ") AND ((ДанныеДляАвансОтчета.КодСистемы)=" & rstПоCчету![КодСистемы] & ") AND ((ДанныеДляАвансОтчета.КоличествоМС)<>0));"
  Set rstTMP2 = dbs.OpenRecordset(strSQLTMP)
 
  If rstTMP2.RecordCount >= 1 Then
  GoTo labelЕстьЗаписи
  'Else
  'MsgBox ("Записей Нет")
  Exit Sub
  End If
 labelЕстьЗаписи:
 
 
  rstTMP2.MoveLast
  rstTMP2.Close
 
 Дата:
  ДатаTMP2 = Format(ДатаStore, "m yy")
  If flagГолоеСопр = True Then 'Расписать если сопров голое
  rst.AddNew
  rst![КодЗаказчика] = Forms![Просмотр]![КодЗаказчика]
  rst![КодСчета] = Forms![Просмотр]![ОсновныеСчета].Form![КодСчета]
  rst![КодСистемы] = rstПоCчету![КодСистемы]
  rst![ДатаПМС] = Format(ДатаTMP2, "m yy")
  rst![КоличествоМС] = rstПоCчету![КоличествоМ]
  rst![Нал] = Нал
 
  Msg = "Заносим сопровождение " & НазваниеСистемы(rstПоCчету![КодСистемы]) & " на " & rstПоCчету![КоличествоМ] & " месяцев"
  Style = vbOKCancel + vbInformation ' Кнопки.
  Title = "Сообщение" ' Заголовок.
  MsgBox Msg, Style, Title
 
  rst.Update
  rst.MoveLast
 
  m = rstПоCчету![КоличествоМ]
 
  For k = 1 To m
  rstПоАО.AddNew
  rstПоАО![ИдентКод] = rst![Код]
  ЦенаСоп = rstПоCчету![Сопровождение] / m
  rstПоАО![Сумма] = ЦенаСоп * 1.2
  rstПоАО![Нал] = Нал
  ДатаTMP = Format(ДатаПМС, "m yy")
  rstПоАО![Месяц] = ДатаTMP
  ДатаTMP = ДатаTMP + 32
  ДатаПМС = ДатаTMP
  rstПоАО.Update
  Next k
  GoTo labelnext
  End If
 
  'Сравнение с месяцем выписки
 
  ДатаTMP2 = CDate(Format(ДатаStore, "m yy"))
  If CDate(ДатаTMP2) <= CDate(ДатаПМС) Or (CDate(Format(ДатаStore, "m yy")) - CDate(Format(ДатаПМС, "m yy"))) / 100 = 1 Then
  rst.AddNew
  rst![КодЗаказчика] = Forms![Просмотр]![КодЗаказчика]
  rst![КодСчета] = Forms![Просмотр]![ОсновныеСчета].Form![КодСчета]
  rst![КодСистемы] = rstПоCчету![КодСистемы]
  ДАТАПМП = Format(ДатаПМС, "m yy")
  ДАТАПМП = ДАТАПМП + 32
  rst![ДатаПМС] = Format(ДатаTMP2, "m yy")
  rst![КоличествоМС] = rstПоCчету![КоличествоМ]
  rst![Нал] = Нал
 
  Msg = "Заносим сопровождение " & НазваниеСистемы(rstПоCчету![КодСистемы]) & " на " & rstПоCчету![КоличествоМ] & " месяцев с " & CurrentMonthWParamWSuf(ДатаTMP2)
  Style = vbOKOnly + vbInformation ' Кнопки.
  Title = "Сообщение" ' Заголовок.
  MsgBox Msg, Style, Title
 
  rst.Update
  rst.MoveLast
 
  m = rstПоCчету![КоличествоМ]
 
  For k = 1 To m
  rstПоАО.AddNew
  rstПоАО![ИдентКод] = rst![Код]
  ЦенаСоп = rstПоCчету![Сопровождение] / m
  rstПоАО![Сумма] = ЦенаСоп * 1.2
  rstПоАО![Нал] = Нал
  ДатаTMP = Format(ДАТАПМП, "m yy")
  rstПоАО![Месяц] = ДатаTMP
  ДатаTMP = ДатаTMP + 32
  ДАТАПМП = ДатаTMP
  rstПоАО.Update
  Next k
 
  Else
 
  РазницаДат = (CDate(Format(ДатаStore, "m yy")) - CDate(Format(ДатаПМС, "m yy"))) / 100
  rst.AddNew
  rst![КодЗаказчика] = Forms![Просмотр]![КодЗаказчика]
  rst![КодСчета] = Forms![Просмотр]![ОсновныеСчета].Form![КодСчета]
  rst![КодСистемы] = rstПоCчету![КодСистемы]
  rst![ДатаПМС] = ДатаTMP2
  rst![КоличествоМС] = rstПоCчету![КоличествоМ]
  rst![Нал] = Нал
  rst.Update
  rst.MoveLast
 
 
  rstПоАО.AddNew
  rstПоАО![ИдентКод] = rst![Код]
  ЦенаСоп = rstПоCчету![Сопровождение] / rstПоCчету![КоличествоМ]
  rstПоАО![Сумма] = ЦенаСоп * 1.2 * CInt(РазницаДат)
  rstПоАО![Нал] = Нал
  ДатаTMP = Format(Дата, "m yy")
  rstПоАО![Месяц] = ДатаTMP
  ДатаTMP = ДатаTMP + 32
  Дата = ДатаTMP
  rstПоАО.Update
 
 
  m = rstПоCчету![КоличествоМ]
 
  For k = 1 To m - CInt(РазницаДат)
  rstПоАО.AddNew
  rstПоАО![ИдентКод] = rst![Код]
  ЦенаСоп = rstПоCчету![Сопровождение] / m
  rstПоАО![Сумма] = ЦенаСоп * 1.2
  rstПоАО![Нал] = Нал
  ДатаTMP = Format(Дата, "m yy")
  rstПоАО![Месяц] = ДатаTMP
  ДатаTMP = ДатаTMP + 32
  Дата = ДатаTMP
  rstПоАО.Update
  Next k
  End If
 
  Else
  'ДЛЯ ПЕРВИЧНОЙ ПОКУПКИ
  Дата = ДатаStore
  If rstПоCчету![Цена] <> 0 Then
  rst.AddNew
  rst![КодЗаказчика] = Forms![Просмотр]![КодЗаказчика]
  rst![КодСчета] = Forms![Просмотр]![ОсновныеСчета].Form![КодСчета]
  rst![КодСистемы] = rstПоCчету![КодСистемы]
  rst![ДатаПМС] = Дата
  rst![КоличествоМС] = 0
  rst![Нал] = Нал
  rst.Update
  rst.MoveLast
 
  rstПоАО.AddNew
  rstПоАО![ИдентКод] = rst![Код]
  rstПоАО![Сумма] = rstПоCчету![Цена] * 1.2
  rstПоАО![Месяц] = Дата
  rstПоАО![Нал] = Нал
 
  Msg = "Заносим сумму реализации системы " & НазваниеСистемы(rstПоCчету![КодСистемы]) & " на " & CurrentMWParam(Дата)
  Style = vbOKOnly + vbInformation ' Кнопки.
  Title = "Сообщение" ' Заголовок.
  MsgBox Msg, Style, Title
 
  rstПоАО.Update
 
  End If
 
  If rstПоCчету![Сопровождение] <> 0 Then
  rst.AddNew
  rst![КодЗаказчика] = Forms![Просмотр]![КодЗаказчика]
  rst![КодСчета] = Forms![Просмотр]![ОсновныеСчета].Form![КодСчета]
  rst![КодСистемы] = rstПоCчету![КодСистемы]
  rst![ДатаПМС] = Дата
  rst![КоличествоМС] = rstПоCчету![КоличествоМ]
  rst![Нал] = Нал
 
  Msg = "Заносим сопровождение " & НазваниеСистемы(rstПоCчету![КодСистемы]) & " на " & rstПоCчету![КоличествоМ] & " месяцев с " & CurrentMonthWParamWSuf(Дата)
  Style = vbOKOnly + vbInformation ' Кнопки.
  Title = "Сообщение" ' Заголовок.
  MsgBox Msg, Style, Title
 
  rst.Update
  rst.MoveLast
 
  m = rstПоCчету![КоличествоМ]
 
  For k = 1 To m
  rstПоАО.AddNew
  rstПоАО![ИдентКод] = rst![Код]
  ЦенаСоп = rstПоCчету![Сопровождение] / m
  rstПоАО![Сумма] = ЦенаСоп * 1.2
  rstПоАО![Нал] = Нал
  If Format(Дата, "dd") < 20 Then
  ДатаTMP = Format(Дата, "m yy")
  rstПоАО![Месяц] = ДатаTMP
  ДатаTMP = ДатаTMP + 32
  Дата = ДатаTMP
  rstПоАО.Update
  Else
  ДатаTMP = Format(Дата + 12, "m yy")
  rstПоАО![Месяц] = ДатаTMP
  ДатаTMP = ДатаTMP + 32
  Дата = ДатаTMP
  rstПоАО.Update
  End If
  Next k
  End If
  End If
 labelnext:
  rstПоCчету.MoveNext
  Next i
 
  Код = rst![КодСистемы]
  rst.Close
  rstПоCчету.Close
  rstПоАО.Close
 
 

<< Пред.           стр. 9 (из 12)           След. >>

Список литературы по разделу