Смекни!
smekni.com

Разработка информационной системы учета товаров на оптовом складе (стр. 3 из 5)

В таблице «Warehouse» содержатся реквизиты склада . Структура данных приведена в табл. 4.2.8.


Таблица 4.2.8

Структура таблицы Warehouse

Название поля Тип поля Размер Null Назначение
1 Name Текстовый 100 Not Наименование склада
2 Address Текстовый 255 Not Адрес склада.
3 INN Числовой 4 Not ИНН склада
4 KPP Числовой 4 Not КПП склада
5 Phone Текстовый 20 Not Телефон
6 Account Текстовый 25 Not Счёт
7 Bank Текстовый 255 Not Банк
8 Address_bank Текстовый 255 Not Адрес банка
9 BIK Числовой 4 Not БИК
10 Okpo Числовой 4 Not ОКПО склада
11 Corr_account Текстовый 25 Not Корреспондентский счёт
12 Director Текстовый 255 Not Директор
13 Chief_accountant Текстовый 255 Not Главный бухгалтер

4.3. Диаграмма «Сущность-связь» (ER-диаграмма)

Диаграмма “Сущность-связь” (ER-диаграмма) разработана на основе анализа предметной области и представлена на рис. 4, выполненная с помощью CASE-средств MS SQL Server 2000.

Сущность «Поставщик» (Suppliers служит для учета поставщиков партий на склад.

Сущность «Поставщик» связана с сущностью «Поставленная партия товара».

Атрибуты сущности «Поставщик»:

Supplier_id - Идентификатор поставщика, первичный ключ.

Supplier_name -Наименование поставщика.

Supplier_address – Адрес поставщика

Supplier_account – Расчетный счёт поставщика

Supplier_inn - ИНН поставщика

Supplier_kpp -КПП поставщика

Supplier_phone -телефон поставщика

Supplier_bank -банк поставщика

Address_bank -адрес банка поставщика

Supplier_bik -БИК банка поставщика

Corr_account -Корреспондентский счёт поставщика

Okpo -код ОКПО

Director -Руководитель предприятия поставщика

Chief_accountant -Главный бухгалтер поставщика

Сущность «Покупатель» (Customer) служит для учета юридических и физических лиц, cделавшие приобретение партий товара.

Сущность «Покупатель» связана с сущностью «Проданная партия товара».

Атрибуты сущности «Покупатель»:

Customer_id - Идентификатор покупателя, первичный ключ.

Customer_name -Наименование покупателя.

Customer_address – Адрес покупателя

Customer_account – Расчетный счёт покупателя

Customer_inn - ИНН покупателя

Customer_kpp -КПП покупателя

Customer_phone -телефон покупателя

Customer_bank -банк покупателя

Address_bank -адрес банка покупателя

Customer_bik -БИК банка покупателя

Corr_account -Корреспондентский счёт покупателя

Okpo -код ОКПО

Director -Руководитель предприятия покупателя

Chief_accountant -Главный бухгалтер покупателя

Сущность «Товар» (GOODS) служит для учета товаров находящихся в данное время на складе.

Сущность «Товар» связана с сущностями «Поставленные товары» и «Проданные товары».

Атрибуты сущности «Товар»:

Goods_id - Номер_товара, первичный ключ.

Goods_name - Наименование_товара.

Price -Цена.

Manufacturer -Фирма – производитель товара.

Quantity - Количество

Unit - Единица товара (тонна, ящик, мешок, и т п)

Massa - Масса единицы товара

Сущность «Закупаемая партия товара» служит для учёта даты поставки партии товара на склад, поставщика и стоимости партии.

Сущность «Закупаемая партия товара» связана с сущностями «Товар», «Закупленные товары».

Атрибуты сущности «Закупаемая партия товара»:

Party_id – номер партии товара, первичный ключ.

Date - дата поступления партии товара на склад.

Supplier_id - идентификатор поставщика.

Price - стоимость партии.

Сущность «Проданная партия товара» служит для учёта даты продажи партии товара со склада, покупателя и стоимости партии.

Сущность «Проданная партия товара» связана с сущностями «Товар», «Проданные товары».

Атрибуты сущности «Проданная партия товара»:

Party_id – номер партии товара, первичный ключ.

Date - дата поступления партии товара на склад.

Customer_id - идентификатор покупателя.

Price - стоимость партии

Seria - серия товарно–транспортной накладной.

Сущность «Проданный товар» служит для учёта состава проданной партии товара.

Сущность связана с сущностями «Товар» и «Проданная партия товара».

Атрибуты сущности «Проданный товар»:

ID - идентификатор записи таблицы, первичный ключ

Goods_id - идентификатор товара.

Party_id - идентификатор партии товара.

Quantity - количество.

Price - стоимость единицы товаров.

Сущность «Закупленный товар» служит для учёта состава проданной партии товара.

Сущность связана с сущностями «Товар» и «Закупленная партия товара».

Атрибуты сущности «Закупленный товар»:

ID - идентификатор записи таблицы, первичный ключ

Goods_id - идентификатор товара.

Party_id - идентификатор партии товара.

Quantity - количество.

Price - стоимость единицы товаров.

Сущность «Склад» служит для хранения данных склада.

Сущность не связана с прочими сущностями, но необходима при формировании выходных документов.

Атрибуты сущности «Склад»:

Name - Наименование склада.

Address - Адрес склада.

INN - ИНН склада.

KPP - КПП склада.

Phone - Телефон склада.

Account - Расчетный счёт склада.

Bank - Банк склада.

Address_bank - Адрес банка склада.

BIK - БИК банка склада.

OKPO - ОКПО склада.

Corr_account - Корреспондентский счёт.

Director - Руководитель.

Chief_accountant - Главный бухгалтер склада.

Рис. 4.3.1. Диаграмма «Сущность - связь»

4.4 Создание базы данных и таблиц

CREATE DATABASE warehouse;

USE warehouse;

CREATE TABLE supplier

(

supplier_id INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),

supplier_name VARCHAR(100),

supplier_address VARCHAR(255),

supplier_account VARCHAR(25),

supplier_inn INTEGER,

suppier_kpp INTEGER,

supplier_phone VARCHAR (20),

supplier_bank VARCHAR (255),

address_bank VARCHAR(255),

supplier_bik INTEGER,

cor_account VARCHAR(25),

okpo INTEGER,

director VARCHAR(255),

chief_accountant VARCHAR(255)

);

