Новые проводки (постановка)

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
Строка 35: Строка 35:
 
     имеем дело с последовательностью операций.
 
     имеем дело с последовательностью операций.
 
     */
 
     */
     prevkey        dforeignkey
+
     prevkey        dforeignkey,
 +
 
 +
 
 +
    FOREIGN KEY a2_fk_entry_masterentrykey (masterentrykey)
 +
      REFERENCES a2_entry (id)
 +
      ON DELETE CASCADE
 +
      ON UPDATE CASCADE,
 +
    FOREIGN KEY a2_fk_entry_companykey (companykey)
 +
      REFERENCES gd_ourcompany (companykey)
 +
      ON DELETE NO ACTION
 +
      ON UPDATE CASCADE,
 +
    FOREIGN KEY a2_fk_entry_dtkey (dtkey)
 +
      REFERENCES ac_account (id)
 +
      ON DELETE NO ACTION
 +
      ON UPDATE CASCADE,
 +
    FOREIGN KEY a2_fk_entry_ctkey (ctkey)
 +
      REFERENCES ac_account (id)
 +
      ON DELETE NO ACTION
 +
      ON UPDATE CASCADE,
 +
    FOREIGN KEY a2_fk_entry_prevkey (prevkey)
 +
      REFERENCES a2_entry (id)
 +
      ON DELETE NO ACTION
 +
      ON UPDATE CASCADE
 
   );
 
   );
  

Версия 12:42, 16 ноября 2016

  CREATE TABLE a2_entry (
    id             dintkey,
 
    /*
    Для сложных проводок мы имеем обязательно одну главную запись
    и несколько дополнительных дебетов или кредитов.  
    */
    masterentrykey dforeignkey,
 
    companykey     dintkey, 
 
    dtkey          dintkey,
    ctkey          dintkey,  
 
    /*
    Фиксируем не только дату, но и время проводки.
    Там, где не принципиально или время не известно будем
    использовать 00:00.
    */ 
    entrydate      dtimestamp_notnull,
 
    /* тип документа */     
    doctypekey     dintkey,
 
    /* ИД записи в таблице документа */
    docid          dintkey,
 
    /* ИД шага из бизнес-процесса */
    bpseq          dintkey,
 
    /* 
    Предыдущая операция (проводка), если
    имеем дело с последовательностью операций.
    */
    prevkey        dforeignkey,
 
 
    FOREIGN KEY a2_fk_entry_masterentrykey (masterentrykey)
      REFERENCES a2_entry (id)
      ON DELETE CASCADE
      ON UPDATE CASCADE, 
    FOREIGN KEY a2_fk_entry_companykey (companykey)
      REFERENCES gd_ourcompany (companykey)
      ON DELETE NO ACTION
      ON UPDATE CASCADE, 
    FOREIGN KEY a2_fk_entry_dtkey (dtkey)
      REFERENCES ac_account (id)
      ON DELETE NO ACTION
      ON UPDATE CASCADE, 
    FOREIGN KEY a2_fk_entry_ctkey (ctkey)
      REFERENCES ac_account (id)
      ON DELETE NO ACTION
      ON UPDATE CASCADE, 
    FOREIGN KEY a2_fk_entry_prevkey (prevkey)
      REFERENCES a2_entry (id)
      ON DELETE NO ACTION
      ON UPDATE CASCADE 
  );
 
  CREATE TABLE a2_some_doc (
    id         dintkey,
 
    /*
    Мы больше не ограничиваем структуру двумя уровнями вложенности
    шапка-позиция. Документ может быть сложным с неограниченным количеством
    уровней вложенности. upkey -- ссылка на таблицу верхнего уровня.
    */
    upkey      dforeignkey, 
 
    /*
    Следующие поля необязательны. Разработчик сам решает будут они 
    присутствовать в конкретном документе или нет.
    */
    [docnumber  ddocnumber,]
    [docorder   dinteger,] 
 
    [creationdate dcreationdate,]
    [creatorkey   dcreatorkey,]
    [editiondate  deditiondate,]
    [editorkey    deditorkey,]
    [aview        dsecurity,]
    [achag        dsecurity,]
    [afull        dsecurity,]
 
    /*
    Поля документа, содержащие объект, признаки, значения.
    */ 
    [attr1]
    ...
    [attrn]
  );
Персональные инструменты
Пространства имён

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