Разработка модуля автоматизированного учета контрактов услуг для предприятия I.S."Radiocomunicatii"

Новые направления в развитии информационных систем. Концепция ERP, система universal accounting. Разработка первичных документов регистрации контрактов. Интерфейс документов начисления доходов от предоставленных услуг. Общий вид программного кода.

Рубрика Программирование, компьютеры и кибернетика
Вид магистерская работа
Язык русский
Дата добавления 12.11.2013
Размер файла 3,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Шаблоны отчетов хранятся в виде отдельных файлов с расширением.VTS в общей базе данных.

Справочники:

Universal Accounting® использует справочники трех типов: универсальный аналитический справочник, универсальный системный справочник и специализированные справочники-карточки. Конфигурирование справочников позволяет организовать бухгалтерский учет в разрезе аналитических счетов, использовать наборы записей справочников в различных документах и формах как отдельные самостоятельные справочники. Конфигурирование этих справочников состоит в настройке полей кодов фильтров, которые служат признаком использования записей справочников в том или ином контексте.

Универсальный справочник содержит все позиции аналитического учета независимо от их предметной сущности. Аналитический счет включает уникальный код, наименование, числовые и символьные атрибуты, системные поля и код фильтра и субфильтра. Атрибуты счета могут иметь разный смысл в зависимости от предметной сущности аналитики. Коды фильтра и субфильтра используются для настройки плана счетов в разрезе аналитического учета, где для каждого уровня аналитического учета указываются значения фильтра и субфильтра аналитических кодов. Код фильтра служит критерием, какие карточки будут использоваться для аналитики. Кроме того, коды фильтров позволяют автоматически фильтровать записи справочника в некоторых документах и формах.

Универсальный системный справочник хранит произвольные позиции, отличные от позиций аналитического учета. Структура универсального системного справочника - это три кода, образующих уникальный ключ, наименование позиции справочника, числовой и символьный атрибуты, коды справочных позиций.

Первые два кода используются как коды фильтров справочника. В специальной таблице можно указать, какие фильтры будут определять новый справочник для набора записей универсального справочника. Атрибуты записей справочника могут нести различную смысловую нагрузку в зависимости от используемых фильтров. Таким образом, настройка системы кодов фильтров и интерфейса справочника позволяет использовать универсальный системный справочник в определенных документах, формах, интерфейсах отчетов как отдельный самостоятельный многоуровневый справочник.

Все объекты бухгалтерского, складского и кадрового учета, а также их свойства описываются в справочниках.

Справочники делятся на категории: объекты учета, статьи затрат и доходов, структура компании, юридические и физические лица, не являющиеся контрагентами, описатели цен, ставок и налогов, классификаторы, служебные для обмена информацией о товарах и подчиненные.

2. ПРОЕКТИРОВАНИЕ МОДУЛЯ УЧЕТА КОНТРАКТОВ-УСЛУГ НА ПРЕДПРИЯТИИ «РАДИОКОММУНИКАЦИИ»

Проектирование данного модуля было следующим:

Сначала были разработаны и настроены виды первичных документов контрактов для ввода необходимой информации. Затем, на основании предыдущих документов регистрации контрактов и необходимых алгоритмов расчета, были разработаны документы начисления доходов исходя из действующих контрактов. Далее, были разработаны необходимые печатные формы налоговых накладных и счетов на оплату, которые должны отсылать клиенту, с которым был заключен контракт. И, наконец, разработка отчетности, которая позволяет рассмотреть и проанализировать ситуацию на какой то период времени, по конкретному клиенту и т.д.

2.1 Разработка первичных документов регистрации контрактов

При постановке задачи было выяснено, что существуют различные типы контрактов, согласно которым предоставляются разные виды услуг. Итак, были выявлены следующие типы контрактов:

«Contract radioficare» - контракт на подключение радиоузла(радиоточка - вещание радио посредством кабеля ).

« Contract Telecomunicatii» - контракт на услуги вещания ТВ и RD(радиовещания - вещание посредством передатчиков, устанавливаемых на вышках).

«Contract Suporturi radioficare» - контракт на установку антенн вещания для вспомогательных целей.

«Contract FST» - контракт на аренду технологического пространства.

«Contracte alte servicii» - контракт на прочие операции и услуги.

2.2 Разработка документов начисления доходов от предоставленных услуг. Алгоритмы расчета

Данный этап подразумевал создание документов, которые отражают доходы предприятия от предоставления услуг на основе действующих первичных документов контрактов.

Описание алгоритмов расчета, согласно каждому типу контракта, представлено ниже:

Документ «(1410) Calculul serviciilor RD fond locativ» начисление доходов от предоставленных услуг контрактов радиофикации(«(1413) Contract radioficare»). Алгоритм загрузки документа:

Выбираются все действующие контракты радиофикации на дату текущего документа. В зависимости от типа загрузки могут грузиться либо все клиенты, либо из какой то определенной группы клиентов.

Далее, если месяц, в котором создается текущий документ, является закрытием полугода(это месяцы июнь и декабрь), то фильтр на «Тип предоставляемой услуги» не применяется. Если месяц завершает квартал года (это месяцы март, июнь, сентябрь и декабрь), то фильтр на «Тип предоставляемой услуги» устанавливается на значения «Lunar» и «Trimestrial». Если месяц текущего документа другой, то на «Тип предоставляемой услуги» устанавливается только на значение «Lunar».

Далее, если валюта контракта отлична от LEI, то происходит перевод всех сумм в других валютах на леи по курсу НБМ на дату текущего документа.

Далее, если у контракта «Тип предоставляемой услуги» «Trimestrial», то рассчитывать суммы надо на 3 месяца. Соответственно, если «Тип предоставляемой услуги» «1 jumatate an», то рассчитывать суммы надо на 6 месяцев.

Если значение поля «НДС» у контракта равно «Inclusiv TVA», то поле «Pret» рассчитывается как поле «Pret»_контракта *(100/( %_НДС +100)), иначе поле «Pret» текущего документа равно полю «Pret» контракта.

Исходя из полей «Pret», НДС и «Cantitatea(luna)» дальше считаются остальные суммы.

Документ «(1415) Calculul serviciilor RD» начисление доходов от предоставленных услуг контрактов радиофикации(«(1413) Contract radioficare») на конкретный контракт одного клиента. Алгоритм загрузки документа:

Сначала в шапке документа выбирается клиент.

Затем выбирается из справочника действующий контракт и добавляется фильтр на контракт.

Дальше алгоритм похож на шаги a.- f. алгоритма документа «(1410) Calculul serviciilor RD fond locativ».

Документ «(1411) Calculul veniturilor din servicii de telecomunicatii» начисление доходов от предоставленных услуг контрактов телекоммуникации(«(1406) Contract Telecomunicatii») на конкретный контракт одного клиента. Алгоритм загрузки документа:

Сначала в шапке документа выбирается клиент.

Затем выбирается из справочника действующий контракт и добавляется фильтр на контракт.

Далее, выбирается максимальная дата спецификации контракта, которая не превышает месяца даты текущего документа.

Если значение поля «НДС» у контракта равно «Inclusiv TVA», то поле «Tarif lei/ora cap.deplina» рассчитывается как поле «Tarif lei»_контракта *(100/( %_НДС +100)), иначе поле «Tarif lei/ora cap.deplina» текущего документа равно полю «Tarif lei» контракта.

Документ «(1412) Calculul veniturilor din servicii FST» начисление доходов от предоставленных услуг контрактов FST(«(1409) Contract FST») на конкретный контракт одного клиента. Алгоритм загрузки документа:

Сначала в шапке документа выбирается клиент.

Затем выбирается из справочника действующий контракт и добавляется фильтр на контракт.

Далее, устанавливается максимальная дата спецификации контракта, которая не превышает месяца даты текущего документа.

Далее, если валюта контракта отлична от LEI, то происходит перевод всех сумм в других валютах на леи по курсу НБМ на дату текущего документа.

Далее, если у контракта «Тип предоставляемой услуги» «Trimestrial», то рассчитывать суммы надо на 3 месяца. Соответственно, если «Тип предоставляемой услуги» «1 jumatate an», то рассчитывать суммы надо на 6 месяцев. Если значение поля «НДС» у контракта равно «Inclusiv TVA», то поле «Plata lunar cf contract» рассчитывается как поле «Tarif ST»_контракта *(100/( %_НДС +100)), иначе поле «Plata lunar cf contract» текущего документа равно полю «Tarif ST» контракта. Документ «(1414) Calculul veniturilor din servicii SR» начисление доходов от предоставленных услуг контрактов по суппорту радиофикации(«(1407) Contract Suporturi radioficare») на конкретный контракт одного клиента. Алгоритм загрузки документа:

Сначала в шапке документа выбирается клиент.

Затем выбирается из справочника действующий контракт и добавляется фильтр на контракт.

Дальше алгоритм похож на шаги a.- f. алгоритма документа «(1410) Calculul serviciilor RD fond locativ».

2.3 Разработка печатных форм для налоговых накладных, счетов на оплату и отчетности

Здесь необходимо отметить разработку следующих печатных форм:

Налоговые накладные (разграфленные).

Налоговые накладные (не разграфленные).

Счет - фактуры к оплате.

Форма расчета объема предоставленных услуг по контракту.

Было разработано 2 отчета согласно требованиям клиента:

Отчет по истории спецификации(Radioficare).

Произвольный отчет по контрактам.

Здесь необходимо отметить использование аналитических функций Oracle:

функции ранжирования.

статистические функции для плавающего интервала.

функции подсчета долей.

статистические функции LAG/LEAD с запаздывающим/опережающим аргументом.

3. РЕАЛИЗАЦИЯ МОДУЛЯ УЧЕТА КОНТРАКТОВ - УСЛУГ В СРЕДЕ ORACLE. ИНТЕРФЕЙС МОДУЛЯ КОНТРАКТОВ

3.1 Описание объектов модуля контрактов. ER - диаграмма

ER - диаграмма модуля контрактов выглядит следующим образом:

Рис. 3.1 - ER - диаграмма

Как видно из рис. 3.1 таблица tmdb_docs является «главной» таблицей и отображает журнал документов. Таблица tmdb_cm отображает данные о бухгалтерских проводках документов. Таблица tmdb_reg отображает шапку документа. Таблица tmdb_reg_a отображает данные о датах спецификации контрактов. Таблицы tmdb_reg_a1 и tmdb_reg_a2 отражают основную информацию документа по услугам, предоставляемым согласно заключенному контракту(master таблица документа). Таблицы tmdb_reg_a1d и tmdb_reg_a2d отражают дополнительную информацию документа по услугам, предоставляемым согласно заключенному контракту(detail таблица документа). Более подробно создание таблиц, индексов и ограничений описывается в ПРИЛОЖЕНИИ 1.

Для описанных ранее таблиц были созданы необходимые триггеры. Например, триггер "TRIG_BFUPD_TMDB_DOCS" контролирует обновление журнала документов различными пользователями системы. Триггер "TRG_DOCS_COLOR" отвечает за проводимость документа(Документ меняет цвет при проведении, дезактивации либо удалении проводок). Триггер "XTRIGLOGDOCS" обеспечивает логирование документов. Триггер "TMDB_DOCS_TRLOG" логирует все действия, производимые пользователем в текущем документе. Триггер "TRIG_AFTINS_TMDB_DOCS2" позволяет продублировать документ. Более подробно создание триггеров описывается в ПРИЛОЖЕНИИ 1.

Для генерации уникальных кодов первичных ключей используются последовательности. Последовательность ID_TMDB_CM используется для генерации первичного ключа в таблице tmdb_cm и других таблицах. Последовательность ID_TMDB_DOCS используется для генерации первичного ключа в таблице tmdb_docs. Последовательность ID_TMS_UNIVERS используется для генерации кода в справочнике. Более подробно создание последовательностей описывается в ПРИЛОЖЕНИИ 1.

На основе таблиц были созданы представления. Представление VMDB_DOCS создано на основе таблицы TMDB_DOCS. Представление VMDB_REG создано на основе таблицы TMDB_ REG. Представление VMDB_REG_A создано на основе таблицы TMDB_ REG_A. Представление VMDB_REG_A1 создано на основе таблицы TMDB_REG_A1. Представление VMDB_REG_A2 создано на основе таблицы TMDB_REG_A2. Представление VMDB_REG_A1D создано на основе таблицы TMDB_REG_A1D. Представление VMDB_REG_A2D создано на основе таблицы TMDB_ REG_A2D. Более подробно создание представлений описывается в ПРИЛОЖЕНИИ 1.

Для реализации сложных алгоритмов расчета, создания действий(actions) над документом, генерации отчетов и печатных форм программный код разрабатывался в пакетах. Созданные процедуры и функции в пакетах реализуют программную логику модуля контрактов. Необходимо выделить пакет yrdc_contracts и yrdc_contr_reps. Структура пакетов приведена ниже, а полное описание можно посмотреть в ПРИЛОЖЕНИИ 2.

CREATE OR REPLACE PACKAGE RADIOCOM.yrdc_contracts AUTHID CURRENT_USER AS

/******************************************************************************

NAME: yrdc_contracts

PURPOSE:

REVISIONS:

Ver Date Author Description

- -- ---

1.0 28.10.2009 1. Created this package.

******************************************************************************/

-экшен "Дублирование данных из предыдущей даты"

PROCEDURE contr_dubl(p_nrdoc NUMBER,p_dataspec_new date,p_type_dubl number:=0);

-экшен "Рассчитать суммы"

PROCEDURE sum_account(p_nrdoc NUMBER,p_type_doc number:=0);

- экшен "Заполнить данными согласно контрактов"

PROCEDURE usl_calc(p_nrdoc NUMBER,p_sysfid NUMBER,p_client number:=-1,p_grp_name varchar2:=null);

- экшен "Расчитать НДС"

PROCEDURE calc_tva(p_nrdoc NUMBER,p_sysfid number);

PROCEDURE calc_tva_radiof(p_nrdoc NUMBER);

PROCEDURE calc_tva_telecom(p_nrdoc NUMBER);

PROCEDURE calc_tva_fst(p_nrdoc NUMBER);

PROCEDURE calc_contr_radiof(p_nrdoc NUMBER,p_sysfid NUMBER,p_client NUMBER,p_grp_name varchar2:=null,p_contr number:=null);

PROCEDURE calc_contr_telecom(p_nrdoc NUMBER,p_sysfid NUMBER);

PROCEDURE calc_contr_fst(p_nrdoc NUMBER,p_sysfid NUMBER);

-- action "Sgenerirovati nomera NN" v doc.1421

procedure gnr_NN_1421(p_nrdoc number, p_nrdoc1 number);

---

-- actioni "Заполнить из групы Servicii RD prestate populatiei" v doc.1421

procedure enter_servicii(p_nrdoc number);

---

-- action "Sgenerirovati nomera NN" v doc.1204

procedure gnr_NN_1204(p_nrdoc number, p_rrowid number);

заполнене 1422 документа. Все документы по услугам телекомуникаций за месяц (sysfid - 1411)

PROCEDURE enter_1422(p_nrdoc NUMBER, p_data DATE, p_client NUMBER);

procedure check_date(vdate date);

END yrdc_contracts;

/

CREATE OR REPLACE PACKAGE RADIOCOM.yrdc_contr_reps AS

/******************************************************************************

NAME: yrdc_contr_reps

PURPOSE:

REVISIONS:

Ver Date Author Description

- -- ---

1.0 02.02.2010 1. Created this package.

******************************************************************************/

отчет по истории спецификации, документов контарктов "(1413) Contract radioficare"

PROCEDURE rep_hist_spec(p_datastart date,p_dataend date,p_contr IN LONG,SQLH OUT LONG,SQLM OUT LONG);

PROCEDURE rep_serv_radio(p_datastart date,p_dataend date,p_contr IN LONG,SQLH IN OUT LONG,SQLM IN OUT LONG);

FUNCTION GET_CONTRACTS_DATA RETURN LONG;

END yrdc_contr_reps;

3.2 Интерфейс первичных документов регистрации контрактов

Для заключения контракта на подключение радиоузла был создан документ «(1413) Contract radioficare». В нем указываются реквизиты контракта(бенефициар, дата заключения, валюта контракта, номер контракта, схема оплаты, тип и т.д. ), даты спецификации и данные о предоставляемых услугах.

Документ «(1413) Contract radioficare» выглядит следующим образом:

Рис. 3.2 - Contract radioficare

Для заключения контракта на услуги вещания ТВ и RD был создан документ «(1406) Contract Telecomunicatii». В нем указываются реквизиты контракта(бенефициар, дата заключения, валюта контракта, номер контракта, схема оплаты, тип и т.д. ), даты спецификации и данные о предоставляемых услугах в том числе и данные о дополнительных услугах, необходимых для расчетов в документе доходов.

Документ «(1406) Contract Telecomunicatii» выглядит следующим образом:

Рис. 3.3 - Contract Telecomunicatii

Для заключения контракта на аренду технологического пространства был создан документ «(1409) Contract FST». В нем указываются реквизиты контракта(бенефициар, дата заключения, валюта контракта, номер контракта, схема оплаты, тип и т.д. ), даты спецификации и данные о предоставляемых услугах в том числе и данные о дополнительных услугах, необходимых для расчетов в документе доходов. Документ «(1409) Contract FST» выглядит следующим образом:

Рис. 3.4 - Contract FST

Для заключения контракта на установку антенн вещания для вспомогательных целей был создан документ «(1407) Contract Suporturi radioficare». В нем указываются реквизиты контракта(бенефициар, дата заключения, валюта контракта, номер контракта, схема оплаты, тип и т.д. ), даты спецификации и данные о предоставляемых услугах, необходимых для расчетов в документе доходов.

Документ «(1407) Contract Suporturi radioficare» выглядит следующим образом:

Рис. 3.5 - Contract Suporturi radioficare

Для заключения контракта на прочие операции и услуги был создан документ «(1408) Contracte alte servicii». В нем указываются реквизиты контракта(бенефициар, дата заключения, валюта контракта, номер контракта, схема оплаты, тип и т.д. ), даты спецификации и данные о предоставляемых услугах, необходимых для расчетов в документе доходов.

Документ «(1408) Contracte alte servicii» выглядит следующим образом:

Рис. 3.6 - Contracte alte servicii

3.3 Интерфейс документов начисления доходов от предоставленных услуг

Для начисления доходов от услуг, предоставляемых по контрактам «(1413) Contract radioficare», был создан документ «(1410) Calculul serviciilor RD fond locativ».

Документ «(1410) Calculul serviciilor RD fond locativ» выглядит следующим образом:

Рис. 3.7 - Calculul serviciilor RD fond locativ

Для начисления доходов от услуг, предоставляемых по конкретному контракту «(1413) Contract radioficare», был создан документ «(1415) Calculul serviciilor RD».

Документ «(1415) Calculul serviciilor RD» выглядит следующим образом:

Рис. 3.8 - Calculul serviciilor RD

Для начисления доходов от услуг, предоставляемых по контрактам «(1406) Contract Telecomunicatii», был создан документ «(1411) Calculul veniturilor din servicii de telecomunicatii».

Документ «(1411) Calculul veniturilor din servicii de telecomunicatii» выглядит следующим образом:

Рис. 3.9 - Calculul veniturilor din servicii de telecomunicatii

Для начисления доходов от услуг, предоставляемых по конкретному контракту «(1409) Contract FST», был создан документ «(1412) Calculul veniturilor din servicii FST».

Документ «(1412) Calculul veniturilor din servicii FST» выглядит следующим образом:

Рис. 3.10 - Calculul veniturilor din servicii FST

Для начисления доходов от услуг, предоставляемых по конкретному контракту «(1407) Contract Suporturi radioficare», был создан документ «(1414) Calculul veniturilor din servicii SR».

Документ «(1414) Calculul veniturilor din servicii SR» выглядит следующим образом:

Рис. 3.11 - Calculul veniturilor din servicii SR

3.4 Интерфейс печатных форм модуля контрактов

Для того чтобы выписать счет на оплату клиенту, была создана печатная форма «Счет к оплате», которая в конце месяца (либо квартала, либо полугодия в зависимости от заключенного контракта) распечатывается и отправляется по почте бенефициару.

Печатная форма «Счет к оплате» выглядит следующим образом:

Рис. 3.12 - Счет к оплате

Для того чтобы регистрировать прибыль предприятия, согласно законодательству республики Молдова, была создана печатная форма «Налоговая накладная (разграфленная)», которая в конце месяца(либо квартала, либо полугодия в зависимости от заключенного контракта) распечатывается и отправляется по почте бенефициару.

Печатная форма «Налоговая накладная (разграфленная)» выглядит следующим образом:

Рис. 3.13 - Налоговая накладная (разграфленная)

Для того чтобы регистрировать прибыль предприятия, согласно законодательству республики Молдова, была создана печатная форма «Налоговая накладная (не разграфленная)», которая в конце месяца(либо квартала, либо полугодия в зависимости от заключенного контракта) распечатывается и отправляется по почте бенефициару.

Печатная форма «Налоговая накладная (не разграфленная)» выглядит следующим образом:

Рис. 3.14 - Налоговая накладная (не разграфленная)

Для того чтобы выписать детальную расшифровку по предоставленным услугам, была создана печатная форма «Расчет объема дохода от предоставленных услуг», которая в конце месяца(либо квартала, либо полугодия в зависимости от заключенного контракта) распечатывается и отправляется по почте бенефициару.

Печатная форма «Расчет объема дохода от предоставленных услуг» выглядит следующим образом:

Рис. 3.15 - Расчет объема дохода от предоставленных услуг

3.5 Интерфейс разработанных отчетов модуля контрактов

Для просмотра изменений (количество подключений и отключений согласно истории спецификации контракта) по контрактам «(1413) Contract radioficare» был разработан отчет «Отчет по истории спецификации(Radioficare)». В отчете выбираются период просмотра и клиент (при необходимости просмотра контрактов по конкретному клиенту).

Отчет «Отчет по истории спецификации(Radioficare)» выглядит следующим образом:

Рис. 3.16 - Отчет по истории спецификации(Radioficare). Запуск

Рис. 3.17 - Отчет по истории спецификации(Radioficare). Формирование

Для просмотра произвольной информации по всем контрактам был разработан отчет «Произвольный отчет по контрактам». В отчете выбираются дата, на которую пользователь хочет увидеть информацию, а также интересующие поля контрактов.

Отчет «Произвольный отчет по контрактам» выглядит следующим образом:

Рис. 3.18 - Произвольный отчет по контрактам. Запуск

Рис. 3.19 - Произвольный отчет по контрактам. Формирование

3.6 Модуль контрактов в составе КИС Universal Accounting

Модуль контрактов после данной разработки является частью ИС Universal Accounting на предприятии « I.S. "RADIOCOMUNICATII" ». Все разработанные документы находятся в журнале «Contracte». Выглядит это все следующим образом:

Рис. 3.20 - Модуль контрактов как часть КИС Universal Accounting

ЗАКЛЮЧЕНИЕ

universal accounting контракт регистрация

В данной работе разработан модуль, позволяющий автоматизировать регистрацию контрактов на предоставление услуг, рассчитывать прибыль от проданных услуг, оперативно распечатывать налоговые накладные и счета на оплату, а также просматривать отчетность по работе модуля контрактов. В нем реализованы функции алгоритмов расчета доходов, формирования печатных форм, отчетов и документов, действия дублирования истории спецификаций, формирования проводок, формулы для вычисляемых полей и т.д.

Результаты тестирования показали, что внедрение данного модуля на предприятии «I.S.RADIOCOMUNICATII"» прошло успешно. Из результатов внедрения следует выделить повышение интереса персонала предприятия к работе и, как следствие, увеличение скорости и эффективности работы, экономии времени более чем на 50%, затрачиваемого на механические действия оформления, корректировки, ввода информации; снижение числа ошибок персонала и т.д. Исходя из полученных результатов, можно характеризовать данную разработку (модуль учета контрактов на предоставление услуг) как востребованную, нужную, полезную и сделать вывод о том, что модуль окупится с точки зрения вложенных в него средств.

По окончании работ был подписан акт приемки-сдачи (прикладывается) выполненных работ №3-RDC по модулю учета контрактов, датируемый 15-м апреля 2010 года. Это означает полноценное использование модуля сотрудниками предприятия «I.S. "RADIOCOMUNICATII"» в своей повседневной работе.

ЛИТЕРАТУРА

1. С. Урман «Oracle. Язык программирования PL/SQL», 2006.

2. Том Кайт «Oracle для профессионалов» Пер. с англ. - СПб.: ООО «ДиаСофтЮП», 2005. - 672 с.

3. Коннор МакДональд, Бек Кристофер «Oracle PL/SQL для профессионалов: практические решения»; Пер. с англ. - СПб.: ООО «ДиаСофтЮП», 2005. - 560 с.

4. Rick Greenwald, Robert Stackowiak, Gary Dodge, David Klein, Ben Shapiro, Christopher G. Chelliah « Professional Oracle® Programming» Wrox, 2005.

5. О.Н. Граничин, В.И. Кияев «Информационные технологии в управлении», 2008.

ПРИЛОЖЕНИЕ 1

Создание объектов модуля контрактов

Таблица tmdb_docs, ее индексы и ограничения:

CREATE TABLE TMDB_DOCS

(

COD NUMBER(10) NOT NULL,

TIP VARCHAR2(1 BYTE),

SYSFID NUMBER(6),

USERID NUMBER(5),

AT1 NUMBER(5),

AT2 NUMBER(5),

AT3 NUMBER(5),

TIPDOC NUMBER(5),

DATAMANUAL DATE NOT NULL,

NRMANUAL VARCHAR2(25 BYTE),

VALUTA VARCHAR2(3 BYTE),

NRSET NUMBER(10),

ISGFC NUMBER(1) DEFAULT 0 NOT NULL,

DOCCOLOR VARCHAR2(1 BYTE),

CODF NUMBER(10),

TIPOPER NUMBER(10),

F CHAR(1 BYTE),

M CHAR(1 BYTE),

DIV INTEGER,

STATUS INTEGER,

CONSTRAINT PK_TMDB_DOCS

PRIMARY KEY

(COD)

);

COMMENT ON TABLE TMDB_DOCS IS 'VSE DOCUMENTI';

COMMENT ON COLUMN TMDB_DOCS.NRSET IS 'the number of bu-area';

COMMENT ON COLUMN TMDB_DOCS.ISGFC IS 'document is CM-integrety 0 - not, 1 - yes';

COMMENT ON COLUMN TMDB_DOCS.DOCCOLOR IS 'document color';

COMMENT ON COLUMN TMDB_DOCS.CODF IS 'px-version attribute';

COMMENT ON COLUMN TMDB_DOCS.TIPOPER IS 'px-version attribute';

COMMENT ON COLUMN TMDB_DOCS.AT2 IS 'Edit document protection';

COMMENT ON COLUMN TMDB_DOCS.AT3 IS '???';

COMMENT ON COLUMN TMDB_DOCS.TIPDOC IS 'cod from sys of paper-type';

COMMENT ON COLUMN TMDB_DOCS.DATAMANUAL IS 'document data (real)';

COMMENT ON COLUMN TMDB_DOCS.NRMANUAL IS 'document number (real)';

COMMENT ON COLUMN TMDB_DOCS.VALUTA IS 'valuta (real) of the document';

COMMENT ON COLUMN TMDB_DOCS.COD IS 'Document cod';

COMMENT ON COLUMN TMDB_DOCS.TIP IS 'Which module';

COMMENT ON COLUMN TMDB_DOCS.SYSFID IS 'Document type';

COMMENT ON COLUMN TMDB_DOCS.USERID IS 'user id';

COMMENT ON COLUMN TMDB_DOCS.AT1 IS 'document is hidden, 0 - is not hidden, 1 - hidden';

CREATE UNIQUE INDEX CN$DOCSCODDATA ON TMDB_DOCS

(COD, DATAMANUAL);

ALTER TABLE TMDB_DOCS ADD (

CONSTRAINT CN$DOCSCODDATA

UNIQUE (COD, DATAMANUAL));

Таблица tmdb_reg, ее индексы и ограничения:

CREATE TABLE TMDB_REG

