CREATE TABLE M_POS_KUPCI
(
  ID                INT    NOT NULL  identity primary key,
  SIFRA             VARCHAR(15)  NOT NULL,
  NAZIV             VARCHAR(80)  NOT NULL,
  MB                VARCHAR(13)          ,
  ADRESA            VARCHAR(40)  NOT NULL,
  POSTANSKI_BROJ    VARCHAR(5)   NOT NULL,
  GRAD              VARCHAR(40)  NOT NULL,
  ODGOVORNA_OSOBA   VARCHAR(40)          ,
  TELEFON           VARCHAR(30)          ,
  FAKS              VARCHAR(30)          ,
  EMAIL             VARCHAR(40)          ,
  URL               VARCHAR(50)          ,
  VERZIJA           NUMERIC               ,
  UNOS_KORISNIK     VARCHAR(30)          ,
  UNOS_DATUM        DATE                  ,
  IZMJENA_KORISNIK  VARCHAR(30)          ,
  IZMJENA_DATUM     DATE                  ,
  CONSTRAINT M_POS_KUP_PK PRIMARY KEY (ID)
);
CREATE UNIQUE INDEX M_POS_KUP_UK ON M_POS_KUPCI
(SIFRA);

CREATE TABLE M_POS_GRUPE_KASA
(
  ID                INT    NOT NULL  identity primary key,
  SIFRA             VARCHAR(20)  NOT NULL,
  NAZIV             VARCHAR(40)          ,
  VERZIJA           NUMERIC                ,
  UNOS_KORISNIK     VARCHAR(30)          ,
  UNOS_DATUM        DATE                  ,
  IZMJENA_KORISNIK  VARCHAR(30)          ,
  IZMJENA_DATUM     DATE                  ,
  CONSTRAINT M_POS_GKAS_PK PRIMARY KEY (ID)
);
CREATE UNIQUE INDEX M_POS_GKAS_UK ON M_POS_GRUPE_KASA
(SIFRA);


CREATE TABLE M_POS_KASE
(
  ID                INT    NOT NULL  identity primary key,
  NAZIV                     VARCHAR(40)                 NOT NULL,
  SIFRA                     VARCHAR(20)                 NOT NULL,
  ID_GRUPE_KASA             INT                              ,
  DEFAULT_SMJESTAJNI_OBJEKT VARCHAR(10)                         ,
  GODINA                    VARCHAR(20)                         ,
  DATUM                     DATE                                 ,
  DEFAULT_CJENIK            VARCHAR(20)                         ,
  JEDAN_CJENIK_PO_RACUNU    VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  DEFAULT_VRSTA_NAPLATE     VARCHAR(20)                         ,
  JEDNA_NAPLATA_PO_RACUNU   VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  TECAJ                     NUMERIC(15,8)                         ,
  KOREKCIJA_TECAJA          NUMERIC(5,4)                          ,
  VALUTA                    VARCHAR(3)                          ,
  DOMACA_VALUTA             VARCHAR(3)                          ,
  PRIKAZ_PROTUVRIJEDNOSTI   VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  DOZVOLJEN_UNOS            VARCHAR(1)   DEFAULT 'N'  NOT NULL,
  MAX_BROJ_ISPISA_RACUNA    NUMERIC                               ,
  PRIJAVA_PRI_NAPLATI       VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  NARUDZBE_UZ_NAPLATU       VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  NARUDZBE_UZ_IZLAZ         VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  PRIJENOS_OTVORENIH        VARCHAR(1)   DEFAULT 'N'  NOT NULL,
  GAS_ID             INT                                 ,
  AKTIVNO                   VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  VERZIJA                   NUMERIC                               ,
  UNOS_KORISNIK             VARCHAR(30)                         ,
  UNOS_DATUM                DATE                                 ,
  IZMJENA_KORISNIK          VARCHAR(30)                         ,
  IZMJENA_DATUM             DATE                                 ,
  CONSTRAINT M_POS_KAS_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_KAS_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_KAS_2_CK CHECK ( DOZVOLJEN_UNOS in ('Y','N') ),
  CONSTRAINT M_POS_KAS_3_CK CHECK ( JEDAN_CJENIK_PO_RACUNU in ('Y','N') ),
  CONSTRAINT M_POS_KAS_4_CK CHECK ( PRIKAZ_PROTUVRIJEDNOSTI in ('Y','N') ),
  CONSTRAINT M_POS_KAS_5_CK CHECK ( JEDNA_NAPLATA_PO_RACUNU in ('Y','N') ),
  CONSTRAINT M_POS_KAS_6_CK CHECK ( NARUDZBE_UZ_NAPLATU in ('Y','N') ),
  CONSTRAINT M_POS_KAS_7_CK CHECK ( NARUDZBE_UZ_IZLAZ in ('Y','N') ),
  CONSTRAINT M_POS_KAS_8_CK CHECK ( PRIJAVA_PRI_NAPLATI in ('Y','N') ),
  CONSTRAINT M_POS_KAS_9_CK CHECK ( PRIJENOS_OTVORENIH in ('Y','N') ),
  CONSTRAINT M_POS_KAS_GKAS_FK FOREIGN KEY (ID_GRUPE_KASA) REFERENCES M_POS_GRUPE_KASA (ID)
);
CREATE UNIQUE INDEX M_POS_KAS_UK ON M_POS_KASE
(SIFRA);
CREATE INDEX M_POS_KAS_GKAS_FK_I ON M_POS_KASE
(ID_GRUPE_KASA);

CREATE TABLE M_POS_KONOBARI
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT                       NOT NULL,
  SIFRA             VARCHAR(20)                 NOT NULL,
  IME               VARCHAR(40)                 NOT NULL,
  LOZINKA           VARCHAR(40)                 NOT NULL,
  GAS_ID             INT                                 ,
  AKTIVNO           VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  VERZIJA           NUMERIC                               ,
  UNOS_KORISNIK     VARCHAR(30)                         ,
  UNOS_DATUM        DATE                                 ,
  IZMJENA_KORISNIK  VARCHAR(30)                         ,
  IZMJENA_DATUM     DATE                                 ,
  CONSTRAINT M_POS_KON_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_KON_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_KON_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX M_POS_KON_1_UK ON M_POS_KONOBARI
