modificaciones facturacion electronica
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
/* ============================================================
|
||||
DECOMARMOL - Compra electronica e-CF 41 en cpprmt001
|
||||
Idempotente: se puede correr varias veces; solo agrega lo que falta.
|
||||
============================================================ */
|
||||
SET NOCOUNT ON;
|
||||
GO
|
||||
|
||||
/* ---------------- 1) cptb00041: e-CF 41 emitidos desde cpprmt001 ---------------- */
|
||||
IF OBJECT_ID('dbo.cptb00041', 'U') IS NULL
|
||||
BEGIN
|
||||
CREATE TABLE dbo.cptb00041 (
|
||||
cod_sp SMALLINT NOT NULL,
|
||||
cod_sp_sec SMALLINT NOT NULL,
|
||||
num_doc CHAR(13) NOT NULL, -- = e-NCF (E41xxxxxxxxxx), igual que cptb00001.num_doc
|
||||
ncf VARCHAR(13) NULL,
|
||||
fecha DATE NULL,
|
||||
rnc VARCHAR(11) NULL, -- cedula/RNC del proveedor (va como Comprador en el XML)
|
||||
neto DECIMAL(18,2) NULL, -- lo que recibe el proveedor (= valor_fac en CxP)
|
||||
porc_isr DECIMAL(5,2) NULL, -- 0, 3 o 15
|
||||
codigo_isr SMALLINT NULL, -- tipo de retencion ISR del 606 (cgtb00077)
|
||||
lleva_itbis CHAR(1) NULL, -- S/N
|
||||
bien_servicio CHAR(1) NULL, -- 1 bien / 2 servicio
|
||||
subtotal DECIMAL(18,2) NULL,
|
||||
itbis DECIMAL(18,2) NULL,
|
||||
isr_retenido DECIMAL(18,2) NULL,
|
||||
itbis_retenido DECIMAL(18,2) NULL, -- 100% del ITBIS
|
||||
total DECIMAL(18,2) NULL, -- subtotal + ITBIS (MontoTotal del XML)
|
||||
-- rastreo DGII
|
||||
hash VARCHAR(10) NULL,
|
||||
ultima_respuesta VARCHAR(MAX) NULL,
|
||||
fechafirmadigital DATETIME NULL,
|
||||
trackid VARCHAR(100) NULL,
|
||||
estado_dgii VARCHAR(50) NULL,
|
||||
mensaje VARCHAR(2000) NULL,
|
||||
status_t CHAR(1) NULL,
|
||||
us_crea VARCHAR(50) NULL,
|
||||
fech_crea DATETIME NULL CONSTRAINT df_cptb00041_fc DEFAULT GETDATE(),
|
||||
us_mod VARCHAR(50) NULL,
|
||||
fech_mod DATETIME NULL,
|
||||
CONSTRAINT pk_cptb00041 PRIMARY KEY (cod_sp, cod_sp_sec, num_doc)
|
||||
);
|
||||
PRINT 'cptb00041 creada';
|
||||
END
|
||||
ELSE PRINT 'cptb00041 ya existe';
|
||||
GO
|
||||
|
||||
/* ---------------- 2) Tipo NCF 41 en la lista de cpprmt001 ---------------- */
|
||||
IF NOT EXISTS (SELECT 1 FROM cgtb00074 WHERE codigo_fiscal = 41)
|
||||
INSERT INTO cgtb00074 (codigo_fiscal, descripcion) VALUES (41, 'COMPRAS ELECTRONICO');
|
||||
GO
|
||||
|
||||
/* ---------------- 3) Tipos de retencion ISR del 606 (cgtb00077) ---------------- */
|
||||
INSERT INTO cgtb00077 (codigo_isr, descripcion)
|
||||
SELECT v.codigo_isr, v.descripcion
|
||||
FROM (VALUES
|
||||
(1, 'ALQUILERES'),
|
||||
(2, 'HONORARIOS POR SERVICIOS'),
|
||||
(3, 'OTRAS RENTAS'),
|
||||
(4, 'OTRAS RENTAS (RENTAS PRESUNTAS)'),
|
||||
(5, 'INTERESES PAGADOS A PERSONAS JURIDICAS RESIDENTES'),
|
||||
(6, 'INTERESES PAGADOS A PERSONAS FISICAS RESIDENTES'),
|
||||
(7, 'RETENCION POR PROVEEDORES DEL ESTADO'),
|
||||
(8, 'JUEGOS TELEFONICOS'),
|
||||
(9, 'RETENCIONES SUBSECTOR GANADERIA DE CARNE BOVINA')
|
||||
) AS v(codigo_isr, descripcion)
|
||||
WHERE NOT EXISTS (SELECT 1 FROM cgtb00077 x WHERE x.codigo_isr = v.codigo_isr);
|
||||
GO
|
||||
|
||||
/* ---------------- 4) REVISION (no cambia nada) ---------------- */
|
||||
-- a) rango del 41: debe existir con tipo_doc='FT', codigo_dgii='41', disponible='S'
|
||||
-- (se crea en el mantenimiento de NCF, veprmt020, con los datos de la DGII)
|
||||
SELECT tipo_doc, codigo_dgii, ncf_inicial, ncf_final, disponible, fecha_vencimiento, sucid
|
||||
FROM vetb00071 WHERE codigo_dgii = '41';
|
||||
SELECT * FROM vetb00073 WHERE codigo_dgii = '41';
|
||||
|
||||
-- b) cuenta(s) de ISR retenido: deben estar en el catalogo con retencion='SI' y su codigo_isr
|
||||
-- (se marcan en el mantenimiento del catalogo, cgprmt001). La de ITBIS retenido se deja en NO.
|
||||
SELECT cuenta_no, descripcion, retencion, codigo_isr
|
||||
FROM cgtb00001 WHERE retencion = 'SI' OR descripcion LIKE '%RETEN%';
|
||||
|
||||
-- c) ambiente DGII de la empresa (test / certificacion / produccion)
|
||||
SELECT nombre, rnc, ambienteDgii, id_dgii, id_municipio_dgii FROM companias;
|
||||
GO
|
||||
Reference in New Issue
Block a user