Создание элементарного бухгалтерского приложения - PullRequest
2 голосов
/ 07 января 2009

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

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

Два вопроса:

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

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

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

Michael

Ответы [ 4 ]

9 голосов
/ 07 января 2009

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

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

Я добавлю несколько советов, поскольку я заканчиваю систему POS, которая фокусируется на УЧЕТЕ - то есть все покупки, расходы, выставление счетов, счета, кредитные карты, наличные, транспортные средства и т. Д. Все должны отслеживаться. Понятия в конечном итоге будут применены к персональной системе.

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

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

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

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

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

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

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

1 голос
/ 07 января 2009

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

[править]

Видимо, я был не прав, крупные банки разрешают прямое соединение. Полагаю, вам придется проконсультироваться с техподдержкой вашего банка.

[/ править]

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

0 голосов
/ 07 января 2009

Вы просматривали Microsoft® Office Accounting Express ?

...