Árvore de páginas

Versões comparadas

Chave

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

...

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

SIGAFAT - Facturación.

Función:
Rutina(s)Nombre TécnicoFecha del parche
LOCXNFNotas Fiscales 
LOCXMEXFunciones genéricas para Notas Fiscales México 
LOCXFUNAFunciones genéricas de localizaciones 
Rutina(s) involucrada(s)Nombre Técnico
LOCXNF2Funciones genéricas para Notas Fiscales.
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
tabsPre-condiciones, Pasos, Paso 03, Paso 04
idsPre-condiciones,Pasos
Totvs custom tabs box items
defaultyes
referenciaPre-condiciones

Parámetros
 
          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  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 en la tabla SA1.
  • Contar con un producto en el catálogo de Productos (SB1), el campo  campo  Prod/Serv SA debe contener un valor valido del catalogo de Productos/Servicios.
  • Contar con un registro en el control de planillas para la serie A y la especie FCC
Totvs custom tabs box items
defaultno
referenciaPasos

Pasos para realizar la  solución: 

  • Ingresar al 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 Í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.

           

...

El valor por default del parámetro MV_FACTATU 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>