Порядок расчета больничных и отпускных.

Структуры исходных таблиц.

Прежде чем создать структуры таблиц, рассмотрим схему данных запроса по расчету начислений.

Рис 7.1.3.1.1 Схема данных запроса «Начисления»

Таким образом, основные объекты, используемые в расчете, ориентировочно следующие:

Таблица: Справочник кадров

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ФИО Текстовый 25

Имя Текстовый 15

Отчество Текстовый 15

ДатаРожд Дата/время 8

Пол Текстовый 1

Кодотд Текстовый 3

Катег Текстовый 25

ГрупПерс Текстовый 3

ЗаСтаж Двойное с плавающей 8

ДатаПриема Дата/время 8

Резидент Длинное целое 4

Совест Длинное целое 4

РежимРаб Длинное целое 4

Ставка Двойное с плавающей 8

Коэф Двойное с плавающей 8

ЗаРасшир Двойное с плавающей 8

ПерсДопл Двойное с плавающей 8

ЗаКласс Двойное с плавающей 8

ЗаНенорм Двойное с плавающей 8

ЗаСовм Длинное целое 4

Проф Длинное целое 4

Дети Длинное целое 4

Вычет Двойное с плавающей 8

Вычет_дети Длинное целое 4

ЛьготаНал Длинное целое 4

Компенс Двойное с плавающей 8

Пособие Двойное с плавающей 8

%Алим Длинное целое 4

%Штраф Целое 2

СберБанк Длинное целое 4

 

Таблица: Паспортные данные

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ИНН Текстовый 12

№страх Текстовый 20

ДатаРож Дата/время 8

КодДок Текстовый 2

Номер Текстовый 7

Серия Текстовый 8

ДатаВыд Дата/время 8

КемВыд Текстовый 25

Страна Текстовый 3

Регион Текстовый 2

Индекс Текстовый 6

Район Текстовый 25

Город Текстовый 20

НасПункт Текстовый 25

Улица Текстовый 25

Дом Текстовый 3

Корпус Текстовый 2

Квартира Текстовый 3

Таблица: Табель[1])

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ФИО Текстовый 25

Месяц Длинное целое 4

Год Длинное целое 4

ОтрабДни Длинное целое 4

Часы Длинное целое 4

Ночные Длинное целое 4

Праздничные Длинное целое 4

 

Таблица: Трудовое соглашение

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ТрудСогл Двойное с плавающей 8

 

Таблица: Перечисления в Сбербанк

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

Госстрах Двойное с плавающей 8

Сбербанк Двойное с плавающей 8

Таблица: Помощь

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

Помощь Двойное с плавающей 8

Обряды Двойное с плавающей 8

 

 

Таблица: Премия[2])

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ФИО Текстовый 25

%Мес Двойное с плавающей 8

Разовая Длинное целое 4

 

Таблица: Перечисления в Сбербанк

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

Госстрах Двойное с плавающей 8

Сбербанк Двойное с плавающей 8

Таблица: Помощь

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

Помощь Двойное с плавающей 8

Обряды Двойное с плавающей 8

 

 

Таблица: Аванс

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

Аванс Двойное с плавающей 8

РазВыпл Двойное с плавающей 8

 

Таблица: Больничный

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ТипБол Текстовый 1

ДатаНач Дата/время 8

ДатаКон Дата/время 8

Дни1 Длинное целое 4

Дни2 Длинное целое 4

Процент Двойное с плавающей 8

 

Таблица: Отпуск

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

№Приказа Текстовый 6

ДатаПрик Дата/время 8

НачОтп Дата/время 8

КонОтп Дата/время 8

ДниКомп Двойное с плавающей 8

 

Таблица: Годовая зарплата

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ФИО Текстовый 25

Месяц Длинное целое 4

Год Длинное целое 4

РабДни Двойное с плавающей 8

ОтрабДни Длинное целое 4

Часы Длинное целое 4

КаледДни Двойное с плавающей 8

ДатаРожд Дата/время 8

Пол Текстовый 1

Кодотд Текстовый 3

Катег Текстовый 25

ГрупПерс Текстовый 3

ЗаСтаж Двойное с плавающей 8

НенормДень Двойное с плавающей 8

РасшЗоны Двойное с плавающей 8