CREATE TABLE customer

(

customer_id INTEGER PRIMARY KEY NOT NULL IDENTITY(1,1),

customer_name VARCHAR(100),

customer_address VARCHAR(255),

customer_account VARCHAR(25),

customer_inn INTEGER,

suppier_kpp INTEGER,

customer_phone VARCHAR (20),

customer_bank VARCHAR (255),

address_bank VARCHAR (255),

customer_bik INTEGER,

cor_account VARCHAR(25),

okpo INTEGER,

director VARCHAR(255),

chief_accountant VARCHAR(255)

);

CREATE TABLE goods

(

goods_id INTEGER PRIMARY KEY IDENTITY(1,1),

goods_name VARCHAR(100),

price MONEY,

manufacturer VARCHAR(300),

quantity INTEGER,

unit VARCHAR (50),

massa INTEGER

);

CREATE TABLE party_delivered

(

party_id INTEGER PRIMARY KEY IDENTITY(1,1),

_date DATETIME,

supplier_id INTEGER,

price MONEY

);

CREATE TABLE party_sold

(

party_id INTEGER PRIMARY KEY IDENTITY(1,1),

_date DATETIME,

customer_id INTEGER,

price MONEY,

seria VARCHAR(10)

);

CREATE TABLE sent_goods

(

ID INTEGER PRIMARY KEY IDENTITY(1,1),

goods_id INTEGER,

party_id INTEGER,

quantity INTEGER,

price MONEY

);

CREATE TABLE delivered_goods