(ID_KASE, SIFRA);
CREATE INDEX M_POS_KON_KAS_FK_I ON M_POS_KONOBARI
(ID_KASE);
CREATE INDEX M_POS_KON_1_I ON M_POS_KONOBARI
(ID_KASE, LOZINKA);


CREATE TABLE M_POS_AKCIJE_KONOBARA
(
  ID                INT    NOT NULL  identity primary key,
  ID_KONOBARA       INT        NOT NULL,
  SIFRA_AKCIJE      VARCHAR(50)  NOT NULL,
  VERZIJA           NUMERIC                ,
  UNOS_KORISNIK     VARCHAR(30)          ,
  UNOS_DATUM        DATE                  ,
  IZMJENA_KORISNIK  VARCHAR(30)          ,
  IZMJENA_DATUM     DATE                  ,
  CONSTRAINT M_POS_AKCKON_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_AKCKON_KON_FK FOREIGN KEY (ID_KONOBARA) REFERENCES M_POS_KONOBARI (ID)
);
CREATE UNIQUE INDEX M_POS_AKCKON_UK ON M_POS_AKCIJE_KONOBARA
(ID_KONOBARA, SIFRA_AKCIJE);
CREATE INDEX M_POS_AKCKON_KON_FK_I ON M_POS_AKCIJE_KONOBARA
(ID_KONOBARA);


CREATE TABLE M_POS_POREZNA_ISPORUKA
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE                   INT                      NOT NULL,
  SIFRA                     VARCHAR(20)                 NOT NULL,
  NAZIV                     VARCHAR(40)                 NOT NULL,
  STOPA                     NUMERIC(5,2)                         ,
  AKTIVNO                   VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  GAS_ID                    INT                              ,
  VERZIJA                   NUMERIC                              ,
  UNOS_KORISNIK             VARCHAR(30)                         ,
  UNOS_DATUM                DATE                                 ,
  IZMJENA_KORISNIK          VARCHAR(30)                         ,
  IZMJENA_DATUM             DATE                                 ,
  CONSTRAINT M_POS_PI_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_PI_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_PI_UK UNIQUE (ID_KASE, SIFRA),
  CONSTRAINT M_POS_PI_1_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);

CREATE TABLE M_POS_POREZNI_DOGADJAJ
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE                   INT                      NOT NULL,
  SIFRA                     VARCHAR(20)                 NOT NULL,
  NAZIV                     VARCHAR(40)                 NOT NULL,
  AKTIVNO                   VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  GAS_ID                    INT                              ,
  VERZIJA                   NUMERIC                              ,
  UNOS_KORISNIK             VARCHAR(30)                         ,
  UNOS_DATUM                DATE                                 ,
  IZMJENA_KORISNIK          VARCHAR(30)                         ,
  IZMJENA_DATUM             DATE                                 ,
  CONSTRAINT M_POS_PD_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_PD_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_PD_UK UNIQUE (ID_KASE, SIFRA),
  CONSTRAINT M_POS_PD_1_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);

CREATE TABLE M_POS_PID
(
  ID                INT    NOT NULL  identity primary key,
  POREZNI_DOGADJAJ_ID       INT                      NOT NULL,
  POCETNA_ISPORUKA_ID       INT                      NOT NULL,
  ZAVRSNA_ISPORUKA_ID       INT                      NOT NULL,
  AKTIVNO                   VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  VERZIJA                   NUMERIC                              ,
  UNOS_KORISNIK             VARCHAR(30)                         ,
  UNOS_DATUM                DATE                                 ,
  IZMJENA_KORISNIK          VARCHAR(30)                         ,
  IZMJENA_DATUM             DATE                                 ,
  CONSTRAINT M_POS_PID_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_PID_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_PID_UK UNIQUE (POREZNI_DOGADJAJ_ID, POCETNA_ISPORUKA_ID),
  CONSTRAINT M_POS_PID_PD_FK FOREIGN KEY (POREZNI_DOGADJAJ_ID) REFERENCES M_POS_POREZNI_DOGADJAJ (ID),
  CONSTRAINT M_POS_PID_PI_FK FOREIGN KEY (ZAVRSNA_ISPORUKA_ID) REFERENCES M_POS_POREZNA_ISPORUKA (ID)
);


CREATE TABLE M_POS_POREZNE_GRUPE
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT                          NOT NULL,
  SIFRA             VARCHAR(20)                  NOT NULL,
  NAZIV             VARCHAR(40)                  NOT NULL,
  PDV               NUMERIC(5,4)                         ,
  PPOT              NUMERIC(5,4)                         ,
  POC_PI_ID         INT                                  ,
  ZAV_PI_ID         INT                                  ,
  GAS_ID            INT                                  ,
  AKTIVNO           VARCHAR(1)   DEFAULT 'Y'     NOT NULL,
  VERZIJA           NUMERIC                              ,
  UNOS_KORISNIK     VARCHAR(30)                          ,
  UNOS_DATUM        DATE                                 ,
  IZMJENA_KORISNIK  VARCHAR(30)                          ,
  IZMJENA_DATUM     DATE                                 ,
  CONSTRAINT M_POS_PG_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_PG_3_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_PG_1_CK CHECK ( pdv >=  0 ),
  CONSTRAINT M_POS_PG_2_CK CHECK ( ppot >=  0 ),
  CONSTRAINT M_POS_PG_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID),
  CONSTRAINT M_POS_PG_PI_FK FOREIGN KEY (ZAV_PI_ID) REFERENCES M_POS_POREZNA_ISPORUKA (ID)
);
CREATE UNIQUE INDEX M_POS_PG_UK ON M_POS_POREZNE_GRUPE
(ID_KASE, SIFRA);
CREATE INDEX M_POS_PG_KAS_FK_I ON M_POS_POREZNE_GRUPE
(ID_KASE);
CREATE INDEX M_POS_PG_PI_FK_I ON M_POS_POREZNE_GRUPE
(ZAV_PI_ID);


CREATE TABLE M_POS_GRUPE_ARTIKALA
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  ID_PARENT         INT                              ,
  SIFRA             VARCHAR(20)                  NOT NULL,
  NAZIV             VARCHAR(40)                  NOT NULL,
  AKTIVNO           VARCHAR(1)   DEFAULT 'Y'   NOT NULL,
  VERZIJA           NUMERIC                              ,
  UNOS_KORISNIK     VARCHAR(30)                         ,
  UNOS_DATUM        DATE                                 ,
  IZMJENA_KORISNIK  VARCHAR(30)                         ,
  IZMJENA_DATUM     DATE                                 ,
  CONSTRAINT M_POS_GA_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_GA_K_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID),
  CONSTRAINT M_POS_GA_PAR_FK FOREIGN KEY (ID_PARENT) REFERENCES M_POS_GRUPE_ARTIKALA (ID),
  CONSTRAINT M_POS_GA_1_CK CHECK ( AKTIVNO in ('Y','N') )
);
CREATE UNIQUE INDEX M_POS_GA_UK ON M_POS_GRUPE_ARTIKALA
(ID_KASE, SIFRA);


CREATE TABLE M_POS_ARTIKLI
(
  ID                 INT    NOT NULL  identity primary key,
  ID_KASE            INT        NOT NULL,
  ID_GRUPA_ARTIKALA  INT                ,
  SIFRA              VARCHAR(20)                 NOT NULL,
  NAZIV              VARCHAR(40)                 NOT NULL,
  ID_POREZNE_GRUPE   INT        NOT NULL,
  IZMJENJIVA_CIJENA  VARCHAR(1)   DEFAULT 'N'  NOT NULL,
  POSTOTAK_RACUNA    VARCHAR(1)   DEFAULT 'N'  NOT NULL,
  BROJ_KALULACIJE    NUMERIC                       NOT NULL,
  GAS_ID             INT                                 ,
  VERZIJA            NUMERIC                               ,
  UNOS_KORISNIK      VARCHAR(30)                         ,
  UNOS_DATUM         DATE                                 ,
  IZMJENA_KORISNIK   VARCHAR(30)                         ,
  IZMJENA_DATUM      DATE                                 ,
  CONSTRAINT M_POS_ART_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_ART_1_CK CHECK ( IZMJENJIVA_CIJENA in ('Y','N') ),
  CONSTRAINT M_POS_ART_3_CK CHECK ( POSTOTAK_RACUNA in ('Y','N') ),
  CONSTRAINT M_POS_ART_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID),
  CONSTRAINT M_POS_ART_PG_FK FOREIGN KEY (ID_POREZNE_GRUPE) REFERENCES M_POS_POREZNE_GRUPE (ID)
);
CREATE UNIQUE INDEX M_POS_ART_UK ON M_POS_ARTIKLI
(ID_KASE, SIFRA);
CREATE INDEX M_POS_ART_KAS_FK_I ON M_POS_ARTIKLI
(ID_KASE);
CREATE INDEX M_POS_ART_PG_FK_I ON M_POS_ARTIKLI
(ID_POREZNE_GRUPE);


CREATE TABLE M_POS_CJENICI
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  SIFRA             VARCHAR(20)                 NOT NULL,
  NAZIV             VARCHAR(40)                 NOT NULL,
  GAS_ID             INT                                 ,
  AKTIVNO           VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  VERZIJA           NUMERIC                               ,
  UNOS_KORISNIK     VARCHAR(30)                         ,
  UNOS_DATUM        DATE                                 ,
  IZMJENA_KORISNIK  VARCHAR(30)                         ,
  IZMJENA_DATUM     DATE                                 ,
  CONSTRAINT M_POS_CJEN_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_CJEN_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_CJEN_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX M_POS_CJEN_UK ON M_POS_CJENICI
(ID_KASE, SIFRA);
CREATE INDEX M_POS_CJEN_KAS_FK_I ON M_POS_CJENICI
(ID_KASE);
CREATE INDEX M_POS_CJEN_1_I ON M_POS_CJENICI
(ID_KASE, AKTIVNO);


CREATE TABLE M_POS_CJENICI_KONOBARA
(
  ID                INT    NOT NULL  identity primary key,
  ID_CJENIKA        INT        NOT NULL,
  ID_KONOBARA       INT        NOT NULL,
  VERZIJA           NUMERIC                              ,
  UNOS_KORISNIK     VARCHAR(30)                        ,
  UNOS_DATUM        DATE                                ,
  IZMJENA_KORISNIK  VARCHAR(30)                        ,
  IZMJENA_DATUM     DATE                                ,
  CONSTRAINT M_POS_CJENKON_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_CJENKON_CJEN_FK FOREIGN KEY (ID_CJENIKA) REFERENCES M_POS_CJENICI (ID),
  CONSTRAINT M_POS_CJENKON_KON_FK FOREIGN KEY (ID_KONOBARA) REFERENCES M_POS_KONOBARI (ID)
);
CREATE UNIQUE INDEX M_POS_CJENKON_UK ON M_POS_CJENICI_KONOBARA
(ID_CJENIKA, ID_KONOBARA);
CREATE INDEX M_POS_CJENKON_CJEN_FK_I ON M_POS_CJENICI_KONOBARA
(ID_CJENIKA);
CREATE INDEX M_POS_CJENKON_KON_FK_I ON M_POS_CJENICI_KONOBARA
(ID_KONOBARA);

CREATE TABLE M_POS_MJESTA_TROSKA
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  SIFRA             VARCHAR(20)                 NOT NULL,
  NAZIV             VARCHAR(40)                 NOT NULL,
  ISPIS_NARUDZBE    VARCHAR(1)   DEFAULT 'N'  NOT NULL,
  GAS_ID             INT                                 ,
  AKTIVNO           VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  VERZIJA           NUMERIC                               ,
  UNOS_KORISNIK     VARCHAR(30)                         ,
  UNOS_DATUM        DATE                                 ,
  IZMJENA_KORISNIK  VARCHAR(30)                         ,
  IZMJENA_DATUM     DATE                                 ,
  CONSTRAINT M_POS_MTROS_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_MTROS_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_MTROS_2_CK CHECK ( ISPIS_NARUDZBE in ('Y', 'N') ),
  CONSTRAINT M_POS_MTROS_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX M_POS_MTROS_UK ON M_POS_MJESTA_TROSKA
(ID_KASE, SIFRA);
CREATE INDEX M_POS_MTROS_KAS_FK_I ON M_POS_MJESTA_TROSKA
(ID_KASE);

CREATE TABLE M_POS_ARTIKLI_CJENIKA
(
  ID                INT    NOT NULL  identity primary key,
  ID_CJENIKA        INT        NOT NULL,
  ID_MJESTA_TROSKA  INT        NOT NULL,
  ID_ARTIKLA        INT        NOT NULL,
  CIJENA            NUMERIC(13,2)                 NOT NULL,
  MAKSIMALAN_POPUST NUMERIC(5,2) DEFAULT 0 NOT NULL,
  OBAVEZAN_POPUST NUMERIC(5,2) DEFAULT 0 NOT NULL,
  AKTIVNO           VARCHAR(1)  DEFAULT 'Y'  NOT NULL,
  VERZIJA           NUMERIC                              ,
  UNOS_KORISNIK     VARCHAR(30)                        ,
  UNOS_DATUM        DATE                                ,
  IZMJENA_KORISNIK  VARCHAR(30)                        ,
  IZMJENA_DATUM     DATE                                ,
  CONSTRAINT M_POS_ARTCJEN_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_ARTCJEN_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_ARTCJEN_MTROS_FK FOREIGN KEY (ID_MJESTA_TROSKA) REFERENCES M_POS_MJESTA_TROSKA (ID),
  CONSTRAINT M_POS_ARTCJEN_ART_FK FOREIGN KEY (ID_ARTIKLA) REFERENCES M_POS_ARTIKLI (ID),
  CONSTRAINT M_POS_ARTCJEN_CJEN_FK FOREIGN KEY (ID_CJENIKA) REFERENCES M_POS_CJENICI (ID)
);
CREATE UNIQUE INDEX M_POS_ARTCJEN_UK ON M_POS_ARTIKLI_CJENIKA
(ID_CJENIKA, ID_ARTIKLA);
CREATE INDEX M_POS_ARTCJEN_MTROS_FK_I ON M_POS_ARTIKLI_CJENIKA
(ID_MJESTA_TROSKA);
CREATE INDEX M_POS_ARTCJEN_ART_FK_I ON M_POS_ARTIKLI_CJENIKA
(ID_ARTIKLA);
CREATE INDEX M_POS_ARTCJEN_CJEN_FK_I ON M_POS_ARTIKLI_CJENIKA
(ID_CJENIKA);
CREATE INDEX M_POS_ARTCJEN_CJEN_1_I ON M_POS_ARTIKLI_CJENIKA
(ID_CJENIKA, AKTIVNO);


CREATE TABLE M_POS_VRSTE_NAPLATE
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  SIFRA             VARCHAR(20)                 NOT NULL,
  NAZIV             VARCHAR(40)                 NOT NULL,
  IRN               NUMERIC                               ,
  OBR               VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  OBAVEZNI_PODACI   VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  BR_KOPIJA         NUMERIC(1)     DEFAULT 1    NOT NULL,
  PLUGIN_TIP        NUMERIC                       NOT NULL,
  GAS_ID             INT                                 ,
  VERZIJA           NUMERIC                               ,
  UNOS_KORISNIK     VARCHAR(30)                         ,
  UNOS_DATUM        DATE                                 ,
  IZMJENA_KORISNIK  VARCHAR(30)                         ,
  IZMJENA_DATUM     DATE                                 ,
  CONSTRAINT M_POS_VNAP_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_VNAP_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX M_POS_VNAP_UK ON M_POS_VRSTE_NAPLATE
(ID_KASE, SIFRA);
CREATE INDEX M_POS_VNAP_KAS_FK_I ON M_POS_VRSTE_NAPLATE
(ID_KASE);


CREATE TABLE M_POS_CJENICI_VN
(
  ID                INT    NOT NULL  identity primary key,
  ID_CJENIKA        INT        NOT NULL,
  ID_VRSTE_NAPLATE  INT        NOT NULL,
  AKTIVNO           VARCHAR(1)   DEFAULT 'Y'  NOT NULL,
  VERZIJA           NUMERIC                               ,
  UNOS_KORISNIK     VARCHAR(30)                         ,
  UNOS_DATUM        DATE                                 ,
  IZMJENA_KORISNIK  VARCHAR(30)                         ,
  IZMJENA_DATUM     DATE                                 ,
  CONSTRAINT M_POS_CJENVN_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_CJENVN_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_CJENVN_CJEN_FK FOREIGN KEY (ID_CJENIKA) REFERENCES M_POS_CJENICI (ID),
  CONSTRAINT M_POS_CJENVN_VNAP_FK FOREIGN KEY (ID_VRSTE_NAPLATE) REFERENCES M_POS_VRSTE_NAPLATE (ID)
);
CREATE UNIQUE INDEX M_POS_CJENVN_UK ON M_POS_CJENICI_VN
(ID_CJENIKA, ID_VRSTE_NAPLATE);
CREATE INDEX M_POS_CJENVN_CJEN_FK_I ON M_POS_CJENICI_VN
(ID_CJENIKA);
CREATE INDEX M_POS_CJENVN_VNAP_FK_I ON M_POS_CJENICI_VN
(ID_VRSTE_NAPLATE);


CREATE TABLE M_POS_GRUPE_STAVAKA
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  NAZIV             VARCHAR(40)             NOT NULL,
  VERZIJA           NUMERIC                           ,
  UNOS_KORISNIK     VARCHAR(30)                     ,
  UNOS_DATUM        DATE                             ,
  IZMJENA_KORISNIK  VARCHAR(30)                     ,
  IZMJENA_DATUM     DATE                             ,
  CONSTRAINT M_POS_GSTAV_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_GSTAV_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX M_POS_GSTAV_UK ON M_POS_GRUPE_STAVAKA
(ID_KASE, NAZIV);
CREATE INDEX M_POS_GSTAV_KAS_FK_I ON M_POS_GRUPE_STAVAKA
(ID_KASE);


