437 lines
9.8 KiB
PL/PgSQL
437 lines
9.8 KiB
PL/PgSQL
-- Downloaded from: https://github.com/oknosoft/windowbuilder-planning/blob/0861330ad94cd7a4755c8ba5ab798d2baf4006f6/server/keys/init/pg.sql
|
|
--
|
|
-- PostgreSQL database dump
|
|
--
|
|
|
|
-- Dumped from database version 14.8
|
|
-- Dumped by pg_dump version 14.8
|
|
|
|
-- Started on 2023-08-12 22:07:45 MSK
|
|
|
|
SET statement_timeout = 0;
|
|
SET lock_timeout = 0;
|
|
SET idle_in_transaction_session_timeout = 0;
|
|
SET client_encoding = 'UTF8';
|
|
SET standard_conforming_strings = off;
|
|
SELECT pg_catalog.set_config('search_path', '', false);
|
|
SET check_function_bodies = false;
|
|
SET xmloption = content;
|
|
SET client_min_messages = warning;
|
|
SET escape_string_warning = off;
|
|
SET row_security = off;
|
|
|
|
--
|
|
-- TOC entry 2 (class 3079 OID 2899788)
|
|
-- Name: uuid-ossp; Type: EXTENSION; Schema: -; Owner: -
|
|
--
|
|
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp" WITH SCHEMA public;
|
|
|
|
|
|
--
|
|
-- TOC entry 3404 (class 0 OID 0)
|
|
-- Dependencies: 2
|
|
-- Name: EXTENSION "uuid-ossp"; Type: COMMENT; Schema: -; Owner: -
|
|
--
|
|
|
|
COMMENT ON EXTENSION "uuid-ossp" IS 'generate universally unique identifiers (UUIDs)';
|
|
|
|
|
|
--
|
|
-- TOC entry 879 (class 1247 OID 3176553)
|
|
-- Name: key_type; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.key_type AS ENUM (
|
|
'order',
|
|
'product',
|
|
'layer',
|
|
'profile',
|
|
'filling',
|
|
'glass',
|
|
'glunit',
|
|
'layout',
|
|
'other'
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 861 (class 1247 OID 6144761)
|
|
-- Name: keys_type; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.keys_type AS (
|
|
obj uuid,
|
|
specimen integer,
|
|
elm integer,
|
|
region integer
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 885 (class 1247 OID 3698031)
|
|
-- Name: prod_row; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.prod_row AS (
|
|
characteristic uuid,
|
|
quantity integer
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 882 (class 1247 OID 3556323)
|
|
-- Name: qinfo_type; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.qinfo_type AS (
|
|
abonent uuid,
|
|
year integer,
|
|
branch uuid,
|
|
barcode bigint,
|
|
ref uuid,
|
|
calc_order uuid,
|
|
characteristic uuid,
|
|
presentation character varying(200),
|
|
specimen integer,
|
|
elm integer,
|
|
region integer,
|
|
type public.key_type,
|
|
leading_product uuid
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 888 (class 1247 OID 5825217)
|
|
-- Name: refs; Type: TYPE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TYPE public.refs AS ENUM (
|
|
'doc.calc_order',
|
|
'doc.planning_event',
|
|
'doc.work_centers_task',
|
|
'doc.work_centers_performance',
|
|
'doc.purchase_order',
|
|
'doc.debit_cash_order',
|
|
'doc.credit_cash_order',
|
|
'doc.credit_card_order',
|
|
'doc.debit_bank_order',
|
|
'doc.credit_bank_order',
|
|
'doc.selling',
|
|
'doc.purchase',
|
|
'doc.nom_prices_setup'
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 253 (class 1255 OID 3558639)
|
|
-- Name: qinfo(character varying); Type: FUNCTION; Schema: public; Owner: -
|
|
--
|
|
|
|
-- FUNCTION: public.qinfo(character varying)
|
|
|
|
-- DROP FUNCTION IF EXISTS public.qinfo(character varying);
|
|
|
|
CREATE OR REPLACE FUNCTION public.qinfo(code character varying) RETURNS qinfo_type
|
|
LANGUAGE 'plpgsql'
|
|
COST 100
|
|
VOLATILE PARALLEL UNSAFE
|
|
AS $BODY$
|
|
declare
|
|
tmp qinfo_type;
|
|
keys_row keys%ROWTYPE;
|
|
cx_row characteristics%ROWTYPE;
|
|
order_row calc_orders%ROWTYPE;
|
|
icode bigint;
|
|
ucode uuid;
|
|
begin
|
|
/* ищем запись в keys */
|
|
if(char_length(code) = 13) then
|
|
code = substring(code, 1, 12);
|
|
end if;
|
|
if char_length(code) = 12 then
|
|
icode = code;
|
|
SELECT * INTO keys_row FROM keys WHERE barcode=icode;
|
|
elseif char_length(code) = 36 then
|
|
ucode = code;
|
|
SELECT * INTO keys_row FROM keys WHERE ref=ucode;
|
|
end if;
|
|
|
|
/* подклеиваем заказ и прочую инфу */
|
|
if keys_row.type is null then
|
|
RAISE NOTICE 'null';
|
|
elseif keys_row.type = 'order' then
|
|
SELECT * INTO order_row FROM calc_orders WHERE ref=keys_row.obj;
|
|
else
|
|
SELECT * INTO cx_row FROM characteristics WHERE ref=keys_row.obj;
|
|
SELECT * INTO order_row FROM calc_orders WHERE ref=cx_row.calc_order;
|
|
end if;
|
|
tmp.abonent = order_row.abonent;
|
|
tmp.year = order_row.year;
|
|
tmp.branch = order_row.branch;
|
|
tmp.calc_order = order_row.ref;
|
|
|
|
tmp.characteristic = cx_row.ref;
|
|
tmp.leading_product = cx_row.leading_product;
|
|
|
|
tmp.barcode = keys_row.barcode;
|
|
tmp.ref = keys_row.ref;
|
|
tmp.specimen = keys_row.specimen;
|
|
tmp.elm = keys_row.elm;
|
|
tmp.region = keys_row.region;
|
|
tmp.type = keys_row.type;
|
|
|
|
if keys_row.type = 'order' then
|
|
tmp.presentation = format('%s от %s', order_row.number_doc, order_row.date);
|
|
else
|
|
tmp.presentation = cx_row.name;
|
|
end if;
|
|
return tmp;
|
|
end
|
|
$BODY$;
|
|
|
|
ALTER FUNCTION public.qinfo(character varying)
|
|
OWNER TO postgres;
|
|
|
|
|
|
|
|
SET default_table_access_method = heap;
|
|
|
|
--
|
|
-- TOC entry 231 (class 1259 OID 6296209)
|
|
-- Name: areg_needs; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.areg_needs (
|
|
register uuid NOT NULL,
|
|
register_type public.refs NOT NULL,
|
|
row_num bigint NOT NULL,
|
|
period timestamp without time zone,
|
|
sign smallint DEFAULT 1,
|
|
calc_order uuid,
|
|
nom uuid,
|
|
characteristic uuid,
|
|
stage uuid,
|
|
planing_key uuid,
|
|
quantity numeric(15,3) DEFAULT 0
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 3405 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.register; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.register IS 'Регистратор';
|
|
|
|
|
|
--
|
|
-- TOC entry 3406 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.register_type; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.register_type IS 'Тип регистратора';
|
|
|
|
|
|
--
|
|
-- TOC entry 3407 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.row_num; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.row_num IS 'Номер строки';
|
|
|
|
|
|
--
|
|
-- TOC entry 3408 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.period; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.period IS 'Период';
|
|
|
|
|
|
--
|
|
-- TOC entry 3409 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.nom; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.nom IS 'Номенклатура';
|
|
|
|
|
|
--
|
|
-- TOC entry 3410 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.characteristic; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.characteristic IS 'Характеристика';
|
|
|
|
|
|
--
|
|
-- TOC entry 3411 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.stage; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.stage IS 'Этап производства';
|
|
|
|
|
|
--
|
|
-- TOC entry 3412 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.planing_key; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.planing_key IS 'Ключ планирования';
|
|
|
|
|
|
--
|
|
-- TOC entry 3413 (class 0 OID 0)
|
|
-- Dependencies: 231
|
|
-- Name: COLUMN areg_needs.quantity; Type: COMMENT; Schema: public; Owner: -
|
|
--
|
|
|
|
COMMENT ON COLUMN public.areg_needs.quantity IS 'Количество';
|
|
|
|
|
|
--
|
|
-- TOC entry 227 (class 1259 OID 3061481)
|
|
-- Name: calc_orders; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.calc_orders (
|
|
ref uuid NOT NULL,
|
|
abonent uuid,
|
|
branch uuid,
|
|
year integer,
|
|
date timestamp without time zone,
|
|
number_doc character(11),
|
|
partner uuid,
|
|
organization uuid,
|
|
author uuid,
|
|
department uuid,
|
|
production json
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 225 (class 1259 OID 2900139)
|
|
-- Name: characteristics; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.characteristics (
|
|
ref uuid NOT NULL,
|
|
calc_order uuid,
|
|
leading_product uuid,
|
|
name character varying(200)
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 224 (class 1259 OID 2899806)
|
|
-- Name: keys; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.keys (
|
|
ref uuid DEFAULT public.uuid_generate_v1mc() NOT NULL,
|
|
obj uuid NOT NULL,
|
|
specimen integer DEFAULT 1,
|
|
elm integer DEFAULT 0,
|
|
region integer DEFAULT 0,
|
|
barcode bigint DEFAULT 0,
|
|
type public.key_type
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 226 (class 1259 OID 2900714)
|
|
-- Name: settings; Type: TABLE; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE TABLE public.settings (
|
|
param character varying(100) NOT NULL,
|
|
value json NOT NULL
|
|
);
|
|
|
|
|
|
--
|
|
-- TOC entry 3247 (class 1259 OID 3061357)
|
|
-- Name: address; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE UNIQUE INDEX address ON public.keys USING btree (obj, specimen, elm, region);
|
|
|
|
|
|
--
|
|
-- TOC entry 3258 (class 2606 OID 6296217)
|
|
-- Name: areg_needs areg_needs_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.areg_needs
|
|
ADD CONSTRAINT areg_needs_pkey PRIMARY KEY (register, register_type, row_num);
|
|
|
|
|
|
--
|
|
-- TOC entry 3252 (class 2606 OID 2900143)
|
|
-- Name: characteristics characteristics_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.characteristics
|
|
ADD CONSTRAINT characteristics_pkey PRIMARY KEY (ref);
|
|
|
|
|
|
--
|
|
-- TOC entry 3250 (class 2606 OID 2899811)
|
|
-- Name: keys keys_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.keys
|
|
ADD CONSTRAINT keys_pkey PRIMARY KEY (ref);
|
|
|
|
|
|
--
|
|
-- TOC entry 3256 (class 2606 OID 3061485)
|
|
-- Name: calc_orders orders_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.calc_orders
|
|
ADD CONSTRAINT orders_pkey PRIMARY KEY (ref);
|
|
|
|
|
|
--
|
|
-- TOC entry 3254 (class 2606 OID 2900720)
|
|
-- Name: settings settings_pkey; Type: CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.settings
|
|
ADD CONSTRAINT settings_pkey PRIMARY KEY (param);
|
|
|
|
|
|
--
|
|
-- TOC entry 3248 (class 1259 OID 3494689)
|
|
-- Name: barcode; Type: INDEX; Schema: public; Owner: -
|
|
--
|
|
|
|
CREATE INDEX barcode ON public.keys USING btree (barcode);
|
|
|
|
|
|
--
|
|
-- TOC entry 3259 (class 2606 OID 3061494)
|
|
-- Name: characteristics order; Type: FK CONSTRAINT; Schema: public; Owner: -
|
|
--
|
|
|
|
ALTER TABLE ONLY public.characteristics
|
|
ADD CONSTRAINT "order" FOREIGN KEY (calc_order) REFERENCES public.calc_orders(ref) NOT VALID;
|
|
|
|
|
|
-- Completed on 2023-08-12 22:07:45 MSK
|
|
|
|
--
|
|
-- PostgreSQL database dump complete
|
|
--
|
|
|