(

NRDOC INTEGER NOT NULL,

SUMA0 NUMBER(38,2),

SUMA1 NUMBER(38,2),

SUMA2 NUMBER(38,2),

SUMA3 NUMBER(38,2),

SUMA4 NUMBER(38,2),

SUMA5 NUMBER(38,2),

SUMA6 NUMBER(38,2),

SUMA7 NUMBER(38,2),

SUMA8 NUMBER(38,2),

SUMA9 NUMBER(38,2),

DT INTEGER,

DT1 INTEGER,

DTSC0 INTEGER,

DTSC1 INTEGER,

DTSC2 INTEGER,

DTSC3 INTEGER,

DTSC4 INTEGER,

DTSC5 INTEGER,

DTSC6 INTEGER,

DTSC7 INTEGER,

DTSC8 INTEGER,

DTSC9 INTEGER,

DTNUM0 INTEGER,

DTNUM1 INTEGER,

DTNUM2 INTEGER,

DTNUM3 INTEGER,

DTNUM4 INTEGER,

DTNUM5 INTEGER,

DTNUM6 INTEGER,

DTNUM7 INTEGER,

DTNUM8 INTEGER,

DTNUM9 INTEGER,

DTSTR0 VARCHAR2(100 BYTE),

DTSTR1 VARCHAR2(100 BYTE),

DTSTR2 VARCHAR2(100 BYTE),

DTSTR3 VARCHAR2(100 BYTE),

DTSTR4 VARCHAR2(100 BYTE),

DTSTR5 VARCHAR2(100 BYTE),

DTSTR6 VARCHAR2(100 BYTE),

DTSTR7 VARCHAR2(100 BYTE),

DTSTR8 VARCHAR2(100 BYTE),

DTSTR9 VARCHAR2(100 BYTE),

DTDATA0 DATE,

DTDATA1 DATE,

DTDATA2 DATE,

DTDATA3 DATE,

DTDATA4 DATE,

DTSUMAVAL0 NUMBER(38,2),

DTSUMAVAL1 NUMBER(38,2),

DTSUMAVAL2 NUMBER(38,2),

DTSUMAVAL3 NUMBER(38,2),

DTSUMAVAL4 NUMBER(38,2),

DTVALUTA0 CHAR(3 BYTE),

DTVALUTA1 CHAR(3 BYTE),

DTVALUTA2 CHAR(3 BYTE),

DTVALUTA3 CHAR(3 BYTE),

DTVALUTA4 CHAR(3 BYTE),

DTCANT0 NUMBER,

DTCANT1 NUMBER,

DTCANT2 NUMBER,

DTCANT3 NUMBER,

DTCANT4 NUMBER,

DTCANT5 NUMBER,

DTCANT6 NUMBER,

DTCANT7 NUMBER,

DTCANT8 NUMBER,

DTCANT9 NUMBER,

CT INTEGER,

CT1 INTEGER,

CTSC0 INTEGER,

CTSC1 INTEGER,

CTSC2 INTEGER,

CTSC3 INTEGER,

CTSC4 INTEGER,

CTSC5 INTEGER,

CTSC6 INTEGER,

CTSC7 INTEGER,

CTSC8 INTEGER,

CTSC9 INTEGER,

CTNUM0 INTEGER,

CTNUM1 INTEGER,

CTNUM2 INTEGER,

CTNUM3 INTEGER,

CTNUM4 INTEGER,

CTNUM5 INTEGER,

CTNUM6 INTEGER,

CTNUM7 INTEGER,

CTNUM8 INTEGER,

CTNUM9 INTEGER,

CTSTR0 VARCHAR2(100 BYTE),

CTSTR1 VARCHAR2(100 BYTE),

CTSTR2 VARCHAR2(100 BYTE),

CTSTR3 VARCHAR2(100 BYTE),

CTSTR4 VARCHAR2(100 BYTE),

CTSTR5 VARCHAR2(100 BYTE),

CTSTR6 VARCHAR2(100 BYTE),

CTSTR7 VARCHAR2(100 BYTE),

CTSTR8 VARCHAR2(100 BYTE),

CTSTR9 VARCHAR2(100 BYTE),

CTDATA0 DATE,

CTDATA1 DATE,

CTDATA2 DATE,

CTDATA3 DATE,

CTDATA4 DATE,

CTSUMAVAL0 NUMBER(38,2),

CTSUMAVAL1 NUMBER(38,2),

CTSUMAVAL2 NUMBER(38,2),

CTSUMAVAL3 NUMBER(38,2),

CTSUMAVAL4 NUMBER(38,2),

CTVALUTA0 CHAR(3 BYTE),

CTVALUTA1 CHAR(3 BYTE),

CTVALUTA2 CHAR(3 BYTE),

CTVALUTA3 CHAR(3 BYTE),

CTVALUTA4 CHAR(3 BYTE),

CTCANT0 NUMBER,

CTCANT1 NUMBER,

CTCANT2 NUMBER,

CTCANT3 NUMBER,

CTCANT4 NUMBER,

CTCANT5 NUMBER,

CTCANT6 NUMBER,

CTCANT7 NUMBER,

CTCANT8 NUMBER,

CTCANT9 NUMBER

);

CREATE UNIQUE INDEX TMDB_REG_PK ON TMDB_REG

(NRDOC);

ALTER TABLE TMDB_REG ADD (

CONSTRAINT TMDB_REG_PK

PRIMARY KEY

(NRDOC));

ALTER TABLE TMDB_REG ADD (

CONSTRAINT TMDB_REG_FK

FOREIGN KEY (NRDOC)

REFERENCES TMDB_DOCS (COD)

ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED);

Таблица tmdb_reg_a, ее индексы и ограничения:

CREATE TABLE TMDB_REG_A

(

NRDOC INTEGER NOT NULL,

NRDOC1 INTEGER NOT NULL,

SUMA0 NUMBER(38,2),

SUMA1 NUMBER(38,2),

SUMA2 NUMBER(38,2),

SUMA3 NUMBER(38,2),

SUMA4 NUMBER(38,2),

SUMA5 NUMBER(38,2),

SUMA6 NUMBER(38,2),

SUMA7 NUMBER(38,2),

SUMA8 NUMBER(38,2),

SUMA9 NUMBER(38,2),

DT INTEGER,

DT1 INTEGER,

DTSC0 INTEGER,

DTSC1 INTEGER,

DTSC2 INTEGER,

DTSC3 INTEGER,

DTSC4 INTEGER,

DTSC5 INTEGER,

DTSC6 INTEGER,

DTSC7 INTEGER,

DTSC8 INTEGER,

DTSC9 INTEGER,

DTNUM0 INTEGER,

DTNUM1 INTEGER,

DTNUM2 INTEGER,

DTNUM3 INTEGER,

DTNUM4 INTEGER,

DTNUM5 INTEGER,

DTNUM6 INTEGER,

DTNUM7 INTEGER,

DTNUM8 INTEGER,

DTNUM9 INTEGER,

DTSTR0 VARCHAR2(100 BYTE),

DTSTR1 VARCHAR2(100 BYTE),

DTSTR2 VARCHAR2(100 BYTE),

DTSTR3 VARCHAR2(100 BYTE),

DTSTR4 VARCHAR2(100 BYTE),

DTSTR5 VARCHAR2(100 BYTE),

DTSTR6 VARCHAR2(100 BYTE),

DTSTR7 VARCHAR2(100 BYTE),

DTSTR8 VARCHAR2(100 BYTE),

DTSTR9 VARCHAR2(100 BYTE),

DTDATA0 DATE,

DTDATA1 DATE,

DTDATA2 DATE,

DTDATA3 DATE,

DTDATA4 DATE,

DTSUMAVAL0 NUMBER(38,2),

DTSUMAVAL1 NUMBER(38,2),

DTSUMAVAL2 NUMBER(38,2),

DTSUMAVAL3 NUMBER(38,2),

DTSUMAVAL4 NUMBER(38,2),

DTVALUTA0 CHAR(3 BYTE),

DTVALUTA1 CHAR(3 BYTE),

DTVALUTA2 CHAR(3 BYTE),

DTVALUTA3 CHAR(3 BYTE),

DTVALUTA4 CHAR(3 BYTE),

DTCANT0 NUMBER,

DTCANT1 NUMBER,

DTCANT2 NUMBER,

DTCANT3 NUMBER,

DTCANT4 NUMBER,

DTCANT5 NUMBER,

DTCANT6 NUMBER,

DTCANT7 NUMBER,

DTCANT8 NUMBER,

DTCANT9 NUMBER,

CT INTEGER,

CT1 INTEGER,

CTSC0 INTEGER,

CTSC1 INTEGER,

CTSC2 INTEGER,

CTSC3 INTEGER,

CTSC4 INTEGER,

CTSC5 INTEGER,

CTSC6 INTEGER,

CTSC7 INTEGER,

CTSC8 INTEGER,

CTSC9 INTEGER,

CTNUM0 INTEGER,

CTNUM1 INTEGER,

CTNUM2 INTEGER,

CTNUM3 INTEGER,

CTNUM4 INTEGER,

CTNUM5 INTEGER,

CTNUM6 INTEGER,

CTNUM7 INTEGER,

CTNUM8 INTEGER,

CTNUM9 INTEGER,

CTSTR0 VARCHAR2(100 BYTE),

CTSTR1 VARCHAR2(100 BYTE),

CTSTR2 VARCHAR2(100 BYTE),

CTSTR3 VARCHAR2(100 BYTE),

CTSTR4 VARCHAR2(100 BYTE),

CTSTR5 VARCHAR2(100 BYTE),

CTSTR6 VARCHAR2(100 BYTE),

CTSTR7 VARCHAR2(100 BYTE),

CTSTR8 VARCHAR2(100 BYTE),

CTSTR9 VARCHAR2(100 BYTE),

CTDATA0 DATE,

CTDATA1 DATE,

CTDATA2 DATE,

CTDATA3 DATE,

CTDATA4 DATE,

CTSUMAVAL0 NUMBER(38,2),

CTSUMAVAL1 NUMBER(38,2),

CTSUMAVAL2 NUMBER(38,2),

CTSUMAVAL3 NUMBER(38,2),

CTSUMAVAL4 NUMBER(38,2),

CTVALUTA0 CHAR(3 BYTE),

CTVALUTA1 CHAR(3 BYTE),

CTVALUTA2 CHAR(3 BYTE),

CTVALUTA3 CHAR(3 BYTE),

CTVALUTA4 CHAR(3 BYTE),

CTCANT0 NUMBER,

CTCANT1 NUMBER,

CTCANT2 NUMBER,

CTCANT3 NUMBER,

CTCANT4 NUMBER,

CTCANT5 NUMBER,

CTCANT6 NUMBER,

CTCANT7 NUMBER,

CTCANT8 NUMBER,

CTCANT9 NUMBER

);

CREATE UNIQUE INDEX TMDB_REG_A_PK ON TMDB_REG_A

(NRDOC, NRDOC1);

CREATE INDEX TMDB_REG_A_FK ON TMDB_REG_A

(NRDOC);

ALTER TABLE TMDB_REG_A ADD (

CONSTRAINT TMDB_REG_A_PK

PRIMARY KEY

(NRDOC, NRDOC1));

ALTER TABLE TMDB_REG_A ADD (

CONSTRAINT TMDB_REG_A_FK

FOREIGN KEY (NRDOC)

REFERENCES TMDB_DOCS (COD)

ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED);

Таблица tmdb_reg_a1, ее индексы и ограничения:

CREATE TABLE TMDB_REG_A1

(

NRDOC INTEGER NOT NULL,

NRDOC1 INTEGER NOT NULL,

NRDOC2 INTEGER NOT NULL,

SUMA0 NUMBER(38,2),

SUMA1 NUMBER(38,2),

SUMA2 NUMBER(38,2),

SUMA3 NUMBER(38,2),

SUMA4 NUMBER(38,2),

SUMA5 NUMBER(38,2),

SUMA6 NUMBER(38,2),

SUMA7 NUMBER(38,2),

SUMA8 NUMBER(38,2),

SUMA9 NUMBER(38,2),

DT INTEGER,

DT1 INTEGER,

DTSC0 INTEGER,

DTSC1 INTEGER,

DTSC2 INTEGER,

DTSC3 INTEGER,

DTSC4 INTEGER,

DTSC5 INTEGER,

DTSC6 INTEGER,

DTSC7 INTEGER,

DTSC8 INTEGER,

DTSC9 INTEGER,

DTNUM0 INTEGER,

DTNUM1 INTEGER,

DTNUM2 INTEGER,

DTNUM3 INTEGER,

DTNUM4 INTEGER,

DTNUM5 INTEGER,

DTNUM6 INTEGER,

DTNUM7 INTEGER,

DTNUM8 INTEGER,

DTNUM9 INTEGER,

DTSTR0 VARCHAR2(100 BYTE),

DTSTR1 VARCHAR2(100 BYTE),

DTSTR2 VARCHAR2(100 BYTE),

DTSTR3 VARCHAR2(100 BYTE),

DTSTR4 VARCHAR2(100 BYTE),

DTSTR5 VARCHAR2(100 BYTE),

DTSTR6 VARCHAR2(100 BYTE),

DTSTR7 VARCHAR2(100 BYTE),

DTSTR8 VARCHAR2(100 BYTE),

DTSTR9 VARCHAR2(100 BYTE),

DTDATA0 DATE,

DTDATA1 DATE,

DTDATA2 DATE,

DTDATA3 DATE,

DTDATA4 DATE,

DTSUMAVAL0 NUMBER(38,2),

DTSUMAVAL1 NUMBER(38,2),

DTSUMAVAL2 NUMBER(38,2),

DTSUMAVAL3 NUMBER(38,2),

DTSUMAVAL4 NUMBER(38,2),

DTVALUTA0 CHAR(3 BYTE),

DTVALUTA1 CHAR(3 BYTE),

DTVALUTA2 CHAR(3 BYTE),

DTVALUTA3 CHAR(3 BYTE),

DTVALUTA4 CHAR(3 BYTE),

DTCANT0 NUMBER,

DTCANT1 NUMBER,

DTCANT2 NUMBER,

DTCANT3 NUMBER,

DTCANT4 NUMBER,

DTCANT5 NUMBER,

DTCANT6 NUMBER,

DTCANT7 NUMBER,

DTCANT8 NUMBER,

DTCANT9 NUMBER,

CT INTEGER,

CT1 INTEGER,

CTSC0 INTEGER,

CTSC1 INTEGER,

CTSC2 INTEGER,

CTSC3 INTEGER,

CTSC4 INTEGER,

CTSC5 INTEGER,

CTSC6 INTEGER,

CTSC7 INTEGER,

CTSC8 INTEGER,

CTSC9 INTEGER,

CTNUM0 INTEGER,

CTNUM1 INTEGER,

CTNUM2 INTEGER,

CTNUM3 INTEGER,

CTNUM4 INTEGER,

CTNUM5 INTEGER,

CTNUM6 INTEGER,

CTNUM7 INTEGER,

CTNUM8 INTEGER,

CTNUM9 INTEGER,

CTSTR0 VARCHAR2(100 BYTE),

CTSTR1 VARCHAR2(100 BYTE),

CTSTR2 VARCHAR2(100 BYTE),

CTSTR3 VARCHAR2(100 BYTE),

CTSTR4 VARCHAR2(100 BYTE),

CTSTR5 VARCHAR2(100 BYTE),

CTSTR6 VARCHAR2(100 BYTE),

CTSTR7 VARCHAR2(100 BYTE),

CTSTR8 VARCHAR2(100 BYTE),

CTSTR9 VARCHAR2(100 BYTE),

CTDATA0 DATE,

CTDATA1 DATE,

CTDATA2 DATE,

CTDATA3 DATE,

CTDATA4 DATE,

CTSUMAVAL0 NUMBER(38,2),

CTSUMAVAL1 NUMBER(38,2),

CTSUMAVAL2 NUMBER(38,2),

CTSUMAVAL3 NUMBER(38,2),

CTSUMAVAL4 NUMBER(38,2),

CTVALUTA0 CHAR(3 BYTE),

CTVALUTA1 CHAR(3 BYTE),

CTVALUTA2 CHAR(3 BYTE),

CTVALUTA3 CHAR(3 BYTE),

CTVALUTA4 CHAR(3 BYTE),

CTCANT0 NUMBER,

CTCANT1 NUMBER,

CTCANT2 NUMBER,

CTCANT3 NUMBER,

CTCANT4 NUMBER,

CTCANT5 NUMBER,

CTCANT6 NUMBER,

CTCANT7 NUMBER,

CTCANT8 NUMBER,

CTCANT9 NUMBER

);

CREATE UNIQUE INDEX TMDB_REG_A1_PK ON TMDB_REG_A1

(NRDOC, NRDOC1, NRDOC2);

CREATE INDEX TMDB_REG_A1_FK ON TMDB_REG_A1

(NRDOC, NRDOC1);

ALTER TABLE TMDB_REG_A1 ADD (

CONSTRAINT TMDB_REG_A1_PK

PRIMARY KEY

(NRDOC, NRDOC1, NRDOC2));

ALTER TABLE TMDB_REG_A1 ADD (

CONSTRAINT TMDB_REG_A1_FK

FOREIGN KEY (NRDOC, NRDOC1)

REFERENCES TMDB_REG_A (NRDOC,NRDOC1)

ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED);

Таблица tmdb_reg_a1d, ее индексы и ограничения:

CREATE TABLE TMDB_REG_A1D

(

NRDOC INTEGER NOT NULL,

NRDOC1 INTEGER NOT NULL,

NRDOC2 INTEGER NOT NULL,

NRDOC3 INTEGER NOT NULL,

SUMA0 NUMBER(38,2),

SUMA1 NUMBER(38,2),

SUMA2 NUMBER(38,2),

SUMA3 NUMBER(38,2),

SUMA4 NUMBER(38,2),

SUMA5 NUMBER(38,2),

SUMA6 NUMBER(38,2),

SUMA7 NUMBER(38,2),

SUMA8 NUMBER(38,2),

SUMA9 NUMBER(38,2),

DT INTEGER,

DT1 INTEGER,

DTSC0 INTEGER,

DTSC1 INTEGER,

DTSC2 INTEGER,

DTSC3 INTEGER,

DTSC4 INTEGER,

DTSC5 INTEGER,

DTSC6 INTEGER,

DTSC7 INTEGER,

DTSC8 INTEGER,

DTSC9 INTEGER,

DTNUM0 INTEGER,

DTNUM1 INTEGER,

DTNUM2 INTEGER,

DTNUM3 INTEGER,

DTNUM4 INTEGER,

DTNUM5 INTEGER,

DTNUM6 INTEGER,

DTNUM7 INTEGER,

DTNUM8 INTEGER,

DTNUM9 INTEGER,

DTSTR0 VARCHAR2(100 BYTE),

DTSTR1 VARCHAR2(100 BYTE),

DTSTR2 VARCHAR2(100 BYTE),

DTSTR3 VARCHAR2(100 BYTE),

DTSTR4 VARCHAR2(100 BYTE),

DTSTR5 VARCHAR2(100 BYTE),

DTSTR6 VARCHAR2(100 BYTE),

DTSTR7 VARCHAR2(100 BYTE),

DTSTR8 VARCHAR2(100 BYTE),

DTSTR9 VARCHAR2(100 BYTE),

DTDATA0 DATE,

DTDATA1 DATE,

DTDATA2 DATE,

DTDATA3 DATE,

DTDATA4 DATE,

DTSUMAVAL0 NUMBER(38,2),

DTSUMAVAL1 NUMBER(38,2),

DTSUMAVAL2 NUMBER(38,2),

DTSUMAVAL3 NUMBER(38,2),

DTSUMAVAL4 NUMBER(38,2),

DTVALUTA0 CHAR(3 BYTE),

DTVALUTA1 CHAR(3 BYTE),

DTVALUTA2 CHAR(3 BYTE),

DTVALUTA3 CHAR(3 BYTE),

DTVALUTA4 CHAR(3 BYTE),

DTCANT0 NUMBER,

DTCANT1 NUMBER,

DTCANT2 NUMBER,

DTCANT3 NUMBER,

DTCANT4 NUMBER,

DTCANT5 NUMBER,

DTCANT6 NUMBER,

DTCANT7 NUMBER,

DTCANT8 NUMBER,

DTCANT9 NUMBER,

CT INTEGER,

CT1 INTEGER,

CTSC0 INTEGER,

CTSC1 INTEGER,

CTSC2 INTEGER,

CTSC3 INTEGER,

CTSC4 INTEGER,

CTSC5 INTEGER,

CTSC6 INTEGER,

CTSC7 INTEGER,

CTSC8 INTEGER,

CTSC9 INTEGER,

CTNUM0 INTEGER,

CTNUM1 INTEGER,

CTNUM2 INTEGER,

CTNUM3 INTEGER,

CTNUM4 INTEGER,

CTNUM5 INTEGER,

CTNUM6 INTEGER,

CTNUM7 INTEGER,

CTNUM8 INTEGER,

CTNUM9 INTEGER,

CTSTR0 VARCHAR2(100 BYTE),

CTSTR1 VARCHAR2(100 BYTE),

CTSTR2 VARCHAR2(100 BYTE),

CTSTR3 VARCHAR2(100 BYTE),

CTSTR4 VARCHAR2(100 BYTE),

CTSTR5 VARCHAR2(100 BYTE),

CTSTR6 VARCHAR2(100 BYTE),

CTSTR7 VARCHAR2(100 BYTE),

CTSTR8 VARCHAR2(100 BYTE),

CTSTR9 VARCHAR2(100 BYTE),

CTDATA0 DATE,

CTDATA1 DATE,

CTDATA2 DATE,

CTDATA3 DATE,

CTDATA4 DATE,

CTSUMAVAL0 NUMBER(38,2),

CTSUMAVAL1 NUMBER(38,2),

CTSUMAVAL2 NUMBER(38,2),

CTSUMAVAL3 NUMBER(38,2),

CTSUMAVAL4 NUMBER(38,2),

CTVALUTA0 CHAR(3 BYTE),

CTVALUTA1 CHAR(3 BYTE),

CTVALUTA2 CHAR(3 BYTE),

CTVALUTA3 CHAR(3 BYTE),

CTVALUTA4 CHAR(3 BYTE),

CTCANT0 NUMBER,

CTCANT1 NUMBER,

CTCANT2 NUMBER,

CTCANT3 NUMBER,

CTCANT4 NUMBER,

CTCANT5 NUMBER,

CTCANT6 NUMBER,

CTCANT7 NUMBER,

CTCANT8 NUMBER,

CTCANT9 NUMBER

);

CREATE UNIQUE INDEX TMDB_REG_A1D_PK ON TMDB_REG_A1D

(NRDOC, NRDOC1, NRDOC2, NRDOC3);

CREATE INDEX TMDB_REG_A1D_FK ON TMDB_REG_A1D

(NRDOC, NRDOC1, NRDOC2);

ALTER TABLE TMDB_REG_A1D ADD (

CONSTRAINT TMDB_REG_A1D_PK

PRIMARY KEY

(NRDOC, NRDOC1, NRDOC2, NRDOC3));

ALTER TABLE TMDB_REG_A1D ADD (

CONSTRAINT TMDB_REG_A1D_FK

FOREIGN KEY (NRDOC, NRDOC1, NRDOC2)

REFERENCES TMDB_REG_A1 (NRDOC,NRDOC1,NRDOC2)

ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED);

Таблица tmdb_reg_a2, ее индексы и ограничения:

CREATE TABLE TMDB_REG_A2

(

NRDOC INTEGER NOT NULL,

NRDOC1 INTEGER NOT NULL,

NRDOC2 INTEGER NOT NULL,

SUMA0 NUMBER(38,2),

SUMA1 NUMBER(38,2),

SUMA2 NUMBER(38,2),

SUMA3 NUMBER(38,2),

SUMA4 NUMBER(38,2),

SUMA5 NUMBER(38,2),

SUMA6 NUMBER(38,2),

SUMA7 NUMBER(38,2),

SUMA8 NUMBER(38,2),

SUMA9 NUMBER(38,2),

DT INTEGER,

DT1 INTEGER,

DTSC0 INTEGER,

DTSC1 INTEGER,

DTSC2 INTEGER,

DTSC3 INTEGER,

DTSC4 INTEGER,

DTSC5 INTEGER,

DTSC6 INTEGER,

DTSC7 INTEGER,

DTSC8 INTEGER,

DTSC9 INTEGER,

DTNUM0 INTEGER,

DTNUM1 INTEGER,

DTNUM2 INTEGER,

DTNUM3 INTEGER,

DTNUM4 INTEGER,

DTNUM5 INTEGER,

DTNUM6 INTEGER,

DTNUM7 INTEGER,

DTNUM8 INTEGER,

DTNUM9 INTEGER,

DTSTR0 VARCHAR2(100 BYTE),

DTSTR1 VARCHAR2(100 BYTE),

DTSTR2 VARCHAR2(100 BYTE),

DTSTR3 VARCHAR2(100 BYTE),

DTSTR4 VARCHAR2(100 BYTE),

DTSTR5 VARCHAR2(100 BYTE),

DTSTR6 VARCHAR2(100 BYTE),

DTSTR7 VARCHAR2(100 BYTE),

DTSTR8 VARCHAR2(100 BYTE),

DTSTR9 VARCHAR2(100 BYTE),

DTDATA0 DATE,

DTDATA1 DATE,

DTDATA2 DATE,

DTDATA3 DATE,

DTDATA4 DATE,

DTSUMAVAL0 NUMBER(38,2),

DTSUMAVAL1 NUMBER(38,2),

DTSUMAVAL2 NUMBER(38,2),

DTSUMAVAL3 NUMBER(38,2),

DTSUMAVAL4 NUMBER(38,2),

DTVALUTA0 CHAR(3 BYTE),

DTVALUTA1 CHAR(3 BYTE),

DTVALUTA2 CHAR(3 BYTE),

DTVALUTA3 CHAR(3 BYTE),

DTVALUTA4 CHAR(3 BYTE),

DTCANT0 NUMBER,

DTCANT1 NUMBER,

DTCANT2 NUMBER,

DTCANT3 NUMBER,

DTCANT4 NUMBER,

DTCANT5 NUMBER,

DTCANT6 NUMBER,

DTCANT7 NUMBER,

DTCANT8 NUMBER,

DTCANT9 NUMBER,

CT INTEGER,

CT1 INTEGER,

CTSC0 INTEGER,

CTSC1 INTEGER,

CTSC2 INTEGER,

CTSC3 INTEGER,

CTSC4 INTEGER,

CTSC5 INTEGER,

CTSC6 INTEGER,

CTSC7 INTEGER,

CTSC8 INTEGER,

CTSC9 INTEGER,

CTNUM0 INTEGER,

CTNUM1 INTEGER,

CTNUM2 INTEGER,

CTNUM3 INTEGER,

CTNUM4 INTEGER,

CTNUM5 INTEGER,

CTNUM6 INTEGER,

CTNUM7 INTEGER,

CTNUM8 INTEGER,

CTNUM9 INTEGER,

CTSTR0 VARCHAR2(100 BYTE),

CTSTR1 VARCHAR2(100 BYTE),

CTSTR2 VARCHAR2(100 BYTE),

CTSTR3 VARCHAR2(100 BYTE),

CTSTR4 VARCHAR2(100 BYTE),

CTSTR5 VARCHAR2(100 BYTE),

CTSTR6 VARCHAR2(100 BYTE),

CTSTR7 VARCHAR2(100 BYTE),

CTSTR8 VARCHAR2(100 BYTE),

CTSTR9 VARCHAR2(100 BYTE),

CTDATA0 DATE,

CTDATA1 DATE,

CTDATA2 DATE,

CTDATA3 DATE,

CTDATA4 DATE,

CTSUMAVAL0 NUMBER(38,2),

CTSUMAVAL1 NUMBER(38,2),

CTSUMAVAL2 NUMBER(38,2),

CTSUMAVAL3 NUMBER(38,2),

CTSUMAVAL4 NUMBER(38,2),

CTVALUTA0 CHAR(3 BYTE),

CTVALUTA1 CHAR(3 BYTE),

CTVALUTA2 CHAR(3 BYTE),

CTVALUTA3 CHAR(3 BYTE),

CTVALUTA4 CHAR(3 BYTE),

CTCANT0 NUMBER,

CTCANT1 NUMBER,

CTCANT2 NUMBER,

CTCANT3 NUMBER,

CTCANT4 NUMBER,

CTCANT5 NUMBER,

CTCANT6 NUMBER,

CTCANT7 NUMBER,

CTCANT8 NUMBER,

CTCANT9 NUMBER

);

CREATE UNIQUE INDEX TMDB_REG_A2_PK ON TMDB_REG_A2

(NRDOC, NRDOC1, NRDOC2);

CREATE INDEX TMDB_REG_A2_FK ON TMDB_REG_A2

(NRDOC, NRDOC1);

ALTER TABLE TMDB_REG_A2 ADD (

CONSTRAINT TMDB_REG_A2_PK

PRIMARY KEY

(NRDOC, NRDOC1, NRDOC2));

ALTER TABLE TMDB_REG_A2 ADD (

CONSTRAINT TMDB_REG_A2_FK

FOREIGN KEY (NRDOC, NRDOC1)

REFERENCES TMDB_REG_A (NRDOC,NRDOC1)

ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED);

Таблица tmdb_reg_a2d, ее индексы и ограничения:

CREATE TABLE TMDB_REG_A2D

(

NRDOC INTEGER NOT NULL,

NRDOC1 INTEGER NOT NULL,

NRDOC2 INTEGER NOT NULL,

NRDOC3 INTEGER NOT NULL,

SUMA0 NUMBER(38,2),

SUMA1 NUMBER(38,2),

SUMA2 NUMBER(38,2),

SUMA3 NUMBER(38,2),

SUMA4 NUMBER(38,2),

SUMA5 NUMBER(38,2),

SUMA6 NUMBER(38,2),

SUMA7 NUMBER(38,2),

SUMA8 NUMBER(38,2),

SUMA9 NUMBER(38,2),

DT INTEGER,

DT1 INTEGER,

DTSC0 INTEGER,

DTSC1 INTEGER,

DTSC2 INTEGER,

DTSC3 INTEGER,

DTSC4 INTEGER,

DTSC5 INTEGER,

DTSC6 INTEGER,

DTSC7 INTEGER,

DTSC8 INTEGER,

DTSC9 INTEGER,

DTNUM0 INTEGER,

DTNUM1 INTEGER,

DTNUM2 INTEGER,

DTNUM3 INTEGER,

DTNUM4 INTEGER,

DTNUM5 INTEGER,

DTNUM6 INTEGER,

DTNUM7 INTEGER,

DTNUM8 INTEGER,

DTNUM9 INTEGER,

DTSTR0 VARCHAR2(100 BYTE),

DTSTR1 VARCHAR2(100 BYTE),

DTSTR2 VARCHAR2(100 BYTE),

DTSTR3 VARCHAR2(100 BYTE),

DTSTR4 VARCHAR2(100 BYTE),

DTSTR5 VARCHAR2(100 BYTE),

DTSTR6 VARCHAR2(100 BYTE),

DTSTR7 VARCHAR2(100 BYTE),

DTSTR8 VARCHAR2(100 BYTE),

DTSTR9 VARCHAR2(100 BYTE),

DTDATA0 DATE,

DTDATA1 DATE,

DTDATA2 DATE,

DTDATA3 DATE,

DTDATA4 DATE,

DTSUMAVAL0 NUMBER(38,2),

DTSUMAVAL1 NUMBER(38,2),

DTSUMAVAL2 NUMBER(38,2),

DTSUMAVAL3 NUMBER(38,2),

DTSUMAVAL4 NUMBER(38,2),

DTVALUTA0 CHAR(3 BYTE),

DTVALUTA1 CHAR(3 BYTE),

DTVALUTA2 CHAR(3 BYTE),

DTVALUTA3 CHAR(3 BYTE),

DTVALUTA4 CHAR(3 BYTE),

DTCANT0 NUMBER,

DTCANT1 NUMBER,

DTCANT2 NUMBER,

DTCANT3 NUMBER,

DTCANT4 NUMBER,

DTCANT5 NUMBER,

DTCANT6 NUMBER,

DTCANT7 NUMBER,

DTCANT8 NUMBER,

DTCANT9 NUMBER,

CT INTEGER,

CT1 INTEGER,

CTSC0 INTEGER,

CTSC1 INTEGER,

CTSC2 INTEGER,

CTSC3 INTEGER,

CTSC4 INTEGER,

CTSC5 INTEGER,

CTSC6 INTEGER,

CTSC7 INTEGER,

CTSC8 INTEGER,

CTSC9 INTEGER,

CTNUM0 INTEGER,

CTNUM1 INTEGER,

CTNUM2 INTEGER,

CTNUM3 INTEGER,

CTNUM4 INTEGER,

CTNUM5 INTEGER,

CTNUM6 INTEGER,

CTNUM7 INTEGER,

CTNUM8 INTEGER,

CTNUM9 INTEGER,

CTSTR0 VARCHAR2(100 BYTE),

CTSTR1 VARCHAR2(100 BYTE),

CTSTR2 VARCHAR2(100 BYTE),

CTSTR3 VARCHAR2(100 BYTE),

CTSTR4 VARCHAR2(100 BYTE),

CTSTR5 VARCHAR2(100 BYTE),

CTSTR6 VARCHAR2(100 BYTE),

CTSTR7 VARCHAR2(100 BYTE),

CTSTR8 VARCHAR2(100 BYTE),

CTSTR9 VARCHAR2(100 BYTE),

CTDATA0 DATE,

CTDATA1 DATE,

CTDATA2 DATE,

CTDATA3 DATE,

CTDATA4 DATE,

CTSUMAVAL0 NUMBER(38,2),

CTSUMAVAL1 NUMBER(38,2),

CTSUMAVAL2 NUMBER(38,2),

CTSUMAVAL3 NUMBER(38,2),

CTSUMAVAL4 NUMBER(38,2),

CTVALUTA0 CHAR(3 BYTE),

CTVALUTA1 CHAR(3 BYTE),

CTVALUTA2 CHAR(3 BYTE),

CTVALUTA3 CHAR(3 BYTE),

CTVALUTA4 CHAR(3 BYTE),

CTCANT0 NUMBER,

CTCANT1 NUMBER,

CTCANT2 NUMBER,

CTCANT3 NUMBER,

CTCANT4 NUMBER,

CTCANT5 NUMBER,

CTCANT6 NUMBER,

CTCANT7 NUMBER,

CTCANT8 NUMBER,

CTCANT9 NUMBER

);