CREATE TABLE T_POS_RACUNI
(
  ID                INT    NOT NULL  identity primary key,
  GODINA             NUMERIC                         NOT NULL,
  REDNI_BROJ_NARUDZBE  NUMERIC                       NOT NULL,
  REDNI_BROJ_RACUNA    NUMERIC                               ,
  ID_KASE            INT        NOT NULL,
  ID_CJENIKA         INT        NOT NULL,
  ID_KONOBARA        INT        NOT NULL,
  BROJ_ISPISA        NUMERIC                     NOT NULL,
  DATUM_I_VRIJEME    DATE                        NOT NULL,
  ID_STORNA          INT        ,
  ID_TARGET          INT        ,
  DATUM              DATE                        NOT NULL,
  STOL               NUMERIC                     NOT NULL,
  KONOBAR_PODACI     VARCHAR(100)                       ,
  DOMACA_VALUTA      VARCHAR(3)                         ,
  STRANA_VALUTA      VARCHAR(3)                         ,
  TECAJ              NUMERIC(13,10)                      ,
  BROJ_GOSTIJU       NUMERIC        DEFAULT 1  NOT NULL,
  POREZNI_DOGADJAJ_ID INT,
  VERZIJA            NUMERIC                             ,
  UNOS_KORISNIK      VARCHAR(30)                        ,
  UNOS_DATUM         DATE                                ,
  IZMJENA_KORISNIK   VARCHAR(30)                        ,
  IZMJENA_DATUM      DATE                                ,
  CONSTRAINT T_POS_RAC_PK PRIMARY KEY (ID),
  CONSTRAINT T_POS_RAC_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID),
  CONSTRAINT T_POS_RAC_KON_FK FOREIGN KEY (ID_KONOBARA) REFERENCES M_POS_KONOBARI (ID),
  CONSTRAINT T_POS_RAC_CJEN_FK FOREIGN KEY (ID_CJENIKA) REFERENCES M_POS_CJENICI (ID),
  CONSTRAINT T_POS_RAC_PD_FK FOREIGN KEY (POREZNI_DOGADJAJ_ID) REFERENCES M_POS_POREZNI_DOGADJAJ (ID)
);
CREATE UNIQUE INDEX T_POS_RAC_UK ON T_POS_RACUNI
(ID_KASE, GODINA, REDNI_BROJ_NARUDZBE);
CREATE INDEX T_POS_RAC_KAS_FK_I ON T_POS_RACUNI
(ID_KASE);
CREATE INDEX T_POS_RAC_KON_FK_I ON T_POS_RACUNI
(ID_KONOBARA);
CREATE INDEX T_POS_RAC_CJEN_FK_I ON T_POS_RACUNI
(ID_CJENIKA);
CREATE INDEX T_POS_RAC_KAS_KON_I ON T_POS_RACUNI
(ID_KASE, ID_KONOBARA);
CREATE INDEX T_POS_RAC_KAS_CJEN_I ON T_POS_RACUNI
(ID_KASE, ID_CJENIKA);
CREATE INDEX T_POS_RAC_SVI_I ON T_POS_RACUNI
(ID_KASE, GODINA);
CREATE INDEX T_POS_RAC_STOR_I ON T_POS_RACUNI
(ID_KASE, GODINA, ID_STORNA);


CREATE TABLE T_POS_NAPLATE_RACUNA
(
  ID                INT    NOT NULL  identity primary key,
  ID_RACUNA         INT        NOT NULL,
  ID_CJENICI_VN     INT        NOT NULL,
  IZNOS             NUMERIC(13,2)     NOT NULL,
  POPUST            NUMERIC(13,2)     NOT NULL,
  BROJ_GOSTIJU      NUMERIC          NOT NULL,
  NAPOMENA          VARCHAR(1000)          ,
  VERZIJA           NUMERIC                  ,
  UNOS_KORISNIK     VARCHAR(30)            ,
  UNOS_DATUM        DATE                    ,
  IZMJENA_KORISNIK  VARCHAR(30)            ,
  IZMJENA_DATUM     DATE                    ,
  CONSTRAINT T_POS_NAP_PK PRIMARY KEY (ID),
  CONSTRAINT T_POS_NAP_RAC_FK FOREIGN KEY (ID_RACUNA) REFERENCES T_POS_RACUNI (ID),
  CONSTRAINT T_POS_NAP_CJENVN_FK FOREIGN KEY (ID_CJENICI_VN) REFERENCES M_POS_CJENICI_VN (ID)
);
CREATE INDEX T_POS_NAP_RAC_CJENVN_I ON T_POS_NAPLATE_RACUNA
(ID_RACUNA, ID_CJENICI_VN);
CREATE INDEX T_POS_NAP_RAC_FK_I ON T_POS_NAPLATE_RACUNA
(ID_RACUNA);
CREATE INDEX T_POS_NAP_CJENVN_FK_I ON T_POS_NAPLATE_RACUNA
(ID_CJENICI_VN);


CREATE TABLE T_POS_DETALJI_NAPLATE
(
  ID                INT    NOT NULL  identity primary key,
  ID_NAPLATE_RACUNA  INT        NOT NULL,
  NAZIV              VARCHAR(255)  NOT NULL,
  VRIJEDNOST         VARCHAR(255)          ,
  VERZIJA            NUMERIC                 ,
  UNOS_KORISNIK      VARCHAR(30)           ,
  UNOS_DATUM         DATE                   ,
  IZMJENA_KORISNIK   VARCHAR(30)           ,
  IZMJENA_DATUM      DATE                   ,
  CONSTRAINT T_POS_DNAP_PK PRIMARY KEY (ID),
  CONSTRAINT T_POS_DNAP_NAP_FK FOREIGN KEY (ID_NAPLATE_RACUNA) REFERENCES T_POS_NAPLATE_RACUNA (ID)
);
CREATE INDEX T_POS_DNAP_NAP_NAZ_I ON T_POS_DETALJI_NAPLATE
(ID_NAPLATE_RACUNA, NAZIV);
CREATE INDEX T_POS_DNAP_NAP_FK_I ON T_POS_DETALJI_NAPLATE
(ID_NAPLATE_RACUNA);


CREATE TABLE T_POS_STAVKE
(
  ID                INT    NOT NULL  identity primary key,
  ID_RACUNA           INT        NOT NULL,
  REDNI_BROJ          NUMERIC                      NOT NULL,
  ID_ARTIKAL_CJENIKA  INT        NOT NULL,
  KOLICINA            NUMERIC(13,3)                NOT NULL,
  JEDINICNA_CIJENA    NUMERIC(13,2)                NOT NULL,
  POSLANA_NARUDZBA    VARCHAR(1)   DEFAULT 'N'  NOT NULL,
  ID_STORNA           INT        ,
  KOMENTAR            VARCHAR(200)                        ,
  SLIKOVNI_KOMENTAR   LONGVARBINARY                       ,
  NAZIV               VARCHAR(200)                        ,
  OSNOVICA_ZA_POREZ   NUMERIC(21,10)                        ,
  PDV_POSTOTAK        NUMERIC(5,4)                         ,
  PDV                 NUMERIC(21,10)                        ,
  PPOT_POSTOTAK       NUMERIC(5,4)                         ,
  PPOT                NUMERIC(21,10)                        ,
  GRUPA_STAVAKA       VARCHAR(200)                        ,
  POSTOTAK_RACUNA     NUMERIC(13,2)                        ,
  POREZNA_ISPORUKA_ID INT,
  POPUST_POSTOTAK NUMERIC(5,4),
  POPUST NUMERIC(13,2),
  JEDINICNA_CIJENA_ORIGINAL NUMERIC(13,2) DEFAULT 0 NOT NULL,
  VERZIJA             NUMERIC                              ,
  UNOS_KORISNIK       VARCHAR(30)                         ,
  UNOS_DATUM          DATE                                 ,
  IZMJENA_KORISNIK    VARCHAR(30)                         ,
  IZMJENA_DATUM       DATE                                 ,
  CONSTRAINT T_POS_STAV_PK PRIMARY KEY (ID),
  CONSTRAINT T_POS_STAV_CK CHECK ( POSLANA_NARUDZBA IN ('Y', 'N') ),
  CONSTRAINT T_POS_STAV_RAC_FK FOREIGN KEY (ID_RACUNA) REFERENCES T_POS_RACUNI (ID),
  CONSTRAINT T_POS_STAV_ARTCJEN_FK FOREIGN KEY (ID_ARTIKAL_CJENIKA) REFERENCES M_POS_ARTIKLI_CJENIKA (ID),
  CONSTRAINT T_POS_STAV_PI_FK FOREIGN KEY (POREZNA_ISPORUKA_ID) REFERENCES M_POS_POREZNA_ISPORUKA (ID)
);
CREATE UNIQUE INDEX T_POS_STAV_UK ON T_POS_STAVKE
(ID_RACUNA, REDNI_BROJ);
CREATE INDEX T_POS_STAV_RAC_FK_I ON T_POS_STAVKE
(ID_RACUNA);
CREATE INDEX T_POS_STAV_ARTCJEN_FK_I ON T_POS_STAVKE
(ID_ARTIKAL_CJENIKA);


CREATE TABLE M_POS_MENU_SLOJ
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  NAZIV             VARCHAR(20)                NOT NULL,
  SIRINA            NUMERIC                      NOT NULL,
  VISINA            NUMERIC                      NOT NULL,
  REDOSLJED         NUMERIC                      NOT NULL,
  TIP	            NUMERIC     DEFAULT 0    NOT NULL,
  BGCOLOR           NUMERIC                              ,
  FGCOLOR           NUMERIC                              ,
  VERZIJA           NUMERIC                              ,
  UNOS_KORISNIK     VARCHAR(30)                        ,
  UNOS_DATUM        DATE                                ,
  IZMJENA_KORISNIK  VARCHAR(30)                        ,
  IZMJENA_DATUM     DATE                                ,
  CONSTRAINT M_POS_MSLOJ_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_MSLOJ_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE INDEX M_POS_MSLOJ_KAS_FK_I ON M_POS_MENU_SLOJ
(ID_KASE);
CREATE INDEX M_POS_MSLOJ_KAS_1_I ON M_POS_MENU_SLOJ
(ID_KASE, TIP);


CREATE TABLE M_POS_MENU_ITEM
(
  ID                INT    NOT NULL  identity primary key,
  ID_MENU_SLOJ          INT        NOT NULL,
  POS_X                 NUMERIC                ,
  POS_Y                 NUMERIC                ,
  BGCOLOR               NUMERIC                ,
  FGCOLOR               NUMERIC                ,
  MENU_NAZIV            VARCHAR(40)   NOT NULL,
  IMAGE                 LONGVARBINARY                   ,
  VERZIJA               NUMERIC                ,
  UNOS_KORISNIK         VARCHAR(30)           ,
  UNOS_DATUM            DATE                   ,
  IZMJENA_KORISNIK      VARCHAR(30)           ,
  IZMJENA_DATUM         DATE                   ,
  CONSTRAINT M_POS_MITEM_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_MITEM_MSLOJ_FK FOREIGN KEY (ID_MENU_SLOJ) REFERENCES M_POS_MENU_SLOJ (ID)
);
CREATE INDEX M_POS_MITEM_MSLOJ_FK_I ON M_POS_MENU_ITEM
(ID_MENU_SLOJ);


CREATE TABLE M_POS_MENU_ARTIKAL
(
  ID_ITEM     INT        NOT NULL,
  ID_ARTIKLA  INT        NOT NULL,
  CONSTRAINT M_POS_MART_PK PRIMARY KEY (ID_ITEM),
  CONSTRAINT M_POS_MART_MITEM_FK FOREIGN KEY (ID_ITEM) REFERENCES M_POS_MENU_ITEM (ID),
  CONSTRAINT M_POS_MART_ART_FK FOREIGN KEY (ID_ARTIKLA) REFERENCES M_POS_ARTIKLI (ID)
);
CREATE INDEX M_POS_MART_ART_FK_I ON M_POS_MENU_ARTIKAL
(ID_ARTIKLA);


CREATE TABLE M_POS_MENU_FUNKCIJE
(
  ID_ITEM  INT        NOT NULL,
  SIFRA    VARCHAR(50)   NOT NULL,
  AKCIJA    VARCHAR(255)         ,
  CONSTRAINT M_POS_MFUNK_PK PRIMARY KEY (ID_ITEM),
  CONSTRAINT M_POS_MFUNK_MITEM_FK FOREIGN KEY (ID_ITEM) REFERENCES M_POS_MENU_ITEM (ID)
);

CREATE TABLE M_POS_KEYBOARD_ITEM
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  KEY               VARCHAR(40)  NOT NULL,
  VERZIJA           NUMERIC               ,
  UNOS_KORISNIK     VARCHAR(30)          ,
  UNOS_DATUM        DATE                  ,
  IZMJENA_KORISNIK  VARCHAR(30)          ,
  IZMJENA_DATUM     DATE                  ,
  CONSTRAINT M_POS_KITEM_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_KITEM_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE INDEX M_POS_KITEM_KAS_FK_I ON M_POS_KEYBOARD_ITEM
(ID_KASE);


CREATE TABLE M_POS_KEYBOARD_ARTIKAL
(
  ID_ITEM     INT        NOT NULL,
  ID_ARTIKLA  INT        NOT NULL,
  CONSTRAINT M_POS_KART_PK PRIMARY KEY (ID_ITEM),
  CONSTRAINT M_POS_KART_KITEM_FK FOREIGN KEY (ID_ITEM) REFERENCES M_POS_KEYBOARD_ITEM (ID),
  CONSTRAINT M_POS_KART_ART_FK FOREIGN KEY (ID_ARTIKLA) REFERENCES M_POS_ARTIKLI (ID)
);
CREATE INDEX M_POS_KART_ART_FK_I ON M_POS_KEYBOARD_ARTIKAL
(ID_ARTIKLA);


CREATE TABLE M_POS_KEYBOARD_FUNKCIJA
(
  ID_ITEM    INT        NOT NULL,
  SIFRA      VARCHAR(50)   NOT NULL,
  PARAMETAR  VARCHAR(255)          ,
  CONSTRAINT M_POS_KFUNK_PK PRIMARY KEY (ID_ITEM),
  CONSTRAINT M_POS_KFUNK_KITEM_FK FOREIGN KEY (ID_ITEM) REFERENCES M_POS_KEYBOARD_ITEM (ID)
);

