Histórico da Página
...
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 |
...
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_FACTATUFACTAUT= "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_FACTATU 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_FACATU 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.
...
Dentro de la rutina de Documentos Fiscales(Locxnf), en la función LocXSx5NF () para el caso que MV_FACTATUFACTAUT= "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.
...
Totvs custom tabs box | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
04. INFORMACIÓN ADICIONAL
Cuando El valor por default del parámetro MV_FACTAUT es "N" (recomendado); y cuando se tiene el parámetro parámetro MV_FACTATUFACTAUT = "S" , se activa el uso de los puntos de entrada M465SQNF y LOCXPE31; los cuales validan 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> |