CREATE UNIQUE INDEX TMDB_REG_A2D_PK ON TMDB_REG_A2D

(NRDOC, NRDOC1, NRDOC2, NRDOC3);

CREATE INDEX TMDB_REG_A2D_FK ON TMDB_REG_A2D

(NRDOC, NRDOC1, NRDOC2);

ALTER TABLE TMDB_REG_A2D ADD (

CONSTRAINT TMDB_REG_A2D_PK

PRIMARY KEY

(NRDOC, NRDOC1, NRDOC2, NRDOC3));

ALTER TABLE TMDB_REG_A2D ADD (

CONSTRAINT TMDB_REG_A2D_FK

FOREIGN KEY (NRDOC, NRDOC1, NRDOC2)

REFERENCES TMDB_REG_A2 (NRDOC,NRDOC1,NRDOC2)

ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED);

Триггеры:

CREATE OR REPLACE TRIGGER RADIOCOM."TRIG_BFUPD_TMDB_DOCS"

BEFORE UPDATE ON TMDB_DOCS

FOR EACH ROW

DECLARE

v_admin int:=case

when SYS_CONTEXT('envun4','iniparam_ADMINLEVEL')='1'

then 1 else 0 end;

v_leave int:=case

when NVL(SYS_CONTEXT('envun4','PARAM_DontUpdateDocsUserid'),v_admin)='1'

then 1 else 0 end;

BEGIN

IF:NEW.COD<>:OLD.COD THEN

RAISE_APPLICATION_ERROR(-20101,'NoNo');

END IF;

IF:NEW.DATAMANUAL<>:OLD.DATAMANUAL THEN

UPDATE TMDB_CM SET DATA=:NEW.DATAMANUAL WHERE NRDOC=:NEW.COD;

END IF;

IF v_leave<>1 THEN

SELECT USERID INTO:NEW.USERID FROM TPARAMS;

END IF;

IF:NEW.USERID=0 THEN

RAISE_APPLICATION_ERROR(-20101,

'Ошибка идентификации пользователя (USERID=0). Редактирование запрещено.');

END IF;

END;

CREATE OR REPLACE TRIGGER RADIOCOM."TRG_DOCS_COLOR"

BEFORE INSERT OR UPDATE ON TMDB_DOCS

FOR EACH ROW

WHEN (

NEW.AT1 IS NULL AND sys_context('envun4','dont_fire_trigger') IS NULL

)

BEGIN

SELECT '-' INTO:NEW.DOCCOLOR FROM VMDB_DOCS_ADD

WHERE COD=:NEW.COD AND RECALC_NRDOC IS NOT NULL;

EXCEPTION WHEN NO_DATA_FOUND THEN

BEGIN

SELECT '' INTO:NEW.DOCCOLOR FROM VMDB_CMI WHERE NRDOC=:NEW.COD AND ROWNUM=1;

EXCEPTION WHEN NO_DATA_FOUND THEN

:NEW.DOCCOLOR:='`';

END;

END;

CREATE OR REPLACE TRIGGER RADIOCOM."XTRIGLOGDOCS"

AFTER INSERT OR UPDATE OR DELETE ON TMDB_DOCS

FOR EACH ROW

BEGIN

IF INSERTING THEN

UN$XLOG.INLOG('DOCS',:NEW.cod,'insert');

ELSIF UPDATING

THEN UN$XLOG.INLOG('DOCS',:NEW.cod,'update');

ELSE

UN$XLOG.INLOG('DOCS',:OLD.cod,'delete');

END IF;

EXCEPTION WHEN OTHERS THEN

NULL;

END;

CREATE OR REPLACE TRIGGER RADIOCOM."TMDB_DOCS_TRLOG"

AFTER INSERT OR UPDATE OR DELETE ON TMDB_DOCS

FOR EACH ROW

DECLARE

PRAGMA AUTONOMOUS_TRANSACTION;

nUserId INT:=SYS_CONTEXT('ENVUN4','PARAM_USERID');

cUserName VARCHAR2(30);

cReason VARCHAR2(100);

BEGIN

IF INSERTING THEN

cReason:='NEW DOC';

ELSIF DELETING THEN

cReason:='DEL DOC';

ELSIF UPDATING THEN

cReason:='CHG'||

CASE WHEN 0||:OLD.USERID<>0||:NEW.USERID THEN ' USERID' END||

CASE WHEN 0||:OLD.DATAMANUAL<>0||:NEW.DATAMANUAL THEN ' DATAMANUAL' END||

CASE WHEN 0||:OLD.NRSET<>0||:NEW.NRSET THEN ' NRSET' END||

CASE WHEN 0||:OLD.SYSFID<>0||:NEW.SYSFID THEN ' SYSFID' END||

CASE WHEN 0||:OLD.NRMANUAL<>0||:NEW.NRMANUAL THEN ' NRMANUAL' END||

CASE WHEN 0||:OLD.AT1<>0||:NEW.AT1 THEN ' AT1' END||

CASE WHEN 0||:OLD.AT2<>0||:NEW.AT2 THEN ' AT2' END||

CASE WHEN 0||:OLD.F<>0||:NEW.F THEN ' F' END||

CASE WHEN 0||:OLD.M<>0||:NEW.M THEN ' M' END||

CASE WHEN 0||:OLD.DIV<>0||:NEW.DIV THEN ' DIV' END;

IF cReason='CHG' THEN

RETURN;

END IF;

END IF;

--

cUserName:=un$userparams.GetUserName(nUserId);

--

INSERT INTO TMDB_DOCS_LOG (NRDOC,USERID,USERNAME,ACTION

,OLD_DATA,NEW_DATA,OLD_NRSET,NEW_NRSET,OLD_SYSFID,NEW_SYSFID

,OLD_NRMANUAL,NEW_NRMANUAL,OLD_USERID,NEW_USERID

,OLD_AT1,NEW_AT1,OLD_AT2,NEW_AT2,OLD_AT3,NEW_AT3

,OLD_F,NEW_F,OLD_M,NEW_M,OLD_DIV,NEW_DIV)

VALUES (NVL(:NEW.COD,:OLD.COD),nUserId,cUserName,cReason

,:OLD.DATAMANUAL,:NEW.DATAMANUAL,:OLD.NRSET,:NEW.NRSET,:OLD.SYSFID,:NEW.SYSFID

,:OLD.NRMANUAL,:NEW.NRMANUAL,:OLD.USERID,:NEW.USERID

,:OLD.AT1,:NEW.AT1,:OLD.AT2,:NEW.AT2,:OLD.AT3,:NEW.AT3

,:OLD.F,:NEW.F,:OLD.M,:NEW.M,:OLD.DIV,:NEW.DIV);

COMMIT;

EXCEPTION WHEN OTHERS THEN

NULL;

END;

CREATE OR REPLACE TRIGGER RADIOCOM."TRIG_AFTINS_TMDB_DOCS2"

AFTER INSERT ON TMDB_DOCS

FOR EACH ROW

WHEN (

0||SYS_CONTEXT('USERENV','ACTION',11)<>'0SYS_IMPORT_'

)

DECLARE

v_Recalc_Tip VARCHAR2(2):=SYS_CONTEXT('envun4','CopyDocRecalcTip',2);

v_Recalc_Nrdoc INT:=

CASE WHEN v_Recalc_Tip IN ('1','2') THEN SYS_CONTEXT('envun4','CopyDocSourceNrdoc') END;

v_Test_Cod VARCHAR2(30):=SYS_CONTEXT('envun4','un$test',30);

BEGIN

INSERT INTO TMDB_DOCS_ADD (COD,FIRST_USERID,RECALC_NRDOC,RECALC_TIP,TEST_COD)

VALUES(:NEW.COD,:NEW.USERID,v_Recalc_Nrdoc,v_Recalc_Tip,v_Test_Cod);

EXCEPTION WHEN DUP_VAL_ON_INDEX THEN

UPDATE TMDB_DOCS_ADD

SET FIRST_USERID=:NEW.USERID

,RECALC_NRDOC=v_Recalc_Nrdoc,RECALC_TIP=v_Recalc_Tip,TEST_COD=v_Test_Cod

WHERE COD=:NEW.COD;

END;

Последовательности:

CREATE SEQUENCE RADIOCOM.ID_TMDB_CM

START WITH 1

MAXVALUE 999999999

MINVALUE 1

CYCLE

CACHE 50

NOORDER;

CREATE SEQUENCE RADIOCOM.ID_TMDB_DOCS

START WITH 11758

MAXVALUE 999999999999999999999999999

MINVALUE 0