CREATE TABLE T_POS_RACUNI_BROJAC
(
  ID_KASE     INT        NOT NULL,
  NEXT_VALUE  NUMERIC  NOT NULL,
  CONSTRAINT T_POS_RACBROJ_PK PRIMARY KEY (ID_KASE),
  CONSTRAINT T_POS_RACBROJ_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX T_POS_RACBROJ_UK ON T_POS_RACUNI_BROJAC
(ID_KASE, NEXT_VALUE);

CREATE TABLE T_POS_NARUDZBE_BROJAC
(
  ID_KASE     INT        NOT NULL,
  NEXT_VALUE  NUMERIC  NOT NULL,
  CONSTRAINT T_POS_NARBROJ_PK PRIMARY KEY (ID_KASE),
  CONSTRAINT T_POS_NARBROJ_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX T_POS_NARBROJ_UK ON T_POS_NARUDZBE_BROJAC
(ID_KASE, NEXT_VALUE);

CREATE TABLE T_POS_PORUKE
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  TEKST             VARCHAR(200)  NOT NULL,
  CLASS             VARCHAR(200)  NOT NULL,
  VERZIJA           NUMERIC                ,
  UNOS_KORISNIK     VARCHAR(30)           ,
  UNOS_DATUM        DATE                   ,
  IZMJENA_KORISNIK  VARCHAR(30)           ,
  IZMJENA_DATUM     DATE                   ,
  CONSTRAINT T_POS_POR_PK PRIMARY KEY (ID),
  CONSTRAINT T_POS_POR_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX T_POS_POR_UK ON T_POS_PORUKE
(ID_KASE, TEKST, CLASS);
CREATE INDEX T_POS_POR_KAS_FK_I ON T_POS_PORUKE
(ID_KASE);

CREATE TABLE M_POS_CHRON_JOB
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT                        NOT NULL,
  NAZIV             VARCHAR(200)               NOT NULL,
  VRIJEME           DATE                       NOT NULL,
  PERIOD            NUMERIC                            ,
  CONSUMES          NUMERIC                            ,
  AKTIVNO           VARCHAR(1)    DEFAULT 'Y'  NOT NULL,
  VERZIJA           NUMERIC                            ,
  UNOS_KORISNIK     VARCHAR(30)                        ,
  UNOS_DATUM        DATE                               ,
  IZMJENA_KORISNIK  VARCHAR(30)                        ,
  IZMJENA_DATUM     DATE                               ,
  CONSTRAINT M_POS_CJ_PK PRIMARY KEY (ID)              ,
  CONSTRAINT M_POS_CJ_1_CK CHECK ( AKTIVNO in ('Y','N') ),
  CONSTRAINT M_POS_CJ_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX M_POS_CJ_UK ON M_POS_CHRON_JOB
(ID_KASE, NAZIV);
CREATE INDEX M_POS_CJ_KAS_FK_I ON M_POS_CHRON_JOB
(ID_KASE);

CREATE TABLE M_POS_CHRON_OBJECT
(
  ID                INT    NOT NULL  identity primary key,
  ID_CHRON_JOB      INT        NOT NULL,
  INDEKS            NUMERIC        NOT NULL,
  SIFRA             VARCHAR(40)   NOT NULL,
  NAZIV             VARCHAR(200)  NOT NULL,
  VERZIJA           NUMERIC                ,
  UNOS_KORISNIK     VARCHAR(30)           ,
  UNOS_DATUM        DATE                   ,
  IZMJENA_KORISNIK  VARCHAR(30)           ,
  IZMJENA_DATUM     DATE                   ,
  CONSTRAINT M_POS_CO_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_CO_CJ_FK FOREIGN KEY (ID_CHRON_JOB) REFERENCES M_POS_CHRON_JOB (ID)
);
CREATE UNIQUE INDEX M_POS_CO_UK ON M_POS_CHRON_OBJECT
(ID_CHRON_JOB, INDEKS);
CREATE INDEX M_POS_CO_CJ_FK_I ON M_POS_CHRON_OBJECT
(ID_CHRON_JOB);

CREATE TABLE M_POS_VNS
(
  ID                INT    NOT NULL  identity primary key,
  ID_KASE           INT        NOT NULL,
  ID_VRSTANAPLATE   INT        NOT NULL,
  SLIKA             LONGVARBINARY           NOT NULL,
  VERZIJA           NUMERIC                ,
  UNOS_KORISNIK     VARCHAR(30)           ,
  UNOS_DATUM        DATE                   ,
  IZMJENA_KORISNIK  VARCHAR(30)           ,
  IZMJENA_DATUM     DATE                   ,
  CONSTRAINT M_POS_VNS_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_VNS_K_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID),
  CONSTRAINT M_POS_VNS_VN_FK FOREIGN KEY (ID_VRSTANAPLATE) REFERENCES M_POS_VRSTE_NAPLATE (ID)
);
CREATE UNIQUE INDEX M_POS_VNS_UK ON M_POS_VNS
(ID_KASE, ID_VRSTANAPLATE);
CREATE INDEX M_POS_VNS_K_FK_I ON M_POS_VNS
(ID_KASE);
CREATE INDEX M_POS_VNS_VN_FK_I ON M_POS_VNS
(ID_VRSTANAPLATE);

CREATE TABLE M_SO
(
  ID                INT    NOT NULL  identity primary key,
  OJ_ID             NUMERIC(8)                   NOT NULL,
  METCVOR_SIFRA     VARCHAR(20)                NOT NULL,
  KUO_ID            NUMERIC(8)                   NOT NULL,
  VUO_ID            NUMERIC(8)                   NOT NULL,
  VSOTZ_ID          NUMERIC(8)                   NOT NULL,
  OJR_ID            NUMERIC(8)                   NOT NULL,
  KNJM_ID           NUMERIC(8)                   NOT NULL,
  POS_ID            NUMERIC(8)                   NOT NULL,
  REG_ID            NUMERIC(8),
  SIFRA             VARCHAR(10)                NOT NULL,
  NAZIV             VARCHAR(40)                NOT NULL,
  IMEP_ZASTUPNIKA   VARCHAR(40)                NOT NULL,
  IMEP_DIREKTORA    VARCHAR(40)                NOT NULL,
  IMEP_SEFAREC      VARCHAR(40)                NOT NULL,
  BR_TELEFONA       VARCHAR(30),
  BR_TELEFAKSA      VARCHAR(30),
  EMAIL             VARCHAR(40),
  WWW               VARCHAR(50),
  NAZ_ULICE         VARCHAR(40)                NOT NULL,
  KOL_RESTORANA     NUMERIC(1)                   NOT NULL,
  UNOS_KORISNIK     VARCHAR(30)                NOT NULL,
  UNOS_DAT          DATE                        NOT NULL,
  IZMJENA_KORISNIK  VARCHAR(30)                NOT NULL,
  IZMJENA_DAT       DATE                        NOT NULL
);

CREATE TABLE M_POS_PARAMETAR
(
  ID               INT    NOT NULL  identity primary key,
  KEY              VARCHAR(255)  NOT NULL,
  VALUE            VARCHAR(255),
  VERZIJA          NUMERIC,
  UNOS_KORISNIK    VARCHAR(30),
  UNOS_DATUM       DATE,
  IZMJENA_KORISNIK VARCHAR(30),
  IZMJENA_DATUM    DATE,
  CONSTRAINT M_POS_PARAM_PK PRIMARY KEY (ID)
) ;
CREATE UNIQUE INDEX M_POS_PARAM_UK ON M_POS_PARAMETAR
(KEY);

CREATE TABLE M_POS_PRINT_PARAMETRI
(
  ID_KASE            INT          NOT NULL,
  RACUN_HEADER       VARCHAR(2000)          ,
  RACUN_FOOTER       VARCHAR(2000)          ,
  VERZIJA            NUMERIC                  ,
  UNOS_KORISNIK      VARCHAR(30)            ,
  UNOS_DATUM         DATE                    ,
  IZMJENA_KORISNIK   VARCHAR(30)            ,
  IZMJENA_DATUM      DATE                    ,
  CONSTRAINT M_POS_PPAR_PK PRIMARY KEY (ID_KASE),
  CONSTRAINT M_POS_PPAR_KAS_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);

CREATE TABLE M_POS_OMAN_SCANCODEAKCIJE
(
  ID                INT            NOT NULL  identity primary key,
  ID_KASE           INT            NOT NULL,
  SCANCODE          INT            NOT NULL,
  AKCIJA            VARCHAR(50)    NOT NULL,
  VERZIJA           NUMERIC                ,
  UNOS_KORISNIK     VARCHAR(30)            ,
  UNOS_DATUM        DATE                   ,
  IZMJENA_KORISNIK  VARCHAR(30)            ,
  IZMJENA_DATUM     DATE                   ,
  CONSTRAINT M_POS_OMAN_PK PRIMARY KEY (ID),
  CONSTRAINT M_POS_OMAN_K_FK FOREIGN KEY (ID_KASE) REFERENCES M_POS_KASE (ID)
);
CREATE UNIQUE INDEX M_POS_OMAN_UK ON M_POS_OMAN_SCANCODEAKCIJE
(ID_KASE, SCANCODE);
CREATE INDEX M_POS_OMAN_K_FK_I ON M_POS_OMAN_SCANCODEAKCIJE
(ID_KASE);

INSERT INTO M_POS_PARAMETAR (KEY, VALUE, VERZIJA) VALUES ('version', '2', 1);

CREATE TABLE DUAL(DUMMY VARCHAR);
INSERT INTO DUAL VALUES(1);
SET TABLE DUAL READONLY TRUE;

CREATE USER POS PASSWORD "POS" ADMIN;
ALTER USER SA SET PASSWORD "SAPASSWORD1209387465";
