Научился считать зарплату в банке. Почему бы и не пойти дальше. За его пределы так сказать. Обратилась знакомая, работавшая по совместительству главным бухгалтером еще в парочке организаций, обратилась ко мне. Не желает ли глубокоуважаемый джин, то есть я, заработать немного денег, написав и запустив расчет зарплаты на ее подшефном предприятии. Джин скучал. И потому не возражал. Взялся.
Предприятием этим оказался средних размеров заводик, человек шестьсот примерно. Тут извращений было сильно больше. Одних расчетов было штук шесть. Для себя (т.е. как оно на самом деле), для налоговой, для холдинга, для страховой компании. В каждом случае отдельно почему-то выделялись пенсионеры и кто собирался на пенсию. Очень непросто. Причина видимо была в особом взгляде на жизнь бухгалтерши. Она как-то так прятала доходы от налоговой. Уж очень все было запутано. Самое то для проверки на вшивость всяких чудных программ. Типа моей.
Начал я писать расчет им. Ведение списка работников со всякими признаками - это не сложно. Подобных справочников было уже изваяно не один десяток. Виды начислений удержаний - тоже самое. Просто справочник. Список видов оплат с указанием месяца расчета и работника - тоже не бог весть что. Но вот собственно расчет заковырист. Ибо надо было работать с целым массивом – считывались все данные по работнику, оклад, премия, наряды закрытые и прочее. Ко всем этим значениям применялся каскад формул. Далее все виды начислений, у которых не нулевые значения, сохранялись под именем этого работника и видом оплат.
А закавыка была в том, что надо уметь все время считать нарастающий итог с начала года или брать несколько месяцев. Это было по-разному для разных видов оплат. А если учесть что проводились постоянные пересчеты задним числом - то дело еще более усложнялось. Не была предусмотрена ретроспектива у меня. Сделал. Набор такой специальных функций. Ну и округления до рубля конечно. Как без этого. В расчете текущего месяца надо добавить копейки отброшенные в предыдущем месяце, округлить то, что на руки до рубля, а если копейки есть, то сохранить их в вид оплат "Копейки будущего периода".
Оказалось, что зарплата может иметь отрицательное значение. Народ там с завидной регулярностью чего-нибудь ломал, терял, крал. Вот и удерживали с них. Нормальная такая проверка расчетов. Много их всяких разных было. Изначально сделал два знака под код вида оплат. Не хватило - пришлось увеличить до четырех. Чуда не подвела - считала все за секунды.
Там же выполнил особое пожелание - данные должны быть на внешнем носителе и под паролем, который постоянно менялся. Сделал народу такой список паролей и правила их применения в зависимости от даты. Шифроблокнот шпиёна. Это же самая главная тайна - кто сколько получает.
В итоге на достругивание ушло что-то около пары недель. Ну и доводили её до ума какое то время. Месяца четыре при каждом расчете. Да пока народ научился. Тоже время заняло. Сделал и все многообразие отчетов. Реестры, квитки, ведомости. Особая радость - это шахматка из видов оплат и работников. Матрица такая - по вертикали - работники (600 человек), по горизонтали - виды оплат (более сотни точно). Опять же печатание всего этого добра с хитрой нумерацией листов и подлистов. Листов продолжения по горизонту и листов продолжения по вертикали. Метода склеивания всего этого добра в простыню. Потом правда сделали гораздо удобнее - свели это все в формат А4, протяженность по горизонту - в гармошку складывали.
Весьма неплохо натренировал я на этом заводике свою программу. Оно полезно - тренировка. И тренируешься и деньги зарабатываешь и народу польза. Хорошо когда такое триединство.