Re: [tryton-es] Actualizar fecha de movimiento contable

2018-09-04 Por tema Josias Pérez
Hola Sergi,

Tengo una consulta, necesito configurar un dominio para una instancia de
tryton en aws. De momento tengo corriendo una con apache y otra con nginx
(ambos en diferentes servidores), puedo acceder a través del cliente sao
pero no de tryton.

Alguna sugerencia cómo podría ver esto o algún ejemplo de configuración?
Igual, si no fuera posible, cuánto me cobrarías por activarlo?

Agradezco desde ya tu apoyo. Estuve en trámites de mi graduación (ahora soy
ingeniero, industrial, pero ingeniero) y por eso fuera algún tiempo, pero
ya regresé.

Saludos.

El mié., 1 de ago. de 2018 a la(s) 09:35, Sergi Almacellas Abellana <
se...@koolpi.com> escribió:

> El 01/08/18 a les 17:17, Josias Pérez ha escrit:
> > De momento estoy pensando en cancelar el asiento contable y crear uno
> > nuevo, pero aún deseo conocer si existen otras posibilidades para este
> > caso especial.
> >
> Este es justo el procedimiento para modificar cualquiera de los campos
> que te aparezcan como solo lectura.
>
> Desde el menú de acciones hay un asistente llamado "Cancelar Asiento"
> que te va a generar un asiento de cancelación.
>
> Luego puedes duplicar el asiento actual para tener una copia en estado
> borrador y modificar la información que necessites.
>
> Un saludo,
>
>
> --
> Sergi Almacellas Abellana
> www.koolpi.com
> Twitter: @pokoli_srk
>


Re: [tryton-es] Actualizar fecha de movimiento contable

2018-08-01 Por tema Josias Pérez
De momento estoy pensando en cancelar el asiento contable y crear uno 
nuevo, pero aún deseo conocer si existen otras posibilidades para este caso 
especial. 

Desde ya gracias por la ayuda. 

El miércoles, 1 de agosto de 2018, 1:48:59 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 31/07/18 a les 22:50, Josias Pérez ha escrit: 
> > Hola, 
> > 
> > Quisiera solicitar apoyo para un error que he tenido, y es en la fecha 
> > de contabilización de un movimiento. Estuve leyendo [1] sobre el caso 
> > pero en realidad no sé como hacer para actualizar el movimiento (¿existe 
> > algún wizard o algo por el estilo?). 
>
> La fecha de contabilizacion solo indica cuando se contabilizo el asiento 
> y es un campo de solo lectura gestionado por el sistema. 
>
> ¿Porqué necessitas modificarla? 
>
> Saludos, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Actualizar fecha de movimiento contable

2018-08-01 Por tema Josias Pérez
Hola,

La fecha de contabilización, por error, fue mal colocada, entonces refleja 
un movimiento incorrecto en la fecha y también en el periodo, y no estoy 
seguro, pero si no afecta la contabilidad, creo que debería haber alguna 
forma de poder actualizar la fecha y el periodo. Pero no estoy seguro si 
afecta el actualizar la fecha y el período de un movimiento. 

Un saludo. 

El miércoles, 1 de agosto de 2018, 1:48:59 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 31/07/18 a les 22:50, Josias Pérez ha escrit: 
> > Hola, 
> > 
> > Quisiera solicitar apoyo para un error que he tenido, y es en la fecha 
> > de contabilización de un movimiento. Estuve leyendo [1] sobre el caso 
> > pero en realidad no sé como hacer para actualizar el movimiento (¿existe 
> > algún wizard o algo por el estilo?). 
>
> La fecha de contabilizacion solo indica cuando se contabilizo el asiento 
> y es un campo de solo lectura gestionado por el sistema. 
>
> ¿Porqué necessitas modificarla? 
>
> Saludos, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Actualizar fecha de movimiento contable

2018-07-31 Por tema Josias Pérez
Hola, 

Quisiera solicitar apoyo para un error que he tenido, y es en la fecha de 
contabilización de un movimiento. Estuve leyendo [1] sobre el caso pero en 
realidad no sé como hacer para actualizar el movimiento (¿existe algún 
wizard o algo por el estilo?).

Desde ya gracias por la ayuda.  

[1] https://bugs.tryton.org/issue7276


[tryton-es] Registro de Gastos por Tercero

2018-06-20 Por tema Josias Pérez
Hola,

Estuve probando el módulo de contabilidad analítica porque tengo un caso en 
específico. Me gustaría llevar el control de gastos por terceros, similar 
al control que se tiene de cuentas por cobrar o por pagar, solamente que en 
una cuenta de gastos, en especial salarios.. 

Estuve revisando y solamente a las cuentas por cobrar y por pagar se les 
puede asignar un tercero, no así los gastos. 

Cualquier recomendación es bien recibida. 

Saludos cordiales. 


[tryton-es] Uso de contabilidad analítica

2018-05-24 Por tema Josias Pérez
Hola comunidad,

He estado trabajando con contabilidad analítica y funciona bastante bien 
para análisis financiero. De momento tengo una pregunta, cómo hacer para 
poder calcular una división entre dos cuentas y mostrar su resultado. 

Por ejemplo, tengo creada una cuenta para todos los ingresos y otra para 
los gastos y me gustaría saber la relación entre los mismos. 

Desde ya gracias por el apoyo. 


[tryton-es] Pagos parciales de facturas

2018-05-14 Por tema Josias Pérez
Hola, buenas tardes,

Quería consultar sobre un posible error al momento de realizar un pago 
parcial, en la versión 4.8.

Para reproducirlo se realiza lo siguiente: 
0. Tener los módulo de account_invoice y bank
1. Crear y confirmar una factura
2. Realizar el pago parcial de la misma
3. Al momento de guardar aparece el siguiente mensaje: Los valores de 
"Líneas de pago" no son válidos.

Se puede hacer la prueba en el servidor http://demo.tryton.org 

Gracias desde ya por el apoyo. 


[tryton-es] Re: Formato de Impresión de Factura

2018-04-04 Por tema Josias Pérez
Una solución que he encontrado es colocar la fuente del texto en color 
blanco, y entonces la impresora ya no lo imprime, y ajustar el resto del 
contenido al formato que ya tenga impreso. No es la mejor solución, pero me 
ha funcionado. Espero te ayude. 

El martes, 3 de abril de 2018, 9:33:30 (UTC-6), Fernando Sánchez escribió:
>
> Saludos a la comunidad
>
> Estoy buscando la manera de adaptar la impresión del formato de factura a 
> un formato pre-impreso, que debe imprimirse en una impresora matricial.
> He cuadrado los datos de cabecera y la impresión de las lineas de factura, 
> luego tengo un pequeño problemita al imprimir los totales.
>
> En tryton, el Sub-Total, Impuesto y Gran Total se imprimen a continuación 
> de la ultima linea de factura, en una posición dinámica dentro de la 
> pagina, dependiendo de cuantas lineas tenga la factura. 
> Dado que tenemos el formato pre-impreso, en este existe una casilla en 
> posición fija en la parte mas baja de la pagina para los totales y no veo 
> la manera de como encajar la impresión dentro de estas casillas.
> Si alguien pasó por este trance me gustaría saber como superó esta 
> situación. O si existe algún modulo para imprimir en modo texto en 
> impresora matricial local.
>
> Agradeceré las posibles respuestas.
>
> Fernando Sánchez
>


Re: [tryton-es] Manejo de Diario de Ingreso independientes e integrados.

2018-03-21 Por tema Josias Pérez
¿Hay algún review o blueprint para iniciar con el desarrollo de dicha 
funcionalidad, además de descrito en la página [1]?

Me gustaría iniciar con el desarrollo de dichos reportes consolidados. 

[1] https://discuss.tryton.org/t/consolidation-reports/297

El martes, 20 de marzo de 2018, 8:02:24 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 20/03/18 a les 14:54, Josias Pérez ha escrit: 
> > Exactamente, no acumula movimiento, solamente consolida las 
> > contabilidades de las empresas hijas.  
> Si pero no hay un reporte que te calcule el balance consolidado, por lo 
> que todos los valores seran zero. Se debe implementar lo que se ha 
> definido en este blueprint: 
>
> https://discuss.tryton.org/t/consolidation-reports/297 
> <https://www.google.com/url?q=https%3A%2F%2Fdiscuss.tryton.org%2Ft%2Fconsolidation-reports%2F297=D=1=AFQjCNGGhK9nhFg6pot79DHahAvyPbTntQ>
>  
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Manejo de Diario de Ingreso independientes e integrados.

2018-03-20 Por tema Josias Pérez
Exactamente, no acumula movimiento, solamente consolida las contabilidades 
de las empresas hijas. 

El martes, 20 de marzo de 2018, 7:51:58 (UTC-6), Gonzalo González Domínguez 
escribió:
>
> Lo único que la empresa padre (Empresa A) no tendría contabilidad no? Solo 
> sirve para agrupar las hijas, no acumula movimientos si no que equivoco ...
>
> El martes, 20 de marzo de 2018, 14:04:49 (UTC+1), Sergi Almacellas 
> Abellana escribió:
>>
>> El 20/03/18 a les 13:37, Josias Pérez ha escrit: 
>> > Hola comunidad, 
>> > 
>> > Tengo una consulta respecto al siguiente escenario: 
>> > 
>> > Empresa A 
>> > - Sub empresa A 
>> > - Sub empresa B 
>> > - Sub empresa C 
>> > 
>> > Cada empresa maneja su propia planilla de cuentas, aunque cada uno 
>> posee 
>> > el mismo modelo. He configurado cada una de manera independiente con 
>> sus 
>> > respectivos años fiscales y funciona muy bien en la númeración de 
>> > facturas y movimiento. 
>> > 
>> > Cuando una factura se genera, por defecto se le asigna un diario 
>> > Ingresos. ¿Es posible generar un diario para cada sub empresa? Si es 
>> > posible, ¿se puede tener la jerarquía padre / hijo dentro de los 
>> mismos? 
>>
>> No, los diarios son comunes para todas las empresas. 
>>
>> > Si no fuera posible, ¿cómo podría mantener las contabilidades 
>> > independientes entre cada sub empresa y tener un consolidado por 
>> Empresa 
>> > general. 
>>
>> Cuando realizas una apunte contable este va associado con la empresa, 
>> por lo que la contabilidad ya es independiente. 
>>
>> La generación de reports consolidados no està implementada todavia, 
>> aunque hay una idea de sobre como se podría hacer: 
>>
>> https://discuss.tryton.org/t/consolidation-reports/297 
>>
>> Un saludo, 
>>
>> -- 
>> Sergi Almacellas Abellana 
>> www.koolpi.com 
>> Twitter: @pokoli_srk 
>>
>

[tryton-es] Manejo de Diario de Ingreso independientes e integrados.

2018-03-20 Por tema Josias Pérez
Hola comunidad,

Tengo una consulta respecto al siguiente escenario:

Empresa A
- Sub empresa A
- Sub empresa B
- Sub empresa C

Cada empresa maneja su propia planilla de cuentas, aunque cada uno posee el 
mismo modelo. He configurado cada una de manera independiente con sus 
respectivos años fiscales y funciona muy bien en la númeración de facturas 
y movimiento.

Cuando una factura se genera, por defecto se le asigna un diario Ingresos. 
¿Es posible generar un diario para cada sub empresa? Si es posible, ¿se 
puede tener la jerarquía padre / hijo dentro de los mismos? Si no fuera 
posible, ¿cómo podría mantener las contabilidades independientes entre cada 
sub empresa y tener un consolidado por Empresa general.

He leído la documentación del módulo account[1] pero es poca la información 
disponible respecto a los mismos. 

Desde ya muy agradecido por al apoyo.

[1] http://doc.tryton.org/4.6/modules/account/doc/index.html


[tryton-es] Error 401 Unauthorized

2018-03-15 Por tema Josias Pérez
Hola comunidad,

He estado realizando algunas pruebas con la versión de escritorio 4.6.3 (lo 
he probado también en la 4.6.0, 4.6.1, 4.6.2) y es que cuando una sesión 
caduca me despliega los errores que adjunto en este mensaje. 

Traceback (most recent call last):
  File "tryton/gui/main.py", line 1085, in sig_close
  File "tryton/gui/main.py", line 927, in sig_logout
  File "tryton/rpc.py", line 98, in logout
  File "C:/msys32/mingw32/lib/python2.7/xmlrpclib.py", line 1243, in 
__call__
  File "tryton/jsonrpc.py", line 284, in __request
  File "C:/msys32/mingw32/lib/python2.7/xmlrpclib.py", line 1283, in request
  File "C:/msys32/mingw32/lib/python2.7/xmlrpclib.py", line 1331, in 
single_request
ProtocolError: 

Estuve leyendo [1] sobre este error pero no encuentro la forma de 
corregirlo o por donde empezar. 

Para conectarme a la instancia utilizo la IP y el puerto del servidor de 
tryton. 

Agradeceré cualquier ayuda. 

[1] http://www.checkupdown.com/status/E401_es.html


Re: [tryton-es] Búsqueda con signos especiales "/" "+"

2018-03-13 Por tema Josias Pérez
Gracias amigo,

Había modificado el método search_rec_name e imagino desactivo las 
funciones de búsquedas en caracteres especiales. Dejando el original 
funciona perfectamente. 

El martes, 13 de marzo de 2018, 5:41:27 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 12/03/18 a les 16:24, Josias Pérez ha escrit: 
> > Hola comunidad, 
> > 
> > He podido comprobar que tryton no busca registros que contienen signos 
> > especiales. Algunos de los productos que estoy trabajando requieren 
> > medidas especial " 1/3'' " y el sistema no los logra buscar.  
> > 
> > Hay alguna forma de modificar este comportamiento? 
>
> He creado un product con nombre "++" y otro con nombre "1/3". Utilizando 
> la busqueda los puedo encontrar sin problemas. 
>
> No se que es lo que quieres modificar ni lo que no te esta funcionando. 
>
> Un saludo, 
>
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Búsqueda con signos especiales "/" "+"

2018-03-12 Por tema Josias Pérez
Hola comunidad,

He podido comprobar que tryton no busca registros que contienen signos 
especiales. Algunos de los productos que estoy trabajando requieren medidas 
especial " 1/3'' " y el sistema no los logra buscar. 

Hay alguna forma de modificar este comportamiento? 

Desde ya muchas gracias. 


Re: [tryton-es] Stock para empresas con múltiples sucursales

2018-03-12 Por tema Josias Pérez
Hola Sergi,

El viernes, 9 de marzo de 2018, 10:52:21 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 23/02/18 a les 04:53, Josias Pérez ha escrit: 
> > Hola comunidad, 
>
> Hola Josias, 
>
> > 
> > Estoy trabajando en un proyecto que tiene 3 sucursales. Cada sucursal 
> > tiene 2 bodegas, uno para despacho inmediato y otra para almacenamiento. 
> > Las dos bodegas están ordenadas por "calles" y "avenidas" para la 
> > ubicación rápida de los productos, y quisiera saber cómo podría 
> > integrarlo en tryton, especialmente para el encargado de Logística . 
>
> Deberias crear un arbol de ubicaciones para representar tu estructura. 
> Por ejemplo: 
>
> - Sucursal: 
>   - Bodega 1: 
> - Calle 1 
>   - Avenida 1 
>   - AVenida 2 
> - Calle X 
>   - Bodega X 
>   . 
>
> Para las ubicaciones que sean solo para classificar y no guarden nada 
> (por ejemplo las bodegas y las calles) puedes utilizar el tipo de 
> ubicación vista. Para las demas debes utilizar el tipo de ubicación 
> almaceniamiento. 
>

En relación a esto, estuve tratando de agregar las bodegas a determinadas 
empresas. Pero creo que no es posible aún el soporte multi - empresa, más 
que todo en las comunicaciones EDI. Si hay algún caso abierto, me gustaría 
colaborar en integrar dichas funciones. 
 

>
> > 
> > Los usuarios-vendedores pueden verificar si tienen existencia de 
> > productos en ambas bodegas, pero no sé cómo puede ellos saber al momento 
> > de estar realizando la venta si tienen en inventario de despacho 
> > inmediato la cantidad requerida por el cliente, esto únicamente si la 
> > cantidad requerida fuera mayor a la solicitada, en caso contrario no. 
> > Esto se verifica por cada sucursal 
>

Cuando se realiza una venta, si hay un único almacén lo agrega de forma 
predefinida a la venta. Es posible definir un almacén por empresa y 
restringir el uso por usuario? 
 

> No entiendo lo que estas preguntando. 
>
> > 
> > En las sucursales hay 5 categorías de productos, y básicamente se venden 
> > los mismos productos, y cada sucursal se desea "desactivar" los 
> > productos que tienen inventario cero, o en dado caso ver el stock al 
> > momento de buscar el producto. 
>
> En la pantalla de venta, en la búsqueda de productos se muestra el stock 
> actual. 
>
> > 
> > Para mejorar el control de clientes se desea filtrar a determinado grupo 
> > de cliente por sucursal, y una búsqueda extendida para buscar en 
> general.  
> > 
> > También agradecería me ayudaran a ocultar el costo de compra para los 
> > usuarios-vendedores. 
>
> Puedes utilizar un módulo para eliminar el campo de esta venta. 
>

Si, lo he utilizado y funciona muy bien. Me gustaría preguntar como cambiar 
la notación de escritura de números. Por ejemplos, aunque tenga la moneda 
configurada a miles con "," ,decimales con "." y 2 decimales en el 
formulario despliega este formato 10.000, (miles con "." decimales "," 
y 4 decimales. 



> > 
> > Una última consulta es cómo registrar gastos diarios de asignado a un 
> > diario contable, y a la vez realizar un cierre diario de movimiento, 
> > tanto de ventas como de gastos y poder imprimirlo.  
> > 
>
> Puedes introducir los asientos manualmente y luego imprimir-los. Si eso 
> es demasiado compliado, puedes hacer un modelo para simplificar la 
> introducción de datos y que luego este te cree los asientos contables de 
> los gastos. 
>

Si, con esto lo tengo. Muchas gracias. 
 

>
> Un saludo, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Uso especial de filtros

2018-03-01 Por tema Josias Pérez
Hola amigos,

Quiero realizar una consulta bastante sencilla pero no he logrado como 
hacerla correctamente. 

Al abrir Contabilidad > Asientos > Asientos contables obtengo un listado de 
los movimientos de determinada fecha. Tengo configurado también 2 diarios, 
uno para Banco y otros para Efectivo. En el listado de asientos me 
despliega los movimientos de todos los diarios pero me gustaría únicamente 
desplegar los diarios de Banco y Efectivo. Por separado los puedo filtrar 
con Diario: Efectivo o Diario: Banco pero los dos juntos no. 

Agradeceré su apoyo desde ya! 


[tryton-es] Stock para empresas con múltiples sucursales

2018-02-22 Por tema Josias Pérez
Hola comunidad,

Estoy trabajando en un proyecto que tiene 3 sucursales. Cada sucursal tiene 
2 bodegas, uno para despacho inmediato y otra para almacenamiento. Las dos 
bodegas están ordenadas por "calles" y "avenidas" para la ubicación rápida 
de los productos, y quisiera saber cómo podría integrarlo en tryton, 
especialmente para el encargado de Logística .

Los usuarios-vendedores pueden verificar si tienen existencia de productos 
en ambas bodegas, pero no sé cómo puede ellos saber al momento de estar 
realizando la venta si tienen en inventario de despacho inmediato la 
cantidad requerida por el cliente, esto únicamente si la cantidad requerida 
fuera mayor a la solicitada, en caso contrario no. Esto se verifica por 
cada sucursal

En las sucursales hay 5 categorías de productos, y básicamente se venden 
los mismos productos, y cada sucursal se desea "desactivar" los productos 
que tienen inventario cero, o en dado caso ver el stock al momento de 
buscar el producto. 

Para mejorar el control de clientes se desea filtrar a determinado grupo de 
cliente por sucursal, y una búsqueda extendida para buscar en general. 

También agradecería me ayudaran a ocultar el costo de compra para los 
usuarios-vendedores.

Una última consulta es cómo registrar gastos diarios de asignado a un 
diario contable, y a la vez realizar un cierre diario de movimiento, tanto 
de ventas como de gastos y poder imprimirlo. 

Muy agradecido por el apoyo, 

Josías.


Re: [tryton-es] Subquery en python-sql

2018-02-06 Por tema Josias Pérez
La estructura es la siguiente: 

class Reporte(ModelView, ModelSQL):
'Reporte'
__name__ = 'disc.reporte'

fecha_inicio = fields.Date('Fecha inicio', 
required=True)
fecha_fin = fields.Date('Fecha fin', 
required=True)
lineas = fields.One2Many('disc.reporte.linea',
'reporte','Grupos',
)

class ReporteLinea(ModelView, ModelSQL):
'Reporte Linea'
__name__ = 'disc.reporte.linea'

reporte = fields.Many2One('disc.reporte',
'Reporte',required=True)
gp = fields.Many2One('disc.gp','Grupo', required=True)
cantidad = fields.Numeric('Cantidad', required=True)

class Gp(ModelView, ModelSQL):
'Grupo'
__name__ = 'disc.gp'

name = fields.Char('Grupo', required=True)

Básicamente se lleva un control de agregados por grupo, de acuerdo al 
reporte. Luego consolidamos de acuerdo a consultas en las diferentes tablas 
mediantes un LEFT JOIN o un INNER JOIN, con la ayuda de python-sql. 

El domingo, 4 de febrero de 2018, 13:16:53 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 02/02/18 a les 17:45, Josias Pérez ha escrit: 
> > *UndefinedError: None has no member named "rec_name"* 
> Claro, porqué si el valor esta vacio, no tiene ningún nombre del registro. 
>
> Me he mirado tus correos, y no veo que estes haciendo nada mal a nivel 
> de sintaxis. Seguramente es que la consulta no te esta devolviendo los 
> resultados como esperas. 
>
> Para ayudarte necesitariamos saber la estructura de las tablas. 
>
> Un saludo, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Re: tryton en vps

2018-02-06 Por tema Josias Pérez
Hola Cristian,

Pues en teoría Tryton debería funcionar sin problemas en un VPS, pero te 
recomiendo tener al menos una instancia Free Tier de Amazon para comenzar 
[1].

En cuanto a documentación para usuarios finales la mejor es la disponible 
en la página oficial [2], tutoriales y/o guías son muy pocas las 
existentes, al menos en español. 

Espero te sirva! 


[1] https://aws.amazon.com/es/free/
[2] http://doc.tryton.org/4.6/modules/index.html

El martes, 6 de febrero de 2018, 13:45:46 (UTC-6), cristian lopez lopez 
escribió:
>
> saludos muchachos  mi pregunta es la siguiente es factible montar tryton 
> en un vps  estoy recién entrando a este mundillo trytonesco me 
> encomendaron  un erp en mi trabajo  y por lo que he visto hasta el momento  
> este es el erp que estaba buscando  necesito también documentación no 
> técnica, me explico documentación para  la gente que va a interactuar con 
> el erp  (encargados de finanzas,adquisiciones etc ) saludos y espero  pasar 
> mucho tiempo aprendiendo de los mas experimentados 
>


Re: [tryton-es] Subquery en python-sql

2018-02-02 Por tema Josias Pérez


El viernes, 2 de febrero de 2018, 8:54:37 (UTC-6), Josias Pérez escribió:
>
> El código completo de método es el siguiente:
>
> gp = fields.Many2One('disc.gp',
> 'Grupo')
> distrito = fields.Many2One('disc.distrito',
> 'Distrito')
>
> @staticmethod
> def table_query():
> pool = Pool()
> context = Transaction().context
> Gp = pool.get('disc.gp')
> gp = Gp.__table__()
> Reporte = pool.get('disc.reporte')
> reporte = Reporte.__table__()
> ReporteLinea = pool.get('disc.reporte.linea')
> reporte_linea = ReporteLinea.__table__()
> 
> where = Literal(True)
> if context.get('fecha_inicio'):
> where &= reporte.fecha_inicio >= context['fecha_inicio']
> if context.get('fecha_fin'):
> where &= reporte.fecha_fin <= context['fecha_fin']
> if context.get('distrito'):
> where &= reporte.distrito <= context['distrito']
>
> subquery = (reporte_linea
> .join(reporte,
> condition=reporte.id == reporte_linea.reporte)
> .select(
> Max(reporte_linea.id * 1005).as_('id'),
> Max(reporte_linea.create_uid).as_('create_uid'),
> Max(reporte_linea.create_date).as_('create_date'),
> Max(reporte_linea.write_uid).as_('write_uid'),
> Max(reporte_linea.write_date).as_('write_date'),
> (reporte_linea.gp).as_('gp'),
> (reporte.distrito).as_('distrito'),
> where = where,
> group_by=(reporte_linea.gp,
> reporte.distrito), 
> order_by=(reporte.distrito),
> )
> )
> query = (gp
> .join(subquery,'LEFT',
> condition=gp.id == subquery.gp)
> .select(
> Max(gp.id * 1005).as_('id'),
> Max(gp.create_uid).as_('create_uid'),
> Max(gp.create_date).as_('create_date'),
> Max(gp.write_uid).as_('write_uid'),
> Max(gp.write_date).as_('write_date'),
> (gp.id).as_('gp'),
> (subquery.distrito).as_('distrito'),
> where= subquery.gp == None,
> group_by=(gp.id, subquery.distrito,),
> order_by=(subquery.distrito)
> )
> )
>
> #print "QUERY: " + str(query)
> return query
>
> Y la llamada la realizo de la siguiente forma: 
>
> @classmethod
> def _get_records(cls, ids, model, data):
> Reporte = Pool().get('disc.reporte.lider.cero.table')
>
> fecha_inicio = data['fecha_inicio']
> fecha_fin = data['fecha_fin']
> distrito = data['distrito']
>
> with Transaction().set_context(fecha_inicio=fecha_inicio,
> fecha_fin=fecha_fin, distrito=distrito):
> reports = Reporte.search(
> [],
> #[('distrito','=',distrito)],
> order=[('distrito', 'DESC')], 
> ) 
> #print "REPORTS: " + str(reports)
> 
> return reports
>
> Por alguna razón devuelve el campo 'distrito' vacío, tampoco puedo llamar 
> al campo gp.distrito.zona en el reporte.  
>

*UndefinedError: None has no member named "rec_name"*
 

>
> El viernes, 2 de febrero de 2018, 8:06:02 (UTC-6), Josias Pérez escribió:
>>
>>
>>
>> El viernes, 2 de febrero de 2018, 2:40:58 (UTC-6), Sergi Almacellas 
>> Abellana escribió:
>>>
>>> El 02/02/18 a les 07:56, Josias Pérez ha escrit: 
>>> > El problema es que ahora no puedo indexar dicha tabla en el método 
>>> .search() 
>>> > 
>>> > Reporte = Pool().get('disc.reporte.lider.cero.table') 
>>> > 
>>> > reports = Reporte.search( [('distrito','=',distrito)] ) 
>>> > 
>>>
>>> Esto lo deberias hacer sin problema. ¿Que error te da? 
>>>
>>
>> Si le mando el dominio de distrito, no me devuelve ningún registro. Hice 
>> algunas pruebas y encontré que el campo distrito llega vacío por alguna 
>> razón. Los resultados están correctos pero no llega el campo de distrito. 
>>
>>>
>>> > También en los reportes no puedo utilizar, como por ejemplo: 
>>> > gp.distrito.zona (en otros reportes funciona bien, pero no después de 
>>> la 
>>> > doble consulta). 
>>> > 
>>>
>>> Si el tipo del campo es Many2One no deberias tener problemas. 
>>>
>>>
>> El tipo es Many2One pero no puedo utilizar está notación en los reportes. 
>> Lo he utilizado en varios más y no he tenido ningún problema. 
>>
>>>
>>> -- 
>>> Sergi Almacellas Abellana 
>>> www.koolpi.com 
>>> Twitter: @pokoli_srk 
>>>
>>  
>


Re: [tryton-es] Subquery en python-sql

2018-02-02 Por tema Josias Pérez
El código completo de método es el siguiente:

gp = fields.Many2One('disc.gp',
'Grupo')
distrito = fields.Many2One('disc.distrito',
'Distrito')

@staticmethod
def table_query():
pool = Pool()
context = Transaction().context
Gp = pool.get('disc.gp')
gp = Gp.__table__()
Reporte = pool.get('disc.reporte')
reporte = Reporte.__table__()
ReporteLinea = pool.get('disc.reporte.linea')
reporte_linea = ReporteLinea.__table__()

where = Literal(True)
if context.get('fecha_inicio'):
where &= reporte.fecha_inicio >= context['fecha_inicio']
if context.get('fecha_fin'):
where &= reporte.fecha_fin <= context['fecha_fin']
if context.get('distrito'):
where &= reporte.distrito <= context['distrito']

subquery = (reporte_linea
.join(reporte,
condition=reporte.id == reporte_linea.reporte)
.select(
Max(reporte_linea.id * 1005).as_('id'),
Max(reporte_linea.create_uid).as_('create_uid'),
Max(reporte_linea.create_date).as_('create_date'),
Max(reporte_linea.write_uid).as_('write_uid'),
Max(reporte_linea.write_date).as_('write_date'),
(reporte_linea.gp).as_('gp'),
(reporte.distrito).as_('distrito'),
where = where,
group_by=(reporte_linea.gp,
reporte.distrito), 
order_by=(reporte.distrito),
)
)
query = (gp
.join(subquery,'LEFT',
condition=gp.id == subquery.gp)
.select(
Max(gp.id * 1005).as_('id'),
Max(gp.create_uid).as_('create_uid'),
Max(gp.create_date).as_('create_date'),
Max(gp.write_uid).as_('write_uid'),
Max(gp.write_date).as_('write_date'),
(gp.id).as_('gp'),
(subquery.distrito).as_('distrito'),
where= subquery.gp == None,
group_by=(gp.id, subquery.distrito,),
order_by=(subquery.distrito)
)
)

#print "QUERY: " + str(query)
return query

Y la llamada la realizo de la siguiente forma: 

@classmethod
def _get_records(cls, ids, model, data):
Reporte = Pool().get('disc.reporte.lider.cero.table')

fecha_inicio = data['fecha_inicio']
fecha_fin = data['fecha_fin']
distrito = data['distrito']

with Transaction().set_context(fecha_inicio=fecha_inicio,
fecha_fin=fecha_fin, distrito=distrito):
reports = Reporte.search(
[],
#[('distrito','=',distrito)],
order=[('distrito', 'DESC')], 
) 
#print "REPORTS: " + str(reports)

return reports

Por alguna razón devuelve el campo 'distrito' vacío, tampoco puedo llamar 
al campo gp.distrito.zona en el reporte.  

El viernes, 2 de febrero de 2018, 8:06:02 (UTC-6), Josias Pérez escribió:
>
>
>
> El viernes, 2 de febrero de 2018, 2:40:58 (UTC-6), Sergi Almacellas 
> Abellana escribió:
>>
>> El 02/02/18 a les 07:56, Josias Pérez ha escrit: 
>> > El problema es que ahora no puedo indexar dicha tabla en el método 
>> .search() 
>> > 
>> > Reporte = Pool().get('disc.reporte.lider.cero.table') 
>> > 
>> > reports = Reporte.search( [('distrito','=',distrito)] ) 
>> > 
>>
>> Esto lo deberias hacer sin problema. ¿Que error te da? 
>>
>
> Si le mando el dominio de distrito, no me devuelve ningún registro. Hice 
> algunas pruebas y encontré que el campo distrito llega vacío por alguna 
> razón. Los resultados están correctos pero no llega el campo de distrito. 
>
>>
>> > También en los reportes no puedo utilizar, como por ejemplo: 
>> > gp.distrito.zona (en otros reportes funciona bien, pero no después de 
>> la 
>> > doble consulta). 
>> > 
>>
>> Si el tipo del campo es Many2One no deberias tener problemas. 
>>
>>
> El tipo es Many2One pero no puedo utilizar está notación en los reportes. 
> Lo he utilizado en varios más y no he tenido ningún problema. 
>
>>
>> -- 
>> Sergi Almacellas Abellana 
>> www.koolpi.com 
>> Twitter: @pokoli_srk 
>>
>  


Re: [tryton-es] Subquery en python-sql

2018-02-02 Por tema Josias Pérez


El viernes, 2 de febrero de 2018, 2:40:58 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 02/02/18 a les 07:56, Josias Pérez ha escrit: 
> > El problema es que ahora no puedo indexar dicha tabla en el método 
> .search() 
> > 
> > Reporte = Pool().get('disc.reporte.lider.cero.table') 
> > 
> > reports = Reporte.search( [('distrito','=',distrito)] ) 
> > 
>
> Esto lo deberias hacer sin problema. ¿Que error te da? 
>

Si le mando el dominio de distrito, no me devuelve ningún registro. Hice 
algunas pruebas y encontré que el campo distrito llega vacío por alguna 
razón. Los resultados están correctos pero no llega el campo de distrito. 

>
> > También en los reportes no puedo utilizar, como por ejemplo: 
> > gp.distrito.zona (en otros reportes funciona bien, pero no después de la 
> > doble consulta). 
> > 
>
> Si el tipo del campo es Many2One no deberias tener problemas. 
>
>
El tipo es Many2One pero no puedo utilizar está notación en los reportes. 
Lo he utilizado en varios más y no he tenido ningún problema. 

>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Subquery en python-sql

2018-02-01 Por tema Josias Pérez
Gracias por las recomendaciones, quedó en está forma:

subquery = (reporte_linea
.join(reporte,
condition=reporte.id == reporte_linea.reporte)
.select(
Max(reporte_linea.id * 1005).as_('id'),
Max(reporte_linea.create_uid).as_('create_uid'),
Max(reporte_linea.create_date).as_('create_date'),
Max(reporte_linea.write_uid).as_('write_uid'),
Max(reporte_linea.write_date).as_('write_date'),
(reporte_linea.gp).as_('gp'),
(reporte.distrito).as_('distrito'),
where = where,
group_by=(reporte_linea.gp,
reporte.distrito), 
order_by=(reporte.distrito),
)
)
query = (gp
.join(subquery,'LEFT',
condition=gp.id == subquery.gp)
.select(
Max(gp.id * 1005).as_('id'),
Max(gp.create_uid).as_('create_uid'),
Max(gp.create_date).as_('create_date'),
Max(gp.write_uid).as_('write_uid'),
Max(gp.write_date).as_('write_date'),
(gp.id).as_('gp'),
(subquery.distrito).as_('distrito'),
where= subquery.gp == None,
group_by=(gp.id, subquery.distrito,),
order_by=(subquery.distrito)
)
)

El problema es que ahora no puedo indexar dicha tabla en el método .search()

Reporte = Pool().get('disc.reporte.lider.cero.table')

reports = Reporte.search( [('distrito','=',distrito)] )

También en los reportes no puedo utilizar, como por ejemplo: 
gp.distrito.zona (en otros reportes funciona bien, pero no después de la 
doble consulta).

Hay alguna recomendación para trabajar con este tipo de datos? 

El jueves, 1 de febrero de 2018, 6:29:02 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 01/02/18 a les 04:57, Josias Pérez ha escrit: 
> > Hola,  
> > 
> > Tengo el siguiente método de table_query y las siguientes tablas:  
> > 
> > class Gp: 
> >  name  
> > 
> > class Reporte 
> >  fecha_inicio 
> >  fecha_fin 
> >  distrito 
> > 
> > class ReporteLine 
> >  reporte many2one Reporte 
> >  gpmany2one Gp 
> >  cantidad  
> > 
> > Deseo encontrar los grupos que no generan reportes, es decir sean NULL o 
> > cero. Si existe un registro en la clase ReporteLine se puede sumar 
> > (aunque sea 0), pero si no existe un registro no sé como obtener el 
> > nombre del grupo (Gp) que no está registrado en ReporteLine.  
> > 
> > Tengo el siguiente table_query pero devuelve un valor de error al 
> > realizar la consulta y devuelve el siguiente error  
> > ProgrammingError: syntax error at or near ")" 
>
> Por el error parece que te falta/sobra algun parentesis. 
>
> De todos modos, si nos pones la traza completa mejor. 
> > 
> > Cualquier comentario será de mucha ayuda.  
> > 
> > def table_query(): 
> > pool = Pool() 
> > context = Transaction().context 
> > Gp = pool.get('disc.gp') 
> > gp = Gp.__table__() 
> > Reporte = pool.get('disc.reporte') 
> > reporte = Reporte.__table__() 
> > ReporteLinea = pool.get('disc.reporte.linea') 
> > reporte_linea = ReporteLinea.__table__() 
> >  
> > where = Literal(True) 
> > if Transaction().context.get('fecha_inicio'): 
> > where &= reporte.fecha_inicio >= 
> > Transaction().context['fecha_inicio'] 
> > if Transaction().context.get('fecha_fin'): 
> > where &= reporte.fecha_fin <= Transaction().context['fecha_fin'] 
> >  
> > where &= gp.id == None 
>
> Una sugerencia: En vez de instanciar el context varias veces es mejor 
> hacer: 
>
> context = Transaction().context 
>
> y a partir d'aqui context.get('fecha_inicio') 
>
> Queda más limpio. 
>
> > 
> > query1 = reporte.join(reporte_linea, 
> > condition=reporte_linea.reporte == reporte.id).select( 
> > Max(reporte_linea.id * 1000).as_('id'), 
> > Max(reporte.create_uid).as_('create_uid'), 
> > Max(reporte.create_date).as_('create_date'), 
> > Max(reporte.write_uid).as_('write_uid'), 
> > Max(reporte.write_date).as_('write_date'), 
> > Max(reporte.distrito).as_('distrito'), 
> > (reporte_linea.gp).as_('gp'), 
> > Sum(reporte_linea.cantidad).as_('total'), 
> > group_by=(reporte_linea.gp), 
> >

[tryton-es] Subquery en python-sql

2018-01-31 Por tema Josias Pérez
Hola, 

Tengo el siguiente método de table_query y las siguientes tablas: 

class Gp:
 name 

class Reporte
 fecha_inicio
 fecha_fin
 distrito

class ReporteLine
 reporte many2one Reporte
 gpmany2one Gp
 cantidad 

Deseo encontrar los grupos que no generan reportes, es decir sean NULL o 
cero. Si existe un registro en la clase ReporteLine se puede sumar (aunque 
sea 0), pero si no existe un registro no sé como obtener el nombre del 
grupo (Gp) que no está registrado en ReporteLine. 

Tengo el siguiente table_query pero devuelve un valor de error al realizar 
la consulta y devuelve el siguiente error 
ProgrammingError: syntax error at or near ")"

Cualquier comentario será de mucha ayuda. 

def table_query():
pool = Pool()
context = Transaction().context
Gp = pool.get('disc.gp')
gp = Gp.__table__()
Reporte = pool.get('disc.reporte')
reporte = Reporte.__table__()
ReporteLinea = pool.get('disc.reporte.linea')
reporte_linea = ReporteLinea.__table__()

where = Literal(True)
if Transaction().context.get('fecha_inicio'):
where &= reporte.fecha_inicio >= 
Transaction().context['fecha_inicio']
if Transaction().context.get('fecha_fin'):
where &= reporte.fecha_fin <= Transaction().context['fecha_fin']

where &= gp.id == None

query1 = reporte.join(reporte_linea,
condition=reporte_linea.reporte == reporte.id).select(
Max(reporte_linea.id * 1000).as_('id'),
Max(reporte.create_uid).as_('create_uid'),
Max(reporte.create_date).as_('create_date'),
Max(reporte.write_uid).as_('write_uid'),
Max(reporte.write_date).as_('write_date'),
Max(reporte.distrito).as_('distrito'),
(reporte_linea.gp).as_('gp'),
Sum(reporte_linea.cantidad).as_('total'),
group_by=(reporte_linea.gp),
)

query2 = gp.join(query1,'LEFT').select(
Max(gp.id * 1001).as_('id'),
Max(gp.create_uid).as_('create_uid'),
Max(gp.create_date).as_('create_date'),
Max(gp.write_uid).as_('write_uid'),
Max(gp.write_date).as_('write_date'),
Max(query1.distrito).as_('distrito'),
(reporte_linea.gp).as_('gp'),
where = where,
group_by=(query1.gp),
)


[tryton-es] Use of TRYTOND_DATABASE_NAMES in uWSGI

2018-01-28 Por tema Josias Pérez
Hi, I have the following config file for a uWSGI server. All works fine, 
but all the database are listed, is there a way to show only 1 database? 

[uwsgi]
http-socket=0.0.0.0:8000
virtualenv = /opt/cr
module=trytond.application:app
env = TRYTOND_CONFIG=/opt/cr/tr.conf
env = TRYTOND_LOGGING_CONFIG=/opt/cr/log.conf
env = TRYTOND_DATABASE_NAMES=cr
check-static = /opt/cr/saocr
uid = www-data
gid = www-data

I was reading this docs[1] but I dont know if I'm doing something bad. 

[1] 
http://doc.tryton.org/4.6/trytond/doc/topics/start_server.html#topics-start-server

Thanks in advance! 


Re: [tryton-es] Cambio de la palabra "Albaran"

2018-01-22 Por tema Josias Pérez
Puedes utilizar un módulo adicional para sobreescribir la traducción, sin 
cambiar la original. 

http://doc.tryton.org/4.6/trytond/doc/topics/translation.html#override-translations

El lunes, 22 de enero de 2018, 11:02:00 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 22/01/18 a les 17:56, Oscar Alvarez ha escrit: 
> > Buenas 
> > 
> > 
> > Queria saber que piensan si para la proxima traduccion de "es" respecto 
> > a los modulos de inventarios usamos a cambio de la palabra "Albaran" que 
> > es desconocida en gran parte de latinoamerica, usamos una palabra más 
> > universal: 
> > 
> > Envio 
> > 
> > http://www.wordreference.com/es/translation.asp?tranword=shipment 
>
> ¿Que palabras utilizáis en latino-america? 
>
> A parte de envío me he encontrado con genete que le llama "Remito". 
> ¿Puede ser? 
>
> Yo creo que lo mejor es personalizar esta traducción para 
> latino-america, ya que aquí en españa el uso de Albaran es bastante 
> extendido. 
>
> Un saludo, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Enviar datos desde flask_tryton

2018-01-19 Por tema Josias Pérez
Estoy trabajando con FlaskForm

@app.route('/enviar', methods=['GET', 'POST'])
@tryton.transaction(readonly=False)
def index():
form = LoginForm() 
firstname = form.firstname.data
email = form.email.data 
phone = form.phone.data
city = form.city.data
if form.validate_on_submit():
party1, = Party.create([{
'name': firstname,
}])
ContactMechanism.create([{
'party': party1.id,
'type': 'email',
'value': email,
}])[0]
ContactMechanism.create([{
'party': party1.id,
'type': 'phone',
'value': phone,
}])[0]
Address.create([{
'party': party1.id,
'city': city,
}])

return redirect('/bienvenido')
return render_template('enviar.html', form=form) 

¿Podrías ayudar con alguna recomendación para proteger el envío masivo de 
datos? 

El martes, 16 de enero de 2018, 15:56:53 (UTC-6), raimonesteve escribió:
>
> hola,
>
> 2018-01-16 15:41 GMT+01:00 Josias Pérez <jep...@gmail.com >:
>
>> Con esto ha funcionado muy bien, gracias. No es necesario usar POST ni 
>> GET excepto si utilizo formularios. Gracias desde ya. 
>>
>
> Ten en cuenta en un sistema de producción puede ser una inyección de datos 
> masivos si no lo controlas permitiendo escritura via GET.
>
> Atentamente,
>


[tryton-es] Atributos no actualizados on_change cuando se es invisible

2018-01-19 Por tema Josias Pérez
Hola amigos,

Estoy trabajando en un módulo pero me encuentro con un comportamiento que 
no se si es el esperado de tryton. 

@fields.depends('party','address','payment_term')
def on_change_party(self):
self.invoice_address = None
if self.party:
self.address = self.party.address_get(type='invoice')
self.payment_term = self.party.customer_payment_term

Cuando el elemento address o payment_term se encuentran invisible no se 
actualizan. ¿Hay alguna línea de código que me falte? 

A su vez necesito modificar atributos de un campo (hacerlo required=True) 
desde el mismo módulo, pero no sé cómo modificar solo los atributos. 

Desde ya, gracias por su apoyo.


Re: [tryton-es] Enviar datos desde flask_tryton

2018-01-16 Por tema Josias Pérez
Con esto ha funcionado muy bien, gracias. No es necesario usar POST ni GET 
excepto si utilizo formularios. Gracias desde ya. 

El martes, 16 de enero de 2018, 2:28:27 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 16/01/18 a les 07:11, Raimon Esteve ha escrit: 
> > 
> > 
> > El dia 16 gen. 2018 1:51 a. m., "Josias Pérez" <jep...@gmail.com 
>  
> > <mailto:jep...@gmail.com >> va escriure: 
> > 
> > Le he agregado la siguiente línea a la ruta  
> > @app.route('/add', methods=['GET', 'POST','PUT']) 
> > 
> > Pero sigue desplegando la siguiente salida en el log  
> > 
> > uwsgi[7071]: File 
> > 
> "/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
> > line 263, in execute 
> > uwsgi[7071]: self._pq_execute(self._query, conn._async) 
> > uwsgi[7071]: File 
> > 
> "/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
> > line 696, in _pq_execute 
> > uwsgi[7071]: self._pq_fetch() 
> > uwsgi[7071]: File 
> > 
> "/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
> > line 757, in _pq_fetch 
> > uwsgi[7071]: raise self._conn._create_exception(cursor=self) 
> > uwsgi[7071]: InternalError: cannot execute nextval() in a read-only 
> > transaction 
> > 
> > 
> > La llamada la realitzas mediatea get, no post o put. Usa un formulario 
> > por ejemplo.  
> De hecho no es necessario hacer un post o un put. El problema biene dado 
> por que la transacción es de solo lectura, lo puedes modificar con el 
> primer parametro del decorador transaction: 
>
> http://hg.b2ck.com/flask-tryton/file/4477c66f0965/flask_tryton.py#l69 
>
> Por ejemplo usando: 
>
> @tryton.transaction(readonly=False) 
>
> Un saludo, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Enviar datos desde flask_tryton

2018-01-15 Por tema Josias Pérez
Le he agregado la siguiente línea a la ruta 
@app.route('/add', methods=['GET', 'POST','PUT'])

Pero sigue desplegando la siguiente salida en el log 

uwsgi[7071]: File 
"/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
line 263, in execute
uwsgi[7071]: self._pq_execute(self._query, conn._async)
uwsgi[7071]: File 
"/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
line 696, in _pq_execute
uwsgi[7071]: self._pq_fetch()
uwsgi[7071]: File 
"/opt/cr/local/lib/python2.7/site-packages/psycopg2cffi/_impl/cursor.py", 
line 757, in _pq_fetch
uwsgi[7071]: raise self._conn._create_exception(cursor=self)
uwsgi[7071]: InternalError: cannot execute nextval() in a read-only 
transaction

Creo que es un problema con permisos dentro de tryton, pero no sé como 
otorgarle los mismos. 

El lunes, 15 de enero de 2018, 17:03:09 (UTC-6), raimonesteve escribió:
>
>
>
> 2018-01-15 22:11 GMT+01:00 Josias Pérez <jep...@gmail.com >:
>
>> Hola amigos,
>>
>> Estoy trabajando en una app desde flask para enviar datos a tryton como 
>> backend. 
>>
>> Tengo el siguiente código: 
>>
>> from flask import render_template, flash, redirect, url_for
>> from app import app
>> from app import tryton 
>>
>> User = tryton.pool.get('res.user')
>> Party = tryton.pool.get('party.party')
>>
>> @tryton.default_context
>> def default_context():
>> return User.get_preferences(context_only=True)
>>
>> @app.route('/admin')
>> @tryton.transaction()
>> def hello():
>> user, = User.search([('login', '=', 'admin')])
>> return '%s, Hello World!' % user.name
>>
>> @app.route('/add')
>> @tryton.transaction()
>> def add():
>> party1, = Party.create([{
>> 'name': 'Party 1',
>> }])
>> return "Done"
>> #InternalError: cannot execute nextval() in a read-only transaction
>>
>> La ruta de /admin funciona bien, y devuelve el valor esperado, pero el 
>> ruta de add me devuelve InternalError: cannot execute nextval() in a 
>> read-only transaction. 
>>
>
>> ¿Cuál sería la forma correcta de enviar datos a tryton desde una 
>> aplicación externa en flask?
>>
>
> si usas el GET, la transación es sólo lectura.
> si deseas agregar datos, debes hacer un POST o PUT.
>
> http://flask.pocoo.org/docs/0.12/quickstart/
>  
>
>> Gracias desde ya 
>>
>
>
>

[tryton-es] Enviar datos desde flask_tryton

2018-01-15 Por tema Josias Pérez
Hola amigos,

Estoy trabajando en una app desde flask para enviar datos a tryton como 
backend. 

Tengo el siguiente código: 

from flask import render_template, flash, redirect, url_for
from app import app
from app import tryton 

User = tryton.pool.get('res.user')
Party = tryton.pool.get('party.party')

@tryton.default_context
def default_context():
return User.get_preferences(context_only=True)

@app.route('/admin')
@tryton.transaction()
def hello():
user, = User.search([('login', '=', 'admin')])
return '%s, Hello World!' % user.name

@app.route('/add')
@tryton.transaction()
def add():
party1, = Party.create([{
'name': 'Party 1',
}])
return "Done"
#InternalError: cannot execute nextval() in a read-only transaction

La ruta de /admin funciona bien, y devuelve el valor esperado, pero el ruta 
de add me devuelve InternalError: cannot execute nextval() in a read-only 
transaction. 

¿Cuál sería la forma correcta de enviar datos a tryton desde una aplicación 
externa en flask?

Gracias desde ya 


[tryton-es] País predeterminado

2018-01-10 Por tema Josias Pérez
Hola amigos,

Quisiera hacer una consulta que espero sea sencilla de resolver. Al momento 
de crear un tercero y registrar la dirección es necesario buscar el país, y 
luego que cargue las subdivisiones. 

¿Hay alguna forma de agregar un default_country?

Desde ya gracias por la ayuda!


[tryton-es] Imprimir factura después de pagar

2018-01-07 Por tema Josias Pérez
Buenas tardes, 

Me gustaría saber si existe una forma de imprimir una factura después que 
está se ha pagado, no importando si el monto es total o no. 

Se que debo modificar el workflow pero desconozco como modificiarlo en el 
módulo account_invoice. 

Agradeceré su ayuda en este tema. 


[tryton-es] Proteus con SQL Server

2018-01-04 Por tema Josias Pérez
Hola, quería saber si es posible utilizar proteus con SQL Server. 

La situación es la siguiente: 

Tengo un dispositivo de reconocimiento de huellas integrado a un software 
con SQL Server y me han solicitado que en vez de usar el software del 
dispositivo utilizar Tryton con el módulo Partes de Trabajo.

El software almaneca la información en SQL Server entonces estaba pensando 
la posibilidad de crear un cron que ejecute consultas en SQL y las envíe a 
la tryton. 

¿Es posible realizarlo o debo buscar otras opciones además de proteus? 

Gracias por la ayuda! 


[tryton-es] Campos dinámicos almacenados en base de datos

2018-01-02 Por tema Josias Pérez
Buen día y feliz año compañeros,

Deseo consultar si alguien ha trabajado con campos dinámicos en tryton? 
Estos debieran definirse en una base de datos y luego poder ser desplegados 
sin necesidad de tener que definir el modelo y/o la vista. 

Alguna información sobre este tema? 

Desde ya muchas gracias!


Re: [tryton-es] Cron desde uwsgi

2017-12-21 Por tema Josias Pérez
Estoy corriendo tryton desde uwsgi no desde trytond, por esa razón no puedo 
usar la opción --cron

[tryton-es] Cron desde uwsgi

2017-12-21 Por tema Josias Pérez
Hola amigos, 

Estoy tratando de hacer correr el servicio trytond-cron desde uwsgi.

Tengo la siguiente configuración

[uwsgi]
http-socket=0.0.0.0:8001
virtualenv = /opt/cr
module=trytond.admin:admin
env = TRYTOND_CONFIG=/opt/cr/tr.conf

Pero no realiza las acciones programas. Desde ya cualquier ayuda será 
bienvenida. 


Re: [tryton-es] Error al inicializar base de datos en trytond 4.6

2017-11-30 Por tema Josias Pérez
Funcionó perfectamente. Gracias. 

El jueves, 30 de noviembre de 2017, 0:59:35 (UTC-6), raimonesteve escribió:
>
>
>
> El dia 29 nov. 2017 11:56 p. m., "Josias Pérez" <jep...@gmail.com 
> > va escriure:
>
> Buenas tardes amigos,
>
> Actualicé a la versión de tryton 4.6 esta semana, pero al actualizar la 
> base de datos recibo el siguiente mensaje.
>
> Para reproducir el error se hace lo siguiente. 
>
> 1. Crear un virtualenv vacío.
> 2. Activar el virtualenv 
> 3. Mediante pip instalar trytond==4.6.0 
> 4. Instalar con pip psycopg2
> 5. Al ejecutar trytond -c /config.conf -v funciona bien
> 6. Ejecutar trytond-admin -c /config.conf -v -u all -d db despliega el 
> error. 
>
>
> trytond-admin -c /config.conf -v --all -d db
>
>
> Agradecerá la ayuda y/o documentación para correcta instalación. 
>
> Esta la guía que utilicé para instalación
> http://doc.tryton.org/4.6/trytond/doc/topics/install.html#topics-install
>
>
>
> http://doc.tryton.org/4.6/trytond/doc/topics/setup_database.html#update-a-database
>
>
>
> Saludos! 
>
>
>

[tryton-es] Error al inicializar base de datos en trytond 4.6

2017-11-29 Por tema Josias Pérez
Buenas tardes amigos,

Actualicé a la versión de tryton 4.6 esta semana, pero al actualizar la 
base de datos recibo el siguiente mensaje.

Para reproducir el error se hace lo siguiente. 

1. Crear un virtualenv vacío.
2. Activar el virtualenv 
3. Mediante pip instalar trytond==4.6.0 
4. Instalar con pip psycopg2
5. Al ejecutar trytond -c /config.conf -v funciona bien
6. Ejecutar trytond-admin -c /config.conf -v -u all -d db despliega el 
error. 

Agradecerá la ayuda y/o documentación para correcta instalación. 

Esta la guía que utilicé para instalación
http://doc.tryton.org/4.6/trytond/doc/topics/install.html#topics-install

Saludos! 


Re: [tryton-es] ¿Cómo se configura uWSGI para poder acceder mediante el cliente web SAO?

2017-10-22 Por tema Josias Pérez
Tengo el mismo problema, algún consejo de cómo poder solucionarlo? 

El lunes, 19 de diciembre de 2016, 8:36:14 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 19/12/16 a les 15:27, Fabyc ha escrit: 
> > On Wednesday, December 14, 2016 at 7:08:24 AM UTC-5, Sergi Almacellas 
> > Abellana wrote: 
> > 
> > El 12/12/16 a les 14:53, Fabián ha escrit: 
> > > 
> > > 2016-12-12 4:43 GMT-05:00 Sergi Almacellas Abellana 
> >  > > >: 
> > > 
> > > El 11/12/16 a les 21:07, Fabyc ha escrit: 
> > > 
> > > Una vez agregada la configuración indicada, al momento de 
> > cargar 
> > > el sitio, 
> > > en el inicio de sesión no aparece el campo para poner el 
> > nombre 
> > > de la base 
> > > de datos. Sólo sale la etiqueta. Los campos para el nombre 
> de 
> > > usuario y la 
> > > contraseña si aparecen bien. Cuando inicio con el propio 
> > comando 
> > > de trytond 
> > > el cual utiliza werkzeug, ahí si sale bien todo sin ningún 
> > problema. 
> > > 
> > > Esto debe ser porqué al ejecutar el uwsgi no esta cogiendo el 
> > > fichero de configuración correcto, por lo que no se puede 
> > conectar a 
> > > la base de datos. 
> > > 
> > > ¿Cómo especificas el fichero de configuración al uWSIG? 
> > > 
> > > 
> > > Lo especifico con la variable de ambiente "env", de la siguiente 
> > manera: 
> > > 
> > > env = TRYTOND_CONFIG=/ruta/a/archivodeconf/tryton/tryton.conf 
> > > 
> > Esta es la opción adecuada. 
> > 
> > Puede ser que el usuario con el que ejecutas el uwsgi no tenga 
> permisos 
> > para leer el fichero? El servidor descarta silenciosamente los 
> ficheros 
> > que no existen o que no tiene permisos para leer. 
> > 
> > 
> > El usuario que ejecuta uwsgi es el mismo que es propietario de la 
> > instancia Tryton. 
> > 
> > El que es diferente es el usuario propietario de los archivos Nginx. 
> Entonces lo único que se me ocurre es que nginx no se pueda conectar con 
> el servidor uwsgi, por lo que no pueda obtener el listado de bases de 
> datos ( y consequentemente lo muestra en blanco). 
>
> Saludos, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Tryton bajo apache y como servicio

2017-10-22 Por tema Josias Pérez
Después de varios días de prueba opté por nginx, en teoría debiera ser más 
sencillo. 

Utilice la siguiente configuración en el default de nginx
server {
listen 8000;# default_server;

root /var/www/html/sao;
index index.html index.htm index.nginx-debian.html;

# Make site accessible from http://localhost/
server_name tryton.dominio.net;

client_max_body_size 50M;

location / {

include uwsgi_params;
 if ($request_method = POST) {
  # no estoy seguro de que va aqui
 uwsgi_pass 127.0.0.1:8988;
 break;
 }
 try_files $uri $uri/ =404;
}
}

El archivo wsgi es el siguiente 
activate_this = '/opt/tr/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
env = TRYTOND_CONFIG=/etc/tryton.conf

from trytond.application import app as application

import sys
sys.path.insert(0,'/var/www/html/sao/')

Luego de iniciar el servidor solo logro desplegar el siguiente mensaje:  

<https://lh3.googleusercontent.com/-5fS9w-s6McY/We001F8D6qI/xCo/5QD9E6Bs-40xRKgguLqRSxP4HQ5kGVczgCLcBGAs/s1600/TRYTON-22-10-17.png>
Agradeceré su apoyo. 

El domingo, 22 de octubre de 2017, 10:46:38 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
>
>
> On 21 d’octubre de 2017 0.19.18 CEST, "Josias Pérez" <jep...@gmail.com 
> > wrote: 
> >En donde puedo asignar la configuración del servidor tryton? El archivo 
> > 
> >.conf? 
>
> Si utilizas uwsgi puedes establecer la variable de entorno TRYTOND_CONFIG 
>  con la ruta al fichero de configuracion de tryton. 
>   
>  Un saludo, 
>
> -- 
> Enviado desde mi dispositivo Android con K-9 Mail. Por favor, disculpa mi 
> brevedad. 
>


Re: [tryton-es] Tryton bajo apache y como servicio

2017-10-20 Por tema Josias Pérez
En donde puedo asignar la configuración del servidor tryton? El archivo 
.conf? 

El jueves, 19 de octubre de 2017, 1:22:10 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 19/10/17 a les 04:28, Josias Pérez ha escrit: 
> > Hola amigos, buenas noches. 
> > 
> > Tengo una consulta. Actualmente mi servidor de tryton lo ejecuto con 
> > está instrucción: 
> > 
> > $ cd /opt/tr && source bin/activate && trytond -c /etc/t44.conf -d 
> > database -v 
> > 
> > Me gustaría ver la forma de generar un servicio y que se active 
> > automáticamente en caso el servidor se reinicie. 
> > 
> > Actualmente desarrollo en sao y la ubicación es la siguiente bajo ubuntu 
> > /var/www/html/sao 
> > 
> > Si abrila la aplicación desde la IP x.x.x.x:8000 el servidor se ejecuta 
> > correctamente, pero ahora me gustaría integrarlo a un dominio 
> > tryton.midominio.com. Manejo todos los dominios bajo apache, pero no sé 
> > donde puedo conseguir documentación para lograr este objetivo. 
> > 
> > Desde ya muchas gracias por su apoyo. 
>
> Puedes seguir esta guia de flask para desplegar aplicaciones wsgi bajo 
> apache: 
>
> http://flask.pocoo.org/docs/0.12/deploying/mod_wsgi/ 
>
> Solo tienes que importar la siguiente aplicación en tu fichero uwsgi 
>
> from trytond.application import app as application 
>
> Un saludo, 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Tryton bajo apache y como servicio

2017-10-18 Por tema Josias Pérez
Hola amigos, buenas noches.

Tengo una consulta. Actualmente mi servidor de tryton lo ejecuto con está 
instrucción:

$ cd /opt/tr && source bin/activate && trytond -c /etc/t44.conf -d database 
-v

Me gustaría ver la forma de generar un servicio y que se active 
automáticamente en caso el servidor se reinicie. 

Actualmente desarrollo en sao y la ubicación es la siguiente bajo ubuntu
/var/www/html/sao

Si abrila la aplicación desde la IP x.x.x.x:8000 el servidor se ejecuta 
correctamente, pero ahora me gustaría integrarlo a un dominio 
tryton.midominio.com. Manejo todos los dominios bajo apache, pero no sé 
donde puedo conseguir documentación para lograr este objetivo. 

Desde ya muchas gracias por su apoyo. 





Re: [tryton-es] Agrupación de registros

2017-10-10 Por tema Josias Pérez
Funciona perfecto, muchas gracias!

El lunes, 9 de octubre de 2017, 1:24:56 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 08/10/17 a les 20:46, Josias Pérez ha escrit: 
> > Hola, buen día. 
>
> Hola, 
> > 
> > Me gustaría saber la mejor manera de agrupar registros para un informe. 
> > 
> > Manejamos la siguiente jerarquía de información, 
> > 
> > Zona 
> > -- Distrito 
> > 
> > Con reportes por semana y por mes. 
> > 
> > Estoy sobreescribiendo el método search con context_model para realizar 
> > la consulta y funciona bien. 
> > 
> http://doc.tryton.org/4.4/trytond/doc/ref/models/models.html?highlight=search#trytond.model.ModelStorage.search
>  
> > <
> http://doc.tryton.org/4.4/trytond/doc/ref/models/models.html?highlight=search#trytond.model.ModelStorage.search>
>  
>
> > 
>
> Aunque te funcione, yo creo que lo mejor es crear modelos nuevos que 
> definan el método table_query [1] para hacer la consulta directa a la 
> base de datos. En esa consulta, puedes utilizar la clausula group_by 
> para agrupar con los criterios que quieras. 
>
> En el módulo de timesheet[2] tienes varios ejemplos de cómo hacer 
> reportes similares a los que estas buscando. 
>
> Un saludo, 
>
>
> [1] 
>
> http://doc.tryton.org/4.4/trytond/doc/ref/models/models.html?highlight=table_query#trytond.model.ModelSQL.table_query
>  
> [2] http://hg.tryton.org/modules/timesheet/file/9708a4e8ad35/line.py#l203 
>
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Re: Cambio de vista en Tree y Form Sao

2017-10-08 Por tema Josias Pérez
Si, funcionó. Luego de probarlo en el cliente ya "actualizó" su 
funcionamiento correcto. Funciona bien ahora el doble-clic para el cambio 
de vista en el registro. Gracias por la ayuda. :-) 

El viernes, 6 de octubre de 2017, 1:20:53 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 05/10/17 a les 22:07, Josias Pérez ha escrit: 
> > Con gusto, este es el código que tengo en el módulo. 
>
> A simple vista no veo nada incorrecto. 
>
> ¿Te funciona con el cliente gtk? 
>
>
> > 
> > distrito.py 
> > __all__ = ['Distrito'] 
> > __metaclass__ = PoolMeta 
> > 
> > class Distrito(ModelView, ModelSQL): 
> >  'Distrito' 
> >  __name__ = 'disc.distrito' 
> >  name = fields.Char('Distrito') 
> >  zona = fields.Many2One('disc.zona', 'Zona') 
> > 
> > distrito.xml 
> >  
> >disc.distrito 
> >form 
> >distrito_form 
> >  
> >  
> >disc.distrito 
> >tree 
> >distrito_tree 
> >  
> > 
> >  
> >Distrito 
> >disc.distrito 
> >  
> > 
> >  
> > 
> > 
> > 
> >  
> >  
> > 
> > 
> > 
> >  
> > 
> > distrito_tree.xml 
> >  
> >   
> >   
> >  
> > 
> > distrito_form.xml 
> >  
> >  
> >   
> >   
> >   
> >   
> >  
> >  
> > 
> > 
> > El jueves, 5 de octubre de 2017, 1:26:09 (UTC-6), Sergi Almacellas 
> > Abellana escribió: 
> > 
> > Es complicado dar ayuda con la escueta información que proporcionas. 
> > Seguramente sera un problema de programación de tu código. Puedes 
> > hacerlo público para que le podamos dar un vistazo? 
> > 
> > Muchas gràcias. 
> > 
> > 
> > El 04/10/17 a les 19:16, Josias Pérez ha escrit: 
> >  > 4.4 
> >  > 
> >  > El miércoles, 4 de octubre de 2017, 1:32:53 (UTC-6), Sergi 
> > Almacellas 
> >  > Abellana escribió: 
> >  > 
> >  > El 03/10/17 a les 05:32, Josias Pérez ha escrit: 
> >  >  > Tengo el mismo comportamiento que el descrito arriba en la 
> >  > plataforma web. 
> >  > En que versión estas trabajando? 
> >  > 
> >  > -- 
> >  > Sergi Almacellas Abellana 
> >  > www.koolpi.com <http://www.koolpi.com> <http://www.koolpi.com> 
> >  > Twitter: @pokoli_srk 
> >  > 
> > 
> > 
> > -- 
> > Sergi Almacellas Abellana 
> > www.koolpi.com <http://www.koolpi.com> 
> > Twitter: @pokoli_srk 
> > 
>
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Agrupación de registros

2017-10-08 Por tema Josias Pérez
Hola, buen día. 

Me gustaría saber la mejor manera de agrupar registros para un informe.

Manejamos la siguiente jerarquía de información, 

Zona
-- Distrito

Con reportes por semana y por mes. 

Estoy sobreescribiendo el método search con context_model para realizar la 
consulta y funciona bien.
http://doc.tryton.org/4.4/trytond/doc/ref/models/models.html?highlight=search#trytond.model.ModelStorage.search
 

La pregunta es como agrupar los los resultados del método *search* 

*Reporte Actual*
*Zona Distrito Cantidad*
Zona 1 Distrito A 10
Zona 1 Distrito B  20
Zona 2 Distrito C 30
Zona 2 Distrito D  25
Zona 2 Distrito E  25
Zona 3 Distrito F  22
Zona 3 Distrito G 23

*Reporte Resumido*
*Zona Cantidad*
Zona 1 30
Zona 2 80
Zona 3 45
: 
*Reporte actual *
*ZonaSemanaMes  Cantidad*
Zona 1 Semana 1 Octubre 25
Zona 1 Semana 2 Octubre 25
Zona 1 Semana 3 Octubre 25
Zona 1 Semana 4  Octubre25

*Reporte resumido*
*Zona   Mes   Cantidad*
Zona 1Octubre 100

Desde ya muy agradecido por la ayuda!


Re: [tryton-es] Re: Cambio de vista en Tree y Form Sao

2017-10-05 Por tema Josias Pérez
Con gusto, este es el código que tengo en el módulo.

distrito.py
__all__ = ['Distrito']
__metaclass__ = PoolMeta

class Distrito(ModelView, ModelSQL):
'Distrito'
__name__ = 'disc.distrito'
name = fields.Char('Distrito')
zona = fields.Many2One('disc.zona', 'Zona')

distrito.xml

  disc.distrito
  form
  distrito_form


  disc.distrito
  tree
  distrito_tree



  Distrito
  disc.distrito



  
  
  


  
  
  


distrito_tree.xml





distrito_form.xml










El jueves, 5 de octubre de 2017, 1:26:09 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> Es complicado dar ayuda con la escueta información que proporcionas. 
> Seguramente sera un problema de programación de tu código. Puedes 
> hacerlo público para que le podamos dar un vistazo? 
>
> Muchas gràcias. 
>
>
> El 04/10/17 a les 19:16, Josias Pérez ha escrit: 
> > 4.4 
> > 
> > El miércoles, 4 de octubre de 2017, 1:32:53 (UTC-6), Sergi Almacellas 
> > Abellana escribió: 
> > 
> > El 03/10/17 a les 05:32, Josias Pérez ha escrit: 
> >  > Tengo el mismo comportamiento que el descrito arriba en la 
> > plataforma web. 
> > En que versión estas trabajando? 
> > 
> > -- 
> > Sergi Almacellas Abellana 
> > www.koolpi.com <http://www.koolpi.com> 
> > Twitter: @pokoli_srk 
> > 
>
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


Re: [tryton-es] Re: Cambio de vista en Tree y Form Sao

2017-10-04 Por tema Josias Pérez
4.4 

El miércoles, 4 de octubre de 2017, 1:32:53 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
> El 03/10/17 a les 05:32, Josias Pérez ha escrit: 
> > Tengo el mismo comportamiento que el descrito arriba en la plataforma 
> web. 
> En que versión estas trabajando? 
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Re: Cambio de vista en Tree y Form Sao

2017-10-02 Por tema Josias Pérez
Tengo el mismo comportamiento que el descrito arriba en la plataforma web. 

El lunes, 18 de septiembre de 2017, 1:32:12 (UTC-6), Josias Pérez escribió:
>
> Hola amigos,
>
> Estoy trabajando en un módulo personalizado bajo sao pero encuentro que en 
> la vista tree no se puede cambiar a la vista form, excepto usando el botón 
> Nuevo o Cambiar. En el módulo de party funciona dandole doble clic pero en 
> la vista que trabaje no funciona igual. 
>
>
> 
>   disc.distrito
>   form
>   distrito_form
>   
>
> 
>   disc.distrito
>   tree
>   
>   distrito_tree
>   
>
> 
>   Distrito
>   disc.distrito
>   
> 
>   
>   
>   
>   
>   
>   
>   
>   
>   
>   
>
> He agregado lo siguiente pero no funciona el cambio entre la vista Tree y 
> Form de un determinado registro. 
>
> 
> tree_open
> disc.distrito,-1
> 
>
> Gracias por su ayuda desde ya. 
>


Re: [tryton-es] Dominio personalizado

2017-10-02 Por tema Josias Pérez
Gracias por el consejo, el método (2) no me funciona. me devuelve el 
siguiente error:
AssertionError: obj must be a dict or a list

Estoy en la versión 4.4.

El lunes, 2 de octubre de 2017, 9:14:06 (UTC-6), Sergi Almacellas Abellana 
escribió:
>
> El 02/10/17 a les 17:08, Josias Pérez ha escrit: 
> > Hola, 
> > 
> > Quisiera saber si es posible tener dominios personalizados para este 
> > caso. Tengo las siguiente tablas. 
> > 
> > class Distrito(ModelView, ModelSQL): 
> >  'Distrito' 
> >  __name__ = 'disc.distrito' 
> >  name = fields.Char('Distrito') 
> >  user = fields.Many2One('res.user','Encargado') 
> > 
> > class Departamento(ModelView, ModelSQL): 
> > 'Departamento' 
> >  __name__ = 'disc.departamento' 
> >  name = fields.Char('Departamento') 
> >  distrito = fields.Many2One('disc.distrito','Distrito', 
> > domain=mi_dominio) 
> > 
> > Y también los siguientes tipos de usuario: 
> > 
> > Usuario tipo A: Administrador general 
> > Usuario tipo B: Supervisor 
> > 
> > El tipo A tiene acceso a todos los distritos pero el tipo B únicamente a 
> > sus distritos, no a todos. Cómo tendría que ser la función 'mi_dominio' 
> > que evalúe los grupos y/o si a cada usuario le pertenece determinado 
> > departamento retornar determinado dominio? 
>
> En este caso puedes hacer dos cosas: 
>
> 1. Aplicar la restricción en todos los accessos al modelo. En este caso 
> debes crear una regal de acceso para tu modelo (ir.access.rule) que solo 
> se aplique si el usuario es de un grupo. 
> 2. Aplicar la restricción solo para la relación. En este caso debes 
> utilizar un dominio. El dominio debe ser algo asi como: 
>
> If(In(Id('tu_modulo', 'id_grupo'), Eval('context', {}).get('users')), 
> (), # dominio vacio para no aplicar ninguna regla. 
> (('user', '=', Eval('context', {}).get('user', -1)), 
> ) 
>
> Espero que te ayude. 
>
> Un saludo, 
>
>
>
> -- 
> Sergi Almacellas Abellana 
> www.koolpi.com 
> Twitter: @pokoli_srk 
>


[tryton-es] Dominio personalizado

2017-10-02 Por tema Josias Pérez
Hola, 

Quisiera saber si es posible tener dominios personalizados para este caso. 
Tengo las siguiente tablas.

class Distrito(ModelView, ModelSQL):
'Distrito'
__name__ = 'disc.distrito'
name = fields.Char('Distrito')
user = fields.Many2One('res.user','Encargado')

class Departamento(ModelView, ModelSQL):
'Departamento'
__name__ = 'disc.departamento'
name = fields.Char('Departamento')
distrito = fields.Many2One('disc.distrito','Distrito',
domain=mi_dominio)

Y también los siguientes tipos de usuario:

Usuario tipo A: Administrador general
Usuario tipo B: Supervisor

El tipo A tiene acceso a todos los distritos pero el tipo B únicamente a 
sus distritos, no a todos. Cómo tendría que ser la función 'mi_dominio' que 
evalúe los grupos y/o si a cada usuario le pertenece determinado 
departamento retornar determinado dominio? 

Desde ya muchas gracias 





Re: [tryton-es] Uso de search_rec_name

2017-09-27 Por tema Josias Pérez
Funcionó bien amigo, muchas gracias. 

El miércoles, 27 de septiembre de 2017, 15:55:07 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
>
>
> On 27 de setembre de 2017 23.33.08 CEST, "Josias Pérez" <jep...@gmail.com 
> > wrote: 
> > 
> > 
> >Hola, me gustaría saber si estoy haciendo uso correcto del siguiente 
> >método: 
> > 
> >@classmethod 
> >def search_rec_name(cls, name, clause): 
> >if clause[1].startswith('!') or clause[1].startswith('not '): 
> >bool_op = 'AND' 
> >else: 
> >bool_op = 'OR' 
> >return [bool_op, 
> >('semana',) + tuple(clause[1:]), 
> >('iglesia.name',) + tuple(clause[1:]), 
> >('mes',) + tuple(clause[1:]), 
> >('fecha_inicio',) + tuple(clause[1:]), 
> >('fecha_fin',) + tuple(clause[1:]), 
> >] 
> > 
>
> El metodo esta bien. Aunque creo que no es lo que tienes que implementar 
> para lograr tu objectivo. 
>
> >Pero en la vista no muestra todos los campos, excepto los primeros dos, 
> > 
> ><
> https://lh3.googleusercontent.com/-I_mP1m3ghI0/WcwYuBXmOqI/whs/J7FvSkc-uKoA5dxKjXiGXirWiCK76q0sgCLcBGAs/s1600/disc.png>
>  
>
> >Desde ya gracias. 
>
> Para añadir campos en el buscador simplemente los tienes que incluir en la 
> vista de tree. Si quieres que solo se puedan buscar pero no se muestren 
> puedes utilizar el atributo tree_invisible="1" 
>
> Espero que te ayude. 
>
> Un saludo, 
> -- 
> Enviado desde mi dispositivo Android con K-9 Mail. Por favor, disculpa mi 
> brevedad. 
>


Re: [tryton-es] Re: Agregar datos en Campo One2Many en un on_change

2017-09-25 Por tema Josias Pérez
Funciono muy bien para agregar los datos. Tengo duda remover las líneas 
generadas si el elemento que genera el on_change cambia o se deja en 
blanco. Creo que solo reconoce las líneas si ya está guardado el archivo. 

El viernes, 22 de septiembre de 2017, 17:43:00 (UTC-6), Sergi Almacellas 
Abellana escribió:
>
>
>
> On 23 de setembre de 2017 1.32.21 CEST, "Josias Pérez" <jep...@gmail.com 
> > wrote: 
> > def on_change_product(self): 
> >res = {} 
> >res['lines'] = {} 
> >if self.lines: 
> >Tengo problemas en esta línea 
> >res['lines']['remove'] = [x['id'] for x in self.lines] 
> > 
> >if not self.product: 
> >return res 
> > 
> > name = self.product+'%' 
> > products = Product.search([('name', 'ilike', name)]) 
> > for p in products: 
> > 
> >product_line = { 
> >'product': p.id, 
> >'precio_venta':p.list_price, 
> >} 
> >Y en esta también 
> >   res['lines'].setdefault('add', []).append((0, product_line)) 
> > 
> >Quiero que al efectuar un on_change en un campo me actualice un campo 
> >one2many, estoy en la versión 4.4 
> > 
>
> En la version 4.4 los on_change ya no tienen que devolver un diccionario 
> sino que tienes que modificar directamente la instancia con ActiveRecord. 
> Seria algo como: 
>
> self.lines = [] 
>
> for p in products: 
>line = Line() 
>line.product = product 
> 
>self.lines.append(line) 
>
> I ya lo tendrias. Asegurate de que el metodo no devuelva nada, sino que 
> simplemente modifique la instancia. 
> >Desde ya muchas gracias 
>
> Espero que te servia de ayuda. 
>
> Saludos, 
> > 
> >El miércoles, 20 de septiembre de 2017, 1:24:11 (UTC-6), Sergi 
> >Almacellas 
> >Abellana escribió: 
> >> 
> >> El 19/09/17 a les 23:29, Josias Pérez ha escrit: 
> >> > No me funciona el código, alguna actualización? Gracias. 
> >> En que version de tryton trabajas? 
> >> 
> >> Que intentas hacer? 
> >> 
> >> Si nos das mas información quizás te podamos ayudar con mas detalle. 
> >> 
> >> Un saludo, 
> >> 
> >> -- 
> >> Sergi Almacellas Abellana 
> >> www.koolpi.com 
> >> Twitter: @pokoli_srk 
> >> 
>
> -- 
> Enviado desde mi dispositivo Android con K-9 Mail. Por favor, disculpa mi 
> brevedad. 
>


[tryton-es] Re: Agregar datos en Campo One2Many en un on_change

2017-09-20 Por tema Josias Pérez
No me funciona el código, alguna actualización? Gracias. 

El lunes, 6 de febrero de 2017, 9:24:42 (UTC-6), Tatiana Quizhpe escribió:
>
> Saludos
>
> Buen día, hay alguna otra forma de agregar datos en un Campo One2Many, 
> actualmente
> lo hago de la siguiente manera [1],  el método está dentro de un on_change 
> ya que necesito 
> que de acuerdo a como cambia el campo (product ) que es tipo Char, se vaya 
> actualizando 
> el Campo (lines) One2Many.
> Funciona bien cuando son pocos registros aprox. 50 pero al pasar esta 
> cantidad demora
> en agregar las líneas, dependiendo del número de registros, necesito que 
> el proceso se
> realice en menos tiempo. Trabajo con la versión 3.4.
>
> [1]
> @fields.depends('product', 'lines')
> def on_change_product(self):
> res = {}
> res['lines'] = {}
> if self.lines:
> res['lines']['remove'] = [x['id'] for x in self.lines]
>
> if not self.product:
> return res
>
>  name = self.product+'%'
>  products = Product.search([('name', 'ilike', name)])
>  for p in products:
> 
> product_line = {
> 'product': p.id,
> 'precio_venta':p.list_price,
> }
> res['lines'].setdefault('add', []).append((0, 
> product_line))
>
> Desde ya gracias.
>


[tryton-es] Cambio de vista en Tree y Form Sao

2017-09-18 Por tema Josias Pérez
Hola amigos,

Estoy trabajando en un módulo personalizado bajo sao pero encuentro que en 
la vista tree no se puede cambiar a la vista form, excepto usando el botón 
Nuevo o Cambiar. En el módulo de party funciona dandole doble clic pero en 
la vista que trabaje no funciona igual. 



  disc.distrito
  form
  distrito_form
  


  disc.distrito
  tree
  
  distrito_tree
  


  Distrito
  disc.distrito
  

  
  
  
  
  
  
  
  
  
  

He agregado lo siguiente pero no funciona el cambio entre la vista Tree y 
Form de un determinado registro. 


tree_open
disc.distrito,-1


Gracias por su ayuda desde ya.