AC RECORD

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
Строка 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>
  
 
[[Category:База данных]]
 
[[Category:База данных]]

Версия 15:01, 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;
Персональные инструменты
Пространства имён

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