Tempo aproximado para leitura: 00:05:00 min
Duda
¿Es posible generar Factura Global a traves de rutina automatica (MsExecAuto)?
Ambiente
Cross Segmento - TOTVS Backoffice (Linea Protheus) MI - Facturación (SIGAFAT) - Todas las versiones
Soluciones
Sí es posible, a continuación un ejemplo de uso de la rutina automactica (MsExecAuto) para la emisión de Factura Global:
#include "Protheus.ch"
UserFunctionM467Auto()Processa({ || GeneraNF() }, "", "Generando Factura Global..." )Return
StaticFunctionGeneraNF()Local aCab :={}Local aLinha :={}Local aItens :={}Local cSerie := "A "Local cDoc := ""Local cCertFol := SuperGetMv("MV_CFDI_CS",,"")Local cProd := PadR("TST000000000037",20)
PrivatelMsErroAuto := .F.
// Consecutivo facturaSX5->(DBSetOrder(1))SX5->(MsSeek(xFilial("SX5")+"01"+cSerie))cDoc := IIf( SX5->(Found()), PadR(Trim(X5Descri()),20) , StrZero(126,20,0) )
// Encabezado de facturaAAdd( aCab,{ "F2_CLIENTE", "016082" , Nil })AAdd( aCab,{ "F2_LOJA" , "01" , Nil })AAdd( aCab,{ "F2_SERIE" , cSerie , Nil })AAdd( aCab,{ "F2_DOC" , cDoc , Nil })AAdd( aCab,{ "F2_COND" , "015" , Nil })AAdd( aCab,{ "F2_EMISSAO", dDataBase , Nil })AAdd( aCab,{ "F2_EST" , "QRO" , Nil })AAdd( aCab,{ "F2_TIPO" , "N" , Nil })AAdd( aCab,{ "F2_ESPECIE", "NF " , Nil })AAdd( aCab,{ "F2_PREFIXO", "A" , Nil })AAdd( aCab,{ "F2_MOEDA" , 1 , Nil })AAdd( aCab,{ "F2_TXMOEDA", 1 , Nil })AAdd( aCab,{ "F2_FORMUL" , "S" , Nil })AAdd( aCab,{ "F2_TIPODOC", "01" , Nil })AAdd( aCab,{ "F2_USOCFDI", "S01" , Nil })AAdd( aCab,{ "F2_GLOBAL" , "1" , Nil })// Indica si es Factura Global 1-Si / 2-No.AAdd( aCab,{ "F2_IDCBAJA", "01" , Nil })// Indicar la Periodicidad de emisión de la Factura Global.AAdd( aCab,{ "F2_MODCONS", "01" , Nil })// Indicar los Meses de emisión de la Factura Global.AAdd( aCab,{ "F2_PTOEMIS", "2022" , Nil })// Indicar el año de emisión de la Factura Global.AAdd( aCab,{ "F2_APROFOL", "1" , Nil })AAdd( aCab,{ "F2_CERTFOL", cCertFol , Nil })
// Ítems de la facturaaLinha :={}AAdd( aLinha,{ "D2_COD" , cProd , Nil })AAdd( aLinha,{ "D2_UM" , "UN" , Nil })AAdd( aLinha,{ "D2_QUANT" , 1 , Nil })AAdd( aLinha,{ "D2_PRCVEN" , 1000 , Nil })AAdd( aLinha,{ "D2_TOTAL" , 1000 , Nil })AAdd( aLinha,{ "D2_PESO" , 1 , Nil })AAdd( aLinha,{ "D2_TES" , "501" , Nil })AAdd( aLinha,{ "D2_ESPECIE", "NF " , Nil })AAdd( aItens, aLinha)
// Rutina automáticaMSExecAuto({ |x,y,z,w| Mata467n(x,y,z,,,,w) }, aCab, aItens,3, )//3-Incluir, 5-Excluir e 6-Cancelar
IflMsErroAutoMsgStop("Error en la grabación de la Factura global.")MostraErro()ElseMsgAlert("Factura global incluida con éxito.")EndIf
Return
0 Comentarios