Post on 01-Oct-2018
Características Técnicas del archivo prototipo para la importación de documentos [SQL-Facturak].
Contenido Control de Versiones ................................................................................................................................................... 2
Objetivo ............................................................................................................................................................................. 3
Interface Genérica SQL-[Facturak]. .................................................................................................................. 3
Reglas Generales: ..................................................................................................................................................... 3
Descripción de los campos de FacturaEncabezado ........................................................................................ 5
Descripción de los campos de FacturaDetalle ............................................................................................... 12
Script para la construcción de las tablas para documentos previos a factura. ................................ 17
Control de Versiones Fecha Versión Descripción Realizó Revisó
2010-11-02 1.0.0 Creación del documento. Ing. Adelfo Gallardo
2011-01-20 1.0.1 Actualización de campos Ing. Adelfo Gallardo
2011-01-24 1.0.2 Se agregan campos para control de errores Ing. Adelfo Gallardo
2011-06-06 2.0.1 Se agregó campo RFC en Encabezado para
identificar Empresa Emisora.
Ing. Sergio R. Luna
Saavedra
2011-06-14 2.0.2 Se agregó campo
-ExcluirDelCFD
-ExcluirDeImpresion
Sirve para identificar elementos (detalle) que no
se desean incluir en XML de salida.
Ing. Sergio R. Luna
Saavedra
2012-04-05 2.1.0 Se agregó campo
-NumCtaPago
-SerieFiscalOriginal
-FolioFiscalOriginal
-MontoFiscalOriginal
-FechaFiscalOriginal
Correspondiente a los cambios del SAT del
2012.
Ing. Manuel
Alejandro Garza
Enríquez
2012-04-13 2.2.0 Se agregó campo
- Observaciones 6,7,8,9,10
- Extranumerico 6,7,8,9,10
Ing. Manuel
Alejandro Garza
Enríquez
2017-05-10 3.3.0 Se agregan los campos para generar CFDI3.3 Ing. Adelfo Gallardo
Objetivo
Interface Genérica SQL-[Facturak]. Al optar por el protocolo de comunicación mediante esquema de tablas genéricas de SQL entre
el [ERP] de la Empresa y el sistema de Facturación Electrónica Facturak, el cliente deberá llenar las
tablas de documentos previos a facturación mediante las siguientes indicaciones:
Reglas Generales: 1. Debe generar las estructuras de las tablas de documentos previos a facturar en el servidor SQL
utilizando el script proporcionado más adelante en el punto D.
2. Una vez ejecutado el script deberá verificar que las tablas de documentos previos a facturar se
hayan creado.
3. El script genera 4 tablas las cuales se definen a continuación:
a) TipoDocumento: Esta tabla se crea para especificar las opciones disponibles a utilizar
como tipos de documentos posteriormente en los documentos de facturas. Esta tabla debe
mantenerse fija y sin modificarse.
b) Moneda: Esta tabla se crea y se llena con la finalidad de proporcionar las guias de los
valores que se espera utilice posteriormente en los campos de moneda, al generar un
documento previo a facturar.
c) FacturaEncabezado: Esta tabla contiene todos los campos que deben llenarse dentro del
encabezado de la factura. La especificación y descripción de los campos se especifica más
adelante en el punto B de este manual.
d) FacturaDetalle: Esta tabla contiene todos los campos que deben llenarse dentro del detalle
de la factura. En esta sección se llena la información de los conceptos que componen la
factura. La especificación y descripción de los campos se especifica más adelante en el
punto C de este manual.
4. Deberá llenar todos los campos que se especifican en esta documentación, deberá tener
cuidado de no omitir ningún campo que viene considerado como campo obligatorio.
5. En caso de uno utilizar un campo que no es obligatorio (opcional) puede dejarlo vacio con el
valor NULL o con el string vacio (“”). En el caso de que sea un campo numérico favor de
especificar 0.
6. Se debe dejar un registro en FacturaEncabezado por cada factura, y N registros para
FacturaDetalle, dependiendo de los conceptos que requiere en su factura.
7. Existen unos campos cuyo nombre inicia con la palabra “Facturak”, ejemplo:
FacturakProcesado, FacturakFolio, etc. Dichos campos son de uso interno de facturak por lo
que solo deberá utilizarlos para lectura.
Descripción de los campos de FacturaEncabezado
No. Campo Descripción Tamaño ¿Obligatorio?
1 Id Identificador único de la factura N/A SI
2 Version Indica la versión del archivo que se está
utilizando para cargar la información.
Valor alfanumérico
10 caracteres
SI
3 RFC RFC de la Empresa Emisora Valor alfanumérico
13 Caracteres
SI
4 TipoDocumento Indica el tipo de documento a generar F - Factura
CR –Nota Crédito
CA – Nota Cargo
RH – Rec.
Honorarios
SI
5 NoFactura No. de Folio por asignar al CFD.
Nota: Solo se especifica cuando el consecutivo
será generado por el [ERP] origen. (No
recomendado)
Valor alfanumérico
6 Caracteres
NO
6 Serie Serie de facturas a utilizar para la generación
de CFD.
Valor alfanumérico
1-10 Caracteres
SI
7 ClaveSucursal Clave de la Sucursal que emite la factura. Valor alfanumérico
0-10
NO
8 Fecha Fecha de generación de documento del ERP.
No es la fecha de facturación.
Valor permitido
yyyyMMdd
HH:mm:ss
NO
9 FormaDePago Forma de pago de la factura Valor alfanumérico
1-50 Caracteres
NO
10 CondicionesDePago Condiciones de pago de la factura Valor alfanumérico
1-50 Caracteres
NO
11 MetodoDePago Método de pago de la factura Valor alfanumérico
1-50 Caracteres
NO
12 MotivoDeDescuento Motivo de Descuento de la factura Valor alfanumérico
0-50 Caracteres
NO
13 Moneda Tipo de moneda a facturar. PESOS, DOLAR,
EUROS
Valor alfanumérico
1-30 Caracteres
SI
14 TipoDeCambio Paridad o tipo de cambio a utilizar en la
factura. Si no se especifica valor se considera
valor 1.
Valores permitidos
0.00-9999999.99
NO
15 NoDeControl Numero de Facturo o Folio emitido por el
[ERP].
Valor alfanumérico
0-50 Caracteres
SI
16 NoDeOrden Numero de Orden Interno al ERP. Valor alfanumérico
0-50 Caracteres
NO
17 TipoRelacion Es el tipo de relación cuando el
comprobante debe ir relacionado a un
comprobante fiscal previamente
generado. 01 – Notas de crédito, 02 –
Notas de Debito, 03 – Devolucion de
mercancía, 04 – Sustitución de CFDIs, 05 –
Traslado de mercancía, 06 – Factura
generada por traslados
Valor
alfanumérico 0 –
50 Caracteres
NO
18 CFDisRelacionados Debe especificar el o los UUIDs
relacionados a este documento separados
por coma “,”
Valor
Alfanumerico 0 –
4000 caracteres
NO
19 NoDeRemisión Numero de Remisión generado en el [ERP]. Valor alfanumérico
0-50 Caracteres
NO
20 ReceptorClave Clave o identificador del Cliente Valor alfanumérico
1-10 Caracteres
SI
21 ReceptorRFC RFC del Cliente Valor alfanumérico
12-13 Caracteres
SI
22 ReceptorNombreComerci
al
Nombre comercial del Cliente Valor alfanumérico
1-100 Caracteres
SI
23 ReceptorRazónSocial Razón Social del Cliente Valor alfanumérico
1-100 Caracteres
SI
24 ReceptorCalle Calle [Dir. Fiscal] del Cliente Valor alfanumérico
1-80 Caracteres
NO
25 ReceptorNoExterior No. Exterior [Dir. Fiscal] del Cliente Valor alfanumérico
1-30 Caracteres
NO
26 ReceptorNoInterior No. Interior [Dir. Fiscal] del Cliente Valor
alfanumérico0-30
Caracteres
NO
27 ReceptorReferencia Referencia [Dir. Fiscal] del Cliente Valor alfanumérico
0-60 Caracteres
NO
28 ReceptorColonia Colonia [Dir. Fiscal] del Cliente Valor alfanumérico
1-80 Caracteres
NO
29 ReceptorLocalidad Localidad [Dir. Fiscal] del Cliente Valor alfanumérico
0-60 Caracteres
NO
30 ReceptorMunicipio Municipio [Dir. Fiscal] del Cliente Valor alfanumérico
1-60 Caracteres
NO
31 ReceptorEstado Estado [Dir. Fiscal] del Cliente Valor alfanumérico
1-60 Caracteres
NO
32 ReceptorPais País [Dir. Fiscal] del Cliente Valor alfanumérico
1-60 Caracteres
SI
33 ReceptorCodigoPostal C.P. [Dir. Fiscal] del Cliente Valor alfanumérico
1-10 Caracteres
NO
34 ReceptorEmail Correo electrónico al cual se enviara la
factura. Si se especifican varias direcciones
deberán separarse mediante ‘;’ (punto y
coma)
Valor alfanumérico
0-500 Caracteres
NO
35 ReceptorEntregarANomb
re
Nombre a quien se entrega productos o
servicios
Valor alfanumérico
0-200
NO
36 ReceptorEntregarARazon
Social
Razón Social a la que se entrega producto o
servicio
Valor alfanumérico
0-200
NO
37 ReceptorEntregarADirecc
ión
Dirección de entrega de producto o servicio Valor alfanumérico
0-200
NO
38 ReceptorEntregarAEstad
o
Entidad de entrega de producto o servicio Valor alfanumérico
0-200
NO
39 ReceptorResidenciaFisc
al
Atributo condicional para registrar la
clave del país de residencia para efectos
fiscales del receptor del comprobante,
cuando se trate de un extranjero, y que es
conforme con la especificación ISO 3166-1
alpha-3. Es requerido cuando se incluya el
Valor
alfanumérico 0-50
caracteres
NO
complemento de comercio exterior o se
registre el atributo NumRegIdTrib.
40 ReceptorNumRegIdTri
b
Atributo condicional para expresar el
número de registro de identidad fiscal del
receptor cuando sea residente en el
extranjero. Es requerido cuando se
incluya el complemento de comercio
exterior
Valor
Alfanumérico 0-
50 Caracterees
NO
41 UsoCFDI Atributo requerido para expresar la clave
del uso que dará a esta factura el receptor
del CFDI.
Valor
Alfanumérico 0-
50 Caracteres
SI
42 Subtotal Subtotal de la factura. Debe estar dado por la
sumatoria de los importes del Detalle.
Valores permitidos
0.00-9999999.99
SI
43 DescuentoPorcentaje Porcentaje de Descuento a aplicar. Valores permitidos
0-100
NO
44 DescuentoImporte Importe de Descuento a aplicar. Valores permitidos
0.00-9999999.99
NO
45 IepsPorcentaje Porcentaje de impuesto IEPS Valores permitidos
0.00-9999999.99
NO
46 IepsImporte Importe de impuesto IEPS Valores permitidos
0.00-9999999.99
NO
47 IvaRetenido Importe de IVA Retenido Valores permitidos
0.00-9999999.99
NO
48 IsrRetenido Importe de ISR Retenido Valores permitidos
0.00-9999999.99
NO
49 ISHPorcentaje Porcentaje de Impuesto sobre hospedaje Valores permitidos
0.00-9999999.99
NO
50 ISHImporte Importe de Impuesto sobre Hospedaje Valores permitidos
0.00-9999999.99
NO
51 IvaPorcentaje Porcentaje de IVA a aplicar. Valores permitidos
0-100
NO
52 IvaImporte Importe de IVA calculado. Valores permitidos
0.00-9999999.99
NO
53 TotalFactura Total de la factura. Debe estar dado por Total
= Subtotal –Descuento + ImpuestosTraslados
- ImpuestosRetenidos.
Valores permitidos
0.00-9999999.99
SI
54 Estatus Campo que indica el estatus del Documento
[C = Cancelado]
Valores permitidos
‘C’
NO
55 Observaciones 1 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
56 Observaciones 2 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
57 Observaciones 3 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
58 Observaciones 4 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
59 Observaciones5 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
60 Observaciones6 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
61 Observaciones7 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
62 Observaciones8 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
63 Observaciones9 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
64 Observaciones10 Campo de observaciones adicionales de la
Factura.
Valor alfanumérico
0-500 Caracteres
NO
65 ExtraNumerico1 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
66 ExtraNumerico2 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
67 ExtraNumerico3 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
68 ExtraNumerico4 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
69 ExtraNumerico5 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
70 ExtraNumerico6 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
71 ExtraNumerico7 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
72 ExtraNumerico8 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
73 ExtraNumerico9 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
74 ExtraNumerico10 Valor numérico extra, para incluir en la
información del comprobante.
Valores permitidos
0.00- 9999999.99
NO
75 EsEditable Indica si el registro de esta factura debe
importarse únicamente como prefactura para
poder editarla manualmente.
0 o 1 NO
76 NumCtaPago Indica los cuatro últimos dígitos del número
de cuenta con la que se realizó el pago.
Valor alfanumérico
0-4 Caracteres
NO
77 SerieFolioFiscalOriginal Nombre de la serie del folio del comprobante
que se hubiese expedido por el valor total del
comprobante, tratándose del pago en
parcialidades
Valor alfanumérico
0-10 Caracteres
NO
78 FolioFiscalOriginal Número del folio fiscal del comprobante que
se hubiese expedido por el valor total del
comprobante, tratándose del pago en
parcialidades.
Valores Permitidos
1 – 9999999
NO
79 MontoFolioFiscalOriginal Total importe del comprobante que se
hubiese expedido por el valor total de la
operación, tratándose del pago en
parcialidades.
Valores Permitidos
1.00 – 9999999.00
NO
80 FechaFolioFiscalOriginal Fecha de expedición del comprobante que se
hubiese emitido por el valor total del
comprobante, tratándose del pago en
parcialidades. Se expresa en la forma aaaa-
mm-ddThh:mm:ss, de acuerdo con la
especificación ISO 8601.
Valor permitido
yyyyMMdd
HH:mm:ss
NO
81 FacturakProcesado Indica si la interfaz con facturak ha procesado
este registro. 0 = No procesado, 1 =
Procesado
0 ó 1 NO
82 FacturakFolio Al generar el CFD, facturak regresa en este
campo el Folio asignado a este registro.
Valores permitidos
0.00- 9999999.99
NO
83 FacturakSerie Al generar el CFD, facturak regresa en este
campo la serie asignada a este registro.
Valor alfanumérico
1-10 Caracteres
NO
84 FacturakSerieFolio Al generar el CFD, facturak regresa en este
campo la serie y folio asignados a este
registro.
Valor alfanumérico
1-10 Caracteres
NO
85 FacturakXML Al generar el CFD, facturak regresa en este
campo el XML generado para este registro
Valor alfanumérico
1-10000 Caracteres
NO
86 FacturakFileNameTXT En caso de que este registro haya sido
importado de un archivo, este campo se
graba el nombre del archivo origen
Valor alfanumérico
1-50 Caracteres
NO
87 ERPProcesado Puede utilizar este campo para marcar los
registros que el ERP ha procesado de regreso
0 ó 1 NO
88 FacturakFhaHoraCFD Al generar el CFD, Facturak regresa en este
campo la fecha y hora a la cual se generó este
registro.
N/A NO
89 FacturakError Indica si el registro ha regresado un error. 0 ó 1 NO
90 FacturakErrorMessage Indica el mensaje de error que ha provocado
este registro.
Valor alfanumérico
1-10000 Caracteres
NO
Descripción de los campos de FacturaDetalle
No. Campo Descripción Tamaño ¿Obligatorio?
1 IdEncabezado Id del encabezado al cual pertenece esta
factura.
Valores permitidos
1-999999
SI
2 No. Partida Consecutivo de registro Valores permitidos
1-999999
SI
3 ClaveProdServ Atributo requerido para expresar la
clave del producto o del servicio
amparado por el presente concepto.
Es requerido y deben utilizar las
claves del catálogo de productos y
servicios, cuando los conceptos que
registren por sus actividades
correspondan con dichos conceptos.
Valor
Alfanumérico 0-50
Caracteres
SI
4 Cantidad Cantidad de bienes o servicios Valores permitidos
1-9999999
SI
5 ClaveUnidad Atributo requerido para precisar la
clave de unidad de medida
estandarizada aplicable para la
cantidad expresada en el concepto.
La unidad debe corresponder con la
descripción del concepto
Valor
Alfanumérico 0 –
50 Caracteres
SI
6 Unidad Unidad de medida aplicable para la
cantidad expresada en el concepto.
Valor alfanumérico
0-50 Caracteres
NO
7 No. Identificación Número de identificación del servicio o
producto.
Valor alfanumérico
0-50 Caracteres
NO
8 Código Código interno del servicio o producto. Valor alfanumérico
0-50 Caracteres
NO
9 Descripción Descripción del bien o servicio Valor alfanumérico
1-200 Caracteres
SI
10 Valor Unitario Valor o precio unitario del bien o
servicio. Sin impuesto
Valores permitidos
0.00-9999999.99
SI
11 Descuento [%] Porcentaje de Descuento aplicado al
bien o servicio
Valores permitidos
0.00-9999999.99
NO
12 Descuento [Importe] Descuento calculado aplicado al bien o
servicio
Valores permitidos
0.00-9999999.99
NO
13 IVA [%] Porcentaje de IVA aplicable al bien o
servicio
Valores permitidos
0-100
NO
14 IVA [Importe] IVA calculado para el bien o servicio. Valores permitidos
0.00-9999999.99
NO
15 IepsPorcentaje Indica el porcentaje de impuesto IEPS
aplicable a este concepto.
Valores permitidos
0.00-9999999.99
NO
16 IepsImporte Indica el importe de impuesto IEPS
aplicable a este concepto
Valores permitidos
0.00-9999999.99
NO
17 Importe Importe total de los bienes o servicios
del presente concepto.
Importe = Cantidad x Valor Unitario
Valores permitidos
0.00-9999999.99
SI
18 IVARetenidoPorcentaje Porcentaje del IVA Retenido Valores Permitidos
0.00 – 100
NO
19 IVARetenidoImporte Importe del IVA Retenido Valores Permitidos
0.00 – 9999999.99
NO
20 ISRPorcentaje Porcentaje de ISR Retenido Valores parciales
0.00 – 100
NO
21 ISRImporte Importe del ISR Retenido Vaores Permitidos
0.00 – 9999999.99
NO
22 NumeroDeSerie Número de serie del bien o servicio en
caso de que aplique. Puede especificar
más de un número de serie
separándolos con coma.
Valor alfanumérico
1-500 Caracteres
NO
23 Pedimento Pedimento que corresponde al producto
o bien especificado, puede especificar
más de un pedimento separándolos con
coma.
Valor alfanumérico
1-500 Caracteres
NO
24 FechaPedimento Fecha del pedimento correspondiente al
producto o bien especificado. La fecha
Valor alfanumérico
1-500 Caracteres
NO
deberá estar especificada en el formato
(“yyyy-MM-dd”). Puede indicar más de
una fecha de pedimento separándolas
con coma.
25 Aduana Aduana correspondiente al producto o
bien especificado. Puede indicar más de
una aduana separándolas con coma.
Valor alfanumérico
1-500 Caracteres
NO
26 Observación Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
27 Observaciones2 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
28 Observaciones3 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
29 Observaciones4 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
30 Observaciones5 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
31 Observaciones6 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
32 Observaciones7 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
33 Observaciones8 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
34 Observaciones9 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
35 Observaciones10 Observaciones o comentarios
específicos del bien o servicio del
presente concepto
Valor alfanumérico
0-500 Caracteres
NO
36 ExtraNumerico1 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
37 ExtraNumerico2 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
38 ExtraNumerico3 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
39 ExtraNumerico4 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
40 ExtraNumerico5 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
41 ExtraNumerico6 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
42 ExtraNumerico7 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
43 ExtraNumerico8 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
44 ExtraNumerico9 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
45 ExtraNumerico10 Valor Numérico adicional relacionado al
bien o servicio del presente concepto.
Valores permitidos
0.00-9999999.99
NO
46 ExcluirDelCFD Campo utilizado para indicar si el
registro (detalle) será excluido en el
XML de salida. 0 ó (null) – Indica que el
ítem será Incluido en el XML; 1 – Indica
que el ítem será Excluido del XML.
Valores permitidos
0 ó 1
NO
47 ExcluirDeImpresion Campo utilizado para indicar si el
registro (detalle) será excluido de la
impresión en el PDF de salida. 0 ó (null)
– Indica que el ítem será Incluido de la
impresión PDF; 1 – Indica que el ítem
será Excluido de la impresión PDF.
Valores permitidos
0 ó 1
NO
Script para la construcción de las tablas para documentos previos a factura.
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FacturaEncabezado]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[FacturaDetalle] if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FacturaEncabezado]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[FacturaEncabezado] if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[TipoDocumento]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[TipoDocumento] if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[Moneda]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[Moneda] if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FacturaComCCE]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[FacturaComCCE] if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FacturaComCCEDet]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[FacturaComCCEDet] create table TipoDocumento ( Clave nvarchar(50) not null unique, Nombre nvarchar(50) not null unique ) insert into TipoDocumento(Clave, Nombre) values('F', 'Factura') insert into TipoDocumento(Clave, Nombre) values('CR', 'Nota Credito') insert into TipoDocumento(Clave, Nombre) values('CA', 'Nota Cargo') insert into TipoDocumento(Clave, Nombre) values('RH', 'Rec. Honorarios') create table Moneda ( Nombre nvarchar(30) not null unique, Abreviacion nvarchar(5) not null ) insert into Moneda(Nombre, Abreviacion) values('PESOS', 'MXN') insert into Moneda(Nombre, Abreviacion) values('DOLARES', 'USD')
create table FacturaEncabezado ( ID bigint primary key identity(1,1), RFC nvarchar(50), TipoDocumento nvarchar(50) not null foreign key references TipoDocumento(Clave), NoFacturaFolio nvarchar(20), Serie nvarchar(10), ClaveSucursal nvarchar(10), Fecha datetime not null, FormaDePago nvarchar(50) not null, CondicionesDePago nvarchar(50) not null, MetodoDePago nvarchar(50) not null, MotivoDeDescuento nvarchar(50), Moneda nvarchar(30) not null foreign key references Moneda(Abreviacion), TipoDeCambio float default (1), NoDeControl nvarchar(50) not null, NoDeOrden nvarchar(50), NoDeRemision nvarchar(50), TipoRelacion nvarchar(50), CFDisRelacionados nvarchar(4000), ReceptorClave nvarchar(10) not null, ReceptorRFC nvarchar(20) not null, ReceptorNombreComercial nvarchar(100) not null, ReceptorRazonSocial nvarchar(100) not null, ReceptorCalle nvarchar(80) null, ReceptorNoExterior nvarchar(30) null, ReceptorNoInterior nvarchar(30) null, ReceptorReferencia nvarchar(60) null, ReceptorColonia nvarchar(80) null, ReceptorLocalidad nvarchar(60) null, ReceptorMunicipio nvarchar(60) null, ReceptorEstado nvarchar(60) null, ReceptorPais nvarchar(60) null, ReceptorCodigoPostal nvarchar(10) null, ReceptorEmail nvarchar(120) null, ReceptorEntregarANombre nvarchar(200) null, ReceptorEntregarARazonSocial nvarchar(200) null, ReceptorEntregarADireccion nvarchar(200) null, ReceptorEntregarAEstado nvarchar(200) null, ReceptorResidenciaFiscal nvarchar(50) null, ReceptorNumRegIdTrib nvarchar(50) null, UsoCFDI nvarchar(50) null, Subtotal float not null, DescuentoPorcentaje float null, DescuentoImporte float null, IepsPorcentaje float null default (0), IepsImporte float null default (0), IvaRetenido float null, IsrRetenido float null,
IvaPorcentaje float not null, IvaImporte float not null, IshPorcentaje float null, IshImporte float null, TotalFactura float not null, Estatus nvarchar(2) null, Observaciones1 nvarchar(500) null, Observaciones2 nvarchar(500) null, Observaciones3 nvarchar(500) null, Observaciones4 nvarchar(500) null, Observaciones5 nvarchar(500) null, -- Nuevos Abril 2012 Observaciones6 nvarchar(500) null, Observaciones7 nvarchar(500) null, Observaciones8 nvarchar(500) null, Observaciones9 nvarchar(500) null, Observaciones10 nvarchar(500) null, -- Nuevos Abril 2012 ExtraNumerico1 float null, ExtraNumerico2 float null, ExtraNumerico3 float null, ExtraNumerico4 float null, ExtraNumerico5 float null, -- Nuevos Abril 2012 ExtraNumerico6 float null, ExtraNumerico7 float null, ExtraNumerico8 float null, ExtraNumerico9 float null, ExtraNumerico10 float null, -- Nuevos Junio 2015 PdfFile nvarchar(2500), -- Nuevos Abril 2012 EsEditable bit null default (0), --- Cambios 2012 NumCtaPago nvarchar(500) null, FolioFiscalOriginal nvarchar(500) null, SerieFolioFiscalOriginal nvarchar(500) null, FechaFolioFiscalOriginal datetime null, MontoFolioFiscalOriginal nvarchar(500) null, --- Cambios 2012 --- Campos que llenará facturak... FacturakProcesado bit null, FacturakError bit null, FacturakErrorMessage nvarchar(MAX) null, FacturakFolio int null, FacturakSerie nvarchar(10) null, FacturakSerieFolio nvarchar(20) null, FacturakXml nvarchar(max), FacturakUUID nvarchar(50), FacturakFhaHoraCFD datetime, FacturakFileNameTXT nvarchar(50) null, ERPProcesado bit null
) create table FacturaDetalle ( ID bigint primary key identity(1,1), IDEncabezado bigint not null foreign key references FacturaEncabezado(ID), NoPartida int not null, ClaveProdServ nvarchar(50) , Cantidad float not null, ClaveUnidad nvarchar(50) , Unidad nvarchar(50) null, NoIdentificacion nvarchar(50) null, Codigo nvarchar(50) null, Descripcion nvarchar(200) not null, ValorUnitario float not null, DescuentoPorcentaje float null, DescuentoImporte float null, IvaPorcentaje float null, IvaImporte float null, IepsPorcentaje float null, IepsImporte float null, Importe float not null, IVARetenidoPorcentaje float , IVARetenidoImporte float , ISRPorcentaje float , ISRImporte float , Observacion nvarchar(500) null, Pedimento nvarchar(MAX) null, FhaPedimento nvarchar(MAX) null, Aduana nvarchar(MAX) null, CuentaPredial nvarchar(500) null, Observaciones2 nvarchar(500) null, Observaciones3 nvarchar(500) null, Observaciones4 nvarchar(500) null, Observaciones5 nvarchar(500) null, ------------------------------------------------------- Nuevos Abril 2012 Observaciones6 nvarchar(500) null, Observaciones7 nvarchar(500) null, Observaciones8 nvarchar(500) null, Observaciones9 nvarchar(500) null, Observaciones10 nvarchar(500) null, ------------------------------------------------------- Nuevos Abril 2012 ExtraNumerico1 float null, ExtraNumerico2 float null, ExtraNumerico3 float null, ExtraNumerico4 float null, ExtraNumerico5 float null, ------------------------------------------------------- Nuevos Abril 2012 ExtraNumerico6 float null, ExtraNumerico7 float null,
ExtraNumerico8 float null, ExtraNumerico9 float null, ExtraNumerico10 float null, ------------------------------------------------------- Nuevos Abril 2012 ExcluirDelCFD bit null, ExcluirDeImpresion bit null ) create table FacturaComCCE ( ID bigint primary key identity(1,1), IDEncabezado bigint not null foreign key references FacturaEncabezado(ID), Version nvarchar(10) not null, TipoOperacion nvarchar(10) not null, ClaveDePedimento nvarchar(10) null, CertificadoOrigen nvarchar(10) null, NumCertificadoOrigen nvarchar(50) null, NumeroExportadorConfiable nvarchar(100) null, Incoterm nvarchar(10) null, Subdivision nvarchar(10) null, Observaciones nvarchar(500) null, TipoCambioUSD float null, TotalUSD float null, EmisorCurp nvarchar(20) null, ReceptorCurp nvarchar(20) null, ReceptorNumRegIdTrib nvarchar(50) not null, DestinatarioNumRegIdTrib nvarchar(50) null, Rfc nvarchar(20) null, DestinatarioCurp nvarchar(20) null, Nombre nvarchar(300) null, Calle nvarchar(100) null, NumeroExterior nvarchar(100) null, NumeroInterior nvarchar(100) null, Colonia nvarchar(120) null, Localidad nvarchar(120) null, Referencia nvarchar(250) null, Municipio nvarchar(120) null, Estado nvarchar(30) null, Pais nvarchar(10) null, CodigoPostal nvarchar(20) null ) create table FacturaComCCEDet ( ID bigint primary key identity(1,1), IDEncabezado bigint not null foreign key references FacturaEncabezado(ID), NoIdentificacion nvarchar(100) not null, FraccionArancelaria nvarchar(50) null, CantidadAduana float null, UnidadAduana nvarchar(30) null, ValorUnitarioAduana float null, ValorDolares float not null,
Marca nvarchar(50) null, Modelo nvarchar(100) null, SubModelo nvarchar(50) null, NumeroSerie nvarchar(50) null )