Está en la página 1de 12

1.- ACTUALIZACION FACTURACION LIBRE - Manejo de Retenciones (IVA, ISR). a). b). Crear campo en tabla facturaElectronicaXMLimp.

ALTER TABLE facturaElectronicaXMLimp ADD tipo char(1) null


Crear tabla facturaElectronicaRegimen. USE [mobilegas] GO CREATE TABLE [dbo].[facturaElectronicaRegimen]( [empresa_id] [int] NOT NULL, [corporativo_id] [int] NOT NULL, [descripcion] [char](50) NOT NULL, [reg_status] [char](1) NOT NULL, [reg_timestamp] [datetime] NOT NULL, [reg_userid] [int] NOT NULL, [reg_rep] [int] NOT NULL ) ON [PRIMARY]

c). Crear tabla impuestos. USE [mobilegas] GO CREATE TABLE [dbo].[impuestos]( [producto_id] [int] NOT NULL, [estacion_id] [int] NOT NULL, [empresa_id] [int] NOT NULL, [corporativo_id] [int] NOT NULL, [descripcion] [char](50) COLLATE Modern_Spanish_CI_AS NOT NULL, [porcentaje] [decimal](4, 2) NOT NULL, [tipo] [char](1) COLLATE Modern_Spanish_CI_AS NOT NULL, [reg_timestamp] [datetime] NOT NULL, [reg_userid] [int] NOT NULL, [reg_rep] [int] NOT NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO USE [mobilegas] GO ALTER TABLE [dbo].[impuestos] WITH CHECK ADD CONSTRAINT [FK_impuestos_productos] FOREIGN KEY([producto_id]) REFERENCES [dbo].[productos] ([Producto_ID]) d).- Capturar los porcentajes que aplican para cada impuesto por producto. La captura del producto y precio se puede realizar desde el MobileWEB, la captura de los impuestos deber realizarse desde el DBMS del SQL ya que no tiene la pantalla de captura. Ejemplo de un alta (R=Retencin).
insert insert insert insert into into into into productos values(1,1223,'RENTA OXXO','A','A',getdate(),1,0,1) precios values(364,1,1,1,39471.06,39471.06*1.16,'A',getdate(),1,0) impuestos values(364,1,1,1,'ISR',10.00,'R',getdate(),1,0) impuestos values(364,1,1,1,'IVA',10.00,'R',getdate(),1,0)

e).- Crear formato para visualizacin de las retenciones:


Retencin ISR: Crear objeto field, establecer propiedad Calculated=true, text= retencionISR Retencin IVA: Crear objeto field, establecer propiedad Calculated=true, text= retencionIVA

f).-El clculo del Total = (importesinIVA+IVA)-(retencionISR+retencioniVA). Aplica para facturacin CFD 2.2 y CFDi 3.2

g).- Ejemplo XML (nodo Retenciones).


Aplica para facturacin CFD 2.2 y CFDi 3.2

2.- ACTUALIZACION FACTURACION LIBRE CFD2.2 y CFDi 3.2 a).- Actualizar campos factura_subtotal, factura_iva, factura_impuesto, pagos_factura en tabla Facturas. ALTER TABLE facturas ALTER COLUMN Factura_Subtotal decimal(12,3) NOT NULL ALTER TABLE facturas ALTER COLUMN Factura_IVA decimal(12,3) NOT NULL ALTER TABLE facturas ALTER COLUMN Factura_Impuesto decimal(12,3) NOT NULL ALTER TABLE facturas ALTER COLUMN pagos_factura decimal(12,3) b).- Actualizar campo porcentaje en tabla impuestos.

ALTER TABLE impuestos ALTER COLUMN porcentaje decimal(6,4)


c).- Adicionar campos ieps y producto_id en tabla detalle_facturaLibre.

ALTER TABLE detalle_facturaLibre ADD ieps float NULL ALTER TABLE detalle_facturaLibre ADD producto_id int NULL
d).- Actualizar campos PrecioUnitario, PrecioIVA en tabla precios.

ALTER TABLE precios ALTER COLUMN PrecioUnitario decimal(14,4) ALTER TABLE precios ALTER COLUMN PrecioIVA decimal(14,4)
e).- Crear Tabla unidades (unidad=abreviacin unidad, descripcin=descripcin unidad). CREATE TABLE [dbo].[unidades]( [producto_id] [int] NOT NULL, [estacion_id] [int] NOT NULL, [empresa_id] [int] NOT NULL, [corporativo_id] [int] NOT NULL, [unidad] [char](10) NOT NULL, [descripcion] [char](50) NOT NULL, [reg_status] [char](1) NOT NULL, [reg_timestamp] [datetime] NOT NULL, [reg_userid] [int] NOT NULL, [reg_rep] [int] NOT NULL ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO ALTER TABLE [dbo].[unidades] WITH CHECK ADD CONSTRAINT [FK_unidades_productos] FOREIGN KEY([producto_id]) REFERENCES [dbo].[productos] ([Producto_ID]) GO ALTER TABLE [dbo].[unidades] CHECK CONSTRAINT [FK_unidades_productos] f).- Crear Tabla precios_historicos (Aplica a facturacin de gasolinas con unidades diferentes a LTS, es decir a M3, GAL, etc.) CREATE TABLE [dbo].[precios_historicos]( [precio_historico_ID] [int] IDENTITY(1,1) NOT NULL, [producto_ID] [int] NOT NULL, [Precio_Fecha_Inicio] [datetime] NULL DEFAULT (NULL), [Precio_PrecioUnitario] [float] NOT NULL, [Precio_Status] [char](1) NOT NULL, [Reg_Status] [char](1) NOT NULL, [Reg_Timestamp] [datetime] NOT NULL DEFAULT (getdate()), [Reg_UserId] [int] NOT NULL, [Reg_Rep] [int] NOT NULL, PRIMARY KEY CLUSTERED ( [precio_historico_ID] ASC, [producto_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] g).- Crear Tabla ieps_productos (Aplica a facturacin de gasolinas con unidades diferentes a LTS, es decir a M3, GAL, etc.) CREATE TABLE [dbo].[ieps_productos]( [producto_id] [int] NOT NULL, [fecha_inicio] [datetime] NOT NULL, [fecha_fin] [datetime] NOT NULL, [ieps] [float] NOT NULL DEFAULT ((0)), PRIMARY KEY CLUSTERED ( [producto_id] ASC, [fecha_inicio] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] h).- Crear Vista vw_ieps_productos. create view [dbo].[vw_ieps_productos] as select a.producto_id,b.producto_codigo,b.producto_descripcion,a.ieps, a.fecha_inicio,a.fecha_fin from ieps_productos a,productos b where a.producto_id=b.producto_id i).- Capturar los precios_historicos y ieps_productos que aplican para cada producto. La captura de los precios_historicos y ieps productos deber realizarse desde el DBMS del SQL ya que no tiene la pantalla de captura. Ejemplo1:
insert into productos values(1,34008,DIESEL MARINO GAL.,'A','A',getdate(),1,0,1) insert into precios values(343,1,1,1,0,39.2126,'A',getdate(),1,0) no se capturan impuestos ya que este producto no genera retenciones insert into unidades values(343,1,1,1,'GAL','GALONES','A',getdate(),1,0) PRECIO FEBRERO insert into precios_historicos values(343,'20120210 23:59:59.997',38.872,'A','A',getdate(),1,0) PRECIO MARZO insert into precios_historicos values(343,'20120309 23:59:59.997',39.2126,'A','A',getdate(),1,0) INSERTAR IEPS insert into ieps_productos values(343,'20120309 23:59:59.997','20991231 23:59:59.997',1.1310)

Ejemplo2:
insert into productos values(1,32012,MAGNA M3,'A','A',getdate(),1,0,1) insert into precios values(344,1,1,1,0,10000.00,'A',getdate(),1,0) no se capturan impuestos ya que este producto no genera retenciones insert into unidades values(344,1,1,1,'M3','METROS CUBICOS','A',getdate(),1,0) PRECIO FEBRERO insert into precios_historicos values(344,'20120210 23:59:59.997',9910.00,'A','A',getdate(),1,0) PRECIO MARZO insert into precios_historicos values(344,'20120309 23:59:59.997',10000.00,'A','A',getdate(),1,0) INSERTAR IEPS insert into ieps_productos values(344,'20120309 23:59:59.997','20991231 23:59:59.997',360)

Ejemplo3:
insert into productos values(1,34006,DIESEL M3,'A','A',getdate(),1,0,1) insert into precios values(345,1,1,1,0,10360.00,'A',getdate(),1,0) no se capturan impuestos ya que este producto no genera retenciones insert into unidades values(345,1,1,1,'M3','METROS CUBICOS','A',getdate(),1,0) PRECIO FEBRERO insert into precios_historicos values(345,'20120210 23:59:59.997',10270.00,'A','A',getdate(),1,0) PRECIO MARZO insert into precios_historicos values(345,'20120309 23:59:59.997',10360.00,'A','A',getdate(),1,0) INSERTAR IEPS insert into ieps_productos values(345,'20120309 23:59:59.997','20991231 23:59:59.997',298.80)

k).- agregar campo unidad en Tabla facturaElectronicaXMLcon. ALTER TABLE facturaElectronicaXMLcon add unidad varchar(25) NULL l).- insertar registro Rgimen Fiscal en Tabla facturaElectronicaRegimen, Se pueden ms de un rgimen Fiscal.
insert into facturaElectronicaRegimen values (1,1,'Actividad Empresarial','A',getdate(),1,0) insert into facturaElectronicaRegimen values (1,1,'Arrendamiento','A',getdate(),1,0)