(

ID INTEGER PRIMARY KEY IDENTITY(1,1),

goods_id INTEGER,

party_id INTEGER,

quantity INTEGER,

price MONEY

);

CREATE TABLE warehouse_data

(

name VARCHAR(100),

address VARCHAR(255),

inn INTEGER,

kpp INTEGER,

phone VARCHAR(20),

account VARCHAR(25),

bank VARCHAR(255),

address_bank VARCHAR(255),

bik INTEGER,

okpo INTEGER,

cor_account VARCHAR(25),

director VARCHAR(255),

Chief_accountant VARCHAR(255)

);

4.5 Заполнение таблиц

INSERT INTO supplier VALUES

(

‘Поставщик №1’,

‘г. Астрахань, ул Третья, д 47’,

‘45654233334789d48’,

‘456789123’,

‘159987456’,

‘(8512) 12-58-95’,

‘Первый строительный’,

‘г Астрахань, ул Бабушкина, д 57’,

‘465466545’,

‘45965456854sd987g89’,

‘15987456’,

‘Романов Н.Г.’,

‘Рыбнкова Г.П’

);

INSERT INTO customer VALUES

(

‘Покупатель № 1’,

‘г. Нижневартовск, ул Седьмая, д 14’,

‘45654233334789d48’,

‘456789123’,

‘159987456’,

‘(8512) 12-58-95’,

‘Банк Москвы’,

‘г Москва, ул Степашина, д 57’,

‘465466545’,

‘45965456854sd987g89’,

‘15987456’,

‘Смирнов К.С.’,

‘Иванова Г.П’

);

INSERT INTO goods VALUES

(

‘Товар 1’,

‘521.50’,

‘Производитель 1’,

‘5000’,

‘ящик’,

’20’

);

INSERT INTO party_delivered VALUES

(

’13.03.2009 15:35:01’,

‘1’,

‘456.25’

);

INSERT INTO party_delivered VALUES

(

’14.03.2009 12:00:41’,

‘1’,

‘456.25’

);

INSERT INTO sent_goods VALUES

(

‘1’,

‘4’,

‘998’,

‘500’

);

INSERT INTO delivered_goods VALUES

(

‘1’,

‘4’,

‘365’,

‘456.25’

);

INSERT INTO warehouse_data VALUES

(

‘Центральный Астраханский склад торговой сети «Мастер+»’,

‘г. Астрахань, ул Перевозная, строение 77’,

‘15123456798’,

‘123456789’,

‘8512 65-98-41’,

‘d4fgd6g4fs5g65456’,

‘Первый строительный банк’,

‘г Астрахань, ул Лесная, Д 45’,

‘546542364556’,

‘12345678’,

‘fds4f56df4s5gf646’,

‘Степанов Н. К’,

‘Гиреева С.Т.’

);


4.6 Тексты запросов SQL

SQL запросы используемые при оформлении приходной накладной:

/*Получение реквизитов склада */

SELECT * FROM warehouse_data;

/*Выборка данных о товарах, прибывших в составе партии товара*/

SELECT goods.goods_name, goods.unit, delivered_goods.price, delivered_goods.quantity, (delivered_goods.quantity*delivered_goods.price) FROM goods, delivered_goods WHERE (delivered_goods.party_id=' 1') AND (delivered_goods.goods_id = goods.goods_id);

В запросе происходит выборка количества и стоимости товаров, из таблицы «закупленные товары» (delivered_goods) для всех записей, где поле party_id равно идентификатору пришедшей партии (в примере номер партии товара равен 1); к тому же для каждой записи происходит выборка наименований товаров и единицы их измерения из таблицы «товары» (goods). Выражение (delivered_goods.quantity * delivered_goods.price) вычисляет сумму для каждого товара.

SQL запросы используемые при оформлении товарно-транспортной накладной:

/*Получение реквизитов склада */

SELECT * FROM warehouse_data;

/*Выборка данных о товарах, вошедших в состав проданной партии товара*/