Árvore de páginas

Versões comparadas

Chave

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

01. DATOS GENERALES


Línea de producto: Microsiga Protheus.
Segmento:Servicios - Mercado Internacional.
Módulo:

SIGAFAT - Facturación.

Función:
Rutina(s)Nombre TécnicoFecha del parche
LOCXNF
Documentos
Notas Fiscales 
LOCXMEXFunciones genéricas para
notas fiscales MéxicoRutinas involucradas
Notas Fiscales México 
LOCXFUNAFunciones genéricas de localizaciones 
Rutina(s) involucrada(s)Nombre Técnico
LOCXNF2
Documentos
Funciones genéricas para Notas Fiscales.
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. 

*Nota: Considerar el uso de la variable lGerarCFD, ya que esos campos que se requiere llenar, corresponden a Facturación Electrónica.

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
tabsPaso 01, Paso 02Pre-condiciones, Pasos, Paso 03, Paso 04
idspaso1Pre-condiciones,paso2Pasos
Totvs custom tabs box items
defaultyes
referenciapaso1Pre-condiciones

Parámetros
 
          MV_CUSDESP = .F. // Considera costos de productos cuando la factura se incluye de forma automática.
          MV_CFDUSO= "32" // Indica si las facturas electrónicas se utilizaran o no, configurándose con: 0 - No utiliza Fact-E, 1-Utiliza Fact-e, 2-Indica uso de Fact-E.
          MV_DESCSAI = "1"  // Visualizar precio de venta con descuento en SD2 (Opción 1), o sin descuento incluido en el precio  (Opción 2) Exclusivo localizaciones
          MV_COMPNC = "3"  // Tipo de compensación de la NCC, NDE -> 1-Siempre compensa, 2-Nunca compensa, 3 - Pregunta            
          MV  MV_CFDI_TI = .T. // Indica si se va a realizar el timbrado CFDi al momento de generar el Comprobante Fiscal.
          MV_FACTATU FACTAUT = "S" // Determina si la serie y numero de póliza son seleccionados de forma automática (igual a S) o manual (igual a N)    .

Pre condiciones:

  • Contar con un cliente Cliente en la tabla SA1.
  • Contar con un producto en el catalogo catálogo de productos Productos (SB1), el campo  campo  Prod/Serv SA debe contener un valor valido del catalogo de productosProductos/serviciosServicios.
  • Contar con un registro en el control de planillas para la serie A y la especie FCC
Totvs custom tabs box items
defaultno
referenciapaso2Pasos

Pasos para realizar la  solución: 

  • Ingresar al modulo SIGAFAT  módulo SIGAFAT, a la opción "Actualizaciones | Facturación | Generac. de Notas de Credito y Debito" (MATA465N).
  • Configurar el grupo de preguntas :
    •  ¿Formulario  ¿Formulario propio? = Si
    •  ¿Tipo de Factura? = Abono
  • Dar clic en la opción opción "Incluir".
  • Capturar datos del Encabezado de la NCC.
  • Colocar en la sección de Item Ítems, los datos del producto. 
  • Verificar los datos de la NCC y dar clic en "Grabar".
  • En la rutina "Actualizaciones | Facturación | Timbrado CFDi" (FISA800).
  • Configurar grupo de preguntas para filtrar la NCC generada anteriormente.
  • Seleccionar la NCC y dar clic en "Confirmar".
  • Verificar el timbrado correcto de la NCC.

           

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>