Duda
¿Qué movimientos genera la acción relacionada "Genera Doctos." en Pedimentos (MATA447)?
Ambiente
Cross Segmentos - TOTVS BackOffice (Línea Protheus) - MI - Compras (SIGACOM) - Versión 12
Solución
Generar las facturas de entradas a partir del pedimento (SD1/SF1).
Debe tener configuradas los tipos de moneda de las facturas igual pedimentos, que de SF1,
verificando los parámetro MV_MOEDA1, MV_MOEDA2, MV_MOEDA3, MV_MOEDA4.
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 y pedimentos que van directo al cliente, pero con extracciones por factura, pedimentos que van directo al cliente, 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:
- La TES para generar movimientos internos debe estar especificada en el parámetro MV_MXTESMI, es decir no debe estar vació este parámetro y su contenido debe ser menos de 500, para utilizarlo 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.
Descripción del proceso.
Seleccionara todas las facturas (RSE) que correspondan al pedimento seleccionado y que no hayan sido aun 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. Creara un movimiento interno por todos los incrementables
- 4. Creara 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. Creara 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.
Afectara los campos como sigue:
Encabezado de facturas (SF1) | ||
Nombre Campo | Campo | Llenar con |
Filia | F1_FILIAL | xFilial('SF1') |
Tipo Factura | F1_TIPO | “N” si es factura de mercancía. |
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 | "10" si es factura de mercancía. |
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 | "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 descuento | D1_VALDESC | RSF_VLDESC |
Num. Pedimento | D1_NUMPED | 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.
Afectara los campos como sigue:
Encabezado de facturas (SF1) | ||
Nombre Campo | Campo | Llenar con |
Filia | 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 | |
|
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_NUMPED | RSC_NUMPED |
3. Creara 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.
Movimientos Almacén (SD3) | ||
Nombre Campo | Campo | Llenar con |
Filial | D3_FILIAL | xFilial('SD3') |
Cod. Producto | D3_COD | RSI_PROD |
Cantidad | D3_QUANT | 0 |
Almacen | D3_LOCAL | RSF_ALMACE |
Documento | D3_DOC | "IPED_"+ZI2->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 = 1 |
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. Creara una factura por todos los impuestos de importación
Se creara una rutina para calculo 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 (RSD_CODIMP<>’’ y RSD_IMPORT>0).
Generara 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 |
Filia | 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_CODIGO |
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_NUMPED | 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.
Movimiento Almacén (SD3) | |||
Nombre Campo | Campo | Llenar con | |
Filial | D3_FILIAL | xFilial('SD3') | |
Cod. Producto | D3_COD | RSI_PROD | |
Cantidad | D3_QUANT | 0 | |
Almacen | D3_LOCAL | Si es extracción RSM_ALMACE, de lo contrario RSF_ALMACE | |
Documento | D3_DOC | F1_DOC+F1_SERIE | |
|
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_MXTESIM | |
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 numero de factura asignado.
5. Creara 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 aun no hay sido traspasada (RSE_OKT=’ ‘). Asociando estos registros, a la factura que ya está registrada (SD1, por el numero 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).
Movimientos Almacén (SD3) --Movimiento de Salida-- | ||
Nombre Campo | Campo | Llenar con (Si Extracción) |
Filial | D3_FILIAL | xFilial('SD3') |
Cod. Producto | D3_COD | RSM_PRODUC |
Cantidad | D3_QUANT | RSM_CANT |
Tipo de Requerimiento o Devolución | D3_CF | "RE4" |
Clave indexación | D3_CHAVE | "E0" |
Almacen | D3_LOCAL | RSM_ALMACE |
Documento | D3_DOC | "TPED_"+ZI2->RSC_NUMPED |
Fch Emisión | D3_EMISSAO | dDatabase |
Unidad de medida 1 | D3_UM | B1_UM |
Grupo de producto | D3_GRUPO | B1_GRUPO |
Tipo de producto | D3_TIPO | B1_TIPO |
Secuencia | D3_NUMSEQ | ProxNum() |
Cantidad en unidad medida 2 | D3_QTSEGUM | ConvUm(SB1->B1_COD D3_QUANT |
,0,2) | ||
Unidad de medida 2 | D3_SEGUM | B1_SEGUM |
Tipo de transacción | D3_TM | "999" |
Num. Pedimento | D3_NUMPED | RSC_NUMPED |
- Para la afectación y obtención de de costo hará uso de las funciones: CriaSB2, GravaCusD3 y B2AtuComD3
Movimientos 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" Almacen 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 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 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) a 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.
Tablas utilizadas
SF1 - Encabezado de facturas.
SD1 - Partidas de las facturas.
SD3 - Movimientos internos de stock
SX5 - Tabla Z3
SC7 - Ordenes de compra
RSA - Impuestos de importación
RSB - Fracciones Arancelarias
RSC - Datos generales del pedimento y transporte
RSK - Incrementables
RSD - Impuestos a nivel pedimento
RSE - Encabezado de Facturas de Entrada
RSF - Items por Factura de Entrada
RSG - Fracción arancelaria por Ítem
RSH - Impuestos
RSI - Costos por producto
RSJ - Total de gastos
RSL - Resumen de impuestos
RSM - Extracciones
RSN - Gastos por ítem
Parámetros
MV_MXDEPFI - Lista de claves de pedimento que son para Deposito Fiscal.
MV_MXEXTRA - Lista de claves de pedimento que son para Extracción de Depósito Fiscal.
MV_MXRECTI - Lista de claves de pedimentos de Rectificación.
MV_MXTESMI - Código de Tipo de movimiento interno, generados para la factura de impuestos y los incrementables
MV_MXSECFI - Consecutivo de facturas para Impuestos.
MV_MXCPFI - Código de condición de pago para la Factura de Impuestos de Importación.
MV_MXSECNC - Consecutivo de notas de cargo
MV_MXSENCR - Consecutivo de notas de crédito.
MV_MXTESNC - Código de TES para notas de crédito para pedimentos
MV_MXTESIM - Código de TES para la factura de impuestos de importación, ejemplo: 208
MV_MXSECMI - Consecutivo de documentos de movimientos internos
Flujo de Proceso
Conozca más:
Para consultar la información contenida en nuestro banco de conocimientos, acceda al siguiente enlace:
MP - COM - MATA447 - ¿Cual es el proceso para el registro de cada pestaña en pedimentos de importación?
MP - COM - MATA447 - Pedimentos - Documentación
How To - Como responder la encuesta de satisfacción de tickets de atención TOTVS.
0 Comentarios