Перефразировать:Шаблоны проектирования программного обеспечения для бухгалтерского учета

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

  •  21-08-2019
  •  | 
  •  

Вопрос

Еще в октябре Кристофер Джонсон спросил о Шаблоны проектирования программного обеспечения для бухгалтерского учета

Он получил несколько ответов, но все они были в основном одинаковыми и указывали на Схемы бухгалтерского учета Мартина Фаулерса.

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

Это будет в первую очередь кассовая система, в которой пользователям будут предоставлены счета, аналогичные банковским.Они могут входить в систему (через Интернет) и проверять баланс, совершать определенные транзакции и т.д..

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

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

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

Решение

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

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

Циклос это более практично.Он охватывает учетные записи пользователей и транзакции.

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

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

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

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

модели

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

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

tblTransactions
    - Amount
    - AccountID1
    - AccountID2
    - Type [CR/DR]
    - DateEntered

Тогда у меня тоже есть tblJournals который группирует транзакции по очевидному признаку.Вы также можете добавить JournalTypes, которые содержат общее описание того, что это за журнал, чтобы вы могли находить приятные вещи (изменения и т.д.).

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

У tblTransactions есть триггер, и триггер обновляет "Вычисленный баланс" для конкретных учетных записей в зависимости от типа.Затем вы также можете запустить отчет за заданный период и так далее.

Для реализации этого не требуется больших знаний в области бухгалтерского учета, и это просто, но эффективно.

Поиск в Google по запросу "двухэтапная фиксация"

Это не шаблон проектирования как таковой, но вам нужно убедиться, что такие операции, как "перевести сумму в долларах с $account1 на $account2" не надо когда - либо "вывести" без соответствующего "депозита"...т. е.если питание отключится до завершения "пополнения счета", "снятие средств" будет отменено

Транзакции с возможностью фиксации состоят из субтранзакций с возможностью отмены (rollback-able)...

  1. получение необходимых разрешений:банальный отказ, "недостаточно средств"
  2. запустите "двухфазную фиксацию"
  3. добавление дополнительных транзакций
  4. фиксация или откат

Предупреждение:Математика BCD была изобретена для предотвращения ошибки округления в математике базы 10.Вы не упоминаете международные проблемы, но вам понадобятся математические расчеты с фиксированной запятой или "большой точностью", конвертация валют и все остальное...

На самом деле я автор MyBanco, если вам нужна какая-либо помощь, просто напишите мне по электронной почте :)

Храните деньги в виде центов (целое число), а не долларов (с плавающей запятой).Это не дизайн, но, вероятно, он более полезен.

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