(5) по каждой платёжке нужно создавать отдельный док.
если в одной платёжке оплачивали несколько месяцев - нужно разбить по месяцам уплаты (т.е. месяц, ЗА который происходит уплата, а не В котором)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший