240-2031 (664633), страница 14

Файл №664633 240-2031 (Разработка системы автоматизации для малого коммерческого предприятия работающего в сфере информационных услуг) 14 страница240-2031 (664633) страница 142016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 14)

Dim mil, tus, ed As Long

Dim sot, des, ed1 As Integer

Dim strval, strkop As String

Dim kop As Integer



Dim str1, str2 As String

Dim numstr As Integer



If (nnn > 999999999) Then

MsgBox ("Слишком большое число!")

Exit Function

End If

'

nnn = CDbl(Format(nnn, "Currency"))



If GetStrAfterSign(CStr(nnn) & "0") = "" Then

NewNumber = "00 копеек"

Exit Function

End If

kop = CInt(Left(GetStrAfterSign(CStr(nnn) & "0"), 2))

nnn = kop









numb(0) = " один"

numb(1) = " двe"

numb(2) = " три"

numb(3) = " четыре"

numb(4) = " пять"

numb(5) = " шесть"

numb(6) = " семь"

numb(7) = " восемь"

numb(8) = " девять"

numb(9) = " десять"

numb(10) = " одиннадцать"

numb(11) = " двенадцать"

numb(12) = " тринадцать"

numb(13) = " четырнадцать"

numb(14) = " пятнадцать"

numb(15) = " шестнадцать"

numb(16) = " семнадцать"

numb(17) = " восемнадцать"

numb(18) = " девятнадцать"



numb1(0) = " двадцать"

numb1(1) = " тридцать"

numb1(2) = " сорок"

numb1(3) = " пятьдесят"

numb1(4) = " шестьдесят"

numb1(5) = " семьдесят"

numb1(6) = " восемьдесят"

numb1(7) = " девяносто"



numb2(0) = " сто"

numb2(1) = " двести"

numb2(2) = " триста"

numb2(3) = " четыреста"

numb2(4) = " пятьсот"

numb2(5) = " шестьсот"

numb2(6) = " семьсот"

numb2(7) = " восемьсот"

numb2(8) = " девятьсот"



numb(19) = " одна"

numb(20) = " две"



mil = nnn \ 1000000

tus = (nnn - mil * 1000000) \ 1000

ed = nnn - mil * 1000000 - tus * 1000



If (mil <> 0) Then

sot = mil \ 100

des = (mil - sot * 100) \ 10

ed1 = mil - sot * 100 - des * 10



If (sot > 0) Then

strval = strval & numb2(sot - 1)

End If



If (des > 0) Then

If (des = 1) Then

strval = strval & numb(des * 10 + ed1 - 1) & " миллионов"

GoTo nex

Else

strval = strval & numb1(des - 2)

End If

End If



If (ed1 = 0) Then

strval = strval & " миллионов"

ElseIf (ed1 = 1) Then

strval = strval & " один миллион"

ElseIf (ed1 > 1 And ed1 < 5) Then

strval = strval & numb(ed1 - 1) & " миллиона"

Else

strval = strval & numb(ed1 - 1) & " миллионов"

End If

End If



nex:



If (tus <> 0) Then



sot = tus \ 100

des = (tus - sot * 100) \ 10

ed1 = tus - sot * 100 - des * 10



If (sot > 0) Then

strval = strval & numb2(sot - 1)

End If



If (des > 0) Then

If (des = 1) Then

strval = strval & numb(des * 10 + ed1 - 1) & " тысяч"

GoTo nex1

Else

strval = strval & numb1(des - 2)

End If

End If



If (ed1 = 0) Then

strval = strval & " тысяч"

ElseIf (ed1 = 1) Then

strval = strval & " одна тысяча"

ElseIf (ed1 = 2) Then

strval = strval & " две тысячи"

ElseIf (ed1 > 2 And ed1 < 5) Then

strval = strval & numb(ed1 - 1) & " тысячи"

Else

strval = strval & numb(ed1 - 1) & " тысяч"

End If

End If



nex1:



If (ed <> 0) Then

sot = ed \ 100

des = (ed - sot * 100) \ 10

ed1 = ed - sot * 100 - des * 10



If (sot > 0) Then

strval = strval & numb2(sot - 1)

End If



If (des > 0) Then

If (des = 1) Then

strval = strval & numb(des * 10 + ed1 - 1) & " копеек"

GoTo nex2

Else

strval = strval & numb1(des - 2)

End If

End If



If (ed1 = 0) Then

strval = strval & " копеек"

ElseIf (ed1 = 1) Then

strval = strval & " одна копейка"

ElseIf (ed1 > 1 And ed1 < 5) Then

strval = strval & numb(ed1 - 1) & " копейки"

Else

strval = strval & numb(ed1 - 1) & " копеек"

End If

Else

strval = strval & " копеек"

End If



nex2:

strval = LTrim(strval)

NewNumber = strval

End Function







2) Занесение денежных средств по счету на авансовый остаток.

Sub Кнопка347_Click()

On Error GoTo Err_Кнопка347_Click



Dim dbs As Database

Dim rst, rstПоCчету, rstПоАО As Recordset

Dim rstПоДате As Recordset

Dim strSQL As String

Dim i, j As Integer

Dim Цена, ЦенаП, Сопровождение, Сумма As Double

Dim Дата As Date

Dim ДатаTMP As Date

Dim ДатаПМС As Date

Dim ДатаTMP2 As Date

Dim ДАТАПМП As Date

Dim flagДата As Boolean

Dim flagБольше As Boolean

Dim flagГолоеСопр As Boolean

Dim Разница As Currency

Dim sing As String

'Dim ЦенаП_Р, Сумма_Р As Currency





flagБольше = False

Set dbs = CurrentDb

Me.Refresh



sing = Chr(34)



Set dbs = CurrentDb

strSQL = "SELECT DISTINCTROW ОсновныеСчета.НомерСчета, Дистрибутивы.Цена AS Цена, Дистрибутивы.Сопровождение AS Сопровождение FROM [ОсновныеСчета] INNER JOIN Дистрибутивы ON ОсновныеСчета.КодСчета = Дистрибутивы.КодСчета WHERE (((ОсновныеСчета.НомерСчета)=" & sing & Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & sing & "));"

Set rst = dbs.OpenRecordset(strSQL)







If Forms![Просмотр]![ОсновныеСчета].Form![ВнесениеВАО] = True And Разница = 0 Then

Msg = "Суммы по счету уже внесены в авансовый отчет." ' Сообщение.

Style = vbOKCancel + vbQuestion ' Кнопки.

Title = "Сообщение" ' Заголовок.

Response = MsgBox(Msg, Style, Title) ' Выводит сообщение.

If Response = vbOK Then ' Если нажата кнопка "Да" (Yes).

GoTo labelBegin

Else

Exit Sub

End If

End If



labelBegin:



Цена = 0

Сопровождение = 0

rst.MoveLast

j = rst.RecordCount

rst.MoveFirst

For i = 1 To j

Цена = rst![Цена] * 1.2 + Цена

Сопровождение = rst![Сопровождение] * 1.2 + Сопровождение

rst.MoveNext

Next i

Сумма = Цена + Сопровождение

Forms![Просмотр]![ОсновныеСчета].Form![ПоСчету] = Сумма

rst.Close



strSQL = "SELECT DISTINCTROW ОсновныеСчета.НомерСчета, Платежки.СуммаПрихода As Цена, Платежки.ДатаВыписки As Дата FROM [ОсновныеСчета] INNER JOIN Платежки ON ОсновныеСчета.КодСчета = Платежки.КодСчета WHERE (((ОсновныеСчета.НомерСчета)=" & sing & Forms![Просмотр]![ОсновныеСчета].Form![НомерСчета] & sing & "));"

Set rst = dbs.OpenRecordset(strSQL)

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

Характеристики

Список файлов реферата

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7041
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее