Рефераты. Автоматизация предприятия

Разработанная программа, после соединения с базой данных, формирует таблицу со списком каталогов, в которых хранится информация на состав конечного изделия. Из этой таблицы выбирается каталог и для этого каталога делается расчет потребности, если необходимо сделать расчет для нескольких каталогов, то выбирается несколько каталогов. Когда расчет произведен, формируется новая таблица с материалами и их потребностями. Каждому материалу соответствует свой уникальный код. Материал, который входит в состав изделия по необходимости можно заменить на какой-либо другой, но обязательно из той же группы. Замена может быть полной или частичной, так как часть необходимого материала может быть в наличии. Для каждого необходимого материала или для замены можно ввести соответствующего контрагента, то есть у кого будет производиться закупка. Для этого из справочника контрагентов, в котором содержится информация о названии, городе, физическом и юридическом адресе, индивидуальном налоговом номере и прочие характеристики, выбирается контрагент. После добавления контрагента необходимо ввести количество материала (в пределах ранее рассчитанной величины), требуемого на закупку, а так же единицу измерения (килограмм, метр, кубометр, литр и т.д.) и закупочную цену. После ввода всех необходимых данных формируется таблица заказов в которой содержится информация о материале, его количестве, цене и контрагенте. В этой таблице можно выбрать перечень материалов на которые надо оформлять заказ и формируется отчет.

2.4. Разработка таблиц

2.4.1. Структура таблицы «материалы»

«Таблица материалы» содержит в себе информацию о всех материалах и их характеристиках (табл.1).

Табл.1

Таблица имеет следующие поля:

MATERIAL_ID : Идентификатор

KOD_OKP : Код ОКП

NAME : Наименование

ED_IZM : Еденица измерения

NORMA : Минимальная норма запаса на складе

DECLARATION : Дополнительное описание

KORR_SCHET : Балансовый счет

USER_ID : Идентификатор пользователя

DATE_CREATE : Дата создания

DATE_LAST_CHANGE : Дата последнего изменения

MAT_TYPE : Тип еденицы

IMBASE_KEY : Ключ в IMBASE

SAPFORD_KEY : Ключ в SAPFORD

GR_ZAMEN : Номер группы взаимозаменяемых материалов

MIN_RASHOD : Минимальная партия выдачи

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

);

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.