m).- agregar campo lugarExpedicion en Tabla facturaElectronicaFolios. ALTER TABLE facturaElectronicaFolios ADD lugarExpedicion varchar(255) NULL n).- agregar vista vw_precios_historicos.
create view [dbo].[vw_precios_historicos] as select a.producto_id,b.producto_codigo,b.producto_descripcion,a.precio_preciounitario, a.precio_fecha_inicio,cast(isnull((select top 1 c.precio_fecha_inicio from precios_historicos c where c.producto_id=a.producto_id and c.precio_fecha_inicio>a.precio_fecha_inicio order by a.precio_fecha_inicio),'20990101 00:00:00.000') as datetime) as precio_fecha_fin from precios_historicos a,productos b where a.producto_id=b.producto_id

3.- Ejemplo de Diseo de Factura CFD v2.2 a).- Nuevos elementos incluidos en la factura. Unidad: utilizar un campo field, propiedad Text=unidad Rgimen Fiscal: utilizar un campo field, propiedad Text=regimenFiscal Lugar Expedicin: utilizar un campo field, propiedad Text=lugarExpedicion Estatus Factura: utilizar un campo field, propiedad Text=estadoFactura

4.- Ejemplo de Impresin Factura CFD v2.2 a).- Nuevos elementos incluidos en la factura. Unidad: utilizar un campo field, propiedad Text=unidad Rgimen Fiscal: utilizar un campo field, propiedad Text=regimenFiscal Lugar Expedicin: utilizar un campo field, propiedad Text=lugarExpedicion Estatus Factura: utilizar un campo field, propiedad Text=estadoFactura

5.- Ejemplo de Diseo de Factura CFD v3.2 a).- Nuevos elementos de incluidos en la factura. Unidad: utilizar un campo field, propiedad Text=unidad Rgimen Fiscal: utilizar un campo field, propiedad Text=regimenFiscal Lugar Expedicin: utilizar un campo field, propiedad Text=lugarExpedicion Estatus Factura: utilizar un campo field, propiedad Text=estadoFactura

6.- Ejemplo de Impresin Factura CFD v3.2 a).- Nuevos elementos incluidos en la factura. Unidad: utilizar un campo field, propiedad Text=unidad Rgimen Fiscal: utilizar un campo field, propiedad Text=regimenFiscal Lugar Expedicin: utilizar un campo field, propiedad Text=lugarExpedicion Estatus Factura: utilizar un campo field, propiedad Text=estadoFactura

6.- Generar Retencin IVA x Cliente-SubTotal a).- Crear Tabla impuestosClientes


CREATE TABLE [dbo].[impuestosClientes]( [cliente_id] [int] NOT NULL, [estacion_id] [int] NOT NULL, [empresa_id] [int] NOT NULL, [corporativo_id] [int] NOT NULL, [descripcion] [char](50) NOT NULL, [porcentaje] [decimal](6, 4) NULL, [tipo] [char](1) NOT NULL, [subTotal] [float] NOT NULL, [reg_status] [char](1) NULL, [reg_timestamp] [datetime] NOT NULL, [reg_userid] [int] NOT NULL, [reg_rep] [int] NOT NULL ) ON [PRIMARY]

b).- Capturar los impuestos que aplican para cada cliente. La captura de los impuestosClientes deber realizarse desde el DBMS del SQL ya que no tiene la pantalla de captura. Ejemplo:
insert into impuestosClientes values(1826,1,1,1,'IVA',16,'R',500,'A',getdate(),1,0)

c).- Requerimiento de clculo de retencin de IVA x cliente. Aplica a un cliente. Establecer tipo de impuesto (R=Retencin) Establecer porcentaje Aplica si el subtotal>subTotal(Limite configurable en la BD)

7.- Agregar descuento, motivoDescuento en CFD y CFDI (FUVA) a).- Crear Tabla descuentos_productos
CREATE TABLE [dbo].[descuentos_productos]( [producto_id] [int] NOT NULL, [importe] [float] NOT NULL DEFAULT ((0)), [factor] [float] NOT NULL DEFAULT ((0)), [descripcion] [varchar](255) NULL, PRIMARY KEY CLUSTERED ( [producto_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]

b).- Capturar los impuestos que aplican para cada cliente. La captura de los descuentos_productos deber realizarse desde el DBMS del SQL ya que no tiene la pantalla de captura. Ejemplo:
insert into descuentos_productos values(344,48.42,0,'BONIFICACION POR MERMA') insert into descuentos_productos values(346,62.17,0,'BONIFICACION POR MERMA')

c).- CFD ejemplo:

d).- Formato XML ejemplo:

e).- XML ejemplo: