VERS='5.71.14'

echo "Mise a jour de la base de donnees pour Version $VERS"

isql - - <<EOT

DATABASE gc;

UPDATE 
  gc_parsys 
SET 
  version='$VERS'
WHERE
  version<'$VERS';

CREATE TABLE gc_lgtr (
  code		SMALLINT,
  desig		CHAR(20),
  lis		SMALLINT,
  niv		SMALLINT,
  emp		SMALLINT
);

CREATE UNIQUE INDEX ux_lgtr01 ON gc_lgtr (code);

CREATE TABLE gc_lgtb (
  typlig	SMALLINT,
  dep		CHAR(1),
  zone		CHAR(1),
  rack		CHAR(2),
  typrack	SMALLINT,
  desig		CHAR(20)
);

CREATE INDEX ix_lgtb01 ON gc_lgtb (typlig, dep);

CREATE TABLE gc_lgem (
  code		CHAR(9),
  dep		CHAR(1),
  zone		CHAR(1),
  rack		CHAR(2),
  typrack	SMALLINT,
  capac		FLOAT,
  lngu		FLOAT,
  prof		FLOAT,
  haut		FLOAT,
  pdsmax	FLOAT,
  pick		SMALLINT
);

CREATE UNIQUE INDEX ux_lgem01 ON gc_lgem (code);
CREATE UNIQUE INDEX ux_lgem02 ON gc_lgem (dep, zone, rack, code);

ALTER TABLE gc_fam ADD (
  coefcess	FLOAT,
  cmptces	CHAR(8)
);

UPDATE gc_fam SET
coefcess=1 WHERE coefcess IS NULL;

ALTER TABLE gc_crtn ADD (
  poids		FLOAT,
  volume	FLOAT
);

UPDATE gc_crtn SET
poids=0, volume=0
WHERE poids IS NULL;

ALTER TABLE gc_crtn ADD (
  pdspal	FLOAT,
  lngpal	FLOAT,
  lrgpal	FLOAT,
  htpal		FLOAT
);

UPDATE gc_crtn SET
pdspal=0, lngpal=0, lrgpal=0, htpal=0
WHERE pdspal IS NULL;

ALTER TABLE gc_crtn ADD (
  lit		SMALLINT,
  nblit		SMALLINT
);

UPDATE gc_crtn SET
lit=0, nblit=0
WHERE lit IS NULL;

DROP INDEX ux_crtn01;
DROP INDEX ix_crtn02;

CREATE INDEX ix_crtn01 ON gc_crtn (bar);
CREATE INDEX ix_crtn02 ON gc_crtn (code, typ, id);

CREATE TABLE gc_lgpar (
  pdspal	FLOAT,
  lngpal	FLOAT,
  lrgpal	FLOAT,
  htpal		FLOAT,
  pdsrol	FLOAT
);

CREATE TABLE gc_lgpref (
  typ		SMALLINT,
  code		CHAR(13),
  rang		SMALLINT,
  dep		CHAR(1),
  zone		CHAR(2),
  rack		CHAR(2),
  typrack	SMALLINT,
  lis		CHAR(2),
  niv		CHAR(1)
);

CREATE UNIQUE INDEX ux_lgpref01 ON gc_lgpref (typ, code, rang);

CREATE TABLE gc_entpal (
  num		CHAR(6),
  nodosr	CHAR(7),
  epr		CHAR(9),
  dt		DATE,
  poids		FLOAT,
  volume	FLOAT
);

CREATE UNIQUE INDEX ux_entpal01 ON gc_entpal (num);
CREATE        INDEX ix_entpal02 ON gc_entpal (epr);
CREATE        INDEX ix_entpal03 ON gc_entpal (nodosr, num);

CREATE TABLE gc_ligpal (
  num		CHAR(6),
  numlig	SMALLINT,
  code		CHAR(12),
  id		CHAR(2),
  lit		SMALLINT,
  nblit		SMALLINT,
  nb		FLOAT,
  colis		FLOAT,
  qt		FLOAT,
  qtorg		FLOAT,
  qtres		FLOAT,
  pds		FLOAT,
  dlv		DATE
);

CREATE UNIQUE INDEX ux_ligpal01 ON gc_ligpal (num, numlig);
CREATE INDEX ix_ligpal02 ON gc_ligpal (code);

CREATE TABLE gc_nopalet (
  ind		INTEGER
);

ALTER TABLE gc_lgpref ADD (
  lis2		CHAR(2),
  niv2		CHAR(1)
);

UPDATE gc_lgpref SET
lis2=lis, niv2=niv
WHERE lis2 IS NULL;

ALTER TABLE gc_cml ADD (
  typecart	CHAR(2)
);

ALTER TABLE gc_archlf ADD (
  typecart	CHAR(2)
);

CREATE TABLE gc_lgmp (
  num		CHAR(6),
  epr		CHAR(9),
  dtmvt		DATE,
  codop		char(10)
);

CREATE INDEX ix_lgmp01 ON gc_lgmp (num, dtmvt);
CREATE INDEX ix_lgmp02 ON gc_lgmp (epr, dtmvt);

CREATE TABLE gc_lgcar (
  code		CHAR(2),
  nom		CHAR(25)
);

CREATE INDEX ix_lgcar01 ON gc_lgcar (code);

CREATE TABLE gc_lgeb (
  num		CHAR(6),
  dt		DATE,
  magas		SMALLINT,
  nodep		SMALLINT,
  zone		CHAR(3),
  codop		CHAR(2),
  statut	SMALLINT,
  traite	SMALLINT
);

CREATE UNIQUE INDEX ix_lgeb01 ON gc_lgeb (num);

CREATE TABLE gc_lglb (
  num		CHAR(6),
  numlig	SMALLINT,
  code		CHAR(12),
  nocmdm	CHAR(7),
  nopal		CHAR(6),
  epr		CHAR(9),
  qttheo	FLOAT,
  qt		FLOAT,
  qtrec		FLOAT,
  dlv		DATE,
  roll		CHAR(6),
  typ		SMALLINT,
  cdroll	CHAR(2)
);

CREATE UNIQUE INDEX ix_lglb01 ON gc_lglb (num, numlig);

CREATE TABLE gc_nolgeb (
  ind		INTEGER
);

CLOSE DATABASE;

EOT

chmod 666 $DBPATH/gc.dbs/*.idx
chmod 666 $DBPATH/gc.dbs/*.dat

echo "Mise a jour terminee"