NOCYCLE

NOCACHE

NOORDER;

CREATE SEQUENCE RADIOCOM.ID_TMS_UNIVERS

START WITH 45726

MAXVALUE 999999999999999999999999999

MINVALUE 1

NOCYCLE

NOCACHE

NOORDER;

Представления:

CREATE OR REPLACE VIEW VMDB_DOCS

AS

SELECT COD,TIP

,SYSFID,(SELECT DENUMIREA FROM vMS_SYSF WHERE ID=A.SYSFID) AS clcOPERATIAt

,USERID,(SELECT USERNAME FROM XUSERS WHERE COD=A.USERID) AS clcUSERt

,AT1,AT2,AT3

,TIPDOC,(SELECT DENUMIREA FROM VMS_SYSS WHERE TIP='S' AND COD=7 AND COD1=A.TIPDOC) AS clcTIPDOCt

,DATAMANUAL,NRMANUAL,VALUTA,NRSET,ISGFC,DOCCOLOR,CODF,TIPOPER

,DIV,(SELECT DENUMIREA FROM VMS_UNIVERS WHERE COD=A.DIV) AS clcDIVt

,STATUS,(SELECT DENUMIREA FROM VMS_UNIVERS WHERE COD=A.STATUS) AS clcSTATUSt

FROM TMDB_DOCS A;

CREATE OR REPLACE VIEW VMDB_REG

AS

SELECT A."NRDOC",A."SUMA0",A."SUMA1",A."SUMA2",A."SUMA3",A."SUMA4",A."SUMA5",A."SUMA6",A."SUMA7",A."SUMA8",A."SUMA9",A."DT",A."DT1",A."DTSC0",A."DTSC1",A."DTSC2",A."DTSC3",A."DTSC4",A."DTSC5",A."DTSC6",A."DTSC7",A."DTSC8",A."DTSC9",A."DTNUM0",A."DTNUM1",A."DTNUM2",A."DTNUM3",A."DTNUM4",A."DTNUM5",A."DTNUM6",A."DTNUM7",A."DTNUM8",A."DTNUM9",A."DTSTR0",A."DTSTR1",A."DTSTR2",A."DTSTR3",A."DTSTR4",A."DTSTR5",A."DTSTR6",A."DTSTR7",A."DTSTR8",A."DTSTR9",A."DTDATA0",A."DTDATA1",A."DTDATA2",A."DTDATA3",A."DTDATA4",A."DTSUMAVAL0",A."DTSUMAVAL1",A."DTSUMAVAL2",A."DTSUMAVAL3",A."DTSUMAVAL4",A."DTVALUTA0",A."DTVALUTA1",A."DTVALUTA2",A."DTVALUTA3",A."DTVALUTA4",A."DTCANT0",A."DTCANT1",A."DTCANT2",A."DTCANT3",A."DTCANT4",A."DTCANT5",A."DTCANT6",A."DTCANT7",A."DTCANT8",A."DTCANT9",A."CT",A."CT1",A."CTSC0",A."CTSC1",A."CTSC2",A."CTSC3",A."CTSC4",A."CTSC5",A."CTSC6",A."CTSC7",A."CTSC8",A."CTSC9",A."CTNUM0",A."CTNUM1",A."CTNUM2",A."CTNUM3",A."CTNUM4",A."CTNUM5",A."CTNUM6",A."CTNUM7",A."CTNUM8",A."CTNUM9",A."CTSTR0",A."CTSTR1",A."CTSTR2",A."CTSTR3",A."CTSTR4",A."CTSTR5",A."CTSTR6",A."CTSTR7",A."CTSTR8",A."CTSTR9",A."CTDATA0",A."CTDATA1",A."CTDATA2",A."CTDATA3",A."CTDATA4",A."CTSUMAVAL0",A."CTSUMAVAL1",A."CTSUMAVAL2",A."CTSUMAVAL3",A."CTSUMAVAL4",A."CTVALUTA0",A."CTVALUTA1",A."CTVALUTA2",A."CTVALUTA3",A."CTVALUTA4",A."CTCANT0",A."CTCANT1",A."CTCANT2",A."CTCANT3",A."CTCANT4",A."CTCANT5",A."CTCANT6",A."CTCANT7",A."CTCANT8",A."CTCANT9"

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC0)CLCDTSC0T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC1)CLCDTSC1T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC2)CLCDTSC2T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC3)CLCDTSC3T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC4)CLCDTSC4T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC5)CLCDTSC5T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC6)CLCDTSC6T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC7)CLCDTSC7T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC8)CLCDTSC8T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.DTSC9)CLCDTSC9T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC0)CLCCTSC0T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC1)CLCCTSC1T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC2)CLCCTSC2T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC3)CLCCTSC3T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC4)CLCCTSC4T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC5)CLCCTSC5T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC6)CLCCTSC6T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC7)CLCCTSC7T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC8)CLCCTSC8T

,(SELECT DENUMIREA FROM TMS_UNIVERS WHERE COD=A.CTSC9)CLCCTSC9T

FROM TMDB_REG A;

CREATE OR REPLACE VIEW VMDB_REG_A

AS

SELECT A."NRDOC",A."NRDOC1",A."SUMA0",A."SUMA1",A."SUMA2",A."SUMA3",A."SUMA4",A."SUMA5",A."SUMA6",A."SUMA7",A."SUMA8",A."SUMA9",A."DT",A."DT1",A."DTSC0",A."DTSC1",A."DTSC2",A."DTSC3",A."DTSC4",A."DTSC5",A."DTSC6",A."DTSC7",A."DTSC8",A."DTSC9",A."DTNUM0",A."DTNUM1",A."DTNUM2",A."DTNUM3",A."DTNUM4",A."DTNUM5",A."DTNUM6",A."DTNUM7",A."DTNUM8",A."DTNUM9",A."DTSTR0",A."DTSTR1",A."DTSTR2",A."DTSTR3",A."DTSTR4",A."DTSTR5",A."DTSTR6",A."DTSTR7",A."DTSTR8",A."DTSTR9",A."DTDATA0",A."DTDATA1",A."DTDATA2",A."DTDATA3",A."DTDATA4",A."DTSUMAVAL0",A."DTSUMAVAL1",A."DTSUMAVAL2",A."DTSUMAVAL3",A."DTSUMAVAL4",A."DTVALUTA0",A."DTVALUTA1",A."DTVALUTA2",A."DTVALUTA3",A."DTVALUTA4",A."DTCANT0",A."DTCANT1",A."DTCANT2",A."DTCANT3",A."DTCANT4",A."DTCANT5",A."DTCANT6",A."DTCANT7",A."DTCANT8",A."DTCANT9",A."CT",A."CT1",A."CTSC0",A."CTSC1",A."CTSC2",A."CTSC3",A."CTSC4",A."CTSC5",A."CTSC6",A."CTSC7",A."CTSC8",A."CTSC9",A."CTNUM0",A."CTNUM1",A."CTNUM2",A."CTNUM3",A."CTNUM4",A."CTNUM5",A."CTNUM6",A."CTNUM7",A."CTNUM8",A."CTNUM9",A."CTSTR0",A."CTSTR1",A."CTSTR2",A."CTSTR3",A."CTSTR4",A."CTSTR5",A."CTSTR6",A."CTSTR7",A."CTSTR8",A."CTSTR9",A."CTDATA0",A."CTDATA1",A."CTDATA2",A."CTDATA3",A."CTDATA4",A."CTSUMAVAL0",A."CTSUMAVAL1",A."CTSUMAVAL2",A."CTSUMAVAL3",A."CTSUMAVAL4",A."CTVALUTA0",A."CTVALUTA1",A."CTVALUTA2",A."CTVALUTA3",A."CTVALUTA4",A."CTCANT0",A."CTCANT1",A."CTCANT2",A."CTCANT3",A."CTCANT4",A."CTCANT5",A."CTCANT6",A."CTCANT7",A."CTCANT8",A."CTCANT9"


Подобные документы

  • Проектирование модуля регистрации документов. Анализ предметной области, спецификация требований. Построение диаграммы прецедентов Анализ архитектуры модуля в "OpenText Content Server 16.2". Разработка программы регистрации документов, ее тестирование.

    дипломная работа [1,9 M], добавлен 25.08.2017

  • Характеристика информационных систем учета медицинских услуг, представленных на современном рынке. Разработка приложения "Учет услуг в спортивном клубе "Т-Фитнес": средства управления графического интерфейса пользователя, создание меню и основные формы.

    дипломная работа [1,8 M], добавлен 14.10.2010

  • Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.

    курсовая работа [215,3 K], добавлен 01.09.2010

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

  • Анализ проектирования интерфейса программы. Выбор и назначение визуальных компонентов. Изучение экранных форм приложения. Модули, процедуры, функции проекта и их назначение. Листинг программного кода. Результаты работы автоматизированного продукта.

    курсовая работа [1,9 M], добавлен 11.12.2017

  • Анализ предметной области, главных функций организации. Разработка макета внутренней структуры программного обеспечения информационной системы в виде диаграммы классов. Составление схемы базы данных. Разработка интерфейса и руководства пользователя.

    курсовая работа [866,3 K], добавлен 02.06.2015

  • Анализ существующих поисковых систем и используемых ими алгоритмов поиска документов. Разработка информационно-поисковой системы словарного типа, способной осуществлять релевантный поиск документов, особенности ее структуры и информационно-поисковой базы.

    дипломная работа [942,1 K], добавлен 19.05.2011

  • Анализ технического обеспечения информационных систем (микропроцессоры). Программное обеспечение информационных систем. Классификация программного обеспечения. Программы подготовки первичных документов на примере "1С: Бухгалтерия", "1С: Налогоплательщик".

    контрольная работа [808,5 K], добавлен 20.07.2010

  • ОАО "Южная телекоммуникационная компания" (ОАО "ЮТК") - оператор фиксированной связи. Экономическая сущность комплекса экономических информационных задач. Перечень услуг присоединения и услуг по пропуску трафика. Автоматизированная система учета.

    курсовая работа [45,1 K], добавлен 27.02.2009

  • Разработка автоматизированного рабочего места в виде Web-приложения "Платные образовательные услуги" для отделения дополнительного образования строительного техникума. Технология создания макета. Разработка программного кода, функции интерфейса.

    дипломная работа [1,8 M], добавлен 10.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.