Migrated from hg
|
@ -0,0 +1,16 @@
|
|||
Copyright (C) 2012-2015 Oscar Alvarez.
|
||||
Copyright (C) 2008-2012 Cédric Krier.
|
||||
Copyright (C) 2008-2012 B2CK SPRL.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
@ -0,0 +1,56 @@
|
|||
Installing Tryton POS Client
|
||||
============================
|
||||
|
||||
Prerequisites Client
|
||||
--------------------
|
||||
|
||||
* Python 3.5 or later (http://www.python.org/)
|
||||
* python-setuptools
|
||||
* python3-pyqt5
|
||||
* python3-pyqt5.qtsvg
|
||||
* python3-dateutil
|
||||
* python-pip
|
||||
* libusb-1.0-0
|
||||
* libusb-1.0-0-dev
|
||||
* python3-dev
|
||||
* python3-pil
|
||||
|
||||
* neo (https://bitbucket.org/presik/neo)
|
||||
|
||||
* Optional, Pip packages:
|
||||
pip3 install pyusb
|
||||
pip3 install pillow
|
||||
pip3 install qrcode
|
||||
pip3 install paramiko
|
||||
pip3 install pycups
|
||||
|
||||
Prerequisites Server Modules
|
||||
----------------------------
|
||||
|
||||
* trytond_account_invoice (http://www.tryton.org/)
|
||||
* trytond_sale (http://www.tryton.org/)
|
||||
* trytond_sale_invoice_grouping (http://www.tryton.org/)
|
||||
* trytond_sale_payment (http://www.bitbucket.org/)
|
||||
* trytond_sale_shop (http://www.bitbucket.org/)
|
||||
* trytond_sale_pos (http://www.bitbucket.org/)
|
||||
* trytonpsk_sale_salesman (http://www.bitbucket.org/)
|
||||
* trytonpsk_sale_w_tax (http://www.bitbucket.org/)
|
||||
* trytonpsk_sale_pos_frontend (https://bitbucket.org/presik/trytonpsk_sale_pos_frontend)
|
||||
* trytonpsk_product_onebarcode (http://www.bitbucket.org/)
|
||||
|
||||
|
||||
pip3 install pyserial
|
||||
sudo adduser myuser dialout
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Once you've downloaded and unpacked the pos_client_qt5 source release, enter the
|
||||
directory where the archive was unpacked, and run:
|
||||
|
||||
python setup.py install
|
||||
|
||||
Note that you may need administrator/root privileges for this step, as
|
||||
this command will by default attempt to install module to the Python
|
||||
site-packages directory on your system.
|
|
@ -0,0 +1,352 @@
|
|||
Instalación de Tryton POS Client Qt5
|
||||
====================================
|
||||
|
||||
Esta versión solo es compatible con Tryton 4.0+, se asume que el usuario tiene
|
||||
conocimientos básicos previos sobre la instalación y configuración de Tryton,
|
||||
especialmente los modulos oficiales relacionados con contabilidad y ventas, no
|
||||
es el objeto de esta guia abordar temas de configuración básica.
|
||||
|
||||
Para poder instalar Tryton POS Client Qt5 se requieren los siguientes
|
||||
paquetes instalados en el sistema:
|
||||
|
||||
En Debian, Ubuntu y Derivados, se recomienda usar: $ apt install paquete
|
||||
|
||||
* Python 3.5 or later (http://www.python.org/)
|
||||
* python-setuptools
|
||||
* python3-pyqt5
|
||||
* python3-pyqt5.qtsvg
|
||||
* python3-dateutil
|
||||
* python3-pip
|
||||
* libusb-1.0-0
|
||||
* libusb-1.0-0-dev
|
||||
* libcups2-dev
|
||||
* gcc
|
||||
* python-dev
|
||||
* python3-dev
|
||||
* python3-pil
|
||||
|
||||
* neo (https://bitbucket.org/presik/neox)
|
||||
|
||||
Los siguientes paquetes se deben instalar usando PIP
|
||||
|
||||
pip3 install pyserial
|
||||
pip3 install pyusb
|
||||
pip3 install pillow
|
||||
pip3 install qrcode
|
||||
pip3 install paramiko
|
||||
pip3 install pycups
|
||||
|
||||
|
||||
Tener en cuenta que algunos paquetes se deben instalar con pip para python3.
|
||||
|
||||
Nota: el Cliente POS de momento ha sido testeado en Windows parcialmente, asi que
|
||||
no hay garantia de que funcione al 100% en este OS.
|
||||
|
||||
Se recomienda instalar Tryton 4.0 creando un ambiente virtual con
|
||||
virtualenv.
|
||||
|
||||
Los siguientes módulos se deben instalar en la base de datos Tryton
|
||||
y deben estar configurados al 100% (se ampliara explicación de la configuración
|
||||
más adelante).
|
||||
|
||||
Los modulos deberian instalarse aproximadamente en el orden en que estan
|
||||
listados de arriba a abajo, empezando por Oficiales, y luego los modulos
|
||||
Presik.
|
||||
|
||||
|
||||
Modulos Oficiales
|
||||
----------------------------------------------------------------------------
|
||||
* trytond_account (http://www.tryton.org/)
|
||||
* trytond_account_invoice (http://www.tryton.org/)
|
||||
* trytond_stock (http://www.tryton.org/)
|
||||
* trytond_sale (http://www.tryton.org/)
|
||||
* trytond_sale_price_list (http://www.tryton.org/)
|
||||
* trytond_sale_invoice_grouping (http://www.tryton.org/)
|
||||
* trytond_account_statement (http://www.tryton.org/)
|
||||
|
||||
Sugerencia, instalar en el ambiente virtual usando:
|
||||
|
||||
$ pip3 install trytond_module
|
||||
|
||||
|
||||
Ingresar al directorio e instalar (dentro del ambiente virtual
|
||||
anteriormente creado):
|
||||
|
||||
$ python3 setup.py install
|
||||
|
||||
|
||||
Modulos No Oficiales (Presik)
|
||||
----------------------------------------------------------------------------
|
||||
* trytonpsk_sale_payment (https://bitbucket.org/presik/trytonpsk_sale_payment)
|
||||
* trytonpsk_sale_w_tax (https://bitbucket.org/presik/trytonpsk_sale_w_tax)
|
||||
* trytonpsk_sale_shop (https://bitbucket.org/presik/trytonpsk_sale_shop)
|
||||
* trytonpsk_sale_pos (https://bitbucket.org/presik/trytonpsk_sale_pos)
|
||||
* trytonpsk_product_onebarcode (https://bitbucket.org/presik/trytonpsk_product_onebarcode)
|
||||
* trytonpsk_sale_salesman (https://bitbucket.org/presik/trytonpsk_sale_salesman)
|
||||
* trytonpsk_sale_discount (https://bitbucket.org/presik/trytonpsk_sale_discount)
|
||||
* trytonpsk_sale_pos_frontend (https://bitbucket.org/presik/trytonpsk_sale_pos_frontend)
|
||||
|
||||
Ingresar al directorio e instalar (dentro del ambiente virtual
|
||||
anteriormente creado):
|
||||
|
||||
Sugerencia, descargar los paquetes desde bitbucket usando en el terminal:
|
||||
|
||||
$ hg clone paquete
|
||||
|
||||
Luego instalar:
|
||||
|
||||
$ python3 setup.py install
|
||||
|
||||
|
||||
Nota: Verificar todos los modulos anteriores esten en la versión correcta,
|
||||
si alguno tiene una versión distinta seguramente el POS no funcionará.
|
||||
|
||||
|
||||
|
||||
CREACION DE BASE DE DATOS Y CONFIGURACIÓN DE VENTAS
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Se asume que se tienen conocimientos previos sobre Tryton por lo cual se
|
||||
resumiran los pasos:
|
||||
|
||||
- Crear una base de datos
|
||||
|
||||
- Instalar los modulos oficiales en la base de datos:
|
||||
* Administración > Modulos > Modulos
|
||||
|
||||
- Instalar los modulos Presik:
|
||||
* Administración > Modulos > Modulos
|
||||
|
||||
- Crear la Compañia, Año Fiscal, Plan de Cuentas, Formas de Pago, etc.
|
||||
|
||||
|
||||
Configuración del Modulo de Ventas (especialmente sale_shop, sale_pos)
|
||||
|
||||
- Crear un Libro de Estado de Cuenta:
|
||||
|
||||
Contabilidad > Configuración > Estados de Cuenta > Libros de Estado de Cuenta
|
||||
|
||||
|
||||
En el módulo de Ventas > Configuración:
|
||||
|
||||
- Crear una "Tienda" (Shop)
|
||||
|
||||
- Crear un "Terminal de Venta" y asignarle al menos un Libro Contable.
|
||||
Ej: Efectivo
|
||||
|
||||
|
||||
En Terceros:
|
||||
|
||||
- Crear el "Tercero" que sera usado en el POS y asignarlo a las tiendas por defecto.
|
||||
|
||||
- Crear al menos un "Empleado" (que será usado como un vendedor cuando la venta
|
||||
lo requiera)
|
||||
|
||||
|
||||
En el módulo Administración:
|
||||
|
||||
- Crear un usuario POS, en:
|
||||
"Administración > Usuarios > Preferencias"
|
||||
|
||||
Asignarle la tienda, y el terminal de venta creado anteriormente,
|
||||
asi mismo verificar que este usuario tenga "Permisos de Acceso" para el modulo
|
||||
de Ventas.
|
||||
|
||||
Tambien en la pestaña "Permisos de Acceso" marcar los campos:
|
||||
|
||||
Usuario POS Frontend [X]
|
||||
|
||||
Usuario Borra Ventas POS [X]
|
||||
|
||||
Este último es opcional si es aplica.
|
||||
|
||||
|
||||
|
||||
|
||||
INSTALACION Y CONFIGURACION DEL CLIENTE POS
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Requisitos del Cliente POS:
|
||||
|
||||
* libjpeg8
|
||||
* libjpeg62-dev
|
||||
* libfreetype6
|
||||
* libfreetype6-dev
|
||||
|
||||
|
||||
Instalelos con: apt-get install paquete
|
||||
|
||||
Ahora se debe descargar e instalar el modulo python_escpos, el cual
|
||||
es requerido para que funcionen las impresoras POS:
|
||||
|
||||
$ hg clone https://bitbucket.org/presik/python_escpos
|
||||
|
||||
$ cd python_escpos
|
||||
|
||||
$ python setup.py install
|
||||
|
||||
|
||||
Descargar el Cliente POS, usando el comando hg clone:
|
||||
|
||||
https://bitbucket.org/presik/presik_pos
|
||||
|
||||
Con esto obtendrá la ultima version de desarrollo.
|
||||
|
||||
Descargue el microframework NEO, desarrollado por presik:
|
||||
|
||||
https://bitbucket.org/presik/neo
|
||||
|
||||
Instalelo dentro de la carpeta principal de presik_pos,
|
||||
los directorios deben quedar así:
|
||||
|
||||
|__presik_pos
|
||||
|__app
|
||||
|__doc
|
||||
|__neo
|
||||
|
||||
Poner la carpeta descargada en algun lugar de su directorio /home/usuario/miaplicacion
|
||||
|
||||
Crear el directorio ".tryton" en el directorio HOME del usuario, ejemplo
|
||||
si mi usuario se llama "pedro", la ruta debe quedar así:
|
||||
|
||||
/home/pedro/.tryton
|
||||
|
||||
Copiar el archivo "config_pos.ini" del paquete descargado al directorio
|
||||
creado ".tryton"
|
||||
|
||||
Al final del proceso debe quedar así:
|
||||
|
||||
/home/myuser/.tryton/config_pos.ini
|
||||
|
||||
El archivo config_pos.ini define la información de la configuración del
|
||||
terminal de venta, y los parametros de conexión, si el archivo queda
|
||||
mal o con algún error es probable que el cliente NO funcione o genere errores.
|
||||
|
||||
|
||||
Archivo de Configuración del POS
|
||||
--------------------------------
|
||||
A continuación se explicaran los principales campos en este archivo de
|
||||
configuración:
|
||||
|
||||
#Valid protocols: xml, json, local
|
||||
protocol=xml
|
||||
|
||||
El protocolo debe ser 'xml' tal como se ve en el archivo por defecto,
|
||||
'json' presenta un bug que no se ha resuelto.
|
||||
|
||||
server=192.168.X.XX
|
||||
|
||||
El servidor al que se va a conectar el terminal.
|
||||
|
||||
port=8000
|
||||
|
||||
El puerto de conexión
|
||||
|
||||
database=DEMO40
|
||||
|
||||
El nombre de la base de datos creada
|
||||
|
||||
|
||||
user=admin
|
||||
|
||||
El usuario por defecto para el terminal de venta, este debe tener permisos para
|
||||
ingresar al terminal, por defecto es admin.
|
||||
|
||||
|
||||
Para configurar la impresora se maneja el siguiente formato:
|
||||
|
||||
printer_sale_name=interface,rutadelaimpresora
|
||||
|
||||
Las interfaces válidas son tres: usb, cups, network y ssh (en este caso instalar openssh-server)
|
||||
|
||||
Ejemplos
|
||||
|
||||
printer_sale_name=usb,/dev/usb/lp0
|
||||
|
||||
printer_sale_name=cups,EPSON-TM-T20
|
||||
|
||||
printer_sale_name=ssh,usuario@contraseña@ipdelequiporemoto@puerto@/dev/usb/lpX
|
||||
|
||||
|
||||
|
||||
|
||||
Id de dispositivo:
|
||||
|
||||
device_id=CAJA-10
|
||||
|
||||
El numero Id de la caja a conectarse tal como fue creada en Tryton, en
|
||||
Terminales de Venta, para hallarla se debe usar el boton de herramientas,
|
||||
y click en la opción "Ver Registro..", en el formulario de la Tienda.
|
||||
|
||||
|
||||
|
||||
Haga una venta desde Tryton sin POS
|
||||
-----------------------------------
|
||||
|
||||
Asi que en este punto sin necesidad del Cliente POS usted debería ser
|
||||
capaz a través del cliente Tryton 4.0, de hacer ventas:
|
||||
|
||||
>> Ventas > Ventas POS
|
||||
|
||||
En caso de no poder hacer ventas a través de este módulo probablemente
|
||||
tampoco las podra hacer por el Cliente POS.
|
||||
|
||||
Recuerde que para iniciar a hacer ventas debe abrir primero los "Estados
|
||||
de Cuenta" a través del Wizard en el Módulo de Ventas:
|
||||
>> Ventas
|
||||
> Estados de Cuenta
|
||||
> "Abrir Estados de Cuenta"
|
||||
|
||||
Y al finalizar el día/turno del cajero debería ir a la misma ruta y
|
||||
"Cerrar los Estados de Cuenta", con el fin de que Tryton contabilice
|
||||
los pagos y marque las facturas como pagadas.
|
||||
|
||||
|
||||
Ejecutar el Cliente Presik POS
|
||||
------------------------------
|
||||
|
||||
Antes de ejecutar el cliente es muy importante verificar que Tryton
|
||||
esta perfectamente configurado y permite hacer ventas por el usuario creado.
|
||||
|
||||
Antes de ejecutar el cliente debe asegurarse de que el servidor este
|
||||
ejecutandose. Para ejecutar el cliente ingrese al directorio
|
||||
"presik_pos" y ejecute:
|
||||
|
||||
$ python3 pospro
|
||||
|
||||
|
||||
|
||||
Manejo Básico del Cliente POS
|
||||
-----------------------------
|
||||
|
||||
El cliente POS funciona con los códigos de producto, asi que los
|
||||
productos que no tengan código, no podrán ingresarse.
|
||||
|
||||
Para testear el sistema debe crear un producto tipo "Articulo"
|
||||
vendible, con código.
|
||||
|
||||
|
||||
Oprima la tecla F1 para ver los principales atajos de teclado.
|
||||
|
||||
* Ingresar productos:
|
||||
Para ingresar un producto, digite el código del producto, y oprima la tecla [+]
|
||||
|
||||
|
||||
* Terminar la venta:
|
||||
Oprima dos veces la tecla [intro], lo cual hará que el sistema pida el valor a
|
||||
pagar. En la barra superior en el campo de información.
|
||||
|
||||
|
||||
* Ingresar el pago:
|
||||
Ingrese el valor en billetes, monedas de pago del cliente, y oprima la tecla [+],
|
||||
para confirmar el pago.
|
||||
|
||||
|
||||
* Impresion de factura:
|
||||
Si la impresora esta bien configurada, la impresión de la factura es automática,
|
||||
en caso de no haber impresora el sistema permite continuar a la siguiente venta,
|
||||
si desea reimprimir la factura utilice la tecla [F7].
|
||||
|
||||
|
||||
Cualquier bug o error, puede reportarse en bitbucket. Para asesoria
|
||||
o soporte adicional, puede contactarme: oscar.alvarez.montero@gmail.com
|
|
@ -0,0 +1,674 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
|
@ -0,0 +1,46 @@
|
|||
Presik POS Client for Tryton
|
||||
=========================================
|
||||
|
||||
The Point of Sale Client for Tryton application platform development
|
||||
in Qt5 and Python3.
|
||||
|
||||
Installing
|
||||
----------
|
||||
|
||||
See INSTALL
|
||||
|
||||
Support
|
||||
-------
|
||||
|
||||
If you encounter any problems with Tryton, please don't hesitate to ask
|
||||
questions on the Tryton bug tracker, mailing list, wiki or IRC channel:
|
||||
|
||||
https://bitbucket.org/presik/presik_pos
|
||||
https://www.presik.com
|
||||
http://bugs.tryton.org/
|
||||
http://groups.tryton.org/
|
||||
http://wiki.tryton.org/
|
||||
irc://irc.freenode.net/tryton
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
See LICENSE
|
||||
|
||||
|
||||
Update Translation
|
||||
------------------
|
||||
Modify your i18 file and execute in terminal:
|
||||
|
||||
$lrelease i18n_es.ts
|
||||
|
||||
|
||||
Copyright
|
||||
---------
|
||||
|
||||
See COPYRIGHT
|
||||
|
||||
|
||||
For more information please visit the Tryton web site:
|
||||
|
||||
http://www.bitbucket.org/
|
|
@ -0,0 +1,5 @@
|
|||
TODO
|
||||
|
||||
- Adicionar funcionamiento del POS modo standlone
|
||||
|
||||
- Usar voz para informar al usuario
|
|
@ -0,0 +1,3 @@
|
|||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
__version__ = "5.0.0"
|
|
@ -0,0 +1,164 @@
|
|||
|
||||
QAbstractButton {
|
||||
font-family: "DejaVu Sans";
|
||||
border-style: groove;
|
||||
font: 12pt;
|
||||
color: rgb(102, 102, 102);
|
||||
background-color: rgb(242, 242, 242);
|
||||
min-height: 50px;
|
||||
min-width : 110px;
|
||||
border-color: rgb(208, 208, 208);
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
#field_total_amount, #field_amount, #label_input,
|
||||
#field_default,
|
||||
#field_small_blue,
|
||||
#field_small_gray,
|
||||
#field_invoice {
|
||||
background-color : white;
|
||||
border-style : groove;
|
||||
border-width : 0.5px;
|
||||
border-color : rgb(208, 208, 208);
|
||||
}
|
||||
|
||||
#label_default {
|
||||
font : 14pt;
|
||||
color : rgb(102, 102, 102);
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#field_default {
|
||||
font: bold 14pt;
|
||||
min-height : 10px;
|
||||
}
|
||||
|
||||
#field_small_gray, #label_small_gray {
|
||||
font : 16px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_medium_gray, #label_medium_gray {
|
||||
font : 24px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_big_gray, #label_big_gray {
|
||||
font : 32px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_small_blue, #label_small_blue {
|
||||
font : 16px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_medium_blue, #label_medium_blue {
|
||||
font : 24px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_big_blue, #label_big_blue {
|
||||
font : bold 32px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_small_orange, #label_small_orange {
|
||||
font : 16px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
#field_medium_orange, #label_medium_orange {
|
||||
font : 24px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
#field_big_orange, #label_big_orange {
|
||||
font : bold 32px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
QDialog {
|
||||
min-height : 300px;
|
||||
max-height : 400px;
|
||||
min-width : 500px;
|
||||
}
|
||||
|
||||
#label_gray {
|
||||
font: bold 14pt;
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
color: rgb(102, 102, 102);
|
||||
}
|
||||
|
||||
#label_blue {
|
||||
font: bold 14pt;
|
||||
color: rgb(17, 84, 102);
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#label_message {
|
||||
font : 14pt;
|
||||
min-height : 45px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#field_invoice {
|
||||
font : 15pt;
|
||||
min-height : 45px;
|
||||
min-width : 110px;
|
||||
}
|
||||
|
||||
#label_input {
|
||||
font : 15pt;
|
||||
min-height : 45px;
|
||||
min-width : 200px;
|
||||
}
|
||||
|
||||
#field_sign {
|
||||
font: bold 26pt;
|
||||
min-height : 70px;
|
||||
max-width: 100px;
|
||||
}
|
||||
|
||||
#field_amount {
|
||||
font: 24pt;
|
||||
min-height : 60px;
|
||||
max-width: 310px;
|
||||
}
|
||||
|
||||
#field_total_amount, #label_total_amount {
|
||||
color : rgb(50, 65, 75);
|
||||
}
|
||||
|
||||
#table_sale_lines {
|
||||
color : rgb(70, 70, 70);
|
||||
font : 11pt;
|
||||
max-height: 380px;
|
||||
}
|
||||
|
||||
#label_product, #label_qty, #spin_box_qty, #row_field_price,
|
||||
#label_price, #row_field_note, #row_field_description {
|
||||
font : 24px;
|
||||
alignment : center;
|
||||
}
|
||||
|
||||
QSpinBox {
|
||||
padding-right: 15px;
|
||||
border-width: 3;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
QSpinBox::up-button {
|
||||
subcontrol-position: right;
|
||||
height: 38px;
|
||||
width: 38px;
|
||||
}
|
||||
|
||||
QSpinBox::down-button {
|
||||
subcontrol-position: left;
|
||||
height: 38px;
|
||||
width: 38px;
|
||||
}
|
|
@ -0,0 +1,178 @@
|
|||
import os
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QWidget, QGridLayout, QHBoxLayout, QStackedWidget
|
||||
|
||||
from neox.commons.custom_button import CustomButton
|
||||
from .common import get_icon
|
||||
|
||||
DIR_SHARE = os.path.abspath(os.path.normpath(os.path.join(__file__,
|
||||
'..', '..', 'share')))
|
||||
|
||||
__all__ = ['ButtonsFunction', 'ButtonsStacked', 'ButtonsNumber']
|
||||
|
||||
|
||||
def factoryIcons():
|
||||
pass
|
||||
|
||||
|
||||
factoryIcons()
|
||||
|
||||
|
||||
class ButtonsFunction(QGridLayout):
|
||||
# Function Numpad
|
||||
|
||||
def __init__(self, parent, tablet_mode=False):
|
||||
super(ButtonsFunction, self).__init__()
|
||||
self.setHorizontalSpacing(1)
|
||||
self.setVerticalSpacing(1)
|
||||
|
||||
rows = 4
|
||||
columns = 3
|
||||
|
||||
self.values = [
|
||||
['button_search_product', self.tr('SEARCH'), 'action_search_product'],
|
||||
]
|
||||
|
||||
salesman_desc = self.tr('SALESMAN')
|
||||
salesman_button = 'button_salesman'
|
||||
if parent.enviroment == 'restaurant':
|
||||
salesman_desc = self.tr('WAITER')
|
||||
salesman_button = 'button_waiter'
|
||||
|
||||
self.values.extend([
|
||||
['button_party', self.tr('CUSTOMER'), 'action_party'],
|
||||
['button_cancel', self.tr('CANCEL'), 'action_cancel'],
|
||||
['button_search_sale', self.tr('S. SALE'), 'action_search_sale'],
|
||||
['button_print_sale', self.tr('PRINT'), 'action_print_sale'],
|
||||
[salesman_button, salesman_desc, 'action_salesman'],
|
||||
['button_global_discount', self.tr('GLOBAL DISCOUNT'), 'action_global_discount'],
|
||||
['button_print_order', self.tr('ORDER'), 'action_print_order']
|
||||
])
|
||||
|
||||
if parent.type_pos_user != 'cashier':
|
||||
self.values.append(
|
||||
['button_new_sale', self.tr('NEW SALE'), 'action_new_sale'])
|
||||
|
||||
if parent.type_pos_user != 'order':
|
||||
self.values.append(['button_payment', self.tr('PAY MODE'), 'action_payment'])
|
||||
if parent.enviroment == 'retail':
|
||||
self.values.append([
|
||||
'button_payment_term', self.tr('PAY TERM'), 'action_payment_term']
|
||||
)
|
||||
|
||||
if parent.enviroment == 'restaurant':
|
||||
rows = 3
|
||||
columns = 5
|
||||
self.values.extend([
|
||||
['button_position', self.tr('POSITION'), 'action_position'],
|
||||
# ['button_delete_line', self.tr('DELETE'), 'action_delete_line'],
|
||||
['button_comment', self.tr('NOTE'), 'action_comment'],
|
||||
])
|
||||
|
||||
if parent.enviroment == 'restaurant':
|
||||
self.values.extend([
|
||||
['button_tip', self.tr('TIP'), 'action_tip'],
|
||||
['button_tables', self.tr('TABLES'), 'action_tables'],
|
||||
['button_reservations', self.tr('RESERVATIONS'), 'action_reservations'],
|
||||
])
|
||||
|
||||
positions = [(i, j) for i in range(rows) for j in range(columns)]
|
||||
for position, value in zip(positions, self.values):
|
||||
name_icon = value[0][7:]
|
||||
button = CustomButton(
|
||||
parent,
|
||||
id=value[0],
|
||||
icon=get_icon(name_icon),
|
||||
desc=value[1],
|
||||
method=value[2],
|
||||
name_style='toolbar_button'
|
||||
)
|
||||
self.addWidget(button, *position)
|
||||
|
||||
|
||||
class ButtonsStacked(QHBoxLayout):
|
||||
|
||||
def __init__(self, parent):
|
||||
super(ButtonsStacked, self).__init__()
|
||||
self.stacked = QStackedWidget()
|
||||
|
||||
self.button_accept = CustomButton(
|
||||
id='button_accept',
|
||||
parent=parent,
|
||||
icon=get_icon('accept'),
|
||||
name_style='toolbar',
|
||||
method='button_accept_pressed'
|
||||
)
|
||||
self.button_cash = CustomButton(
|
||||
id='button_cash',
|
||||
parent=parent,
|
||||
icon=get_icon('cash'),
|
||||
name_style='toolbar',
|
||||
method='button_cash_pressed'
|
||||
)
|
||||
|
||||
if parent.type_pos_user != 'order' and not parent.tablet_mode:
|
||||
self.stacked.addWidget(self.button_accept)
|
||||
self.stacked.addWidget(self.button_cash)
|
||||
self.addWidget(self.stacked, 0)
|
||||
|
||||
if parent.type_pos_user == 'cashier':
|
||||
self.button_to_draft = CustomButton(
|
||||
id='button_to_draft',
|
||||
parent=parent,
|
||||
icon=get_icon('draft'),
|
||||
name_style='toolbar',
|
||||
method='button_to_draft_pressed'
|
||||
)
|
||||
self.addWidget(self.button_to_draft, 0)
|
||||
else:
|
||||
self.button_plus = CustomButton(
|
||||
id='button_plus',
|
||||
parent=parent,
|
||||
icon=get_icon('plus'),
|
||||
method='button_plus_pressed',
|
||||
name_style='toolbar',
|
||||
)
|
||||
#self.addWidget(self.button_plus, 0)
|
||||
|
||||
if parent.type_pos_user == 'order' or parent.type_pos_user == 'salesman':
|
||||
self.button_send_order = CustomButton(
|
||||
id='button_send_to_pay',
|
||||
icon=get_icon('draft'),
|
||||
parent=parent,
|
||||
method='button_send_to_pay_pressed',
|
||||
name_style='toolbar'
|
||||
)
|
||||
self.addWidget(self.button_send_order, 0)
|
||||
|
||||
|
||||
class ButtonsNumber(QGridLayout):
|
||||
|
||||
def __init__(self, parent):
|
||||
# Numpad for Numbers
|
||||
super(ButtonsNumber, self).__init__()
|
||||
self.setHorizontalSpacing(1)
|
||||
self.setVerticalSpacing(1)
|
||||
|
||||
|
||||
class Buttonpad(QWidget):
|
||||
|
||||
def __init__(self, parent):
|
||||
super(Buttonpad, self).__init__()
|
||||
self._text = ''
|
||||
self._keyStates = {}
|
||||
self.functions = ButtonsFunction(parent)
|
||||
if parent.tablet_mode:
|
||||
self.numbers = ButtonsNumber(parent)
|
||||
|
||||
self.stacked = ButtonsStacked(parent)
|
||||
self.set_keys()
|
||||
|
||||
def set_keys(self):
|
||||
q = Qt
|
||||
self.keys_numbers = list(range(q.Key_0, q.Key_9 + 1))
|
||||
self.keys_alpha = list(range(q.Key_A, q.Key_Z + 1))
|
||||
self.keys_special = [
|
||||
q.Key_Asterisk, q.Key_Comma, q.Key_Period,
|
||||
q.Key_Minus, q.Key_Slash]
|
||||
self.show_keys = self.keys_numbers + self.keys_alpha + self.keys_special
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
import os
|
||||
from PyQt5.QtGui import QIcon
|
||||
|
||||
current_dir = os.path.dirname(__file__)
|
||||
|
||||
|
||||
def get_icon(name):
|
||||
file_icon = name if name else 'fork'
|
||||
path_icon = os.path.join(current_dir, 'share', file_icon + '.svg')
|
||||
_icon = QIcon(path_icon)
|
||||
return _icon
|
||||
|
||||
|
||||
def to_numeric(number):
|
||||
return str(round(number, 2))
|
||||
|
||||
|
||||
def to_float(number, digits):
|
||||
return str(round(number, 4))
|
|
@ -0,0 +1,52 @@
|
|||
import os
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtWidgets import QHeaderView
|
||||
|
||||
PATH_PRINTERS = '/dev/usb'
|
||||
|
||||
UTC_OFFSET_TIMEDELTA = datetime.now() - datetime.utcnow()
|
||||
DELTA_LOCALE = round(UTC_OFFSET_TIMEDELTA.total_seconds() / 60 / 60)
|
||||
RATE_CREDIT_LIMIT = 0.8
|
||||
|
||||
STRETCH = QHeaderView.Stretch
|
||||
alignRight = Qt.AlignRight
|
||||
alignLeft = Qt.AlignLeft
|
||||
alignCenter = Qt.AlignCenter
|
||||
alignVCenter = Qt.AlignVCenter
|
||||
alignHCenter = Qt.AlignHCenter
|
||||
|
||||
DIALOG_REPLY_NO = 0
|
||||
DIALOG_REPLY_YES = 1
|
||||
ZERO = Decimal('0')
|
||||
|
||||
FRACTIONS = [
|
||||
('', ''),
|
||||
('1', '1'),
|
||||
('0.5', '1/2'),
|
||||
('0.25', '1/4'),
|
||||
('0.125', '1/8'),
|
||||
('0.0625', '1/16'),
|
||||
('0.0313', '1/32')
|
||||
]
|
||||
|
||||
current_dir = os.path.dirname(__file__)
|
||||
|
||||
SCREENS = {
|
||||
'large': os.path.join(current_dir, 'large_screen.css'),
|
||||
'medium': os.path.join(current_dir, 'medium_screen.css'),
|
||||
'small': os.path.join(current_dir, 'small_screen.css')
|
||||
}
|
||||
|
||||
CONVERSION_DIGITS = {
|
||||
'gal': '4',
|
||||
'u': '0',
|
||||
'g': '4',
|
||||
'm': '2',
|
||||
'km': '2',
|
||||
'kg': '2',
|
||||
}
|
||||
|
||||
FILE_BANNER = os.path.join(current_dir, 'share', 'pos_banner.png')
|
|
@ -0,0 +1,81 @@
|
|||
|
||||
'''
|
||||
Electronic Scale measure methods
|
||||
'''
|
||||
import time
|
||||
try:
|
||||
import serial
|
||||
except:
|
||||
print('Warning: missing pyserial module!')
|
||||
|
||||
from decimal import Decimal
|
||||
from PyQt5.QtCore import QThread, pyqtSignal
|
||||
|
||||
ZERO_VALUES = [b'00.000\n', b'\r00.000\n']
|
||||
FAKE_WEIGHT = b'01.500\n'
|
||||
MAX_RANGE_ATTEMPT = 30
|
||||
|
||||
|
||||
class ScaleReader(QThread):
|
||||
"""
|
||||
Electronic Scale Reader Class
|
||||
"""
|
||||
sigSetDevice = pyqtSignal()
|
||||
sigSetWeight = pyqtSignal()
|
||||
sigCancelAction = pyqtSignal()
|
||||
|
||||
def __init__(self, device_path='/dev/ttyUSB0', fake=False):
|
||||
QThread.__init__(self)
|
||||
self.fake = fake
|
||||
self.device = device_path
|
||||
try:
|
||||
self.scale = serial.Serial(self.device)
|
||||
except:
|
||||
print('Error: serial device not found!')
|
||||
|
||||
def run(self):
|
||||
values = []
|
||||
counter = 0
|
||||
self.best_weight = Decimal(0)
|
||||
if self.fake:
|
||||
self._run_fake()
|
||||
return
|
||||
try:
|
||||
self.scale = serial.Serial(self.device)
|
||||
except:
|
||||
print('Error: serial device not found!')
|
||||
return
|
||||
|
||||
while counter <= MAX_RANGE_ATTEMPT:
|
||||
read_value = self.scale.readline()
|
||||
if read_value in ZERO_VALUES:
|
||||
continue
|
||||
|
||||
counter += 1
|
||||
weight = read_value.decode("utf-8")
|
||||
weight = weight.replace('\n\r', '')
|
||||
weight = weight.encode("ascii").decode()
|
||||
try:
|
||||
weight = Decimal(weight)
|
||||
except:
|
||||
continue
|
||||
values.append(weight)
|
||||
|
||||
self.scale.close()
|
||||
if values:
|
||||
self.best_weight = str(max(values))
|
||||
self.sigSetWeight.emit()
|
||||
|
||||
def _run_fake(self):
|
||||
self.scale = 'Fake Electronic Scale'
|
||||
self.sigSetDevice.emit()
|
||||
time.sleep(3)
|
||||
self.best_weight = FAKE_WEIGHT
|
||||
self.sigGetWeight.emit()
|
||||
|
||||
def reset_zero(self):
|
||||
self.best_weight = None
|
||||
|
||||
def onClose(self):
|
||||
if hasattr(self, 'scale'):
|
||||
self.scale.close()
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
from neox.commons.dialogs import HelpDialog
|
||||
|
||||
|
||||
class Help(HelpDialog):
|
||||
|
||||
def __init__(self, parent):
|
||||
super(Help, self).__init__(parent)
|
||||
shortcuts = [
|
||||
(self.tr('HELP'), 'F1'),
|
||||
(self.tr('SEARCH'), 'F2'),
|
||||
(self.tr('PAYMENT MODE'), 'F3'),
|
||||
(self.tr('SEARCH CUSTOMER'), 'F4'),
|
||||
(self.tr('ADD TAXES'), 'F5'),
|
||||
(self.tr('PRINT ORDER'), 'F6'),
|
||||
(self.tr('PRINT INVOICE'), 'F7'),
|
||||
(self.tr('PAYMENT TERM'), 'F8'),
|
||||
(self.tr('SEARCH SALES'), 'F9'),
|
||||
(self.tr('ACTIVATE TABLE'), 'F10'),
|
||||
(self.tr('NEW SALE'), 'F11'),
|
||||
(self.tr('CANCEL SALE'), 'F12'),
|
||||
(self.tr('SALESMAN'), 'Home'),
|
||||
(self.tr('POSITION'), 'Insert'),
|
||||
(self.tr('CASH'), 'End'),
|
||||
(self.tr('COMMENT'), 'Page Down'),
|
||||
]
|
||||
|
||||
self.set_shortcuts(shortcuts)
|
|
@ -0,0 +1,137 @@
|
|||
|
||||
QAbstractButton {
|
||||
font-family: "DejaVu Sans";
|
||||
border-style: groove;
|
||||
font: 22pt;
|
||||
color: rgb(102, 102, 102);
|
||||
background-color: rgb(242, 242, 242);
|
||||
min-height: 45px;
|
||||
min-width : 100px;
|
||||
border-color: rgb(208, 208, 208);
|
||||
border-width: 0.5px;
|
||||
}
|
||||
|
||||
#label_input,
|
||||
#field_default,
|
||||
#field_large_gray,
|
||||
#field_large_blue,
|
||||
#field_large_orange {
|
||||
background-color : white;
|
||||
border-style : groove;
|
||||
border-width : 0.5px;
|
||||
border-color : rgb(208, 208, 208);
|
||||
}
|
||||
|
||||
#field_default {
|
||||
font : 26px;
|
||||
}
|
||||
|
||||
#field_large_gray, #label_large_gray {
|
||||
font : 26px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_large_blue, #label_large_blue {
|
||||
font : 26px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_large_orange, #label_large_orange {
|
||||
font : 26px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
#label_qty, #spin_box_qty, #row_field_price,
|
||||
#label_price, #row_field_note, #label_fraction, #row_field_qty,
|
||||
#field_fraction {
|
||||
font : 26px;
|
||||
alignment : center;
|
||||
}
|
||||
|
||||
#row_field_description {
|
||||
font : 26px;
|
||||
color : #242424;
|
||||
}
|
||||
|
||||
#label_product {
|
||||
font : bold 24px;
|
||||
alignment : center;
|
||||
color : #242424;
|
||||
}
|
||||
|
||||
QSpinBox {
|
||||
padding-right: 15px;
|
||||
border-width: 3;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
QSpinBox::up-button {
|
||||
subcontrol-position: right;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
QSpinBox::down-button {
|
||||
subcontrol-position: left;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
#field_invoice {
|
||||
min-width : 140px;
|
||||
max-width : 190px;
|
||||
}
|
||||
|
||||
#label_position, #label_salesman, #label_payment_term,
|
||||
#label_party, #label_global_discount, #field_invoice, #label_invoice,
|
||||
#label_agent, #label_date, #label_order_number, #label_default {
|
||||
font : 26px;
|
||||
color : rgb(150, 150, 150);
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#field_amount, #field_sign {
|
||||
font : bold 48px;
|
||||
color : rgb(43, 60, 77);
|
||||
min-height : 40px;
|
||||
max-height : 100px;
|
||||
}
|
||||
|
||||
#field_amount {
|
||||
max-width : 260px;
|
||||
min-width : 180px;
|
||||
}
|
||||
|
||||
#field_total_amount, #field_change, #label_total_amount, #label_change {
|
||||
color : rgb(50, 65, 75);
|
||||
min-width : 200px;
|
||||
}
|
||||
|
||||
#field_paid, #label_paid {
|
||||
color : rgb(80, 190, 220);
|
||||
}
|
||||
|
||||
#table_payment {
|
||||
color : rgb(70, 70, 70);
|
||||
font : 14pt;
|
||||
max-height : 80px;
|
||||
}
|
||||
|
||||
#table_sale_lines {
|
||||
color : rgb(70, 70, 70);
|
||||
font : 14pt;
|
||||
}
|
||||
|
||||
#label_paid, #label_change, #label_discount, #label_total_amount,
|
||||
#label_discount, #label_change, #label_paid, #label_amount, #label_untaxed_amount, #label_taxes_amount,
|
||||
#field_total_amount, #field_change, #field_discount, #field_paid,
|
||||
#field_untaxed_amount, #field_taxes_amount {
|
||||
min-height : 10px;
|
||||
font: bold 20pt;
|
||||
}
|
||||
|
||||
#img_pixmap_pos {
|
||||
min-width: 200pt;
|
||||
min-height: 100pt;
|
||||
}
|
|
@ -0,0 +1,143 @@
|
|||
|
||||
import os
|
||||
import sqlite3
|
||||
|
||||
file_db = 'app.db'
|
||||
|
||||
if os.name == 'posix':
|
||||
home = 'HOME'
|
||||
directory = '.tryton'
|
||||
elif os.name == 'nt':
|
||||
home = 'USERPROFILE'
|
||||
directory = 'AppData/Local/tryton'
|
||||
|
||||
_directory = os.path.join(os.getenv(home), directory)
|
||||
localfile = os.path.join(_directory, file_db)
|
||||
|
||||
|
||||
class LocalStore(object):
|
||||
def __init__(self, params=None):
|
||||
self.conn = sqlite3.connect(localfile)
|
||||
|
||||
def create_table_config(self):
|
||||
cursorObj = self.conn.cursor()
|
||||
cursorObj.execute("CREATE TABLE IF NOT EXISTS configuration( \
|
||||
'id' INTEGER PRIMARY KEY, \
|
||||
'synchronized_date' DATETIME, \
|
||||
'company_id' INTEGER, \
|
||||
'company_name' TEXT, \
|
||||
'defualt_party_id' INTEGER, \
|
||||
'defualt_party_name' TEXT \
|
||||
)")
|
||||
self.conn.commit()
|
||||
|
||||
def create_table_product(self):
|
||||
cur = self.conn.cursor()
|
||||
cur.execute("CREATE TABLE IF NOT EXISTS product( \
|
||||
'id' INTEGER PRIMARY KEY, \
|
||||
'code' TEXT, \
|
||||
'write_date' DATE, \
|
||||
'barcode' TEXT, \
|
||||
'template.name' TEXT, \
|
||||
'description' TEXT, \
|
||||
'template.account_category' INTEGER, \
|
||||
'template.sale_price_w_tax' REAL \
|
||||
)")
|
||||
self.conn.commit()
|
||||
|
||||
def get_config(self):
|
||||
cur = self.conn.cursor()
|
||||
cur.execute("SELECT id, synchronized_date FROM configuration")
|
||||
config_ = cur.fetchall()
|
||||
if config_:
|
||||
return config_[0]
|
||||
|
||||
def set_config(self, config):
|
||||
cur = self.conn.cursor()
|
||||
cur.execute("INSERT INTO configuration(id, synchronized_date, company_id) \
|
||||
VALUES(1, '2010-01-01 00:00:00', ?)", config)
|
||||
self.conn.commit()
|
||||
|
||||
def set_config_sync(self, config_dt):
|
||||
cur = self.conn.cursor()
|
||||
cur.execute("UPDATE configuration SET synchronized_date=?", [config_dt])
|
||||
self.conn.commit()
|
||||
|
||||
def get_local_products(self):
|
||||
cur = self.conn.cursor()
|
||||
cur.execute("SELECT id FROM product")
|
||||
rows = cur.fetchall()
|
||||
rows_ = [r[0] for r in rows]
|
||||
return rows_
|
||||
|
||||
def update_products(self, products, local_products):
|
||||
len_products = len(products)
|
||||
print('------- Creating %d products -------' % len_products)
|
||||
to_create = []
|
||||
to_update = []
|
||||
for p in products:
|
||||
if p[0] not in local_products:
|
||||
to_create.append(p)
|
||||
else:
|
||||
to_update.append([p[1], p[4], float(p[7]), p[6], p[0]])
|
||||
|
||||
if to_create:
|
||||
cur = self.conn.cursor()
|
||||
cur.executemany("INSERT INTO product(id, write_date, code, \
|
||||
barcode, 'template.name', description, \
|
||||
'template.account_category', 'template.sale_price_w_tax') \
|
||||
VALUES(?, ?, ?, ?, ?, ?, ?, ?)", to_create)
|
||||
self.conn.commit()
|
||||
|
||||
if to_update:
|
||||
cur = self.conn.cursor()
|
||||
for rec in to_update:
|
||||
cur.execute('UPDATE product SET write_date=?, "template.name"=?,\
|
||||
"template.sale_price_w_tax"=?, "template.account_category"=? \
|
||||
WHERE id=?', rec)
|
||||
self.conn.commit()
|
||||
|
||||
def find_product_by_id(self, product_id):
|
||||
cur = self.conn.cursor()
|
||||
query = "SELECT * FROM product WHERE id=?"
|
||||
cur.execute(query, (product_id,))
|
||||
res = cur.fetchall()
|
||||
return res[0]
|
||||
|
||||
def find_product_elastic(self, domain, limit):
|
||||
self.conn.row_factory = lambda c, r: dict(
|
||||
zip([col[0] for col in c.description], r)
|
||||
)
|
||||
cur = self.conn.cursor()
|
||||
clauses = []
|
||||
|
||||
for d in domain:
|
||||
clause1 = '"{}" LIKE "{}"'.format(d[1][0], d[1][2])
|
||||
clause2 = '"{}" LIKE "{}"'.format(d[2][0], d[2][2])
|
||||
clause3 = '(' + clause1 + ' OR ' + clause2 + ')'
|
||||
clauses.append(clause3.upper())
|
||||
|
||||
if len(clauses) > 1:
|
||||
_clause = ' AND '.join(clauses)
|
||||
else:
|
||||
_clause = clauses[0]
|
||||
query = "SELECT * FROM product WHERE {}".format(_clause)
|
||||
|
||||
cur.execute(query)
|
||||
rows = cur.fetchall()
|
||||
return rows
|
||||
|
||||
# def do_query(self):
|
||||
# c = self.conn.cursor()
|
||||
# c.execute(query)
|
||||
# rows = c.fetchall()
|
||||
# self.conn.commit()
|
||||
# self.conn.close()
|
||||
# for row in rows:
|
||||
# print(row)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
store = LocalStore()
|
||||
store.create_table()
|
||||
store.get_local_products()
|
|
@ -0,0 +1,64 @@
|
|||
import os
|
||||
|
||||
from PyQt5.QtWidgets import QGridLayout, QPushButton
|
||||
|
||||
DIR_SHARE = os.path.abspath(
|
||||
os.path.normpath(os.path.join(__file__, '..', '..', 'share')))
|
||||
|
||||
__all__ = ['ManageTables']
|
||||
|
||||
STATES = {
|
||||
'available': 'rgb(180, 180, 180)',
|
||||
'occupied': 'rgb(255, 210, 30)',
|
||||
'reserved': 'rgb(150, 30, 0)'
|
||||
}
|
||||
|
||||
|
||||
class CallButton(QPushButton):
|
||||
|
||||
def __init__(self, value, method):
|
||||
super(CallButton, self).__init__(value['name'])
|
||||
self.setAutoFillBackground(True)
|
||||
self.name = value['name']
|
||||
self.id = value['id']
|
||||
self.state = value['state']
|
||||
self.method = method
|
||||
self.set_state(value['state'])
|
||||
self.clicked.connect(self.handle_click)
|
||||
|
||||
def handle_click(self):
|
||||
if self.state == 'available':
|
||||
state = 'occupied'
|
||||
else:
|
||||
state = 'available'
|
||||
|
||||
res = self.method(self.id, self.name, self.state, state)
|
||||
if not res:
|
||||
return
|
||||
|
||||
self.set_state(state)
|
||||
|
||||
def set_state(self, state):
|
||||
self.state = state
|
||||
color = STATES[self.state]
|
||||
self.setStyleSheet('background-color: {}; border:none;'.format(color))
|
||||
|
||||
|
||||
class ManageTables(QGridLayout):
|
||||
|
||||
def __init__(self, parent, tables, method):
|
||||
super(ManageTables, self).__init__()
|
||||
self.setHorizontalSpacing(1)
|
||||
self.setVerticalSpacing(1)
|
||||
columns = 6
|
||||
rows = int(len(tables) / columns) + 1
|
||||
self.buttons = {}
|
||||
positions = [(i, j) for i in range(rows) for j in range(columns)]
|
||||
for position, value in zip(positions, tables):
|
||||
button = CallButton(value, method)
|
||||
self.buttons[button.id] = button
|
||||
self.addWidget(button, *position)
|
||||
|
||||
def update_table(self, button_id, state):
|
||||
button = self.buttons[button_id]
|
||||
button.set_state(state)
|
|
@ -0,0 +1,137 @@
|
|||
|
||||
QAbstractButton {
|
||||
font-family: "DejaVu Sans";
|
||||
border-style: groove;
|
||||
font: 20pt;
|
||||
color: rgb(102, 102, 102);
|
||||
background-color: rgb(242, 242, 242);
|
||||
min-height: 45px;
|
||||
min-width : 100px;
|
||||
border-color: rgb(208, 208, 208);
|
||||
border-width: 0.5px;
|
||||
}
|
||||
|
||||
#label_input,
|
||||
#field_default,
|
||||
#field_medium_gray,
|
||||
#field_medium_blue,
|
||||
#field_medium_orange {
|
||||
background-color : white;
|
||||
border-style : groove;
|
||||
border-width : 0.5px;
|
||||
border-color : rgb(208, 208, 208);
|
||||
}
|
||||
|
||||
#field_default {
|
||||
font : 22px;
|
||||
}
|
||||
|
||||
#field_medium_gray, #label_medium_gray {
|
||||
font : 22px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_medium_blue, #label_medium_blue {
|
||||
font : 22px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_medium_orange, #label_medium_orange {
|
||||
font : 22px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
#label_qty, #spin_box_qty, #row_field_price,
|
||||
#label_price, #row_field_note, #label_fraction, #row_field_qty,
|
||||
#field_fraction {
|
||||
font : 22px;
|
||||
alignment : center;
|
||||
}
|
||||
|
||||
#row_field_description {
|
||||
font : 22px;
|
||||
color : #242424;
|
||||
}
|
||||
|
||||
#label_product {
|
||||
font : bold 24px;
|
||||
alignment : center;
|
||||
color : #242424;
|
||||
}
|
||||
|
||||
QSpinBox {
|
||||
padding-right: 15px;
|
||||
border-width: 3;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
QSpinBox::up-button {
|
||||
subcontrol-position: right;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
QSpinBox::down-button {
|
||||
subcontrol-position: left;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
#field_invoice {
|
||||
min-width : 120px;
|
||||
max-width : 140px;
|
||||
}
|
||||
|
||||
#label_position, #label_salesman, #label_payment_term,
|
||||
#label_party, #label_global_discount, #field_invoice, #label_invoice,
|
||||
#label_agent, #label_date, #label_order_number, #label_default {
|
||||
font : 20px;
|
||||
color : rgb(150, 150, 150);
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#field_amount, #field_sign {
|
||||
font : bold 42px;
|
||||
color : rgb(43, 60, 77);
|
||||
min-height : 40px;
|
||||
max-height : 100px;
|
||||
}
|
||||
|
||||
#field_amount {
|
||||
max-width : 260px;
|
||||
min-width : 180px;
|
||||
}
|
||||
|
||||
#field_total_amount, #field_change, #label_total_amount, #label_change {
|
||||
color : rgb(50, 65, 75);
|
||||
min-width : 200px;
|
||||
}
|
||||
|
||||
#field_paid, #label_paid {
|
||||
color : rgb(80, 190, 220);
|
||||
}
|
||||
|
||||
#table_payment {
|
||||
color : rgb(70, 70, 70);
|
||||
font : 14pt;
|
||||
max-height : 80px;
|
||||
}
|
||||
|
||||
#table_sale_lines {
|
||||
color : rgb(70, 70, 70);
|
||||
font : 14pt;
|
||||
}
|
||||
|
||||
#label_paid, #label_change, #label_discount, #label_total_amount,
|
||||
#label_discount, #label_change, #label_paid, #label_amount, #label_untaxed_amount, #label_taxes_amount,
|
||||
#field_total_amount, #field_change, #field_discount, #field_paid,
|
||||
#field_untaxed_amount, #field_taxes_amount {
|
||||
min-height : 10px;
|
||||
font: bold 20pt;
|
||||
}
|
||||
|
||||
#img_pixmap_pos {
|
||||
min-width: 200pt;
|
||||
min-height: 100pt;
|
||||
}
|
|
@ -0,0 +1,103 @@
|
|||
|
||||
import requests
|
||||
from datetime import date
|
||||
import simplejson as json
|
||||
|
||||
|
||||
def encoder(obj):
|
||||
# FIXME: add datetime, buffer, bytes
|
||||
if isinstance(obj, date):
|
||||
return {
|
||||
'__class__': 'date',
|
||||
'year': obj.year,
|
||||
'month': obj.month,
|
||||
'day': obj.day,
|
||||
}
|
||||
raise TypeError(repr(obj) + " is not JSON serializable")
|
||||
|
||||
|
||||
class FastModel(object):
|
||||
|
||||
def __init__(self, model, ctx):
|
||||
# params = parent.params
|
||||
# self.model = model['name']
|
||||
self.model = model
|
||||
# self.fields = model['fields']
|
||||
self.ctx = ctx
|
||||
self.api = '/'.join(
|
||||
['http:/', ctx['params']['api_url'], ctx['params']['database']]
|
||||
)
|
||||
|
||||
def __getattr__(self, name, *args):
|
||||
'Return attribute value'
|
||||
self.method = name
|
||||
return self
|
||||
|
||||
def find(self, domain, order=None, limit=100, ctx=None):
|
||||
if ctx:
|
||||
self.ctx.update(ctx)
|
||||
route = self.get_route('search')
|
||||
args_ = {
|
||||
'model': self.model,
|
||||
'domain': domain,
|
||||
'order': order,
|
||||
'limit': limit,
|
||||
'context': self.ctx,
|
||||
}
|
||||
data = json.dumps(args_, default=encoder)
|
||||
res = requests.get(route, data=data)
|
||||
print('res ', res)
|
||||
return res.json()
|
||||
|
||||
def write(self, ids, values):
|
||||
route = self.get_route('save')
|
||||
args_ = {
|
||||
'model': self.model,
|
||||
'id': ids[0],
|
||||
'record_data': values,
|
||||
'context': self.ctx,
|
||||
}
|
||||
data = json.dumps(args_, default=encoder)
|
||||
res = requests.put(route, data=data)
|
||||
return res.json()
|
||||
|
||||
def delete(self, ids):
|
||||
route = self.get_route('delete')
|
||||
args_ = {
|
||||
'model': self.model,
|
||||
'ids': ids,
|
||||
'context': self.ctx,
|
||||
}
|
||||
data = json.dumps(args_, default=encoder)
|
||||
res = requests.delete(route, data=data)
|
||||
return res.json()
|
||||
|
||||
def get_route(self, target):
|
||||
route = self.api + '/' + target
|
||||
return route
|
||||
|
||||
def __call__(self, args=None):
|
||||
args_ = {
|
||||
'model': self.model,
|
||||
'method': self.method,
|
||||
'args': args,
|
||||
'context': self.ctx,
|
||||
}
|
||||
route = self.get_route('model_method')
|
||||
data = json.dumps(args_, default=encoder)
|
||||
res = requests.post(route, data=data)
|
||||
data = res.json()
|
||||
return data
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
params = {'api_url': 'localhost:5070', 'database': 'DEMORD'}
|
||||
model = {'model': 'sale.sale'}
|
||||
test_model = FastModel(params, model)
|
||||
id = 180
|
||||
data = {
|
||||
'reference': 'OC-02874'
|
||||
}
|
||||
# res = test_model.find(dom)
|
||||
res = test_model.write([id], data)
|
||||
print(res)
|
|
@ -0,0 +1,648 @@
|
|||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
|
||||
import os
|
||||
from io import StringIO
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
|
||||
pyudev = None
|
||||
|
||||
try:
|
||||
import pyudev
|
||||
except:
|
||||
logging.warning("Pyudev module not found!")
|
||||
|
||||
try:
|
||||
from escpos import printer
|
||||
except:
|
||||
logging.warning("Escpos module not found!")
|
||||
|
||||
try:
|
||||
import cups
|
||||
except:
|
||||
logging.warning("Cups module not found!")
|
||||
|
||||
__all__ = ['Receipt']
|
||||
|
||||
_ROW_CHARACTERS = 48
|
||||
|
||||
_DIGITS = 9
|
||||
_PRINT_TAX_ID = False
|
||||
_DIGITS_CODE_RECEIPT = 4
|
||||
|
||||
# ------------------- Type Font Escpos -----------------
|
||||
_FONT_A = 'a' # Normal Font
|
||||
_FONT_B = 'b' # Condensed Font
|
||||
# ------------------------------------------------------
|
||||
|
||||
if os.name == 'posix':
|
||||
homex = 'HOME'
|
||||
dirconfig = '.tryton/temp'
|
||||
elif os.name == 'nt':
|
||||
homex = 'USERPROFILE'
|
||||
dirconfig = 'AppData/Local/tryton/temp'
|
||||
|
||||
HOME_DIR = os.getenv(homex)
|
||||
directory = os.path.join(HOME_DIR, dirconfig)
|
||||
|
||||
|
||||
if not os.path.exists(directory):
|
||||
os.makedirs(directory)
|
||||
|
||||
TEMP_INVOICE_FILE = os.path.join(directory, 'invoice.txt')
|
||||
SSH_PORT = 23
|
||||
|
||||
|
||||
def money(value):
|
||||
if type(value) != int:
|
||||
value = int(value)
|
||||
return '{:,}'.format(value)
|
||||
|
||||
|
||||
dev_printers = {}
|
||||
if pyudev:
|
||||
context = pyudev.Context()
|
||||
# for device in context.list_devices():
|
||||
# if device.subsystem == 'usbmisc':
|
||||
# print(device.subsystem, device.sys_path.split('2-1/')[1][0:5], device.device_node)
|
||||
# dev_printers[str(device.sys_path.split('2-1/')[1][0:5])] = device.device_node
|
||||
|
||||
|
||||
class Receipt(object):
|
||||
__name__ = 'frontend_pos.ticket'
|
||||
|
||||
def __init__(self, context, row_characters=None, logo=None, environment='retail'):
|
||||
self.logger = logging.getLogger('reporting')
|
||||
self._company = context.get('company')
|
||||
self._sale_device = context.get('sale_device')
|
||||
self._shop = context.get('shop')
|
||||
self._street = context.get('street')
|
||||
self._city = context.get('city')
|
||||
self._phone = context.get('phone')
|
||||
self._id_number = context.get('id_number')
|
||||
self._regime_tax = context.get('regime_tax')
|
||||
self._gta_info = context.get('gta_info')
|
||||
self._user = context.get('user')
|
||||
self._footer = context.get('footer')
|
||||
self._header = context.get('header')
|
||||
self._printing_taxes = context.get('printing_taxes')
|
||||
self._delta_locale = context.get('delta_locale')
|
||||
self._environment = environment
|
||||
|
||||
self._row_characters = _ROW_CHARACTERS
|
||||
if context.get('row_characters'):
|
||||
self._row_characters = int(context.get('row_characters'))
|
||||
|
||||
self.taxes_col_width = int(self._row_characters / 3)
|
||||
|
||||
order_col_width = int(self._row_characters / 3)
|
||||
self.order_col_1 = order_col_width - 6
|
||||
self.order_col_2 = order_col_width + 11
|
||||
self.order_col_3 = order_col_width - 5
|
||||
|
||||
self._show_position = context.get('show_position')
|
||||
self._show_discount = context.get('show_discount')
|
||||
self._img_logo = None
|
||||
|
||||
if logo:
|
||||
self._img_logo = StringIO(logo)
|
||||
|
||||
def printer_found(self):
|
||||
return self._printer
|
||||
|
||||
def printing(f):
|
||||
def p(self, *p, **kw):
|
||||
self._open_device()
|
||||
try:
|
||||
res = f(self, *p, **kw)
|
||||
finally:
|
||||
pass
|
||||
return res
|
||||
return p
|
||||
|
||||
def test_printer(self):
|
||||
if self._interface == 'usb':
|
||||
if os.name == 'posix':
|
||||
self._printer = printer.File(self._device)
|
||||
elif os.name == 'nt':
|
||||
self._printer = printer.UsbWin(self._device)
|
||||
self._printer.open()
|
||||
elif self._interface == 'network':
|
||||
self._printer = printer.Network(self._device)
|
||||
elif self._interface == 'ssh':
|
||||
self._printer = printer.FileSSH(*self._device.split('@'))
|
||||
self._printer.open()
|
||||
if not self._printer:
|
||||
return
|
||||
if self._img_logo:
|
||||
self.print_logo()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self.print_header()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.cut()
|
||||
self._printer.cashdraw(2)
|
||||
self._printer.close()
|
||||
|
||||
def set_printer(self, printer):
|
||||
if dev_printers.get(printer['device']):
|
||||
device = dev_printers[printer['device']]
|
||||
else:
|
||||
device = printer['device']
|
||||
|
||||
self._interface = printer['interface']
|
||||
self._device = device
|
||||
|
||||
def print_sale(self, sale):
|
||||
try:
|
||||
if self._interface == 'usb':
|
||||
if os.name == 'posix':
|
||||
self._printer = printer.File(self._device)
|
||||
elif os.name == 'nt':
|
||||
self._printer = printer.UsbWin(self._device)
|
||||
self._printer.open()
|
||||
elif self._interface == 'network':
|
||||
self._printer = printer.Network(self._device)
|
||||
elif self._interface == 'ssh':
|
||||
self._printer = printer.FileSSH(*self._device.split('@'))
|
||||
self._printer.open()
|
||||
elif self._interface == 'cups':
|
||||
self.conn = cups.Connection()
|
||||
self._file = open(TEMP_INVOICE_FILE, 'w')
|
||||
self._printer = CupsPrinter(self._file, self._row_characters)
|
||||
if not self._printer:
|
||||
self.logger.info("Warning: Can not found Printer!")
|
||||
return
|
||||
self.logger.info("Info: Printer is OK!")
|
||||
self._print_sale(sale)
|
||||
except:
|
||||
self.logger.info("Warning: Printer error or device not found!")
|
||||
|
||||
def _print_sale(self, sale):
|
||||
self.print_header()
|
||||
self.print_body(sale)
|
||||
self.print_footer()
|
||||
# self.print_extra_info(sale)
|
||||
if self._interface in ['usb', 'ssh', 'network']:
|
||||
self._printer.close()
|
||||
elif self._interface == 'cups':
|
||||
self._file.close()
|
||||
self.conn.printFile(self._printer_name, TEMP_INVOICE_FILE,
|
||||
'POS Invoice', {})
|
||||
|
||||
def print_logo(self):
|
||||
self._printer.set(align='center')
|
||||
self._printer.image(self._img_logo)
|
||||
self.print_enter()
|
||||
|
||||
def print_header(self):
|
||||
if self._img_logo:
|
||||
self.print_logo()
|
||||
self._printer.set(align='center')
|
||||
if self._header != '' and self._header is not None:
|
||||
self._printer.text(self._header)
|
||||
self.print_enter()
|
||||
self._printer.text(self._company)
|
||||
self.print_enter()
|
||||
self._printer.text(self._shop)
|
||||
self.print_enter()
|
||||
if self._id_number:
|
||||
self._printer.text('NIT:' + self._id_number)
|
||||
if self._regime_tax:
|
||||
self._printer.text(' ' + self._regime_tax)
|
||||
self.print_enter()
|
||||
if self._street:
|
||||
self._printer.text(self._street)
|
||||
self.print_enter()
|
||||
if self._city:
|
||||
self._printer.text(self._city)
|
||||
if self._phone:
|
||||
if self._city:
|
||||
self._printer.text(' ')
|
||||
self._printer.text('Telefono:' + self._phone)
|
||||
if self._city or self._phone:
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
|
||||
def print_horinzontal_line(self):
|
||||
self._printer.text('-' * self._row_characters)
|
||||
|
||||
def print_horinzontal_double_line(self):
|
||||
self._printer.text('=' * self._row_characters)
|
||||
|
||||
def print_enter(self):
|
||||
self._printer.text('\n')
|
||||
|
||||
def print_split(self, left, right):
|
||||
len_left = self._row_characters - len(right) - 1
|
||||
left = left[:len_left]
|
||||
if type(left) == bytes:
|
||||
left = left.decode("utf-8")
|
||||
if type(right) == bytes:
|
||||
right = right.decode("utf-8")
|
||||
left += (len_left - len(left) + 1) * ' '
|
||||
self._printer.text(left)
|
||||
self._printer.text(right + '\n')
|
||||
|
||||
def print_body(self, sale):
|
||||
self._cashdraw = True
|
||||
self._printer.set(font=_FONT_B)
|
||||
self._printer.set(align='left')
|
||||
if sale['number'] and sale['state'] in ['processing', 'done', 'cancel']:
|
||||
if sale['total_amount'] >= 0:
|
||||
self._printer.text('FACTURA DE VENTA No. ' + sale['number'])
|
||||
else:
|
||||
self._printer.text('NOTA CREDITO No. ' + sale['number'])
|
||||
else:
|
||||
self._cashdraw = False
|
||||
self._printer.text('Pedido: ' + sale['order'])
|
||||
self.print_enter()
|
||||
#mod_hours = sale["create_date"] + timedelta(hours=self._delta_locale)
|
||||
#time_ = mod_hours.strftime('%I:%M %p')
|
||||
self._printer.text('Fecha:%s' % sale['date'])
|
||||
if sale.get('turn') and sale['turn'] != 0:
|
||||
self._printer.text('Turno: %s - ' % str(sale['turn']))
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
party_name = 'Cliente: %s ' % sale['party']
|
||||
party_id_number = 'Id: %s' % sale.get('party_id_number', '')
|
||||
if len(party_name + party_id_number) > self._row_characters:
|
||||
self._printer.text(party_name)
|
||||
self.print_enter()
|
||||
self._printer.text(party_id_number)
|
||||
else:
|
||||
self._printer.text(party_name + party_id_number)
|
||||
if sale.get('party_address'):
|
||||
self.print_enter()
|
||||
self._printer.text('Direccion: %s' % sale['party_address'])
|
||||
if sale.get('party_phone'):
|
||||
self.print_enter()
|
||||
self._printer.text('Telefono: %s' % sale['party_phone'])
|
||||
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
self.print_split(' Articulo ', 'Subtotal ')
|
||||
self.print_horinzontal_line()
|
||||
|
||||
len_row = self._row_characters - (_DIGITS_CODE_RECEIPT + 1) - (_DIGITS + 1)
|
||||
for line in sale['lines']:
|
||||
if line['taxes'] and _PRINT_TAX_ID:
|
||||
tax_id = ' ' + str(line['taxes'][0].id)
|
||||
else:
|
||||
tax_id = ''
|
||||
line_total = money(line['amount_w_tax']) + tax_id
|
||||
|
||||
if line['quantity'] != 1:
|
||||
length_name = self._row_characters - 11
|
||||
first_line = line['code'] + ' ' + line['name'][:length_name]
|
||||
|
||||
if type(first_line) == bytes:
|
||||
first_line = first_line.decode('utf-8')
|
||||
|
||||
self._printer.text(first_line + '\n')
|
||||
|
||||
unit_price_w_tax = str(round(line['unit_price_w_tax'], 2))
|
||||
|
||||
second_line = ' %s x %s' % (line['quantity'], unit_price_w_tax)
|
||||
second_line = second_line.encode('utf-8')
|
||||
self.print_split(second_line, line_total)
|
||||
else:
|
||||
if self._environment == 'retail':
|
||||
line_pt = line['code'] + ' ' + line['name'][:len_row]
|
||||
else:
|
||||
line_pt = line['name'][:len_row]
|
||||
|
||||
self.print_split(line_pt, line_total)
|
||||
|
||||
untaxed_amount = sale['untaxed_amount']
|
||||
total_amount = sale['total_amount']
|
||||
total_string = 'Total:'
|
||||
|
||||
tip = None
|
||||
if sale.get('tip') and sale['tip'] > 0:
|
||||
untaxed_amount = untaxed_amount - sale['tip']
|
||||
total_amount = untaxed_amount + sale['tax_amount']
|
||||
tip = sale['tip']
|
||||
total_string = 'Total Sin Propina:'
|
||||
|
||||
self.print_split('', '----------------')
|
||||
self.print_split('Subtotal Base:', money(untaxed_amount))
|
||||
self.print_split('Impuesto:', money(sale['tax_amount']))
|
||||
self.print_split('', '----------------')
|
||||
self.print_split(total_string, money(total_amount))
|
||||
self.print_enter()
|
||||
|
||||
if tip:
|
||||
self.print_split('Propina:', money(tip))
|
||||
self.print_split('Total con Propina:', money(sale['total_amount']))
|
||||
|
||||
if self._show_discount:
|
||||
self.print_split('Descuento:', money(sale['discount']))
|
||||
self.print_enter()
|
||||
if sale['cash_received']:
|
||||
self.print_split('Recibido:', money(sale['cash_received']))
|
||||
else:
|
||||
self.print_split('Recibido:', money(sale['paid_amount']))
|
||||
self.print_split('Saldo Pendiente:', money(sale['total_amount'] - sale['paid_amount']))
|
||||
self.print_split('Cambio:', money(sale['change']))
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
if self._printing_taxes:
|
||||
self.print_col('Tipo', self.taxes_col_width + 2)
|
||||
self.print_col('Base', self.taxes_col_width)
|
||||
self.print_col('Imp.', self.taxes_col_width)
|
||||
taxes = sale['taxes']
|
||||
for tax in taxes:
|
||||
self.print_col(str(taxes[tax]['name']) + ' ', self.taxes_col_width)
|
||||
self.print_col(str(int(taxes[tax]['base'])), self.taxes_col_width)
|
||||
self.print_col(str(int(taxes[tax]['tax'])), self.taxes_col_width)
|
||||
self.print_enter()
|
||||
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
no_products = 'No Items: %s' % str(sale['num_products'])
|
||||
self._printer.text(no_products)
|
||||
self.print_enter()
|
||||
|
||||
if self._gta_info and sale['state'] not in ['draft']:
|
||||
self._printer.text(self._gta_info)
|
||||
self.print_enter()
|
||||
if sale['state'] in ['processing', 'done']:
|
||||
self._printer.text('Pedido: ' + sale['order'])
|
||||
self.print_enter()
|
||||
|
||||
register = 'Caja No. %s' % self._sale_device
|
||||
self._printer.text(register)
|
||||
self.print_enter()
|
||||
|
||||
self._printer.text('Cajero: %s' % self._user)
|
||||
self.print_enter()
|
||||
if sale.get('salesman'):
|
||||
self._printer.text('Vendedor: %s' % sale['salesman'])
|
||||
self.print_enter()
|
||||
if sale.get('comment'):
|
||||
self._printer.text('Notas: %s' % sale['comment'])
|
||||
self.print_enter()
|
||||
|
||||
if self._show_position:
|
||||
self._printer.text('Posicion: %s' % str(sale['position']))
|
||||
self.print_enter()
|
||||
|
||||
self._printer.set(align='center')
|
||||
#self.print_split('Puntos Acumulados:', sale['points'])
|
||||
#self.print_enter()
|
||||
#printer.barcode(sale.receipt_code, 'CODE128B', 3, 50,'','')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
|
||||
def print_extra_info(self, sale):
|
||||
if sale.get('pos_notes'):
|
||||
self.print_enter()
|
||||
self.print_header()
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
party_name = 'Cliente: %s ' % sale['party']
|
||||
self._printer.text(party_name)
|
||||
self.print_enter()
|
||||
if self._show_position:
|
||||
self._printer.text('Posicion: %s' % str(sale['position']))
|
||||
self.print_enter()
|
||||
|
||||
if sale['state'] in ['draft']:
|
||||
self._printer.text('Cotizacion: ', sale['order'])
|
||||
else:
|
||||
self._printer.text('Factura No. ' + sale['number'])
|
||||
self.print_enter()
|
||||
self._printer.text(str(sale.get('pos_notes')))
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
self._printer.cut()
|
||||
|
||||
def print_col(self, x, l):
|
||||
self._printer.text(x[:l] + (l - len(x)) * ' ')
|
||||
|
||||
def print_footer(self, ):
|
||||
if self._footer:
|
||||
self._printer.text(self._footer)
|
||||
self.print_enter()
|
||||
self._printer.text('SOFTWARE POS TRYTON - www.presik.com')
|
||||
self.print_enter()
|
||||
self._printer.cut()
|
||||
if self._cashdraw:
|
||||
self._printer.cashdraw(2)
|
||||
self.print_enter()
|
||||
|
||||
def print_orders(self, orders, reversion=None, kind='command'):
|
||||
res = []
|
||||
self.order_kind = kind
|
||||
for order in orders.values():
|
||||
try:
|
||||
if dev_printers.get(order['host']):
|
||||
host = dev_printers[order['host']]
|
||||
else:
|
||||
host = order['host']
|
||||
if order['interface'] == 'usb':
|
||||
self._printer = printer.File(host)
|
||||
elif order['interface'] == 'network':
|
||||
self._printer = printer.Network(host)
|
||||
elif order['interface'] == 'ssh':
|
||||
self._printer = printer.FileSSH(*host.split('@'))
|
||||
if self._printer:
|
||||
self._printer.open()
|
||||
elif order['interface'] == 'cups':
|
||||
pass
|
||||
if not self._printer:
|
||||
self.logger.info("Warning: Interface not found for printer!")
|
||||
res.append(None)
|
||||
continue
|
||||
|
||||
self.logger.info("Info: Printer is OK!")
|
||||
res.append(self._print_order(order, reversion))
|
||||
except:
|
||||
self.logger.info("Warning: Can not found Printer!")
|
||||
res.append(None)
|
||||
return all(res)
|
||||
|
||||
def _print_order(self, order, reversion):
|
||||
self.print_body_order(order, reversion)
|
||||
self._printer.cut()
|
||||
self._row_characters = order['row_characters']
|
||||
if order['interface'] in ('network', 'usb', 'ssh'):
|
||||
self._printer.close()
|
||||
return True
|
||||
|
||||
def print_body_order(self, order, reversion):
|
||||
self._printer.set(font=_FONT_B)
|
||||
self._printer.set(align='center')
|
||||
self._printer.text('TURNO: %s' % str(order['turn']))
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
kind = 'COMANDA'
|
||||
if self.order_kind == 'delivery':
|
||||
kind = 'PEDIDO'
|
||||
title = '+ + + + + %s + + + + +' % kind
|
||||
self._printer.text(title)
|
||||
self.print_enter()
|
||||
self._printer.set(align='left')
|
||||
self.print_enter()
|
||||
date_ = datetime.now().strftime("%Y-%m-%d %H:%M %p")
|
||||
self._printer.text('FECHA: ' + date_)
|
||||
self.print_enter()
|
||||
|
||||
if self.order_kind == 'delivery':
|
||||
self._printer.text('FACTURA: ' + order['number'])
|
||||
self.print_enter()
|
||||
delivery_charge = 'Cliente'
|
||||
if order['delivery_charge'] == 'company':
|
||||
delivery_charge = 'Empresa'
|
||||
self._printer.text('CARGO DEL DOMICILIO: ' + delivery_charge)
|
||||
self.print_enter()
|
||||
if order.get('payment_term'):
|
||||
self._printer.text('FORMA DE PAGO: ' + order['payment_term'])
|
||||
self.print_enter()
|
||||
|
||||
if order.get('sale_number'):
|
||||
self._printer.text('PEDIDO: %s' % str(order['sale_number']))
|
||||
self.print_enter()
|
||||
|
||||
self._printer.text('POSICION: %s' % str(order['position']))
|
||||
self.print_enter()
|
||||
self._printer.text('VENDEDOR: %s' % order['salesman'])
|
||||
self.print_enter()
|
||||
self._printer.text('AMBIENTE: %s' % order['shop'])
|
||||
self.print_enter()
|
||||
self._printer.text('CLIENTE: %s' % order['party'])
|
||||
self.print_enter()
|
||||
|
||||
if self.order_kind == 'delivery':
|
||||
self._printer.text('VALOR: ' + str(order['total_amount']))
|
||||
self.print_enter()
|
||||
if order.get('pos_notes'):
|
||||
self._printer.text(order['pos_notes'])
|
||||
self.print_enter()
|
||||
self._printer.text('CAJA No: %s' % self._sale_device or '')
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
self._printer.set(align='center')
|
||||
self.print_horinzontal_line()
|
||||
if not reversion and self.order_kind == 'command':
|
||||
self._printer.text('-------- PREPARAR Y SERVIR --------')
|
||||
elif not reversion and self.order_kind == 'delivery':
|
||||
self._printer.text('-------- ENTREGAR --------')
|
||||
else:
|
||||
self._printer.text('<<<< R E V E R S I O N >>>>')
|
||||
self.print_enter()
|
||||
|
||||
if self.order_kind != 'delivery':
|
||||
self.print_horinzontal_line()
|
||||
self._printer.set(align='left')
|
||||
self.print_enter()
|
||||
self._printer.set(align='left')
|
||||
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
self.print_col('CANT', self.order_col_1)
|
||||
self.print_col('PRODUCTO', self.order_col_2)
|
||||
self.print_col(' ' + 'PRECIO', self.order_col_3)
|
||||
|
||||
for line in order['lines']:
|
||||
qty = str(int(Decimal(line['quantity'])))
|
||||
self.print_col(qty, self.order_col_1)
|
||||
self.print_col(line['name'], self.order_col_2)
|
||||
self.print_col(' ' + str(line['unit_price']), self.order_col_3)
|
||||
if line['note']:
|
||||
self.print_enter()
|
||||
self._printer.text(' ----->> NOTA: ' + line['note'])
|
||||
self.print_enter()
|
||||
|
||||
self.print_enter()
|
||||
self.print_horinzontal_double_line()
|
||||
|
||||
self.print_enter()
|
||||
self._printer.text('NOTA:')
|
||||
self.print_enter()
|
||||
if order['comment']:
|
||||
self._printer.text(str(order['comment']))
|
||||
self.print_enter()
|
||||
self.print_horinzontal_line()
|
||||
self.print_enter()
|
||||
self.print_enter()
|
||||
|
||||
|
||||
class CupsPrinter(object):
|
||||
"Cups Printer"
|
||||
__name__ = 'sale_pos_frontend.cups_printer'
|
||||
|
||||
def __init__(self, _file, row_characters):
|
||||
self._file = _file
|
||||
self.align = 'left'
|
||||
self._row_characters = row_characters
|
||||
|
||||
def text(self, text):
|
||||
self._text(text)
|
||||
|
||||
def set(self, align='left', font=_FONT_A):
|
||||
if align:
|
||||
self.align = align
|
||||
if font:
|
||||
self.font = font
|
||||
|
||||
def cut(self):
|
||||
pass
|
||||
|
||||
def cashdraw(number):
|
||||
pass
|
||||
|
||||
def _text(self, text):
|
||||
start_spaces = ''
|
||||
if self.align == 'center':
|
||||
start_spaces = int((self._row_characters - len(text)) / 2) * ' '
|
||||
elif self.align == 'right':
|
||||
start_spaces = int(self._row_characters - len(text)) * ' '
|
||||
else:
|
||||
pass
|
||||
text = start_spaces + text
|
||||
self._file.write(text)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
# Test for Escpos interface printer Linux
|
||||
|
||||
# Network example
|
||||
device = 'network', '192.168.0.32'
|
||||
|
||||
# Unix-like Usb example
|
||||
# device = 'usb','/dev/usb/lp1'
|
||||
|
||||
# Windows Usb example for printer nameb SATPOS
|
||||
# device = 'usb', 'SATPOS'
|
||||
|
||||
# SSH example
|
||||
# device = 'ssh', 'psk@xxxxx@192.168.0.5@23@/dev/usb/lp1'
|
||||
|
||||
example_dev = {
|
||||
'interface': device[0],
|
||||
'device': device[1],
|
||||
}
|
||||
|
||||
ctx_printing = {}
|
||||
ctx_printing['company'] = 'OSCORP INC'
|
||||
ctx_printing['sale_device'] = 'CAJA-10'
|
||||
ctx_printing['shop'] = 'Shop Wall Boulevard'
|
||||
ctx_printing['street'] = 'Cll 21 # 172-81. Central Park'
|
||||
ctx_printing['user'] = 'Charles Chapplin'
|
||||
ctx_printing['city'] = 'Dallas'
|
||||
ctx_printing['zip'] = '0876'
|
||||
ctx_printing['phone'] = '591 5513 455'
|
||||
ctx_printing['id_number'] = '123456789-0'
|
||||
ctx_printing['tax_regime'] = 'none'
|
||||
|
||||
receipt = Receipt(ctx_printing)
|
||||
receipt.set_printer(example_dev)
|
||||
receipt.test_printer()
|
|
@ -0,0 +1,52 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 511.999 511.999" style="enable-background:new 0 0 511.999 511.999;" xml:space="preserve">
|
||||
<path style="fill:#A5EB78;" d="M427.534,73.084l-224.51,224.51c-6.051,6.051-15.863,6.051-21.914,0l-96.645-96.645L8.099,277.313
|
||||
l145.785,145.785c10.127,10.127,23.862,15.816,38.183,15.816l0,0c14.32,0,28.057-5.69,38.182-15.816l273.65-273.65L427.534,73.084z"
|
||||
/>
|
||||
<g style="opacity:0.1;">
|
||||
<path d="M478.646,124.196L189.754,413.087c-7.993,7.992-18.043,13.442-28.902,15.872c9.066,6.425,19.956,9.955,31.215,9.955l0,0
|
||||
c14.32,0,28.057-5.69,38.182-15.816l273.65-273.65L478.646,124.196z"/>
|
||||
</g>
|
||||
<path d="M192.068,447.014c-16.587,0-32.182-6.459-43.912-18.189L2.372,283.04c-3.163-3.163-3.163-8.292,0-11.454l76.366-76.366
|
||||
c3.164-3.163,8.292-3.163,11.455,0l28.668,28.667c3.163,3.163,3.163,8.292,0,11.454c-3.165,3.163-8.293,3.162-11.455,0l-22.94-22.94
|
||||
l-64.911,64.911l140.058,140.058c8.669,8.669,20.195,13.443,32.456,13.443c12.26,0,23.785-4.775,32.456-13.443l186.951-186.952
|
||||
c3.163-3.163,8.291-3.164,11.455,0c3.163,3.163,3.163,8.292,0,11.454L235.979,428.826
|
||||
C224.248,440.555,208.653,447.014,192.068,447.014z"/>
|
||||
<path d="M192.068,310.232c-6.303,0-12.228-2.454-16.684-6.911l-45.068-45.068c-3.163-3.163-3.163-8.292,0-11.454
|
||||
c3.164-3.163,8.292-3.163,11.455,0l45.068,45.068c1.396,1.396,3.254,2.165,5.229,2.165s3.833-0.769,5.23-2.166L421.806,67.357
|
||||
c3.164-3.163,8.292-3.163,11.455,0l76.366,76.366c1.518,1.518,2.372,3.579,2.372,5.727s-0.853,4.209-2.372,5.727l-63.787,63.787
|
||||
c-3.164,3.163-8.292,3.162-11.455,0c-3.163-3.163-3.163-8.292,0-11.454l58.061-58.06l-64.91-64.91L208.752,303.321
|
||||
C204.295,307.777,198.369,310.232,192.068,310.232z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 9.5 KiB |
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 58 58" style="enable-background:new 0 0 58 58;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<polygon style="fill:#F05565;" points="46.5,4 46.5,8 39.5,8 39.5,4 15.5,4 15.5,8 8.5,8 8.5,4 0.5,4 0.5,15 54.5,15 54.5,4 "/>
|
||||
<polygon style="fill:#EFEBDE;" points="8.5,15 0.5,15 0.5,58 54.5,58 54.5,15 46.5,15 39.5,15 15.5,15 "/>
|
||||
<path style="fill:#D5D0BB;" d="M37.5,22h-2h-7h-2h-7h-2h-9v9v2v7v2v9h9h2h7h2h7h2h9v-9v-2v-7v-2v-9H37.5z M28.5,24h7v7h-7V24z
|
||||
M35.5,40h-7v-7h7V40z M19.5,33h7v7h-7V33z M19.5,24h7v7h-7V24z M10.5,24h7v7h-7V24z M10.5,33h7v7h-7V33z M17.5,49h-7v-7h7V49z
|
||||
M26.5,49h-7v-7h7V49z M35.5,49h-7v-7h7V49z M44.5,49h-7v-7h7V49z M44.5,40h-7v-7h7V40z M37.5,31v-7h7v7H37.5z"/>
|
||||
<rect x="8.5" style="fill:#36495E;" width="7" height="8"/>
|
||||
<rect x="39.5" style="fill:#36495E;" width="7" height="8"/>
|
||||
<rect x="19.5" y="33" style="fill:#7F6E5D;" width="7" height="7"/>
|
||||
</g>
|
||||
<g>
|
||||
<circle style="fill:#26B999;" cx="45.5" cy="45" r="12"/>
|
||||
<path style="fill:#FFFFFF;" d="M52.071,39.179c-0.455-0.316-1.077-0.204-1.392,0.25l-5.596,8.04l-3.949-3.242
|
||||
c-0.426-0.351-1.057-0.288-1.407,0.139c-0.351,0.427-0.289,1.057,0.139,1.407l4.786,3.929c0.18,0.147,0.404,0.227,0.634,0.227
|
||||
c0.045,0,0.091-0.003,0.137-0.009c0.276-0.039,0.524-0.19,0.684-0.419l6.214-8.929C52.636,40.118,52.524,39.495,52.071,39.179z"/>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,97 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 400.00001 400.00001"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_cancel.svg"
|
||||
width="426.66666"
|
||||
height="426.66666"><metadata
|
||||
id="metadata42"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs40" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="926"
|
||||
inkscape:window-height="1027"
|
||||
id="namedview38"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.47861931"
|
||||
inkscape:cx="248.63183"
|
||||
inkscape:cy="330.11524"
|
||||
inkscape:window-x="992"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" /><g
|
||||
id="XMLID_213_"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
transform="matrix(0.81121916,0,0,0.8112241,0,-0.00162245)"><path
|
||||
id="XMLID_220_"
|
||||
d="m 420.004,247.608 c 9.48,-13.409 6.288,-31.95 -7.123,-41.415 -13.387,-9.474 -31.943,-6.267 -41.412,7.127 l -32.09,45.433 v -28.289 -32.547 -88.979 c 0,-13.126 -10.65,-23.766 -23.773,-23.766 -13.133,0 -23.773,10.64 -23.773,23.766 v 88.979 H 279.96 V 85.171 c 0,-13.128 -10.651,-23.775 -23.777,-23.775 -13.122,0 -23.773,10.647 -23.773,23.775 v 75.406 l 145.968,145.981 z"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
id="XMLID_219_"
|
||||
d="m 131.374,203.184 v 27.28 130.76 c 0,25.783 20.896,46.681 46.674,46.681 h 114.657 c 12.049,0 22.927,-4.678 31.198,-12.184 z"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
id="XMLID_218_"
|
||||
d="m 220.518,148.691 v -39.753 c 0,-13.126 -10.642,-23.775 -23.773,-23.775 -10.783,0 -19.77,7.225 -22.701,17.061 z"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
id="XMLID_214_"
|
||||
d="M 246.537,0.002 C 110.591,0.002 0,110.599 0,246.542 c 0,135.945 110.591,246.542 246.537,246.542 135.957,0 246.548,-110.597 246.548,-246.542 0,-135.943 -110.591,-246.54 -246.548,-246.54 z m 195.756,246.54 c 0,44.831 -15.311,86.056 -40.755,119.089 L 127.459,91.535 c 33.033,-25.435 74.26,-40.746 119.078,-40.746 107.951,0 195.756,87.818 195.756,195.753 z m -391.5,0 c 0,-44.83 15.311,-86.053 40.754,-119.096 l 274.08,274.094 c -33.033,25.444 -74.26,40.754 -119.09,40.754 C 138.598,442.293 50.793,354.479 50.793,246.542 Z"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /></g><g
|
||||
id="g8"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g10"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g12"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g14"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g16"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g18"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g20"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g22"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g24"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g26"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g28"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g30"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g32"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g34"
|
||||
transform="translate(0,-93.084)" /><g
|
||||
id="g36"
|
||||
transform="translate(0,-93.084)" /></svg>
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,120 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<path style="fill:#E6C275;" d="M232.95,349.441c0,24.425-50.787,44.227-113.437,44.227S6.076,373.867,6.076,349.441v-81.892H232.95
|
||||
V349.441z"/>
|
||||
<path style="fill:#FFD782;" d="M232.95,267.549c0,24.425-50.787,44.227-113.437,44.227S6.076,291.975,6.076,267.549v-81.892H232.95
|
||||
V267.549z"/>
|
||||
<g>
|
||||
<path style="fill:#E6C275;" d="M232.95,185.656c0,24.425-50.787,44.227-113.437,44.227S6.076,210.083,6.076,185.656v-81.892H232.95
|
||||
V185.656z"/>
|
||||
<path style="fill:#E6C275;" d="M279.05,349.441c0,24.425,50.787,44.227,113.437,44.227s113.437-19.801,113.437-44.227v-81.892
|
||||
H279.05V349.441z"/>
|
||||
</g>
|
||||
<path style="fill:#FFD782;" d="M279.05,267.549c0,24.425,50.787,44.227,113.437,44.227s113.437-19.801,113.437-44.227v-81.892
|
||||
H279.05V267.549z"/>
|
||||
<path style="fill:#E6C275;" d="M279.05,185.656c0,24.425,50.787,44.227,113.437,44.227s113.437-19.801,113.437-44.227v-81.892
|
||||
H279.05V185.656z"/>
|
||||
<g>
|
||||
<ellipse style="fill:#FFD782;" cx="392.488" cy="103.767" rx="113.443" ry="44.226"/>
|
||||
<ellipse style="fill:#FFD782;" cx="119.51" cy="103.767" rx="113.443" ry="44.226"/>
|
||||
</g>
|
||||
<path style="opacity:0.1;enable-background:new ;" d="M111.065,162.558v230.987c2.789,0.08,5.606,0.122,8.447,0.122
|
||||
c62.649,0,113.437-19.801,113.437-44.227v-81.892v-81.892v-81.891c0-5.45-2.535-10.669-7.159-15.49
|
||||
c-22.81,2.195-43.979,6.856-61.444,13.666C117.988,120.015,111.065,147.678,111.065,162.558z"/>
|
||||
<path style="opacity:0.1;enable-background:new ;" d="M400.934,162.558v230.987c-2.789,0.08-5.606,0.122-8.447,0.122
|
||||
c-62.649,0-113.437-19.801-113.437-44.227v-81.892v-81.892v-81.891c0-5.45,2.535-10.669,7.159-15.49
|
||||
c22.81,2.195,43.979,6.856,61.444,13.666C394.012,120.015,400.934,147.678,400.934,162.558z"/>
|
||||
<path style="fill:#E6C275;" d="M369.436,408.236c0,24.425-50.787,44.227-113.437,44.227s-113.437-19.801-113.437-44.227v-81.892
|
||||
h226.875V408.236z"/>
|
||||
<path style="fill:#FFD782;" d="M369.436,326.344c0,24.425-50.787,44.227-113.437,44.227s-113.437-19.801-113.437-44.227v-81.892
|
||||
h226.875V326.344z"/>
|
||||
<path style="fill:#E6C275;" d="M369.436,244.451c0,24.425-50.787,44.227-113.437,44.227s-113.437-19.801-113.437-44.227v-81.892
|
||||
h226.875V244.451z"/>
|
||||
<ellipse style="fill:#FFD782;" cx="256.004" cy="162.558" rx="113.443" ry="44.226"/>
|
||||
<path d="M391.535,53.198c-31.037,0-60.333,4.757-82.493,13.398c-24.487,9.547-37.973,23.162-37.973,38.34
|
||||
c0,2.411,0.333,4.78,0.995,7.101c-5.352-0.301-10.723-0.455-16.064-0.455c-5.417,0-10.777,0.153-16.06,0.439
|
||||
c0.659-2.316,0.99-4.679,0.99-7.085c0-20.59-22.268-32.383-38.869-38.674c-35.819-13.573-76.479-15.559-114.254-11.239
|
||||
c-4.29,0.491-7.37,4.366-6.88,8.658c0.491,4.29,4.359,7.366,8.658,6.88c35.392-4.007,74.185-2.456,107.692,10.607
|
||||
c17.541,6.839,28.014,15.725,28.014,23.77c0,2.807-1.265,5.72-3.766,8.682c-0.091,0.01-0.179,0.024-0.27,0.034
|
||||
c-4.948,0.606-9.877,1.356-14.782,2.249c-0.241,0.045-0.48,0.092-0.72,0.137c-25.462,4.762-45.911,13.044-57.949,23.632
|
||||
c-0.92,0.092-1.84,0.182-2.766,0.265c-8.171,0.73-16.369,1.1-24.573,1.1c-28.988,0-61.313-3.252-87.328-17.112
|
||||
c-10.678-5.688-16.976-12.168-17.466-18.227c-0.02-0.254-0.031-0.508-0.031-0.76c0-10.505,17.183-21.825,43.776-28.84
|
||||
c4.176-1.102,6.668-5.38,5.566-9.555c-1.102-4.176-5.381-6.667-9.555-5.566C20.202,70.266,0,86.29,0,104.936v81.321v81.321v81.321
|
||||
c0,33.604,62.067,51.738,120.465,51.738c5.025,0,10.064-0.143,15.069-0.399v7.046c0,33.604,62.067,51.738,120.465,51.738
|
||||
c31.037,0,60.333-4.757,82.493-13.398c24.487-9.547,37.973-23.163,37.973-38.34v-7.046c5.005,0.256,10.045,0.399,15.069,0.399
|
||||
c31.037,0,60.333-4.757,82.493-13.398c24.487-9.547,37.973-23.163,37.973-38.34v-81.321v-81.321v-81.321
|
||||
C512,71.332,449.933,53.198,391.535,53.198z M496.361,131.288v54.969c0,8.045-10.473,16.93-28.014,23.77
|
||||
c-20.394,7.951-47.673,12.329-76.813,12.329c-2.258,0-4.52-0.036-6.78-0.092c-0.655-0.016-1.309-0.039-1.964-0.058
|
||||
c-1.709-0.053-3.414-0.122-5.116-0.206c-0.403-0.02-0.806-0.039-1.209-0.06v-58.618c0-2.443-0.337-4.8-0.968-7.078
|
||||
c0.123,0.006,0.247,0.01,0.37,0.017c32.742,1.695,67.373-0.979,98.16-12.983C481.886,140.212,489.617,136.401,496.361,131.288z
|
||||
M332.812,349.732c-24.235,9.449-50.954,12.329-76.812,12.329c-29.14,0-56.419-4.379-76.813-12.329
|
||||
c-17.541-6.839-28.014-15.725-28.014-23.77v-54.829c0.07,0.052,0.144,0.101,0.215,0.153c31.127,23.051,73.031,25.755,110.41,25.036
|
||||
c32.742-0.629,71.652-4.855,98.734-25.117c0.096-0.072,0.199-0.141,0.294-0.213v54.969c0,0.503-0.041,1.009-0.122,1.518
|
||||
C359.49,335.108,349.256,343.32,332.812,349.732z M129.04,303.538c-2.858,0.091-5.716,0.139-8.575,0.139
|
||||
c-59.997,0-104.827-19.058-104.827-36.099v-54.829c0.07,0.052,0.145,0.102,0.215,0.153c0.617,0.458,1.246,0.911,1.894,1.357
|
||||
c0.05,0.034,0.103,0.068,0.153,0.102C39.63,229.101,67.86,234.3,93.535,236.719c13.56,1.277,27.193,1.576,40.797,0.937
|
||||
c0.4-0.019,0.804-0.026,1.203-0.046v7.031v58.622c-0.266,0.015-0.534,0.026-0.801,0.04
|
||||
C132.838,303.399,130.939,303.478,129.04,303.538z M17.748,132.939c21.858,15.148,50.989,20.22,76.946,22.565
|
||||
c13.776,1.245,27.628,1.483,41.439,0.755c0.136-0.007,0.272-0.011,0.409-0.02c-0.666,2.315-1.006,4.678-1.006,7.081v58.618
|
||||
c-0.403,0.022-0.807,0.041-1.211,0.06c-28.457,1.399-58.05-0.882-85.189-10.039c-8.594-2.899-17.321-6.533-24.566-12.094
|
||||
c-4.215-3.235-8.931-7.886-8.931-13.609v-54.829c0.07,0.052,0.145,0.102,0.214,0.153C16.478,132.044,17.109,132.497,17.748,132.939z
|
||||
M290.474,113.619c-2.501-2.963-3.766-5.876-3.766-8.683c0-8.045,10.473-16.93,28.014-23.77
|
||||
c20.394-7.951,47.673-12.329,76.813-12.329c29.14,0,56.419,4.379,76.813,12.329c17.541,6.839,28.014,15.725,28.014,23.77
|
||||
s-10.473,16.93-28.014,23.77c-20.394,7.951-47.673,12.329-76.813,12.329c-9.077,0-18.154-0.45-27.186-1.35
|
||||
c-5.443-4.789-12.503-8.988-20.721-12.582c-0.414-0.183-0.834-0.365-1.255-0.545c-0.027-0.011-0.053-0.023-0.08-0.034
|
||||
C328.253,120.515,310.537,116.051,290.474,113.619z M285.862,128.828c22.718,2.505,52.422,7.111,69.458,23.936
|
||||
c0.023,0.023,0.05,0.039,0.074,0.062c0.043,0.042,0.087,0.082,0.13,0.122c3.446,3.463,5.301,6.993,5.301,10.373
|
||||
c0,10.623-18.274,22.389-45.474,29.277c-4.187,1.06-6.72,5.313-5.661,9.499c1.06,4.188,5.316,6.719,9.499,5.661
|
||||
c11.311-2.864,22.533-6.691,32.773-12.344c2.832-1.564,5.578-3.292,8.186-5.207c0.224-0.165,0.457-0.326,0.677-0.492v54.927
|
||||
c0,0.503-0.041,1.009-0.122,1.518c-1.215,7.63-11.447,15.841-27.893,22.252c-24.244,9.452-50.945,12.329-76.812,12.329
|
||||
c-29.14,0-56.419-4.379-76.813-12.329c-17.541-6.839-28.014-15.725-28.014-23.77v-54.829c0.07,0.052,0.145,0.102,0.215,0.153
|
||||
c28.949,21.443,69.703,25.093,104.612,25.093c10.329,0,20.683-0.527,30.953-1.634c8.761-0.945,9.174-14.113,0.373-15.492
|
||||
c-0.664-0.104-1.35-0.133-2.051-0.058c-9.492,1.025-19.342,1.545-29.276,1.545c-29.14,0-56.419-4.379-76.813-12.329
|
||||
c-17.54-6.838-28.013-15.724-28.014-23.769c-0.001-13.442,21.868-22.594,32.17-26.171
|
||||
C215.191,126.093,252.664,125.167,285.862,128.828z M120.465,384.998c-59.997,0-104.827-19.058-104.827-36.099V294.07
|
||||
c0.07,0.052,0.145,0.102,0.215,0.153c5.824,4.315,12.3,7.642,18.978,10.422c19.859,8.268,41.303,12.013,62.65,13.74
|
||||
c12.148,0.984,24.365,1.166,36.54,0.607c0.503-0.023,1.01-0.032,1.513-0.057v65.657
|
||||
C130.536,384.861,125.492,384.998,120.465,384.998z M360.827,407.283c0,8.045-10.473,16.93-28.014,23.77
|
||||
c-20.394,7.951-47.673,12.329-76.813,12.329s-56.419-4.379-76.813-12.329c-17.541-6.839-28.014-15.725-28.014-23.77v-54.829
|
||||
c0.07,0.052,0.145,0.102,0.215,0.153c28.931,21.454,69.716,25.092,104.612,25.092c31.037,0,60.333-4.757,82.493-13.398
|
||||
c7.733-3.015,15.348-6.768,22.04-11.775c0.096-0.072,0.199-0.141,0.294-0.213V407.283z M496.361,348.899
|
||||
c0,8.045-10.473,16.93-28.014,23.77c-20.394,7.951-47.673,12.329-76.813,12.329c-5.025,0-10.07-0.137-15.069-0.407v-58.629v-7.027
|
||||
c0.501,0.025,1.009,0.034,1.512,0.057c4.515,0.205,9.037,0.323,13.558,0.323c14.053,0,27.811-0.976,40.891-2.899
|
||||
c4.272-0.629,7.227-4.601,6.597-8.874c-0.629-4.272-4.596-7.227-8.874-6.597c-12.328,1.813-25.32,2.733-38.614,2.733
|
||||
c-4.758,0-9.517-0.14-14.27-0.374c-0.267-0.014-0.534-0.025-0.801-0.04v-58.622v-7.031c0.4,0.021,0.803,0.027,1.203,0.046
|
||||
c22.818,1.073,46.362-0.123,68.883-4.933c17.193-3.672,35.269-9.253,49.516-19.901c0.096-0.072,0.199-0.141,0.294-0.213v54.969
|
||||
c0,9.361-13.872,19.57-36.204,26.646c-4.116,1.304-6.396,5.699-5.092,9.816c1.303,4.116,5.696,6.4,9.816,5.092
|
||||
c10.661-3.377,21.133-7.727,30.281-14.248c0.405-0.291,0.808-0.581,1.199-0.875v54.889H496.361z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 6.0 KiB |
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 399.99999 399.99999"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_comment.svg"
|
||||
width="426.66666"
|
||||
height="426.66666"><metadata
|
||||
id="metadata40"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs38" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview36"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.6733698"
|
||||
inkscape:cx="208.07123"
|
||||
inkscape:cy="151.07207"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1" /><g
|
||||
id="XMLID_192_"
|
||||
transform="matrix(0.80079395,0,0,0.78645166,2.9701362,11.435015)"
|
||||
style="fill:#006680;fill-opacity:1"><path
|
||||
id="XMLID_194_"
|
||||
d="M 458.456,50.395 H 227.885 c -20.528,0 -37.193,16.655 -37.193,37.201 v 54.287 h 77.056 c 38.796,0 70.343,31.555 70.343,70.333 v 60.781 l 83.254,47.095 c 1.52,0.865 3.413,0.679 4.74,-0.453 1.342,-1.132 1.813,-2.976 1.214,-4.618 l -23.005,-61.955 h 54.163 c 20.53,0 37.192,-16.655 37.192,-37.202 V 87.596 C 495.648,67.051 478.986,50.395 458.456,50.395 Z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /><path
|
||||
id="XMLID_193_"
|
||||
d="M 267.747,175.014 H 37.211 C 16.665,175.014 0,191.671 0,212.216 v 128.268 c 0,20.547 16.665,37.202 37.211,37.202 H 91.359 L 68.354,439.64 c -0.598,1.641 -0.131,3.485 1.212,4.618 0.778,0.655 1.733,0.995 2.704,0.995 0.693,0 1.391,-0.177 2.038,-0.542 l 118.487,-67.025 h 74.952 c 20.548,0 37.21,-16.655 37.21,-37.202 V 212.216 c 0,-20.545 -16.662,-37.202 -37.21,-37.202 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /></g><g
|
||||
id="g6"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g8"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g10"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g12"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g14"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g16"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g18"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g20"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g22"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g24"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g26"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g28"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g30"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g32"
|
||||
transform="translate(0,-95.64801)" /><g
|
||||
id="g34"
|
||||
transform="translate(0,-95.64801)" /></svg>
|
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 12 KiB |
|
@ -0,0 +1,89 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 400 400"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_delete_line.svg"
|
||||
width="426.66666"
|
||||
height="426.66666"><metadata
|
||||
id="metadata45"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs43" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview41"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.53273138"
|
||||
inkscape:cx="-602.55001"
|
||||
inkscape:cy="221.82599"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" /><g
|
||||
id="g3"
|
||||
transform="matrix(0.89555025,0,0,0.89555025,6.2415513,3.2712383)"
|
||||
style="fill:#006680;fill-opacity:1"><path
|
||||
d="M 321.785,38 H 238.401 V 0 H 125.169 V 38 H 41.785 v 60 h 280 z M 155.169,30 h 53.232 v 8 h -53.232 z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /><path
|
||||
d="M 295.142,214.31 300.802,128 H 62.769 l 19.016,290 h 114.172 c -14.861,-21.067 -23.602,-46.746 -23.602,-74.43 0,-69.14 54.494,-125.791 122.787,-129.26 z"
|
||||
id="path7"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /><path
|
||||
d="m 301.785,244.141 c -54.826,0 -99.43,44.604 -99.43,99.429 0,54.825 44.604,99.43 99.43,99.43 54.826,0 99.43,-44.604 99.43,-99.43 0,-54.826 -44.604,-99.429 -99.43,-99.429 z m 54.176,132.392 -21.213,21.213 -32.963,-32.963 -32.963,32.963 -21.213,-21.213 32.963,-32.963 -32.963,-32.963 21.213,-21.213 32.963,32.963 32.963,-32.963 21.213,21.213 -32.963,32.963 z"
|
||||
id="path9"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /></g><g
|
||||
id="g11"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g13"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g15"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g17"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g19"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g21"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g23"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g25"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g27"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g29"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g31"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g33"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g35"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g37"
|
||||
transform="translate(0,-43)" /><g
|
||||
id="g39"
|
||||
transform="translate(0,-43)" /></svg>
|
After Width: | Height: | Size: 3.4 KiB |
After Width: | Height: | Size: 20 KiB |
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 511.999 511.999" style="enable-background:new 0 0 511.999 511.999;" xml:space="preserve">
|
||||
<path style="fill:#7DD2F0;" d="M14.447,212.002L228.013,90.347c8.469-5.087,19.25,1.013,19.25,10.893v50.951
|
||||
c3.351,0.495,6.7,0.994,10.05,1.495c27.885,3.951,55.861,11.105,82.289,20.793c46.747,17.136,90.315,45.172,120.487,85.299
|
||||
c31.396,41.756,46.374,95.194,43.213,147.203c-0.003,0.053-0.007,0.106-0.01,0.161c-0.598,9.44-8.635,16.679-18.087,16.336
|
||||
c-0.199-0.007-0.397-0.014-0.594-0.022c-7.769-0.281-14.458-5.641-16.337-13.185c-0.034-0.138-0.066-0.265-0.096-0.378
|
||||
c-5.323-20.423-14.037-40.077-25.977-57.497c-20.322-29.65-50.299-50.248-85.125-58.98c-35.159-8.816-71.152-6.507-106.507-0.387
|
||||
c-2.156,0.373-3.307,0.572-3.307,0.572v50.951c0,9.88-10.781,15.98-19.25,10.892L14.447,233.787
|
||||
C6.229,228.851,6.229,216.938,14.447,212.002z"/>
|
||||
<path d="M234.553,365.589c-3.688,0-7.371-0.995-10.713-2.981L10.348,240.995c-0.056-0.031-0.112-0.064-0.166-0.097
|
||||
C3.806,237.068,0,230.342,0,222.904c0-7.438,3.806-14.165,10.183-17.995c0.055-0.033,0.11-0.066,0.166-0.097L223.843,83.196
|
||||
c6.553-3.892,14.416-3.977,21.056-0.219c6.671,3.775,10.654,10.606,10.654,18.271v43.804c0.995,0.149,1.993,0.297,2.988,0.445
|
||||
c22.672,3.212,45.637,8.53,68.191,15.798c4.356,1.404,6.749,6.072,5.346,10.427c-1.404,4.356-6.073,6.746-10.427,5.346
|
||||
c-21.659-6.979-43.696-12.084-65.496-15.172c-3.409-0.509-6.756-1.006-10.102-1.502c-4.063-0.602-7.072-4.089-7.072-8.196v-50.949
|
||||
c0-2.327-1.569-3.467-2.244-3.848c-0.674-0.382-2.457-1.141-4.454,0.059c-0.054,0.032-0.109,0.065-0.165,0.096L18.654,219.152
|
||||
c-1.877,1.166-2.082,3.008-2.082,3.752s0.205,2.586,2.082,3.752l213.463,121.596c0.056,0.031,0.112,0.064,0.166,0.097
|
||||
c1.994,1.196,3.779,0.439,4.453,0.059c0.675-0.382,2.244-1.521,2.244-3.848v-50.951c0-4.032,2.903-7.479,6.877-8.165l3.301-0.571
|
||||
c43.54-7.539,78.472-7.375,109.936,0.514c15.792,3.96,30.71,10.253,44.34,18.709c3.89,2.412,5.086,7.52,2.674,11.408
|
||||
c-2.412,3.889-7.523,5.085-11.408,2.674c-12.173-7.55-25.508-13.174-39.636-16.717c-28.293-7.094-59.996-7.378-99.511-0.861v43.961
|
||||
c0,7.665-3.983,14.496-10.655,18.271C241.644,364.669,238.096,365.589,234.553,365.589z"/>
|
||||
<path d="M485.88,431.782c-0.323,0-0.645-0.006-0.971-0.018l-0.567-0.021c-11.453-0.415-21.354-8.418-24.104-19.464l-0.081-0.317
|
||||
c-5.221-20.028-13.562-38.501-24.789-54.877c-4.765-6.952-10.177-13.483-16.089-19.408c-3.233-3.24-3.226-8.487,0.014-11.717
|
||||
c3.24-3.234,8.487-3.226,11.717,0.014c6.626,6.643,12.692,13.959,18.026,21.745c12.311,17.96,21.449,38.177,27.162,60.091
|
||||
l0.116,0.458c0.978,3.926,4.512,6.767,8.597,6.915l0.61,0.023c0.11,0.003,0.219,0.006,0.328,0.006c4.783,0,8.871-3.786,9.175-8.585
|
||||
l0.009-0.144c3.089-50.823-12.062-102.479-41.565-141.718c-23.598-31.382-57.986-57.517-99.446-75.579
|
||||
c-4.196-1.827-6.115-6.71-4.288-10.905s6.711-6.115,10.905-4.288c44.079,19.203,80.759,47.148,106.073,80.812
|
||||
c31.833,42.338,48.184,97.989,44.861,152.686l-0.009,0.145C510.699,421.367,499.504,431.782,485.88,431.782z"/>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 8.9 KiB |
|
@ -0,0 +1,204 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="100mm"
|
||||
height="30mm"
|
||||
viewBox="0 0 100 30"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="menu_section.svg"
|
||||
inkscape:export-filename="/media/DATA/Seafile/DEVELOPMENT/TRYTON/TRYTON-5.0/FRONTENDS/neox/neox/share/menu.png"
|
||||
inkscape:export-xdpi="50.799999"
|
||||
inkscape:export-ydpi="50.799999">
|
||||
<defs
|
||||
id="defs2">
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter1117"
|
||||
x="-0.023622749"
|
||||
width="1.0472455"
|
||||
y="-0.07562305"
|
||||
height="1.1512461">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.498419"
|
||||
id="feGaussianBlur1119" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.98994949"
|
||||
inkscape:cx="197.06429"
|
||||
inkscape:cy="44.674911"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1330"
|
||||
inkscape:window-height="836"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-267)">
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:18.86659431px;line-height:1.25;font-family:'Aller Display';-inkscape-font-specification:'Aller Display';letter-spacing:0px;word-spacing:0px;fill:#ff9955;fill-opacity:1;stroke:none;stroke-width:0.47166479"
|
||||
x="28.838203"
|
||||
y="289.38608"
|
||||
id="text817"
|
||||
inkscape:export-filename="/home/psk/text817-3.png"
|
||||
inkscape:export-xdpi="136"
|
||||
inkscape:export-ydpi="136"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan815"
|
||||
x="28.838203"
|
||||
y="289.38608"
|
||||
style="fill:#ff9955;stroke-width:0.47166479">Menu</tspan></text>
|
||||
<g
|
||||
id="g1097"
|
||||
transform="matrix(0.03877099,0,0,0.03877099,7.2309428,272.30016)"
|
||||
inkscape:export-filename="/home/psk/text817-3.png"
|
||||
inkscape:export-xdpi="136"
|
||||
inkscape:export-ydpi="136">
|
||||
<g
|
||||
id="g1035"
|
||||
style="fill:#d8d6d4">
|
||||
<path
|
||||
id="path1023"
|
||||
d="M 56.40625,72.722656 H 23.636719 c -8.863281,0 -16.046875,-7.183594 -16.046875,-16.046875 0,-8.859375 7.183594,-16.042969 16.046875,-16.042969 H 56.40625 c 8.863281,0 16.046875,7.183594 16.046875,16.042969 0,8.863281 -7.183594,16.046875 -16.046875,16.046875 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1025"
|
||||
d="M 56.40625,152.44922 H 23.636719 c -8.863281,0 -16.046875,-7.1836 -16.046875,-16.04297 0,-8.85937 7.183594,-16.04297 16.046875,-16.04297 H 56.40625 c 8.863281,0 16.046875,7.1836 16.046875,16.04297 0,8.85937 -7.183594,16.04297 -16.046875,16.04297 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1027"
|
||||
d="M 56.40625,232.17969 H 23.636719 c -8.863281,0 -16.046875,-7.1836 -16.046875,-16.04297 0,-8.86328 7.183594,-16.04297 16.046875,-16.04297 H 56.40625 c 8.863281,0 16.046875,7.17969 16.046875,16.04297 0,8.85937 -7.183594,16.04297 -16.046875,16.04297 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1029"
|
||||
d="M 56.40625,311.91016 H 23.636719 c -8.863281,0 -16.046875,-7.1836 -16.046875,-16.04688 0,-8.85937 7.183594,-16.04297 16.046875,-16.04297 H 56.40625 c 8.863281,0 16.046875,7.1836 16.046875,16.04297 0,8.86328 -7.183594,16.04688 -16.046875,16.04688 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1031"
|
||||
d="M 56.40625,391.63672 H 23.636719 c -8.863281,0 -16.046875,-7.1836 -16.046875,-16.04297 0,-8.85938 7.183594,-16.04297 16.046875,-16.04297 H 56.40625 c 8.863281,0 16.046875,7.1836 16.046875,16.04297 0,8.85937 -7.183594,16.04297 -16.046875,16.04297 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1033"
|
||||
d="M 56.40625,471.36719 H 23.636719 c -8.863281,0 -16.046875,-7.1836 -16.046875,-16.04297 0,-8.85938 7.183594,-16.04297 16.046875,-16.04297 H 56.40625 c 8.863281,0 16.046875,7.18359 16.046875,16.04297 0,8.85937 -7.183594,16.04297 -16.046875,16.04297 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path1037"
|
||||
d="M 409.48437,504.41016 H 50.042969 c -6.484375,0 -11.742188,-5.25782 -11.742188,-11.74219 V 19.328125 c 0,-6.480469 5.257813,-11.738281 11.742188,-11.738281 H 409.48437 c 6.48438,0 11.73829,5.257812 11.73829,11.738281 V 492.67187 c 0,6.48047 -5.25391,11.73829 -11.73829,11.73829 z m 0,0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#e88c38" />
|
||||
<path
|
||||
id="path1039"
|
||||
d="M 409.48437,7.589844 H 362.86328 V 504.41016 h 46.62109 c 6.48438,0 11.73829,-5.25782 11.73829,-11.73829 V 19.328125 c 0,-6.480469 -5.25391,-11.738281 -11.73829,-11.738281 z m 0,0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#d38231" />
|
||||
<path
|
||||
id="path1041"
|
||||
d="m 243.6875,118.44922 h -27.84766 l -2.78906,-26.640626 c -0.53125,-5.105469 3.47266,-9.546875 8.60547,-9.546875 h 16.21484 c 5.13282,0 9.13672,4.441406 8.60547,9.546875 z m 0,0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff" />
|
||||
<path
|
||||
id="path1043"
|
||||
d="M 336.25391,227.44141 H 123.27344 v -9.04688 c 0,-58.8125 47.67968,-106.49219 106.48828,-106.49219 58.8125,0 106.49219,47.67969 106.49219,106.49219 z m 0,0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#e2e2e2" />
|
||||
<path
|
||||
id="path1045"
|
||||
d="m 229.76172,111.90234 c -10.11719,0 -19.90625,1.41407 -29.17969,4.05079 44.625,12.68749 77.30859,53.74609 77.30859,102.4414 v 9.04688 h 58.36329 v -9.04688 c 0,-58.8125 -47.67969,-106.49219 -106.49219,-106.49219 z m 0,0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#c9c9c9" />
|
||||
<path
|
||||
id="path1047"
|
||||
d="M 351.03125,219.71875 H 108.49609 c -2.33593,0 -4.23046,1.89062 -4.23046,4.22656 v 15.66406 c 0,2.33204 1.89453,4.22657 4.23046,4.22657 h 242.53516 c 2.33594,0 4.22656,-1.89453 4.22656,-4.22657 v -15.66406 c 0,-2.33594 -1.89062,-4.22656 -4.22656,-4.22656 z m 0,0"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#d8d6d4" />
|
||||
<path
|
||||
id="path1049"
|
||||
d="m 135.74609,380.71094 c -0.98828,1.79687 -2.51953,2.33593 -3.95703,2.33593 -1.4375,0 -2.875,-0.53906 -3.86328,-2.33593 l -10.33984,-19.41797 v 39.37109 c 0,2.42969 -2.96485,3.6875 -5.83985,3.6875 -2.96875,0 -5.84375,-1.25781 -5.84375,-3.6875 v -56.18359 c 0,-4.3125 2.875,-5.83985 5.84375,-5.83985 4.22266,0 6.11329,0.89844 9.07813,6.19922 l 11.05859,20.13672 11.05469,-20.13672 c 2.96875,-5.30078 4.94531,-6.19922 9.17187,-6.19922 2.96485,0 5.83985,1.52735 5.83985,5.83985 v 56.18359 c 0,2.42969 -2.96485,3.6875 -5.83985,3.6875 -2.96875,0 -5.84375,-1.25781 -5.84375,-3.6875 v -38.65234 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1051"
|
||||
d="m 190.48437,366.86328 h 13.66407 c 2.33593,0 3.68359,2.25 3.68359,4.67578 0,2.06641 -1.16797,4.4961 -3.68359,4.4961 h -13.66407 v 18.0664 h 25.4375 c 2.33985,0 3.6875,2.42578 3.6875,5.21485 0,2.42578 -1.16796,5.03515 -3.6875,5.03515 h -32 c -2.60546,0 -5.125,-1.26172 -5.125,-3.6875 v -58.33984 c 0,-2.42578 2.51563,-3.6875 5.125,-3.6875 h 32 c 2.51954,0 3.6875,2.60937 3.6875,5.03515 0,2.78907 -1.34765,5.21485 -3.6875,5.21485 h -25.4375 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1053"
|
||||
d="m 267.51953,400.66406 -19.32812,-36.13672 v 36.13672 c 0,2.42969 -2.96485,3.6875 -5.84375,3.6875 -2.96485,0 -5.84375,-1.25781 -5.84375,-3.6875 v -58.33984 c 0,-2.51563 2.8789,-3.6836 5.84375,-3.6836 4.22656,0 5.93359,0.89844 8.72265,6.19922 l 17.34766,33.53125 v -36.13672 c 0,-2.51562 2.875,-3.59765 5.84375,-3.59765 2.875,0 5.83984,1.07812 5.83984,3.59765 v 58.42969 c 0,2.42578 -2.96484,3.6875 -5.83984,3.6875 -2.78906,0 -5.21485,-0.89844 -6.74219,-3.6875 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1055"
|
||||
d="m 332.14844,342.23437 c 0,-2.51562 2.875,-3.59375 5.83984,-3.59375 2.87891,0 5.84375,1.07813 5.84375,3.59375 v 42.07032 c 0,15.01172 -9.52734,20.58593 -21.57422,20.58593 -12.13672,0 -21.57422,-5.57421 -21.57422,-20.58593 v -42.07032 c 0,-2.51562 2.875,-3.59375 5.84375,-3.59375 2.875,0 5.83985,1.07813 5.83985,3.59375 v 42.07032 c 0,7.01172 3.6875,10.33984 9.89062,10.33984 6.20313,0 9.88672,-3.32812 9.88672,-10.33984 v -42.07032 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1057"
|
||||
d="m 355.25781,422.14844 h -42.73047 c -4.19531,0 -7.59375,3.39843 -7.59375,7.58984 0,4.19531 3.39844,7.58984 7.59375,7.58984 h 42.73047 c 4.19531,0 7.58985,-3.39453 7.58985,-7.58984 0,-4.19141 -3.39454,-7.58984 -7.58985,-7.58984 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1059"
|
||||
d="M 277.20703,422.14844 H 104.26562 c -4.1914,0 -7.589839,3.39843 -7.589839,7.58984 0,4.19531 3.398439,7.58984 7.589839,7.58984 h 172.94141 c 4.19531,0 7.58984,-3.39453 7.58984,-7.58984 0,-4.19141 -3.39453,-7.58984 -7.58984,-7.58984 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1061"
|
||||
d="M 355.25781,306.24219 H 104.26563 c -4.19141,0 -7.589849,3.39843 -7.589849,7.58984 0,4.19141 3.398439,7.58984 7.589849,7.58984 h 250.99218 c 4.19531,0 7.58985,-3.39843 7.58985,-7.58984 0,-4.19141 -3.39453,-7.58984 -7.58985,-7.58984 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1063"
|
||||
d="m 351.03516,212.12891 h -7.36719 c -2.84375,-52.30079 -41.07422,-95.33985 -91.10938,-105.52735 l 1.46485,-14.003904 c 0.48047,-4.570312 -1.01172,-9.148437 -4.08594,-12.558594 -3.07422,-3.414062 -7.47266,-5.371093 -12.06641,-5.371093 h -16.21484 c -4.59766,0 -8.99219,1.960937 -12.07031,5.371093 -3.07422,3.414063 -4.5625,7.992188 -4.08203,12.558594 l 1.46484,14.003904 c -50.03516,10.1875 -88.26563,53.22266 -91.10938,105.52344 h -7.36718 c -6.51563,0 -11.816409,5.30078 -11.816409,11.81641 v 15.66406 c 0,6.51562 5.300779,11.8164 11.816409,11.8164 h 242.53906 c 6.51562,0 11.81641,-5.30078 11.81641,-11.8164 v -15.66406 c 0,-6.51172 -5.29688,-11.8125 -11.8125,-11.8125 z M 220.86719,90.199219 c 0.21093,-0.230469 0.47265,-0.347657 0.78906,-0.347657 h 16.21484 c 0.3125,0 0.57813,0.117188 0.78907,0.347657 0.21093,0.234375 0.30078,0.511719 0.26562,0.820312 l -1.41797,13.562499 c -2.55859,-0.17187 -5.14062,-0.26953 -7.74219,-0.26953 -2.60546,0 -5.18359,0.0977 -7.74218,0.26953 l -1.42188,-13.562499 c -0.0312,-0.308593 0.0586,-0.585937 0.26563,-0.820312 z M 347.66797,236.24219 h -235.8086 v -8.9336 h 31.98829 c 4.19531,0 7.59375,-3.39843 7.59375,-7.58984 0,-4.19141 -3.39844,-7.58984 -7.59375,-7.58984 h -12.77735 c 3.24219,-51.625 46.26563,-92.63282 98.69141,-92.63282 52.42969,0 95.45312,41.00782 98.69531,92.63282 H 179.16797 c -4.19531,0 -7.58985,3.39843 -7.58985,7.58984 0,4.19141 3.39454,7.58984 7.58985,7.58984 h 168.5 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
id="path1065"
|
||||
d="M 409.48437,0 H 50.042969 C 39.386719,0 30.714844,8.671875 30.714844,19.328125 V 33.039062 H 23.632812 C 10.601562,33.039062 0,43.644531 0,56.675781 0,69.707031 10.601562,80.3125 23.632812,80.3125 h 7.082032 v 32.45703 H 23.632812 C 10.601562,112.76953 0,123.37109 0,136.40625 c 0,13.03125 10.601562,23.63281 23.632812,23.63281 h 7.082032 V 192.5 H 23.632812 C 10.601562,192.5 0,203.10156 0,216.13672 c 0,13.03125 10.601562,23.63281 23.632812,23.63281 h 7.082032 v 32.46094 H 23.632812 C 10.601562,272.23047 0,282.83203 0,295.86328 0,308.89844 10.601562,319.5 23.632812,319.5 h 7.082032 v 32.46094 H 23.632812 C 10.601562,351.96094 0,362.5625 0,375.59375 c 0,13.03516 10.601562,23.63672 23.632812,23.63672 h 7.082032 v 32.46094 H 23.632812 C 10.601562,431.69141 0,442.29297 0,455.32422 c 0,13.03125 10.601562,23.63672 23.632812,23.63672 h 7.082032 v 13.71093 C 30.714844,503.32812 39.386719,512 50.042969,512 H 409.48437 c 10.65625,0 19.33204,-8.67188 19.33204,-19.32813 V 19.328125 C 428.81641,8.671875 420.14062,0 409.48437,0 Z M 30.710938,65.132812 h -7.078126 c -4.660156,0 -8.453124,-3.792968 -8.453124,-8.457031 0,-4.660156 3.792968,-8.453125 8.453124,-8.453125 h 7.078126 z m 0,79.726558 h -7.078126 c -4.660156,0 -8.453124,-3.79296 -8.453124,-8.45312 0,-4.66406 3.792968,-8.45312 8.453124,-8.45312 h 7.078126 z m 0,79.73047 h -7.078126 c -4.660156,0 -8.453124,-3.79297 -8.453124,-8.45312 0,-4.66406 3.792968,-8.45703 8.453124,-8.45703 h 7.078126 z m 0,79.73047 h -7.078126 c -4.660156,0 -8.453124,-3.79297 -8.453124,-8.45703 0,-4.66015 3.792968,-8.45312 8.453124,-8.45312 h 7.078126 z m 0,79.72656 h -7.078126 c -4.660156,0 -8.453124,-3.78906 -8.453124,-8.45312 0,-4.66016 3.792968,-8.45313 8.453124,-8.45313 h 7.078126 z m 0,79.73047 h -7.078126 c -4.660156,0 -8.453124,-3.79297 -8.453124,-8.45312 0,-4.66406 3.792968,-8.45313 8.453124,-8.45313 h 7.078126 z m 382.921872,28.89063 c 0,2.28906 -1.85937,4.15234 -4.14844,4.15234 H 50.042969 c -2.289063,0 -4.148438,-1.86328 -4.148438,-4.15234 V 19.328125 c 0,-2.285156 1.859375,-4.148437 4.148438,-4.148437 H 409.48437 c 2.28907,0 4.14844,1.863281 4.14844,4.148437 z m 0,0"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:21.46269035px;line-height:1.25;font-family:'Aller Display';-inkscape-font-specification:'Aller Display';letter-spacing:0px;word-spacing:0px;opacity:0.303;fill:#ffd42a;fill-opacity:1;stroke:none;stroke-width:0.53656721;filter:url(#filter1117)"
|
||||
x="35.441837"
|
||||
y="289.94626"
|
||||
id="text817-3"
|
||||
transform="matrix(0.87904139,0,0,0.87904139,-2.072699,34.718175)"
|
||||
inkscape:export-filename="/home/psk/text817-3.png"
|
||||
inkscape:export-xdpi="136"
|
||||
inkscape:export-ydpi="136"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan815-6"
|
||||
x="35.441837"
|
||||
y="289.94626"
|
||||
style="fill:#ffd42a;stroke-width:0.53656721">Menu</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 19 KiB |
|
@ -0,0 +1,81 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="426.66666"
|
||||
height="426.66666"
|
||||
viewBox="0 0 400 400"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_new_sale.svg"><metadata
|
||||
id="metadata41"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs39" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview37"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.0907007"
|
||||
inkscape:cx="121.69628"
|
||||
inkscape:cy="206.54733"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1" /><g
|
||||
id="g3"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
transform="matrix(0.65359477,0,0,0.65359477,1.685863,-1.0399999e-6)"><path
|
||||
d="M 310.634,43.714 H 297.17 c -7.194,0 -13.026,-5.833 -13.026,-13.026 V 30.25 C 284.144,13.543 270.6,0 253.893,0 h -0.699 c -16.707,0 -30.25,13.543 -30.25,30.25 v 0.438 c 0,7.194 -5.833,13.027 -13.026,13.027 h -13.464 c -14.341,0 -25.966,11.625 -25.966,25.966 v 0.525 c 0,14.341 11.625,25.966 25.966,25.966 h 114.183 c 14.34,0 25.965,-11.626 25.965,-25.966 V 69.68 C 336.601,55.34 324.976,43.714 310.634,43.714 Z m -57.091,0 c -7.243,0 -13.114,-5.872 -13.114,-13.114 0,-7.243 5.872,-13.115 13.114,-13.115 7.243,0 13.114,5.872 13.114,13.115 0,7.243 -5.871,13.114 -13.114,13.114 z M 311.929,550.8 H 91.8 c -19.314,0 -34.971,-15.657 -34.971,-34.971 V 96.171 C 56.829,76.857 72.486,61.2 83.057,61.2 h 70.854 c -0.591,2.904 -0.91,5.914 -0.91,9.008 0,23.958 19.492,43.45 43.454,43.45 h 114.178 c 23.963,0 43.453,-19.492 43.453,-43.979 0,-2.903 -0.311,-5.733 -0.855,-8.479 h 53.312 c 28.059,0 43.715,15.657 43.715,34.971 v 262.728 c -2.906,-0.181 -5.791,-0.442 -8.742,-0.442 -12.094,0 -23.771,1.704 -34.973,4.604 v -205.69 h -306 v 349.715 h 201.528 c 0.958,15.367 4.316,30.076 9.858,43.714 z M 441.515,384.686 c -62.771,0 -113.656,50.887 -113.656,113.657 0,62.77 50.884,113.657 113.656,113.657 62.772,0 113.656,-50.887 113.656,-113.657 0,-62.77 -50.885,-113.657 -113.656,-113.657 z m 74.267,90.305 -69.943,78.686 c -3.445,3.877 -8.244,5.865 -13.076,5.865 -3.838,0 -7.697,-1.255 -10.916,-3.833 l -43.715,-34.971 c -7.539,-6.028 -8.764,-17.034 -2.727,-24.573 6.027,-7.547 17.037,-8.769 24.576,-2.731 l 30.748,24.598 58.916,-66.28 c 6.408,-7.215 17.465,-7.872 24.684,-1.451 7.221,6.42 7.869,17.468 1.453,24.69 z M 362.829,306 H 222.944 c -4.829,0 -8.743,-3.915 -8.743,-8.743 v -8.743 c 0,-4.829 3.914,-8.743 8.743,-8.743 h 139.885 c 4.828,0 8.744,3.915 8.744,8.743 v 8.743 c -0.002,4.828 -3.916,8.743 -8.744,8.743 z m 0,-78.686 H 222.944 c -4.829,0 -8.743,-3.915 -8.743,-8.743 v -8.743 c 0,-4.829 3.914,-8.743 8.743,-8.743 h 139.885 c 4.828,0 8.744,3.915 8.744,8.743 v 8.743 c -0.002,4.829 -3.916,8.743 -8.744,8.743 z m -43.715,148.629 h -96.17 c -4.829,0 -8.743,-3.915 -8.743,-8.743 v -8.743 c 0,-4.829 3.914,-8.743 8.743,-8.743 h 96.17 c 4.83,0 8.744,3.914 8.744,8.743 v 8.743 c -0.002,4.828 -3.914,8.743 -8.744,8.743 z m -17.485,78.686 h -78.686 c -4.829,0 -8.743,-3.915 -8.743,-8.743 v -8.743 c 0,-4.829 3.914,-8.743 8.743,-8.743 h 78.686 c 4.829,0 8.743,3.914 8.743,8.743 v 8.743 c 0,4.828 -3.914,8.743 -8.743,8.743 z M 197.461,194.981 165.262,231.205 c -1.586,1.785 -3.795,2.701 -6.02,2.701 -1.767,0 -3.543,-0.578 -5.025,-1.765 l -20.125,-16.099 c -3.471,-2.775 -4.034,-7.841 -1.256,-11.312 2.774,-3.475 7.844,-4.037 11.314,-1.258 l 14.155,11.323 27.123,-30.513 c 2.95,-3.321 8.04,-3.624 11.363,-0.668 3.326,2.956 3.624,8.042 0.67,11.367 z m 0,77.786 -32.199,36.223 c -1.586,1.785 -3.795,2.7 -6.02,2.7 -1.767,0 -3.543,-0.577 -5.025,-1.765 l -20.125,-16.099 c -3.471,-2.775 -4.034,-7.841 -1.256,-11.312 2.774,-3.475 7.844,-4.037 11.314,-1.258 l 14.155,11.324 27.123,-30.513 c 2.95,-3.321 8.04,-3.624 11.363,-0.667 3.326,2.955 3.624,8.042 0.67,11.367 z m 0,74.389 -32.199,36.224 c -1.586,1.784 -3.795,2.7 -6.02,2.7 -1.767,0 -3.543,-0.577 -5.025,-1.765 l -20.125,-16.1 c -3.471,-2.774 -4.034,-7.841 -1.256,-11.312 2.774,-3.475 7.844,-4.037 11.314,-1.258 l 14.155,11.323 27.123,-30.513 c 2.95,-3.321 8.04,-3.624 11.363,-0.668 3.326,2.958 3.624,8.044 0.67,11.369 z m 0,74.914 -32.199,36.224 c -1.586,1.785 -3.795,2.7 -6.02,2.7 -1.767,0 -3.543,-0.577 -5.025,-1.765 l -20.125,-16.1 c -3.471,-2.774 -4.034,-7.841 -1.256,-11.312 2.774,-3.475 7.844,-4.037 11.314,-1.258 l 14.155,11.323 27.123,-30.513 c 2.95,-3.321 8.04,-3.624 11.363,-0.668 3.326,2.958 3.624,8.045 0.67,11.369 z"
|
||||
id="path5"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /></g><g
|
||||
id="g7"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g9"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g11"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g13"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g15"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g17"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g19"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g21"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g23"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g25"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g27"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g29"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g31"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g33"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g35"
|
||||
transform="translate(0,-212)" /></svg>
|
After Width: | Height: | Size: 6.1 KiB |
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
viewBox="0 0 400 400"
|
||||
enable-background="new 0 0 297 297"
|
||||
id="svg2"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_party.svg"
|
||||
width="426.66666"
|
||||
height="426.66666">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs16" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.79461279"
|
||||
inkscape:cx="-101.93644"
|
||||
inkscape:cy="148.5"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="g4"
|
||||
transform="matrix(1.3389842,0,0,1.3389842,7.3669322,2.3220339)"
|
||||
style="fill:#006680;fill-opacity:1">
|
||||
<path
|
||||
d="m 110.549,98.768 c 27.231,0 49.384,-22.154 49.384,-49.384 C 159.934,22.153 137.78,0 110.549,0 83.318,0 61.165,22.153 61.165,49.384 c 0,27.231 22.154,49.384 49.384,49.384 z"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" />
|
||||
<path
|
||||
d="m 226.823,185.307 c -30.794,0 -55.846,25.053 -55.846,55.846 0,30.794 25.053,55.846 55.846,55.846 30.793,0 55.846,-25.053 55.846,-55.846 0,-30.793 -25.052,-55.846 -55.846,-55.846 z m 34.017,44.247 -36.494,36.494 c -1.836,1.835 -4.241,2.753 -6.647,2.753 -2.406,0 -4.811,-0.918 -6.647,-2.753 l -18.247,-18.247 c -3.671,-3.671 -3.671,-9.623 0,-13.294 3.672,-3.67 9.622,-3.67 13.294,0 l 11.6,11.601 29.847,-29.848 c 3.672,-3.67 9.622,-3.67 13.294,0 3.671,3.671 3.671,9.623 0,13.294 z"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" />
|
||||
<path
|
||||
d="m 206.751,172.72 v -8.713 c 0,-18.793 -12.077,-35.457 -29.935,-41.307 l -0.083,-0.027 -26.121,-4.325 c -2.223,-0.684 -4.599,0.493 -5.398,2.686 l -29.638,81.319 c -1.71,4.691 -8.345,4.691 -10.055,0 L 75.883,121.034 c -0.646,-1.771 -2.317,-2.881 -4.108,-2.881 -0.425,0 -27.41,4.514 -27.41,4.514 -18.005,6 -30.035,22.691 -30.035,41.565 v 67.664 c 0,10.14 8.22,18.36 18.36,18.36 h 123.405 c -0.382,-2.984 -0.601,-6.017 -0.601,-9.103 0.001,-32.361 21.671,-59.74 51.257,-68.433 z"
|
||||
id="path10"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" />
|
||||
<path
|
||||
d="m 121.487,113.395 c -1.157,-1.26 -2.848,-1.895 -4.558,-1.895 H 104.17 c -1.711,0 -3.402,0.634 -4.558,1.895 -1.791,1.951 -2.051,4.769 -0.779,6.972 l 6.82,10.282 -3.193,26.934 6.287,16.725 c 0.613,1.682 2.992,1.682 3.605,0 l 6.287,-16.725 -3.193,-26.934 6.82,-10.282 c 1.272,-2.203 1.012,-5.021 -0.779,-6.972 z"
|
||||
id="path12"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
|
@ -0,0 +1,91 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 400.00002 400.00002"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_payment.svg"
|
||||
width="426.66666"
|
||||
height="426.66666"><metadata
|
||||
id="metadata47"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs45" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="926"
|
||||
inkscape:window-height="1027"
|
||||
id="namedview43"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.77124691"
|
||||
inkscape:cx="3.0462711"
|
||||
inkscape:cy="-19.779446"
|
||||
inkscape:window-x="992"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1" /><g
|
||||
id="g3"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
transform="matrix(0.65254222,0,0,0.65254222,1.2965212,3.1178247)"><g
|
||||
id="g5"
|
||||
style="fill:#006680;fill-opacity:1"><path
|
||||
d="M 588.63,113.193 213.812,33.871 c -15.858,-3.355 -31.576,6.876 -34.931,22.734 l -7.121,45.762 432.477,91.519 7.121,-45.762 c 3.355,-15.852 -6.87,-31.575 -22.728,-34.931 z"
|
||||
id="path7"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 431.009,203.591 c -4.378,-15.766 -20.854,-25.085 -36.615,-20.714 L 323.24,202.63 155.498,167.13 137.05,254.295 21.786,286.287 c -15.76,4.372 -25.079,20.848 -20.708,36.609 l 64.958,234.078 c 4.378,15.76 20.855,25.085 36.615,20.708 L 475.259,474.279 c 15.76,-4.378 25.079,-20.848 20.708,-36.615 l -11.15,-40.184 41.789,8.835 c 15.858,3.361 31.576,-6.87 34.931,-22.728 L 587.976,258.65 437.45,226.797 Z m 43.031,118.968 9.215,-43.552 c 1.384,-6.521 7.85,-10.727 14.37,-9.35 l 43.552,9.221 c 6.527,1.384 10.733,7.843 9.356,14.37 l -9.215,43.552 c -1.384,6.521 -7.849,10.733 -14.37,9.35 l -43.552,-9.215 c -6.533,-1.389 -10.74,-7.855 -9.356,-14.376 z M 28.27,309.646 131.385,281.04 l 243.299,-67.517 26.181,-7.274 c 0.478,-0.129 0.955,-0.19 1.421,-0.19 2.1,0 4.611,1.378 5.345,4.017 l 3.074,11.07 9.631,34.704 L 37.148,362.186 24.443,316.418 c -0.796,-2.872 0.956,-5.976 3.827,-6.772 z m 444.331,134.495 c 0.49,1.776 -0.024,3.245 -0.545,4.164 -0.514,0.918 -1.506,2.119 -3.282,2.608 L 96.173,554.316 c -0.471,0.129 -0.955,0.196 -1.421,0.196 -2.1,0 -4.611,-1.384 -5.345,-4.023 L 51.519,413.955 434.707,307.613 l 23.371,84.208 z"
|
||||
id="path9"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
d="m 156.379,453.484 c -1.788,-6.429 -8.499,-10.225 -14.928,-8.443 l -43.515,12.08 c -6.423,1.782 -10.225,8.499 -8.437,14.928 l 12.074,43.509 c 1.788,6.429 8.499,10.225 14.928,8.437 l 43.515,-12.074 c 6.429,-1.782 10.225,-8.499 8.443,-14.928 z"
|
||||
id="path11"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" /></g></g><g
|
||||
id="g13"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g15"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g17"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g19"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g21"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g23"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g25"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g27"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g29"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g31"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g33"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g35"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g37"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g39"
|
||||
transform="translate(0,-211.99597)" /><g
|
||||
id="g41"
|
||||
transform="translate(0,-211.99597)" /></svg>
|
After Width: | Height: | Size: 4.5 KiB |
|
@ -0,0 +1 @@
|
|||
<svg viewBox="0 0 511 511.99978" xmlns="http://www.w3.org/2000/svg"><path d="m235.792969 347.265625c3.902343-3.910156 3.902343-10.238281 0-14.148437-3.90625-3.898438-10.234375-3.898438-14.144531 0-3.898438 3.910156-3.898438 10.238281 0 14.148437 3.910156 3.898437 10.238281 3.898437 14.144531 0zm0 0"/><path d="m188.449219 109.96875c0 60.636719 49.332031 109.972656 109.96875 109.972656s109.96875-49.335937 109.96875-109.972656-49.332031-109.96875-109.96875-109.96875-109.96875 49.332031-109.96875 109.96875zm199.945312 0c0 49.613281-40.363281 89.976562-89.976562 89.976562s-89.976563-40.363281-89.976563-89.976562c0-49.609375 40.363282-89.972656 89.976563-89.972656s89.976562 40.363281 89.976562 89.972656zm0 0"/><path d="m115.652344 509.042969c3.875 3.90625 10.183594 3.949219 14.109375.082031l48.46875-47.75c8.234375-8.234375 10.738281-20.425781 7.117187-31.023438l10.425782-10.054687c5.613281-5.421875 13.003906-8.410156 20.816406-8.410156h132.902344c23.578124 0 45.863281-9.054688 62.757812-25.496094.695312-.675781-5.277344 6.359375 90.667969-108.3125 14.230469-16.835937 12.101562-42.117187-4.75-56.363281-16.746094-14.113282-41.832031-12.085938-56.101563 4.460937l-58.992187 60.632813c-7.449219-9.167969-18.808594-14.882813-31.082031-14.882813h-111.480469c-15.863281-6.636719-32.695313-9.996093-50.0625-9.996093-48.140625 0-90.175781 22.234374-112.734375 63.921874-9.503906-1.800781-19.527344 1.074219-26.738282 8.285157l-47.558593 47.699219c-3.882813 3.894531-3.890625 10.195312-.015625 14.101562zm74.792968-227.121094c15.3125 0 30.117188 3.082031 44.011719 9.160156 1.265625.554688 2.628907.839844 4.007813.839844h113.527344c10.839843 0 19.996093 8.839844 19.996093 19.992187 0 11.027344-8.96875 19.996094-19.996093 19.996094h-81.566407c-5.519531 0-9.996093 4.476563-9.996093 9.996094 0 5.523438 4.476562 9.996094 9.996093 9.996094h81.566407c22.050781 0 39.988281-17.9375 39.988281-39.988282 0-1.757812-.125-3.5-.351563-5.226562 57.066406-58.660156 65.113282-66.902344 65.457032-67.3125 7.125-8.410156 19.773437-9.476562 28.1875-2.382812 8.421874 7.121093 9.488281 19.761718 2.34375 28.21875l-89.667969 107.195312c-13.09375 12.570312-30.285157 19.488281-48.457031 19.488281h-132.902344c-13.023438 0-25.351563 4.980469-34.703125 14.015625l-8.496094 8.199219-78.320313-78.316406c18.304688-34.339844 52.652344-53.871094 95.375-53.871094zm-125.320312 66.34375c3.296875-3.296875 8.359375-3.890625 12.378906-1.40625 1.730469 1.054687-3.238281-3.46875 86.589844 86.234375 3.996094 3.996094 3.78125 10.363281.054688 14.089844l-41.320313 40.707031-98.230469-98.980469zm0 0"/><path d="m286.421875 49.988281v11.714844c-11.636719 4.125-19.996094 15.238281-19.996094 28.273437 0 16.535157 13.453125 29.992188 29.992188 29.992188 5.511719 0 9.996093 4.484375 9.996093 9.996094 0 5.511718-4.484374 9.996094-9.996093 9.996094-4.269531 0-8.882813-2.683594-12.980469-7.5625-3.554688-4.226563-9.859375-4.769532-14.085938-1.21875-4.226562 3.554687-4.773437 9.859374-1.21875 14.085937 5.34375 6.355469 11.628907 10.785156 18.289063 13.019531v11.667969c0 5.523437 4.476563 9.996094 9.996094 9.996094s9.996093-4.472657 9.996093-9.996094v-11.714844c11.636719-4.128906 19.996094-15.242187 19.996094-28.273437 0-16.539063-13.453125-29.992188-29.992187-29.992188-5.511719 0-9.996094-4.484375-9.996094-9.996094 0-5.511718 4.484375-10 9.996094-10 3.542969 0 7.28125 1.808594 10.8125 5.226563 3.96875 3.839844 10.296875 3.734375 14.136719-.230469 3.839843-3.96875 3.734374-10.296875-.230469-14.136718-5.074219-4.910157-10.152344-7.6875-14.722657-9.203126v-11.644531c0-5.523437-4.476562-10-9.996093-10s-9.996094 4.476563-9.996094 10zm0 0"/></svg>
|
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 10 KiB |
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
viewBox="0 0 15.119336 15.119531"
|
||||
enable-background="new 0 0 19.353 19.353"
|
||||
width="426.66116"
|
||||
height="426.66666"
|
||||
id="svg2"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="icon_plus.svg">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs12" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1330"
|
||||
inkscape:window-height="836"
|
||||
id="namedview10"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.92187498"
|
||||
inkscape:cx="169.93231"
|
||||
inkscape:cy="94.298747"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<polygon
|
||||
style="fill:#666666;fill-opacity:1"
|
||||
id="polygon8"
|
||||
points="9,7 9,5 7,5 7,7 5,7 5,9 7,9 7,11 9,11 9,9 11,9 11,7 "
|
||||
transform="matrix(1.5694938,0,0,1.5694737,-4.9416227,-4.9568198)" />
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 31 KiB |
|
@ -0,0 +1,280 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="96"
|
||||
height="96"
|
||||
id="svg5453"
|
||||
version="1.1"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="pos-icon.svg"
|
||||
inkscape:export-filename="/mnt/DataX/Dev/TRYTON/TRYTON-3.6/PRESIK-DEV/POS/pos_client_qt5/pos/interface/pos-icon.png"
|
||||
inkscape:export-xdpi="86"
|
||||
inkscape:export-ydpi="86">
|
||||
<defs
|
||||
id="defs5455">
|
||||
<linearGradient
|
||||
id="linearGradient4159"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop4161"
|
||||
offset="0"
|
||||
style="stop-color:#191a1c;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop4163"
|
||||
offset="1"
|
||||
style="stop-color:#333638;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4159"
|
||||
id="linearGradient4250"
|
||||
x1="409.57144"
|
||||
y1="536.79797"
|
||||
x2="409.57144"
|
||||
y2="503.798"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2,0,0,2,-384.57144,-547.798)" />
|
||||
<linearGradient
|
||||
gradientTransform="translate(-151.16884,-148.58631)"
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4416"
|
||||
id="linearGradient4422"
|
||||
x1="551.60089"
|
||||
y1="660.80713"
|
||||
x2="570.64661"
|
||||
y2="644.7854"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4416">
|
||||
<stop
|
||||
style="stop-color:#44aa00;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4418" />
|
||||
<stop
|
||||
style="stop-color:#44aa00;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4420" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
gradientTransform="translate(-151.16884,-148.58631)"
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4216"
|
||||
id="linearGradient4414"
|
||||
x1="541.46667"
|
||||
y1="641.34729"
|
||||
x2="629.46667"
|
||||
y2="641.34729"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
id="linearGradient4216"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop4196"
|
||||
offset="0"
|
||||
style="stop-color:#2ca05a;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop4198"
|
||||
offset="1"
|
||||
style="stop-color:#005544;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<filter
|
||||
inkscape:collect="always"
|
||||
style="color-interpolation-filters:sRGB"
|
||||
id="filter4496"
|
||||
x="-0.034391314"
|
||||
width="1.0687826"
|
||||
y="-0.037766567"
|
||||
height="1.0755331">
|
||||
<feGaussianBlur
|
||||
inkscape:collect="always"
|
||||
stdDeviation="0.89824537"
|
||||
id="feGaussianBlur4498" />
|
||||
</filter>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.9293075"
|
||||
inkscape:cx="-38.755776"
|
||||
inkscape:cy="32.998147"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g4466"
|
||||
showgrid="false"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:showpageshadow="false"
|
||||
borderlayer="true"
|
||||
showguides="false">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid4063" />
|
||||
<sodipodi:guide
|
||||
position="1.1650391e-05,47.999996"
|
||||
orientation="4,0"
|
||||
id="guide4146" />
|
||||
<sodipodi:guide
|
||||
position="1.1650391e-05,43.999996"
|
||||
orientation="0,48"
|
||||
id="guide4148" />
|
||||
<sodipodi:guide
|
||||
position="48.000012,43.999996"
|
||||
orientation="-4,0"
|
||||
id="guide4150" />
|
||||
<sodipodi:guide
|
||||
position="48.000012,47.999996"
|
||||
orientation="0,-48"
|
||||
id="guide4152" />
|
||||
<sodipodi:guide
|
||||
position="1.1650391e-05,4.0000264"
|
||||
orientation="4,0"
|
||||
id="guide4154" />
|
||||
<sodipodi:guide
|
||||
position="1.1650391e-05,2.6367188e-05"
|
||||
orientation="0,48"
|
||||
id="guide4156" />
|
||||
<sodipodi:guide
|
||||
position="48.000012,2.6367188e-05"
|
||||
orientation="-4,0"
|
||||
id="guide4158" />
|
||||
<sodipodi:guide
|
||||
position="48.000012,4.0000264"
|
||||
orientation="0,-48"
|
||||
id="guide4160" />
|
||||
<sodipodi:guide
|
||||
position="48.000012,48.000026"
|
||||
orientation="0,-4"
|
||||
id="guide4162" />
|
||||
<sodipodi:guide
|
||||
position="44.000012,48.000026"
|
||||
orientation="48,0"
|
||||
id="guide4164" />
|
||||
<sodipodi:guide
|
||||
position="44.000012,2.6367188e-05"
|
||||
orientation="0,4"
|
||||
id="guide4166" />
|
||||
<sodipodi:guide
|
||||
position="48.000012,2.6367188e-05"
|
||||
orientation="-48,0"
|
||||
id="guide4168" />
|
||||
<sodipodi:guide
|
||||
position="4.0000422,48.000026"
|
||||
orientation="0,-4"
|
||||
id="guide4170" />
|
||||
<sodipodi:guide
|
||||
position="4.2167969e-05,48.000026"
|
||||
orientation="48,0"
|
||||
id="guide4172" />
|
||||
<sodipodi:guide
|
||||
position="4.2167969e-05,2.6367188e-05"
|
||||
orientation="0,4"
|
||||
id="guide4174" />
|
||||
<sodipodi:guide
|
||||
position="4.0000422,2.6367188e-05"
|
||||
orientation="-48,0"
|
||||
id="guide4176" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata5458">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Capa 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-384.57143,-451.798)">
|
||||
<path
|
||||
style="opacity:1;fill:#b3b3b3;fill-opacity:1;stroke:none;stroke-width:2.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.55026455"
|
||||
d="m 420.57144,525.798 0,14 0,4 0,4 24,0 0,-4 0,-4 0,-14 z"
|
||||
id="rect4254"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccc"
|
||||
inkscape:export-xdpi="86"
|
||||
inkscape:export-ydpi="86" />
|
||||
<rect
|
||||
style="opacity:1;fill:url(#linearGradient4250);fill-opacity:1;stroke:none;stroke-width:2.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.55026455"
|
||||
id="rect4173"
|
||||
width="96"
|
||||
height="71.999992"
|
||||
x="384.57144"
|
||||
y="459.798"
|
||||
ry="7.7244935"
|
||||
inkscape:export-xdpi="86"
|
||||
inkscape:export-ydpi="86" />
|
||||
<rect
|
||||
style="opacity:1;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:2.79999995;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.55026455"
|
||||
id="rect4295"
|
||||
width="44"
|
||||
height="1.9999473"
|
||||
x="410.57144"
|
||||
y="545.79797"
|
||||
inkscape:export-xdpi="86"
|
||||
inkscape:export-ydpi="86" />
|
||||
<circle
|
||||
style="opacity:0.75;fill:#dfdfdf;fill-opacity:1;fill-rule:evenodd;stroke:none"
|
||||
id="path3072"
|
||||
cx="432.57144"
|
||||
cy="527.79797"
|
||||
r="2"
|
||||
inkscape:export-xdpi="86"
|
||||
inkscape:export-ydpi="86" />
|
||||
<g
|
||||
id="g4466"
|
||||
transform="translate(-1.7264214,1.9311233)">
|
||||
<rect
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4414);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00800002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
id="rect4304"
|
||||
width="88.000023"
|
||||
height="60"
|
||||
x="390.29785"
|
||||
y="462.76099"
|
||||
ry="4.8278084"
|
||||
inkscape:export-xdpi="86"
|
||||
inkscape:export-ydpi="86" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path4376"
|
||||
d="m 391.87831,463.87746 62.68411,57.08194 -62.58979,1.44377 z"
|
||||
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:0.7;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient4422);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.00800002;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter4496);color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
inkscape:export-xdpi="86"
|
||||
inkscape:export-ydpi="86" />
|
||||
</g>
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5303"
|
||||
d="m 408.31843,502.48155 c 1.3237,-0.69525 3.79964,0.43726 4.92083,2.25166 1.00533,1.62659 6.09832,3.14073 7.90299,2.34942 1.20425,-0.52776 1.50824,-1.19658 1.60257,-3.52566 0.17757,-4.38004 -0.80908,-7.80962 -4.00331,-13.91508 -1.60303,-3.06412 -3.28264,-6.4527 -3.73248,-7.52872 -0.44991,-1.07658 -1.66288,-2.97675 -2.69546,-4.22277 -2.19741,-2.65029 -2.26574,-3.37448 -0.46222,-4.91191 2.70034,-2.30191 7.26228,1.42439 6.27756,5.12758 -0.48467,1.82274 0.44567,4.48144 3.52694,10.07884 3.65609,6.64207 7.36162,9.33248 9.5746,6.95199 0.5718,-0.6147 1.28144,-4.04474 1.93548,-9.35441 0.98384,-7.98595 0.97885,-8.46385 -0.10438,-10.06939 -1.87315,-2.77589 -0.10664,-5.65642 2.85718,-4.66014 2.98839,1.00432 4.93795,5.06863 3.06508,6.38946 -0.831,0.5859 -1.09968,2.28964 -1.47672,9.36699 -0.48331,9.07524 -0.11758,11.50427 1.91565,12.72512 1.80723,1.08492 2.43574,0.86433 6.24548,-2.20044 4.04239,-3.25135 5.70426,-5.35577 5.81102,-7.35804 0.0995,-1.86226 1.3332,-2.85856 3.30017,-2.66383 1.25386,0.12413 1.81372,0.53632 2.51454,1.84959 1.43104,2.6818 1.02102,4.38575 -1.15994,4.82107 -1.77721,0.35438 -4.83019,4.28802 -9.52682,12.27399 -4.95946,8.43269 -6.04639,9.31102 -11.60445,9.37845 -2.28489,0.0268 -5.48154,-0.73331 -13.00681,-3.09616 -5.4877,-1.7236 -10.69025,-3.21944 -11.56109,-3.32503 -3.14685,-0.38014 -4.71449,-5.36708 -2.11617,-6.73258 z"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.26842833;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:export-filename="/home/bch/icon.png"
|
||||
inkscape:export-xdpi="86.470001"
|
||||
inkscape:export-ydpi="86.470001" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 29 KiB |
|
@ -0,0 +1,81 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="426.66666"
|
||||
height="426.66666"
|
||||
viewBox="0 0 400 400"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_position.svg"><metadata
|
||||
id="metadata41"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs39" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="926"
|
||||
inkscape:window-height="1027"
|
||||
id="namedview37"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.54535033"
|
||||
inkscape:cx="195.36285"
|
||||
inkscape:cy="129.7875"
|
||||
inkscape:window-x="992"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1" /><g
|
||||
id="g3"
|
||||
transform="matrix(0.65677966,0,0,0.65677966,0.02963009,0.64406784)"
|
||||
style="fill:#006680;fill-opacity:1"><path
|
||||
d="m 371.718,338.58 44.566,-99.29 -99.289,44.565 c -20.535,-3.406 -42.361,2.734 -58.17,18.543 -15.809,15.809 -21.949,37.635 -18.543,58.17 l -44.565,99.289 99.29,-44.565 c 20.535,3.405 42.36,-2.735 58.169,-18.544 15.809,-15.809 21.949,-37.634 18.542,-58.168 z m -49.872,26.839 c -8.737,8.737 -22.954,8.737 -31.69,0 -8.736,-8.737 -8.737,-22.954 0,-31.69 8.737,-8.736 22.954,-8.736 31.69,0 8.736,8.737 8.736,22.954 0,31.69 z M 306,477.347 321.509,511.876 H 290.49 Z m 0,-255.726 -15.509,-34.53 h 31.019 z m 127.863,127.863 34.529,-15.509 v 31.019 z m -255.725,0 -34.53,15.509 V 333.974 Z M 367.728,94.55 c 3.658,-8.302 5.726,-17.456 5.726,-27.094 C 373.453,30.263 343.193,0 306,0 c -37.193,0 -67.453,30.263 -67.453,67.456 0,9.639 2.067,18.792 5.725,27.094 C 129.267,122.393 43.574,226.136 43.574,349.574 43.574,494.275 161.297,612 306,612 450.703,612 568.426,494.274 568.426,349.574 568.426,226.136 482.733,122.393 367.728,94.55 Z M 279.779,67.456 c 0,-14.461 11.764,-26.224 26.221,-26.224 14.458,0 26.222,11.763 26.222,26.224 0,8.204 -3.863,15.448 -9.778,20.26 -5.444,-0.338 -10.916,-0.567 -16.443,-0.567 -5.527,0 -10.999,0.229 -16.442,0.567 -5.917,-4.812 -9.78,-12.056 -9.78,-20.26 z M 306,540.368 c -105.204,0 -190.795,-85.593 -190.795,-190.795 0,-105.202 85.591,-190.794 190.795,-190.794 105.204,0 190.795,85.593 190.795,190.795 0,105.202 -85.591,190.794 -190.795,190.794 z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /></g><g
|
||||
id="g7"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g9"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g11"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g13"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g15"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g17"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g19"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g21"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g23"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g25"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g27"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g29"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g31"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g33"
|
||||
transform="translate(0,-212)" /><g
|
||||
id="g35"
|
||||
transform="translate(0,-212)" /></svg>
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
viewBox="0 0 16.40625 16.40625"
|
||||
enable-background="new 0 0 21 21"
|
||||
width="426.66666"
|
||||
height="426.66666"
|
||||
id="svg2"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_print_order.svg">
|
||||
<metadata
|
||||
id="metadata18">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs16" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="926"
|
||||
inkscape:window-height="1027"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.4609375"
|
||||
inkscape:cx="206.10169"
|
||||
inkscape:cy="256"
|
||||
inkscape:window-x="992"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="svg2" />
|
||||
<g
|
||||
id="g4"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
transform="matrix(0.7881356,0,0,0.68451426,0.08898305,1.3114962)">
|
||||
<path
|
||||
d="m 15,13 c -1.657,0 -3,1.343 -3,3 0,1.657 1.343,3 3,3 1.657,0 3,-1.343 3,-3 0,-1.657 -1.343,-3 -3,-3 z m 0,4 c -0.552,0 -1,-0.448 -1,-1 0,-0.552 0.448,-1 1,-1 0.552,0 1,0.448 1,1 0,0.552 -0.448,1 -1,1 z"
|
||||
id="path6"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 0,13 v 2 H 1.184 C 1.072,15.314 1,15.647 1,16 1,17.657 2.343,19 4,19 5.657,19 7,17.657 7,16 7,14.49 5.88,13.253 4.428,13.043 4.615,13.016 4.805,13 5,13 Z m 5,3 c 0,0.552 -0.448,1 -1,1 -0.552,0 -1,-0.448 -1,-1 0,-0.552 0.448,-1 1,-1 0.552,0 1,0.448 1,1 z"
|
||||
id="path8"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 20.014,15.003 C 20.031,13.589 20.052,11.054 20,10 19.908,8.126 19.068,6.421 18,4.999 v 0 C 17.999,4.447 17.552,4 17,4 h -5 c -0.552,0 -1,0.448 -1,1 v 8 H 5 c 1.474,0 2.75,0.81 3.444,2 h 0.142 c 0.905,0 1.774,0.36 2.414,1 h 0.142 c 0.447,-1.72 2,-3 3.858,-3 2.206,0 4,1.794 4,4 h 1 c 0.552,0 1,-0.448 1,-1 0,-0.547 -0.441,-0.989 -0.986,-0.997 z M 17.477,9 H 14 V 5 h 2.528 c 0.159,0 0.308,0.071 0.401,0.2 0.513,0.71 1.217,1.827 1.484,2.446 C 18.69,8.288 18.177,9 17.477,9 Z"
|
||||
id="path10"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="M 9,2 H 1 C 0.448,2 0,2.448 0,3 v 9 c 0,0.552 0.448,1 1,1 h 8 c 0.552,0 1,-0.448 1,-1 V 3 C 10,2.448 9.552,2 9,2 Z"
|
||||
id="path12"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
|
@ -0,0 +1,89 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 18.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 399.99999 399.99999"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_print_sale.svg"
|
||||
width="426.66666"
|
||||
height="426.66666"><metadata
|
||||
id="metadata41"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs39" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="926"
|
||||
inkscape:window-height="1027"
|
||||
id="namedview37"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.6705073"
|
||||
inkscape:cx="168.72603"
|
||||
inkscape:cy="323.19614"
|
||||
inkscape:window-x="992"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1" /><g
|
||||
id="XMLID_43_"
|
||||
transform="matrix(0.80359529,0,0,0.80359529,1.4741706,-0.0010086)"
|
||||
style="fill:#006680;fill-opacity:1"><path
|
||||
id="XMLID_46_"
|
||||
d="M 403.22,109.799 H 391.597 V 16.956 C 391.596,7.592 384.003,0 374.64,0 H 123.134 c -9.365,0 -16.956,7.592 -16.956,16.956 v 92.843 H 94.545 c -25.575,0 -46.307,20.732 -46.307,46.305 v 127.583 c 0,25.575 20.732,46.306 46.307,46.306 h 11.633 v 150.814 c 0,9.363 7.591,16.956 16.956,16.956 H 374.64 c 9.363,0 16.956,-7.593 16.956,-16.956 V 329.994 h 11.623 c 25.575,0 46.307,-20.732 46.307,-46.306 V 156.104 c 0,-25.573 -20.731,-46.305 -46.306,-46.305 z M 115.707,287.72 c -3.402,0 -6.616,-0.77 -9.529,-2.078 -8.115,-3.652 -13.785,-11.766 -13.785,-21.237 0,-9.471 5.67,-17.585 13.785,-21.237 2.914,-1.308 6.127,-2.078 9.529,-2.078 12.873,0 23.314,10.44 23.314,23.314 0,12.876 -10.441,23.316 -23.314,23.316 z M 357.684,463.852 H 140.09 V 329.994 h 217.595 v 133.858 z m 0,-354.053 H 140.09 V 33.911 h 217.595 v 75.888 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /><path
|
||||
id="XMLID_45_"
|
||||
d="m 186.709,382.235 h 124.347 c 7.021,0 12.717,-5.696 12.717,-12.717 0,-7.02 -5.696,-12.717 -12.717,-12.717 H 186.709 c -7.021,0 -12.717,5.697 -12.717,12.717 -10e-4,7.022 5.695,12.717 12.717,12.717 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /><path
|
||||
id="XMLID_44_"
|
||||
d="m 186.709,433.103 h 124.347 c 7.021,0 12.717,-5.695 12.717,-12.717 0,-7.02 -5.696,-12.717 -12.717,-12.717 H 186.709 c -7.021,0 -12.717,5.697 -12.717,12.717 -10e-4,7.022 5.695,12.717 12.717,12.717 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /></g><g
|
||||
id="g7"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g9"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g11"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g13"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g15"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g17"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g19"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g21"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g23"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g25"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g27"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g29"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g31"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g33"
|
||||
transform="translate(0,-97.764008)" /><g
|
||||
id="g35"
|
||||
transform="translate(0,-97.764008)" /></svg>
|
After Width: | Height: | Size: 4.1 KiB |
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
||||
<g>
|
||||
<g>
|
||||
<g>
|
||||
<path d="M510.625,302.781L475.313,181c-4.979-18.646-21.917-31.667-41.229-31.667H74.667c-3.229,0-6.292,1.469-8.313,3.99
|
||||
c-0.405,0.503-61.958,113.198-61.958,113.198C1.521,271.813,0,277.802,0,283.833C0,303.771,16.229,320,36.167,320h63.131
|
||||
l2.056,9.25c4.375,19.677,21.5,33.417,41.646,33.417c0.125,0,0.229,0,0.354-0.01L473.042,352
|
||||
C494.521,352,512,334.521,512,313.042C512,309.594,511.542,306.198,510.625,302.781z M36.167,298.667
|
||||
c-8.188,0-14.833-6.656-14.833-14.833c0-2.479,0.625-4.938,1.792-7.104l47.289-86.684l24.142,108.621H36.167z M472.688,330.677
|
||||
l-329.833,10.656c-10.021-0.073-18.5-6.917-20.667-16.708L87.958,170.667h346.125c9.646,0,18.125,6.51,20.667,16.052
|
||||
l35.333,121.833c0.396,1.427,0.583,2.938,0.583,4.49C490.667,322.76,482.75,330.667,472.688,330.677z"/>
|
||||
<path d="M393.875,226.021l-211.521,6.615c-5.896,0.177-10.521,5.104-10.333,10.99c0.188,5.771,4.917,10.333,10.667,10.333
|
||||
c0.104,0,0.229,0,0.333,0l211.521-6.625c5.896-0.177,10.521-5.104,10.333-10.99C404.688,230.469,399.938,225.438,393.875,226.021
|
||||
z"/>
|
||||
<path d="M362.313,270.344l-148.458,4.625c-5.896,0.188-10.521,5.115-10.333,11c0.188,5.771,4.917,10.333,10.667,10.333
|
||||
c0.104,0,0.229,0,0.333-0.01l148.458-4.625c5.896-0.188,10.521-5.115,10.333-11C373.125,274.792,368.333,269.927,362.313,270.344
|
||||
z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,78 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 400.00001 400.00001"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_salesman.svg"
|
||||
width="426.66666"
|
||||
height="426.66666"><metadata
|
||||
id="metadata39"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs37" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="926"
|
||||
inkscape:window-height="1027"
|
||||
id="namedview35"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.53984566"
|
||||
inkscape:cx="280.37669"
|
||||
inkscape:cy="-100.14861"
|
||||
inkscape:window-x="992"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="Capa_1" /><path
|
||||
d="m 301.11142,151.21595 c -6.17155,23.59622 -20.57302,28.79388 -28.25707,29.83667 -4.73339,9.46316 -15.13778,28.80295 -25.5458,38.52 -4.1603,3.88283 -9.56652,7.15993 -16.06813,9.74063 -8.30066,3.29342 -17.06741,4.96371 -26.0536,4.96371 -8.98618,0 -17.75293,-1.67029 -26.05359,-4.96371 -6.49979,-2.57888 -11.90783,-5.85598 -16.06813,-9.74063 -10.40983,-9.71523 -20.81422,-29.05684 -25.54761,-38.52 -7.68224,-1.04279 -22.08371,-6.23864 -28.25525,-29.83667 -3.30068,-12.61875 -2.45556,-22.90526 2.51359,-30.5748 2.19622,-3.38954 4.85852,-5.6982 7.33766,-7.26149 0.007,-2.51904 0.11244,-5.67282 0.40442,-9.26004 -4.46317,-6.202369 -10.53133,-19.584623 -3.01595,-41.245775 7.94339,-22.899813 25.90307,-26.436254 34.57188,-26.742746 2.93071,-5.447932 8.46751,-13.182762 18.52188,-20.293728 11.16065,-7.8980508 25.73441,-12.246966 41.03541,-12.246966 18.82837,0 37.77463,6.626746 54.78944,19.163881 27.58605,20.326373 25.22298,65.415084 24.54652,73.601491 1.00109,6.862513 1.27856,12.814613 1.29126,17.022063 2.47913,1.56329 5.14144,3.87195 7.33766,7.2615 4.96915,7.67135 5.81427,17.95605 2.51541,30.57661 z m 80.678,175.71394 v 64.00232 c 0,5.00724 -4.06056,9.0678 -9.0678,9.0678 H 37.650225 c -5.007237,0 -9.067796,-4.06056 -9.067796,-9.0678 v -64.00232 c 0,-26.22044 15.730813,-49.45576 40.076033,-59.19457 l 79.279738,-31.7119 c 2.28146,-0.91041 4.83495,-0.86144 7.07832,0.1469 2.24156,1.00471 3.98076,2.87812 4.815,5.18859 l 19.93102,55.10137 3.9463,-11.34562 -6.27854,-15.34816 c -1.14254,-2.79651 -0.81973,-5.9793 0.86507,-8.48745 1.68479,-2.50816 4.50669,-4.01341 7.52808,-4.01341 h 38.72675 c 3.02139,0 5.8451,1.50525 7.52808,4.01341 1.6848,2.50815 2.00761,5.69094 0.86507,8.48745 l -6.27854,15.34816 3.9463,11.34562 19.93102,-55.10137 c 0.83424,-2.31047 2.57344,-4.18388 4.815,-5.18859 2.24337,-1.00653 4.79868,-1.05549 7.07832,-0.1469 l 79.27975,31.7119 c 24.34522,9.73881 40.07422,32.97413 40.07422,59.19457 z m -48.2697,6.95863 c 0,-5.00724 -4.06056,-9.0678 -9.0678,-9.0678 h -60.88118 c -5.00724,0 -9.0678,4.06056 -9.0678,9.0678 v 28.27339 c 0,5.00724 4.06056,9.0678 9.0678,9.0678 h 60.88118 c 5.00724,0 9.0678,-4.06056 9.0678,-9.0678 z"
|
||||
id="path3"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /><g
|
||||
id="g5"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g7"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g9"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g11"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g13"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g15"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g17"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g19"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g21"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g23"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g25"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g27"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g29"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g31"
|
||||
transform="translate(0,181.41901)" /><g
|
||||
id="g33"
|
||||
transform="translate(0,181.41901)" /></svg>
|
After Width: | Height: | Size: 4.6 KiB |
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
viewBox="0 0 15.119336 15.119531"
|
||||
enable-background="new 0 0 19.353 19.353"
|
||||
width="426.66116"
|
||||
height="426.66666"
|
||||
id="svg2"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_search_product.svg">
|
||||
<metadata
|
||||
id="metadata14">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs12" />
|
||||
<sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview10"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.4609375"
|
||||
inkscape:cx="-790.21019"
|
||||
inkscape:cy="256.01321"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2"
|
||||
fit-margin-top="0"
|
||||
fit-margin-left="0"
|
||||
fit-margin-right="0"
|
||||
fit-margin-bottom="0" />
|
||||
<g
|
||||
id="g4"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
transform="scale(0.7812399,0.78122987)">
|
||||
<path
|
||||
d="M 19.06,16.939 17.454,15.333 C 17.195,15.074 16.878,14.878 16.53,14.762 H 16.529 C 16.181,14.646 15.864,14.45 15.605,14.191 L 14.314,12.9 C 15.367,11.545 16,9.848 16,8 16,3.582 12.418,0 8,0 3.582,0 0,3.582 0,8 c 0,4.418 3.582,8 8,8 1.849,0 3.546,-0.633 4.9,-1.686 l 1.291,1.291 c 0.26,0.26 0.455,0.576 0.571,0.925 0.116,0.349 0.312,0.665 0.571,0.925 l 1.606,1.606 c 0.391,0.39 1.024,0.39 1.414,0 l 0.707,-0.707 c 0.391,-0.391 0.391,-1.024 0,-1.415 z M 8,14 C 4.692,14 2,11.308 2,8 2,4.692 4.692,2 8,2 c 3.308,0 6,2.692 6,6 0,3.308 -2.692,6 -6,6 z"
|
||||
id="path6"
|
||||
style="fill:#006680;fill-opacity:1"
|
||||
inkscape:connector-curvature="0" />
|
||||
<polygon
|
||||
points="7,9 7,11 9,11 9,9 11,9 11,7 9,7 9,5 7,5 7,7 5,7 5,9 "
|
||||
id="polygon8"
|
||||
style="fill:#006680;fill-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,81 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Capa_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="426.66666"
|
||||
height="426.66666"
|
||||
viewBox="0 0 400.00001 400.00001"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.92.1 r15371"
|
||||
sodipodi:docname="icon_search_sale.svg"><metadata
|
||||
id="metadata41"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs39" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1855"
|
||||
inkscape:window-height="1056"
|
||||
id="namedview37"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.54535212"
|
||||
inkscape:cx="-522.53106"
|
||||
inkscape:cy="326.50642"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1" /><g
|
||||
id="g3"
|
||||
transform="matrix(0.65359689,0,0,0.65359689,-7.0839236e-6,2.6853229)"
|
||||
style="fill:#006680;fill-opacity:1"><path
|
||||
d="M 598.007,109.07 524.344,16.651 C 517.386,7.922 506.829,2.836 495.665,2.836 H 169.943 c -11.164,0 -21.72,5.085 -28.678,13.815 L 67.601,109.07 c -7.696,9.655 -13.992,27.656 -13.992,40.002 v 152.604 c 28.321,-47.217 79.863,-78.988 138.814,-78.988 89.294,0 161.934,72.641 161.934,161.926 0,52.824 -25.536,99.674 -64.787,129.25 h 276.585 c 25.318,0 45.843,-20.523 45.843,-45.842 v -318.95 c 10e-4,-12.346 -6.295,-30.347 -13.991,-40.002 z M 91.675,108.287 116.07,77.682 H 236.668 L 253.093,50.677 H 137.594 l 18.011,-22.596 c 3.499,-4.391 8.726,-6.908 14.339,-6.908 h 325.722 c 5.614,0 10.841,2.518 14.34,6.908 l 18.011,22.596 H 409.643 l 9.169,27.005 h 130.729 l 24.394,30.605 z m 100.754,141.908 c -74.24,0 -134.423,60.184 -134.423,134.424 0,31.756 11.076,60.889 29.489,83.893 L 8.52,554.762 c -12.106,13.227 -11.204,33.768 2.023,45.881 6.236,5.701 14.086,8.52 21.922,8.52 8.788,0 17.554,-3.551 23.959,-10.541 l 82.888,-90.523 c 16.298,7.021 34.244,10.945 53.117,10.945 74.24,0 134.423,-60.184 134.423,-134.424 0.001,-74.239 -60.184,-134.425 -134.423,-134.425 z m 0,222.942 c -48.888,0 -88.519,-39.631 -88.519,-88.518 0,-48.889 39.631,-88.52 88.519,-88.52 48.888,0 88.519,39.631 88.519,88.52 0,48.887 -39.632,88.518 -88.519,88.518 z"
|
||||
id="path5"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#006680;fill-opacity:1" /></g><g
|
||||
id="g7"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g9"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g11"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g13"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g15"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g17"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g19"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g21"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g23"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g25"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g27"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g29"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g31"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g33"
|
||||
transform="translate(0,-211.99799)" /><g
|
||||
id="g35"
|
||||
transform="translate(0,-211.99799)" /></svg>
|
After Width: | Height: | Size: 3.9 KiB |
|
@ -0,0 +1 @@
|
|||
<svg height="496pt" viewBox="-11 0 496 496.00008" width="496pt" xmlns="http://www.w3.org/2000/svg"><path d="m0 452.042969c0 24.265625 21.007812 43.957031 46.421875 43.957031h272.507813c22.773437 0 41.734374-15.832031 45.425781-36.589844 21.882812-3.410156 38.644531-21.554687 38.644531-43.398437v-198.011719h22.148438c1.542968.03125 3.058593-.390625 4.363281-1.207031l40.515625-26.316407c2.269531-1.46875 3.636718-3.988281 3.636718-6.691406 0-2.699218-1.367187-5.21875-3.636718-6.6875l-40.515625-26.582031c-1.277344-.910156-2.792969-1.4375-4.363281-1.515625h-22.148438v-43.640625c-.199219-2.683594-1.484375-5.167969-3.554688-6.886719l-92.226562-93.957031c-.515625-.738281-1.148438-1.386719-1.878906-1.914063l-.25-.234374c-1.507813-1.523438-3.566406-2.3789068-5.707032-2.367188h-214.984374c-22.773438 0-41.898438 15.835938-45.589844 36.589844-21.882813 3.410156-38.808594 21.554687-38.808594 43.398437zm136-250.042969v-37h281v37zm297-6.574219v-23.226562l17.847656 11.613281zm-124-166.609375 66.339844 68.183594h-55.648438c-2.777344.0625-5.46875-.980469-7.472656-2.902344-2.007812-1.921875-3.164062-4.566406-3.21875-7.34375zm-224.601562-12.816406h208.601562v70.753906c.121094 14.621094 12.070312 26.371094 26.691406 26.246094h67.308594v36h-258.601562c-4.582032.179688-8.246094 3.867188-8.398438 8.449219v1.023437l-23.808594-.472656h-.070312c-4.464844.117188-8.015625 3.78125-8 8.246094l.25 34.820312c.035156 4.394532 3.609375 7.9375 8 7.933594h23.628906v1.175781c0 4.417969 3.984375 7.824219 8.398438 7.824219h16.902343l-.109375 12c-.070312 4.574219 1.644532 8.996094 4.777344 12.328125 2.695312 2.875 6.425781 4.554687 10.363281 4.671875h97.136719c4.417969 0 8-3.582031 8-8s-3.582031-8-8-8h-96.246094c-.015625-1-.027344-.5-.027344-.621094l.113282-12.378906h225.691406v198.011719c0 15.441406-13.5 27.988281-30.089844 27.988281h-272.511718c-16.589844 0-30.398438-12.546875-30.398438-27.988281v-370.785157c0-.40625.261719-.820312.261719-1.242187.023437-.34375.023437-.6875 0-1.035156.585937-14.964844 13.921875-26.949219 30.136719-26.949219zm35.601562 177h-15.683594l-.339844-18.714844 16.023438.1875zm-104-113.011719c0-12.828125 10-23.660156 22-26.964843v362.988281c0 24.261719 20.988281 43.988281 46.398438 43.988281h263.367187c-3.699219 12-15.21875 20-28.835937 20h-272.507813c-16.589844 0-30.421875-12.515625-30.421875-27.957031zm0 0"/><path d="m96.460938 284h131.53125c4.417968 0 8-3.582031 8-8s-3.582032-8-8-8h-131.53125c-4.421876 0-8 3.582031-8 8s3.578124 8 8 8zm0 0"/><path d="m96.460938 323h228.910156c4.421875 0 8-3.582031 8-8s-3.578125-8-8-8h-228.910156c-4.421876 0-8 3.582031-8 8s3.578124 8 8 8zm0 0"/><path d="m96.460938 362h228.910156c4.421875 0 8-3.582031 8-8s-3.578125-8-8-8h-228.910156c-4.421876 0-8 3.582031-8 8s3.578124 8 8 8zm0 0"/><path d="m96.460938 401h228.910156c4.421875 0 8-3.582031 8-8s-3.578125-8-8-8h-228.910156c-4.421876 0-8 3.582031-8 8s3.578124 8 8 8zm0 0"/></svg>
|
After Width: | Height: | Size: 2.8 KiB |
|
@ -0,0 +1,152 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
viewBox="0 0 425.982 425.982"
|
||||
style="enable-background:new 0 0 425.982 425.982;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="table.svg"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
|
||||
id="metadata73"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs71">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1330"
|
||||
inkscape:window-height="836"
|
||||
id="namedview69"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.27700701"
|
||||
inkscape:cx="410.82783"
|
||||
inkscape:cy="246.23777"
|
||||
inkscape:window-x="70"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1" />
|
||||
<polygon
|
||||
id="polygon2"
|
||||
points="34.31,86.676 19.37,57.326 146.61,57.326 131.67,86.676 "
|
||||
style="fill:#cccccc" /><polygon
|
||||
id="polygon4"
|
||||
points="294.31,86.676 279.37,57.326 406.61,57.326 391.67,86.676 "
|
||||
style="fill:#cccccc" /><polygon
|
||||
id="polygon6"
|
||||
points="59.31,86.676 44.37,57.326 146.61,57.326 131.67,86.676 "
|
||||
style="fill:#e6e6e6" /><polygon
|
||||
id="polygon8"
|
||||
points="319.31,86.676 304.37,57.326 406.61,57.326 391.67,86.676 "
|
||||
style="fill:#e6e6e6" /><polyline
|
||||
id="polyline10"
|
||||
points="254.03,149.666 297.99,193.626 341.95,149.666 254.03,149.666 "
|
||||
style="fill:#f24125" /><polyline
|
||||
id="polyline12"
|
||||
points="341.95,149.666 254.03,149.666 297.99,193.626 341.95,149.666 "
|
||||
style="fill:#666666" /><polygon
|
||||
id="polygon14"
|
||||
points="139.56,173.626 163.52,149.666 226.52,86.676 131.67,86.676 52.61,86.676 115.6,149.666 "
|
||||
style="fill:#999999" /><polyline
|
||||
id="polyline24"
|
||||
points="71.25,149.666 24.78,149.666 26.44,176.666 71.25,176.666 71.25,149.666 "
|
||||
style="fill:#666666;fill-opacity:1" /><polyline
|
||||
id="polyline26"
|
||||
points="401.2,149.666 354.74,149.666 354.74,176.666 399.54,176.666 401.2,149.666 "
|
||||
style="fill:#666666" /><rect
|
||||
id="rect28"
|
||||
height="12"
|
||||
width="67.790001"
|
||||
y="80.676003"
|
||||
x="226.52" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path30"
|
||||
d="m 390.643,110.68 c -0.39,0 -0.78,-0.04 -1.17,-0.12 -0.38,-0.08 -0.76,-0.19 -1.12,-0.34 -0.36,-0.15 -0.71,-0.34 -1.04,-0.55 -0.33,-0.22 -0.63,-0.47 -0.91,-0.75 -0.28,-0.28 -0.53,-0.59 -0.74,-0.91 -0.22,-0.33 -0.41,-0.68 -0.56,-1.04 -0.15,-0.36 -0.26,-0.74 -0.34,-1.12 -0.08,-0.39 -0.12,-0.78 -0.12,-1.17 0,-0.4 0.04,-0.79 0.12,-1.18 0.08,-0.38 0.19,-0.76 0.34,-1.12 0.15,-0.36 0.34,-0.71 0.56,-1.03 0.21,-0.33 0.46,-0.64 0.74,-0.92 0.28,-0.27 0.58,-0.52 0.91,-0.74 0.33,-0.22 0.68,-0.4 1.04,-0.55 0.36,-0.15 0.74,-0.27 1.12,-0.35 0.78,-0.15 1.57,-0.15 2.35,0 0.38,0.08 0.76,0.2 1.12,0.35 0.36,0.15 0.71,0.33 1.03,0.55 0.33,0.22 0.64,0.47 0.92,0.74 1.11,1.12 1.75,2.67 1.75,4.25 0,0.39 -0.04,0.78 -0.11,1.17 -0.08,0.38 -0.2,0.76 -0.35,1.12 -0.15,0.36 -0.33,0.71 -0.55,1.04 -0.22,0.32 -0.47,0.63 -0.74,0.91 -0.28,0.28 -0.59,0.53 -0.92,0.75 -0.32,0.21 -0.67,0.4 -1.03,0.55 -0.36,0.15 -0.74,0.26 -1.12,0.34 -0.39,0.08 -0.79,0.12 -1.18,0.12 z"
|
||||
style="fill:#ffffff" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path32"
|
||||
d="M 370.037,110.676 H 237.151 c -3.313,0 -6,-2.686 -6,-6 0,-3.314 2.687,-6 6,-6 h 132.885 c 3.314,0 6,2.686 6,6 0,3.314 -2.685,6 -5.999,6 z"
|
||||
style="fill:#ffffff" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path34"
|
||||
d="m 419.98,80.676 h -18.523 l 10.5,-20.628 c 0.947,-1.86 0.859,-4.079 -0.232,-5.858 -1.091,-1.779 -3.028,-2.864 -5.115,-2.864 H 279.37 c -2.087,0 -4.024,1.085 -5.115,2.864 -1.091,1.779 -1.179,3.998 -0.232,5.858 l 10.5,20.628 H 226.52 141.457 l 10.5,-20.628 c 0.947,-1.86 0.859,-4.079 -0.232,-5.858 -1.091,-1.779 -3.028,-2.864 -5.115,-2.864 H 19.37 c -2.087,0 -4.024,1.085 -5.115,2.864 -1.091,1.779 -1.179,3.998 -0.232,5.858 l 10.5,20.628 H 6 c -3.313,0 -6,2.686 -6,6 v 62.99 c 0,3.314 2.687,6 6,6 h 13.137 l 13.124,213.358 c 0.195,3.165 2.818,5.632 5.989,5.632 h 33 c 3.313,0 6,-2.686 6,-6 v -212.99 h 35.865 l 22.203,22.203 c 1.171,1.172 2.707,1.757 4.243,1.757 1.536,0 3.071,-0.586 4.243,-1.757 l 22.205,-22.203 h 85.537 l 42.203,42.203 c 1.171,1.172 2.707,1.757 4.243,1.757 1.536,0 3.071,-0.586 4.243,-1.757 l 42.203,-42.203 h 4.304 v 212.99 c 0,3.314 2.686,6 6,6 h 32.99 c 3.171,0 5.794,-2.467 5.989,-5.632 l 13.124,-213.358 h 13.137 c 3.313,0 6,-2.686 6,-6 v -62.99 c -0.002,-3.314 -2.689,-6 -6.002,-6 z M 289.157,63.326 h 107.667 l -8.832,17.35 h -90.003 z m -260,0 h 107.667 l -8.832,17.35 H 37.988 Z M 65.25,362.656 H 43.892 L 31.16,155.666 H 65.25 Z M 12,143.666 v -50.99 h 38.125 l 50.99,50.99 z M 139.56,165.141 67.095,92.676 h 144.938 z m 158.43,20 -29.475,-29.475 h 58.95 z m 84.098,177.515 H 360.74 v -206.99 h 34.08 z M 413.98,143.666 H 178.009 l 50.996,-50.99 H 413.98 Z"
|
||||
style="fill:#333333" />
|
||||
<g
|
||||
id="g38">
|
||||
</g>
|
||||
<g
|
||||
id="g40">
|
||||
</g>
|
||||
<g
|
||||
id="g42">
|
||||
</g>
|
||||
<g
|
||||
id="g44">
|
||||
</g>
|
||||
<g
|
||||
id="g46">
|
||||
</g>
|
||||
<g
|
||||
id="g48">
|
||||
</g>
|
||||
<g
|
||||
id="g50">
|
||||
</g>
|
||||
<g
|
||||
id="g52">
|
||||
</g>
|
||||
<g
|
||||
id="g54">
|
||||
</g>
|
||||
<g
|
||||
id="g56">
|
||||
</g>
|
||||
<g
|
||||
id="g58">
|
||||
</g>
|
||||
<g
|
||||
id="g60">
|
||||
</g>
|
||||
<g
|
||||
id="g62">
|
||||
</g>
|
||||
<g
|
||||
id="g64">
|
||||
</g>
|
||||
<g
|
||||
id="g66">
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 8.5 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 15 KiB |
|
@ -0,0 +1,164 @@
|
|||
|
||||
QAbstractButton {
|
||||
font-family: "DejaVu Sans";
|
||||
border-style: groove;
|
||||
font: 12pt;
|
||||
color: rgb(102, 102, 102);
|
||||
background-color: rgb(242, 242, 242);
|
||||
min-height: 50px;
|
||||
min-width : 110px;
|
||||
border-color: rgb(208, 208, 208);
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
#field_total_amount, #field_amount, #label_input,
|
||||
#field_default,
|
||||
#field_small_blue,
|
||||
#field_small_gray,
|
||||
#field_invoice {
|
||||
background-color : white;
|
||||
border-style : groove;
|
||||
border-width : 0.5px;
|
||||
border-color : rgb(208, 208, 208);
|
||||
}
|
||||
|
||||
#label_default {
|
||||
font : 14pt;
|
||||
color : rgb(102, 102, 102);
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#field_default {
|
||||
font: bold 14pt;
|
||||
min-height : 10px;
|
||||
}
|
||||
|
||||
#field_small_gray, #label_small_gray {
|
||||
font : 16px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_medium_gray, #label_medium_gray {
|
||||
font : 24px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_big_gray, #label_big_gray {
|
||||
font : 32px;
|
||||
color : rgb(54, 54, 54);
|
||||
}
|
||||
|
||||
#field_small_blue, #label_small_blue {
|
||||
font : 16px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_medium_blue, #label_medium_blue {
|
||||
font : 24px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_big_blue, #label_big_blue {
|
||||
font : bold 32px;
|
||||
color : rgb(0, 30, 80);
|
||||
}
|
||||
|
||||
#field_small_orange, #label_small_orange {
|
||||
font : 16px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
#field_medium_orange, #label_medium_orange {
|
||||
font : 24px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
#field_big_orange, #label_big_orange {
|
||||
font : bold 32px;
|
||||
color : rgb(235, 160, 15);
|
||||
}
|
||||
|
||||
QDialog {
|
||||
min-height : 300px;
|
||||
max-height : 400px;
|
||||
min-width : 500px;
|
||||
}
|
||||
|
||||
#label_gray {
|
||||
font: bold 14pt;
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
color: rgb(102, 102, 102);
|
||||
}
|
||||
|
||||
#label_blue {
|
||||
font: bold 14pt;
|
||||
color: rgb(17, 84, 102);
|
||||
min-height : 10px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#label_message {
|
||||
font : 14pt;
|
||||
min-height : 45px;
|
||||
min-width : 10px;
|
||||
}
|
||||
|
||||
#field_invoice {
|
||||
font : 15pt;
|
||||
min-height : 45px;
|
||||
min-width : 110px;
|
||||
}
|
||||
|
||||
#label_input {
|
||||
font : 15pt;
|
||||
min-height : 45px;
|
||||
min-width : 200px;
|
||||
}
|
||||
|
||||
#field_sign {
|
||||
font: bold 26pt;
|
||||
min-height : 70px;
|
||||
max-width: 100px;
|
||||
}
|
||||
|
||||
#field_amount {
|
||||
font: 24pt;
|
||||
min-height : 60px;
|
||||
max-width: 310px;
|
||||
}
|
||||
|
||||
#field_total_amount, #label_total_amount {
|
||||
color : rgb(50, 65, 75);
|
||||
}
|
||||
|
||||
#table_sale_lines {
|
||||
color : rgb(70, 70, 70);
|
||||
font : 11pt;
|
||||
max-height: 380px;
|
||||
}
|
||||
|
||||
#label_product, #label_qty, #spin_box_qty, #row_field_price,
|
||||
#label_price, #row_field_note {
|
||||
font : 24px;
|
||||
alignment : center;
|
||||
}
|
||||
|
||||
QSpinBox {
|
||||
padding-right: 15px;
|
||||
border-width: 3;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
QSpinBox::up-button {
|
||||
subcontrol-position: right;
|
||||
height: 38px;
|
||||
width: 38px;
|
||||
}
|
||||
|
||||
QSpinBox::down-button {
|
||||
subcontrol-position: left;
|
||||
height: 38px;
|
||||
width: 38px;
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: UTF-8 -*-
|
||||
from re import compile
|
||||
|
||||
# States of mainwindow
|
||||
STATES = {
|
||||
'add': {
|
||||
'button': 'button_accept',
|
||||
're': compile(r'^(\*[0-9]*|[0-9]+)$|-|/|\*[0-9]*[.]*'),
|
||||
},
|
||||
'accept': {
|
||||
'button': 'button_cash',
|
||||
're': compile(r'^[0-9]+$'),
|
||||
},
|
||||
'cash': {
|
||||
'button': None,
|
||||
're': compile(r'^[0-9]+(,[0-9]{,2})?$')
|
||||
},
|
||||
'paid': {
|
||||
'button': None,
|
||||
're': compile(r'^(\*[0-9]*|[0-9]+)$'),
|
||||
},
|
||||
'cancel': {
|
||||
'button': None,
|
||||
're': compile(r'^(\*[0-9]*|[0-9]+)$'),
|
||||
},
|
||||
'disabled': {
|
||||
'button': None,
|
||||
're': compile(r'^(\*[0-9]*|[0-9]+)$'),
|
||||
},
|
||||
}
|
||||
|
||||
RE_SIGN = {
|
||||
'quantity': compile(r'\d+|\.\d+|\d+\.'),
|
||||
}
|
|
@ -0,0 +1,823 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="es_CO">
|
||||
<context>
|
||||
<name>ButtonsFunction</name>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="33"/>
|
||||
<source>SEARCH</source>
|
||||
<translation>BUSCAR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="42"/>
|
||||
<source>CUSTOMER</source>
|
||||
<translation>CLIENTE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="42"/>
|
||||
<source>CANCEL</source>
|
||||
<translation>CANCELAR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="42"/>
|
||||
<source>PRINT</source>
|
||||
<translation>IMPRIMIR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="36"/>
|
||||
<source>SALESMAN</source>
|
||||
<translation>VENDEDOR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="42"/>
|
||||
<source>GLOBAL DISCOUNT</source>
|
||||
<translation>DESCUENTO GLOBAL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="42"/>
|
||||
<source>ORDER</source>
|
||||
<translation>ENV. ORDEN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="53"/>
|
||||
<source>NEW SALE</source>
|
||||
<translation>NUEVA VENTA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="57"/>
|
||||
<source>PAY MODE</source>
|
||||
<translation>MEDIO DE PAGO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="59"/>
|
||||
<source>PAY TERM</source>
|
||||
<translation>PLAZO DE PAGO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="66"/>
|
||||
<source>POSITION</source>
|
||||
<translation>POSICION</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="66"/>
|
||||
<source>NOTE</source>
|
||||
<translation>NOTA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="73"/>
|
||||
<source>TIP</source>
|
||||
<translation>PROPINA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="73"/>
|
||||
<source>TABLES</source>
|
||||
<translation>MESAS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="73"/>
|
||||
<source>RESERVATIONS</source>
|
||||
<translation>RESERVACIONES</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="42"/>
|
||||
<source>S. SALE</source>
|
||||
<translation>B. VENTA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../buttonpad.py" line="39"/>
|
||||
<source>WAITER</source>
|
||||
<translation>MESERO</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>SYSTEM READY...</source>
|
||||
<translation>SISTEMA LISTO...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>DO YOU WANT TO EXIT?</source>
|
||||
<translation>DESEA SALIR?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>PLEASE CONFIRM YOUR PAYMENT TERM AS CREDIT?</source>
|
||||
<translation>POR FAVOR CONFIRMAR SI SU PLAZO DE PAGO ES CREDITO?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>SALE ORDER / INVOICE NUMBER NOT FOUND!</source>
|
||||
<translation>ORDER / FACTURA DE VENTA NO ENCONTRADA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>THIS SALE IS CLOSED, YOU CAN NOT TO MODIFY!</source>
|
||||
<translation>ESTA VENTA ESTA CERRADA, Y USTED NO PUEDE MODIFICARLA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>DISCOUNT VALUE IS NOT VALID!</source>
|
||||
<translation>EL DESCUENTO NO ES VALIDO!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>YOU CAN NOT ADD PAYMENTS TO SALE ON DRAFT STATE!</source>
|
||||
<translation>NO PUEDE AGREGAR PAGOS A UNA VENTA EN BORRADOR!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>ENTER QUANTITY...</source>
|
||||
<translation>INGRESE LA CANTIDAD...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>ENTER DISCOUNT...</source>
|
||||
<translation>INGRESE EL DESCUENTO...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>ENTER PAYMENT AMOUNT BY: %s</source>
|
||||
<translation>INGRESE EL VALOR DEL PAGO EN: %s</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>ENTER NEW PRICE...</source>
|
||||
<translation>INGRESE EL NUEVO PRECIO...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>ORDER SUCCESUFULLY SENT.</source>
|
||||
<translation>ORDEN ENVIADA EXITOSAMENTE.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>FAILED SEND ORDER!</source>
|
||||
<translation>FALLO EL ENVIO DE LA ORDEN!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>MISSING AGENT!</source>
|
||||
<translation>FALTA EL AGENTE!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>THERE IS NOT SALESMAN FOR THE SALE!</source>
|
||||
<translation>NO SE DEFINIDO EL VENDEDOR EN LA VENTA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>YOU CAN NOT CONFIRM A SALE WITHOUT PRODUCTS!</source>
|
||||
<translation>NO PUEDE CONFIRMAR UNA VENTA SIN PRODUCTOS!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>USER WITHOUT PERMISSION FOR SALE POS!</source>
|
||||
<translation>USUARIO SIN PERMISOS PARA VENTA POS!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>THE QUANTITY IS NOT VALID...!</source>
|
||||
<translation>LA CANTIDAD NO ES VALIDAD...!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>MISSING THE DEFAULT PARTY ON SHOP CONFIGURATION!</source>
|
||||
<translation>FALTA CONFIGURAR EL TERCERO EN LA TIENDA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>MISSING SET THE JOURNAL ON DEVICE!</source>
|
||||
<translation>FALTA EL ESTADO DE CUENTA PARA LA CAJA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>PRODUCT NOT FOUND!</source>
|
||||
<translation>PRODUCTO NO ENCONTRADO!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>DO YOU WANT CREATE NEW SALE?</source>
|
||||
<translation>DESEA CREAR UNA NUEVA VENTA?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>ARE YOU WANT TO CANCEL SALE?</source>
|
||||
<translation>DESEA CANCELAR LA VENTA?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>AGENT NOT FOUND!</source>
|
||||
<translation>AGENTE NO ENCONTRADO!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>COMMISSION NOT VALID!</source>
|
||||
<translation>LA COMISIÓN NO ES VÁLIDA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>CREDIT LIMIT FOR CUSTOMER EXCEED!</source>
|
||||
<translation>EL CLIENTE SUPERA SU CUPO DE CREDITO!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>THE CUSTOMER CREDIT CAPACITY IS ABOVE 80%</source>
|
||||
<translation>EL CUPO DE CREDITO DEL CLIENTE ESTA SOBRE EL 80%</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>YOU CAN NOT FORCE ASSIGN!</source>
|
||||
<translation>NO PUEDE FORZAR UNA ASIGACIÓN!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="537"/>
|
||||
<source>INVOICE:</source>
|
||||
<translation>FACTURA:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1820"/>
|
||||
<source>INVOICE</source>
|
||||
<translation>FACTURA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1635"/>
|
||||
<source>PARTY</source>
|
||||
<translation>CLIENTE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1628"/>
|
||||
<source>DATE</source>
|
||||
<translation>FECHA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1629"/>
|
||||
<source>SALESMAN</source>
|
||||
<translation>VENDEDOR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1763"/>
|
||||
<source>PAYMENT TERM</source>
|
||||
<translation>PLAZO DE PAGO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="597"/>
|
||||
<source>No ORDER</source>
|
||||
<translation>No PEDIDO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1864"/>
|
||||
<source>POSITION</source>
|
||||
<translation>POSICION</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1869"/>
|
||||
<source>AGENT</source>
|
||||
<translation>AGENTE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="630"/>
|
||||
<source>DELIVERY CHARGE</source>
|
||||
<translation>CARGO DOMICILIO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2222"/>
|
||||
<source>SUBTOTAL</source>
|
||||
<translation>SUBTOTAL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="675"/>
|
||||
<source>TAXES</source>
|
||||
<translation>IMPUESTOS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="682"/>
|
||||
<source>DISCOUNT</source>
|
||||
<translation>DESCUENTO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="689"/>
|
||||
<source>TOTAL</source>
|
||||
<translation>TOTAL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="696"/>
|
||||
<source>PAID</source>
|
||||
<translation>PAGADO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="703"/>
|
||||
<source>CHANGE</source>
|
||||
<translation>CAMBIO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="746"/>
|
||||
<source>SHOP</source>
|
||||
<translation>TIENDA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="746"/>
|
||||
<source>DEVICE</source>
|
||||
<translation>CAJA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="746"/>
|
||||
<source>DATABASE</source>
|
||||
<translation>BD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="746"/>
|
||||
<source>USER</source>
|
||||
<translation>USUARIO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1812"/>
|
||||
<source>PRINTER</source>
|
||||
<translation>IMPRESORA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1869"/>
|
||||
<source>ID</source>
|
||||
<translation>ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2264"/>
|
||||
<source>NUMBER</source>
|
||||
<translation>NUMERO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1631"/>
|
||||
<source>TOTAL AMOUNT</source>
|
||||
<translation>VALOR TOTAL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1637"/>
|
||||
<source>SEARCH SALES...</source>
|
||||
<translation>BUSCAR VENTAS...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1651"/>
|
||||
<source>CODE</source>
|
||||
<translation>CÓDIGO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1657"/>
|
||||
<source>STOCK</source>
|
||||
<translation>INVENTARIO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2188"/>
|
||||
<source>NAME</source>
|
||||
<translation>NOMBRE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2194"/>
|
||||
<source>DESCRIPTION</source>
|
||||
<translation>DESCRIPCIÓN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1670"/>
|
||||
<source>BRAND</source>
|
||||
<translation>MARCA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1676"/>
|
||||
<source>PRICE</source>
|
||||
<translation>PRECIO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1681"/>
|
||||
<source>LOCATION</source>
|
||||
<translation>LOCACIÓN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1684"/>
|
||||
<source>IMAGE</source>
|
||||
<translation>IMAGEN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1869"/>
|
||||
<source>ID NUMBER</source>
|
||||
<translation>NUMERO ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1704"/>
|
||||
<source>PHONE</source>
|
||||
<translation>TELÉFONO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1720"/>
|
||||
<source>PAYMENT MODE:</source>
|
||||
<translation>MEDIO DE PAGO:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1722"/>
|
||||
<source>SELECT PAYMENT MODE:</source>
|
||||
<translation>SELECCIONE EL MEDIO DE PAGO:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1729"/>
|
||||
<source>WAREHOUSE</source>
|
||||
<translation>BODEGA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1729"/>
|
||||
<source>QUANTITY</source>
|
||||
<translation>CANTIDAD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1731"/>
|
||||
<source>STOCK BY PRODUCT:</source>
|
||||
<translation>INVENTARIO POR PRODUCTO:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1753"/>
|
||||
<source>Id</source>
|
||||
<translation>Id</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1753"/>
|
||||
<source>Salesman</source>
|
||||
<translation>Vendedor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1742"/>
|
||||
<source>CHOOSE SALESMAN</source>
|
||||
<translation>ESCOGE EL VENDEDOR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1755"/>
|
||||
<source>CHOOSE TAX</source>
|
||||
<translation>ESCOJA EL IMPUESTO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1765"/>
|
||||
<source>SELECT PAYMENT TERM</source>
|
||||
<translation>SELECCIONE EL MODO DE PAGO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1811"/>
|
||||
<source>INVOICE NUMBER</source>
|
||||
<translation>NUMERO DE FACTURA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1820"/>
|
||||
<source>TYPE</source>
|
||||
<translation>TIPO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1820"/>
|
||||
<source>ORDER</source>
|
||||
<translation>PEDIDO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1833"/>
|
||||
<source>INSERT PASSWORD FOR CANCEL</source>
|
||||
<translation>INGRESE LA CONTRASEÑA PARA CANCELAR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1842"/>
|
||||
<source>GLOBAL DISCOUNT</source>
|
||||
<translation>DESCUENTO GLOBAL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1847"/>
|
||||
<source>PASSWORD FORCE ASSIGN</source>
|
||||
<translation>CONTRASEÑA PARA FORZAR ASIGNACIÓN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1853"/>
|
||||
<source>VOUCHER NUMBER</source>
|
||||
<translation>NÚMERO DE VOUCHER</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1879"/>
|
||||
<source>COMMISSION</source>
|
||||
<translation>COMISIÓN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2264"/>
|
||||
<source>AMOUNT</source>
|
||||
<translation>VALOR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1890"/>
|
||||
<source>COMMENTS</source>
|
||||
<translation>COMENTARIOS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2105"/>
|
||||
<source>QUANTITY:</source>
|
||||
<translation>CANTIDAD:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2122"/>
|
||||
<source>UNIT PRICE:</source>
|
||||
<translation>PRECIO UNITARIO:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2182"/>
|
||||
<source>COD</source>
|
||||
<translation>COD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2200"/>
|
||||
<source>UNIT</source>
|
||||
<translation>UND</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2207"/>
|
||||
<source>QTY</source>
|
||||
<translation>CANT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2215"/>
|
||||
<source>DISC</source>
|
||||
<translation>DESC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2228"/>
|
||||
<source>NOTE</source>
|
||||
<translation>NOTA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2236"/>
|
||||
<source>UNIT PRICE W TAX</source>
|
||||
<translation>PRECIO UNIT CON IMP</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2264"/>
|
||||
<source>STATEMENT JOURNAL</source>
|
||||
<translation>ESTADO DE CUENTA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>THE USER HAVE NOT PERMISSIONS FOR ACCESS TO DEVICE!</source>
|
||||
<translation>EL USUARIO NO TIENE PERMISOS PARA ACCEDER A CAJA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>THERE IS NOT A STATEMENT OPEN FOR THIS DEVICE!</source>
|
||||
<translation>NO HAY ESTADO DE CUENTA ABIERTOS POR ESTA CAJA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>YOU HAVE NOT PERMISSIONS FOR DELETE THIS SALE!</source>
|
||||
<translation>NO TIENE PERMISOS PARA BORRAR ESTA VENTA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>YOU HAVE NOT PERMISSIONS FOR CANCEL THIS SALE!</source>
|
||||
<translation>NO TIENE PERMISOS PARA CANCELAR LA VENTA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>THE CUSTOMER HAS NOT CREDIT!</source>
|
||||
<translation>EL CLIENTE NO TIENE CREDITO!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="630"/>
|
||||
<source>CUSTOMER</source>
|
||||
<translation>CLIENTE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="630"/>
|
||||
<source>COMPANY</source>
|
||||
<translation>COMPAÑIA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1703"/>
|
||||
<source>ADDRESS</source>
|
||||
<translation>DIRECCION</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1706"/>
|
||||
<source>SEARCH CUSTOMER</source>
|
||||
<translation>BUSCAR CLIENTE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="647"/>
|
||||
<source>ASSIGNED TABLE</source>
|
||||
<translation>MESA ASIGNADA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="156"/>
|
||||
<source>FIRST YOU MUST CREATE/LOAD A SALE!</source>
|
||||
<translation>PRIMERO DEBE AGREGAR/CARGAR UNA VENTA!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2095"/>
|
||||
<source>FRACTION:</source>
|
||||
<translation>FRACCIÓN:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="2244"/>
|
||||
<source>FRAC</source>
|
||||
<translation>FRAC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.py" line="1859"/>
|
||||
<source>DO YOU WANT TO CONFIRM THE SEND ORDER?</source>
|
||||
<translation>DESEAS CONFIRMAR EL ENVIO DE LA ORDEN?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ActionButton</name>
|
||||
<message>
|
||||
<location filename="../commons/buttons.py" line="54"/>
|
||||
<source>&ACCEPT</source>
|
||||
<translation>&ACEPTAR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/buttons.py" line="56"/>
|
||||
<source>&CANCEL</source>
|
||||
<translation>&CANCELAR</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>FrontWindow</name>
|
||||
<message>
|
||||
<location filename="../commons/frontwindow.py" line="28"/>
|
||||
<source>APPLICATION</source>
|
||||
<translation>APLICACION</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>HelpDialog</name>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="313"/>
|
||||
<source>Keys Shortcuts...</source>
|
||||
<translation>Atajos de Teclado...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="322"/>
|
||||
<source>Action</source>
|
||||
<translation>Acción</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="323"/>
|
||||
<source>Shortcut</source>
|
||||
<translation>Atajo</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Login</name>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="63"/>
|
||||
<source>HOST</source>
|
||||
<translation>SERVIDOR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="63"/>
|
||||
<source>DATABASE</source>
|
||||
<translation>BASE DE DATOS</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="63"/>
|
||||
<source>USER</source>
|
||||
<translation>USUARIO</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="63"/>
|
||||
<source>PASSWORD</source>
|
||||
<translation>CONTRASEÑA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="74"/>
|
||||
<source>C&ANCEL</source>
|
||||
<translation>C&ANCELAR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="77"/>
|
||||
<source>&CONNECT</source>
|
||||
<translation>&CONECTAR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="93"/>
|
||||
<source>Error: username or password invalid...!</source>
|
||||
<translation>Error: nombre de usuario o contraseña inválido!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MenuButtons</name>
|
||||
<message>
|
||||
<location filename="../commons/menu_buttons.py" line="213"/>
|
||||
<source>Menu...</source>
|
||||
<translation>Menu...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/menu_buttons.py" line="293"/>
|
||||
<source>&ACCEPT</source>
|
||||
<translation>&ACCEPT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/menu_buttons.py" line="296"/>
|
||||
<source>&BACK</source>
|
||||
<translation>&BACK</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QuickDialog</name>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="34"/>
|
||||
<source>Warning...</source>
|
||||
<translation>Advertencia...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="35"/>
|
||||
<source>Information...</source>
|
||||
<translation>Información...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="36"/>
|
||||
<source>Action...</source>
|
||||
<translation>Acción...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="37"/>
|
||||
<source>Help...</source>
|
||||
<translation>Ayuda...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="38"/>
|
||||
<source>Error...</source>
|
||||
<translation>Error...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="39"/>
|
||||
<source>Question...</source>
|
||||
<translation>Pregunta...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="40"/>
|
||||
<source>Selection...</source>
|
||||
<translation>Selección...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="41"/>
|
||||
<source>Dialog...</source>
|
||||
<translation>Dialogo...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SQLModel</name>
|
||||
<message>
|
||||
<location filename="../commons/search_window.py" line="669"/>
|
||||
<source>Name</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/search_window.py" line="670"/>
|
||||
<source>Salary</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchDialog</name>
|
||||
<message>
|
||||
<location filename="../commons/dialogs.py" line="240"/>
|
||||
<source>Search Products...</source>
|
||||
<translation>Buscar Productos...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SearchWindow</name>
|
||||
<message>
|
||||
<location filename="../commons/search_window.py" line="68"/>
|
||||
<source>SEARCH...</source>
|
||||
<translation>BUSCAR...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/search_window.py" line="172"/>
|
||||
<source>FILTER:</source>
|
||||
<translation>FILTRO:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SelectionWindow</name>
|
||||
<message>
|
||||
<location filename="../commons/search_window.py" line="468"/>
|
||||
<source>SEARCH...</source>
|
||||
<translation>BUSCAR...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/search_window.py" line="490"/>
|
||||
<source>&ACCEPT</source>
|
||||
<translation>&ACEPTAR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../commons/search_window.py" line="491"/>
|
||||
<source>&RETURN</source>
|
||||
<translation>&VOLVER</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>main</name>
|
||||
<message>
|
||||
<location filename="../commons/dblogin.py" line="188"/>
|
||||
<source>Enter your password:</source>
|
||||
<translation>Ingrese su password:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
|
@ -0,0 +1,59 @@
|
|||
[General]
|
||||
#Valid protocols: xml, json, local
|
||||
protocol=xml
|
||||
server=127.0.0.1
|
||||
api_url=localhost:5070
|
||||
port=8000
|
||||
database=DEMO
|
||||
user=admin
|
||||
|
||||
#########################################
|
||||
# Printer Interface and Printer name
|
||||
# For Unix use eg:
|
||||
# usb,/dev/usb/lp0
|
||||
# network,192.168.0.36
|
||||
# cups,EPSON-TM-T20
|
||||
#
|
||||
# For Windows use just namep printer eg:
|
||||
# usb,SATPOS
|
||||
#
|
||||
##########################################
|
||||
printer_sale_name=usb,/dev/usb/lp0
|
||||
|
||||
# ROW CHARACTERS: 33 / 48 / 28
|
||||
# --- EPSON TM-T20 = 33
|
||||
# --- TALLY DT-230 = 48
|
||||
# --- SAT = 42
|
||||
row_characters=48
|
||||
|
||||
# Define mode to print receipt: automatic or manually
|
||||
print_receipt=automatic
|
||||
|
||||
# Define electronic scale is used for set quantity
|
||||
active_weighing=False
|
||||
|
||||
# True / False
|
||||
print_order=False
|
||||
|
||||
print_auto_order=False
|
||||
|
||||
auto_print_commission=False
|
||||
|
||||
active_timeout=True
|
||||
|
||||
timeout=10000
|
||||
|
||||
tablet_mode=False
|
||||
|
||||
# Mode of window: fullscreen / maximized
|
||||
mode_window=maximized
|
||||
|
||||
locale=es_CO.UTF-8
|
||||
|
||||
language=es_CO
|
||||
|
||||
# Options: retail / restaurant
|
||||
enviroment=retail
|
||||
|
||||
|
||||
profile_name=MY DEMO
|
|
@ -0,0 +1,33 @@
|
|||
Tryton POS Client (Using Qt5 and Python3)
|
||||
=========================================
|
||||
|
||||
# FOR WINDOWS
|
||||
|
||||
Download and install python-3.5.2-amd64
|
||||
|
||||
Download and install Visual C++ Build Tools 2013
|
||||
|
||||
Download and install swigwin-3.0.12
|
||||
|
||||
Add swig.exe to Windows PATH
|
||||
|
||||
|
||||
> python -m pip install -U pip
|
||||
|
||||
> pip install -U setuptools
|
||||
|
||||
> pip install -U virtualenv
|
||||
|
||||
> pip install PyQt5
|
||||
|
||||
> downlod TortoiseHG instalador mercurial
|
||||
|
||||
Copy config_pos.ini on user AppData/Local/tryton
|
||||
|
||||
Modify config_pos.ini
|
||||
|
||||
Put launcher on desktop and set icon change
|
||||
name "pospro.pyw"
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# Three steps for translating Qt App
|
||||
|
||||
From main directory:
|
||||
|
||||
1. Clean obsolete translations:
|
||||
|
||||
pylupdate5 -noobsolete project.pro
|
||||
|
||||
2. Do translate .ts file, opening linguist tool:
|
||||
|
||||
/usr/lib/qt5/bin/linguist
|
||||
|
||||
3. Release translation
|
||||
|
||||
lrelease app/translations/i18n_es.ts
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
import os
|
||||
import sys
|
||||
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
from PyQt5.QtCore import QTranslator
|
||||
from neox.commons.dblogin import Login
|
||||
from app import mainwindow
|
||||
|
||||
try:
|
||||
DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
|
||||
'..', '..', '..')))
|
||||
if os.path.isdir(DIR):
|
||||
sys.path.insert(0, os.path.dirname(DIR))
|
||||
except NameError:
|
||||
pass
|
||||
|
||||
locale_app = os.path.join(os.path.abspath(
|
||||
os.path.dirname(__file__)), 'app', 'translations', 'i18n_es.qm')
|
||||
|
||||
|
||||
class Client(object):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
self.app = QApplication(sys.argv)
|
||||
self.translator = QTranslator()
|
||||
self.translator.load(locale_app)
|
||||
self.app.installTranslator(self.translator)
|
||||
|
||||
def init_login(self):
|
||||
login = Login(file_config='config_pos.ini')
|
||||
|
||||
while not login.connection:
|
||||
login.run()
|
||||
login.exec_()
|
||||
|
||||
return login.connection, login.params
|
||||
|
||||
def main(self, conn, params):
|
||||
mw = mainwindow.MainWindow(conn, params)
|
||||
self.app.exec_()
|
||||
|
||||
|
||||
client = Client()
|
||||
conn, params = client.init_login()
|
||||
|
||||
if conn:
|
||||
client.main(conn, params)
|
||||
sys.exit()
|
|
@ -0,0 +1,53 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
import os
|
||||
import sys
|
||||
|
||||
from PyQt5.QtWidgets import QApplication, QStyleFactory
|
||||
from PyQt5.QtCore import QTranslator
|
||||
|
||||
from neox.commons.dblogin import Login
|
||||
from app import mainwindow
|
||||
|
||||
try:
|
||||
DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
|
||||
'..', '..', '..')))
|
||||
if os.path.isdir(DIR):
|
||||
sys.path.insert(0, os.path.dirname(DIR))
|
||||
except NameError:
|
||||
pass
|
||||
|
||||
|
||||
class Client(object):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
self.app = QApplication(sys.argv)
|
||||
path_trans = os.path.join(os.path.abspath(
|
||||
os.path.dirname(__file__)), 'app', 'translations', 'i18n_es.qm')
|
||||
self.translator = QTranslator()
|
||||
self.translator.load(path_trans)
|
||||
# This is to make Qt use locale configuration; i.e. Standard Buttons
|
||||
# in your system's language.
|
||||
self.app.installTranslator(self.translator)
|
||||
self.app.setStyle(QStyleFactory.create('Fusion'))
|
||||
|
||||
def init_login(self):
|
||||
login = Login(file_config='config_pos.ini')
|
||||
|
||||
while not login.connection:
|
||||
login.run()
|
||||
login.exec_()
|
||||
|
||||
return login.connection, login.params
|
||||
|
||||
def main(self, conn, params):
|
||||
mw = mainwindow.MainWindow(conn, params)
|
||||
self.app.exec_()
|
||||
|
||||
|
||||
client = Client()
|
||||
conn, params = client.init_login()
|
||||
|
||||
if conn:
|
||||
client.main(conn, params)
|
||||
sys.exit()
|
|
@ -0,0 +1,3 @@
|
|||
# Execute in terminal $pylupdate5 project.pro
|
||||
SOURCES = app/mainwindow.py app/reporting.py app/buttonpad.py
|
||||
TRANSLATIONS = app/translations/i18n_es.ts
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env python
|
||||
# This file is part of Presik POS. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
from setuptools import setup
|
||||
import os
|
||||
import glob
|
||||
import shutil
|
||||
|
||||
|
||||
def read(fname):
|
||||
return open(os.path.join(os.path.dirname(__file__), fname)).read()
|
||||
|
||||
args = {}
|
||||
data_files = [
|
||||
('app', glob.glob('*.ini')),
|
||||
('app/frontend', glob.glob('pos/share/*.css')),
|
||||
('app/share', glob.glob('app/share/*.png')),
|
||||
('app/translations', glob.glob('app/translations/*.qm')),
|
||||
('neo/share', glob.glob('neo/share/*.css')),
|
||||
]
|
||||
|
||||
if os.name == 'posix':
|
||||
HOME_DIR = os.environ['HOME']
|
||||
default_dir = os.path.join(HOME_DIR, '.tryton')
|
||||
|
||||
if not os.path.exists(default_dir):
|
||||
os.mkdir(default_dir, '0777')
|
||||
default_config = os.path.join(default_dir, 'config_pos.ini')
|
||||
|
||||
if not os.path.exists(default_config):
|
||||
shutil.copyfile('config_pos.ini', default_config)
|
||||
path_inifile = os.path.join(default_dir, 'config_pos.ini')
|
||||
|
||||
|
||||
setup(name='presik_pos',
|
||||
version='4.4.0',
|
||||
description='POS Client for Tryton',
|
||||
author='Oscar Alvarez',
|
||||
author_email='gerente@presik.com',
|
||||
url='www.presik.com',
|
||||
download_url="http://www.bitbucket.org",
|
||||
packages=['app/frontend', 'neo/commons', 'client',
|
||||
'neo/proteus', 'app/translations'],
|
||||
data_files=data_files,
|
||||
scripts=['pospro'],
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: X11 Applications :: Qt',
|
||||
'Intended Audience :: End Users/Desktop',
|
||||
'License :: OSI Approved :: GNU General Public License (GPL)',
|
||||
'Operating System :: OS Independent',
|
||||
'Natural Language :: English',
|
||||
'Natural Language :: Spanish',
|
||||
'Programming Language :: Python',
|
||||
'Topic :: Office/Business',
|
||||
],
|
||||
license='GPL',
|
||||
install_requires=[]
|
||||
)
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
hg pull && hg update
|