Home
Name Modified Size Downloads / Week Status
Totals: 27 Items   1.3 GB 27
MySQL User Admin 2006-06-22 11 weekly downloads
PSFGeneric.1.6.4_and_powerups_allinone.exe 2014-11-13 117.0 MB 11 weekly downloads
PSFGeneric.1.6.4_and_powerups_allinone readme.txt 2014-11-13 50.1 kB 11 weekly downloads
PSFGeneric.1.6.3_and_powerups_allinone.exe 2014-08-27 135.2 MB 22 weekly downloads
PSFGeneric.1.6.3_and_powerups_allinone readme.txt 2014-08-27 35.7 kB 11 weekly downloads
PSFGeneric.1.6.2_and_powerups_allinone.exe 2013-12-30 129.3 MB 11 weekly downloads
PSFGeneric.1.6.2_and_powerups_allinone readme.txt 2013-12-30 28.8 kB 11 weekly downloads
PSFGeneric.1.6.1_and_powerups_allinone readme.txt 2013-08-13 24.8 kB 11 weekly downloads
PSFGeneric.1.6.1_and_powerups_allinone.exe 2013-08-13 111.3 MB 11 weekly downloads
PSFGeneric 1.6 readme.txt 2013-07-03 1.3 kB 11 weekly downloads
PSFGeneric.1.6_and_powerups_allinone.exe 2013-07-03 106.7 MB 11 weekly downloads
PSFGeneric.1.5.3_and_powerups_allinone.exe 2013-05-30 295.0 MB 11 weekly downloads
PSFGeneric.1.5.2_and_powerups.exe 2013-04-25 289.6 MB 11 weekly downloads
PSFGeneric.1.5.1_and_powerups.msi 2013-01-23 8.1 MB 11 weekly downloads
psfgeneric.1.4.0.9000_and_powerups_asnia 4.msi 2012-01-07 8.0 MB 11 weekly downloads
psfgeneric.1.4.0.9000_and_powerups_asnia 2.msi 2011-01-08 8.0 MB 11 weekly downloads
psfgeneric.1.4.0.9000_and_powerups_asnia.msi 2010-03-25 8.0 MB 11 weekly downloads
psfgeneric.1.4.0.9000_and_powerups.msi 2010-02-12 7.9 MB 11 weekly downloads
municipios.xml 2010-01-13 337.0 kB 11 weekly downloads
psfgeneric.1.3.2_and_powerups_International.msi 2009-12-31 7.8 MB 11 weekly downloads
psfgeneric.1.3.1_and_powerups_International.msi 2009-12-06 8.5 MB 11 weekly downloads
psfgeneric.1.3_and_powerups_International - path 2009-11-21 8.0 MB 11 weekly downloads
psfgeneric.1.2.1_and_powerups_International beta2.msi 2009-11-09 8.1 MB 11 weekly downloads
psfgeneric.1.2.1_manual_powerups_International.zip 2009-10-29 13.4 MB 11 weekly downloads
psfgeneric.1.2_and_powerups_International.msi 2009-08-21 8.1 MB 11 weekly downloads
Manual.1.2.English.pdf 2009-08-21 3.3 MB 11 weekly downloads
Manual.1.2.Espanol.pdf 2009-08-21 3.3 MB 11 weekly downloads
----------------o---------------- PSFGeneric 1.6.4 CHANGELOG ----------------o---------------- Nota: .- Si cualquier evento devuelve "cancel"=true entre sus respuestas evitara que se ejecute cualquier otro manejador del mismo evento. .- El motor javascript de los power-ups dinamicos actua en contextos distintos dependiendo del momento, en cada contexto las variables globales son distintas. Si tenemos dos formularios tendremos tres contextos distintos, si tenemos una variable declarada en una libreria JS esta podra tener tres valores dependiendo desde donde sea consultada. En el ejemplo tendriamos un contexto independiente para cada formulario y otro mas para metodos de arranque, parada, instalacion y desinstalacion. Mejoras: .- Acceso a servidores sFTP y FTP. .- Nuevo control y campo de texto con formato HTML. .- Nuevo metodo para Indice de Registros para indicar la etiqueta de columna. Para que se aplique no se debe usar la propiedad FormatString, si queremos ocultar una columna le podemos poner un ancho 0. .- Dos nuevos eventos para agregar paginas al imprimir presupuestos: Event[manager.before.print.budget]{budget_id: Int, client:evoItem[cContactos], selldocumentdody_guid:String} <= pages:ArrayList[page_guid:String] Event[manager.after.print.budget]{budget_id: Int, client:evoItem[cContactos], selldocumentdody_guid:String} <= pages:ArrayList[page_guid:String] Parametros: budget_id: Int -> ID del presupuesto en proceso de impresion client:evoItem[cContactos] -> evoItem del cliente asociado o nothing (null) si no esta definido selldocumentdody_guid:String -> GUID del listado de articulos asociados al presupuesto. Respuesta: pages:ArrayList[page_guid:String] -> ArrayList de GUIDs de las páginas a agregar. .- Lanzar eventos antes de empezar a generar un impreso con plantillas y despues, pero justo antes de generar el PDF asociado. (solo para presupuestos/facturas proforma) .- Todos los campos de notas de documentos de administracion admiten formato. .- Descripcion de articulo con formato. .- Listado de textos para anexos de presupuesto (Mediante eventos) .- Dos nuevos metodos javascript que se ejecutan al inicializar y detener power-ups dinamicos: Se encuentran definidos en PSFGeneric_api.js, este api se añade automaticamente a todos los proyectos. /* * Se ejecuta al cargar el power-up dinamico. * PSFGeneric esta completamente cargado, asi como los power-up, pero los power-ups dinamicos puede que no esten todos cargados */ function appStarted() {} /* * Se ejecuta al parar el power-up dinamico. */ function appStopping() {} .- Añadida funcion nativa en JavaScript para definir servicios de PSFGeneric. Ahora es posible comunicar distintos power-ups dinamicos entre ellos o/y power-ups nativos. AddOperation(), mas informacion en PSFGeneric_api.js que se crea en los nuevos proyectos de power-up dinamico. .- El manejador de servicios ahora permite dar de baja servicios. .- Nuevo metodo javascript para quitar servicios: RemoveOperation(server, operation) .- Cuatro nuevos metodos Javascript para el control de eventos (Mas informacion en PSFGeneric_api.js) Sub declareEvent(ByVal eventkey As String, ByVal params As String, ByVal ret As String) Sub addListener(ByVal eventkey As String, ByVal Func As [Delegate]) Sub delListener(ByVal eventkey As String, ByVal Func As [Delegate]) Function doEvent(ByVal eventkey As String, ByVal params As Hashtable) As ArrayList .- Nuevas vistas del panel de acceso rapido .- Los iconos del panel de acessos rapidos pueden ocultarse, en la barra de herramientas sobre el listado aparece un llave para configurarlo. .- Nuevo power-up explorador de clases EVO .- Integracion EVO con javascript para permiter el acceso directo a datos (registros) y creacion de nuevas colecciones (tablas). .- Metodos javascript para ejecutar al instalar y desinstalar un power-up dinamico. /* * Se ejecuta cuando el power-up dinamico esta siendo instalado */ function appInstall() {} /* * Se ejecuta cuando el power-up dinamico esta siendo desinstalado */ function appUninstall() {} .- El editor de power-ups dinamicos permite abrir varias instancias. .- Capacidad de abrir formularios del mismo proyecto desde otros contextos javascript con showForm(nombre). Con la propiedad ShowIsTaskBar a true el metodo devuelve el objeto MyForm con los valores de campo al cerrar el formulario invocado, si la propiedad es false se devuelve el objeto en el momento de la apertura, es decir, sin datos. Si se ejecuta el formulario invocador en modo depuracion los formularios invocados se ejecutaran en modo ejecucion normal. .- Mejoras en la generacion de tickets y su configuracion. .- Mientras conectamos a servidor remoto, o cargamos monopuesto, se muestra una ventana de notificacion. .- Nuevo servicio para obtener el nombre de un impuesto: "catalog", "gettaxname", delegado, "id:int", "name:string" .- Añadido desglose de impuestos a los tickets del TPV. .- Desglose de impuestos en tickets, conforme normativa para "facturas simplificadas" en España. .- Añadidas ventanas de espera durante la carga. .- Metodos de instalacion, inicio, parada y desinstalacion como variables de tipo function para poder encadenarlas. .- Nuevo control para power-ups dinamicos "Boton abrir formulario", permite abrir otro formulario con valores iniciales personalizados. .- Añadida propiedad app_guid al DOM Environment con la ID del power-up dinamico. .- El editor de power-ups dinamicos al pulsar abrir proyecto abre en el directorio de proyectos de ejemplo. .- Nuevos mensajes de ayuda durante el arranque, asi como enlaces para buscar ayuda en internet. .- Agregado gestor documental, dividido en espacios y sin limites de profundidad de directorios. .- Agregados los servicios necesarios para dar soporte de gestion de documentos: filemanager::gdgetspaces(void) = spaces:ArrayList[evoItem:gdFolder] filemanager::gdisspace(path:String) = isspace:bool filemanager::gdgetfolders(path:String) = folders:ArrayList[evoItem:gdFolder] filemanager::gdgetfolder(path:String) = folder:[evoItem:gdFolder] filemanager::gdissubfolder(path:String, name:String) = exist:bool filemanager::gdaddfolder(path:String, name:String) = void filemanager::gdisemptyfolder(path:String) = empty:bool filemanager::gdremovefolder(path:String, [recursive:bool=false]) = void filemanager::gduploadfile(path:String, file:String, [autorename:bool=true]) = ok:bool, newname:String filemanager::gddownloadfile(path:String, [localfile:String]) = ok:bool, localfile:String filemanager::gdgetfiles(path:String) = files:ArrayList[evoItem:gdFile] filemanager::gdremovefile(path:String) = void filemanager::gdgetfoldersize(path:String) = size:int filemanager::gdmovefileto(filepath:String, path:String) = void filemanager::gdmovefolderto(folderpath:String, path:String) = void filemanager::gdchangefilename(path:String, name:String) = void filemanager::gdchangefoldername(path:String, name:String) = void filemanager::gdshowfolderbrowser(show_new_folder_button:bool, description:String, [selectedpath:String], [rootfolder:String]) = path:String filemanager::gdshowfilebrowser([multiselect:bool = true]) = files:ArrayList[String] "filemanager", "gdfileexist", delegado, "path:String", "exist:bool" "filemanager", "gdfolderexist", delegado, "path:String", "exist:bool" .- La ventana de enviar email permite adjuntar documentos del gestor documental. .- Nuevo servicio para obtener el directorio de archivos temporales. "psfgeneric", "tempfolder", delegado, "", "path:String" .- Temporales centralizados en un mismo directorio para su borrado al salir de PSFGeneric. .- Visor de documentos PDF generados permite subir los documentos al gestor documental .- Editor HTML permite incrustar imagenes del gestor documental. .- Imprimir listado de precios ahora puede exportar a PDF. .- Cache de archivos remotos, se reinicia en cada sesion o al actualizar un archivo. .- Nuevo servicio para ofrecer al usuario seleccionar una agenda mediante una ventana de dialogo: "contacts", "selectagenda", delegado, "", "data:ievoUItem" .- Mejoras de rendimiento en el visor de asientos economicos. .- La carga de articulos del listado rapido del TPV ahora solo se produce una vez durante la carga. .- Creada ventana de ordenar articulos visualmente, esta en el menú mantenimiento. .- Es posible limitar el nº de articulos visibles en el acceso rapido del TPV, esta en la opciones del powerup. .- Nuevos servicios de formato de HTML con imagenes del gestor documental: "filemanager", "gdhtmlremotetolocal", delegado, "src:String", "src:String" "filemanager", "gdhtmlremotetomailbody", delegado, "src:String", "src:String" .- Nueva ventana de envio de Feedbacks sobre PSFGeneric. .- Cache de conexiones FTP mediante rutas. .- Agregado procesador de textos. .- Opciones del menu principal con iconos. .- Nuevo servicio: "contacts", "get_client_by_user", delegado, "[userid:integer]", "data:ievoUItem" .- Añadir permiso de acceso "Login como invitado" que solo permita acceder a ciertas acciones. .- Permitir acceso a usuarios con permiso "Login como invitado". .- Bloquear acceso a "imprimir movientos economicos" a invitados. .- Bloquear acceso a "optimizar tablas" para usuarios sin "Superlogin" .- Bloquear acceso a "cola de envio de mails" para usuarios sin "Superlogin" .- Bloquear acceso a "Abrir archivo cuaderno 19" para usuarios sin "Facturar a clientes" .- Hacer que todas las acciones exigan el permiso "Login" como minimo para garantizar la seguridad. .- Para invitados no se aplica la configuracion "firstrun". .- Los power-ups que se permiten cargar para invitados se configuran en la ventana de configuracion de power-ups. .- Invitados no ven la consola abierta por defecto. .- Mostrar nombre de empresa activa en titulo de la ventana. .- Añadir modelo de permisos al gestor documental. .- Limitar acceso al gestor documental de HTMLArea para invitados. .- Añadir parámetro invitados a añadir menu. .- Añadir propiedad invitados a accesos rapidos. .- Si no tiene permiso login ocultar menu y acceso rapido, por defecto lo requiere. .- Permitir entrar con permiso login invitado pero sin permiso login. .- Para invitados añadir nombre de la empresa por defecto antes del título y versión en la ventana principal. .- Añadir campo actividad a Contacto .- Añadir campo usuario del sistema a Contacto .- En configuracion de fileManager opcion de permitir descarga de archivos del gestor documental a partir de su ruta. (Por defecto: permitido) .- Mostrar usuarios por nombre de contacto y usuario entre parentesis en ventana de permisos. .- Poder crear permisos de acceso por defecto sin necesidad de mostrar la ventana de permisos (para configurador de empresa). .- Cache de consulta en la capa EVO. .- Cache de tablas de clases EVO. ----------------o---------------- Correcciones: .- Mejorada la velocidad de carga inicial. .- En ficha de contacto el campo pasaporte pisa la caja de texto. .- Autoscroll para ventana de presupuestos, albaranes y facturas de ventas. .- Autoscroll para ventana de presupuestos y facturas de compra. .- Mover el cursor en cualquier area de texto del editor de power-ups dinamicos genera errores. .- El panel lateral izquierdo no recuerda si esta recogido o no de una ejecucion a otra, ahora lo recuerda para cada usuario independientemente del terminal en el que inicie sesion. .- Al instalar un power-up dinamico directamente de su archivo DPU no cambiarlo de nombre. .- Si al guardar un proyecto de power-up dinamico el codigo javascript contiene "]]>" falla y destruye el archivo de proyecto. .- Corregido error ortografico en el metodo 'getCLRObjet', se corrige a 'getCLRObject'. (Ambos quedan disponibles por compatibilidad) .- El metodo apiExistTable esta cacheando la consulta de tablas existentes dando falsos positivos. Si un tipo EVO se crea, se destruye y se vuelve a crear sin reiniciar la aplicacion el tipo se crea pero su tabla en la base de datos no. Corregido con un nuevo servicio en PSFGeneric para vaciar esa cache (Abusar relentiza todo PSFGeneric): psfgeneric::clear_tableexist_cache(void) = void .- Al cerrar PSFGeneric con la X no hace una parada limpia. .- Si getCLRObject recibe null como parametro falla, corregido devolviendo null. .- Al cargar en modo seguro se cargaban los power-ups dinamicos, ahora no. .- En modo seguro no era posible desinstalar un power-up dinamico, ahora lo es pero no es una desinstalacion limpia. .- Retoques esteticos al TPV. .- Al imprimir ticket en el espacio de la mesa aparece el nombre del terminal. .- Todos los campos BLOB se convierten a LONGTEXT para corregir el problema de la codificacion de caracteres en la base de datos, ademas se cambia la codificacion de conexion a UTF-8. El cambio debe ser transparente para versiones anteriores a 1.6.4, pero podrian almacenar datos erroneamente (Sin acentos y caracteres especiales). .- Quitado Drupal 7 de la insstalacion. .- Al borrar una imagen de articulo no desaparece hasta reiniciar PSFGeneric. .- El ejemplo de DPU prueba simple no abre en una base de datos de PSFGeneric 1.4 .- El control buscar articulo no funciona en una base de datos de PSFGeneric 1.4. .- El pedir el nombre de un articulo que no existe se produce un error de objeto nulo. .- En situaciones de mucha carga de procesador con el TPV abierto, si se produce un cierre inesperado el TPV no es capaz de volver a abrir. Ahora tambien tiene la capacidad de recuperar el estado de las cuentas abiertas. .- Aumentado el limite de cache de la base de datos a 1000 peticiones. .- Identificados productos en tickets por MD5 de su nombre. (Versiones anteriores de PSFGeneric no guardaban la ID de producto) .- En los power-ups dinamicos con indice de registros al actualizar un registro sobreescribe el primero en lugar del correcto, el fallo se debia a que al seleccionar un registro externo al control de navegacion no se guardaba el elemento solo su posicio y al aplicar se aplicaba sobre el ultimo seleccionado por el navegador de registros no por el indice de registros. .- Si se tiene permiso de invitado no mostrar ventana de licencia al buscar productos. .- Carga por bloques al listar objetos EVO, antes se hacia 1 a 1. ----------------o---------------- PSFGeneric 1.6.3 CHANGELOG ----------------o---------------- Mejoras: h3d - Buscar certificado h3d - añadir campo nº serie en certificados h3d - filtro cliente h3d - filtro localidad h3d - filtro nº certificado h3d - filtro fecha prestacion h3d - añadir stats h3d - añadir avisos de mecenazgo h3d - Si el nº d certificado va en mayusculas el buscador tambien debe ir en mayusculas. h3d - dosis es campo de texto de 6 chr h3d - plazo seguridad es campo numerico con una H h3d - accion residual es campo de texto 100 chr h3d - en tabla de productos poner todo en letra 8px, y materia activa con (**) y letra 6px. .- Nuevos servicios del modulo de gestión de numeros de serie: "serialnumberholder", "getserialofid", delegado, "id:integer", "serial:string" "serialnumberholder", "getidofserial", delegado, "numserie:string", "id:integer" .- Nuevo servicio de PSFGeneric: "psfgeneric", "evogetypes", delegado, "", "types:hashtable[(name)string:(versions)arraylist]" .- Nuevo power-up para ampliar dinamicamente las propiedades asociadas a un Item EVO, independientemente de su versión. .- Nuevo tipo EVO sin propiedades para usarse como base para añadirle cualquier nº de propiedades dinamicas. (Concepto de Item generico) .- Nuevos servicios del power-up de extension de propiedades EVO prop_ext::propertytype_getlist(void) = list:arraylist[PropertyType.ID] prop_ext::propertytype_add(type:string, multivalue:bool, description:string, label:string, meta:string/*clase evo de contenido*/) = id:integer Valid PropertyType content types: varchar, Texto, blob, dateval, DateTime, Int, float, bool, file, evoitem prop_ext::propertytype_del(id:integer) = void prop_ext::propertytype_get(id:integer) = type:string, multivalue:bool, description:string, label:string, meta:string/*clase evo de contenido*/ prop_ext::propertytype_edit(id:integer, type:string, multivalue:bool, description:string, label:string, meta:string/*clase evo de contenido*/) = void prop_ext::propertygroup_getlist(void) = list:arraylist[PropertyGroup.ID] prop_ext::propertygroup_add(description:string, label:string) = id:integer prop_ext::propertygroup_del(id:integer) = void prop_ext::propertygroup_get(id:integer) = description:string, label:string prop_ext::propertygroup_edit(id:integer, description:string, label:string) = void prop_ext::propertygroup_addproperty(groupid:integer, propertyid:integer) = void prop_ext::propertygroup_delproperty(groupid:integer, propertyid:integer) = void prop_ext::propertygroup_getproperties(id:integer) = list:arraylist[PropertyType.ID] prop_ext::propertyextension_getlist(evobasetype:string, [evobaseid:integer = 0]) = list:arraylist[PropertyType.ID] prop_ext::propertyextension_add(evobasetype:string, [evobaseid:integer = 0], idpropertytype:integer) = id:integer prop_ext::propertyextension_del(id:integer) = void prop_ext::propertyextension_get(id:integer) = evobasetype:string, evobaseid:integer, idpropertytype:integer prop_ext::propertyextension_edit(id:integer, evobasetype:string, [evobaseid:integer = 0], idpropertytype:integer) = void prop_ext::propertyextension_valueadd(extenderid: integer, value:string) = id:integer prop_ext::propertyextension_valuedel(extenderid: integer, id:integer) = void prop_ext::propertyextension_valueget(extenderid: integer) = value:string, list:arraylist[PropertyValue.ID] prop_ext::propertyextension_valueset(extenderid: integer, id:integer, value:string) = void prop_ext::propertyextension_valuegetbyid(id: integer) = value:string prop_ext::propertyextension_valuesetbyid(id: integer, value:string) = void .- Nuevo permiso "Administrar propiedades extendidas EVO" para administradores .- Nuevo metodo para power-ups para ser ejecutado al terminar de cargar todos los power-ups. .- Añadido controlador general de eventos a PSFGeneric para permitir comunicación entre power-ups (aun no disponible en power-ups dinamicos) .- Definidos eventos para el seguimiento de elementos EVO: Event[evo.item.add]{item:evoItem} <= void Event[evo.item.before.del]{item:integer, class:string, version:string} <= void Event[evo.item.before.save]{item:evoItem} <= void Event[evo.item.after.save]{item:evoItem} <= void .- Metodo refresh para actualizar el contenido desde la base de datos en un evoItem. .- Añadir propiedad a formulario dinamico para poner acceso directo en enlaces rapidos. .- Si hay un fallo a partir de la carga de power-ups dinamicos se informa y se continua aunque la interfaz no quede completa. .- Nuevo servicio en PSFGeneric: "psfgeneric", "evogetfieldnames", delegado, "class:string, version:string", "fields:arraylist[string]" .- Añadido control de indice visual de registros para power-ups dinamicos. .- Nuevo servicio: "prop_ext", "propertygroup_artongroup", delegado, "id:integer", "ongroup:bool" .- Nuevo servicio web para actuar como proxy de Geolocalización de MapQuest Nominatim .- Componentes de editor de power-ups dinamicos agrupados en distintas pestañas. .- Nuevo control de filtro de campo de texto y de contacto de registros para power-ups dinamicos. .- Nuevas funciones en JavaScript para controlar el registro actual de un formulario de power-up dinamico: moveFirst: Selecciona el primer registro como activo. moveLast: Selecciona el ultimo registro como activo. movePrev: Selecciona el anterior registro como activo. moveNext: Selecciona el siguiente registro como activo. remove: Borra el registro activo. count: Devuelve la cantidad de registros existentes. .- Agregado directorio con archivos fuente de power-ups de ejemplo: <dir. instalacion>/docs/power-ups src/ .- Nuevo power-up dinamico para impresión de etiquetas de precios. ----------------o---------------- Correcciones: .- Al generar facturas con fecha en el ejercicio anterior la numeración es del año actual. .- Todos los usuarios pueden crear power-ups dinamicos poniendo en riesgo la seguridad global de PSFGeneric, corregido con permiso de administrador "Crear nuevos power-ups dinámicos" .- Hay dos maneras distintas de editar las propiedades de un articulo. Corregido dejando solo el servicio. .- Validación de tipo EVO distingue entre mayusculas y minusculas. .- Cuando un usuario carga power-ups dinamicos con controles de almacen y no hay almacenes definidos o no puede acceder a ellos la aplicación falla y no puede abrirse. .- El formulario de gestion de empresas administrativas no se muestra completamente. .- A veces PSFGeneric no cierra correctamente y queda en estado Zomby, se ha forzado su cierra matando el proceso. .- Cambiada geolocalización de Google por MapQuest Nominatim. .- La ventana de power-upds dinamicos se bloquea sin conexión a internet, ahora carga los DPU locales. .- El power-up de copia de seguridad MySQL no puede importar tablas de power-ups dinamicos. .- Errores cargando power-ups dinamicos al inicio no detiene la carga completamente. ----------------o---------------- PSFGeneric 1.6.2 CHANGELOG ----------------o---------------- Mejoras: .- Nueva columna pagare en seguimiento de facturas: Si esta pendiente de cobro y contiene una fila de seguimiento no cobrado con etiqueta pagare aparece se marca en el listado. .- En propiedades de vehiculos/historico autoconsumo al hacer doble clic sobre una linea de cabecera se abre el albaran correspondiente. .- En propiedades de vehiculos/historico autoconsumo boton para añadir nuevo albaran autoconsumo asociado al vehiculo. .- Nuevo servicio interno: "manager", "getselldeliveryofnumber", delegado, "number:int", "id:int" .- Al usar una tarjeta MQS para conectar solicita añadirla a la lista de servidores conocidos. .- Nueva ventana de conexion a servidores, mejora la informacion sobre cada opcion y permite iniciar Apache2 en local .- Preinstalación de la distribución de Drupal 7.23 (Usuario/clave: Admin / 1234) .- Ayuda emergente, popup, desactivable en la configuracion general .- Nuevo objeto javascript XmlHttpObject para la captura y envio de información a servidores web/restFull Sigue el esquema expuesto en: http://es.wikipedia.org/wiki/XMLHttpRequest#Implementaci.C3.B3n_y_uso_de_la_interfaz Tiene algunas limitaciones con respecto a su homologo web, como imposibilidad de usar URL relativas, ademas de no devolver estados de respuesta del servidor (200, 404, etc...). Ejemplo de uso: var conn = GetXmlHttpObject(); debug("Estado: " + conn.readyState); conn.open("get", "www.psfgeneric.com", "", true); conn.onload = function() { debug(conn.responseText); } conn.onreadystatechange = function() { debug("Estado: " + conn.readyState); } conn.onabort = function() { debug("Petición cancelada"); } conn.onloadstart = function() { debug("Descarga iniciada"); } conn.onprogress = function(percentage, TotalBytesToReceive, BytesReceived) { debug("Descargado: " + percentage + ", " + TotalBytesToReceive + " bytes de " + BytesReceived + " bytes"); } .- Añadir funciones setInterval(), setTimeout(), clearTimeout(timeoutVariable) y clearInterval(intervalVariable) en javascript .- Al abrir agrupar facturas recordar si el check de enviar por mail estaba seleccionado o no. .- Textbox para puerto en ventana de conexión a servidores. .- Cierres de ejercicio de almacén .- Cierres de ejercicio de gestor económico (Usar como base, requiere revisión manual) .- Agregada libreria JSON in JavaScript de Douglas Crockford en el directorio \jsLibs\json ----------------o---------------- Correcciones: .- Historico factura menu contextual no va a ver factura. .- En seguimiento de facturas al cambiar fechas mientras esta cargando se duplican facturas en el listado. .- Ventana de facturas de venta no muestra facturas enlazadas de otros modulos debido a un fallo en el filtro de fechas. .- Ventana de albaranes de venta no muestra albaranes enlazados de otros modulos debido a un fallo en el filtro de fechas. .- No se permite multiseleccion en la lista de tareas (agenda). .- Al iniciar en monopuesto a veces no espera a que el servidor local este iniciado y devuelve a la ventana de conexion. .- En panel de servicios hacer calculo por días a partir de fecha del albaran de entrega. .- Estudio economico en propiedades de nº de serie de vehiculos falla al calcular ingresos a partir de facturas. Ahora usa albaranes de venta. .- Capa de conexión a datos ahora admite indicar el puerto de conexión a MySQL: 127.0.0.1:3306 .- Control area de texto no permite definir texto inicial en el editor de power-ups dinamicos. .- Las propiedades status y statusText de XmlHttpObject ahora se cargan con valores de estado correctos. .- XmlHttpObject mediante POST ahora devuelve cadena de caracteres de resultados. .- XmlHttpObject ahora soporta metodos HTTP PUT, DELETE, etc... .- Al abrir imprimir resumen de almacen sin tener una empresa creada da error. (error reportado automaticamente) ----------------o---------------- PSFGeneric 1.6.1 CHANGELOG ----------------o---------------- Pendientes: no se pueden reparar .- #19140 - 27/07/2013: Si falta memoria RAM System.Drawing genera errores. -> Requiere actualizacion de windows (http://support.microsoft.com/kb/2650146/en-us - KB2650146) ----------------o---------------- Mejoras: .- Nuevo power-up dinámico: Ejemplo ACERCA DE .- Nuevo servicio interno en PSFGeneric::CebraListView para colorear listados .- Filtro por fechas en albaranes de venta o cobro .- Índice de albaranes de venta .- Añadida fecha de albarán de entrega en servicios. (Por defecto es la fecha del día actual, si estaba cerrado es la fecha de apertura) .- Aplicado formato cebra para el listado de servicios y de tareas de servicio. .- Jerarquía de clases base para archivos de cuadernos bancarios .- Jerarquía de clases para interpretar o generar archivos bancarios Cuaderno 19 (según "serie normas y procedimientos bancarios 19/Mayo 2004" .- Configuración de paneles de servicios pasa al menú mantenimiento .- Nueva opción Abrir Cuaderno 19 en Mantenimiento, útil para revisar archivos de remesas de cobro ya generados. .- Aplicado formato cebra a índice de facturas en la ventana de facturas. .- Nuevo servicio en el núcleo de PSFGeneric para verificar un número de cuenta bancaria. .- Generador de remesas de cobro Cuaderno 19 en menú/gestores/ventas/generar remesa de cobros .- Numero de versión para la base de datos .- Poder borrar tareas desde la interfaz de tareas. .- Botón quitar foto de articulo. .- Marcar en el mapa todos los contactos de una agenda en concreto. .- Permitir iconos personalizables en marcadores de mapa .- Marcas de contactos en mapas con iconos alusivos a su naturaleza .- Marcas de números de serie en clientes en mapas con iconos alusivos a su naturaleza .- Aplicado formato cebra a todas las listas .- Acceso rápido al generador de remesas de cobro .- Añadidas listas de municipios de Argentina, Colombia, Ecuador, México, Puerto Rico y Venezuela .- Opción menú/mantenimiento/importar/catalogo de productos. Los archivos que puede usar son XML con la siguiente estructura: <products> <product> <property name="categoria"><![CDATA[categoria]]></property> <property name="referencia"><![CDATA[referencia]]></property> <property name="nombre"><![CDATA[nombre]]></property> <property name="pvp"><![CDATA[precio]]></property> <property name="pvd"><![CDATA[precio de compra]]></property> <property name="barcode"><![CDATA[codigo de barras]]></property> <property name="descripcion"><![CDATA[descripcion]]></property> <property name="activo"><![CDATA[True]]></property> <property name="orden"><![CDATA[0]]></property> <property name="seriarizado"><![CDATA[false]]></property> <property name="serialtype"><![CDATA[simple]]></property> <property name="intangible"><![CDATA[false]]></property> </product> </products> .- Nueva etiqueta en la caja descripción de productos del explorador de productos. .- En tareas recordar el usuario seleccionado del que mostrar tareas. .- Mejorar tratamiento de menús para poder quitarlos .- Añadido control de formularios de power-ups dinámicos mediante scripts JavaScript. .- Desactivado servidor apache integrado para mejorar velocidad de inicio. .- Añadidas dos funciones JavaScript para depuración: trace, debug .- Añadida función alert a JavaScript .- Nuevo objeto JavaScript para acceder a los campos del formulario: MyForm. Para mostrar su contenido durante el desarrollo usar trace(MyForm.ToString()); Para acceder a los campos se usa MyForm.Field('<nombre de campo>') y para las propiedades MyForm.Field('<campo>').Field('<propiedad>').Value; Ejemplo de acceso a un campo: alert(MyForm.Field("TextBox1").Field("value").Value); .- Nuevo objeto JavaScript para acceder a datos del entorno: Environment. Para mostrar su contenido durante el desarrollo usar trace(Environment.ToString()); Ejemplo: trace(Environment.Field("version").Value); .- En motor JavaScript añadido limitador de ventanas emergentes. .- En motor JavaScript añadido límite de tiempo de ejecución. .- Añadida función close a JavaScript para cerrar el formulario. .- Redirección de errores no capturados en todo PSFGeneric a la consola de depuración. .- Incluidos archivos de símbolos de depuración en la instalación de PSFGeneric. .- Añadido control Botón al editor de formularios con evento clic programable con JavaScript. .- Añadido envió de errores no controlados a psfgeneric.com para su reparación. Solo se envía información de depuración sin enviar datos de la empresa. .- Envió de errores opcional pudiendo desactivarlo en la configuración general. .- Añadido listado de elementos en el diseñador de formularios de power-ups dinámicos .- Los paneles del editor de power-ups dinámicos se recogen o despliegan automáticamente según el contexto .- Límite de tiempo de ejecución de JavaScript configurable. Limite 0 para tiempo ilimitado. .- Actualizar valores del objeto javascript MyForm. .- Implementados objetos window y navigator en entorno JavaScript. .- JavaScript cambiado a modo estricto. (Todas las variables deben declararse) .- jQuery 1.2 funciona en su mayoría. .- Mootools 1.4.5 funciona en su mayoría. .- Implementar módulos JavaScript en proyectos de power-ups dinámicos. .- Mejorada legibilidad de la consola de estado. .- Al probar formularios en el editor las líneas de código se muestran numeradas en la consola. .- Implementar tratamientos de todos los tipos de campos de MyForm de JavaScript. .- Si un formulario de power-up dinámico no tiene navegador de registros no genera tabla en la base de datos. .- Implementar componente SuperTree, incluyendo la seguridad de acceso. .- Al agrupar facturas se muestra una ventana con todas las facturas creadas para enviarlas por mail o imprimirlas .- Botón no usar hueco en la ventana de selección de estos. .- Nueva pestaña histórico de albaranes autoconsumo en ficha de n/s con horómetro. .- Nueva pestaña histórico de albaranes autoconsumo en ficha de n/s de vehículos. .- Nuevo método Javascript getCLRObjet() para adaptar objetos internos a Javascript. .- Nuevo método Javascript doOperation() para hacer uso de los servicios disponibles en PSFGeneric. .- Al crear un nuevo proyecto de power-up dinámico se le añade la librería JavaScript de PSFGeneric. .- Se permite cambiar de nombre las librerías JavaScript. .- Editor de formularios: permitir instalar/desinstalar sin publicar .- Editor de formularios: Borrar y mover controles con el teclado. .- Descripción de power-ups dinámicos, en configuración, mostrar la información con formato HTML ----------------o---------------- Correcciones: .- Al crear nuevo albarán de cobro no siempre se muestra para edición. .- Al crear nuevo pedido a proveedores no siempre se muestra para edición. .- Al crear nuevo presupuesto no siempre se muestra para edición. .- Al abrir ventana de albaranes de cobro siempre sale editable, igual pasa en facturas, presupuestos, etc... .- Seguimientos de cobros a clientes y pagos a proveedores no se bloquea cuando no hay ninguna factura seleccionada. .- Una vez reparado el fallo de coma flotante no volver a mostrar la ventana de reparación. .- Si no se define cuenta de cobro por defecto al abrir el generador de remesas falla .- A veces al seleccionar una tarea se le cambia la hora. .- Limitado tamaño de imágenes de artículo a 640x480px como máximo. .- Al abrir panel derecho del mapa no se redimensiona el contenido .- Quitar refresco cada vez que se añade un marcador en el mapa .- Al entrar a veces no muestra la ventana de multiservidor. .- Al buscar en agendas de contactos el listado parpadea y es muy lento .- Optimizada carga de todas las listas .- Power-up municipios no aparece en la lista .- Instalación de municipios considerablemente mas rápida .- Al importar agenda de contactos de google no se ven los contactos .- En la ventana de agendas se muestran las de google como google calendar .- !!! Al aprobar presupuesto pone aproVado :_ ( .- El componente de selección de tarifa de precio no actualiza correctamente su ancho al redimensionarse .- No es posible desinstalar un power-up dinámico .- El administrador de power-ups dinámicos muestra la lista mal si no se definió la empresa .- Administrador de power-ups dinámicos: Separar las opciones instalar, desinstalar y descargar .- El instalador no copia correctamente las librerías de scintillaNET .- No se quitan los handlers de formularios cerrados en el editor de power-ups dinámicos. .- Quitar try {} catch {} del editor de power-ups dinámicos para que los errores sean enviados a psfgeneric.com .- El límite de tiempo de ejecución del motor JavaScript podría saltarse haciendo llamadas a funciones de manera reiterada .- Al pulsar el botón de prueba del editor de power-ups dinámicos si no hay un formulario abierto falla. .- Al detener un JavaScript por exceso de tiempo no permite ejecutar ningún otro posterior. .- La ventana propiedades del editor de power-ups dinámicos no se ve completa si no cabe en la pantalla .- El navegador de registros de los power-ups dinámicos falla si se selecciona por programación un registro inexistente. .- Al probar un formulario no se ejecuta la última modificación, sino la última vez que se guardo .- Si hay un error en JINT el seguimiento de tiempo de ejecución no se para. .- Al abrir un formulario de power-up dinámico con un solo control de navegación no se habilitan los botones al añadir registro. .- El servicio de contactos "contacts::getagenda" permite recuperar cualquier nodo supertree .- TaskBar muestra una ventana de error que impide que la aplicación sigua funcionando sin supervisión .- Si se borra el archivo de un power-up dinámico instalado da error de archivo no encontrado al cargar. .- Al cierre de un servicio si se genera automáticamente el último albarán de cobro se hace en blanco. .- En algunos casos al seleccionar un nº de serie no sale su nombre extendido correctamente. .- Al usar un hueco de contador de documentos si no se escogió ninguno usa cero. .- Un n/s con ITV pasada anteriormente no puede pasar nuevas, la fecha no se cambia. .- Notas de cobro no admite valores negativos. .- Añadida puntuación de miles a la cadena de formato de moneda en toda la aplicación. (Gracias a Dani de Instant Buy por su aportación) ----------------o---------------- ----------------o---------------- PSFGeneric 1.6 ----------------o---------------- PSFGeneric – Núcleo Capacidad para trabajar tanto en red, multipuesto, como en un único ordenador, monopuesto. Integra servidores necesarios para el funcionamiento monopuesto Instalación automática en la base de datos, incluida su creación si fuera necesario, y en el servidor de ficheros Acceso rápido a calculadora de Windows Calculadora de letra de NIF español Validador de cheques bancarios Comprobación de números de cuentas bancarias Navegador web integrado Bloquear terminal para ausentarnos y proteger la información en pantalla con nuestro usuario y contraseña Cada usuario puede cambiar su clave Cola de envío de mails Conexión directa con servidor de emails Envío de emails con copia y copia oculta automática independiente, y oculta, de la configuración del mail enviado Cola transparente distribuida de envió de mails, a mas usuarios mas envíos simultáneos (todos los usuarios envían mails de la cola aunque no tengan acceso a ella) Gestión por parte del usuario de la cola de envío de mails Plantillas de emails Optimización de tablas en la base de datos Consola de estado Panel de opciones Integración con conversores de HTML a PDF para documentos Puede conectarse a múltiples servidores abriendo copias distintas Mantiene listado de servidores a los que conectarse Grupos de usuarios según áreas para permisos Permisos de acceso para cada usuario mediante perfiles Permisos de acceso para cada usuario por documento Permiso de superadministrador para tener todos los demás permisos Permiso de conexión para usuarios Capacidad para instalar power-ups dinámicos, módulos creados por los usuarios Mantenimiento de la conexión a la base de datos aunque el servidor tenga un tiempo máximo de conexión Crear mail nuevo desde la cola de envío de mails Interfaz dividida en paneles intercambiables y distribuibles en varios monitores o integrados en la interfaz principal Panel de accesos rápidos a funciones Panel de menú principal Barra de tareas similar a Windows para acceso a los paneles abiertos Navegación por pestañas para los paneles abiertos Ampliación de funciones mediante programación NET Framework 3.5 o inferior ----------------o---------------- Configuración de empresas Asistente de creación de empresas a gestionar Empresas enlazadas a ficha general de contacto de empresa, control de stocks, catalogo de productos, agendas de contactos de clientes, proveedores y personal, plantillas de presupuestos, albaranes y facturas, cuentas económicas, impuesto por defecto y siete contadores para documentos, anuales o globales Permisos por usuario de acceso a los datos de cada empresa Administración ----------------o---------------- Paneles de servicios de cobro mensual Servicios enlazables a control de stocks en almacén y control de números de serie Paneles de servicios configurables en cuanto a exigencia de firma de documentos de entrega, contratos y devoluciones Documentos impresos según plantillas configurables Paneles de servicios puede configurarse para trabajar con un único número de serie por servicio Paneles de servicio pueden cambiar la etiqueta de sus botones Ventana de acceso rápido a distintos paneles de servicios, con opción de abrir varios al mismo tiempo Servicios pueden estar abiertos, en ejecución o cerrados Los servicios pueden ordenarse por fecha de apertura, por cliente o por número de documento Ficha completa de cliente, con dirección de facturación y de trabajo, para servicios Albarán de entrega, de devolución y contrato para cada servicio Entregas a cuenta en servicios Programador de avisos, mediante tareas, en cada servicio Generador automático de albaranes de cobro con cálculo de días o por copia literal del albarán de entrega Campo fecha de cierre estimada para cálculos automáticos y avisos de disponibilidad Visor de archivos c19 de remesas de efectos bancarios (cobros) Configuración de impuestos y recargos con impuesto por defecto configurable Varias tarifas de precios, definidas por el usuario Accesos directos a agendas de gestión con permisos superpuestos a los de la agenda que les da soporte y permisos especiales para crear o modificar contactos Agendas de gestión con filtro de búsqueda de contactos Todos los documentos de gestión etiquetables y con notas y observaciones Acceso directo a agenda de proveedores con permiso independiente Gestión de facturas de proveedores y seguimiento de pagos Acceso directo a agenda de clientes con permisos independientes Presupuestos a clientes etiquetables y con notas Albaranes de ventas etiquetables y con notas Facturas a clientes etiquetables y con notas, con seguimiento de pagos Asistente para agrupación de albaranes de venta en facturas a clientes Asistente de generación de remesas de cobro bancarios a clientes Grafica anual comparativa de cobro a clientes y facturación Panel de seguimiento de facturas cobradas, con totales de pendiente de cobro, cobrado y total facturado Calculo del índice de morosidad por cliente o global por periodos seleccionables Panel de histórico de facturas de a clientes relacionadas con números de serie Panel de seguimiento de números de serie en paneles de servicios a clientes, enlazado a servicio de mapas para marcar la dispersión geográfica de las direcciones de trabajo ----------------o---------------- Listados de artículos para documentos tipo factura Con desglose de impuestos y recargos Enlazado a catalogo de productos y números de serie Libertad para concepto libre Comentarios Referencias enlazables a números de serie para estadísticas Incremento / decremento rápido de cantidades en líneas ----------------o---------------- Almacén – Control de stocks Seguimiento de almacén según modelo de asientos de partida doble por artículo El asistente de empresas crea tres almacenes por defecto, pero no hay límite en el número de ellos que el usuario puede crear Paneles de existencias, números de serie en almacén e histórico de movimientos Filtro de histórico de movimientos por nº de serie Enlazado a propiedades de número de serie Asientos de movimientos de almacén con etiquetas descriptivas y valor orientativo del producto en ese movimiento Permite ajustes manuales de almacén Filtros por fecha y ejercicio Favoritos web con inicio de sesión automático Enlaces web favoritos con configuración de formulario POST para login automático Plantillas de login automático para webs WordPress Impresión de existencias en almacén Permite guardar el listado de existencias en formato HTML o PDF Envío de listado de existencias en PDF por mail ----------------o---------------- Catalogo de productos Divisible en carpetas Permite copiar, cortar y pegar uno o varios artículos Referencia, nombre, precio por defecto, impuesto, recargo, código de barras, visibilidad en caja registradora, y tipo de artículo en propiedades de artículo Tres tipos de artículos: intangibles que no se mueven en almacén, tangibles sin número de serie y tangibles con número de serie que si se mueven en almacén Tres tipos de números de serie de artículo: sin propiedades especiales, vehículos automotrices en general, y vehículos automotrices con horómetro Descripción por artículo Precio distinto para cada tarifa de precios definida por el usuario Foto de artículo ----------------o---------------- Gestor de archivos remotos Gestión de plantillas definibles para todos los usuarios Almacén de adjuntos de emails Almacén de fotos de productos Basado en servidores FTP Soporte para abstracción a otros apartados del programa Gestor económico básico ----------------o---------------- Multiempresa Cuentas agrupadas a un nivel Libertad para crear tantas cuentas como se requiera Basado en partida doble para una única moneda Filtros de fecha y ejercicio Requiere cierre y apertura de ejercicios Grafica de extracto de movimientos en el mismo listado de estos Impresión de movimientos económicos por cuenta Permite guardar los movimientos económicos en formato HTML o PDF Envío de movimientos en PDF por mail ----------------o---------------- Google Data Conectado a servicios de datos de Google Conectado a agenda de contactos de Google ----------------o---------------- Imprimir catalogo Impresión de artículos visibles en catálogos Cabecera definible por el usuario Columnas definidas por el usuario Permite guardar el catalogo en formato HTML o PDF Envío de catálogos PDF por mail ----------------o---------------- Servicios de mapas Conectable a más de 20 servicios de mapas online Posicionamiento por latitud / longitud indicada por el usuario Posicionamiento por dirección indicada por el usuario Interactividad con el ratón o táctil Múltiples capas ocultables por el usuario ----------------o---------------- Copias de seguridad de bases de datos Configuración de copias de seguridad automatizadas a múltiples servidores de datos MySQL Copias de seguridad programables para copias diarias, semanales o por días de la semana, o mensuales o por día del mes, con hora de inicio Permisos de acceso a configuración de copias de seguridad y de ejecución, el usuario que más tiempo pasa conectado podría hacer las copias sin poder programarlas o detenerlas ----------------o---------------- Agendas de contactos Permisos de acceso global a agendas de contactos Permisos de acceso específicos para cada agenda Creación de tantas agendas como se requiera Sin límite de contactos por agenda Ayuda emergente en el visor de agendas Filtro de agenda Búsqueda en todas las agendas que puede ver el usuario Fichas de contacto con nombre, apellidos, razón social, fecha de nacimiento, nif/cif, pasaporte, nº seguridad social, índice de minusvalía, enlazado a contacto presentador y contacto al que contactar, si aplicar recargo de equivalencia y notas Sin límite en el numero de direcciones postales, teléfonos, cuentas bancarias o correos electrónicos asociadas a un contacto (Todos con valor por defecto definido por el usuario) Envío directo de mail a un contacto Envío de mail a todos los usuarios de una agenda (a modo de boletín informativo) ----------------o---------------- Controlador de números de serie Panel de administración de números de serie conocidos por el sistema Iconos distintos según el tipo de número de serie Números de serie de tipo automóvil genérico con matricula, fecha de matriculación, marca, si es eléctrico, fecha de fabricación, color, modelo, actividad principal, notas, póliza de seguro, póliza de circulación, alertas de mantenimiento configurables (para aceite de motor, filtro de aceite, filtro de combustible, neumáticos, frenos, suspensiones, correa de distribución, bujías, dirección y refrigerante), seguimiento de kilómetros recorridos, enlazado a propietario y usuario habitual. Números de serie de tipo automóvil con horómetro con matricula, fecha de matriculación, marca, si es eléctrico, fecha de fabricación, color, modelo, actividad principal, notas, póliza de seguro, póliza de circulación, alertas de mantenimiento configurables (para horas de motos, horas de hidráulico y horas de combustible), seguimiento de horas de trabajo, enlazado a propietario y usuario habitual. Fichas de productos con pestaña de histórico de movimientos de almacén Seguimiento de inspecciones técnicas de vehículos según tipo asociado (tipos de vehículos para ITV según los define VEIASA) Estudio económico de rentabilidad de números de serie de tipo vehículo general o con horómetro Alertas y prealertas por vencimiento de pólizas de seguros, inspecciones obligatorias y mantenimientos ----------------o---------------- Editor de Power-ups dinámicos Creación de proyectos con varios formularios Asociados a nombre, empresa y web del autor Indicador de versiones con incrementos automáticos Asociado a versión de PSFGeneric 18 tipos de campos básicos y controles de agrupación 20 tipos de campos complejos de empresa y controles de navegación Formularios integrados en paneles de PSFGeneric o en forma de diálogos Integración con menús definidos por el usuario Permite guardar y cargar formularios de forma independiente para usarlos como plantillas Integración de iconos e imágenes Decenas de propiedades de campos y controles Compilador de power-ups dinámicos y publicador para otros usuarios ----------------o---------------- Siglas de vías Configuración de siglas de vía con asignación de código abreviado Municipios ----------------o---------------- Múltiples países Importación / exportación de países, provincias y municipios Editor de municipios ----------------o---------------- Gestor de tareas Alertas de tareas pendientes de completar Tareas con fecha y hora de inicio y vencimiento, usuario responsable, prioridad primaria y secundaria, color, asunto, descripción y lista de asistentes Vista grafica por días, semanas, semanas laborales, meses o años y periodos desde 5 a 60 minutos Agenda de tareas en modo listado Puede ver o asignarse tareas a otros usuarios del sistema ----------------o---------------- Configuración de tickets de caja Permite definir varias cabeceras y pies por ticket, limitados por fechas y orden entre ellos Los tickets usan plantillas con macros definidas con el controlador de impresora Impresión de tickets de pruebas Según modelo de impresora se permite: alineación de textos, impresión en negro o rojo, saltos de línea y separadores Cuerpo de ticket configurable Conectividad impresoras familia Epson TMU-220 ----------------o---------------- TPV – Caja registradora Editor de locales con barra, tres tipos de mesas y paredes Local permite cambiar el nombre de todos los elementos Cada elemento del local representa una cuenta distinta, salvo las paredes Multicuenta simultanea, con recuperación ante reinicios inesperados Códigos de barras Lista rápida con fotografías de artículos Búsqueda por categorías de artículos Cobros por tarjeta, en metálico, o invitaciones Apertura rápida del cajón portamonedas Incremento / decremento rápido de cantidades en líneas de concepto Función completa en terminales táctiles
Source: PSFGeneric.1.6.4_and_powerups_allinone readme.txt, updated 2014-11-13