01. DATOS GENERALES

Línea de producto:

Línea Protheus

Segmento:

Backoffice

Módulo:

Financiero


02. VISIÓN GENERAL


La rutina FINA070 tiene cinco parámetros que se informarán, sin embargo, para el funcionamiento en Execauto. El primer parámetro debe completarse como un array, pues las informaciones utilizadas en este array son esenciales para la finalización del proceso.

Parámetros utilizados por FINA070

xAutoCab: Es posible informar el array con los datos referentes al título que se dará de baja y las informaciones necesarias para esta baja, como por ejemplo fecha de la baja, fecha de crédito, etc.

nOpc: Opción que se está realizando en el fuente, como por ejemplo: baja, anulación de baja, etc. - Contenidos de nOpc: 3 - Baja de título, 5 - Anulación de baja, 6 - Borrado de baja.

lNoMbrowse: Variable lógica que informa si debe mostrarse o no el Browse de la rutina FINA070.

nOpbaixa: Variable que determina qué baja o anulación de baja se ejecutará.

Ejemplo nOpBaixa: Si se bajara un título completamente en dos, o más bajas parciales, por medio de este parámetro puede informarse cuál de las bajas se anulará.

Observación

Este parámetro no obedece la secuencia de baja grabada en la tabla SE5, por lo tanto, en un escenario con 4 bajas parciales, por ejemplo, al anular la segunda baja (parámetro igual a 2) y a continuación, fuera opción del usuario, anular la tercera baja, el parámetro debe transferirse con el valor 2 nuevamente, pues la baja anteriormente anulada no se considera más en la secuencia de bajas, la rutina considera una nueva secuencia, de 1 a 3, siendo la primera baja equivalente a 1, la tercera baja equivalente a 2 y la cuarta baja equivalente a 3.

Si el valor del parámetro fuera superior al número de bajas existente (por ejemplo, 3 bajas parciales y el parámetro con valor 4), la rutina considera automáticamente el parámetro como valor 1, anulando la primera baja de la secuencia (sea esta secuencia la original, es decir, respetando el orden de las bajas, o el orden actual, después de la anulación de alguna baja parcial).

cFiltro: Graba un filtro en los títulos de la  MBrowse.


Si se hubieran informado los siguientes campos con valor cero en el array de la rutina automática, el 4º elemento en el array (lógico) debe devolver .T. para que se considere el valor informado.
Si no se informara el 4º elemento, el sistema asume los valores estándares del sistema
:

AUTJUROS
AUTMULTA
AUTDESCONT
AUTCM1
AUTPRORATA

03. EJEMPLO DE UTILIZACIÓN


Ejemplo de rutina automática
#INCLUDE "Protheus.ch"

//-------------------------------
// Baja del título por cobrar
//-------------------------------

User Function BAIXA070()
 
	Local aBaixa := {}
 
	aBaixa := {{"E1_PREFIXO"  ,"   "                ,Nil    },;
			{"E1_NUM"      ,"200      "            ,Nil    },;
			{"E1_PARCELA"  ," "                    ,Nil    },;
			{"E1_TIPO"     ,"NF "                  ,Nil    },;
			{"AUTMOTBX"    ,"NOR"                  ,Nil    },;
			{"AUTBANCO"    ,"001"                  ,Nil    },;
			{"AUTAGENCIA"  ,"00001"                ,Nil    },;
			{"AUTCONTA"    ,"0000000001"           ,Nil    },;
			{"AUTDTBAIXA"  ,dDataBase              ,Nil    },;
			{"AUTDTCREDITO",dDataBase              ,Nil    },;
			{"AUTHIST"     ,"BAIXA TESTE"          ,Nil    },;
			{"AUTJUROS"    ,0                      ,Nil,.T.},;
			{"AUTVALREC"   ,700                    ,Nil    }}
 
	MSExecAuto({|x,y| Fina070(x,y)},aBaixa,3) 
 
Return

//-------------------------------
// Anulación de la baja del título por cobrar
//-------------------------------
User Function CANC070()
 
	Local aBaixa := {}
 	
	aBaixa := {{"E1_PREFIXO"  ,"   "                ,Nil    },;
			{"E1_NUM"      ,"200      "            ,Nil    },;
			{"E1_PARCELA"  ," "                    ,Nil    },;
			{"E1_TIPO"     ,"NF "                  ,Nil    },;
			{"AUTMOTBX"    ,"NOR"                  ,Nil    },;
			{"AUTBANCO"    ,"001"                  ,Nil    },;
			{"AUTAGENCIA"  ,"00001"                ,Nil    },;
			{"AUTCONTA"    ,"0000000001"           ,Nil    },;
			{"AUTDTBAIXA"  ,dDataBase              ,Nil    },;
			{"AUTDTCREDITO",dDataBase              ,Nil    },;
			{"AUTHIST"     ,"BAIXA TESTE"          ,Nil    },;
			{"AUTJUROS"    ,0                      ,Nil,.T.},;
			{"AUTVALREC"   ,700                    ,Nil    }}
 
	MSExecAuto({|x,y| Fina070(x,y)},aBaixa,5) 
 
Return

Ejemplo de rutina automática con prorrateo de múltiples modalidades
#INCLUDE "Protheus.ch"

//--------------------------------------------------
// Para el correcto funcionamiento el parámetro MV_MULNATR 
// debe estar igual a .T.
//---------------------------------------------------

//-------------------------------------------------------------
// En este ejemplo se utiliza una modalidad y un centro de costo
//--------------------------------------------------------------

User Function EXEC070()
 
	Local aBaixa := {}
 
	aBaixa := {{"E1_PREFIXO"  ,"   "                ,Nil    },;
			{"E1_NUM"      ,"200      "            ,Nil    },;
			{"E1_PARCELA"  ," "                    ,Nil    },;
			{"E1_TIPO"     ,"NF "                  ,Nil    },;
			{"AUTMOTBX"    ,"NOR"                  ,Nil    },;
			{"AUTBANCO"    ,"001"                  ,Nil    },;
			{"AUTAGENCIA"  ,"00001"                ,Nil    },;
			{"AUTCONTA"    ,"0000000001"           ,Nil    },;
			{"AUTDTBAIXA"  ,dDataBase              ,Nil    },;
			{"AUTDTCREDITO",dDataBase              ,Nil    },;
			{"AUTHIST"     ,"BAIXA TESTE"          ,Nil    },;
			{"AUTJUROS"    ,0                      ,Nil,.T.},;
			{"AUTVALREC"   ,500                    ,Nil    }}
 
	//Incluyendo el vector de la modalidad
	Aadd(aAuxEv,{"EV_NATUREZ","EASY", NIL }) //Modalidad por prorratear
	Aadd(aAuxEv,{"EV_VALOR", 500, NIL }) //Valor del prorrateo en la modalidad
	Aadd(aAuxEv,{"EV_PERC", 100, NIL }) //Porcentaje del prorrateo en la modalidad
	Aadd(aAuxEv,{"EV_RATEICC", "1", NIL }) //Prorrateo por centro de costo == 1 - Sí

	//Incluyendo múltiples centros de costo
	//Primer centro de costo
	aAuxEz := {}
	Aadd( aAuxEz,{"EZ_CCUSTO", "000001   ", NIL}) //Centro de costo de la modalidad
	Aadd( aAuxEz, {"EZ_VALOR", 500, NIL}) //Valor del prorrateo en este centro de costo
	Aadd(aRatEz, aAuxEz)
	Aadd(aAuxEv,{"AUTRATEICC", aRatEz, NIL}) //Recibiendo dentro del array de la modalidad los múltiples centros de costo
	
	Aadd(aRatEvEz,aAuxEv) //Incluyendo la modalidad al prorrateo de múltiples modalidades
	
	MSExecAuto({|x,y,z| Fina070(x,y,,,,,,,z)},aBaixa,3,aRatEvEz) 
	
	If lMsErroAuto
		MostraErro()
	Else
		MsgAlert("¡Baja realizada con éxito!")
	EndIf
 
Return

Ejemplo de rutina automática de título en otra moneda informando la tasa en el momento de la baja
#INCLUDE "Protheus.ch"

//-------------------------------
// Baja del título por cobrar
//-------------------------------

User Function BAIXA070()
 
	Local aBaixa := {}
 
	aBaixa := {{"E1_PREFIXO"  ,"   "                ,Nil    },;
			{"E1_NUM"      ,"200      "            ,Nil    },;
			{"E1_PARCELA"  ," "                    ,Nil    },;
			{"E1_TIPO"     ,"NF "                  ,Nil    },;
			{"AUTMOTBX"    ,"NOR"                  ,Nil    },;
			{"AUTBANCO"    ,"001"                  ,Nil    },;
			{"AUTAGENCIA"  ,"00001"                ,Nil    },;
			{"AUTCONTA"    ,"0000000001"           ,Nil    },;
			{"AUTDTBAIXA"  ,dDataBase              ,Nil    },;
			{"AUTDTCREDITO",dDataBase              ,Nil    },;
			{"AUTHIST"     ,"BAIXA TESTE"          ,Nil    },;
			{"AUTJUROS"    ,0                      ,Nil,.T.},;
            {"AUTTXMOEDA"  ,5.0000                 ,Nil    }}
 
	MSExecAuto({|x,y| Fina070(x,y)},aBaixa,3) 
 
Return  
Ejemplo de rutina automática de bajas por cobrar con descuento
#INCLUDE "Protheus.ch"

//-------------------------------
// Baja del título por cobrar.
// Título por el valor de R$1.000,00 con descuento de R$100,00.
//-------------------------------

User Function BAIXA070()

 	// Para este ejemplo se utilizó la variable AUTDESCONT,
    // si fuera necesario aplicar decremento a la baja del título  
	// basta modificar la variable para AUTDECRESC, ambas variables
	// tienen el mismo efecto de cálculo.
 
	Local aBaixa := {}
 
    aBaixa := {{"E1_PREFIXO"  ,"TST"                ,Nil    },;
            {"E1_NUM"      ,"TSTDESC  "            ,Nil    },;
			{"E1_PARCELA"  ," "                    ,Nil    },;
			{"E1_TIPO"     ,"NF "                  ,Nil    },;
			{"AUTMOTBX"    ,"NOR"                  ,Nil    },;
			{"AUTBANCO"    ,"001"                  ,Nil    },;
			{"AUTAGENCIA"  ,"00001"                ,Nil    },;
			{"AUTCONTA"    ,"0000000001"           ,Nil    },;
			{"AUTDTBAIXA"  ,dDataBase              ,Nil    },;
			{"AUTDTCREDITO",dDataBase              ,Nil    },;
            {"AUTDESCONT"  ,100                    ,Nil    },; 
  			{"AUTVALREC"   ,900                    ,Nil    }}     

	MSExecAuto({|x,y| Fina070(x,y)},aBaixa,3) 
 
Return  

04. OTRAS INFORMACIONES

No existe.



05. ASUNTOS RELACIONADOS

Documento de referencia FINA070 - bajas por cobrar