CREATE TABLE invoice
  ( invoice_id             INT PRIMARY KEY,
    seller                 INT,
    seller_contact         INT,
    number                 VARCHAR(255),
    date                   CHAR(10),
    po                     VARCHAR(255),
    amount_no_tax          INT,
    tax                    INT,
    amount                 INT,
    payment_status         CHAR( 10)
  );

CREATE INDEX i_invoice_seller         ON invoice( seller);
CREATE INDEX i_invoice_seller_contact ON invoice( seller_contact);
CREATE INDEX i_invoice_po             ON invoice( po);
CREATE INDEX i_invoice_number         ON invoice( number);


CREATE TABLE seller
  ( seller_id              INT PRIMARY KEY,
    identifier             VARCHAR(20),
    name                   VARCHAR(255),
    tax_code               VARCHAR(20),
    address                INT
  );
    
CREATE INDEX i_seller_identifier      ON seller( identifier);
CREATE INDEX i_seller_name            ON seller( name);
CREATE INDEX i_seller_tax_code        ON seller( tax_code);
CREATE INDEX i_seller_address         ON seller( address);


CREATE TABLE address
  ( address_id             INT PRIMARY KEY,
    street                 VARCHAR(255),
    town                   VARCHAR(255),
    zip                    VARCHAR(20),
    country_code           CHAR(2),
    po_box                 VARCHAR(255)
  );


CREATE TABLE person
  ( person_id             INT PRIMARY KEY,
    name                   VARCHAR(255),
    phone                  VARCHAR(25),
    email                  VARCHAR(255)
  );

CREATE INDEX i_person_name           ON person( name);
CREATE INDEX i_person_phone          ON person( phone);
CREATE INDEX i_person_email          ON person( email);


CREATE TABLE invoicerow
  ( invoicerow_id          INT PRIMARY KEY,
    row_id                 VARCHAR(25),
    invoice                INT,
    sku                    VARCHAR(255),
    name                   VARCHAR(255),
    qty                    VARCHAR(255),
    qty_unit               VARCHAR(255),
    unit_price             INT,
    amount_no_tax          INT,
    tax                    INT,
    amount                 INT
  );
    
CREATE INDEX i_invoicerow_invoice    ON invoicerow( invoice);

CREATE TABLE po
  ( po_id                  INT PRIMARY KEY,
    po                     VARCHAR(255) UNIQUE,
    status                 CHAR(10)
  );

