Árvore de páginas

Versões comparadas

Chave

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

...

Totvs custom tabs box
tabsPre-condiciones, Procedimiento
idspaso1,paso2
Totvs custom tabs box items
defaultyes
referenciapaso1
  1. Realizar un respaldo del repositorio (RPO). 
  2. Realizar la aplicación del parche correspondiente al issue DMINA-28433.
  3. Validar que las rutinas actualizadas en el repositorio, coincidan con las descritas en el encabezado del presente Documento Técnico, así como las fechas.
  4. En el módulo Configurador (SIGACFG):
    • Ir al menú Base de Datos | Diccionario | Base de Datos | Parámetros. 
      • Configurar el parámetro de “Nuevo Recibo en MVC” con valor .T. (MV_RECMVC).
      • Configurar el parámetro de "Generación de RA" con valor .T. (MV_RAGENER).
      • Realizar la configuración para el envío de recibos por email en el siguiente link: 6 - Configuración para envío de correo electrónico.
  5. En el módulo Financiero (SIGAFIN):
    • Ir al menú Actualizaciones | Archivos | Clientes (CRMA980), registrar un Cliente, configurar un email (A1_EMAIL), correo electrónico al que llegara el recibo generado.

    • Ir al menú Actualizaciones | Archivos | Bancos (MATA070), registrar un Banco. 

    • Ir al menú Actualizaciones | Archivos | Entidades Bancaria (FINA094), registrar una Entidad Bancaria. 
  6. Compilar la siguiente rutina automática del modelo de recibos (FINA887):
    1.  Para más información de la rutina automática dar clic en el siguiente link: 7 - Uso como rutina automática

    2. Aviso
      titleImportante

      La siguiente rutina automática es un ejemplo, no es estándar.

    3. Bloco de código
      titleEjemplo de la rutina Automatica para el guardado y envio de recibo al email del cliente
      linenumberstrue
      collapsetrue
      #INCLUDE "PROTHEUS.CH"
      #INCLUDE "FWMVCDEF.CH"
      #INCLUDE "FWEVENTVIEWCONSTS.CH"
       
      User Function F887FINAUTO()
          Local oMdlTab
          Local jData     := JsonObject():New()
          Local cCRLF     := (chr(10)+chr(13))
          Local cMsj 		:= "Recibo registrado con éxito." + cCRLF
          Local cRecibo 	:= "02010995"	//-> Número de recibo a guardar
          Local cSerie  	:= "" 			//-> Registramos un recibo sin serie
      
          
          
          Local cCliente  := "000001"		//-> Cliente que registraste anteriormente
          Local aResTmp   := {}
          Local nY        := 0
       
          SetFunName("FINA887")
          oMdlTab  := FwLoadModel("FINA887")
          oMdlTab:SetOperation(MODEL_OPERATION_INSERT)
          
          oMdlTab:Activate()
      
          //Encabezado - FJT
          oMdlTab:SetValue('FJT_MASTER', "FJT_FILIAL" , xFilial("FJT"))
          oMdlTab:SetValue('FJT_MASTER', "FJT_DTDIGI" , dDataBase 	)
          oMdlTab:SetValue('FJT_MASTER', "FJT_RECIBO" , cRecibo		)
          oMdlTab:SetValue('FJT_MASTER', "FJT_SERIE"  , cSerie		)
          oMdlTab:SetValue('FJT_MASTER', "FJT_EMISSA" , dDataBase		)
          oMdlTab:SetValue('FJT_MASTER', "FJT_NATURE" , ""			)
          oMdlTab:SetValue('FJT_MASTER', "FJT_CLIENT" , cCliente		)
          oMdlTab:SetValue('FJT_MASTER', "FJT_LOJA"   , "01"			)
          oMdlTab:SetValue('FJT_MASTER', "FJT_COBRAD" , ""			)
          oMdlTab:SetValue('FJT_MASTER', "FJT_RECPRV" , ""			)
          oMdlTab:SetValue('FJT_MASTER', "GERANCC"    , "S"			)
          oMdlTab:SetValue('FJT_MASTER', "DOCUMEN"    , "RA"			)
           
          //Contabilidad
          oMdlTab:SetValue('FJT_MASTER', "ASIENTO"    , 2)    // Muestra Asientos. 1- Si, 2 - No.
          oMdlTab:SetValue('FJT_MASTER', "AGRUPA"     , 2)    // Agrupa Asientos.  1- Si, 2 - No.  
          oMdlTab:SetValue('FJT_MASTER', "ONLINE"     , 2)    // Asientos Online.  1- Si, 2 - No.  
                  
          //Monedas
          oMdlTab:SetValue('MOE_DETAIL',"MOEDA"       , "1"	)
          oMdlTab:SetValue('MOE_DETAIL',"TASA"        , 1		)
          oMdlTab:SetValue('MOE_DETAIL',"RECIBIDO"    , 100	)
          oMdlTab:SetValue('MOE_DETAIL',"SALDO"       , 0 	)
      
          // Agregar la forma de pago
          oMdlTab:SetValue('SEL_DETAIL',"EL_CLIENTE"      , cCliente  )
          oMdlTab:SetValue('SEL_DETAIL',"EL_NATUREZ"      , ""		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_LOJA"         , "01"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_DTDIGIT"      , dDataBase	)
          oMdlTab:SetValue('SEL_DETAIL',"EL_TIPO"         , "TF"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_FILIAL"       , xFilial("SEL"))
          oMdlTab:SetValue('SEL_DETAIL',"EL_TIPODOC"      , "TF"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_MOEDA"        , "2"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_EMISSAO"      ,dDataBase	)
          oMdlTab:SetValue('SEL_DETAIL',"EL_DTVCTO"       ,dDataBase	)
          oMdlTab:SetValue('SEL_DETAIL',"EL_TPCRED"       ,"1"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_ACREBAN"      ,"1"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_TERCEIR"      ,""			)
          oMdlTab:SetValue('SEL_DETAIL',"EL_ENDOSSA"      ,""			)
          oMdlTab:SetValue('SEL_DETAIL',"EL_TRANSIT"      ,"2"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_VERSAO"       ,"00"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_SELDOC"       ,"2"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_PREFIXO"      ,"TF"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_NUMERO"       ,"DIF-0000"	)
          oMdlTab:SetValue('SEL_DETAIL',"EL_VALOR"        ,600		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_BANCO"        ,"001"		)
          oMdlTab:SetValue('SEL_DETAIL',"EL_AGENCIA"      ,"00001"	)
          oMdlTab:SetValue('SEL_DETAIL',"EL_CONTA"        ,"0000000001")
       
          oMdlTab:SetValue('FAC_DETAIL','FACTOR',"2")
       
          oMdlTab:SetValue('GEN_DETAIL',"HOURSAVERECEIPT" , "13:10:40" )
       
          //Se ejecuta el commit
          If oMdlTab:VldData()
              oMdlTab:CommitData()
          Endif
          //Se obtienen los errores del modelo
          aError := oMdlTab:GetErrorMessage()
          If alltrim(aError[6]) <> ""
              cMsj := aError[6]
          else
          // Si no hubo errores al grabar recibo se procede con el timbrado
              jData['origin']     := "FINA998"
              jData['imppdf']     := .F. 
              jData['sendemail']  := .T.
              jData['email']      := "[email protected]"
              jData['emailcc']    := ""
              jData['serie']      := cSerie
              jData['recibo']     := cRecibo
              jData['cliente']    := cCliente
              jData['filial']     := xFilial("SEL")
              jData['client']     := cCliente
              // Se validan los titulos que contiene el recibo de cobro.
              If validTitles(jData)
                  //Llamada a la rutina para la generación de XML y PDF
                  FISA815A(cRecibo, cSerie,/*nOpc*/,@aResTmp,,jData)
       
                  // Ciclo para concatenar la respuesta del timbrado.
                  For nY := 1 To Len(aResTmp)
                      cMsj += aResTmp[nY][3] + cCRLF
                  Next nY
              Endif
          Endif
       
          CONOUT("Mensaje de proceso: "+cMsj)   
           
          oMdlTab:DeActivate()
      Return
  7. Desde el módulo configurador (SIGACFG):
    1. Ir al la opción Menus localizado en Actualizaciones | Archivos | Cliente(CRMA980), registrar en el menú de financiero (SIGAFIN) la rutina automática F887FINAUTO como nueva opción del menú.
    2. Expandir
      titleEjemplo de la rutina automatica F887FINAUTO en el menu de Financiero

Totvs custom tabs box items
defaultno
referenciapaso2
  1. En el módulo Financiero (SIGAFIN), ir al menú Actualizaciones | Cuentas por Cobrar | Recibo x Rutina Automática (F887FINAUTO).
  2. Verificar que el guardado del recibo y el envío de los archivos XML y PDF se mande correctamente al correo registrado al cliente:
    1. Ejemplo:

      Expandir
      titleEnvio correcto del PDF al correo

...