Estoy corriendo la version 5.0.6 (servidor), Python 2.6 y OpenSuse 11.2.
Esta solución esta basada en información encontrada en internet en algunos foros de Python y openERP.
Abrir una consola con el usuario root e ir ar directorio:
/usr/local/lib/python2.6/site-packages/openerp-server/addons/account/report
una vez ahi, editar el archivo invoice.py (yo utilizé el editor vi), debería quedar como: (el código agregado está marcado)
import time
from numero_a_texto import Numero_a_Texto
from report import report_sxw
class account_invoice(report_sxw.rml_parse):
def __init__(self, cr, uid, name, context):
super(account_invoice, self).__init__(cr, uid, name, context)
self.localcontext.update({
'time': time,
'obt_texto':self.obt_texto,
'lang':context['lang'],
})
def obt_texto(self,cantidad):
res=Numero_a_Texto(cantidad)
return res
report_sxw.report_sxw(
'report.account.invoice',
'account.invoice',
'addons/account/report/invoice.rml',
parser=account_invoice
)
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
Una vez que esté listo el archivo, crear un nuevo archivo el archivo numero_a_texto.py, este archivo debe contener:
#!/usr/bin/python
# -*- coding: utf-8 -*-
UNIDADES = (
'',
'UN ',
'DOS ',
'TRES ',
'CUATRO ',
'CINCO ',
'SEIS ',
'SIETE ',
'OCHO ',
'NUEVE ',
'DIEZ ',
'ONCE ',
'DOCE ',
'TRECE ',
'CATORCE ',
'QUINCE ',
'DIECISEIS ',
'DIECISIETE ',
'DIECIOCHO ',
'DIECINUEVE ',
'VEINTE '
)
DECENAS = (
'VENTI',
'TREINTA ',
'CUARENTA ',
'CINCUENTA ',
'SESENTA ',
'SETENTA ',
'OCHENTA ',
'NOVENTA ',
'CIEN '
)
CENTENAS = (
'CIENTO ',
'DOSCIENTOS ',
'TRESCIENTOS ',
'CUATROCIENTOS ',
'QUINIENTOS ',
'SEISCIENTOS ',
'SETECIENTOS ',
'OCHOCIENTOS ',
'NOVECIENTOS '
)
def Numero_a_Texto(number_in):
converted = ''
if type(number_in) != 'str':
number = str(number_in)
else:
number = number_in
number_str=number
try:
number_int, number_dec = number_str.split(".")
except ValueError:
number_int = number_str
number_dec = ""
number_str = number_int.zfill(9)
millones = number_str[:3]
miles = number_str[3:6]
cientos = number_str[6:]
if(millones):
if(millones == '001'):
converted += 'UN MILLON '
elif(int(millones) > 0):
converted += '%sMILLONES ' % __convertNumber(millones)
if(miles):
if(miles == '001'):
converted += 'MIL '
elif(int(miles) > 0):
converted += '%sMIL ' % __convertNumber(miles)
if(cientos):
if(cientos == '001'):
converted += 'UN '
elif(int(cientos) > 0):
converted += '%s ' % __convertNumber(cientos)
if number_dec == "":
number_dec = "00"
if (len(number_dec) < 2 ):
number_dec+='0'
converted += 'PESOS '+ number_dec + "/100 M.N."
return converted
def __convertNumber(n):
output = ''
if(n == '100'):
output = "CIEN "
elif(n[0] != '0'):
output = CENTENAS[int(n[0])-1]
k = int(n[1:])
if(k <= 20):
output += UNIDADES[k]
else:
if((k > 30) & (n[2] != '0')):
output += '%sY %s' % (DECENAS[int(n[1])-2], UNIDADES[int(n[2])])
else:
output += '%s%s' % (DECENAS[int(n[1])-2], UNIDADES[int(n[2])])
return output
"""
print Numero_a_Texto(9121234.2)
"""
Una vez que este listo en la factura se debe de utilizar la etiqueta [[obt_texto(o.amount_total)]] en donde se requiera imprimir la cantidad en letras.
Notas:
Se debe reiniciar el servidor para que los cambios tengan efecto.
Python es sensible a los espacios tabuladores.
domingo, 28 de febrero de 2010
miércoles, 24 de febrero de 2010
Instalar ZINIO reader on OpenSuse 11.2
En la version que tengo instalada no corren totalmente bien, algunas paginas se ven otras no, la pantalla se bloquea, los iconos del menu desaparecen pero pasando el raton en el area donde deben de estar vuelven a aparecer, algunas veces las paginas giran solas 180º, en fin le falta mucho para decir que funciona.
Actualmente corriendo wine 1.1.38, Zinio Reader 3.7
Actualmente corriendo wine 1.1.38, Zinio Reader 3.7
- Descargar el software de instalacion de www.zinio.com
- Ejecutar la instalacion ( wine setup.exe )
- Abrir la configuracion de wine ( winecfg )
- En al pestaña Librerias agregar msxml3.dll, msxml3a.dll and msxml4.dll, seleccionar la opcion Nativo Windows.
- Seleccionar la pestaña Aplicaciones, agregar ZinioReader.exe y ZLH.exe y hacerlos ejecutar en Windows 98.
miércoles, 3 de febrero de 2010
Instalación de Genius CP-SF600 en OpenSuse 11.2
La instalacion de el escaner Genius CP-SF600 se hace de la siguiente manera:
- Conectar el escaner a un puerto USB
- Ir a YAST\Hardware\Scaner
- En la lista que aparezca, seleccionar el escaner a actualizar y presiona EDIT, buscar el modelo de escaner: Genius Colorpage SF600
- Permitir la instalacion del software
- Ahi te dara la indicacion de un archivo faltante, el archivo requerido es cism216.fw, para obtenerlo deberas descargar los drivers de la pagina de Genius
- Ya que tengas el driver (archivo .zip), descomprimelo y busca el directorio donde lo descomprimiste, ahi ejecuta
wine INSTALL.EXE
- Ya que se haya instalado copia el archivo
$HOME/.wine/drive_c/Program Files/ColorPage-SF600/cism216.fw
en el folder indicado en el paso 5, o sea en
/usr/share/sane/gt68xxM
- El escaner esta listo para ser usado con tu aplicacion favorita, en mi caso tengo Skanlite y xSane
Instalacion de Openbravo POS 2.3 en OpenSuse 11.2
La instalacion de Openbravo POS puede ser bastante simple siguiendo los pasos siguientes:
***Cuando intenté instalar por primera vez me marcaba que no encontraba el driver, el problema era que la version de JAVA por defecto no era la de SUN, cuando activé utilizar a SUN JRE por defecto el problema cesó
- Verificar que se tiene instalado SUN JAVA run time enviroment (JRE) 6
- Verificar si SUN JAVA es usado por defecto
- Descargar Openbravo POS de acuerdo al tipo de computadora que se tenga, en mi caso descargué el archivo openbravopos-2.30-linux-installer.bin. El enlace de descarga: http://wiki.openbravo.com/wiki/Openbravo_POS_2.30_Release_notes#How_to_get_Openbravo_POS
- Ejecutar el archivo para su instalación.
- Instalar MySQL y el conector Java para MySQL, en mi caso use YAST. Es una buena opcion instalar el Administrador de MySQL (es una interfaz gráfica para MySQL).
- Cuando MySQL haya sido instalado debemos iniciar el servidor de MySQL, para esto iniciar YAST y buscar : SYSTEM\SYSTEM SERVICES; en la columna SERVICE buscar MYSQL y habilitar el servicio para arrancar el servidor
- Abrir una consola y ejecutar :
- Agregar un password al usuario root (de MySQL), teclear en la consola:
- Abrir el Administrador de MySQL (interfaz grafica) y crear un usuario y password para Openbravo POS. El usuario creado en mi caso es rsaucedo
- Crear una base de datos (Catalogo). En mi caso el nombre de la base de datos creada es: openbravopos.
- Al nuevo usuario creado darle todos los privilegios para accesar la nueva base de datos.
- Buscar el conector java instalado (debe de estar en /usr/share/java/mysql-connector-5.1.6.jar) y crear un link o copiar el archivo en el directorio donde se instalo Openbravo, que deberia de ser /opt/openbravopos-2.30/lib
- Iniciar Openbravo POS, deberia de marcar un error y abrir un panel de configuración, en ese panel cargar lo siguiente:
- Cerrar y reiniciar Openbravo POS, en este punto va a decir que no hay Tablas creadas y que creara las tablas por defecto, dar ACEPTAR y listo deberia estar funcionando.
Usar en la consola: java -version
linux-vjtw:# update-alternatives --config java There are 3 alternatives which provide `java'. Selection Alternative ----------------------------------------------- + 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java 2 /usr/lib/jvm/jre-1.5.0-gcj/bin/java * 3 /usr/lib/jvm/jre-1.6.0-sun/bin/java Press enter to keep the default[*], or type selection number: Nota:En este caso se puede notar la versión SUN es empleada por defecto.(Marcada con *)
./openbravopos-2.30-linux-installer.bin
mysql_install_db Nota:va a salir bastante informacion sobre lo que se acaba de instalar y recomendaciones.
mysqladmin -u root password “nuevo_password” mysqladmin -u root -h localhost password “nuevo_password”
Driver library: /opt/openbravopos-2.30/libmysql-connector-java-5.1.6.jar Driver class: com.mysql.jdbc.Driver URL: jdbc:mysql://localhost:3306/openbravopos User: rsaucedo Password: 123456 Nota:Los parametros empleados en driver library no deben de incluir espacios ni adelante ni atras, verificar bien para evitar errores, los otros parametros deben de ser cargados de acuerdo a el usuario y la base de datos (catalogo) creados en MySQL
***Cuando intenté instalar por primera vez me marcaba que no encontraba el driver, el problema era que la version de JAVA por defecto no era la de SUN, cuando activé utilizar a SUN JRE por defecto el problema cesó
Suscribirse a:
Entradas (Atom)