Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Generar las facturas de entradas.


Dentro de la pantalla de browse de pedimentos, se podrá generar este proceso (prototipo 01):

Las acciones a realizar pueden ser de 4 tipos, ya que puede haber pedimentos que van a depósito fiscal, pedimentos que son una extracción del depósito fiscal, importación definitiva con extracciones por factura, y de importación definitiva sin extracciones por factura.
Para identificar los pedimentos que van a deposito fiscal, se identifica si el código del pedimento a procesar (RSC_cveped), está contenido en el parámetro MV_MXDEPFI.
Para identificar los pedimentos de extracción del depósito fiscal, se identifica si el código del pedimento a procesar (RSC_cveped), está contenido en el parámetro MV_MXEXTRA.
Existen otros pedimentos que son de rectificación, se identifica si el código del pedimento a procesar (RSC_cveped), está contenido en el parámetro MV_MXRECTI, para este tipo de pedimentos no permitirá pasar por este proceso.
Validaciones a realizar antes de ejecutar el proceso:
Codigo de Tipo de Movimiento para generar movimientos internos debe estar especificada en el parámetro MV_MXTESMI, es decir no debe estar vacio este parámetro y su contenido debe ser menor a 500, para que pueda ser usado como TES de entrada.
El pedimento no debe tener status de cerrado (RSC_status <>'2').
Si se identifica que el pedimento a procesar es una extracción, deberá validar que el pedimento origen este cerrado (buscar el contenido del campo RSC_pedori, entre los pedimentos, RSC, y verificar que el status de este sea '2').
El pedimento a procesar, debe tener hecho el cálculo de costos (es decir que tenga información en la tabla RSI).
Todos los ítems de mercancía deben contener su respectiva fracción arancelaria (RSG).
Si no cumple alguno de ellos, enviara un mensaje al usuario, explicando la situación y no continuara el proceso.
Si las validaciones fueron exitosas, enviara un mensaje al usuario, y preguntara, si continuara con el proceso o no.
De ser afirmativa la respuesta, procederá al cálculo de los contrario lo cancelara.

Nota: Debe tener configurados los tipos de moneda de las facturas de entrada, igual en el pedimento, verificando los parámetro MV_MOEDA1, MV_MOEDA2, MV_MOEDA3, MV_MOEDA4.


Descripción del proceso.


Seleccionara todas las facturas (RSE) que correspondan al pedimento seleccionado y que no hayan sido aún registradas en compras (RSE_ok<>'S'). Y realizara cada uno de los pasos:
1.Insertara todas las facturas de mercancía.
2.Insertara todas las facturas de gastos.
3.Creará un movimiento interno por todos los incrementables
4.Creará una factura por todos los impuestos de importación, al mismo tiempo creara un movimiento interno en el almacén por el total de impuestos.
5.reará un traspaso entre almacenes, solo en el caso de ser una extracción o una extracción por factura.


Si por alguna causa alguno de los procesos es interrumpido, por algún error de información, el status del pedimento puede quedar como: "con documentos parcialmente generados" (RSC_status=1).

  1. Insertara todas las facturas de mercancía.

Ingresara todas las facturas que contienen la mercancía (donde RSE_tipo='1'), crear el arreglo necesario de encabezado detalles de la factura de entrada, tomando la información de las tablas RSE y RSF respectivamente.
Una vez preparado el arreglo, ejecutar la rutina automática (MATA101N) en modo de inserción.
Afectar los campos como sigue:
Encabezado de facturas (sf1)

Nombre Campo

Campo

Llenar con

Filial

F1_FILIAL

xFilial('SF1')

Tipo Factura

F1_TIPO

"N" si es factura de mercancía.

Form Propio

F1_FORMUL

"N"

Núm. Docto.

F1_DOC

RSE_FACT

Serie Docto.

F1_SERIE

RSE_Serie

Fch Emisión

F1_EMISSAO

RSE_EMISIO

Proveedor

F1_FORNECE

RSE_PROV

Tienda

F1_LOJA

RSE_TDA

Especie

F1_ESPECIE

"NF"

Condición de pago

F1_COND

RSE_CONPGO

Tipo docto.

F1_TIPODOC

"10" si es factura de mercancía.

Código de Moneda

F1_MOEDA

RSE_MONED

Tipo de cambio a M.N.

F1_TXMOEDA

RSE_TASA* RSE_TC

Valor Flete

F1_FRETE

RSE_FRETE

Fch de Captura

F1_DTDIGIT

dDataBase

Valor de gastos

F1_DESPESA

RSE_DESPES

Valor seguro

F1_SEGURO

RSE_SEGURO

Descuentos

F1_DESCONT

RSE_DESCto

Peso Neto

F1_PESOL

RSE_PESOL


Detalle de facturas (sd1)

Nombre Campo

Campo

Llenar con

Filial

D1_FILIAL

xFilial('SD1')

Num . Docto.

D1_DOC


Serie Docto.

D1_SERIE


Proveedor

D1_FORNECE

RSE_PROV

Tienda

D1_LOJA

RSE_TDA

Fch Emisión

D1_EMISSAO

RSE_EMISIO

Fch de Captura

D1_DTDIGIT

dDataBase

Especie

D1_ESPECIE

"NF"

Tipo docto.

D1_TIPODOC

"10" si es factura de mercancía.

Tipo Factura

D1_TIPO

"N" si es factura de mercancía.

Form Propio

D1_FORMUL

"N"

Peso Neto

D1_PESO

RSE_PESOL

Num Item

D1_ITEM

RSF_ITEM

Codigo de Producto

D1_COD

RSF_PRODUC

Unidad de medida 1

D1_UM

RSF_UM

Cantidad

D1_QUANT

RSF_CANT

Precio unitario

D1_VUNIT

RSF_PRECIO

Importe

D1_TOTAL

RSF_TOTAL

Cód. de almacén (entrada)

D1_LOCAL

RSF_ALMACE

Orden de Compra

D1_PEDIDO

RSF_PEDIDO

Item de O.C.

D1_ITEMPC

RSF_ITEMPC

TES

D1_TES

RSF_TES

Cod Fiscal

D1_CF

F4_CF

Centro de costo

D1_CC

RSF_CC

Cuenta contable

D1_CONTA

RSF_CONTA

Item cuenta contable

D1_ITEMCTA

RSF_ITCTA

Clase valor Contable

D1_CLVL

RSF_CLVL

Valor Flete

D1_VALFRE

RSF_VALFRE

Valor Gastos

D1_DESPESA

RSF_DESPES

Valor Seguro

D1_SEGURO

RSF_SEGURO

Valor descuento

D1_VALDESC

RSF_VLDESC

Num. Pedimento

D1_PEDIM

RSC_NUMPED


En el caso de haber órdenes de compra relacionadas a la factura, por cada una se actualizara la cantidad clasificada (c7_qtdacla), restando la cantidad del ítem de la factura (RSF_cant).

2. Insertara todas las facturas de gastos.

Ingresara todas las facturas que contienen los gastos (donde RSE_tipo<>'1'), crear el arreglo necesario de encabezado detalles de la factura de entrada, tomando la información de las tablas RSE y RSF respectivamente.
El arreglo debe ser formado tomando información de las facturas a las que se aplicara el gasto (todos los registro del pedimento de la tabla RSI), y complementado la información de las mismas con lo contenido en el detalle de la factura origen (sd1).
Una vez preparado el arreglo, ejecutar la rutina automática (MATA101N) en modo de inserción.
Afectar los campos como sigue:
Encabezado de facturas (sf1)

Nombre Campo

Campo

Llenar con

Filial

F1_FILIAL

xFilial('SF1')

Tipo Factura

F1_TIPO

"C" si es factura de gastos.

Form Propio

F1_FORMUL

"N"

Num . Docto.

F1_DOC

RSE_FACT

Serie Docto.

F1_SERIE

RSE_Serie

Fch Emisión

F1_EMISSAO

RSE_EMISIO

Proveedor

F1_FORNECE

RSE_PROV

Tienda

F1_LOJA

RSE_TDA

Especie

F1_ESPECIE

"NF"

Condición de pago

F1_COND

RSE_CONPGO

Tipo docto.

F1_TIPODOC

"13" si es factura de gastos.

Codigo de Moneda

F1_MOEDA

RSE_MONED

Tipo de cambio a M.N.

F1_TXMOEDA

RSE_TASA* RSE_TC

Valor Flete

F1_FRETE

RSE_FRETE

Fch de Captura

F1_DTDIGIT

dDataBase

Valor de gastos

F1_DESPESA

RSE_DESPES

Valor seguro

F1_SEGURO

RSE_SEGURO

Descuentos

F1_DESCONT

RSE_DESCto

Peso Neto

F1_PESOL

RSE_PESOL


Detalle de facturas (sd1)

Nombre Campo

Campo

Llenar con

Filial

D1_FILIAL

xFilial('SD1')

Num . Docto.

D1_DOC


Serie Docto.

D1_SERIE


Proveedor

D1_FORNECE

RSE_PROV

Tienda

D1_LOJA

RSE_TDA

Fch Emisión

D1_EMISSAO

RSE_EMISIO

Fch de Captura

D1_DTDIGIT

dDataBase

Especie

D1_ESPECIE

"NF"

Tipo docto.

D1_TIPODOC

"13" si es factura de gastos

Tipo Factura

D1_TIPO

"C" si es factura de gastos.

Form Propio

D1_FORMUL

D1_FORMUL

Peso Neto

D1_PESO

D1_PESO

Num Item

D1_ITEM

Inicializar con StrZero(0,TamSX3('D1_ITEM')[1]) ,y después incrementar soma1(cItem)

Código de Producto

D1_COD

D1_COD

Unidad de medida 1

D1_UM

D1_UM

Cantidad

D1_QUANT

0

Precio unitario

D1_VUNIT

RSI->RSI_GASTOS

Importe

D1_TOTAL

RSI_GASTOS

Cód. de almacén (entrada)

D1_LOCAL

Si es Extracción, RSM_ALMACE.
Si RSE_EXTFAC=='EF', entonces RSF_ALMACE.
Si ninguna de las anteriores D1_LOCAL

TES

D1_TES

RSF_TES

Cod Fiscal

D1_CF

F4_CF

Centro de costo

D1_CC

D1_CC

Cuenta contable

D1_CONTA

D1_CONTA

Item cuenta contable

D1_ITEMCTA

D1_ITEMCTA

Clase valor Contable

D1_CLVL

D1_CLVL

Docto. Original

D1_NFORI

RSI_FACT

Serie Original

D1_SERIORI

RSI_SERIE

Item Original

D1_ITEMORI

RSI_ITEM

Num Control Calidad

D1_NUMCQ

D1_NUMCQ

Num. Pedimento

D1_PEDIM

RSC_NUMPED


3. Creará un movimiento interno por los incrementables


Este proceso solo aplica si el pedimento no es una extracción.
Seleccionara todos los productos costeados (RSI) y por cada uno creara un movimiento de entrada, solo para afectar costos por los incrementables.
Movtos Almacén (sd3)

Nombre Campo

Campo

Llenar con

Filial

D3_FILIAL

xFilial('SD3')

Cod. Producto

D3_COD

RSI_PROD

Cantidad

D3_QUANT

0

Almacén

D3_LOCAL

RSF_ALMACE

Documento

D3_DOC

"IPED_"+RSC->RSC_NUMPED

Fch Emisión

D3_EMISSAO

dDataBase

Unidad de medida 1

D3_UM

B1_UM

Costo1

D3_CUSTO1

RSI_INCREM

Tipo de transacción

D3_TM

Contenido del parámetro MV_MXTESMI

Num. Pedimento

D3_NUMPED

RSC_NUMPED

Haciendo uso de la rutina automática MATA241.
Al final actualizara el campo del documento de movimiento de incrementables (RSC_docinc) del pedimento, con el número de documento asignado (d3_doc).

4. Creará una factura por todos los impuestos de importación

Este proceso no se realizará en pedimentos que son de tipo Deposito Fiscal, ya que se creara una factura por cada extracción que se realice a dicho pedimento.

Se creara una rutina para cálculo de iva, que sea asignada a algún impuesto variable, por ejemplo, M447IVA:

Se debe crear una TES de entrada, que use este impuesto y que además no afecte costo, por ejemplo:

Ya considerando la configuración de la TES anterior, seleccionar todos los registros del resumen de impuestos (RSL) que pertenezcan al pedimento seleccionado y que no sea IVA (RSL_CODIMP<>'' y RSL_IMPORT>0).
Generará una factura de entrada con los registros seleccionados, creando cada impuesto como un ítem en la factura, dejando como base para impuesto (F1_BASIMP5) de IVA, la suma del CIF total del pedimento, más el total de los impuestos que aplican IVA de los ítems colocados.

Encabezado de facturas (sf1)

Nombre Campo

Campo

Llenar con

Filial

F1_FILIAL

xFilial('SF1')

Tipo Factura

F1_TIPO

"N"

Form Propio

F1_FORMUL

"N"

Num. Docto.

F1_DOC

Contenido del parámetro MV_MXSECFI

Serie Docto.

F1_SERIE

""

Fch Emisión

F1_EMISSAO

RSC_FCHPGO

Proveedor

F1_FORNECE

Código del proveedor del agente aduanal DB9_PROV

Tienda

F1_LOJA

DB9_TDA

Especie

F1_ESPECIE

"NF"

Condición de pago

F1_COND

Contenido del parámetro MV_MXCPFI

Tipo docto.

F1_TIPODOC

"10"

Codigo de Moneda

F1_MOEDA

1

Tipo de cambio a M.N.

F1_TXMOEDA

1

Fch de Captura

F1_DTDIGIT

dDataBase


Detalle de facturas (sd1)

Nombre Campo

Campo

Llenar con

Filial

D1_FILIAL

xFilial('SD1')

Num. Docto.

D1_DOC

Contenido del parámetro MV_MXSECFI

Serie Docto.

D1_SERIE

""

Proveedor

D1_FORNECE

Código del proveedor del agente aduanal DB9_PROV

Tienda

D1_LOJA

DB9_TDA

Fch Emisión

D1_EMISSAO

RSC_FCHPGO

Fch de Captura

D1_DTDIGIT

dDataBase

Especie

D1_ESPECIE

"NF"

Tipo docto.

D1_TIPODOC

"10"

Tipo Factura

D1_TIPO

"N"

Form Propio

D1_FORMUL

"N"

Num Item

D1_ITEM

Inicializar con StrZero(0,TamSX3('D1_ITEM')[1]) ,y después incrementar soma1(cItem)

Código de Producto

D1_COD

RSA_CODPRD

Unidad de medida 1

D1_UM

B1_UM

Cantidad

D1_QUANT

1

Precio unitario

D1_VUNIT

RSL_IMPORT

Importe

D1_TOTAL

RSL_IMPORT

Cód. de almacén (entrada)

D1_LOCAL

B1_LOCPAD, ya que el tipo de TES no debe afectar stock

TES

D1_TES

Contenido del parámetro MV_MXTESIM

Cod Fiscal

D1_CF

F4_CF de acuerdo a la TES

Num. Pedimento

D1_PEDIM

RSC_NUMPED

Prorrateo de costos CIF

D1_CIFPROR

Sumatoria de RSG_VALADU, de los registros que son del pedimento, esto dividido entre el número total de ítems.


Una vez creada la factura, genera un movimiento de entrada, en almacén, solo para afectar costos.
Movtos Almacén (sd3)

Nombre Campo

Campo

Llenar con

Filial

D3_FILIAL

xFilial('SD3')

Cod. Producto

D3_COD

RSI_PROD

Cantidad

D3_QUANT

0

Almacén

D3_LOCAL

Si es extracción RSM_ALMACE, de lo contrario RSF_ALMACE

Documento

D3_DOC

F1_DOC+F1_SERIE

Fch Emisión

D3_EMISSAO

dDataBase

Unidad de medida 1

D3_UM

B1_UM

Costo1

D3_CUSTO1

RSI_IMPUES

Tipo de transacción

D3_TM

Contenido del parámetro MV_MXTESMI

Num. Pedimento

D3_NUMPED

RSC_NUMPED

Haciendo uso de la rutina automática MATA241.
Al final actualizara el campo de factura de impuestos (RSC_facimp), con el número de factura asignado.

5. Creará un traspaso entre almacenes.


Si el pedimento es una extracción, seleccionara todos los registros de la tabla de extracciones (RSM), que correspondan al pedimento y que no hayan sido traspasados aun (RSM_okt=' ').
Si el pedimento es una extracción de factura, seleccionara todos los ítems (RSF) que tengan información en el código de almacén (RSF_almace<>''), de las facturas que sean de este tipo (RSE_extfac='EF') y que aún no hay sido traspasada (RSE_okt=' '). Asociando estos registros, a la factura que ya está registrada (sd1, por el número de factura, serie, proveedor, tienda y producto), para obtener el almacén de salida (d1_local).
Con los registros encontrados, dependiendo cada caso, insertara un movimiento de salida y otro de entrada, generando con esto un traspaso (sd3).
Movtos Almacén (sd3) 

