Histórico da Página
01. DATOS GENERALES
Línea de producto: | Microsiga Protheus. | ||||
---|---|---|---|---|---|
Segmento: | Servicios - Mercado Internacional. | ||||
Módulo: | SIGAFAT - Facturación. | ||||
Función: |
|
|
|
| |
Ticket: | 8027588 |
---|---|
Issue: | DMINA-8371 |
Versiones: | 12.1.17 | 12.1.23 | 12.1.25 | 12.1.27 |
02. SITUACIÓN/REQUISITO
En el módulo de Facturación en la rutina de Generación de notas de créditos y débito(MATA465N), cuando se tienen los parámetros MV_CFDUSO=3 y MV_FACTAUT= "S”, y al informar la serie del documento (F1_SERIE) se detona el siguiente error log: "array out of bounds [3] of [2] on LOCXVAL(LOCXNF.PRW)".
Cuando el parámetro MV_FACTAUT = "N”, en la función LocXSx5NF () se lleva un flujo estándar para obtener el número de documento y la serie. Estos valores son guardados en el arreglo aRet: = {cNumero, cSerie, SFP->FP_CAI, SFP->FP_NRCERT}. Por lo tanto, es necesario crear una solución para poder utilizar ambos flujos ya que cuando MV_FACAUT ="S" el arreglo aRet no cuenta con los campos SFP->FP_CAI y SFP->FP_NRCERT, y por esta razón se detona el error log.
03. SOLUCIÓN
Dentro de la rutina de Documentos Fiscales(Locxnf), en la función LocXSx5NF () para el caso que MV_FACTAUT= "S" y la factura electrónica está activa, se agrega una validación para generar esos dos elementos en el arreglo con los contenidos de los campos SFP->FP_CAI y SFP->FP_NRCERT.
Para generar los elementos del arreglo se creó una función en la rutina Funciones Genéricas para notas fiscales México(Locxmex), la cual, valida, si los campos existen en la tabla de Control de formularios(SFP) se agrega su contenido a los elementos del arreglo, si los campos no existen, se crean esos 2 elementos, pero con valores vacíos.
También la modifico la función CFDChkFol() dentro de la rutina de Funciones genéricas de localizaciones(Locxfuna) , la cual valida el numero de documento y la serie que se está informando en la nota fiscal, ya que se detectó que no se actualiza de manera correcta el campo F1_DOC al informar de manera manual la serie del documento.
Totvs custom tabs box | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
|
04. INFORMACIÓN ADICIONAL
...
El valor por default del parámetro MV_FACTAUT es "N" (recomendado); y cuando se tiene el parámetro MV_FACTAUT = "S", se activa el uso de los puntos de entrada M465SQNF y LOCXPE31; los cuales se utilizan para validar la serie del documento fiscal y tiene como retorno un arreglo con los siguientes elementos: 1o - Cliente / 2o-NF Cliente / 3o-Serie.
Ejemplo de punto de entrada M465SQNF:
#include 'protheus.ch'
Function U_M465SQNF()
Local aData := {}
Local cSerie := "A "
Local cResult
dbSelectArea("SX5")
dbSetOrder(1)
If (SX5 -> (DbSeek(xFilial("SX5") + "01" + cSerie )))
cResult := RTRIM(SX5->X5_DESCRI)
endif
aData := {"", cResult, cSerie}
Return aData
**Nota:
- Se puede usar el mismo ejemplo para el punto de entrada LOCXPE31.
...
HTML |
---|
<style> div.theme-default .ia-splitter #main { margin-left: 0px; } .ia-fixed-sidebar, .ia-splitter-left { display: none; } #main { padding-left: 10px; padding-right: 10px; overflow-x: hidden; } .aui-header-primary .aui-nav, .aui-page-panel { margin-left: 0px !important; } .aui-header-primary .aui-nav { margin-left: 0px !important; } .aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { background: #FF9900; !important } .menu-item.active-tab { border-bottom: none !important; } </style> |