/*==============================================================*/ /* Tabla: FEFACTURA */ /*==============================================================*/ CREATE TABLE FEFACTURA ( CCODIGO NUMBER(10) NOT NULL, AMBIENTE NUMBER(1) NOT NULL, TIPOEMISION NUMBER(1) NOT NULL, RAZONSOCIAL VARCHAR2(300) NOT NULL, NOMBRECOMERCIAL VARCHAR2(300), RUC VARCHAR2(13) NOT NULL, CLAVEACCESO VARCHAR2(48) NOT NULL, CODDOC VARCHAR2(2) NOT NULL, ESTAB VARCHAR2(3) NOT NULL, PTOEMI VARCHAR2(3) NOT NULL, SECUENCIAL VARCHAR2(9) NOT NULL, DIRMATRIZ VARCHAR2(300) NOT NULL, FECHAEMISION DATE NOT NULL, DIRESTABLECIMIENTO VARCHAR2(300), CONTRIBUYENTEESPECIAL VARCHAR2(13), OBLIGADOCONTABILIDAD VARCHAR2(2), TIPOIDENTIFICACIONCOMPRADOR VARCHAR2(2) NOT NULL, RAZONSOCIALCOMPRADOR VARCHAR2(300) NOT NULL, DIRCOMPRADOR VARCHAR2(300), IDENTIFICACIONCOMPRADOR VARCHAR2(20) NOT NULL, CORREOCOMPRADOR VARCHAR2(100), TOTALSINIMPUESTOS NUMBER(19,2) NOT NULL, TOTALDESCUENTO NUMBER(19,2) NOT NULL, PROPINA NUMBER(19,2) NOT NULL, IMPORTETOTAL NUMBER(19,2) NOT NULL, MONEDA VARCHAR2(15), FENVIO DATE, RESP CLOB, NUMEROAUTORIZACION VARCHAR2(40), ESTATUSENVIO VARCHAR2(1) DEFAULT 'P' NOT NULL, ESTATUSENVIOCORREO VARCHAR2(1) DEFAULT 'P' NOT NULL, LOGENVIOCORREO CLOB, PRIMARY KEY (CCODIGO) ); ALTER TABLE FEFACTURA ADD CONSTRAINT CKFACESTENVCOM CHECK (ESTATUSENVIO IN ('P', 'E', 'A', 'O')); ALTER TABLE FEFACTURA ADD CONSTRAINT CKFACESTENVCOR CHECK (ESTATUSENVIOCORREO IN ('P', 'E', 'O')); ALTER TABLE FEFACTURA ADD CONSTRAINT CKFACAMB CHECK (AMBIENTE IN ('1', '2')); COMMENT ON TABLE FEFACTURA IS 'Guarda la información de cabecera de una factura electrónica.'; COMMENT ON COLUMN FEFACTURA.CCODIGO IS 'Código identificador de la factura.'; COMMENT on COLUMN FEFACTURA.AMBIENTE IS 'Código de ambiente al que se envía el documento. 1 = Desarrollo/Certificación, 2 = Producción.'; COMMENT ON COLUMN FEFACTURA.TIPOEMISION IS 'Tipo de emisión del comprobante. 1 = NORMAL. 2=Emisión por Indisponibilidad del Sistema.'; COMMENT ON COLUMN FEFACTURA.RAZONSOCIAL IS 'Razón social de la entidad que emite la factura.'; COMMENT ON COLUMN FEFACTURA.NOMBRECOMERCIAL IS 'Nombre comercial de la entidad que emite la factura.'; COMMENT ON COLUMN FEFACTURA.RUC IS 'Número del Registro Único de Contribuyentes de la entidad que emite la factura.'; COMMENT ON COLUMN FEFACTURA.CLAVEACCESO IS 'Clave de acceso del comprobante. Se guardan los 48 primeros dígitos. El dígito verificador se calcula en la aplicación.'; COMMENT ON COLUMN FEFACTURA.CODDOC IS 'Código del documento. Para facturas siempre va a ser 01. Campo necesario para generar una cabecera genérica de comprobantes.'; COMMENT ON COLUMN FEFACTURA.ESTAB IS 'Código del establecimiento desde el que se emite el comprobante.'; COMMENT ON COLUMN FEFACTURA.PTOEMI IS 'Punto de emisión del comprobante.'; COMMENT ON COLUMN FEFACTURA.SECUENCIAL IS 'Número secuencial del comprobante, a cargo de la entidad que emite el comprobante.'; COMMENT ON COLUMN FEFACTURA.DIRMATRIZ IS 'Dirección de la matriz de la entidad que emite el comprobante.'; COMMENT ON COLUMN FEFACTURA.FECHAEMISION IS 'Fecha de emisión del comprobante.'; COMMENT ON COLUMN FEFACTURA.DIRESTABLECIMIENTO IS 'Dirección del establecimiento desde el que se emite el comprobante.'; COMMENT ON COLUMN FEFACTURA.CONTRIBUYENTEESPECIAL IS 'Código de contribuyente especial dado por el SRI a la entidad que emite el comprobante.'; COMMENT ON COLUMN FEFACTURA.OBLIGADOCONTABILIDAD IS 'Indica si está obligado a llevar contabilidad. SI o NO.'; COMMENT ON COLUMN FEFACTURA.TIPOIDENTIFICACIONCOMPRADOR IS 'Código del tipo de identificación del comprador. Revisar ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FEFACTURA.RAZONSOCIALCOMPRADOR IS 'Nombre o razón social del comprador.'; COMMENT ON COLUMN FEFACTURA.DIRCOMPRADOR IS 'Dirección del comprador.'; COMMENT ON COLUMN FEFACTURA.IDENTIFICACIONCOMPRADOR IS 'Número de cédula, pasaporte o ruc del comprador, según el tipo de identificación del comprador.'; COMMENT ON COLUMN FEFACTURA.CORREOCOMPRADOR IS 'Correo electrónico del comprador. Usado por el programa que envía correos en lote para enviar el comprobante.'; COMMENT ON COLUMN FEFACTURA.TOTALSINIMPUESTOS IS 'Total sin impuestos de la factura.'; COMMENT ON COLUMN FEFACTURA.TOTALDESCUENTO IS 'Suma total de descuentos.'; COMMENT ON COLUMN FEFACTURA.PROPINA IS 'Total de propina.'; COMMENT ON COLUMN FEFACTURA.IMPORTETOTAL IS 'Total facturado.'; COMMENT ON COLUMN FEFACTURA.MONEDA IS 'Moneda en la que se expresan los valores. Por lo general es DOLAR.'; COMMENT ON COLUMN FEFACTURA.FENVIO IS 'Campo de control que muestra la última fecha en la que se contactó al SRI para enviar el comprobante.'; COMMENT ON COLUMN FEFACTURA.RESP IS 'JSON de respuesta del programa que envía comprobantes al SRI.'; COMMENT ON COLUMN FEFACTURA.NUMEROAUTORIZACION IS 'Número de autorización entregado por el SRI cuando se aprueba el comprobante.'; COMMENT ON COLUMN FEFACTURA.ESTATUSENVIO IS 'Código de estatus de envío del comprobante. P = Pendiente, E = Error, A = Por aprobar, O = OK'; COMMENT ON COLUMN FEFACTURA.ESTATUSENVIOCORREO IS 'Código de estatus de envío del correo electrónico al cliente. P = Pendiente, E = Error, O = OK.'; COMMENT ON COLUMN FEFACTURA.LOGENVIOCORREO IS 'Log del proceso de envío de correo, llenado por el programa que envía correos en lote.'; /*==============================================================*/ /* Tabla: FEFACTURADETALLES */ /*==============================================================*/ CREATE TABLE FEFACTURADETALLES ( CCODIGO NUMBER(10) NOT NULL, CCODIGODETALLE NUMBER(5) NOT NULL, CODIGOPRINCIPAL VARCHAR2(25), CODIGOAUXILIAR VARCHAR2(25), DESCRIPCION VARCHAR2(150) NOT NULL, CANTIDAD NUMBER(20,6) NOT NULL, PRECIOUNITARIO NUMBER(19,2) NOT NULL, DESCUENTO NUMBER(19,2) NOT NULL, PRECIOTOTALSINIMPUESTO NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, CCODIGODETALLE) ); ALTER TABLE FEFACTURADETALLES ADD CONSTRAINT FKFEFACTDET FOREIGN KEY (CCODIGO) REFERENCES FEFACTURA (CCODIGO); COMMENT ON TABLE FEFACTURADETALLES IS 'Detalle de items de la factura.'; COMMENT ON COLUMN FEFACTURADETALLES.CCODIGO IS 'Código identificador de la factura a la que pertenece este registro.'; COMMENT ON COLUMN FEFACTURADETALLES.CCODIGODETALLE IS 'Código secuencial del detalle.'; COMMENT ON COLUMN FEFACTURADETALLES.CODIGOPRINCIPAL IS 'Código principal del item impuesto por el establecimiento comercial.'; COMMENT ON COLUMN FEFACTURADETALLES.CODIGOAUXILIAR IS 'Código auxiliar del item impuesto por el establecimiento comercial.'; COMMENT ON COLUMN FEFACTURADETALLES.DESCRIPCION IS 'Descripción del item.'; COMMENT ON COLUMN FEFACTURADETALLES.CANTIDAD IS 'Cantidad de items facturados.'; COMMENT ON COLUMN FEFACTURADETALLES.PRECIOUNITARIO IS 'Precio unitario del item.'; COMMENT ON COLUMN FEFACTURADETALLES.DESCUENTO IS 'Descuento realizado sobre este item.'; COMMENT ON COLUMN FEFACTURADETALLES.PRECIOTOTALSINIMPUESTO IS 'Precio total facturado sin impuestos: cantidad * precio unitario - descuento.'; /*==============================================================*/ /* Tabla: FEFACTURADETALLESADICIONALES */ /*==============================================================*/ CREATE TABLE FEFACTURADETALLESADICIONALES ( CCODIGO NUMBER(10) NOT NULL, CCODIGODETALLE NUMBER(5) NOT NULL, SECUENCIA NUMBER(5) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, VALOR VARCHAR2(300) NOT NULL, PRIMARY KEY (CCODIGO, CCODIGODETALLE, SECUENCIA) ); ALTER TABLE FEFACTURADETALLESADICIONALES ADD CONSTRAINT FKFEFACTDETADI FOREIGN KEY (CCODIGO, CCODIGODETALLE) REFERENCES FEFACTURADETALLES (CCODIGO, CCODIGODETALLE); COMMENT ON TABLE FEFACTURADETALLESADICIONALES IS 'Detalles adicionales del item de la factura.'; COMMENT ON COLUMN FEFACTURADETALLESADICIONALES.CCODIGO IS 'Código identificador de la factura.'; COMMENT ON COLUMN FEFACTURADETALLESADICIONALES.CCODIGODETALLE IS 'Código del item de factura asociado a esta información adicional.'; COMMENT ON COLUMN FEFACTURADETALLESADICIONALES.SECUENCIA IS 'Código de secuencia para permitir varios registros por item.'; COMMENT ON COLUMN FEFACTURADETALLESADICIONALES.NOMBRE IS 'Nombre del campo adicional.'; COMMENT ON COLUMN FEFACTURADETALLESADICIONALES.VALOR IS 'Valor del campo adicional.'; /*==============================================================*/ /* Tabla: FEFACTURAIMPUESTOS */ /*==============================================================*/ CREATE TABLE FEFACTURAIMPUESTOS ( CCODIGO NUMBER(10) NOT NULL, CODIGOIMPUESTO VARCHAR2(2) NOT NULL, CODIGOPORCENTAJE VARCHAR2(4) NOT NULL, BASEIMPONIBLE NUMBER(19,2) NOT NULL, TARIFA NUMBER(19,2), VALOR NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, CODIGOIMPUESTO) ); ALTER TABLE FEFACTURAIMPUESTOS ADD CONSTRAINT FKFEFACIMP FOREIGN KEY (CCODIGO) REFERENCES FEFACTURA (CCODIGO); COMMENT ON TABLE FEFACTURAIMPUESTOS IS 'Detalle de impuestos de la factura.'; COMMENT ON COLUMN FEFACTURAIMPUESTOS.CCODIGO IS 'Código identificador de la factura.'; COMMENT ON COLUMN FEFACTURAIMPUESTOS.CODIGOIMPUESTO IS 'Código del impuesto cobrado. Ver ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FEFACTURAIMPUESTOS.CODIGOPORCENTAJE IS 'Código del porcentaje cobrado. Ver ficha técnica para los códigos de porcentajes.'; COMMENT ON COLUMN FEFACTURAIMPUESTOS.BASEIMPONIBLE IS 'Valor sobre el que se calcula el impuesto.'; COMMENT ON COLUMN FEFACTURAIMPUESTOS.TARIFA IS 'Tarifa cobrada, relacionada con el código de porcentaje.'; COMMENT ON COLUMN FEFACTURAIMPUESTOS.VALOR IS 'Valor cobrado de impuesto.'; /*==============================================================*/ /* Tabla: FEFACTURADETALLESIMPUESTOS */ /*==============================================================*/ CREATE TABLE FEFACTURADETALLESIMPUESTOS ( CCODIGO NUMBER(10) NOT NULL, CCODIGODETALLE NUMBER(5) NOT NULL, CODIGOIMPUESTO VARCHAR2(2) NOT NULL, CODIGOPORCENTAJE VARCHAR2(4) NOT NULL, TARIFA NUMBER(19,2) NOT NULL, BASEIMPONIBLE NUMBER(19,2) NOT NULL, VALOR NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, CCODIGODETALLE, CODIGOIMPUESTO) ); ALTER TABLE FEFACTURADETALLESIMPUESTOS ADD CONSTRAINT FKFEFACTDETIMP FOREIGN KEY (CCODIGO, CCODIGODETALLE) REFERENCES FEFACTURADETALLES (CCODIGO, CCODIGODETALLE); COMMENT ON TABLE FEFACTURADETALLESIMPUESTOS IS 'Detalle de impuestos cobrados por item de factura.'; COMMENT ON COLUMN FEFACTURADETALLESIMPUESTOS.CCODIGO IS 'Código identificador de la factura.'; COMMENT ON COLUMN FEFACTURADETALLESIMPUESTOS.CCODIGODETALLE IS 'Código del item de factura.'; COMMENT ON COLUMN FEFACTURADETALLESIMPUESTOS.CODIGOIMPUESTO IS 'Código del impuesto cobrado. Ver ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FEFACTURADETALLESIMPUESTOS.CODIGOPORCENTAJE IS 'Código del porcentaje cobrado. Ver ficha técnica para los códigos de porcentajes.'; COMMENT ON COLUMN FEFACTURADETALLESIMPUESTOS.TARIFA IS 'Tarifa cobrada, relacionada con el código de porcentaje.'; COMMENT ON COLUMN FEFACTURADETALLESIMPUESTOS.BASEIMPONIBLE IS 'Valor sobre el que se calcula el impuesto.'; COMMENT ON COLUMN FEFACTURADETALLESIMPUESTOS.VALOR IS 'Valor cobrado de impuesto.'; /*==============================================================*/ /* Tabla: FEFACTURAINFOADICIONAL */ /*==============================================================*/ CREATE TABLE FEFACTURAINFOADICIONAL ( CCODIGO NUMBER(10) NOT NULL, SECUENCIA NUMBER(4) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, VALOR VARCHAR2(300) NOT NULL, PRIMARY KEY (CCODIGO, SECUENCIA) ); ALTER TABLE FEFACTURAINFOADICIONAL ADD CONSTRAINT FKFEFACTINFOADI FOREIGN KEY (CCODIGO) REFERENCES FEFACTURA (CCODIGO); COMMENT ON TABLE FEFACTURAINFOADICIONAL IS 'información adicional de la factura.'; COMMENT ON COLUMN FEFACTURAINFOADICIONAL.CCODIGO IS 'Código identificador de la factura.'; COMMENT ON COLUMN FEFACTURAINFOADICIONAL.SECUENCIA IS 'Secuencial que permite agregar varios registros por factura.'; COMMENT ON COLUMN FEFACTURAINFOADICIONAL.NOMBRE IS 'Nombre del campo adicional.'; COMMENT ON COLUMN FEFACTURAINFOADICIONAL.VALOR IS 'Valor del campo adicional.'; /*==============================================================*/ /* Tabla: FEFACTURAPAGOS */ /*==============================================================*/ CREATE TABLE FEFACTURAPAGOS ( CCODIGO NUMBER(10) NOT NULL, SECUENCIA NUMBER(4) NOT NULL, FORMAPAGO VARCHAR2(2) NOT NULL, TOTAL NUMBER(12,2) NOT NULL, PLAZO NUMBER(4), UNIDADTIEMPO VARCHAR2(10), CONSTRAINT IPKFEFACPAG PRIMARY KEY (CCODIGO, SECUENCIA) ); ALTER TABLE FEFACTURAPAGOS ADD CONSTRAINT FKFEFACTPAG FOREIGN KEY (CCODIGO) REFERENCES FEFACTURA (CCODIGO); COMMENT ON TABLE FEFACTURAPAGOS IS 'Detalle de formas de pago de la factura.'; COMMENT ON COLUMN FEFACTURAPAGOS.CCODIGO IS 'Código secuencial que sirve de identificador a la factura.'; COMMENT ON COLUMN FEFACTURAPAGOS.SECUENCIA IS 'Número secuencial que permite ingresar varias formas de pago por factura.'; COMMENT ON COLUMN FEFACTURAPAGOS.FORMAPAGO IS 'Código de la forma de pago.'; COMMENT ON COLUMN FEFACTURAPAGOS.TOTAL IS 'Monto que se cubrió con esta forma de pago.'; COMMENT ON COLUMN FEFACTURAPAGOS.PLAZO IS 'Plazo durante el cual se efectuó el pago. La unidad se describe en el campo UNIDADTIEMPO.'; COMMENT ON COLUMN FEFACTURAPAGOS.UNIDADTIEMPO IS 'Unidad de tiempo usada en el plazo. El valor más común es días.'; /*==============================================================*/ /* Tabla: FENOTACREDITO */ /*==============================================================*/ CREATE TABLE FENOTACREDITO ( CCODIGO NUMBER(10) NOT NULL, AMBIENTE NUMBER(1) NOT NULL, TIPOEMISION NUMBER(1) NOT NULL, RAZONSOCIAL VARCHAR2(300) NOT NULL, NOMBRECOMERCIAL VARCHAR2(300), RUC VARCHAR2(13) NOT NULL, CLAVEACCESO VARCHAR2(48) NOT NULL, CODDOC VARCHAR2(2) NOT NULL, ESTAB VARCHAR2(3) NOT NULL, PTOEMI VARCHAR2(3) NOT NULL, SECUENCIAL VARCHAR2(9) NOT NULL, DIRMATRIZ VARCHAR2(300) NOT NULL, FECHAEMISION DATE NOT NULL, DIRESTABLECIMIENTO VARCHAR2(300), CONTRIBUYENTEESPECIAL VARCHAR2(13), OBLIGADOCONTABILIDAD VARCHAR2(2), TIPOIDENTIFICACIONCOMPRADOR VARCHAR2(2) NOT NULL, RAZONSOCIALCOMPRADOR VARCHAR2(300) NOT NULL, IDENTIFICACIONCOMPRADOR VARCHAR2(20) NOT NULL, RISE VARCHAR2(40), CODDOCMODIFICADO VARCHAR2(2) NOT NULL, NUMDOCMODIFICADO VARCHAR2(17) NOT NULL, FECHAEMISIONDOCSUSTENTO DATE NOT NULL, TOTALSINIMPUESTOS NUMBER(19,2) NOT NULL, VALORMODIFICACION NUMBER(19,2) NOT NULL, MOTIVO VARCHAR2(300) NOT NULL, MONEDA VARCHAR2(15), CORREOENVIO VARCHAR2(100), FENVIO DATE, RESP CLOB, NUMEROAUTORIZACION VARCHAR2(40), ESTATUSENVIO VARCHAR2(1) DEFAULT 'P' NOT NULL, ESTATUSENVIOCORREO VARCHAR2(1) DEFAULT 'P' NOT NULL, LOGENVIOCORREO CLOB, PRIMARY KEY (CCODIGO) ); ALTER TABLE FENOTACREDITO ADD CONSTRAINT CKNOTCREESTENVCOM CHECK (ESTATUSENVIO IN ('P', 'E', 'A', 'O')); ALTER TABLE FENOTACREDITO ADD CONSTRAINT CKNOTCREESTENVCOR CHECK (ESTATUSENVIOCORREO IN ('P', 'E', 'O')); ALTER TABLE FENOTACREDITO ADD CONSTRAINT CKNOTCREAMB CHECK (AMBIENTE IN ('1', '2')); COMMENT ON TABLE FENOTACREDITO IS 'Guarda la información de cabecera de una nota de crédito electrónica.'; COMMENT ON COLUMN FENOTACREDITO.CCODIGO IS 'Código identificador de la nota de crédito.'; COMMENT on COLUMN FENOTACREDITO.AMBIENTE IS 'Código de ambiente al que se envía el documento. 1 = Desarrollo/Certificación, 2 = Producción.'; COMMENT ON COLUMN FENOTACREDITO.TIPOEMISION IS 'Tipo de emisión del comprobante. 1 = NORMAL. 2=Emisión por Indisponibilidad del Sistema.'; COMMENT ON COLUMN FENOTACREDITO.RAZONSOCIAL IS 'Razón social de la entidad que emite la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITO.NOMBRECOMERCIAL IS 'Nombre comercial de la entidad que emite la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITO.RUC IS 'Número del Registro Único de Contribuyentes de la entidad que emite la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITO.CLAVEACCESO IS 'Clave de acceso del comprobante. Se guardan los 48 primeros dígitos. El dígito verificador se calcula en la aplicación.'; COMMENT ON COLUMN FENOTACREDITO.CODDOC IS 'Código del documento. Para notas de crédito siempre va a ser 04. Campo necesario para generar una cabecera genérica de comprobantes.'; COMMENT ON COLUMN FENOTACREDITO.ESTAB IS 'Código del establecimiento desde el que se emite el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.PTOEMI IS 'Punto de emisión del comprobante.'; COMMENT ON COLUMN FENOTACREDITO.SECUENCIAL IS 'Número secuencial del comprobante, a cargo de la entidad que emite el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.DIRMATRIZ IS 'Dirección de la matriz de la entidad que emite el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.FECHAEMISION IS 'Fecha de emisión del comprobante.'; COMMENT ON COLUMN FENOTACREDITO.DIRESTABLECIMIENTO IS 'Dirección del establecimiento desde el que se emite el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.CONTRIBUYENTEESPECIAL IS 'Código de contribuyente especial dado por el SRI a la entidad que emite el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.OBLIGADOCONTABILIDAD IS 'Indica si está obligado a llevar contabilidad. SI o NO.'; COMMENT ON COLUMN FENOTACREDITO.TIPOIDENTIFICACIONCOMPRADOR IS 'Código del tipo de identificación del comprador. Revisar ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FENOTACREDITO.RAZONSOCIALCOMPRADOR IS 'Nombre o razón social del comprador.'; COMMENT ON COLUMN FENOTACREDITO.IDENTIFICACIONCOMPRADOR IS 'Número de cédula, pasaporte o ruc del comprador, según el tipo de identificación del comprador.'; COMMENT ON COLUMN FENOTACREDITO.RISE IS 'Contribuyente Regimen Simplificado RISE.'; COMMENT ON COLUMN FENOTACREDITO.CODDOCMODIFICADO IS 'Código del documento modificado por esta nota de crédito.'; COMMENT ON COLUMN FENOTACREDITO.NUMDOCMODIFICADO IS 'Número del documento modificado por esta nota de crédito.'; COMMENT ON COLUMN FENOTACREDITO.FECHAEMISIONDOCSUSTENTO IS 'Fecha de emisión del documento referenciado en esta nota de crédito.'; COMMENT ON COLUMN FENOTACREDITO.TOTALSINIMPUESTOS IS 'Total sin impuestos de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITO.VALORMODIFICACION IS 'Valor por el cual se modifica el documento de sustento.'; COMMENT ON COLUMN FENOTACREDITO.MOTIVO IS 'Motivo por el que se modifica el documento.'; COMMENT ON COLUMN FENOTACREDITO.MONEDA IS 'Moneda en la que se expresan los valores. Por lo general es DOLAR.'; COMMENT ON COLUMN FENOTACREDITO.CORREOENVIO IS 'Dirección usada por el programa que envía correos en lote para enviar el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.FENVIO IS 'Campo de control que muestra la última fecha en la que se contactó al SRI para enviar el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.RESP IS 'JSON de respuesta del programa que envía comprobantes al SRI.'; COMMENT ON COLUMN FENOTACREDITO.NUMEROAUTORIZACION IS 'Número de autorización entregado por el SRI cuando se aprueba el comprobante.'; COMMENT ON COLUMN FENOTACREDITO.ESTATUSENVIO IS 'Código de estatus de envío del comprobante. P = Pendiente, E = Error, A = Por aprobar, O = OK'; COMMENT ON COLUMN FENOTACREDITO.ESTATUSENVIOCORREO IS 'Código de estatus de envío del correo electrónico al cliente. P = Pendiente, E = Error, O = OK.'; COMMENT ON COLUMN FENOTACREDITO.LOGENVIOCORREO IS 'Log del proceso de envío de correo, llenado por el programa que envía correos en lote.'; /*==============================================================*/ /* Tabla: FENOTACREDITODETALLES */ /*==============================================================*/ CREATE TABLE FENOTACREDITODETALLES ( CCODIGO NUMBER(10) NOT NULL, CCODIGODETALLE NUMBER(5) NOT NULL, CODIGOINTERNO VARCHAR2(25), CODIGOADICIONAL VARCHAR2(25), DESCRIPCION VARCHAR2(300) NOT NULL, CANTIDAD NUMBER(20,6) NOT NULL, PRECIOUNITARIO NUMBER(19,2) NOT NULL, DESCUENTO NUMBER(19,2), PRECIOTOTALSINIMPUESTO NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, CCODIGODETALLE) ); alter table FENOTACREDITODETALLES ADD CONSTRAINT FKNOTCREDDET FOREIGN KEY (CCODIGO) REFERENCES FENOTACREDITO (CCODIGO); COMMENT ON TABLE FENOTACREDITODETALLES IS 'Items de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITODETALLES.CCODIGO IS 'Código identificador de la nota de crédito a la que pertenece el registro.'; COMMENT ON COLUMN FENOTACREDITODETALLES.CCODIGODETALLE IS 'Código secuencial que permite agregar varios items a la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITODETALLES.CODIGOINTERNO IS 'Código interno del item.'; COMMENT ON COLUMN FENOTACREDITODETALLES.CODIGOADICIONAL IS 'Código adicional del item.'; COMMENT ON COLUMN FENOTACREDITODETALLES.DESCRIPCION IS 'Descripción del item.'; COMMENT ON COLUMN FENOTACREDITODETALLES.CANTIDAD IS 'Cantidad del item.'; COMMENT ON COLUMN FENOTACREDITODETALLES.PRECIOUNITARIO IS 'Precio unitario del item.'; COMMENT ON COLUMN FENOTACREDITODETALLES.DESCUENTO IS 'Descuento aplicado para este item.'; COMMENT ON COLUMN FENOTACREDITODETALLES.PRECIOTOTALSINIMPUESTO IS 'Precio total sin impuestos: cantidad * precio unitario - descuento.'; /*==============================================================*/ /* Tabla: FENOTACREDITODETALLESADICIONAL */ /*==============================================================*/ CREATE TABLE FENOTACREDITODETALLESADICIONAL ( CCODIGO NUMBER(10) NOT NULL, CCODIGODETALLE NUMBER(5) NOT NULL, SECUENCIA NUMBER(4) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, VALOR VARCHAR2(300) NOT NULL, PRIMARY KEY (CCODIGO, CCODIGODETALLE, SECUENCIA) ); ALTER TABLE FENOTACREDITODETALLESADICIONAL ADD CONSTRAINT FKNOTCREDDETADI FOREIGN KEY (CCODIGO) REFERENCES FENOTACREDITO (CCODIGO); COMMENT ON TABLE FENOTACREDITODETALLESADICIONAL IS 'Detalles adicionales por item de nota de crédito.'; COMMENT ON COLUMN FENOTACREDITODETALLESADICIONAL.CCODIGO IS 'Código identificador de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITODETALLESADICIONAL.CCODIGODETALLE IS 'Código del item al que pertenece el registro.'; COMMENT ON COLUMN FENOTACREDITODETALLESADICIONAL.SECUENCIA IS 'Número secuencial que permite relacionar varios registros con un item.'; COMMENT ON COLUMN FENOTACREDITODETALLESADICIONAL.NOMBRE IS 'Nombre del campo adicional.'; COMMENT ON COLUMN FENOTACREDITODETALLESADICIONAL.VALOR IS 'Valor del campo adicional.'; /*==============================================================*/ /* Tabla: FENOTACREDITOIMPUESTOS */ /*==============================================================*/ CREATE TABLE FENOTACREDITOIMPUESTOS ( CCODIGO NUMBER(10) NOT NULL, CODIGOIMPUESTO VARCHAR2(2) NOT NULL, CODIGOPORCENTAJE VARCHAR2(4) NOT NULL, BASEIMPONIBLE NUMBER(19,2) NOT NULL, VALOR NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, CODIGOIMPUESTO) ); ALTER TABLE FENOTACREDITOIMPUESTOS ADD CONSTRAINT FKNOTCREDIMP FOREIGN KEY (CCODIGO) REFERENCES FENOTACREDITO (CCODIGO); COMMENT ON TABLE FENOTACREDITOIMPUESTOS IS 'Detalle de impuestos de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITOIMPUESTOS.CCODIGO IS 'Código identificador de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITOIMPUESTOS.CODIGOIMPUESTO IS 'Código del impuesto cobrado. Ver ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FENOTACREDITOIMPUESTOS.CODIGOPORCENTAJE IS 'Código del porcentaje cobrado. Ver ficha técnica para los códigos de porcentajes.'; COMMENT ON COLUMN FENOTACREDITOIMPUESTOS.BASEIMPONIBLE IS 'Valor sobre el que se calcula el impuesto.'; COMMENT ON COLUMN FENOTACREDITOIMPUESTOS.VALOR IS 'Valor cobrado de impuesto.'; /*==============================================================*/ /* Tabla: FENOTACREDITODETALLESIMPUESTOS */ /*==============================================================*/ CREATE TABLE FENOTACREDITODETALLESIMPUESTOS ( CCODIGO NUMBER(10) NOT NULL, CCODIGODETALLE NUMBER(5) NOT NULL, CODIGOIMPUESTO VARCHAR2(2) NOT NULL, CODIGOPORCENTAJE VARCHAR2(4) NOT NULL, TARIFA NUMBER(19,2) NOT NULL, BASEIMPONIBLE NUMBER(19,2) NOT NULL, VALOR NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, CCODIGODETALLE, CODIGOIMPUESTO) ); ALTER TABLE FENOTACREDITODETALLESIMPUESTOS ADD CONSTRAINT FKNOTCREDDETIMP FOREIGN KEY (CCODIGO, CCODIGODETALLE) REFERENCES FENOTACREDITODETALLES (CCODIGO, CCODIGODETALLE); COMMENT ON TABLE FENOTACREDITODETALLESIMPUESTOS IS 'Detalle de impuestos por item de nota de crédito.'; COMMENT ON COLUMN FENOTACREDITODETALLESIMPUESTOS.CCODIGO IS 'Código identificador de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITODETALLESIMPUESTOS.CCODIGODETALLE IS 'Código del item al que está relacionado este registro.'; COMMENT ON COLUMN FENOTACREDITODETALLESIMPUESTOS.CODIGOIMPUESTO IS 'Código del impuesto cobrado. Ver ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FENOTACREDITODETALLESIMPUESTOS.CODIGOPORCENTAJE IS 'Código del porcentaje cobrado. Ver ficha técnica para los códigos de porcentajes.'; COMMENT ON COLUMN FENOTACREDITODETALLESIMPUESTOS.TARIFA IS 'Tarifa de impuesto cobrada. Relacionado con el código de porcentaje.'; COMMENT ON COLUMN FENOTACREDITODETALLESIMPUESTOS.BASEIMPONIBLE IS 'Valor sobre el que se calcula el impuesto.'; COMMENT ON COLUMN FENOTACREDITODETALLESIMPUESTOS.VALOR IS 'Valor cobrado de impuesto.'; /*==============================================================*/ /* Tabla: FENOTACREDITOINFOADICIONAL */ /*==============================================================*/ CREATE TABLE FENOTACREDITOINFOADICIONAL ( CCODIGO NUMBER(10) NOT NULL, SECUENCIA NUMBER(4) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, VALOR VARCHAR2(300) NOT NULL, PRIMARY KEY (CCODIGO, SECUENCIA) ); ALTER TABLE FENOTACREDITOINFOADICIONAL ADD CONSTRAINT FKNOTCREDINFADI FOREIGN KEY (CCODIGO) REFERENCES FENOTACREDITO (CCODIGO); COMMENT ON TABLE FENOTACREDITOINFOADICIONAL IS 'Información adicional de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITOINFOADICIONAL.CCODIGO IS 'Código identificador de la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITOINFOADICIONAL.SECUENCIA IS 'Secuencial que permite ingresar varios registros para la nota de crédito.'; COMMENT ON COLUMN FENOTACREDITOINFOADICIONAL.NOMBRE IS 'Nombre del campo adicional.'; COMMENT ON COLUMN FENOTACREDITOINFOADICIONAL.VALOR IS 'Valor del campo adicional.'; /*==============================================================*/ /* Tabla: FENOTADEBITO */ /*==============================================================*/ CREATE TABLE FENOTADEBITO ( CCODIGO NUMBER(10) NOT NULL, AMBIENTE NUMBER(1) NOT NULL, TIPOEMISION NUMBER(1) NOT NULL, RAZONSOCIAL VARCHAR2(300) NOT NULL, NOMBRECOMERCIAL VARCHAR2(300), RUC VARCHAR2(13) NOT NULL, CLAVEACCESO VARCHAR2(48) NOT NULL, CODDOC VARCHAR2(2) NOT NULL, ESTAB VARCHAR2(3) NOT NULL, PTOEMI VARCHAR2(3) NOT NULL, SECUENCIAL VARCHAR2(9) NOT NULL, DIRMATRIZ VARCHAR2(300) NOT NULL, FECHAEMISION DATE NOT NULL, DIRESTABLECIMIENTO VARCHAR2(300), CONTRIBUYENTEESPECIAL VARCHAR2(13), OBLIGADOCONTABILIDAD VARCHAR2(2), TIPOIDENTIFICACIONCOMPRADOR VARCHAR2(2) NOT NULL, RAZONSOCIALCOMPRADOR VARCHAR2(300) NOT NULL, IDENTIFICACIONCOMPRADOR VARCHAR2(13) NOT NULL, RISE VARCHAR2(40), CODDOCMODIFICADO VARCHAR2(2) NOT NULL, NUMDOCMODIFICADO VARCHAR2(17) NOT NULL, FECHAEMISIONDOCSUSTENTO DATE NOT NULL, TOTALSINIMPUESTOS NUMBER(19,2) NOT NULL, VALORTOTAL NUMBER(19,2) NOT NULL, CORREOENVIO VARCHAR2(100), FENVIO DATE, RESP CLOB, NUMEROAUTORIZACION VARCHAR2(40), ESTATUSENVIO VARCHAR2(1) DEFAULT 'P' NOT NULL, ESTATUSENVIOCORREO VARCHAR2(1) DEFAULT 'P' NOT NULL, LOGENVIOCORREO CLOB, PRIMARY KEY (CCODIGO) ); ALTER TABLE FENOTADEBITO ADD CONSTRAINT CKNOTDEBESTENVCOM CHECK (ESTATUSENVIO IN ('P', 'E', 'A', 'O')); ALTER TABLE FENOTADEBITO ADD CONSTRAINT CKNOTDEBESTENVCOR CHECK (ESTATUSENVIOCORREO IN ('P', 'E', 'O')); ALTER TABLE FENOTADEBITO ADD CONSTRAINT CKNOTDEBAMB CHECK (AMBIENTE IN ('1', '2')); COMMENT ON COLUMN FENOTADEBITO.CCODIGO IS 'Código identificador de la nota de débito.'; COMMENT on COLUMN FENOTADEBITO.AMBIENTE IS 'Código de ambiente al que se envía el documento. 1 = Desarrollo/Certificación, 2 = Producción.'; COMMENT ON COLUMN FENOTADEBITO.TIPOEMISION IS 'Tipo de emisión del comprobante. 1 = NORMAL. 2=Emisión por Indisponibilidad del Sistema.'; COMMENT ON COLUMN FENOTADEBITO.RAZONSOCIAL IS 'Razón social de la entidad que emite la nota de débito.'; COMMENT ON COLUMN FENOTADEBITO.NOMBRECOMERCIAL IS 'Nombre comercial de la entidad que emite la nota de débito.'; COMMENT ON COLUMN FENOTADEBITO.RUC IS 'Número del Registro Único de Contribuyentes de la entidad que emite la nota de débito.'; COMMENT ON COLUMN FENOTADEBITO.CLAVEACCESO IS 'Clave de acceso del comprobante. Se guardan los 48 primeros dígitos. El dígito verificador se calcula en la aplicación.'; COMMENT ON COLUMN FENOTADEBITO.CODDOC IS 'Código del documento. Para notas de débito siempre va a ser 05. Campo necesario para generar una cabecera genérica de comprobantes.'; COMMENT ON COLUMN FENOTADEBITO.ESTAB IS 'Código del establecimiento desde el que se emite el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.PTOEMI IS 'Punto de emisión del comprobante.'; COMMENT ON COLUMN FENOTADEBITO.SECUENCIAL IS 'Número secuencial del comprobante, a cargo de la entidad que emite el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.DIRMATRIZ IS 'Dirección de la matriz de la entidad que emite el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.FECHAEMISION IS 'Fecha de emisión del comprobante.'; COMMENT ON COLUMN FENOTADEBITO.DIRESTABLECIMIENTO IS 'Dirección del establecimiento desde el que se emite el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.CONTRIBUYENTEESPECIAL IS 'Código de contribuyente especial dado por el SRI a la entidad que emite el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.OBLIGADOCONTABILIDAD IS 'Indica si está obligado a llevar contabilidad. SI o NO.'; COMMENT ON COLUMN FENOTADEBITO.TIPOIDENTIFICACIONCOMPRADOR IS 'Código del tipo de identificación del comprador. Revisar ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FENOTADEBITO.RAZONSOCIALCOMPRADOR IS 'Nombre o razón social del comprador.'; COMMENT ON COLUMN FENOTADEBITO.IDENTIFICACIONCOMPRADOR IS 'Identificación del comprador. El tipo de documento viene dado por el tipo de identificación del comprador.'; COMMENT ON COLUMN FENOTADEBITO.RISE IS 'Contribuyente Regimen Simplificado RISE.'; COMMENT ON COLUMN FENOTADEBITO.CODDOCMODIFICADO IS 'Código del documento modificado por esta nota de débito.'; COMMENT ON COLUMN FENOTADEBITO.NUMDOCMODIFICADO IS 'Número del documento modificado por esta nota de débito.'; COMMENT ON COLUMN FENOTADEBITO.FECHAEMISIONDOCSUSTENTO IS 'Fecha de emisión del documento referenciado en esta nota de débito.'; COMMENT ON COLUMN FENOTADEBITO.TOTALSINIMPUESTOS IS 'Valor total de la nota de débito sin impuestos.'; COMMENT ON COLUMN FENOTADEBITO.VALORTOTAL IS 'Valor total de la nota de débito incluido impuestos.'; COMMENT ON COLUMN FENOTADEBITO.CORREOENVIO IS 'Dirección usada por el programa que envía correos en lote para enviar el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.FENVIO IS 'Campo de control que muestra la última fecha en la que se contactó al SRI para enviar el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.RESP IS 'JSON de respuesta del programa que envía comprobantes al SRI.'; COMMENT ON COLUMN FENOTADEBITO.NUMEROAUTORIZACION IS 'Número de autorización entregado por el SRI cuando se aprueba el comprobante.'; COMMENT ON COLUMN FENOTADEBITO.ESTATUSENVIO IS 'Código de estatus de envío del comprobante. P = Pendiente, E = Error, A = Por aprobar, O = OK'; COMMENT ON COLUMN FENOTADEBITO.ESTATUSENVIOCORREO IS 'Código de estatus de envío del correo electrónico al cliente. P = Pendiente, E = Error, O = OK.'; COMMENT ON COLUMN FENOTADEBITO.LOGENVIOCORREO IS 'Log del proceso de envío de correo, llenado por el programa que envía correos en lote.'; /*==============================================================*/ /* Tabla: FENOTADEBITOIMPUESTOS */ /*==============================================================*/ CREATE TABLE FENOTADEBITOIMPUESTOS ( CCODIGO NUMBER(10) NOT NULL, CODIGOIMPUESTO VARCHAR2(2) NOT NULL, CODIGOPORCENTAJE VARCHAR2(4) NOT NULL, TARIFA NUMBER(19,2) NOT NULL, BASEIMPONIBLE NUMBER(19,2) NOT NULL, VALOR NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, CODIGOIMPUESTO) ); ALTER TABLE FENOTADEBITOIMPUESTOS ADD CONSTRAINT FKNOTDEBIMP FOREIGN KEY (CCODIGO) REFERENCES FENOTADEBITO (CCODIGO); COMMENT ON TABLE FENOTADEBITOIMPUESTOS IS 'Detalle de impuestos de la nota de débito.'; COMMENT ON COLUMN FENOTADEBITOIMPUESTOS.CCODIGO IS 'Código identificador de la nota de débito.'; COMMENT ON COLUMN FENOTADEBITOIMPUESTOS.CODIGOIMPUESTO IS 'Código del impuesto cobrado. Ver ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FENOTADEBITOIMPUESTOS.CODIGOPORCENTAJE IS 'Código del porcentaje cobrado. Ver ficha técnica para los códigos de porcentajes.'; COMMENT ON COLUMN FENOTADEBITOIMPUESTOS.TARIFA IS 'Tarifa de impuesto cobrada. Relacionado con el código de porcentaje.'; COMMENT ON COLUMN FENOTADEBITOIMPUESTOS.BASEIMPONIBLE IS 'Valor sobre el que se calcula el impuesto.'; COMMENT ON COLUMN FENOTADEBITOIMPUESTOS.VALOR IS 'Valor cobrado de impuesto.'; /*==============================================================*/ /* Tabla: FENOTADEBITOINFOADICIONAL */ /*==============================================================*/ CREATE TABLE FENOTADEBITOINFOADICIONAL ( CCODIGO NUMBER(10) NOT NULL, SECUENCIA NUMBER(4) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, VALOR VARCHAR2(300) NOT NULL, PRIMARY KEY (CCODIGO, SECUENCIA) ); ALTER TABLE FENOTADEBITOINFOADICIONAL ADD CONSTRAINT FKNOTDEBINFADI FOREIGN KEY (CCODIGO) REFERENCES FENOTADEBITO (CCODIGO); COMMENT ON TABLE FENOTADEBITOINFOADICIONAL IS 'Información adicional de la nota de débito.'; COMMENT ON COLUMN FENOTADEBITOINFOADICIONAL.CCODIGO IS 'Código identificador de la nota de débito.'; COMMENT ON COLUMN FENOTADEBITOINFOADICIONAL.SECUENCIA IS 'Número secuencial que permite asociar varios registros para una nota de débito.'; COMMENT ON COLUMN FENOTADEBITOINFOADICIONAL.NOMBRE IS 'Nombre del campo adicional.'; COMMENT ON COLUMN FENOTADEBITOINFOADICIONAL.VALOR IS 'Valor del campo adicional.'; /*==============================================================*/ /* Tabla: FENOTADEBITOMOTIVOS */ /*==============================================================*/ CREATE TABLE FENOTADEBITOMOTIVOS ( CCODIGO NUMBER(10) NOT NULL, SECUENCIA NUMBER(4) NOT NULL, RAZON VARCHAR2(300) NOT NULL, VALOR NUMBER(19,2) NOT NULL, PRIMARY KEY (CCODIGO, SECUENCIA) ); ALTER TABLE FENOTADEBITOMOTIVOS ADD CONSTRAINT FKNOTDEBMOT FOREIGN KEY (CCODIGO) REFERENCES FENOTADEBITO (CCODIGO); COMMENT ON TABLE FENOTADEBITOMOTIVOS IS 'Motivos por los que se emite la nota de débito.'; COMMENT ON COLUMN FENOTADEBITOMOTIVOS.CCODIGO IS 'Código identificador de la nota de débito.'; COMMENT ON COLUMN FENOTADEBITOMOTIVOS.SECUENCIA IS 'Número secuencial que permite asociar varios motivos a esta nota de débito.'; COMMENT ON COLUMN FENOTADEBITOMOTIVOS.RAZON IS 'Razón por la que se está debitando el valor.'; COMMENT ON COLUMN FENOTADEBITOMOTIVOS.VALOR IS 'Valor debitado.'; /*==============================================================*/ /* Tabla: FERETENCION */ /*==============================================================*/ CREATE TABLE FERETENCION ( CCODIGO NUMBER(10) NOT NULL, AMBIENTE NUMBER(1) NOT NULL, TIPOEMISION NUMBER(1) NOT NULL, RAZONSOCIAL VARCHAR2(300) NOT NULL, NOMBRECOMERCIAL VARCHAR2(300), RUC VARCHAR2(13) NOT NULL, CLAVEACCESO VARCHAR2(48) NOT NULL, CODDOC VARCHAR2(2) NOT NULL, ESTAB VARCHAR2(3) NOT NULL, PTOEMI VARCHAR2(3) NOT NULL, SECUENCIAL VARCHAR2(9) NOT NULL, DIRMATRIZ VARCHAR2(300) NOT NULL, FECHAEMISION DATE NOT NULL, DIRESTABLECIMIENTO VARCHAR2(300), CONTRIBUYENTEESPECIAL VARCHAR2(13), OBLIGADOCONTABILIDAD VARCHAR2(2), TIPOIDENTIFICACIONSUJETO VARCHAR2(2) NOT NULL, RAZONSOCIALSUJETO VARCHAR2(300) NOT NULL, IDENTIFICACIONSUJETO VARCHAR2(13) NOT NULL, CORREOSUJETO VARCHAR2(100), PERIODOFISCAL VARCHAR2(7) NOT NULL, -- PERIODO FISCAL DEBE ESTAR EN FORMATO MM/aaaa FENVIO DATE, RESP CLOB, NUMEROAUTORIZACION VARCHAR2(40), ESTATUSENVIO VARCHAR2(1) DEFAULT 'P' NOT NULL, ESTATUSENVIOCORREO VARCHAR2(1) DEFAULT 'P' NOT NULL, LOGENVIOCORREO CLOB, PRIMARY KEY (CCODIGO) ); ALTER TABLE FERETENCION ADD CONSTRAINT CKESTENVCOM CHECK (ESTATUSENVIO IN ('P', 'E', 'A', 'O')); ALTER TABLE FERETENCION ADD CONSTRAINT CKESTENVCOR CHECK (ESTATUSENVIOCORREO IN ('P', 'E', 'O')); ALTER TABLE FERETENCION ADD CONSTRAINT CKRETAMB CHECK (AMBIENTE IN ('1', '2')); COMMENT ON TABLE FERETENCION IS 'Información de cabecera de un comprobante de retención.'; COMMENT ON COLUMN FERETENCION.CCODIGO IS 'Código identificador de una retención electrónica.'; COMMENT ON COLUMN FERETENCION.AMBIENTE IS 'Código de ambiente al que se envía el documento. 1 = Desarrollo/Certificación, 2 = Producción.'; COMMENT ON COLUMN FERETENCION.TIPOEMISION IS 'Tipo de emisión del comprobante. 1 = NORMAL. 2=Emisión por Indisponibilidad del Sistema.'; COMMENT ON COLUMN FERETENCION.RAZONSOCIAL IS 'Razón social de la entidad que emite la retención.'; COMMENT ON COLUMN FERETENCION.NOMBRECOMERCIAL IS 'Nombre comercial de la entidad que emite la retención.'; COMMENT ON COLUMN FERETENCION.RUC IS 'Número del Registro Único de Contribuyentes de la entidad que emite la retención.'; COMMENT ON COLUMN FERETENCION.CLAVEACCESO IS 'Clave de acceso del comprobante. Se guardan los 48 primeros dígitos. El dígito verificador se calcula en la aplicación.'; COMMENT ON COLUMN FERETENCION.CODDOC IS 'Código del documento. Para notas de débito siempre va a ser 07. Campo necesario para generar una cabecera genérica de comprobantes.'; COMMENT ON COLUMN FERETENCION.ESTAB IS 'Código del establecimiento desde el que se emite el comprobante. El código debe estar registrado en el SRI.'; COMMENT ON COLUMN FERETENCION.PTOEMI IS 'Punto de emisión del comprobante. El punto de emisión debe estar registrado en el SRI.'; COMMENT ON COLUMN FERETENCION.SECUENCIAL IS 'Número secuencial del comprobante, a cargo de la entidad que emite el comprobante.'; COMMENT ON COLUMN FERETENCION.DIRMATRIZ IS 'Dirección de la matriz de la entidad que emite el comprobante.'; COMMENT ON COLUMN FERETENCION.FECHAEMISION IS 'Fecha de emisión del comprobante.'; COMMENT ON COLUMN FERETENCION.DIRESTABLECIMIENTO IS 'Dirección del establecimiento desde el que se emite el comprobante.'; COMMENT ON COLUMN FERETENCION.CONTRIBUYENTEESPECIAL IS 'Código de contribuyente especial dado por el SRI a la entidad que emite el comprobante.'; COMMENT ON COLUMN FERETENCION.OBLIGADOCONTABILIDAD IS 'Indica si está obligado a llevar contabilidad. SI o NO.'; COMMENT ON COLUMN FERETENCION.TIPOIDENTIFICACIONSUJETO IS 'Código del tipo de identificación del sujeto retenido. Revisar ficha técnica del SRI para códigos disponibles.'; COMMENT ON COLUMN FERETENCION.RAZONSOCIALSUJETO IS 'Razón social del sujeto retenido.'; COMMENT ON COLUMN FERETENCION.IDENTIFICACIONSUJETO IS 'Número de identificación del sujeto retenido. El número de identificación debe estar de acuerdo al tipo indicado en el campo TIPOIDENTIFICACIONSUJETO.'; COMMENT ON COLUMN FERETENCION.CORREOSUJETO IS 'Dirección de correo electrónico usada por el programa que envía correos en lote para enviar el comprobante.'; COMMENT ON COLUMN FERETENCION.PERIODOFISCAL IS 'Campo formado por el mes y el año en el que se emite el comprobante, por ejemplo 07/2016.'; COMMENT ON COLUMN FERETENCION.FENVIO IS 'Campo de control que muestra la última fecha en la que se contactó al SRI para enviar el comprobante.'; COMMENT ON COLUMN FERETENCION.RESP IS 'JSON de respuesta del programa que envía comprobantes al SRI.'; COMMENT ON COLUMN FERETENCION.NUMEROAUTORIZACION IS 'Número de autorización entregado por el SRI cuando se aprueba el comprobante.'; COMMENT ON COLUMN FERETENCION.ESTATUSENVIO IS 'Código de estatus de envío del comprobante. P = Pendiente, E = Error, A = Por aprobar, O = OK'; COMMENT ON COLUMN FERETENCION.ESTATUSENVIOCORREO IS 'Código de estatus de envío del correo electrónico al cliente. P = Pendiente, E = Error, O = OK.'; COMMENT ON COLUMN FERETENCION.LOGENVIOCORREO IS 'Log del proceso de envío de correo, llenado por el programa que envía correos en lote.'; /*==============================================================*/ /* Tabla: FERETENCIONIMPUESTOS */ /*==============================================================*/ CREATE TABLE FERETENCIONIMPUESTOS ( CCODIGO NUMBER(10) NOT NULL, CODIGOIMPUESTO VARCHAR2(2) NOT NULL, CODIGORETENCION VARCHAR2(5) NOT NULL, BASEIMPONIBLE NUMBER(19,2) NOT NULL, PORCENTAJERETENER NUMBER(19,2) NOT NULL, VALORRETENIDO NUMBER(19,2) NOT NULL, CODDOCSUSTENTO VARCHAR2(2) NOT NULL, NUMDOCSUSTENTO VARCHAR2(15), FECHAEMISIONDOCSUSTENTO DATE, PRIMARY KEY (CCODIGO, CODIGOIMPUESTO, CODIGORETENCION) ); ALTER TABLE FERETENCIONIMPUESTOS ADD CONSTRAINT FKRETIMP FOREIGN KEY (CCODIGO) REFERENCES FERETENCION (CCODIGO); COMMENT ON TABLE FERETENCIONIMPUESTOS IS 'Detalle de los impuestos cobrados en la retención.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.CCODIGO IS 'Código identificador de la retención a la que pertenece el registro.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.CODIGOIMPUESTO IS 'Código del impuesto cobrado (Renta, IVA, ISD). Ver la ficha técnica del SRI para obtener los códigos disponibles.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.CODIGORETENCION IS 'Código correspondiente al concepto de retención. Ver ficha técnica del SRI para obtener los códigos disponibles.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.BASEIMPONIBLE IS 'Valor sobre el que se calcula el impuesto.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.PORCENTAJERETENER IS 'Código del porcentaje a retener correspondiente al código del impuesto y al concepto. Ver ficha técnica del SRI para obtener los códigos disponibles.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.VALORRETENIDO IS 'Valor calculado a ser retenido.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.CODDOCSUSTENTO IS 'Tipo de documento al que se le aplica la retención. Puede ser 01=Factura, 04=Nota de crédito, 05=Nota de débito, 06=Guía de remisión, 07=Retención.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.NUMDOCSUSTENTO IS 'Número del documento de sustento al que hace referencia esta retención.'; COMMENT ON COLUMN FERETENCIONIMPUESTOS.FECHAEMISIONDOCSUSTENTO IS 'Fecha de emisión del documento de sustento.'; /*==============================================================*/ /* Tabla: FERETENCIONINFOADICIONAL */ /*==============================================================*/ CREATE TABLE FERETENCIONINFOADICIONAL ( CCODIGO NUMBER(10) NOT NULL, SECUENCIA NUMBER(4) NOT NULL, NOMBRE VARCHAR2(100) NOT NULL, VALOR VARCHAR2(300) NOT NULL, CONSTRAINT IPKFETINFADI PRIMARY KEY (CCODIGO, SECUENCIA) ); ALTER TABLE FERETENCIONINFOADICIONAL ADD CONSTRAINT FKRETIMPADI FOREIGN KEY (CCODIGO) REFERENCES FERETENCION (CCODIGO); COMMENT ON TABLE FERETENCIONINFOADICIONAL IS 'Información adicional para la retención.'; COMMENT ON COLUMN FERETENCIONINFOADICIONAL.CCODIGO IS 'Código identificador de la retención.'; COMMENT ON COLUMN FERETENCIONINFOADICIONAL.SECUENCIA IS 'Secuencial que permite asociar varios registros a una retención.'; COMMENT ON COLUMN FERETENCIONINFOADICIONAL.NOMBRE IS 'Nombre del campo adicional.'; COMMENT ON COLUMN FERETENCIONINFOADICIONAL.VALOR IS 'Valor del campo adicional.'; /*==============================================================*/ /* Tabla: FESECUENCIACOMPROBANTE */ /*==============================================================*/ CREATE TABLE FESECUENCIACOMPROBANTE ( CODIGOCOMPROBANTE VARCHAR2(2) NOT NULL, ESTABLECIMIENTO VARCHAR2(3) NOT NULL, SECUENCIA NUMBER(10) DEFAULT 1 NOT NULL, VERSIONCONTROL NUMBER(22) DEFAULT 0 NOT NULL, CONSTRAINT IPKFESECCOM PRIMARY KEY (CODIGOCOMPROBANTE, ESTABLECIMIENTO) ); COMMENT ON TABLE FESECUENCIACOMPROBANTE IS 'Números de secuencia para cada tipo de comprobante y establecimiento.'; COMMENT ON COLUMN FESECUENCIACOMPROBANTE.CODIGOCOMPROBANTE IS 'Código del tipo de comprobante: 01 factura, 04 nota crédito, 05 nota débito, 06 guía remisión, 07 retención.'; COMMENT ON COLUMN FESECUENCIACOMPROBANTE.ESTABLECIMIENTO IS 'Código de establecimiento para el que se aplica esta secuencia.'; COMMENT ON COLUMN FESECUENCIACOMPROBANTE.SECUENCIA IS 'Número secuencial que tendrá el siguiente comprobante que se genere para el establecimiento correspondiente.'; -- SECUENCIAS CREATE SEQUENCE SEQFEFACTURA INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999999999999999999 MINVALUE 1; CREATE SEQUENCE SEQFENOTACREDITO INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999999999999999999 MINVALUE 1; CREATE SEQUENCE SEQFENOTADEBITO INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999999999999999999 MINVALUE 1; CREATE SEQUENCE SEQFERETENCION INCREMENT BY 1 START WITH 1 MAXVALUE 999999999999999999999999999 MINVALUE 1;