CREATE TABLE IF NOT EXISTS Cox_Tipo_Moneda_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    sigla      varchar(10)  not null,
    lenguaje   varchar(100) NOT NULL,
    nombre     varchar(100) NOT NULL,
    moneda     varchar(100) NOT NULL,
    simbolo    varchar(200) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Auxiliar_Puc_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    subcuenta  int(11)      NOT NULL,
    codigo     varchar(250) NOT NULL,
    nombre     varchar(100) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Con_Ciudad_Zyg
(
    id           int AUTO_INCREMENT PRIMARY KEY,
    pais         varchar(150) NOT NULL DEFAULT '1',
    nombre       varchar(100) NOT NULL,
    departamento varchar(60)  NOT NULL,
    codigo_dian  varchar(6)   NOT NULL,
    estado       varchar(45)           DEFAULT 'ACTIVO',
    creado       timestamp             DEFAULT CURRENT_TIMESTAMP(),
    modificado   timestamp             DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Cox_Clases_Puc_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    codigo     varchar(250) NOT NULL,
    nombre     varchar(100) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Con_Codigoarancelario_Zyg
(
    id          int AUTO_INCREMENT PRIMARY KEY,
    codigo      varchar(4)   NOT NULL,
    descripcion varchar(200) NOT NULL,
    sector      varchar(50)  NOT NULL,
    estado      varchar(45) DEFAULT 'ACTIVO',
    creado      timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado  timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Consecutivo_Zyg
(
    id                  int AUTO_INCREMENT PRIMARY KEY,
    consecutivo         int(11)      NOT NULL,
    sucursal            int(11)      NOT NULL,
    prefijo_consecutivo varchar(250) NOT NULL,
    es_manual           tinyint(1)   DEFAULT 0,
    descripcion         varchar(200) NOT NULL,
    tabla_vinculada     varchar(200) DEFAULT NULL,
    estado              varchar(45)  DEFAULT 'ACTIVO',
    creado              timestamp    DEFAULT CURRENT_TIMESTAMP(),
    modificado          timestamp    DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Con_Contribuyente_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    nombre     varchar(200) NOT NULL,
    sigla      varchar(10)  NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Cox_Cuentas_Puc_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    grupo      int(11)      NOT NULL,
    codigo     varchar(50)  NOT NULL,
    nombre     varchar(200) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Data_Factura_Zyg
(
    id             int AUTO_INCREMENT PRIMARY KEY,
    tipo_documento varchar(100) NOT NULL,
    gui_empresa    varchar(250) NOT NULL,
    gui_origen     varchar(200) NOT NULL,
    hashseguridad  varchar(250) NOT NULL,
    codigo_erp     varchar(200) NOT NULL,
    clave_tecnica  varchar(200) NOT NULL,
    sucursal       int(11)      NOT NULL,
    estado         varchar(45) DEFAULT 'ACTIVO',
    modificado     timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),
    creado         timestamp   DEFAULT CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Cox_formas_pago_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    codigo     varchar(20)  NOT NULL,
    nombre     varchar(200) NOT NULL,
    estado     varchar(45)           DEFAULT 'ACTIVO',
    creado     timestamp    NOT NULL DEFAULT current_timestamp(),
    modificado timestamp    NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Tipoidentificacion_Zyg
(
    id          int AUTO_INCREMENT PRIMARY KEY,
    nombre      varchar(200) NOT NULL,
    sigla       varchar(5)   NOT NULL,
    codigo_dian varchar(5)   NOT NULL,
    estado      varchar(20)           DEFAULT 'ACTIVO',
    creado      timestamp    NOT NULL DEFAULT current_timestamp(),
    modificado  timestamp    NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Cox_Grupos_Puc_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    clase      int(11)      NOT NULL,
    codigo     varchar(50)  NOT NULL,
    nombre     varchar(200) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Fac_Resolucion_Zyg
(
    id                 int AUTO_INCREMENT PRIMARY KEY,
    estado             varchar(45) DEFAULT 'ACTIVO',
    numero             varchar(250) NOT NULL,
    fecha_inicio       date        DEFAULT NULL,
    fecha_fin          date        DEFAULT NULL,
    prefijo_res        varchar(100) NOT NULL,
    consecutivo_inicio int(11)      NOT NULL,
    consecutivo_fin    int(11)      NOT NULL,
    tipo               varchar(45) DEFAULT 'ELECTRÓNICA',
    descripcion        text        DEFAULT NULL,
    empresa            int(11)      NOT NULL,
    creado             timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado         timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Subcuentas_Puc_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    cuentas    int(11)      NOT NULL,
    codigo     varchar(250) NOT NULL,
    nombre     varchar(100) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Tipo_Factura_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    codigo     varchar(20)  NOT NULL,
    nombre     varchar(250) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Inv_Tipo_Movimiento_Zyg
(
    id            int AUTO_INCREMENT PRIMARY KEY,
    nombre        varchar(250) NOT NULL,
    signo         char(5)      DEFAULT NULL,
    procedimiento varchar(200) DEFAULT NULL,
    descripcion   varchar(250) DEFAULT NULL,
    estado        varchar(45)  DEFAULT 'ACTIVO',
    creado        timestamp    DEFAULT CURRENT_TIMESTAMP(),
    modificado    timestamp    DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Tipo_Operacion_Zyg
(
    id          int AUTO_INCREMENT PRIMARY KEY,
    codigo      varchar(20) NOT NULL,
    descripcion varchar(250) DEFAULT NULL,
    estado      varchar(45)  DEFAULT 'ACTIVO',
    creado      timestamp    DEFAULT CURRENT_TIMESTAMP(),
    modificado  timestamp    DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Inv_Unidadmedida_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    nombre     varchar(250) NOT NULL,
    sigla      varchar(5)   NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Con_Unspsc_Zyg
(
    id         int AUTO_INCREMENT PRIMARY KEY,
    codigo     varchar(10)  NOT NULL,
    nombre     varchar(250) NOT NULL,
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Con_Persona_Zyg
(
    id                  int AUTO_INCREMENT PRIMARY KEY,
    tipo_identificacion int          NOT NULL,
    identificacion      varchar(200) NOT NULL UNIQUE,
    digito_verificacion varchar(2)            DEFAULT NULL,
    genero              varchar(45)           DEFAULT 'MASCULINO',
    tipo_persona        varchar(250) NOT NULL,
    primer_nombre       varchar(250)          DEFAULT NULL,
    segundo_nombre      varchar(250)          DEFAULT NULL,
    primer_apellido     varchar(250)          DEFAULT NULL,
    segundo_apellido    varchar(250)          DEFAULT NULL,
    nombre_completo     varchar(250)          DEFAULT NULL,
    municipio           int          NOT NULL DEFAULT 1,
    razon_social        varchar(150)          DEFAULT NULL,
    nombre_comercial    varchar(200)          DEFAULT NULL,
    direccion           varchar(250) NOT NULL,
    barrio              varchar(250)          DEFAULT NULL,
    telefono            varchar(15)           DEFAULT NULL,
    celular             varchar(15)           DEFAULT NULL,
    correo              varchar(50)  NOT NULL,
    tipo_contribuyente  int                   DEFAULT NULL,
    tipo                varchar(250) NOT NULL DEFAULT 'CLIENTE',
    comision            float(30)    NULL,
    estado              varchar(45)           DEFAULT 'ACTIVO',
    creado              timestamp             DEFAULT CURRENT_TIMESTAMP(),
    modificado          timestamp             DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),
    FOREIGN KEY (municipio) REFERENCES Con_Ciudad_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (tipo_identificacion) REFERENCES Cox_Tipoidentificacion_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (tipo_contribuyente) REFERENCES Con_Contribuyente_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;



CREATE TABLE IF NOT EXISTS Inv_Categoria_Zyg
(
    id          int(11) AUTO_INCREMENT PRIMARY KEY,
    codigo      varchar(250) NOT NULL,
    nombre      varchar(250) NOT NULL,
    descripcion varchar(250) DEFAULT NULL,
    referencia  varchar(250) NOT NULL,
    estado      varchar(20)  DEFAULT 'ACTIVO',
    creado      timestamp    DEFAULT CURRENT_TIMESTAMP(),
    modificado  timestamp    DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;



CREATE TABLE IF NOT EXISTS Inv_Producto_Zyg
(
     id            int(11)      AUTO_INCREMENT PRIMARY KEY,
     categoria     int(11)      NOT NULL,
     bodega        int(11)      NOT NULL,
     vencimiento   date                  DEFAULT NULL,
     fecha_compra  date         NOT NULL,
     nombre        varchar(250) NOT NULL,
     codigo        varchar(250) NOT NULL,
     moneda        int(11)      NOT NULL,
     subtotal      double       NOT NULL,
     iva           double                DEFAULT NULL,
     total         double                DEFAULT NULL,
     referencia    varchar(250) NOT NULL,
     unidad_medida int(11)      NOT NULL,
     descripcion   text                  DEFAULT NULL,
     cantidad      double                DEFAULT NULL,
     lote          varchar(250)          DEFAULT NULL,
     maximo        double                DEFAULT NULL,
     minimo        double                DEFAULT NULL,
     marca         varchar(250)          DEFAULT NULL,
     proveedor     int(11)        NOT NULL,
     usuario       int(11)               DEFAULT NULL,
     estado        varchar(45)           DEFAULT 'ACTIVO',
     creado      timestamp    DEFAULT CURRENT_TIMESTAMP(),
     modificado  timestamp    DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;


CREATE TABLE Inv_Movimiento_Zyg
(
    id              int(11) AUTO_INCREMENT PRIMARY KEY,
    producto        int(11)   NOT NULL,
    cantidad        float(30) NULL,
    bodega_entrada  int(11)   NULL,
    bodega_salida   int(11)   NULL,
    fecha           date      DEFAULT NULL,
    tipo_movimiento int(11)   NULL,
    observacion     text      DEFAULT NULL,
    creado          timestamp DEFAULT CURRENT_TIMESTAMP(),
    modificado      timestamp DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Fac_Compra_Zyg
(
    id             int(11) AUTO_INCREMENT PRIMARY KEY,
    codigo         varchar(250) DEFAULT NULL,
    observacion    text         DEFAULT NULL,
    emision        date         DEFAULT NULL,
    vencimiento    date         DEFAULT NULL,
    bodega_entrada int(11)      NOT NULL,
    forma_pago     varchar(200) NOT NULL,
    valor          double       NOT NULL,
    proveedor      int(11)      DEFAULT NULL,
    usuario        int(11)      DEFAULT NULL,
    estado         varchar(45)  DEFAULT 'ACTIVO',
    creado         timestamp    DEFAULT CURRENT_TIMESTAMP(),
    modificado     timestamp    DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),
    FOREIGN KEY (proveedor) REFERENCES Con_Persona_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (usuario) REFERENCES Zyg_Usuario_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Fac_Item_Compra_Zyg
(
    id         int(11) AUTO_INCREMENT PRIMARY KEY,
    compra     int(11),
    producto   int(11),
    neta       float(30),
    iva        float(30),
    total      float(30),
    estado     varchar(45) DEFAULT 'ACTIVO',
    creado     timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),
    FOREIGN KEY (compra) REFERENCES Fac_Compra_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (producto) REFERENCES Inv_Producto_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE Tes_Recibo_Caja_Zyg
(
    id             int AUTO_INCREMENT PRIMARY KEY,
    codigo         varchar(200) not null,
    factura_compra int          not null,
    fecha          date         not null,
    forma_pago     varchar(250) not null,
    valor          varchar(250) not null,
    concepto       varchar(250) not null,
    observaciones  text         null,
    moneda         int          not null,
    caja           int          null,
    usuario        int          null,
    estado         varchar(45) DEFAULT 'ACTIVO',
    creado         timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado     timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),
    FOREIGN KEY (factura_compra) REFERENCES Fac_Compra_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (moneda) REFERENCES Cox_Tipo_Moneda_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (usuario) REFERENCES Zyg_Usuario_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Inv_Ajuste_Zyg
(
    id             int(11) AUTO_INCREMENT PRIMARY KEY,
    estado         varchar(45)           DEFAULT 'ACTIVO',
    bodega_entrada int(11)      NOT NULL,
    bodega_salida int(11)      NOT NULL,
    producto       int(11)      NOT NULL,
    cantidad       int(11)      NOT NULL,
    valor          double       NOT NULL,
    observacion    text         DEFAULT NULL,
    usuario      int(11)      NOT NULL,
    creado      timestamp    DEFAULT CURRENT_TIMESTAMP(),
    modificado  timestamp    DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Inv_Bodega_Zyg
(
    id          int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    codigo      varchar(200)        NOT NULL,
    nombre      varchar(200)        NOT NULL,
    direccion   varchar(200)        NOT NULL,
    ciudad      int(11)             NOT NULL,
    responsable varchar(250)                 DEFAULT NULL,
    inventario  int(11)             NOT NULL,
    tipo_bodega set ('I','E')                DEFAULT NULL,
    estado      varchar(20)                  DEFAULT 'ACTIVO',
    creado      timestamp           NOT NULL DEFAULT current_timestamp(),
    modificado  timestamp           NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Fac_Venta_Zyg
(
    id           int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    codigo       varchar(250)                       NOT NULL,
    prefijo      varchar(250)                       NOT NULL,
    consecutivo  varchar(250)                       NOT NULL,
    resolucion   int(11)                            NULL,
    emision      date                               NULL,
    forma_pago   int(11)                            NOT NULL,
    metodo_pago  varchar(250)                       NULL,
    cliente      int(11)                            NOT NULL,
    facturador   int(11)                            NOT NULL,
    vendedor     int(11)                            NOT NULL,
    sucursal     int(11)                            NOT NULL,
    centro_costo int(11)                            NOT NULL,
    donacion     int(11)                            NOT NULL,
    estado       varchar(45)                                 DEFAULT 'ACTIVO',
    creado       timestamp                          NOT NULL DEFAULT current_timestamp(),
    modificado   timestamp                          NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    foreign key (cliente) REFERENCES Con_Persona_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    foreign key (forma_pago) REFERENCES Cox_Formas_Pago_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE Fac_Ventaz_Zyg
(
    id           int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    codigo       varchar(250)                       NOT NULL,
    fecha_inicio date                               NULL,
    fecha_fin    date                               NULL,
    total        float(30)                          NULL,
    estado       varchar(45)                                 DEFAULT 'ACTIVO',
    creado       timestamp                          NOT NULL DEFAULT current_timestamp(),
    modificado   timestamp                          NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE Fac_Item_Venta_Zyg
(
    id              int(11)    AUTO_INCREMENT PRIMARY KEY NOT NULL,
    factura         int(11) NOT NULL,
    producto        int(11) NOT NULL,
    cantidad        int(11) NOT NULL,
    neta            float(30)  NULL,
    iva             float(30)  NULL,
    descuento       float(30)  NULL,
    total           float(30)  NULL,
    valor_compra    float(30)  NULL,
    otros_impuestos float(30)  NULL,
    observaciones   text  NULL,
    estado          varchar(45)           DEFAULT 'ACTIVO',
    creado          timestamp    NOT NULL DEFAULT current_timestamp(),
    modificado      timestamp    NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    foreign key (factura) REFERENCES Fac_Venta_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    foreign key (producto) REFERENCES Inv_Producto_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Inv_Impuesto_Zyg
(
    id               int(11)     AUTO_INCREMENT PRIMARY KEY NOT NULL,
    codigo           varchar(20)  NOT NULL,
    nombre           varchar(200) NOT NULL,
    descripcion      varchar(250)          DEFAULT NULL,
    valor_fijo       float        NOT NULL,
    valor_porcentual float        NOT NULL,
    fac_electronica  tinyint(4)   NOT NULL,
    estado           varchar(45)           DEFAULT 'ACTIVO',
    creado           timestamp    NOT NULL DEFAULT current_timestamp(),
    modificado       timestamp    NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Inv_Gastos_Zyg
(
    id          int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    codigo      varchar(250)                       NOT NULL,
    fecha       date                                        DEFAULT NULL,
    observacion text                                        DEFAULT NULL,
    total       float(30)                                   DEFAULT 0,
    usuario     int(11)                                     DEFAULT NULL,
    estado      varchar(45)                                 DEFAULT 'ACTIVO',
    creado      timestamp                          NOT NULL DEFAULT current_timestamp(),
    modificado  timestamp                          NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE Inv_Item_Gastos_Zyg
(
    id         int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    gasto      int(11)                            NOT NULL,
    concepto   varchar(250)                                DEFAULT NULL,
    valor      float(30)                                   DEFAULT 0,
    estado     varchar(45)                                 DEFAULT 'ACTIVO',
    creado     timestamp                          NOT NULL DEFAULT current_timestamp(),
    modificado timestamp                          NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    foreign key (gasto) REFERENCES Inv_Gastos_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Zyg_Usuario_Zyg
(
    id            int(11)      AUTO_INCREMENT PRIMARY KEY NOT NULL,
    persona       int(11)      NOT NULL,
    perfil        int(11)               DEFAULT NULL,
    token         varchar(200)          DEFAULT NULL,
    nick          varchar(200)          DEFAULT NULL,
    pass          varchar(200) NOT NULL,
    ultimo_acceso datetime              DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    estado        varchar(20)           DEFAULT 'ACTIVO',
    creado        timestamp    NOT NULL DEFAULT current_timestamp(),
    modificado    timestamp    NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Con_Empresa_Zyg
(
    id                  int(11)      AUTO_INCREMENT PRIMARY KEY NOT NULL,
    nombre              varchar(200) NOT NULL,
    nit                 int(25)      NOT NULL,
    dv                  int(2)       NOT NULL,
    contribuyente       int(11)      NOT NULL,
    direccion           varchar(200) NOT NULL,
    barrio              varchar(150) NOT NULL,
    telefono            int(50)      NOT NULL,
    web                 varchar(100) DEFAULT NULL,
    correo              varchar(100) NOT NULL,
    representante_legal varchar(250) DEFAULT NULL,
    codigo_postal       int(11)      NOT NULL,
    estado              varchar(20)           DEFAULT 'ACTIVO',
    creado              timestamp    NOT NULL DEFAULT current_timestamp(),
    modificado          timestamp    NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Conf_Perfil_Zyg
(
    id          int(11)     AUTO_INCREMENT PRIMARY KEY NOT NULL,
    nombre      varchar(50) NOT NULL,
    descripcion varchar(50) NOT NULL,
    estado      varchar(45)          DEFAULT 'ACTIVO',
    creado      timestamp   NOT NULL DEFAULT current_timestamp(),
    modificado  timestamp   NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Fac_Orden_Mantenimiento_Zyg
(
    id               int(11)              AUTO_INCREMENT PRIMARY KEY NOT NULL,
    codigo           varchar(250)         DEFAULT NULL,
    nombre_completo  varchar(250)         DEFAULT NULL,
    numero_documento double               DEFAULT NULL,
    telefono         double               DEFAULT NULL,
    tipo             varchar(250)         DEFAULT NULL,
    motivo           text                 DEFAULT NULL,
    marca            varchar(250)         DEFAULT NULL,
    modelo           varchar(250)         DEFAULT NULL,
    imei             text                 DEFAULT NULL,
    valor_orden      varchar(30) NOT NULL,
    justificacion    text                 DEFAULT NULL,
    usuario          int(11)              DEFAULT NULL,
    estado           varchar(45)          DEFAULT 'ACTIVO',
    creado           timestamp   NOT NULL DEFAULT current_timestamp(),
    modificado       timestamp   NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Fac_Maquinaria_Zyg
(
    id                              int(11)              AUTO_INCREMENT PRIMARY KEY NOT NULL,
    nombre_maquina                  varchar(250)         NOT NULL,
    modelo                          varchar(250)         NOT NULL,
    serie                           varchar(250)         NOT NULL,
    fabricante                      char(250)            NOT NULL,
    origen                          char(11)             NOT NULL,
    fecha_adquisicion               date                 NOT NULL,
    proveedor                       int                  NOT NULL,
    direccion_proveedor             varchar(15)          NOT NULL,
    indicaciones_fabricante         text(500)            NOT NULL,
    mantenimiento_fabricante        text(500)            DEFAULT NULL,
    fecha_compra                    date                 DEFAULT NULL,
    fecha_fin_garantia              date                 DEFAULT NULL,
    estado                          varchar(45)          DEFAULT 'ACTIVO',
    creado           timestamp   NOT NULL DEFAULT current_timestamp(),
    modificado       timestamp   NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    foreign key (proveedor) REFERENCES Con_Persona_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Fac_Maquinaria_Zyg
(
    id                              int(11)              AUTO_INCREMENT PRIMARY KEY NOT NULL,
    nombre_maquina                  varchar(250)         NOT NULL,
    modelo                          varchar(250)         NOT NULL,
    serie                           varchar(250)         NOT NULL,
    fabricante                      char(250)            NOT NULL,
    origen                          char(11)             NOT NULL,
    fecha_adquisicion               date                 NOT NULL,
    proveedor                       int                  NOT NULL,
    direccion_proveedor             varchar(15)          NOT NULL,
    indicaciones_fabricante         text(500)            NOT NULL,
    mantenimiento_fabricante        text(500)            DEFAULT NULL,
    fecha_compra                    date                 DEFAULT NULL,
    fecha_fin_garantia              date                 DEFAULT NULL,
    estado                          varchar(45)          DEFAULT 'ACTIVO',
    creado           timestamp   NOT NULL DEFAULT current_timestamp(),
    modificado       timestamp   NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    foreign key (proveedor) REFERENCES Con_Persona_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Maq_AnexoMaquina_Zyg
(
    id          int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
    nombre      varchar(250)                       NOT NULL,
    tipo        varchar(250)                       NOT NULL,
    extension   varchar(5)                         NOT NULL,
    tamano      varchar(40)                        NOT NULL,
    url         varchar(250)                       NOT NULL,
    maquinaria  int(11)                            NOT NULL,
    observacion text                               NOT NULL,
    estado      varchar(45)                                 DEFAULT 'ACTIVO',
    creado      timestamp                          NOT NULL DEFAULT current_timestamp(),
    modificado  timestamp                          NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    foreign key (maquinaria) REFERENCES Fac_Maquinaria_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;


CREATE TABLE IF NOT EXISTS Maq_Mantenimiento_Maquinaria_Zyg
(
    id                              int(11)             AUTO_INCREMENT PRIMARY KEY NOT NULL,
    tipo_mantenimiento             varchar(250)         NOT NULL,
    maquina                        int                  NOT NULL,
    costo                          double               NOT NULL,
    diagnostico                    text(300)            NOT NULL,
    fecha_inicio                   date                 NOT NULL,
    fecha_fin                      date                 NOT NULL,
    estado                         varchar(45)         DEFAULT 'ACTIVO',
    creado           timestamp   NOT NULL DEFAULT current_timestamp(),
    modificado       timestamp   NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
    foreign key (maquina) REFERENCES Fac_Maquinaria_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB DEFAULT CHARSET = utf8;

CREATE TABLE Tes_Recibo_Cobro_Zyg
(
    id            int AUTO_INCREMENT PRIMARY KEY,
    codigo        varchar(200) not null,
    factura        int          not null,
    fecha         date         not null,
    forma_pago    varchar(250) not null,
    valor         varchar(250) not null,
    concepto      varchar(250) not null,
    observaciones text         null,
    moneda        int          not null,
    caja          int          null,
    estado        varchar(45) DEFAULT 'ACTIVO',
    creado        timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado    timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),
    FOREIGN KEY (factura) REFERENCES Fac_Venta_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE,
    FOREIGN KEY (moneda) REFERENCES Cox_Tipo_Moneda_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Perfil_Zyg
(
    id          int AUTO_INCREMENT PRIMARY KEY,
    nombre      varchar(250) NOT NULL,
    descripcion varchar(250) NOT NULL,
    estado      varchar(20) DEFAULT 'ACTIVO',
    creado      timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado  timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP()
    ) ENGINE = InnoDB
    DEFAULT CHARSET = utf8;

CREATE TABLE IF NOT EXISTS Cox_Rol_Zyg
(
    id          int AUTO_INCREMENT PRIMARY KEY,
    padre       int(50)     NOT NULL,
    nombre      varchar(50) NOT NULL,
    descripcion varchar(250) NOT NULL,
    perfil      int         NOT NULL,
    modulos     varchar(50) NOT NULL,
    estado      varchar(45) DEFAULT 'ACTIVO',
    creado      timestamp   DEFAULT CURRENT_TIMESTAMP(),
    modificado  timestamp   DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),
    FOREIGN KEY (perfil) REFERENCES Cox_Perfil_Zyg (id) ON DELETE CASCADE ON UPDATE CASCADE
    ) ENGINE = InnoDB
    DEFAULT CHARSET = utf8;

INSERT INTO `Cox_Rol_Zyg` (`id`, `padre`, `nombre`, `descripcion`, `perfil`, `modulos`, `estado`, `creado`, `modificado`) VALUES
   (1, 1, 'TERCEROS', 'MANEJO DE TODOS LOS USUARIOS [MODULO]', 1, '.personas', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:37:07'),
   (2, 2, 'PERSONAS', 'MANEJO DE LAS PERSONAS [SUBMODULO]', 1, '.personas1', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:38:06'),
   (3, 3, 'COLABORADOR', 'MANEJO DE LOS COLABORADOR [SUBMODULO]', 1, '.personas2', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:38:47'),

   (4, 4, 'INVENTARIO', 'MANEJO DEL INVENTARIO [MODULO]', 1, '.inventario', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:38:47'),
   (5, 5, 'CATEGORIAS', 'MANEJO DE LAS CATEGORIAS [SUB - MODULO]', 1, '.inventario1', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:38:47'),
   (6, 6, 'PRODUCTOS', 'MANEJO DE LOS PRODUCTOS [SUB - MODULO]', 1, '.inventario2', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:38:47'),
   (7, 7, 'AJUSTES', 'MANEJO DE LOS AJUSTES [SUB - MODULO]', 1, '.inventario3', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:38:47'),

   (8, 8, 'COMPRAS', 'MANEJO DE LAS COMPRAS [MODULO]', 1, '.compras', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:38:47'),
   (9, 9, 'COMPRAS', 'CREACIÓN DE LAS COMPRAS [SUBMODULO]', 1, '.compras1', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:44:24'),
   (10, 10, 'CUENTAS POR PAGAR', 'MANEJO DE LAS CUENTAS POR PAGAR [SUBMODULO]', 1, '.compras2', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:44:24'),

   (11, 11, 'FACTURACIÓN', 'MANEJO DE LA FACTURACIÓN [MODULO]', 1, '.facturacion', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),
   (12, 12, 'VENTAS', 'REALIZACIÓN DE LAS VENTAS [SUBMODULO]', 1, '.facturacion1', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),
   (13, 13, 'CUENTAS POR COBRAR', 'MANEJO DE FACTURAS PENDIENTES POR COBRO [SUBMODULO]', 1, '.facturacion2', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),

   (14, 14, 'GASTOS', 'MANEJO DE LOS GASTOS [MODULO]', 1, '.gastos', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),
   (15, 15, 'GASTOS', 'REGISTRO DE LOS GASTOS [SUBMODULO]', 1, '.gastos1', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),

   (16, 16, 'CONFIGURACIÓN', 'MANEJO DE LAS CONFIGURACIONES [MODULO]', 1, '.configuracion', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),
   (17, 17, 'PERFILES', 'MANEJO DE LOS PERMISOS [SUB - MODULO]', 1, '.configuracion1', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),

   (18, 18, 'INFORMES', 'MANEJO DE LOS INFORMES [MODULO]', 1, '.informes', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),
   (19, 19, 'BALANCE MENSUAL', 'INFORME DE BALANCE MENSUAL [SUBMODULO]', 1, '.informes1', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 04:47:58'),
   (20, 20, 'FACTURACIÓN', 'INFORME DE FACTURACIÓN [SUBMODULO]', 1, '.informes2', 'PRINCIPAL', '2023-02-24 06:42:55', '2023-02-27 05:00:52'),
   (21, 21, 'PRODUCTOS VENDIDOS', 'INFORME DE PRODUCTOS VENDIDOS [SUBMODULO]', 1, '.informes3', 'PRINCIPAL', '2023-02-30 18:53:40', '2023-02-30 18:53:40'),
   (22, 22, 'UTILIDAD', 'INFORME DE UTILIDAD [SUBMODULO]', 1, '.informes4', 'PRINCIPAL', '2023-02-30 18:53:40', '2023-02-30 18:53:40');











