From f4c078f776221f50bc139f2f34329891f1b3ff0d Mon Sep 17 00:00:00 2001 From: tsindt Date: Thu, 23 Jul 2026 10:51:40 +0200 Subject: [PATCH] dokumentation --- README.md | 19 +- buildtime/client/README.md | 2 + buildtime/server/README.md | 2 + database/dbscripts/simply-cpq-master-data.sql | 747 ++++++++++++ ...sindt - simpy_cpq_master_data - public.erd | 1 + ...t - simpy_cpq_master_data - public.graphml | 1025 +++++++++++++++++ ...sindt - simpy_cpq_master_data - public.png | Bin 0 -> 149128 bytes .../01_general/Architekturmodell.drawio | 93 ++ documentation/01_general/UseCases.md | 44 + runtime/client/README.md | 2 + runtime/server/README.md | 2 + 11 files changed, 1935 insertions(+), 2 deletions(-) create mode 100644 buildtime/client/README.md create mode 100644 buildtime/server/README.md create mode 100644 database/dbscripts/simply-cpq-master-data.sql create mode 100644 database/dbscripts/tsindt - simpy_cpq_master_data - public.erd create mode 100644 database/dbscripts/tsindt - simpy_cpq_master_data - public.graphml create mode 100644 database/dbscripts/tsindt - simpy_cpq_master_data - public.png create mode 100644 documentation/01_general/Architekturmodell.drawio create mode 100644 documentation/01_general/UseCases.md create mode 100644 runtime/client/README.md create mode 100644 runtime/server/README.md diff --git a/README.md b/README.md index 33c0cdd6a..6e96f6c54 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ # Simple CPQ Simply CPQ soll eine kleine, einfache CPQ Lösung für Klein- und Mittständische Unternehmen sein, die schnell aufgesetzt ist und leicht zu pflegen und warten. -Folgende Eigenschaften soll sie besitzen: + +## Folgende Eigenschaften soll sie besitzen: - Open Source Lösung - Source Code überprüfbar und auf Wunsch erweiterbar (GPL 3) - Ohne Vendor-Login @@ -33,7 +34,21 @@ Folgende Eigenschaften soll sie besitzen: - Implementiert auf Basis von GO (Server lassen sich sehr einfach mit GO bauen) - Mehrsprachig - Produktdaten - - Pflege der Logik in Excel + - Pflege der Logik in Excel (bin ich mir noch nicht sicher) - Produktdatenimport, Preis- und Kostenlisten sowie Logik als CSV - K-Modell von Axel Brinkop - Globaler Merkmalspool für eindeutige Merkmale und deren Wertemengen + +## Installation + +## Erste Schritte + +## Entwicklungstools: +### Go +Die Software ist hauptsächlich in GO geschrieben ab der Version 1.22. + +### VSCode +Als Quelltext-Editor / IDE kommt VSCode zum Einsatz. + +### DBeaver +Ist der Datenbank-Editor diff --git a/buildtime/client/README.md b/buildtime/client/README.md new file mode 100644 index 000000000..c043a495b --- /dev/null +++ b/buildtime/client/README.md @@ -0,0 +1,2 @@ +# Simply CPQ Buildtime Client +Dieser Ordner enthält alle relevanten Dateien und Informationen zum Simply CPQ Buildtime Client. Dieser dient der Pflege von Produktdaten, Regeln, Konditionen und Administration der Simply CPQ Anwendung. diff --git a/buildtime/server/README.md b/buildtime/server/README.md new file mode 100644 index 000000000..f3a70f691 --- /dev/null +++ b/buildtime/server/README.md @@ -0,0 +1,2 @@ +# Simply CPQ Buildtime Server +Dieser Ordner enthält alle relevanten Dateien und Informationen zum Simply CPQ Buildtime Server. Dieser dient der Pflege von Produktdaten, Regeln, Konditionen und Administration der Simply CPQ Anwendung durch die Bereitstellung des Pflege-Servers. \ No newline at end of file diff --git a/database/dbscripts/simply-cpq-master-data.sql b/database/dbscripts/simply-cpq-master-data.sql new file mode 100644 index 000000000..a3ae59c74 --- /dev/null +++ b/database/dbscripts/simply-cpq-master-data.sql @@ -0,0 +1,747 @@ +-- DROP SCHEMA public; + +CREATE SCHEMA public AUTHORIZATION pg_database_owner; + +COMMENT ON SCHEMA public IS 'standard public schema'; + +-- DROP SEQUENCE public.calculations_id_seq; + +CREATE SEQUENCE public.calculations_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.condition_application_id_seq; + +CREATE SEQUENCE public.condition_application_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.conditions_id_seq; + +CREATE SEQUENCE public.conditions_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.languages_id_seq; + +CREATE SEQUENCE public.languages_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.meta_fieldcatalog_id_seq; + +CREATE SEQUENCE public.meta_fieldcatalog_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.product_type_groups_id_seq; + +CREATE SEQUENCE public.product_type_groups_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.product_type_id_seq; + +CREATE SEQUENCE public.product_type_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.product_type_structure_nodes_id_seq; + +CREATE SEQUENCE public.product_type_structure_nodes_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.property_type_group_id_seq; + +CREATE SEQUENCE public.property_type_group_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.property_types_id_seq; + +CREATE SEQUENCE public.property_types_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.row_descriptions_id_seq; + +CREATE SEQUENCE public.row_descriptions_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.rules_list_product_type_set_amount_of_id_seq; + +CREATE SEQUENCE public.rules_list_product_type_set_amount_of_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.units_id_seq; + +CREATE SEQUENCE public.units_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.values_id_seq; + +CREATE SEQUENCE public.values_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE; +-- DROP SEQUENCE public.values_type_id_seq; + +CREATE SEQUENCE public.values_type_id_seq + INCREMENT BY 1 + MINVALUE 1 + MAXVALUE 2147483647 + START 1 + CACHE 1 + NO CYCLE;-- public.calculations definition + +-- Drop table + +-- DROP TABLE public.calculations; + +CREATE TABLE public.calculations ( + id serial4 NOT NULL, + "label" varchar NULL, -- Bezeichner der Kalkulationsdefinition + description varchar NULL, -- Beschreibung der Kalkulationsvorschrift + formula varchar NOT NULL, -- Formel der kalkulation:¶{field_id}+-*/[row_id]¶Die Werte aus der jeweiligen Spalte werden genommen. + CONSTRAINT calculations_formula_not_null NOT NULL formula, + CONSTRAINT calculations_id_not_null NOT NULL id, + CONSTRAINT calculations_pk PRIMARY KEY (id) +); +COMMENT ON TABLE public.calculations IS 'Kalkulationsdefinitionen für Kalkulationsspalten'; + +-- Column comments + +COMMENT ON COLUMN public.calculations."label" IS 'Bezeichner der Kalkulationsdefinition'; +COMMENT ON COLUMN public.calculations.description IS 'Beschreibung der Kalkulationsvorschrift'; +COMMENT ON COLUMN public.calculations.formula IS 'Formel der kalkulation: +{field_id}+-*/[row_id] +Die Werte aus der jeweiligen Spalte werden genommen.'; + + +-- public.condition_applications definition + +-- Drop table + +-- DROP TABLE public.condition_applications; + +CREATE TABLE public.condition_applications ( + id int4 DEFAULT nextval('condition_application_id_seq'::regclass) NOT NULL, + "label" varchar NULL, + description varchar NULL, + CONSTRAINT condition_application_id_not_null NOT NULL id, + CONSTRAINT condition_application_pk PRIMARY KEY (id) +); +COMMENT ON TABLE public.condition_applications IS 'Z.B. Preisliste Deutschland'; + + +-- public.languages definition + +-- Drop table + +-- DROP TABLE public.languages; + +CREATE TABLE public.languages ( + id serial4 NOT NULL, + locale varchar NULL, -- Sprachlokalisierung der ausgewählten Sprache, z.B. "de-DE" für Deutsch + "language" varchar NULL, -- Name/Bezeichnung der Sprache + CONSTRAINT languages_id_not_null NOT NULL id, + CONSTRAINT languages_pk PRIMARY KEY (id) +); +COMMENT ON TABLE public.languages IS 'Sprachtabelle +Liste der zur Verfügung gestellten Sprachen.'; + +-- Column comments + +COMMENT ON COLUMN public.languages.locale IS 'Sprachlokalisierung der ausgewählten Sprache, z.B. "de-DE" für Deutsch'; +COMMENT ON COLUMN public.languages."language" IS 'Name/Bezeichnung der Sprache'; + + +-- public.meta_condition_fields definition + +-- Drop table + +-- DROP TABLE public.meta_condition_fields; + +CREATE TABLE public.meta_condition_fields ( + id int4 DEFAULT nextval('meta_fieldcatalog_id_seq'::regclass) NOT NULL, + table_name varchar NOT NULL, + table_field varchar NOT NULL, + "label" varchar NULL, + description varchar NULL, + CONSTRAINT meta_fieldcatalog_id_not_null NOT NULL id, + CONSTRAINT meta_fieldcatalog_pk PRIMARY KEY (id), + CONSTRAINT meta_fieldcatalog_table_field_not_null NOT NULL table_field, + CONSTRAINT meta_fieldcatalog_table_name_not_null NOT NULL table_name +); +COMMENT ON TABLE public.meta_condition_fields IS 'Felder für die Konditionsbeschreibung'; + + +-- public.product_types definition + +-- Drop table + +-- DROP TABLE public.product_types; + +CREATE TABLE public.product_types ( + id int4 DEFAULT nextval('product_type_id_seq'::regclass) NOT NULL, + product_identifierer varchar NOT NULL, + "label" varchar NULL, + CONSTRAINT product_type_id_not_null NOT NULL id, + CONSTRAINT product_type_pk PRIMARY KEY (id), + CONSTRAINT product_type_product_identifierer_not_null NOT NULL product_identifierer, + CONSTRAINT product_type_unique UNIQUE (product_identifierer) +); +COMMENT ON TABLE public.product_types IS 'Ein Produkttyp besteht aus Propertytypen, ggf. Strukturknoten, die Unterprodukttypen enthalten können und/oder Auswahlknoten, die ebenfalls Unterprodukttypen enthalten können'; + + +-- public.value_types definition + +-- Drop table + +-- DROP TABLE public.value_types; + +CREATE TABLE public.value_types ( + "label" varchar NULL, + id int4 DEFAULT nextval('values_type_id_seq'::regclass) NOT NULL, + CONSTRAINT values_type_id_not_null NOT NULL id, + CONSTRAINT values_types_pk PRIMARY KEY (id) +); + + +-- public.conditions definition + +-- Drop table + +-- DROP TABLE public.conditions; + +CREATE TABLE public.conditions ( + id serial4 NOT NULL, + "label" varchar NULL, + description varchar NULL, + application_id int4 NULL, + key_value varchar NOT NULL, -- String als semikolon separierte Liste von Schlüssel-ids, definiert über die Tabele condition_keys mit der entsprechenden condition_id + value float4 NOT NULL, -- Wert der Kondition + CONSTRAINT condition_pk PRIMARY KEY (id), + CONSTRAINT conditions_id_not_null NOT NULL id, + CONSTRAINT conditions_key_value_not_null NOT NULL key_value, + CONSTRAINT conditions_value_not_null NOT NULL value, + CONSTRAINT conditions_condition_application_fk FOREIGN KEY (application_id) REFERENCES public.condition_applications(id) +); + +-- Column comments + +COMMENT ON COLUMN public.conditions.key_value IS 'String als semikolon separierte Liste von Schlüssel-ids, definiert über die Tabele condition_keys mit der entsprechenden condition_id'; +COMMENT ON COLUMN public.conditions.value IS 'Wert der Kondition'; + + +-- public.meta_condition_keys definition + +-- Drop table + +-- DROP TABLE public.meta_condition_keys; + +CREATE TABLE public.meta_condition_keys ( + field_id int4 NOT NULL, + condition_position int4 NULL, + "label" varchar NULL, + description varchar NULL, + condition_key_id int4 NOT NULL, + CONSTRAINT meta_condition_keys_condition_key_id_not_null NOT NULL condition_key_id, + CONSTRAINT meta_condition_keys_field_id_not_null NOT NULL field_id, + CONSTRAINT meta_condition_keys_meta_condition_fields_fk FOREIGN KEY (field_id) REFERENCES public.meta_condition_fields(id) +); +COMMENT ON TABLE public.meta_condition_keys IS 'Keydefinition für Konditionen'; + + +-- public.product_type_groups definition + +-- Drop table + +-- DROP TABLE public.product_type_groups; + +CREATE TABLE public.product_type_groups ( + id serial4 NOT NULL, + "label" varchar NULL, + parent_group_id int4 NULL, + is_visible bool DEFAULT true NOT NULL, + CONSTRAINT product_type_groups_id_not_null NOT NULL id, + CONSTRAINT product_type_groups_is_visible_not_null NOT NULL is_visible, + CONSTRAINT product_type_groups_pk PRIMARY KEY (id), + CONSTRAINT product_type_groups_product_type_groups_fk FOREIGN KEY (parent_group_id) REFERENCES public.product_type_groups(id) +); +COMMENT ON TABLE public.product_type_groups IS 'Produktgruppe. Sie enthält die Property_types für die jeweiligen Produkte als Kopiervorlage'; + + +-- public.product_type_is_part_of definition + +-- Drop table + +-- DROP TABLE public.product_type_is_part_of; + +CREATE TABLE public.product_type_is_part_of ( + product_type_id int4 NOT NULL, -- Komponenten-ID + is_part_of_product_tyoe_id int4 NOT NULL, + "number" int4 DEFAULT 1 NOT NULL, + min_number int4 DEFAULT 0 NOT NULL, + max_number int4 DEFAULT 1 NOT NULL, + CONSTRAINT product_type_is_part_of_is_part_of_product_tyoe_id_not_null NOT NULL is_part_of_product_tyoe_id, + CONSTRAINT product_type_is_part_of_max_number_not_null NOT NULL max_number, + CONSTRAINT product_type_is_part_of_min_number_not_null NOT NULL min_number, + CONSTRAINT product_type_is_part_of_number_not_null NOT NULL number, + CONSTRAINT product_type_is_part_of_product_type_id_not_null NOT NULL product_type_id, + CONSTRAINT product_type_is_part_of_unique UNIQUE (product_type_id, is_part_of_product_tyoe_id), + CONSTRAINT product_type_is_part_of_product_types_fk FOREIGN KEY (product_type_id) REFERENCES public.product_types(id), + CONSTRAINT product_type_is_part_of_product_types_fk_1 FOREIGN KEY (is_part_of_product_tyoe_id) REFERENCES public.product_types(id) +); +COMMENT ON TABLE public.product_type_is_part_of IS 'Hat Teile Beziehung'; + +-- Column comments + +COMMENT ON COLUMN public.product_type_is_part_of.product_type_id IS 'Komponenten-ID'; + + +-- public.product_type_structure_nodes definition + +-- Drop table + +-- DROP TABLE public.product_type_structure_nodes; + +CREATE TABLE public.product_type_structure_nodes ( + id serial4 NOT NULL, + "label" varchar NULL, + is_one_off_structure bool DEFAULT false NOT NULL, + product_type_id int4 NOT NULL, -- Zu welchem Produkt gehört diese Struktur + CONSTRAINT product_type_structure_nodes_id_not_null NOT NULL id, + CONSTRAINT product_type_structure_nodes_is_one_off_structure_not_null NOT NULL is_one_off_structure, + CONSTRAINT product_type_structure_nodes_pk PRIMARY KEY (id), + CONSTRAINT product_type_structure_nodes_product_type_id_not_null NOT NULL product_type_id, + CONSTRAINT product_type_structure_nodes_product_types_fk FOREIGN KEY (product_type_id) REFERENCES public.product_types(id) +); +COMMENT ON TABLE public.product_type_structure_nodes IS 'Strukturknoten für unterprodukte'; + +-- Column comments + +COMMENT ON COLUMN public.product_type_structure_nodes.product_type_id IS 'Zu welchem Produkt gehört diese Struktur'; + + +-- public.product_type_translations definition + +-- Drop table + +-- DROP TABLE public.product_type_translations; + +CREATE TABLE public.product_type_translations ( + product_type_id int4 NOT NULL, + language_id int4 NOT NULL, + "translation" varchar NULL, + CONSTRAINT product_type_translations_language_id_not_null NOT NULL language_id, + CONSTRAINT product_type_translations_property_type_id_not_null NOT NULL product_type_id, + CONSTRAINT product_type_translations_languages_fk FOREIGN KEY (language_id) REFERENCES public.languages(id), + CONSTRAINT product_type_translations_product_type_fk FOREIGN KEY (product_type_id) REFERENCES public.product_types(id) +); + + +-- public.product_types_group_translations definition + +-- Drop table + +-- DROP TABLE public.product_types_group_translations; + +CREATE TABLE public.product_types_group_translations ( + product_types_group_id int4 NOT NULL, + language_id int4 NOT NULL, + "translation" varchar NULL, + CONSTRAINT product_types_group_translation_product_types_group_id_not_null NOT NULL product_types_group_id, + CONSTRAINT product_types_group_translations_language_id_not_null NOT NULL language_id, + CONSTRAINT product_types_group_translations_unique UNIQUE (product_types_group_id, language_id), + CONSTRAINT product_types_group_translations_languages_fk FOREIGN KEY (language_id) REFERENCES public.languages(id), + CONSTRAINT product_types_group_translations_product_type_groups_fk FOREIGN KEY (product_types_group_id) REFERENCES public.product_type_groups(id) +); + + +-- public.property_type_groups definition + +-- Drop table + +-- DROP TABLE public.property_type_groups; + +CREATE TABLE public.property_type_groups ( + id int4 DEFAULT nextval('property_type_group_id_seq'::regclass) NOT NULL, + "label" varchar NULL, + description varchar NULL, + parent_proper_type_group_id int4 NULL, + CONSTRAINT property_type_group_id_not_null NOT NULL id, + CONSTRAINT property_type_group_pk PRIMARY KEY (id), + CONSTRAINT property_type_group_property_type_group_fk FOREIGN KEY (parent_proper_type_group_id) REFERENCES public.property_type_groups(id) +); + + +-- public.property_types definition + +-- Drop table + +-- DROP TABLE public.property_types; + +CREATE TABLE public.property_types ( + id serial4 NOT NULL, + "label" varchar NULL, + value_type_id int4 NULL, + CONSTRAINT property_types_id_not_null NOT NULL id, + CONSTRAINT property_types_pk PRIMARY KEY (id), + CONSTRAINT property_types_value_types_fk FOREIGN KEY (value_type_id) REFERENCES public.value_types(id) +); +COMMENT ON TABLE public.property_types IS 'Vorlage für Merkmale eines Produktes'; + + +-- public.row_descriptions definition + +-- Drop table + +-- DROP TABLE public.row_descriptions; + +CREATE TABLE public.row_descriptions ( + id serial4 NOT NULL, + "label" varchar NULL, + description varchar NULL, + "position" int4 NOT NULL, + is_visible bool DEFAULT true NOT NULL, + field_id int4 NULL, + calculation_id int4 NULL, + is_editable bool DEFAULT false NOT NULL, + condition_id int4 NULL, + row_type int4 NULL, -- 1: field¶2: calculation¶3: condition + CONSTRAINT row_descriptions_id_not_null NOT NULL id, + CONSTRAINT row_descriptions_is_editable_not_null NOT NULL is_editable, + CONSTRAINT row_descriptions_is_visible_not_null NOT NULL is_visible, + CONSTRAINT row_descriptions_pk PRIMARY KEY (id), + CONSTRAINT row_descriptions_position_not_null NOT NULL "position", + CONSTRAINT row_descriptions_calculations_fk FOREIGN KEY (calculation_id) REFERENCES public.calculations(id), + CONSTRAINT row_descriptions_conditions_fk FOREIGN KEY (condition_id) REFERENCES public.conditions(id), + CONSTRAINT row_descriptions_meta_condition_fields_fk FOREIGN KEY (field_id) REFERENCES public.meta_condition_fields(id) +); + +-- Column comments + +COMMENT ON COLUMN public.row_descriptions.row_type IS '1: field +2: calculation +3: condition'; + + +-- public.row_translations definition + +-- Drop table + +-- DROP TABLE public.row_translations; + +CREATE TABLE public.row_translations ( + row_id int4 NOT NULL, + language_id int4 NOT NULL, + "translation" varchar NULL, + CONSTRAINT row_translations_language_id_not_null NOT NULL language_id, + CONSTRAINT row_translations_row_id_not_null NOT NULL row_id, + CONSTRAINT row_translations_unique UNIQUE (row_id, language_id), + CONSTRAINT row_translations_languages_fk FOREIGN KEY (language_id) REFERENCES public.languages(id), + CONSTRAINT row_translations_row_descriptions_fk FOREIGN KEY (row_id) REFERENCES public.row_descriptions(id) +); + + +-- public.rules_list_product_type_set_amount_of definition + +-- Drop table + +-- DROP TABLE public.rules_list_product_type_set_amount_of; + +CREATE TABLE public.rules_list_product_type_set_amount_of ( + id serial4 NOT NULL, + product_type_id int4 NOT NULL, -- Produkt für das die Regel gelten soll + component_x_product_type_id int4 NOT NULL, + component_y_product_type_id int4 NOT NULL, + component_x_amount int4 DEFAULT 1 NOT NULL, + factor int4 DEFAULT 1 NOT NULL, + description varchar NULL, + CONSTRAINT rules_list_product_type_pk PRIMARY KEY (id), + CONSTRAINT rules_list_product_type_set_amount__component_x_amount_not_null NOT NULL component_x_amount, + CONSTRAINT rules_list_product_type_set_amount_of_factor_not_null NOT NULL factor, + CONSTRAINT rules_list_product_type_set_amount_of_id_not_null NOT NULL id, + CONSTRAINT rules_list_product_type_set_amount_of_product_type_id_not_null NOT NULL product_type_id, + CONSTRAINT rules_list_product_type_set_component_x_product_type_i_not_null NOT NULL component_x_product_type_id, + CONSTRAINT rules_list_product_type_set_component_y_product_type_i_not_null NOT NULL component_y_product_type_id, + CONSTRAINT rules_list_product_type_set_amount_of_product_types_fk FOREIGN KEY (product_type_id) REFERENCES public.product_types(id), + CONSTRAINT rules_list_product_type_set_amount_of_product_types_fk_1 FOREIGN KEY (component_x_product_type_id) REFERENCES public.product_types(id), + CONSTRAINT rules_list_product_type_set_amount_of_product_types_fk_2 FOREIGN KEY (component_y_product_type_id) REFERENCES public.product_types(id) +); +COMMENT ON TABLE public.rules_list_product_type_set_amount_of IS 'In Solution product_type: +Ist die Komponente x mehr als a * vertreten (in dr Regel 1) +dann setzte amount of Komponente y auf a * factor (in der Regel auch 1)'; + +-- Column comments + +COMMENT ON COLUMN public.rules_list_product_type_set_amount_of.product_type_id IS 'Produkt für das die Regel gelten soll'; + + +-- public.structure_node_product_types_list definition + +-- Drop table + +-- DROP TABLE public.structure_node_product_types_list; + +CREATE TABLE public.structure_node_product_types_list ( + structure_node_id int4 NOT NULL, + product_type_id int4 NOT NULL, -- Produkte in der Struktur + CONSTRAINT structure_node_product_types_list_product_type_id_not_null NOT NULL product_type_id, + CONSTRAINT structure_node_product_types_list_structure_node_id_not_null NOT NULL structure_node_id, + CONSTRAINT structure_node_product_types_list_product_type_structure_nodes_ FOREIGN KEY (structure_node_id) REFERENCES public.product_type_structure_nodes(id), + CONSTRAINT structure_node_product_types_list_product_types_fk FOREIGN KEY (product_type_id) REFERENCES public.product_types(id) +); +COMMENT ON TABLE public.structure_node_product_types_list IS 'Produkte in einem Strukturknoten'; + +-- Column comments + +COMMENT ON COLUMN public.structure_node_product_types_list.product_type_id IS 'Produkte in der Struktur'; + + +-- public.units definition + +-- Drop table + +-- DROP TABLE public.units; + +CREATE TABLE public.units ( + id serial4 NOT NULL, + "label" varchar NULL, + description varchar NULL, + unit varchar NULL, + base_unit_id int4 NULL, -- Wenn es eine Ableitung von einer Base-Unit ist, so kann diese hier verlinkt werden und dann wird der base_unit_factor berücksichtigt. + base_unit_factor float4 NULL, -- Von der Bas eaus betrachtet der Faktor, der für die Umrechnung benötigt wird. + CONSTRAINT units_id_not_null NOT NULL id, + CONSTRAINT units_pk PRIMARY KEY (id), + CONSTRAINT units_units_fk FOREIGN KEY (base_unit_id) REFERENCES public.units(id) +); + +-- Column comments + +COMMENT ON COLUMN public.units.base_unit_id IS 'Wenn es eine Ableitung von einer Base-Unit ist, so kann diese hier verlinkt werden und dann wird der base_unit_factor berücksichtigt.'; +COMMENT ON COLUMN public.units.base_unit_factor IS 'Von der Bas eaus betrachtet der Faktor, der für die Umrechnung benötigt wird.'; + + +-- public."values" definition + +-- Drop table + +-- DROP TABLE public."values"; + +CREATE TABLE public."values" ( + id serial4 NOT NULL, + "label" varchar NULL, -- interne Bezeichnung + int_min_value int4 NULL, -- Kleinster oder einziger int_Wert + int_max_value int4 NULL, -- größter Wert, wenn Range + float_min_value float4 NULL, + float_max_value float4 NULL, + bool_value bool NULL, + value_type_id int4 NOT NULL, + value_translation_id int4 NULL, -- muss nicht gesetzt werden, z.B. bei Zahlen + is_range bool DEFAULT false NULL, + unit_id int4 NULL, + is_terminal bool NULL, + CONSTRAINT value_id_pk PRIMARY KEY (id), + CONSTRAINT values_id_not_null NOT NULL id, + CONSTRAINT values_value_type_id_not_null NOT NULL value_type_id, + CONSTRAINT values_units_fk FOREIGN KEY (unit_id) REFERENCES public.units(id), + CONSTRAINT values_values_type_fk FOREIGN KEY (value_type_id) REFERENCES public.value_types(id) +); + +-- Column comments + +COMMENT ON COLUMN public."values"."label" IS 'interne Bezeichnung'; +COMMENT ON COLUMN public."values".int_min_value IS 'Kleinster oder einziger int_Wert'; +COMMENT ON COLUMN public."values".int_max_value IS 'größter Wert, wenn Range'; +COMMENT ON COLUMN public."values".value_translation_id IS 'muss nicht gesetzt werden, z.B. bei Zahlen'; + + +-- public.product_type_group_products_types_list definition + +-- Drop table + +-- DROP TABLE public.product_type_group_products_types_list; + +CREATE TABLE public.product_type_group_products_types_list ( + product_type_group_id int4 NOT NULL, + product_type_id int4 NOT NULL, + is_mandatory bool DEFAULT false NOT NULL, + CONSTRAINT product_type_group_products_type_product_type_group_id_not_null NOT NULL product_type_group_id, + CONSTRAINT product_type_group_products_types_list_is_mandatory_not_null NOT NULL is_mandatory, + CONSTRAINT product_type_group_products_types_list_product_type_id_not_null NOT NULL product_type_id, + CONSTRAINT product_type_group_products_types_list_product_type_groups_fk FOREIGN KEY (product_type_group_id) REFERENCES public.product_type_groups(id), + CONSTRAINT product_type_group_products_types_list_product_types_fk FOREIGN KEY (product_type_id) REFERENCES public.product_types(id) +); + + +-- public.product_type_structure_node_translations definition + +-- Drop table + +-- DROP TABLE public.product_type_structure_node_translations; + +CREATE TABLE public.product_type_structure_node_translations ( + structure_node_id int4 NOT NULL, + language_id int4 NOT NULL, + "translation" varchar NULL, + CONSTRAINT product_type_structure_node_translat_structure_node_id_not_null NOT NULL structure_node_id, + CONSTRAINT product_type_structure_node_translations_language_id_not_null NOT NULL language_id, + CONSTRAINT product_type_structure_node_translations_languages_fk FOREIGN KEY (language_id) REFERENCES public.languages(id), + CONSTRAINT product_type_structure_node_translations_product_type_structure FOREIGN KEY (structure_node_id) REFERENCES public.product_type_structure_nodes(id) +); + + +-- public.product_type_values_list definition + +-- Drop table + +-- DROP TABLE public.product_type_values_list; + +CREATE TABLE public.product_type_values_list ( + product_type_id int4 NOT NULL, + property_type_id int4 NOT NULL, + value_id int4 NOT NULL, + CONSTRAINT product_type_values_list_product_type_id_not_null NOT NULL product_type_id, + CONSTRAINT product_type_values_list_property_type_id_not_null NOT NULL property_type_id, + CONSTRAINT product_type_values_list_unique UNIQUE (product_type_id, property_type_id), + CONSTRAINT product_type_values_list_value_id_not_null NOT NULL value_id, + CONSTRAINT product_type_values_list_product_types_fk FOREIGN KEY (product_type_id) REFERENCES public.product_types(id), + CONSTRAINT product_type_values_list_property_types_fk FOREIGN KEY (property_type_id) REFERENCES public.property_types(id), + CONSTRAINT product_type_values_list_values_fk FOREIGN KEY (value_id) REFERENCES public."values"(id) +); + + +-- public.property_type_group_list definition + +-- Drop table + +-- DROP TABLE public.property_type_group_list; + +CREATE TABLE public.property_type_group_list ( + property_type_group_id int4 NOT NULL, + property_type_id int4 NOT NULL, + CONSTRAINT property_type_group_list_property_type_group_id_not_null NOT NULL property_type_group_id, + CONSTRAINT property_type_group_list_property_type_id_not_null NOT NULL property_type_id, + CONSTRAINT property_type_group_list_unique UNIQUE (property_type_group_id, property_type_id), + CONSTRAINT property_type_group_list_property_type_groups_fk FOREIGN KEY (property_type_group_id) REFERENCES public.property_type_groups(id), + CONSTRAINT property_type_group_list_property_types_fk FOREIGN KEY (property_type_id) REFERENCES public.property_types(id) +); +COMMENT ON TABLE public.property_type_group_list IS 'Properties einer Produktgruppe'; + + +-- public.property_type_group_translations definition + +-- Drop table + +-- DROP TABLE public.property_type_group_translations; + +CREATE TABLE public.property_type_group_translations ( + property_type_group_id int4 NOT NULL, + language_id int4 NOT NULL, + "translation" varchar NULL, + CONSTRAINT property_type_group_translation_property_type_group_id_not_null NOT NULL property_type_group_id, + CONSTRAINT property_type_group_translations_language_id_not_null NOT NULL language_id, + CONSTRAINT property_type_group_translations_unique UNIQUE (property_type_group_id, language_id), + CONSTRAINT property_type_group_translations_languages_fk FOREIGN KEY (language_id) REFERENCES public.languages(id), + CONSTRAINT property_type_group_translations_property_type_group_fk FOREIGN KEY (property_type_group_id) REFERENCES public.property_type_groups(id) +); + + +-- public.property_type_translations definition + +-- Drop table + +-- DROP TABLE public.property_type_translations; + +CREATE TABLE public.property_type_translations ( + property_type_id int4 NOT NULL, + language_id int4 NOT NULL, + "translation" varchar NULL, + CONSTRAINT property_type_translations_language_id_not_null NOT NULL language_id, + CONSTRAINT property_type_translations_unique UNIQUE (property_type_id, language_id), + CONSTRAINT property_type_translations_value_id_not_null NOT NULL property_type_id, + CONSTRAINT property_type_translations_languages_fk FOREIGN KEY (language_id) REFERENCES public.languages(id), + CONSTRAINT property_type_translations_property_types_fk FOREIGN KEY (property_type_id) REFERENCES public.property_types(id) +); + + +-- public.value_lists definition + +-- Drop table + +-- DROP TABLE public.value_lists; + +CREATE TABLE public.value_lists ( + property_type_id int4 NULL, + value_id int4 NULL, + CONSTRAINT value_lists_unique UNIQUE (property_type_id, value_id), + CONSTRAINT value_lists_property_types_fk FOREIGN KEY (property_type_id) REFERENCES public.property_types(id), + CONSTRAINT value_lists_values_fk FOREIGN KEY (value_id) REFERENCES public."values"(id) +); +COMMENT ON TABLE public.value_lists IS 'List of possilbe values'; + + +-- public.value_translations definition + +-- Drop table + +-- DROP TABLE public.value_translations; + +CREATE TABLE public.value_translations ( + value_id int4 NOT NULL, + language_id int4 NOT NULL, + "translation" varchar NULL, + CONSTRAINT value_translation_language_id_not_null NOT NULL language_id, + CONSTRAINT value_translation_value_id_not_null NOT NULL value_id, + CONSTRAINT value_translations_unique UNIQUE (value_id, language_id), + CONSTRAINT value_translation_languages_fk FOREIGN KEY (language_id) REFERENCES public.languages(id), + CONSTRAINT value_translation_values_fk FOREIGN KEY (value_id) REFERENCES public."values"(id) +); \ No newline at end of file diff --git a/database/dbscripts/tsindt - simpy_cpq_master_data - public.erd b/database/dbscripts/tsindt - simpy_cpq_master_data - public.erd new file mode 100644 index 000000000..5c5098ad6 --- /dev/null +++ b/database/dbscripts/tsindt - simpy_cpq_master_data - public.erd @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/database/dbscripts/tsindt - simpy_cpq_master_data - public.graphml b/database/dbscripts/tsindt - simpy_cpq_master_data - public.graphml new file mode 100644 index 000000000..1f495f09a --- /dev/null +++ b/database/dbscripts/tsindt - simpy_cpq_master_data - public.graphml @@ -0,0 +1,1025 @@ + + + + + + + + + + + + calculations + id +label +description +formula + + + + + + + + + + + + + + + + condition_applications + id +label +description + + + + + + + + + + + + + + + + conditions + id +label +description +application_id +key_value +value + + + + + + + + + + + + + + + + languages + id +locale +language + + + + + + + + + + + + + + + + meta_condition_fields + id +table_name +table_field +label +description + + + + + + + + + + + + + + + + meta_condition_keys + field_id +condition_position +label +description +condition_key_id + + + + + + + + + + + + + + + + product_type_group_products_types_list + product_type_group_id +product_type_id +is_mandatory + + + + + + + + + + + + + + + + product_type_groups + id +label +parent_group_id +is_visible + + + + + + + + + + + + + + + + product_type_is_part_of + product_type_id +is_part_of_product_tyoe_id +number +min_number +max_number + + + + + + + + + + + + + + + + product_type_structure_node_translations + structure_node_id +language_id +translation + + + + + + + + + + + + + + + + product_type_structure_nodes + id +label +is_one_off_structure +product_type_id + + + + + + + + + + + + + + + + product_type_translations + product_type_id +language_id +translation + + + + + + + + + + + + + + + + product_type_values_list + product_type_id +property_type_id +value_id + + + + + + + + + + + + + + + + product_types + id +product_identifierer +label + + + + + + + + + + + + + + + + product_types_group_translations + product_types_group_id +language_id +translation + + + + + + + + + + + + + + + + property_type_group_list + property_type_group_id +property_type_id + + + + + + + + + + + + + + + + property_type_group_translations + property_type_group_id +language_id +translation + + + + + + + + + + + + + + + + property_type_groups + id +label +description +parent_proper_type_group_id + + + + + + + + + + + + + + + + property_type_translations + property_type_id +language_id +translation + + + + + + + + + + + + + + + + property_types + id +label +value_type_id + + + + + + + + + + + + + + + + row_descriptions + id +label +description +position +is_visible +field_id +calculation_id +is_editable +condition_id +row_type + + + + + + + + + + + + + + + + row_translations + row_id +language_id +translation + + + + + + + + + + + + + + + + rules_list_product_type_set_amount_of + id +product_type_id +component_x_product_type_id +component_y_product_type_id +component_x_amount +factor +description + + + + + + + + + + + + + + + + structure_node_product_types_list + structure_node_id +product_type_id + + + + + + + + + + + + + + + + units + id +label +description +unit +base_unit_id +base_unit_factor + + + + + + + + + + + + + + + + value_lists + property_type_id +value_id + + + + + + + + + + + + + + + + value_translations + value_id +language_id +translation + + + + + + + + + + + + + + + + value_types + label +id + + + + + + + + + + + + + + + + values + id +label +int_min_value +int_max_value +float_min_value +float_max_value +bool_value +value_type_id +value_translation_id +is_range +unit_id +is_terminal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/database/dbscripts/tsindt - simpy_cpq_master_data - public.png b/database/dbscripts/tsindt - simpy_cpq_master_data - public.png new file mode 100644 index 0000000000000000000000000000000000000000..440f42c524ce0695fbb10cb284164c750692efcb GIT binary patch literal 149128 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 literal 0 HcmV?d00001 diff --git a/documentation/01_general/Architekturmodell.drawio b/documentation/01_general/Architekturmodell.drawio new file mode 100644 index 000000000..bbe964e1b --- /dev/null +++ b/documentation/01_general/Architekturmodell.drawio @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/documentation/01_general/UseCases.md b/documentation/01_general/UseCases.md new file mode 100644 index 000000000..614aea60c --- /dev/null +++ b/documentation/01_general/UseCases.md @@ -0,0 +1,44 @@ +# Use Cases Simply CPQ +Ziel von Simply CPQ ist es, ein Werkzeug für den Vertrieb eines Unternehmens bereit zu stellen, mit dem Angebote für komplexe, variantenreiche Produkte und Lösungen schnell, fehlerfrei, zum korrekten Preis erstellt werden können. + +## Logical Editor +Der Logical Editor dient zum Erfassen von Daten, Produkten, Preisen, Merkmalen und Logiken der anzubietenden Produkte und Lösungen. + +### Sprachen + +#### Sprachen verwalten: +Ich als User kann neue Sprachen anlegen, löschen und ändern. Löschen kann ich eine Sprache nur, wenn sie nicht verwendet wird + +#### Übersetzungen pflegen: +Für folgende Daten kann ich Übersetzungen einpflegen, löschen und ändern: + +- Werte +- Merkmale +- Merkmalsgruppen +- Produkte +- Produktgruppen +- Spaltenamen +- Strukturknoten von Lösungen + +### Merkmale +Merkmale werden global definiert und strukturiert. Sie können Produktgruppen zugeordnet werden und damit werden sich auch automatisch allen Produkten und Produktgruppen unterhalb dieser Produktgruppe zugeordnet. Merkmale können mögliche Werte, Wertemengen oder MinMax-Werte beinhalten, je nach Typ des Merkmals. + +#### Merkmalsgruppen pflegen +Ich kann Merkmalsgruppen anlegen, löschen (sofern leer) und ändern. Diese Gruppen dienen der Strukturierung des Merkmalspools. Merkmalsgruppen können beliebig tief verschachtelt werden. + +#### Merkmalswert pflegen +Ich kann Werte anlegen, pflegen und löschen. Die Werte kann ich Merkmalen zuordnen, wenn der Werte-Typ identisch ist. + +#### Merkmale pflegen +Ich kann Merkmale anlegen, pflegen und löschen (wenn sie nicht in Verwendung sind). Ein Merkmal kann ich einen Bezeichner geben. Ein Merkmal kann ich einer Merkmalsgruppe zuordnen. Ich kann sehen, in welchen Produkten und Produktgruppen ein Merkmal verwendet wird. Ich kann einem Merkmal einen Wert, einen Wertebereich oder eine Liste möglicher Werte mitgeben. In den letzten Fällen muss dann dieses Merkmal bei der Auswahl eines Produktes mit diesem Merkmal der terminale Wert im Konfigurator bestimmt werden. + +### Datenbank-Sicherungen + +#### Sicherung erstellen: +Ich als Administrator kann zu jedem Zeitpunkt eine Sicherung der Master-Data Datenbank vornehmen. Ich führe dieses manuell aus. + +#### Sicherungen öffnen: +Ich als Adminstrator kann eine Instanz des Logical Editors mit einer Sicherungsdatenbank verbinden und öffnen. Hiermit kann ich mir den Versionsstand zu einem definierten Zeitpunkt der Datenbank anschauen + +## Quote Editor +Der Quote Editor dient zur Erstellung von Angeboten auf Basis der gepflegten Daten und Logiken. \ No newline at end of file diff --git a/runtime/client/README.md b/runtime/client/README.md new file mode 100644 index 000000000..b2b93f0bd --- /dev/null +++ b/runtime/client/README.md @@ -0,0 +1,2 @@ +# Simply CPQ Runtime Client +Dieser Ordner enthält alle relevanten Dateien und Informationen zum Simply CPQ Runtime Client. Dieser dient dem Schreiben von Angeboten. diff --git a/runtime/server/README.md b/runtime/server/README.md new file mode 100644 index 000000000..ce307cbb7 --- /dev/null +++ b/runtime/server/README.md @@ -0,0 +1,2 @@ +# Simply CPQ Runtime Server +Dieses Verzeichnis enthält alle Simply CPQ Runtime Server relevanten Dateien und Informationen. \ No newline at end of file