2.4.2. Структура таблицы «контрагенты»
«Таблица контрагенты» содержит информацию о контрагентах и их характеристиках (табл.2).
Табл.2
Таблица имеет следующие поля:
CODE : Внешний идентификатор (три знака почтового индекса + четырехзанчный код)
NAME : Наименование
FULL_NAME : Полное имя
INN : ИНН банка
KPP : КПП предприятия
ZIP : Почтовый индекс
REGION : Регион, край, область, автономный округ.
SUB_REGION : Район
CITY : Наиненование населенного пункта
NAS : Внутренний код
STREET : Улица
HOUSE : Дом
HOUSE_CASE : Корпус
HOUSE_CASE_STRUC : Строение
CONTRAGENT_ID : Внутренний код
PHONE : Телефон
FAX : Факс
E_MAIL : Электронный почтовый ящик
ADD_INF : Дополнительная информация
OFFICE : Офис
COUNTRY : Страна
DATE_CREATE : Дата создания записи
DATE_LAST_CHANGE : Дата изменения записи
USER_ID : Идентификатор пользователя
USER_ID_CHANGE : Идентифокатор изменившего пользователя
2.4.3. Структура таблицы «замены»
«Таблица замены» содержит информацию о заменах (табл.3).
Табл.3
Таблица имеет следующие поля:
MZ_ID : Уникальный идентификатор
MZ_KAT_ID : Каталог
MZ_MAT_ID : Идентификатор заменяемого материала
MZ_NEW_MAT_ID : Ифентификатор нового материала
MZ_KOL : Количество заменяемого материала
MZ_MAX_KOL : Всего заменяемого материала
MZ_NEW_KOL : Количество нового материала
MZ_TYPE : Тип замены (0 - полная, 1 - частичная)
Процедура добавления замены:
CREATE OR REPLACE PROCEDURE "MATERIALS_ZAMEN_CREATE" (
in_kat_id IN sostav.sos_kat_id%TYPE,
in_mat_id IN materials_zamen.mz_mat_id%TYPE,
in_new_mat_id IN materials_zamen.mz_mat_id%TYPE,
in_old_kol IN materials_zamen.mz_kol%TYPE,
in_max_kol IN materials_zamen.mz_max_kol%TYPE,
in_new_kol IN materials_zamen.mz_new_kol%TYPE,
in_zamen_type IN materials_zamen.mz_type%TYPE
)
/*добавление записи по материалу к версии расчета*/
IS
out_id INTEGER;
mat_count INTEGER := 0;
summ_kol NUMBER := 0;
BEGIN
SELECT seq_material_zamen_mz_id.NEXTVAL
INTO out_id
FROM DUAL;
-- Ищем были ли произведены полные замены на данный материал
SELECT COUNT (*)
INTO mat_count
FROM materials_zamen
WHERE mz_mat_id = in_mat_id AND mz_type = 0
AND mz_kat_id = in_kat_id;
-- Если производится частичная замена и уже есть полная замена
IF (in_zamen_type IN (0, 1) AND mat_count > 0)
THEN
raise_application_error
(-20001,
'Вы не можете проводить замену, т.к. с данным материалом уже была произведена полная замена.'
);
END IF;
mat_count := 0;
-- Ищем были ли произведены частичные замены на данный материал
SELECT COUNT (*)
INTO mat_count
FROM materials_zamen
WHERE mz_mat_id = in_mat_id AND mz_type = 1
AND mz_kat_id = in_kat_id;
-- Если производится полная замена и уже есть частичные замены
IF (in_zamen_type = 0 AND mat_count > 0)
THEN
raise_application_error
(-20001,
'Вы не можете проводить полную замену, т.к. с данным материалом уже была произведена частичная замена.'
);
END IF;
--Проверяем, можно ли произвести частичную замену
IF (in_zamen_type = 1)
THEN
SELECT SUM (mz_kol)
INTO summ_kol
FROM materials_zamen
WHERE mz_mat_id = in_mat_id AND mz_type = 1 AND mz_kat_id = in_kat_id;
summ_kol := summ_kol + in_old_kol;
IF (summ_kol > in_max_kol)
THEN
raise_application_error
(-20001,
'Общее количество материалов при проведении частичных замен превышает максимальное количество.'
);
END IF;
END IF;
INSERT INTO materials_zamen
(mz_id, mz_kat_id, mz_mat_id, mz_new_mat_id, mz_kol,
mz_max_kol, mz_new_kol, mz_type
)
VALUES (out_id, in_kat_id, in_mat_id, in_new_mat_id, in_old_kol,
in_max_kol, in_new_kol, in_zamen_type
);
END materials_zamen_create;
Процедура удаления замены:
CREATE OR REPLACE PROCEDURE "MATERIALS_ZAMEN_DELETE" (
in_mz_id IN materials_zamen.mz_id%TYPE
)
/*удаление замены материала*/
IS
BEGIN
DELETE FROM materials_zamen
WHERE mz_id = in_mz_id;
END materials_zamen_delete;
2.4.4. Структура таблицы «закупок»
«Таблица закупок» содержит информацию о заменах (табл.4).
Табл.4
MC_ID : Идентификатор
MC_MAT_ID : Идентификатор материала
MC_MZ_ID : Идентификатор замены материала
MC_POST_ID : Идентификатор контрагента
MC_NAME : Наименование контрагента
MC_COUNT : Количество на закупку
MC_COST : Цена
MC_EDIZM : Еденица измерения
MC_KAT_ID : Каталог
Процедура добавления контрагента в таблицу закупок:
CREATE OR REPLACE PROCEDURE "MATERIALS_CONTRAGENT_CREATE" (
in_mc_kat_id IN materials_contragent.mc_kat_id%TYPE, in_mc_mat_id IN materials_contragent.mc_mat_id%TYPE, in_mc_mz_id IN materials_contragent.mc_kat_id%TYPE, in_mc_post_id IN materials_contragent.mc_post_id%TYPE, in_mc_name IN materials_contragent.mc_name%TYPE, in_mc_count IN materials_contragent.mc_kat_id%TYPE, in_mc_cost IN materials_contragent.mc_cost%TYPE, in_mc_edizm IN materials_contragent.mc_edizm%TYPE, out_id OUT materials_contragent.mc_id%TYPE
)
/*добавление записи по материалу к версии расчета*/
IS
BEGIN
SELECT seq_materials_contragent_mc_id.NEXTVAL
INTO out_id
FROM DUAL;
INSERT INTO materials_contragent
(mc_id, mc_mat_id, mc_mz_id, mc_post_id, mc_name,
mc_count, mc_cost, mc_edizm, mc_kat_id
)
VALUES (out_id, in_mc_mat_id, in_mc_mz_id, in_mc_post_id, in_mc_name,
in_mc_count, in_mc_cost, in_mc_edizm, in_mc_kat_id
);
END materials_contragent_create;
Процедура удаления контрагента в таблицу закупок:
CREATE OR REPLACE PROCEDURE "MATERIALS_CONTRAGENT_DELETE" (
in_mc_id IN materials_zamen.mz_id%TYPE
)
/*удаление контрагента*/
IS
BEGIN
DELETE FROM materials_contragent
WHERE mc_id = in_mc_id;
END materials_CONTRAGENT_delete;
... этот путь сейчас является базовым в оптимизации административно-управленческой деятельности и автоматизации прогрессивных производств. 1.2 Уровень развития ИТ в российском легпроме: оценка ситуации По оценкам исследователей, средний уровень развития информационных технологий на предприятиях легкой промышленности классификации CobiT соответствует второй модели зрелости («регулярной»). Это ...
... для реализации системы бюджетирования Консультационной группы "Воронов и Максимов". Статья о проблемах выбора системы бюджетирования - в проекте "УПРАВЛЕНИЕ 3000". Бюджетный автомат Если вы решитесь на автоматизацию системы бюджетирования компании, перед вами сразу встанут вопросы: что выбрать, сколько платить, как внедрять. Примеряйте! О ЧЕМ РЕЧЬ В “Капитале” на стр. 44, 45 мы рассказали ...
... информацию за предыдущие периоды, иначе отчет нарастающим итогом за год придется тоже делать на бумаге. Вот в чем состоит болезненность срыва сроков автоматизации. Расценки и порядок определения стоимости услуг по автоматизации бухгалтерского и управленческого учета. Порядок определения стоимости услуг по автоматизации строится на двух принципах: 1. Объем работ по автоматизации того или иного ...
... с фактами деятельности предприятия. Здесь необходимо подчеркнуть, что базис составляют именно данные из документов, а не сами первичные документы. Начиная разработку системы автоматизации управления на предприятии, необходимо определить, что составляет информационное содержание базы данных- основного системообразующего звена в системе. Естественно предположить, что основное содержание базы данных ...
0 комментариев