Sistema de Gestión de Negocios "Hexa"
Base de datos de conocimiento.
Doc. Ref. 27532 Título: Script de alta rápida de asientos Autor: Soltec Última actualización: 12/08/2023 |
Script de alta rápida de Asientos
El siguiente script, que se puede parametrizar en una opción de menú, permite realizar altas muy rápidas de asientos simples (con dos apuntes) especificando sólo estos datos:
- Fecha
- Concepto
- Cuenta Debe
- Cuenta Haber
- Importe
- Ruta del arechivo asociado (opcional)
Este documento es útil como ejuemplo de ejecución de un script que contiene una "Interacción", es decir, se solicta una serie de datos y una confirmación, y, un vez aceptados, se ejecuta un proceso y se muestra el resultado. En el caso de que los datos sean incorrectos, se avisa del problema y se vuelven a solicitar, mostrando por defecto los datos introducidos en el intento anterior.
Function Main (Criterio, Orden, Opciones) If Not Interact.Aceptado Then Interact.Reinicia "Datos", "Datos para el asiento básico con dos apuntes" : Interact.Cancelable = True Interact.NuevoValor "Fecha", "Fecha", "Fecha", 0, Date(),"Asiento","Fecha" Interact.NuevoValor "Concepto", "Concepto", "Texto", 0, "","Asiento","Concepto" Interact.NuevoValor "CuentaDebe", "Cuenta Debe", "Texto", 0, "","Apunte","Cuenta" Interact.NuevoValor "CuentaHaber", "Cuenta Haber", "Texto", 0, "","Apunte","Cuenta" Interact.NuevoValor "Importe", "Importe Debe (Negativo si es Haber)", "Real", 0, "","Apunte","Debe" Interact.NuevoValor "Ruta", "Archivo asociado", "Fichero", 0, "", "", "" Else Resultado = CAsi.AsientaSimple(fpc.cFe(Interact.Valor("Fecha")), CStr(Interact.Valor("CuentaDebe")),CStr(Interact.Valor("CuentaHaber")),cDbl(fpc.Vac(Interact.Valor("Importe"))),CStr(Interact.Valor("Concepto")),"","") If fpc.Vac (Resultado) <> 0 Then CodigoAsiento = BD.Cmp("Asiento", "Codigo", "Numero=" & CStr(Resultado), false) Resultado = "Creado Asiento Numero=" & cStr(Resultado) If Interact.Valor("Ruta") <> "" Then Resultado = Resultado & VbCrLf & IntC.ImpoDoc ("", "", "Ruta=" & fpc.SQLT(Trim(Interact.Valor ("Ruta"))) & " Campos=Nombre CamposForzados=""TipoDocumento='Asiento', NumeroDocumento=" & CodigoAsiento & """") Interact.Reinicia "Resultado", Resultado : Interact.Cancelable = False Else 'volver a preguntar usando los valores por defecto anteriores Fecha = Interact.Valor("Fecha") Concepto = Interact.Valor("Concepto") CuentaDebe = Interact.Valor("CuentaDebe") CuentaHaber = Interact.Valor("CuentaHaber") Importe = Interact.Valor("Importe") Ruta = Interact.Valor("Ruta") Interact.Reinicia "Datos", Resultado : Interact.Cancelable = True Interact.NuevoValor "Fecha", "Fecha", "Fecha", 0, Fecha,"Asiento","Fecha" Interact.NuevoValor "Concepto", "Concepto", "Texto", 0, Concepto,"Asiento","Concepto" Interact.NuevoValor "CuentaDebe", "Cuenta Debe", "Texto", 0, CuentaDebe,"Apunte","Cuenta" Interact.NuevoValor "CuentaHaber", "Cuenta Haber", "Texto", 0, CuentaHaber,"Apunte","Cuenta" Interact.NuevoValor "Importe", "Importe Debe (Negativo si es Haber)", "Real", 0, Importe,"Apunte","Debe" Interact.NuevoValor "Ruta", "Archivo o Carpeta", "Fichero", 0, Ruta, "", "" End If End If End Function
Comentarios del script
- El scipt está dividido en dos partes, la primera, con la condición de que no existe todavía una interacción pendiente de terminar (If Not Interact.Aceptado) crea una instancia del objeto "Interact" y le asigna los valores de datos a introducir. Cuando el usuario especifica valores y pulsa [Aceptar], se ejecuta la segunda parte del script.
- El proceso de generación del asiento, utiliza el método "AsientaSimple" del objeto CAsi para crear un asiento simple. Sus parámetros son la fecha, el concepto, las doc cuentas (deba y haber), el importe y el proyecto y las etiquetas a asignar a este asiento (estos dos últimos valores no se utilizan)
- El proceso de creación del asiento devuelve el número de asiento creado en caso de éxito o la explicación del motivo en caso de problemas (como cuentas inexistentes o mal especificadas)
- Si la creación tiene éxito, se sube el documento asciado (si se ha especificado) y se reinicia la interacición para que la aplicación muestre el resultado: (Interact.Reinicia "Resultado", Resultado : Interact.Cancelable = False)
- Si la creación no ha tenido éxito, se memoriza en variables los valores introducidos, se reinicia el objeto "Interact" y se vuelve a solicitar los datos usando, por defecto, los introducidos inicialmente.
- El usuario siempre puede cancelar el proceso usando el botón [Cancelar]