INSERT INTO po (po_id, po, status ) VALUES  (1, 'TI0988', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (2, 'TI0990', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (3, 'TI0991', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (4, 'TI0999', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (5, 'GEN_5', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (6, 'GEN_6', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (7, 'GEN_7', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (8, 'GEN_8', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (9, 'GEN_9', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (10, 'GEN_10', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (11, 'GEN_11', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (12, 'GEN_12', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (13, 'GEN_13', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (14, 'GEN_14', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (15, 'GEN_15', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (16, 'GEN_16', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (17, 'GEN_17', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (18, 'GEN_18', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (19, 'GEN_19', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (20, 'GEN_20', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (21, 'GEN_21', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (22, 'GEN_22', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (23, 'GEN_23', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (24, 'GEN_24', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (25, 'GEN_25', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (26, 'GEN_26', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (27, 'GEN_27', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (28, 'GEN_28', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (29, 'GEN_29', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (30, 'GEN_30', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (31, 'GEN_31', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (32, 'GEN_32', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (33, 'GEN_33', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (34, 'GEN_34', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (35, 'GEN_35', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (36, 'GEN_36', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (37, 'GEN_37', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (38, 'GEN_38', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (39, 'GEN_39', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (40, 'GEN_40', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (41, 'GEN_41', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (42, 'GEN_42', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (43, 'GEN_43', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (44, 'GEN_44', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (45, 'GEN_45', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (46, 'GEN_46', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (47, 'GEN_47', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (48, 'GEN_48', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (49, 'GEN_49', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (50, 'GEN_50', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (51, 'GEN_51', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (52, 'GEN_52', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (53, 'GEN_53', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (54, 'GEN_54', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (55, 'GEN_55', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (56, 'GEN_56', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (57, 'GEN_57', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (58, 'GEN_58', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (59, 'GEN_59', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (60, 'GEN_60', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (61, 'GEN_61', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (62, 'GEN_62', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (63, 'GEN_63', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (64, 'GEN_64', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (65, 'GEN_65', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (66, 'GEN_66', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (67, 'GEN_67', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (68, 'GEN_68', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (69, 'GEN_69', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (70, 'GEN_70', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (71, 'GEN_71', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (72, 'GEN_72', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (73, 'GEN_73', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (74, 'GEN_74', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (75, 'GEN_75', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (76, 'GEN_76', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (77, 'GEN_77', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (78, 'GEN_78', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (79, 'GEN_79', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (80, 'GEN_80', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (81, 'GEN_81', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (82, 'GEN_82', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (83, 'GEN_83', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (84, 'GEN_84', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (85, 'GEN_85', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (86, 'GEN_86', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (87, 'GEN_87', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (88, 'GEN_88', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (89, 'GEN_89', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (90, 'GEN_90', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (91, 'GEN_91', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (92, 'GEN_92', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (93, 'GEN_93', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (94, 'GEN_94', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (95, 'GEN_95', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (96, 'GEN_96', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (97, 'GEN_97', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (98, 'GEN_98', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (99, 'GEN_99', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (100, 'GEN_100', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (101, 'GEN_101', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (102, 'GEN_102', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (103, 'GEN_103', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (104, 'GEN_104', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (105, 'GEN_105', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (106, 'GEN_106', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (107, 'GEN_107', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (108, 'GEN_108', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (109, 'GEN_109', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (110, 'GEN_110', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (111, 'GEN_111', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (112, 'GEN_112', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (113, 'GEN_113', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (114, 'GEN_114', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (115, 'GEN_115', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (116, 'GEN_116', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (117, 'GEN_117', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (118, 'GEN_118', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (119, 'GEN_119', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (120, 'GEN_120', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (121, 'GEN_121', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (122, 'GEN_122', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (123, 'GEN_123', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (124, 'GEN_124', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (125, 'GEN_125', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (126, 'GEN_126', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (127, 'GEN_127', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (128, 'GEN_128', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (129, 'GEN_129', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (130, 'GEN_130', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (131, 'GEN_131', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (132, 'GEN_132', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (133, 'GEN_133', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (134, 'GEN_134', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (135, 'GEN_135', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (136, 'GEN_136', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (137, 'GEN_137', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (138, 'GEN_138', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (139, 'GEN_139', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (140, 'GEN_140', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (141, 'GEN_141', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (142, 'GEN_142', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (143, 'GEN_143', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (144, 'GEN_144', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (145, 'GEN_145', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (146, 'GEN_146', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (147, 'GEN_147', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (148, 'GEN_148', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (149, 'GEN_149', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (150, 'GEN_150', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (151, 'GEN_151', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (152, 'GEN_152', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (153, 'GEN_153', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (154, 'GEN_154', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (155, 'GEN_155', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (156, 'GEN_156', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (157, 'GEN_157', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (158, 'GEN_158', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (159, 'GEN_159', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (160, 'GEN_160', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (161, 'GEN_161', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (162, 'GEN_162', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (163, 'GEN_163', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (164, 'GEN_164', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (165, 'GEN_165', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (166, 'GEN_166', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (167, 'GEN_167', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (168, 'GEN_168', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (169, 'GEN_169', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (170, 'GEN_170', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (171, 'GEN_171', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (172, 'GEN_172', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (173, 'GEN_173', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (174, 'GEN_174', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (175, 'GEN_175', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (176, 'GEN_176', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (177, 'GEN_177', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (178, 'GEN_178', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (179, 'GEN_179', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (180, 'GEN_180', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (181, 'GEN_181', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (182, 'GEN_182', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (183, 'GEN_183', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (184, 'GEN_184', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (185, 'GEN_185', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (186, 'GEN_186', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (187, 'GEN_187', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (188, 'GEN_188', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (189, 'GEN_189', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (190, 'GEN_190', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (191, 'GEN_191', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (192, 'GEN_192', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (193, 'GEN_193', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (194, 'GEN_194', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (195, 'GEN_195', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (196, 'GEN_196', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (197, 'GEN_197', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (198, 'GEN_198', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (199, 'GEN_199', 'NA');
INSERT INTO po (po_id, po, status ) VALUES  (200, 'GEN_200', 'NA');
