AC RECORD

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
(См. также)
 
Строка 70: Строка 70:
 
====См. также====
 
====См. также====
  
* [http://code.google.com/p/gedemin/source/browse/trunk/Gedemin/SQL/accounting.sql ACCOUNTING.SQL]
+
* [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;

[править] См. также

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты