AC RECORD
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) (→См. также) |
||
| (не показана 1 промежуточная версия 1 участника) | |||
| Строка 67: | Строка 67: | ||
ON UPDATE CASCADE; | ON UPDATE CASCADE; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| + | |||
| + | ====См. также==== | ||
| + | |||
| + | * [http://code.google.com/p/gedemin/source/browse/trunk/Gedemin/SQL/ac_accounting.sql AC_ACCOUNTING.SQL] | ||
[[Category:База данных]] | [[Category:База данных]] | ||
Текущая версия на 15:04, 11 февраля 2014
Бухгалтерская проводка в системе Гедымин может быть простой (один счет по дебету и один по кредиту) или сложной (один дебет, несколько кредитов, или несколько дебетов, один кредит). В базе данных проводка представлена записью в таблице AC_RECORD (заголовок проводки) и двумя или более записями в таблице AC_ENTRY (дебет(ы) и кредит(ы) проводки).
Система триггеров (ac_tc_record, AC_BI_RECORD, AC_BU_RECORD, AC_AD_RECORD, AC_BI_ENTRY, AC_AI_ENTRY, AC_BU_ENTRY, AC_AU_ENTRY, AC_AD_ENTRY) обеспечивает синхронность изменений полей в заголовке и позициях проводки, а также контролирует ее корректность, т.е. равенство сумм по дебету и кредиту.
Некорректные проводки удаляются в момент коммита транзакции. Единственный вариант, когда некорректная проводка может попасть в базу данных, если в корреспонденции участвует забалансовый счет.
/* * * Бухгалтерская проводка. * */ CREATE TABLE ac_record( id dintkey, /* Идентификатор */ trrecordkey dintkey, /* Ключ типовой проводки */ transactionkey dintkey, /* Ключ типовой операции */ recorddate ddate NOT NULL, /* Дата проводки */ description dtext180, /* Описание проводки */ documentkey dmasterkey, /* Ключ документа, по которому создана проводка */ masterdockey dintkey, /* Ключ шапки документа */ companykey dintkey, /* Ключ фирмы по которой сформирована проводка */ debitncu dcurrency, /* Сумма проводки по дебету в НДЕ */ debitcurr dcurrency, /* Сумма проводки по дебету в вал */ creditncu dcurrency, /* Сумма проводки по кредиту в НДЕ */ creditcurr dcurrency, /* Сумма проводки по кредиту в вал */ DELAYED dboolean DEFAULT 0, /* Отложенная проводка или нет */ incorrect dboolean DEFAULT 0, /* Не корректная проводка */ afull dsecurity, /* Дескрипторы безопасности */ achag dsecurity, aview dsecurity, disabled dboolean DEFAULT 0, reserved dinteger ); ALTER TABLE ac_record ADD CONSTRAINT ac_pk_record PRIMARY KEY (id); ALTER TABLE ac_record ADD CONSTRAINT ac_fk_record_trrec FOREIGN KEY (trrecordkey) REFERENCES ac_trrecord(id) ON UPDATE CASCADE; ALTER TABLE ac_record ADD CONSTRAINT ac_fk_record_tr FOREIGN KEY (transactionkey) REFERENCES ac_transaction(id) ON UPDATE CASCADE; ALTER TABLE ac_record ADD CONSTRAINT ac_fk_record_doc FOREIGN KEY (documentkey) REFERENCES gd_document(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE ac_record ADD CONSTRAINT ac_fk_record_mdoc FOREIGN KEY (masterdockey) REFERENCES gd_document(id) ON UPDATE CASCADE ON DELETE CASCADE; ALTER TABLE ac_record ADD CONSTRAINT ac_fk_record_compn FOREIGN KEY (companykey) REFERENCES gd_company(contactkey) ON UPDATE CASCADE;