-- Script generated by WinDev on 16/10/2019 07:56:51
-- Tables of Circle_K.wda analysis
-- for MySQL

-- Creating the N_Conceptos table
CREATE TABLE `N_Conceptos` (
    `N_ConceptosID` VARCHAR(50)  NOT NULL  PRIMARY KEY  DEFAULT '0',
    `EmpresasID` VARCHAR(50) ,
    `Clave` VARCHAR(50) DEFAULT '0',
    `CATSAT_TipoPercepcionID` VARCHAR(50) ,
    `CATSAT_TipoDeduccionID` VARCHAR(50) ,
    `CATSAT_TipoOtroPagoID` VARCHAR(50) ,
    `CATSAT_TipoHorasID` VARCHAR(50) ,
    `Tipo` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `BD` TINYINT DEFAULT 0,
    `Descripcion` VARCHAR(200) ,
    `Descripcion_Corta` VARCHAR(100) ,
    `Formula` LONGTEXT ,
    `Condicion` VARCHAR(300) ,
    `ISPT` VARCHAR(300) ,
    `IMSS` VARCHAR(300) ,
    `Excento_ISPT` TINYINT DEFAULT 0,
    `Excento_IMSS` TINYINT DEFAULT 0,
    `ImporteGravado` TINYINT DEFAULT 0,
    `ImporteExcento` TINYINT DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Conceptos_EmpresasID` ON `N_Conceptos` (`EmpresasID`);
CREATE INDEX `WDIDX_N_Conceptos_Clave` ON `N_Conceptos` (`Clave`);
CREATE INDEX `WDIDX_N_Conceptos_CATSAT_TipoPercepcionID` ON `N_Conceptos` (`CATSAT_TipoPercepcionID`);
CREATE INDEX `WDIDX_N_Conceptos_CATSAT_TipoDeduccionID` ON `N_Conceptos` (`CATSAT_TipoDeduccionID`);
CREATE INDEX `WDIDX_N_Conceptos_CATSAT_TipoOtroPagoID` ON `N_Conceptos` (`CATSAT_TipoOtroPagoID`);
CREATE INDEX `WDIDX_N_Conceptos_CATSAT_TipoHorasID` ON `N_Conceptos` (`CATSAT_TipoHorasID`);
CREATE INDEX `WDIDX_N_Conceptos_Tipo` ON `N_Conceptos` (`Tipo`);
CREATE INDEX `WDIDX_N_Conceptos_Activo` ON `N_Conceptos` (`Activo`);
CREATE INDEX `WDIDX_N_Conceptos_BD` ON `N_Conceptos` (`BD`);

-- Creating the N_Conceptos_Nomina table
CREATE TABLE `N_Conceptos_Nomina` (
    `N_Conceptos_NominaID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `N_ConceptosID` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Conceptos_Nomina_N_ConceptosID` ON `N_Conceptos_Nomina` (`N_ConceptosID`);
CREATE INDEX `WDIDX_N_Conceptos_Nomina_Activo` ON `N_Conceptos_Nomina` (`Activo`);

-- Creating the N_Conceptos_Resguardos table
CREATE TABLE `N_Conceptos_Resguardos` (
    `N_Conceptos_ResguardosID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `EmpresasID` VARCHAR(50) ,
    `N_PeriodosID` VARCHAR(50) ,
    `N_ConceptosID` VARCHAR(50) ,
    `Tipo` VARCHAR(70) ,
    `BD` TINYINT DEFAULT 0,
    `Descripcion` VARCHAR(200) ,
    `Formula` LONGTEXT ,
    `Condicion` VARCHAR(300) ,
    `ISPT` VARCHAR(300) ,
    `IMSS` VARCHAR(300) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Conceptos_Resguardos_EmpresasID` ON `N_Conceptos_Resguardos` (`EmpresasID`);
CREATE INDEX `WDIDX_N_Conceptos_Resguardos_N_PeriodosID` ON `N_Conceptos_Resguardos` (`N_PeriodosID`);
CREATE INDEX `WDIDX_N_Conceptos_Resguardos_N_ConceptosID` ON `N_Conceptos_Resguardos` (`N_ConceptosID`);
CREATE INDEX `WDIDX_N_Conceptos_Resguardos_Tipo` ON `N_Conceptos_Resguardos` (`Tipo`);
CREATE INDEX `WDIDX_N_Conceptos_Resguardos_BD` ON `N_Conceptos_Resguardos` (`BD`);

-- Creating the N_ConsecutivoNomina table
CREATE TABLE `N_ConsecutivoNomina` (
    `N_ConsecutivoNominaID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `EmpresasID` VARCHAR(50) ,
    `TipoConcecutivo` VARCHAR(50) ,
    `Valor` VARCHAR(50) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_ConsecutivoNomina_EmpresasID` ON `N_ConsecutivoNomina` (`EmpresasID`);
CREATE INDEX `WDIDX_N_ConsecutivoNomina_TipoConcecutivo` ON `N_ConsecutivoNomina` (`TipoConcecutivo`);
CREATE INDEX `WDIDX_N_ConsecutivoNomina_TipoConcecutivoEmpresasID` ON `N_ConsecutivoNomina` (`TipoConcecutivo`,`EmpresasID`);

-- Creating the N_Correos_Por_Enviar table
CREATE TABLE `N_Correos_Por_Enviar` (
    `N_Correos_Por_EnviarID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `Titulo` VARCHAR(200) ,
    `CorreoPrincipal` VARCHAR(200) ,
    `ConCopia` VARCHAR(500) ,
    `NombrePDF` VARCHAR(50) ,
    `ArchivoPDF` LONGBLOB ,
    `NombreXML` VARCHAR(50) DEFAULT '0',
    `ArchivoXML` LONGBLOB ,
    `InternalVersion` INTEGER DEFAULT 0);