Nombre Campo

Campo

Llenar con (Si Extracción)

Llenar con (Si Extracción por factura)

Filial

D3_FILIAL

xFilial('SD3')


Cod. Producto

D3_COD

RSM_PRODUC

RSF_PRODUC

Cantidad

D3_QUANT

RSM_CANT

RSF_CANT

Tipo de Requerimiento o Devolución

D3_CF

"RE4"

"RE4"

Clave indexación

D3_CHAVE

"E0"

"E0"

Almacén

D3_LOCAL

RSM_ALMACE

D1_LOCAL

Documento

D3_DOC

"TPED_"+RSC->RSC_NUMPED

"TPED_"+RSC->RSC_NUMPED

Fch Emisión

D3_EMISSAO

dDatabase

dDatabase

Unidad de medida 1

D3_UM

B1_UM

B1_UM

Grupo de producto

D3_GRUPO

B1_GRUPO

B1_GRUPO

Tipo de producto

D3_TIPO

B1_TIPO

B1_TIPO

Secuencia

D3_NUMSEQ

ProxNum()

ProxNum()

Cantidad en unidad de medida 2

D3_QTSEGUM

ConvUm(SB1->B1_COD D3_QUANT ,0,2)

ConvUm(SB1->B1_COD D3_QUANT ,0,2)

Unidad de medida 2

D3_SEGUM

B1_SEGUM

B1_SEGUM

Tipo de transacción

D3_TM

"999"

"999"

Num. Pedimento

D3_NUMPED

RSC_NUMPED

RSC_NUMPED


Para la afectación y obtención de costo hará uso de las funciones:
CriaSB2, GravaCusD3 y B2AtuComD3


Movtos Almacén (sd3) -Movimiento de Entrada-

Nombre Campo

Campo

Llenar con (Si Extracción)

Llenar con (Si Extracción por factura)

Filial

D3_FILIAL

xFilial('SD3')


Cod. Producto

D3_COD

RSM_PRODUC

RSF_PRODUC

Cantidad

D3_QUANT

RSM_CANT

RSF_CANT

Tipo de Requerimiento o Devolución

D3_CF

"DE4"

"DE4"

Clave indexación

D3_CHAVE

"E9"

"E9"

Almacén

D3_LOCAL

RSM_ALMACE

RSF_ALMACE

Documento

D3_DOC

"TPED_"+RSC->RSC_NUMPED

"TPED_"+RSC->RSC_NUMPED

Fch Emisión

D3_EMISSAO

DDatabase

dDatabase

Unidad de medida 1

D3_UM

B1_UM

B1_UM

Grupo de producto

D3_GRUPO

B1_GRUPO

B1_GRUPO

Tipo de producto

D3_TIPO

B1_TIPO

B1_TIPO

Secuencia

D3_NUMSEQ

D3_NUMSEQ del movto anterior

D3_NUMSEQ del movto anterior

Cantidad en unidad de medida 2

D3_QTSEGUM

ConvUm(SB1->B1_COD D3_QUANT ,0,2)

ConvUm(SB1->B1_COD D3_QUANT ,0,2)

Unidad de medida 2

D3_SEGUM

B1_SEGUM

B1_SEGUM

Tipo de transacción

D3_TM

"499"

"499"

Num. Pedimento

D3_NUMPED

RSC_NUMPED

RSC_NUMPED


Para la afectación y obtención de costo hará uso de las funciones:
CriaSB2, GravaCusD3 y B2AtuComD3

Al tener éxito, el registro del traspaso, actualizara el status del registro (RSE_okt:='S' o RSM_okt:='S' según sea el caso)
Al final actualizara el campo de traspaso del pedimento (RSC_doctra), con el valor "TPED_"+RSC->RSC_NUMPED.
Si todo el proceso fue ejecutado con éxito, cambiara el status del pedimento (RSC_status ) para cerrado, colocando un 2, si grabo algunos documentos al menos, dejara el status del pedimento con 1, con este último, permite que el proceso se vuelva a ejecutar nuevamente.