CREATE TABLE `nomina_comprobantes` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `comprobante_nro` varchar(50) DEFAULT NULL,
  `identificacion` varchar(20) NOT NULL,
  `nombres` varchar(100) DEFAULT NULL,
  `apellidos` varchar(100) DEFAULT NULL,
  `salario` decimal(15,2) DEFAULT 0.00,
  `auxilio_transporte` decimal(15,2) DEFAULT 0.00,
  `dias_laborados` int(11) DEFAULT 0,
  `finalizacion_contrato` date DEFAULT NULL,
  `provision_prima` decimal(15,2) DEFAULT 0.00,
  `provision_cesantias` decimal(15,2) DEFAULT 0.00,
  `provision_intereses` decimal(15,2) DEFAULT 0.00,
  `provision_vacaciones` decimal(15,2) DEFAULT 0.00,
  `seguridad_pension` decimal(15,2) DEFAULT 0.00,
  `seguridad_riesgos` decimal(15,2) DEFAULT 0.00,
  `tarifa_riesgos` decimal(5,3) DEFAULT 0.522,
 `cajaCompensacion` decimal(15,2) DEFAULT 0.00,
  `fecha_registro` timestamp NOT NULL DEFAULT current_timestamp(),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;



ALTER TABLE `user`
ADD `Realizarcotizacion` VARCHAR(20) NULL
COMMENT 'vacio = activado | hidden = desactivado'
AFTER `VerPermisos`;

ALTER TABLE `cotizacion` ADD `id` INT(10) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`);

ALTER TABLE `facturas` ADD `pagosDinamicos` TEXT NULL AFTER `otroDatoFactura`;


ALTER TABLE `cotizacion` CHANGE `numeroCotizacion` `numeroCotizacion` VARCHAR(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL;


ALTER TABLE `contabilidad` CHANGE `observacion` `observacion` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL;


CREATE OR REPLACE VIEW vista_exogena AS SELECT c.tipoMovimiento, c.ingreso, c.egreso, c.numeroMoimiento, c.nit, c.bodegaIng, c.fechaM, c.valorMovimiento, c.cuentaNum, cu.NombreCuenta, cu.Cuenta_Padre, p.idcuenta AS codigo_padre, p.Nombre AS nombre_padre, p.CuentaAuxiliar FROM contabilidad c LEFT JOIN cuentasc cu ON c.cuentaNum = cu.codeC LEFT JOIN cuentapadre p ON cu.Cuenta_Padre = p.idcuenta;


-- NUEVO febrero 2026
ALTER TABLE `nomina_comprobantes` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

ALTER TABLE `user` ADD `editarCostos` VARCHAR(20) NOT NULL COMMENT 'disabled: Desativado || '': Activado' AFTER `Realizarcotizacion`, ADD `vercostosPro` VARCHAR(20) NOT NULL COMMENT 'hidden: Desativado || '': Activado' AFTER `editarCostos`;

-- NUEVO marzo 2026

ALTER TABLE `inventarios` ADD `numeroTrasladoConfim` TEXT NOT NULL AFTER `cantidTraslada`;
ALTER TABLE `inventarios` CHANGE `numeroTrasladoConfim` `numeroTrasladoConfim` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL;

INSERT INTO tiposmoviminetos (tipoMovimento, CuentaM, DEBITO, CREDITO, TipoValor, bodegaMovi) VALUES 
('ComPnomina', '510506', 1, 0, 'SAL', 1),
('ComPnomina', '510527', 1, 0, 'AUX', 1),
('ComPnomina', '510536', 1, 0, 'PRI', 1),
('ComPnomina', '510530', 1, 0, 'CES', 1),
('ComPnomina', '510533', 1, 0, 'INT', 1),
('ComPnomina', '510539', 1, 0, 'VAC', 1),
('ComPnomina', '510570', 1, 0, 'PEN', 1),
('ComPnomina', '510572', 1, 0, 'CAJ', 1),
('ComPnomina', '510568', 1, 0, 'RIE', 1),
('ComPnomina', '2505', 0, 1, 'TOT', 1);


INSERT INTO `cuentasc` (`codeC`, `NombreCuenta`, `Cuenta_Padre`, `Tipo_C`, `Otro_Dato`) VALUES ('237006', 'RIESGOS PROFESIONALES ARL', '23', NULL, NULL);

ALTER TABLE nomina_comprobantes
CONVERT TO CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;


CREATE TABLE `inventariogenelos` (
  `idg` INT(10) NOT NULL AUTO_INCREMENT,
  `codeProdgm` VARCHAR(25) NOT NULL,
  `InventarioGm` VARCHAR(8) NOT NULL DEFAULT '0',
  `precioCajaGm` VARCHAR(15) NOT NULL DEFAULT '0',
  `precioFrccGm` VARCHAR(15) NOT NULL DEFAULT '0',
  `precioCajaGm2` VARCHAR(15) NOT NULL DEFAULT '0',
  `precioFrccGm2` VARCHAR(15) NOT NULL DEFAULT '0',
  `CostoCajaGm` INT(15) NOT NULL DEFAULT '0',
  `CostofrccGm` VARCHAR(15) NOT NULL DEFAULT '0',
  `bodegaGm` INT(5) NOT NULL,
  `otrodato1` VARCHAR(50) NULL,
  `otrodato2` VARCHAR(50) NULL,
  PRIMARY KEY (`idg`)
) 
ENGINE = InnoDB 
DEFAULT CHARACTER SET = utf8mb4 
COLLATE = utf8mb4_general_ci;


ALTER TABLE `temporal` ADD `idT` INT(10) NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`idT`);

-- =============================================================================
-- CONFIGURACIÓN CONTABLE DE INVENTARIOS (ENTRADAS Y SALIDAS)
-- =============================================================================

-- 1. CREACIÓN DE CUENTAS FALTANTES EN 'cuentasc' (Para evitar error de llave foránea #1452)
-- -----------------------------------------------------------------------------

-- Inventarios (Familia 1405)
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('1405', 'MATERIAS PRIMAS');
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('140501', 'MATERIAS PRIMAS (G)');
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('14050105', 'Inventarios (Materia Prima/Mercancia)');

-- Patrimonio (Familia 3115)
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('3115', 'APORTES SOCIALES');
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('311505', 'APORTES SOCIALES (G)');
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('31150505', 'Saldos Iniciales (Patrimonio)');

-- Gastos (Familia 5310)
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('5310', 'GASTOS EXTRAORDINARIOS');
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('531095', 'Gastos Vencimientos / Otros Faltantes');

-- Costos (Familia 6135)
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('613595', 'Costo de Ventas (Ajustes de Inventario)');

-- Otras cuentas (Asegurar existencia)
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('421040', 'Descuentos comerciales (Ingresos)');
INSERT IGNORE INTO cuentasc (codeC, NombreCuenta) VALUES ('2205', 'Proveedores Nacionales');


-- 2. CONFIGURACIÓN DE REGLAS EN 'tiposmoviminetos'
-- -----------------------------------------------------------------------------

-- Limpiar reglas previas para estas categorías
DELETE FROM tiposmoviminetos WHERE tipoMovimento IN ('Entrada_SI','Entrada_SB','Entrada_AJ','Salida_FT','Salida_VN','Salida_DV');

-- ENTRADA: Saldos Iniciales (SI) -> 14050105 (D) vs 31150505 (C)
INSERT INTO tiposmoviminetos (tipoMovimento, CuentaM, DEBITO, CREDITO, TipoValor, bodegaMovi, Otro_Dato) VALUES 
('Entrada_SI', '14050105', 1, 0, 'C', 1, 'Inventario (SI)'),
('Entrada_SI', '31150505', 0, 1, 'T', 1, 'Saldos Iniciales (Patrimonio)');

-- ENTRADA: Sobrantes / Regalos (SB) -> 14050105 (D) vs 421040 (C)
INSERT INTO tiposmoviminetos (tipoMovimento, CuentaM, DEBITO, CREDITO, TipoValor, bodegaMovi, Otro_Dato) VALUES 
('Entrada_SB', '14050105', 1, 0, 'C', 1, 'Inventario (Sobrante)'),
('Entrada_SB', '421040', 0, 1, 'T', 1, 'Ingresos Sobrantes');

-- ENTRADA: Ajuste por Error (AJ) -> 14050105 (D) vs 613595 (C)
INSERT INTO tiposmoviminetos (tipoMovimento, CuentaM, DEBITO, CREDITO, TipoValor, bodegaMovi, Otro_Dato) VALUES 
('Entrada_AJ', '14050105', 1, 0, 'C', 1, 'Inventario (Ajuste)'),
('Entrada_AJ', '613595', 0, 1, 'T', 1, 'Costo de Ventas');

-- SALIDA: Faltantes / Daños (FT) -> 14050105 (C) vs 5310 (D)
INSERT INTO tiposmoviminetos (tipoMovimento, CuentaM, DEBITO, CREDITO, TipoValor, bodegaMovi, Otro_Dato) VALUES 
('Salida_FT', '14050105', 0, 1, 'T', 1, 'Inventario (Faltante)'),
('Salida_FT', '5310', 1, 0, 'C', 1, 'Gastos Diversos');

-- SALIDA: Vencimientos (VN) -> 14050105 (C) vs 531095 (D)
INSERT INTO tiposmoviminetos (tipoMovimento, CuentaM, DEBITO, CREDITO, TipoValor, bodegaMovi, Otro_Dato) VALUES 
('Salida_VN', '14050105', 0, 1, 'T', 1, 'Inventario (Vencimiento)'),
('Salida_VN', '531095', 1, 0, 'C', 1, 'Gasto Vencimientos');

-- SALIDA: Devolución a Proveedor (DV) -> 14050105 (C) vs 2205 (D)
INSERT INTO tiposmoviminetos (tipoMovimento, CuentaM, DEBITO, CREDITO, TipoValor, bodegaMovi, Otro_Dato) VALUES 
('Salida_DV', '14050105', 0, 1, 'T', 1, 'Inventario (Devolución)'),
('Salida_DV', '2205', 1, 0, 'C', 1, 'Proveedores');


ALTER TABLE `temporal` ADD `idSubgrupo` VARCHAR(30) NULL AFTER `ivaOtroImpuestoTM`;

ALTER TABLE `ventas` ADD `idSubgrupoVe` VARCHAR(30) NULL AFTER `sucursalClinete`;

ALTER TABLE `cotizacion` ADD `idSubgruCt` VARCHAR(30) NULL AFTER `inventarioSeparado`;