Создание элементарного приложения для ведения бухгалтерского учета

StackOverflow https://stackoverflow.com/questions/421405

  •  05-07-2019
  •  | 
  •  

Вопрос

Я создаю простое бухгалтерское приложение для личных финансов.

Пользователь может отслеживать покупки, предстоящие счета, повторяющиеся депозиты и т.д.Это будет очень-очень просто.

Два вопроса:

1) Какой-нибудь совет, который я должен иметь в виду?Очевидно, что я буду использовать транзакции там, где это уместно, но было бы неплохо знать о правильных типах данных и других соображениях.

2) Существуют ли какие-либо известные вам API, которые я мог бы использовать для периодического получения баланса пользователя из его банка?т. е. API, который упростил бы запрос к их аккаунту, независимо от того, находятся ли они в Chase, BofA или другом?

Большое спасибо,

Майкл

Это было полезно?

Решение

Только что завершив выпуск версии 1.0 какого-то специально написанного онлайн-бухгалтерского программного обеспечения для школьных некоммерческих организаций, у меня есть несколько советов :)

  • Используйте стандартный учет с двойной записью (дебетование и кредитование) в качестве основы для вашего финансового механизма.Вы обнаружите, что это сослужит вам хорошую службу, когда дело дойдет не только до хранения данных о транзакциях, но и до создания отчетов.Активы = Обязательства + Собственный капитал - это испытанный подход для отслеживания того, кому что принадлежит.
  • Используйте десятичные типы для обозначения денег.
  • Используйте транзакции.
  • Сделайте интерфейс как можно более простым возможно.
  • Вам понадобится способ, чтобы разрешить пользователю сверять банковские записи со своими собственными записями.Получение банковских данных помогло бы этому процессу но вам нужно будет предоставить пользователю метод для сравнения.Для этого вы можете использовать банковские выписки процесс.
  • Банк всегда считается правым.Если есть расхождение между записями банка и пользователя...в ошибка почти всегда заключается в пользователе записи.
  • Убедитесь, что вы предоставляете какое-либо средство резервного копирования для пользователя
  • Защитите данные пользователей
  • Убедитесь, что вы полностью понимаете процесс, который вы автоматизируете.Не делайте предположений.Изложите свои идеи бухгалтеру, который специализируется на личных финансах.Проведение такой проверки немного поможет.
  • Будьте готовы написать МНОГО кода.Бухгалтерское программное обеспечение существует уже много лет, список "стандартных функций" для типичного пакета бухгалтерского учета вырос, и на рынке появилось довольно много игроков.Если вы планируете продавать этот продукт, вам нужно будет предоставить эти стандартные функции, а затем найти какой-то способ отличить его от того, что уже доступно с дополнительными функциями.
  • ТЕСТ, ТЕСТ, ТЕСТ и еще раз ТЕСТ.Вы ведете учет людей личные финансовые транзакции (их деньги).К ошибкам не относятся легкомысленно .

Другие советы

Я добавлю несколько советов, поскольку заканчиваю работу над POS-системой, которая фокусируется на БУХГАЛТЕРСКОМ учете, то есть необходимо отслеживать покупки, расходы, выставление счетов, учетные записи, кредитные карты, наличные, транспортные средства и т.д.Эти концепции в конечном итоге будут применены к персональной системе.

Лучший совет - просмотреть свои документы и попытаться сформировать свою базу данных с учетом того, что вам нужно сделать, чтобы перевести ваши физические документы на компьютер.Совместите это с первыми двумя главами учебника по бухгалтерскому учету, в которых рассказывается о счетах, плане счетов и журналах.

Книги, которыми я пользовался :Бухгалтерский учет под рукой Джорджа Мюррея Финансы и бухгалтерский учет для предпринимателей Сюзанны Каплан Введение в бухгалтерский учет Эйнсворта Бухгалтерский учет, информационные технологии и бизнес-решения Холландера

После того как ваши исходные документы будут введены в систему, вы сможете запускать запросы, чтобы получить ответы.Сделав это, вы исключили понятия "Главная книга" и "пробный баланс", поскольку вы просто исправляете или добавляете в свои исходные документы.Таким образом, "Главная книга" становится вычислением.Это было очень запутанно для меня.Опять же, все исходные документы будут помещены в "Журналы", которые могут быть таблицами вашей базы данных.Я использую общий журнал, журнал покупок, журнал платежей или выдачи наличных, журнал продаж и журнал денежных поступлений.Имейте в виду, что термин "НАЛИЧНЫЕ" относится к наличным деньгам, кредиту, чеку, дебету.

Например, у меня есть "общий журнал", который в основном является тем, что вам нужно.В этом журнале я отслеживаю "поступления от источников".Квитанцией может быть счет-фактура, например time warner cable, в котором указан номер счета.В этом случае я создаю "учетную запись" для time warner.Учетная запись Time warner будет связана с "планом счетов", в котором будет указан тип расходов как "интернет".Затем вводится счет-фактура с указанием даты, суммы и т.д.Счет-фактура ссылается на учетную запись Time warner.Как только счет введен, он считается неоплаченным.Затем вам нужно добавить платеж.Конечно, вы могли бы оплатить счет полностью, как положено, но вам может потребоваться произвести два платежа, или разделить платежи, или не платить полностью.Это приведет вас к "Журналу платежей" в сочетании с "таблицей подстановки счета к платежам", в которой должна быть указана сумма, применяемая к счету.Указанная сумма важна, потому что у вас может быть 4 неоплаченных счета от Time Warner, и вы просто в панике отправляете более 200 долларов, чтобы восстановить свой аккаунт.Затем этот платеж необходимо разделить по счетам-фактурам с суммами, применяемыми к каждому.И, конечно же, платежный аккаунт будет связан с вашими учетными записями.

В случае ввода квитанции учетная запись не используется.Допустим, вы покупаете нижнее белье в embrasse-moi и платите наличными.Ваша система будет учитывать поставщика, embrasse-moi, дату, стоимость, я добавил "налог на использование" на случай, если вы совершаете покупку через Интернет и не заплатили налог, но вы все еще должны его, сумму и "План счетов", который, по сути, определяет, к какой категории относятся ваши расходы.Все это попадает в общий журнал.В той же форме у вас будет указан способ оплаты.Я сделал упрощенную форму для учета расходов + точной оплаты, поскольку это очень распространенное явление.Если платеж разделен, то вам нужно будет ввести квитанцию, используя одну форму, затем создать несколько платежей, связанных с этой квитанцией, с помощью других форм.

Таким образом, в конечном итоге ваша база данных для этого простого бухгалтерского приложения будет содержать следующие таблицы:Учетные записи (информация об учетной записи, включая тип учетной записи, такой как cc / дебетовая карта, чек, наличные, инвентарный счет для деловых покупок, расходный счет, такой как коммунальные услуги, план счетов по умолчанию) План счетов (в основном, это список, описывающий, как классифицировать расходы и счета, которые будут включены в ваш операционный отчет, я поместил свой здесь, чтобы вы могли ознакомиться:http://embrasse-moi.com/exampleData/pos_chart_of_accounts.csv) У меня есть таблица начальных остатков по счетам, потому что нужно с чего-то начинать Тип учетной записи - имеется в виду кредитная карта, дебетовая карта и т.д.Имейте в виду, что уравнение бухгалтерского учета в основном меняется в зависимости от учетной записи.Дебеты по текущим счетам "плохие", потому что вы отдали свои деньги, а кредиты "хорошие", потому что вы взяли деньги, в то время как дебеты по кредитным картам "хорошие", потому что вы сократили свой долг, а кредиты "плохие", потому что вы увеличили свой долг План типов счетов, который является "активом, обязательством, долгосрочным активом и т.д.Это может быть включено в корзину учетных записей как тип перечисления Тогда есть общий журнал, который, как описано, содержит достаточно информации для описания вашего документа.Это по счету?Дата, сумма, тип (квитанция или счет-фактура), срок оплаты, я сохраняю флаг "оплачено", чтобы упростить запрос.Тогда у вас есть поиск между таблицей "общий журнал" и таблицей платежей Тогда у вас есть таблица платежей.

Получив всю эту информацию, вы почти никогда не будете использовать свой банк в качестве источников, поскольку они не всегда корректны, по крайней мере, мой банк допускает ошибки.Таким образом, этот тип структуры позволит вам быть в курсе вашей информации, и в конце месяца эта система выдаст выписку, которая выглядит идентично выпискам по вашему счету.И это и есть наша цель.

Об API-интерфейсах для получения информации из вашего банка:не просто, если это вообще возможно.Вы можете представить, на что пойдет ваш банк, чтобы убедиться, что все надежно.Я не думаю, что будет возможно автоматическое подключение.Обычно есть способ загрузить данные с помощью ручной загрузки файла после того, как вы вошли в свой онлайн-банкинг (если он у вас есть).Надеюсь, это будет в формате CSV или что-то подобное ;-)

[править]

Очевидно, здесь я был неправ, крупные банки ДЕЙСТВИТЕЛЬНО допускают прямое подключение.Я думаю, тогда вам придется проконсультироваться по этому поводу с вашей банковской техподдержкой.

[/править]

Что касается используемых типов данных, я бы, по крайней мере, рекомендовал десятичные дроби для денежных значений, а не двойные / плавающие.видишь это ТАК что задавайте вопросы и по этому поводу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top