-- Creating the N_DiasVacaciones table
CREATE TABLE `N_DiasVacaciones` (
    `N_DiasVacacionesID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `Anio` INTEGER DEFAULT 0,
    `DiasVacaciones` INTEGER DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_DiasVacaciones_Anio` ON `N_DiasVacaciones` (`Anio`);

-- Creating the N_Empleados_Complemento table
CREATE TABLE `N_Empleados_Complemento` (
    `N_Empleados_ComplementoID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `EmpleadosID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `CATSAT_BancoID` VARCHAR(50) ,
    `CATSAT_TipoContratoID` VARCHAR(50) ,
    `CATSAT_TipoJornadaID` VARCHAR(50) ,
    `CATSAT_TipoRegimenID` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Departamento` VARCHAR(100) ,
    `Salario` NUMERIC(24,6) DEFAULT 0,
    `SalarioInt` NUMERIC(24,6) DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Empleados_Complemento_EmpleadosID` ON `N_Empleados_Complemento` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Empleados_Complemento_RegistrosPatronalesID` ON `N_Empleados_Complemento` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Empleados_Complemento_CATSAT_BancoID` ON `N_Empleados_Complemento` (`CATSAT_BancoID`);
CREATE INDEX `WDIDX_N_Empleados_Complemento_CATSAT_TipoContratoID` ON `N_Empleados_Complemento` (`CATSAT_TipoContratoID`);
CREATE INDEX `WDIDX_N_Empleados_Complemento_CATSAT_TipoJornadaID` ON `N_Empleados_Complemento` (`CATSAT_TipoJornadaID`);
CREATE INDEX `WDIDX_N_Empleados_Complemento_CATSAT_TipoRegimenID` ON `N_Empleados_Complemento` (`CATSAT_TipoRegimenID`);
CREATE INDEX `WDIDX_N_Empleados_Complemento_Activo` ON `N_Empleados_Complemento` (`Activo`);

-- Creating the N_ErroresNomina table
CREATE TABLE `N_ErroresNomina` (
    `N_ErroresNominaID` VARCHAR(50) DEFAULT '0',
    `N_NominaID` VARCHAR(50) ,
    `EmpleadosID` VARCHAR(50) ,
    `N_PeriodosID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `Tipo` VARCHAR(70) ,
    `UsuariosID` VARCHAR(50) ,
    `Fecha` DATETIME Default Null ,
    `codigoError` VARCHAR(50) ,
    `Descripcion` VARCHAR(250) ,
    `DescripcionInterna` LONGTEXT ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_ErroresNomina_N_ErroresNominaID` ON `N_ErroresNomina` (`N_ErroresNominaID`);
CREATE INDEX `WDIDX_N_ErroresNomina_N_NominaID` ON `N_ErroresNomina` (`N_NominaID`);
CREATE INDEX `WDIDX_N_ErroresNomina_EmpleadosID` ON `N_ErroresNomina` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_ErroresNomina_N_PeriodosID` ON `N_ErroresNomina` (`N_PeriodosID`);
CREATE INDEX `WDIDX_N_ErroresNomina_RegistrosPatronalesID` ON `N_ErroresNomina` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_ErroresNomina_Tipo` ON `N_ErroresNomina` (`Tipo`);
CREATE INDEX `WDIDX_N_ErroresNomina_UsuariosID` ON `N_ErroresNomina` (`UsuariosID`);
CREATE INDEX `WDIDX_N_ErroresNomina_Fecha` ON `N_ErroresNomina` (`Fecha`);
CREATE INDEX `WDIDX_N_ErroresNomina_codigoError` ON `N_ErroresNomina` (`codigoError`);

-- Creating the N_FoliosFacturas table
CREATE TABLE `N_FoliosFacturas` (
    `N_FoliosFacturasID` VARCHAR(50)  NOT NULL  PRIMARY KEY  DEFAULT '0',
    `EmpresasID` VARCHAR(50) ,
    `Estatus_FoliosFacturasID` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Vigencia` DATE ,
    `LlaveEmisor` VARCHAR(50) ,
    `ClaveEmisor` VARCHAR(50) ,
    `NumCertificado` VARCHAR(20) ,
    `SerieCertificado` VARCHAR(50) ,
    `FolioInicio` INTEGER DEFAULT 0,
    `FolioMaximo` INTEGER DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `Memo5` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_FoliosFacturas_EmpresasID` ON `N_FoliosFacturas` (`EmpresasID`);
CREATE INDEX `WDIDX_N_FoliosFacturas_Estatus_FoliosFacturasID` ON `N_FoliosFacturas` (`Estatus_FoliosFacturasID`);
CREATE INDEX `WDIDX_N_FoliosFacturas_Activo` ON `N_FoliosFacturas` (`Activo`);
CREATE INDEX `WDIDX_N_FoliosFacturas_Vigencia` ON `N_FoliosFacturas` (`Vigencia`);
CREATE INDEX `WDIDX_N_FoliosFacturas_LlaveEmisor` ON `N_FoliosFacturas` (`LlaveEmisor`);

-- Creating the N_Inasistencias table
CREATE TABLE `N_Inasistencias` (
    `N_InasistenciasID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `EmpresasID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `EmpleadosID` VARCHAR(50) ,
    `N_PeriodosID` VARCHAR(50) ,
    `FechaInasistencia` DATE ,
    `Justificada` TINYINT DEFAULT 0,
    `Activo` TINYINT DEFAULT 0,
    `UsuariosID` VARCHAR(50) ,
    `Comentario` VARCHAR(50) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0,
    `GoceSueldo` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Inasistencias_EmpresasID` ON `N_Inasistencias` (`EmpresasID`);
CREATE INDEX `WDIDX_N_Inasistencias_RegistrosPatronalesID` ON `N_Inasistencias` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Inasistencias_EmpleadosID` ON `N_Inasistencias` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Inasistencias_N_PeriodosID` ON `N_Inasistencias` (`N_PeriodosID`);
CREATE INDEX `WDIDX_N_Inasistencias_FechaInasistencia` ON `N_Inasistencias` (`FechaInasistencia`);
CREATE INDEX `WDIDX_N_Inasistencias_Justificada` ON `N_Inasistencias` (`Justificada`);
CREATE INDEX `WDIDX_N_Inasistencias_Activo` ON `N_Inasistencias` (`Activo`);
CREATE INDEX `WDIDX_N_Inasistencias_UsuariosID` ON `N_Inasistencias` (`UsuariosID`);

-- Creating the N_Incapacidad table
CREATE TABLE `N_Incapacidad` (
    `N_IncapacidadID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `EmpresasID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `EmpleadosID` VARCHAR(50) ,
    `FechaInicio` DATE ,
    `FechaFinal` DATE ,
    `Folio` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `UsuarioID` VARCHAR(50) ,
    `Estatus` VARCHAR(50) ,
    `NumeroDias` INTEGER DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `Memo5` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Incapacidad_EmpresasID` ON `N_Incapacidad` (`EmpresasID`);
CREATE INDEX `WDIDX_N_Incapacidad_RegistrosPatronalesID` ON `N_Incapacidad` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Incapacidad_EmpleadosID` ON `N_Incapacidad` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Incapacidad_FechaInicio` ON `N_Incapacidad` (`FechaInicio`);
CREATE INDEX `WDIDX_N_Incapacidad_FechaFinal` ON `N_Incapacidad` (`FechaFinal`);
CREATE INDEX `WDIDX_N_Incapacidad_Folio` ON `N_Incapacidad` (`Folio`);
CREATE INDEX `WDIDX_N_Incapacidad_Activo` ON `N_Incapacidad` (`Activo`);
CREATE INDEX `WDIDX_N_Incapacidad_UsuarioID` ON `N_Incapacidad` (`UsuarioID`);
CREATE INDEX `WDIDX_N_Incapacidad_Estatus` ON `N_Incapacidad` (`Estatus`);

-- Creating the N_LogNomina table
CREATE TABLE `N_LogNomina` (
    `N_LogNominaID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `Fecha` DATETIME Default Null ,
    `Archivo` VARCHAR(50) ,
    `ArchivoID` VARCHAR(50) ,
    `TipoLog` VARCHAR(50) ,
    `UsuariosID` VARCHAR(50) ,
    `Descripcion` LONGTEXT ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_LogNomina_Fecha` ON `N_LogNomina` (`Fecha`);
CREATE INDEX `WDIDX_N_LogNomina_Archivo` ON `N_LogNomina` (`Archivo`);
CREATE INDEX `WDIDX_N_LogNomina_ArchivoID` ON `N_LogNomina` (`ArchivoID`);
CREATE INDEX `WDIDX_N_LogNomina_TipoLog` ON `N_LogNomina` (`TipoLog`);
CREATE INDEX `WDIDX_N_LogNomina_UsuariosID` ON `N_LogNomina` (`UsuariosID`);

-- Creating the N_Movimientos_IMSS table
CREATE TABLE `N_Movimientos_IMSS` (
    `N_Movimientos_IMSSID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `EmpleadosID` VARCHAR(50) ,
    `EmpresasID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `TipoMovimiento` VARCHAR(50) ,
    `FechaMovimiento` DATETIME Default Null ,
    `FechaRec` DATETIME Default Null ,
    `UsuariosID` VARCHAR(50) ,
    `Salario` NUMERIC(24,6) DEFAULT 0,
    `SalarioInt` NUMERIC(24,6) DEFAULT 0,
    `Comentario` VARCHAR(50) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `Memo5` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Movimientos_IMSS_EmpleadosID` ON `N_Movimientos_IMSS` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Movimientos_IMSS_EmpresasID` ON `N_Movimientos_IMSS` (`EmpresasID`);
CREATE INDEX `WDIDX_N_Movimientos_IMSS_RegistrosPatronalesID` ON `N_Movimientos_IMSS` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Movimientos_IMSS_TipoMovimiento` ON `N_Movimientos_IMSS` (`TipoMovimiento`);
CREATE INDEX `WDIDX_N_Movimientos_IMSS_FechaMovimiento` ON `N_Movimientos_IMSS` (`FechaMovimiento`);
CREATE INDEX `WDIDX_N_Movimientos_IMSS_FechaRec` ON `N_Movimientos_IMSS` (`FechaRec`);
CREATE INDEX `WDIDX_N_Movimientos_IMSS_UsuariosID` ON `N_Movimientos_IMSS` (`UsuariosID`);

-- Creating the N_Movimientos_Programados table
CREATE TABLE `N_Movimientos_Programados` (
    `N_Movimientos_ProgramadosID` VARCHAR(50)  NOT NULL  PRIMARY KEY  DEFAULT '0',
    `EmpleadosID` VARCHAR(50) ,
    `N_ConceptosID` VARCHAR(50) ,
    `Tipo_Movimiento` VARCHAR(50) ,
    `UsuariosID` VARCHAR(50) ,
    `FechaCreacion` DATETIME Default Null ,
    `FechaModificacion` DATETIME Default Null ,
    `UsuarioModifico` VARCHAR(50) ,
    `Cantidad` NUMERIC(24,6) DEFAULT 0,
    `CantidadAcumulada` NUMERIC(24,6) DEFAULT 0,
    `ImporteLimite` NUMERIC(24,6) DEFAULT 0,
    `FechaInicio` DATETIME Default Null ,
    `FechaFinal` DATETIME Default Null ,
    `Estatus` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Movimientos_Programados_EmpleadosID` ON `N_Movimientos_Programados` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_N_ConceptosID` ON `N_Movimientos_Programados` (`N_ConceptosID`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_Tipo_Movimiento` ON `N_Movimientos_Programados` (`Tipo_Movimiento`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_UsuariosID` ON `N_Movimientos_Programados` (`UsuariosID`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_FechaCreacion` ON `N_Movimientos_Programados` (`FechaCreacion`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_FechaInicio` ON `N_Movimientos_Programados` (`FechaInicio`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_FechaFinal` ON `N_Movimientos_Programados` (`FechaFinal`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_Estatus` ON `N_Movimientos_Programados` (`Estatus`);
CREATE INDEX `WDIDX_N_Movimientos_Programados_Activo` ON `N_Movimientos_Programados` (`Activo`);

-- Creating the N_Nomina table
CREATE TABLE `N_Nomina` (
    `N_NominaID` VARCHAR(50)  NOT NULL  PRIMARY KEY  DEFAULT '0',
    `UsuariosID` VARCHAR(50) ,
    `EmpleadosID` VARCHAR(50) ,
    `N_PeriodosID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `N_FoliosFacturasID` VARCHAR(50) ,
    `Estatus` VARCHAR(50) ,
    `Fecha` DATETIME Default Null ,
    `HorasTrabajadas` INTEGER DEFAULT 0,
    `HorasDobles` INTEGER DEFAULT 0,
    `HorasTriples` INTEGER DEFAULT 0,
    `SalarioDiario` NUMERIC(24,6) DEFAULT 0,
    `SalarioInt` NUMERIC(24,6) DEFAULT 0,
    `TotalPercepcion` NUMERIC(24,6) DEFAULT 0,
    `TotalDeduccion` NUMERIC(24,6) DEFAULT 0,
    `TotalOtroPago` NUMERIC(24,6) DEFAULT 0,
    `TotalPagado` NUMERIC(24,6) DEFAULT 0,
    `Folio` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `Memo5` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Nomina_UsuariosID` ON `N_Nomina` (`UsuariosID`);
CREATE INDEX `WDIDX_N_Nomina_EmpleadosID` ON `N_Nomina` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Nomina_N_PeriodosID` ON `N_Nomina` (`N_PeriodosID`);
CREATE INDEX `WDIDX_N_Nomina_RegistrosPatronalesID` ON `N_Nomina` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Nomina_N_FoliosFacturasID` ON `N_Nomina` (`N_FoliosFacturasID`);
CREATE INDEX `WDIDX_N_Nomina_Estatus` ON `N_Nomina` (`Estatus`);
CREATE INDEX `WDIDX_N_Nomina_Fecha` ON `N_Nomina` (`Fecha`);
CREATE INDEX `WDIDX_N_Nomina_Folio` ON `N_Nomina` (`Folio`);
CREATE INDEX `WDIDX_N_Nomina_Activo` ON `N_Nomina` (`Activo`);

-- Creating the N_Nomina_Detallado table
CREATE TABLE `N_Nomina_Detallado` (
    `N_Nomina_DetalladoID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `N_Movimientos_ProgramadosID` VARCHAR(50) ,
    `N_NominaID` VARCHAR(50) ,
    `N_ConceptosID` VARCHAR(50) ,
    `CATSAT_TipoPercepcionID` VARCHAR(50) ,
    `CATSAT_TipoDeduccionID` VARCHAR(50) ,
    `CATSAT_TipoOtroPagoID` VARCHAR(50) ,
    `CATSAT_TipoHorasID` VARCHAR(50) ,
    `Tipo` VARCHAR(50) ,
    `HorasExtras_Dias` INTEGER DEFAULT 0,
    `HorasExtras` NUMERIC(24,6) DEFAULT 0,
    `Percepcion` NUMERIC(24,6) DEFAULT 0,
    `Deduccion` NUMERIC(24,6) DEFAULT 0,
    `ImporteGravado` NUMERIC(24,6) DEFAULT 0,
    `ImporteExcento` NUMERIC(24,6) DEFAULT 0,
    `ImporteOtroPago` NUMERIC(24,6) DEFAULT 0,
    `Manual` TINYINT DEFAULT 0,
    `Activo` TINYINT DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Nomina_Detallado_N_Movimientos_ProgramadosID` ON `N_Nomina_Detallado` (`N_Movimientos_ProgramadosID`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_N_NominaID` ON `N_Nomina_Detallado` (`N_NominaID`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_N_ConceptosID` ON `N_Nomina_Detallado` (`N_ConceptosID`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_CATSAT_TipoPercepcionID` ON `N_Nomina_Detallado` (`CATSAT_TipoPercepcionID`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_CATSAT_TipoDeduccionID` ON `N_Nomina_Detallado` (`CATSAT_TipoDeduccionID`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_CATSAT_TipoOtroPagoID` ON `N_Nomina_Detallado` (`CATSAT_TipoOtroPagoID`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_CATSAT_TipoHorasID` ON `N_Nomina_Detallado` (`CATSAT_TipoHorasID`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_Tipo` ON `N_Nomina_Detallado` (`Tipo`);
CREATE INDEX `WDIDX_N_Nomina_Detallado_Activo` ON `N_Nomina_Detallado` (`Activo`);

-- Creating the N_Periodos table
CREATE TABLE `N_Periodos` (
    `N_PeriodosID` VARCHAR(50)  NOT NULL  PRIMARY KEY  DEFAULT '0',
    `RegistrosPatronalesID` VARCHAR(50) ,
    `Numero` VARCHAR(50) ,
    `FechaInicio` DATETIME Default Null ,
    `FechaFinal` DATETIME Default Null ,
    `UsuariosID` VARCHAR(50) ,
    `UsuarioFinalizo` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Bloqueado` TINYINT DEFAULT 0,
    `Tipo` VARCHAR(50) ,
    `CATSAT_PeriodicidadPagoID` VARCHAR(50) ,
    `Estatus` VARCHAR(50) ,
    `Nombre` VARCHAR(150) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Periodos_RegistrosPatronalesID` ON `N_Periodos` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Periodos_Numero` ON `N_Periodos` (`Numero`);
CREATE INDEX `WDIDX_N_Periodos_FechaInicio` ON `N_Periodos` (`FechaInicio`);
CREATE INDEX `WDIDX_N_Periodos_FechaFinal` ON `N_Periodos` (`FechaFinal`);
CREATE INDEX `WDIDX_N_Periodos_UsuariosID` ON `N_Periodos` (`UsuariosID`);
CREATE INDEX `WDIDX_N_Periodos_UsuarioFinalizo` ON `N_Periodos` (`UsuarioFinalizo`);
CREATE INDEX `WDIDX_N_Periodos_Activo` ON `N_Periodos` (`Activo`);
CREATE INDEX `WDIDX_N_Periodos_Bloqueado` ON `N_Periodos` (`Bloqueado`);
CREATE INDEX `WDIDX_N_Periodos_Tipo` ON `N_Periodos` (`Tipo`);
CREATE INDEX `WDIDX_N_Periodos_CATSAT_PeriodicidadPagoID` ON `N_Periodos` (`CATSAT_PeriodicidadPagoID`);
CREATE INDEX `WDIDX_N_Periodos_Estatus` ON `N_Periodos` (`Estatus`);

-- Creating the N_Prenomina table
CREATE TABLE `N_Prenomina` (
    `N_PrenominaID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `PuestosID` VARCHAR(50) ,
    `EmpleadosID` VARCHAR(50) ,
    `EmpresasID` VARCHAR(50) ,
    `BonoPuntualidad` TINYINT DEFAULT 0,
    `N_PeriodosID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `DomingoTrabajado` TINYINT DEFAULT 0,
    `HorasTrabajadas` INTEGER DEFAULT 0,
    `HorasDobles` INTEGER DEFAULT 0,
    `HorasTriples` INTEGER DEFAULT 0,
    `Faltas` INTEGER DEFAULT 0,
    `FaltasJustificadas` INTEGER DEFAULT 0,
    `FaltasInjustificadas` INTEGER DEFAULT 0,
    `SalarioDiario` NUMERIC(24,6) DEFAULT 0,
    `SalarioIntegrado` NUMERIC(24,6) DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `Memo5` VARCHAR(50) ,
    `DiasDobles` INTEGER DEFAULT 0,
    `DiasTriples` INTEGER DEFAULT 0,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Prenomina_PuestosID` ON `N_Prenomina` (`PuestosID`);
CREATE INDEX `WDIDX_N_Prenomina_EmpleadosID` ON `N_Prenomina` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Prenomina_EmpresasID` ON `N_Prenomina` (`EmpresasID`);
CREATE INDEX `WDIDX_N_Prenomina_BonoPuntualidad` ON `N_Prenomina` (`BonoPuntualidad`);
CREATE INDEX `WDIDX_N_Prenomina_N_PeriodosID` ON `N_Prenomina` (`N_PeriodosID`);
CREATE INDEX `WDIDX_N_Prenomina_RegistrosPatronalesID` ON `N_Prenomina` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Prenomina_DomingoTrabajado` ON `N_Prenomina` (`DomingoTrabajado`);

-- Creating the N_RegistrosPatronales_Complementos table
CREATE TABLE `N_RegistrosPatronales_Complementos` (
    `N_RegistrosPatronales_ComplementosID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `RegistrosPatronalesID` VARCHAR(50) ,
    `RegistroPatronalIMSS` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `HorasMaximasDobles` INTEGER DEFAULT 0,
    `HorasMaximasTriples` INTEGER DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_RegistrosPat_Comp_RegistrosPatronalesID` ON `N_RegistrosPatronales_Complementos` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_RegistrosPat_Comp_RegistroPatronalIMSS` ON `N_RegistrosPatronales_Complementos` (`RegistroPatronalIMSS`);
CREATE INDEX `WDIDX_N_RegistrosPat_Comp_Activo` ON `N_RegistrosPatronales_Complementos` (`Activo`);

-- Creating the N_ResguardoFacturaCFDi table
CREATE TABLE `N_ResguardoFacturaCFDi` (
    `N_ResguardoFacturaCFDiID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `FechaTimbrado` DATETIME Default Null ,
    `UUID` VARCHAR(100) ,
    `N_NominaID` VARCHAR(50) ,
    `ArchivoXML` LONGTEXT ,
    `PAC` VARCHAR(50) ,
    `RFC_Emisor` VARCHAR(20) ,
    `RFC_Receptor` VARCHAR(20) ,
    `Importe` NUMERIC(24,6) DEFAULT 0,
    `NoCertificadoSAT` VARCHAR(50) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `Memo5` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_ResguardoFacturaCFDi_FechaTimbrado` ON `N_ResguardoFacturaCFDi` (`FechaTimbrado`);
CREATE INDEX `WDIDX_N_ResguardoFacturaCFDi_UUID` ON `N_ResguardoFacturaCFDi` (`UUID`);
CREATE INDEX `WDIDX_N_ResguardoFacturaCFDi_N_NominaID` ON `N_ResguardoFacturaCFDi` (`N_NominaID`);
CREATE INDEX `WDIDX_N_ResguardoFacturaCFDi_PAC` ON `N_ResguardoFacturaCFDi` (`PAC`);
CREATE INDEX `WDIDX_N_ResguardoFacturaCFDi_RFC_Emisor` ON `N_ResguardoFacturaCFDi` (`RFC_Emisor`);
CREATE INDEX `WDIDX_N_ResguardoFacturaCFDi_RFC_Receptor` ON `N_ResguardoFacturaCFDi` (`RFC_Receptor`);

-- Creating the N_Tablas table
CREATE TABLE `N_Tablas` (
    `N_TablasID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `Tipo` VARCHAR(50) ,
    `NumeroTabla` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `NumeroColumna` VARCHAR(50) ,
    `NumeroRenglon` VARCHAR(50) ,
    `Valor` VARCHAR(50) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `Memo5` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Tablas_Tipo` ON `N_Tablas` (`Tipo`);
CREATE INDEX `WDIDX_N_Tablas_NumeroTabla` ON `N_Tablas` (`NumeroTabla`);
CREATE INDEX `WDIDX_N_Tablas_Activo` ON `N_Tablas` (`Activo`);
CREATE INDEX `WDIDX_N_Tablas_NumTablaNumColumnaNumRenglon` ON `N_Tablas` (`NumeroTabla`,`NumeroColumna`,`NumeroRenglon`);
CREATE INDEX `WDIDX_N_Tablas_TipoNumeroTabla` ON `N_Tablas` (`Tipo`,`NumeroTabla`);

-- Creating the N_Usuarios table
CREATE TABLE `N_Usuarios` (
    `N_UsuariosID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `UsuariosID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `Memo4` VARCHAR(50) ,
    `InternalVersion` INTEGER DEFAULT 0);
CREATE INDEX `WDIDX_N_Usuarios_UsuariosID` ON `N_Usuarios` (`UsuariosID`);
CREATE INDEX `WDIDX_N_Usuarios_RegistrosPatronalesID` ON `N_Usuarios` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Usuarios_Activo` ON `N_Usuarios` (`Activo`);

-- Creating the N_Vacaciones table
CREATE TABLE `N_Vacaciones` (
    `N_VacacionesID` VARCHAR(50)  PRIMARY KEY  DEFAULT '0',
    `EmpresasID` VARCHAR(50) ,
    `RegistrosPatronalesID` VARCHAR(50) ,
    `EmpleadosID` VARCHAR(50) ,
    `FechaInicio` DATE ,
    `FechaFinal` DATE ,
    `Estatus` VARCHAR(50) ,
    `UsuarioID` VARCHAR(50) ,
    `Activo` TINYINT DEFAULT 0,
    `Dias_Vacaciones` VARCHAR(50) ,
    `Memo1` VARCHAR(50) ,
    `Memo2` VARCHAR(50) ,
    `Memo3` VARCHAR(50) ,
    `InternalVersion` VARCHAR(50) );
CREATE INDEX `WDIDX_N_Vacaciones_EmpresasID` ON `N_Vacaciones` (`EmpresasID`);
CREATE INDEX `WDIDX_N_Vacaciones_RegistrosPatronalesID` ON `N_Vacaciones` (`RegistrosPatronalesID`);
CREATE INDEX `WDIDX_N_Vacaciones_EmpleadosID` ON `N_Vacaciones` (`EmpleadosID`);
CREATE INDEX `WDIDX_N_Vacaciones_FechaInicio` ON `N_Vacaciones` (`FechaInicio`);
CREATE INDEX `WDIDX_N_Vacaciones_FechaFinal` ON `N_Vacaciones` (`FechaFinal`);
CREATE INDEX `WDIDX_N_Vacaciones_Estatus` ON `N_Vacaciones` (`Estatus`);
CREATE INDEX `WDIDX_N_Vacaciones_UsuarioID` ON `N_Vacaciones` (`UsuarioID`);
CREATE INDEX `WDIDX_N_Vacaciones_Activo` ON `N_Vacaciones` (`Activo`);