ЗаКласс Двойное с плавающей 8

Совм Двойное с плавающей 8

ПерсДопл Двойное с плавающей 8

Заработок Двойное с плавающей 8

ПремМес Двойное с плавающей 8

РазПрем Длинное целое 4

ТрудСогл Двойное с плавающей 8

Больн Двойное с плавающей 8

ДатаНач Дата/время 8

ДатаКон Дата/время 8

ДниБол1 Длинное целое 4

ДниБол2 Длинное целое 4

НачОтп Дата/время 8

КонОтп Дата/время 8

ДниОтп Двойное с плавающей 8

ДниКомп Двойное с плавающей 8

ДеньОтп Двойное с плавающей 8

СумОтп Двойное с плавающей 8

СумКомп Двойное с плавающей 8

ДоначОкл Двойное с плавающей 8

ДонПрем Двойное с плавающей 8

ДонДопл Двойное с плавающей 8

ДонСовм Двойное с плавающей 8

ДонСтаж Двойное с плавающей 8

ДонОтп Двойное с плавающей 8

ДонКомпУв Двойное с плавающей 8

Помощь Двойное с плавающей 8

ПомОбряды Двойное с плавающей 8

Начислено Двойное с плавающей 8

Компенс Двойное с плавающей 8

Пособие Двойное с плавающей 8

развыпл Двойное с плавающей 8

алименты Двойное с плавающей 8

штраф Двойное с плавающей 8

ОблСумМес Двойное с плавающей 8

ТекНал Двойное с плавающей 8

Аванс Двойное с плавающей 8

ПрофВзн Двойное с плавающей 8

сбербанк Двойное с плавающей 8

удержано Двойное с плавающей 8

сумвыд Двойное с плавающей 8

выдано Двойное с плавающей 8

Выдача Двойное с плавающей 8

Долг Двойное с плавающей 8

Вычет Двойное с плавающей 8

ВычетИжд Двойное с плавающей 8

ВычетПом Двойное с плавающей 8

КодММОТ Длинное целое 4

КодДети Длинное целое 4

Годовой вычет Длинное целое 4

кодпом Длинное целое 4

КодВычПом Длинное целое 4

 

Заметим, что кроме исходных таблиц запрос НАЧИСЛЕНИЕ использует два запроса: расчет больничного и расчет отпускных.

 

По инструкции на 2004 год расчет больничных ведется из расчета среднего заработка, включая месячную премию, за предшествующие 12 месяцев месяцу заболевания.

Рассмотрим порядок начисления больнчных.

Пока не накоплена информация в годовой зарплате, можно предложить бухгалтеру внести данные о заработке и премии месячной (ТабНом, месяц, год, заработок, ПремМес) за предыдущие месяцы только для сотрудников, представивших листки нетрудоспособности. Затем создать серию запросов

Запрос: Для больничного

SQL

SELECT Больничный.ТабНом, Больничный.ТипБол, Больничный.ДатаНач, IIf([Дни1]<>0,Month([Больничный]![ДатаНач]),0) AS МесНач, Year([Больничный]![ДатаНач]) AS ГодНач, Больничный.ДатаКон, Month([Больничный]![ДатаКон]) AS МесКон, Year([Больничный]![ДатаКон]) AS ГодКон, Больничный.Дни1, Больничный.Дни2, Больничный.Процент

FROM Больничный; Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ТипБол Текстовый 1

ДатаНач Дата/время 8

МесНач Длинное целое 4

ГодНач Целое 2

ДатаКон Дата/время 8

МесКон Целое 2

ГодКон Целое 2

Дни1 Длинное целое 4

Дни2 Длинное целое 4

Процент Двойное с плавающей 8

 

Запрос: Выбор периода для расчета больничного

SQL

SELECT [Для больничного].[ТабНом], [Годовая зарплата].[Месяц], [Годовая зарплата].[Год], [Годовая

зарплата].[Преммес], [Годовая зарплата].[Заработок], [Годовая зарплата]![Заработок]+[Годовая

зарплата]![Преммес] AS Сумма

FROM [Для больничного] LEFT JOIN [Годовая зарплата] ON [Для больничного].[ТабНом]=[Годовая

зарплата].[ТабНом]

WHERE ((([Годовая зарплата].[Месяц]) Between IIf([Для больничного]![Меснач]-12>0,[Для

больничного]![Меснач]-12,[Для больничного]![Меснач]-12+12) And IIf([Для

больничного]![Меснач]-1>0,[Для больничного]![Меснач]-1,[Для больничного]![Меснач]-1+12)) And

(([Годовая зарплата].[Год]) Between IIf([Для больничного]![Меснач]-1>0,[Для

больничного]![Годнач],[Для больничного]![Годнач]-1) And IIf([Для больничного]![Меснач]-12>0,[Для

больничного]![Годнач],[Для больничного]![Годнач]-1)

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

Месяц Длинное целое 4

Год Длинное целое 4

Преммес Двойное с плавающей 8

Заработок Двойное с плавающей 8

Сумма Двойное с плавающей 8

 

 

Запрос: Итоговый для больничного

SQL

SELECT [Выбор периода для расчета больничного].ТабНом, Avg([Выбор периода для расчета

больничного].Преммес) AS [Avg-Преммес], Avg([Выбор периода для расчета

больничного].Заработок) AS [Avg-Заработок], Avg([Выбор периода для расчета больничного].Сумма)

AS [Avg-Сумма]

FROM [Выбор периода для расчета больничного]

GROUP BY [Выбор периода для расчета больничного].ТабНом

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

Avg-Преммес Двойное с плавающей 8

Avg-Заработок Двойное с плавающей 8

Avg-Сумма Двойное с плавающей 8

 

Запрос: Расчёт больничного

SQL

SELECT [Для больничного].ТабНом, [Для больничного].ТипБол, [Для больничного].ДатаНач, [Для

больничного].ДатаКон, [Для больничного].Дни1, [Для больничного].Дни2, [Для больничного].Процент,

[Для больничного].Меснач, [Для больничного].Годнач, [Для больничного].Мескон, [Для

больничного].Годкон, [Итоговый для больничного]![Avg-Сумма]/[Календарь]![РабДни]*[Для

больничного]![Процент]/100 AS Тариф1, [Итоговый для больничного]![Avg-Сумма]/[копия

календарь]![РабДни]*[Для больничного]![Процент]/100 AS Тариф2, [Для больничного]![Дни1]*[Тариф1]

AS Сумма1, [Для больничного]![Дни2]*[Тариф2] AS Сумма2, [Сумма1]+[Сумма2] AS Суммбол,

[Итоговый для больничного]![Avg-Преммес]/[Календарь]![РабДни]*[Для больничного]![Процент]/100 AS

Прем1, [Итоговый для больничного]![Avg-Преммес]/[Копия Календарь]![РабДни]*[Для

больничного]![Процент]/100 AS Прем2, [Итоговый для

больничного]![Avg-Заработок]/[Календарь]![РабДни]*[Для больничного]![Процент]/100 AS Зар1,

[Итоговый для больничного]![Avg-Заработок]/[Календарь]![РабДни]*[Для больничного]![Процент]/100

AS Зар2

FROM (([Для больничного] LEFT JOIN Календарь ON ([Для больничного].Меснач = Календарь.Месяц)

AND ([Для больничного].Годнач = Календарь.Год)) LEFT JOIN [копия календарь] ON ([Для

больничного].Мескон = [копия календарь].Месяц) AND ([Для больничного].Годкон = [копия

календарь].Год)) LEFT JOIN [Итоговый для больничного] ON [Для больничного].ТабНом = [Итоговый

для больничного].ТабНом;

Столбцы

Имя Тип Размер

ТабНом Текстовый 5

ТипБол Текстовый 1

ДатаНач Дата/время 8

ДатаКон Дата/время 8

Дни1 Длинное целое 4

Дни2 Длинное целое 4

Процент Двойное с плавающей 8

Меснач Целое 2

Годнач Целое 2

Мескон Целое 2

Годкон Целое 2

Тариф1 Двойное с плавающей 8

Тариф2 Двойное с плавающей 8

Сумма1 Двойное с плавающей 8

Сумма2 Двойное с плавающей 8

Суммбол Двойное с плавающей 8

Прем1 Двойное с плавающей 8

Прем2 Двойное с плавающей 8

Зар1 Двойное с плавающей 8

Зар2 Двойное с плавающей 8