AC RECORD
SYSDBA (обсуждение | вклад) |
SYSDBA (обсуждение | вклад) (→См. также) |
||
| (не показаны 2 промежуточные версии 1 участника) | |||
| Строка 1: | Строка 1: | ||
| + | '''Бухгалтерская проводка''' в системе Гедымин может быть простой (один счет по дебету и один по кредиту) или сложной (один дебет, несколько кредитов, или несколько дебетов, один кредит). В базе данных проводка представлена записью в таблице [[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) обеспечивает синхронность изменений полей в заголовке и позициях проводки, а также контролирует ее корректность, т.е. равенство сумм по дебету и кредиту. | ||
| + | |||
| + | Некорректные проводки удаляются в момент коммита транзакции. Единственный вариант, когда некорректная проводка может попасть в базу данных, если в корреспонденции участвует забалансовый счет. | ||
| + | |||
| + | <syntaxhighlight lang="SQL"> | ||
/* | /* | ||
* | * | ||
| Строка 18: | Строка 24: | ||
masterdockey dintkey, /* Ключ шапки документа */ | masterdockey dintkey, /* Ключ шапки документа */ | ||
companykey dintkey, /* Ключ фирмы по которой сформирована проводка */ | companykey dintkey, /* Ключ фирмы по которой сформирована проводка */ | ||
| − | |||
| − | |||
debitncu dcurrency, /* Сумма проводки по дебету в НДЕ */ | debitncu dcurrency, /* Сумма проводки по дебету в НДЕ */ | ||
| Строка 62: | Строка 66: | ||
FOREIGN KEY (companykey) REFERENCES gd_company(contactkey) | FOREIGN KEY (companykey) REFERENCES gd_company(contactkey) | ||
ON UPDATE CASCADE; | ON UPDATE CASCADE; | ||
| + | </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;