<record model="ir.action.wizard" id="wizard_update_price_sale_lines">
<field name="name">Actualizar precios venta</field>
<field name="wiz_name">sale.update_price_sale_lines</field>
</record>
<record model="ir.action.keyword"
id="wizard_update_price_sale_lines_keyword1">
<field name="keyword">form_action</field>
<field name="model">sale.sale,-1</field>
<field name="action" ref="wizard_update_price_sale_lines"/>
</record>
# -*- coding: utf-8 -*-
"""
:copyright: (c) 2018 by Smola Pablo Andrés.
:license: GPLv3, see LICENSE for more details
"""
#from trytond.model import fields, ModelSQL, ModelView
from trytond.model import fields
from trytond.pool import PoolMeta,Pool
from trytond.pyson import Eval, Not, Equal, Or, Bool
import datetime
from trytond.transaction import Transaction
from trytond.wizard import Wizard, StateTransition
import logging
logger = logging.getLogger(__name__)
__all__ = ['Sale','UpdatePriceSaleLines']
class Sale(object):
__metaclass__ = PoolMeta
__name__ = 'sale.sale'
@classmethod
def update_price_sale_lines(cls, sales):
for sale in sales:
for linea in sale.lines:
cls.write([linea], {
'unit_price': linea.product.list_price,
})
class UpdatePriceSaleLines(Wizard):
'Update Price Sale Lines'
__name__ = 'sale.update_price_sale_lines'
start_state = 'update'
update = StateTransition()
def transition_update(self):
pool = Pool()
Sale = pool.get('sale.sale')
context = Transaction().context
logger.info('HOLA')
if context['active_model'] == 'sale.sale':
sales = Sale.browse(context['active_ids'])
Sale.update_price_sale_lines(sales)
return 'end'
#!/usr/bin/env python2
# -*- coding: <utf-8> -*-
import sys
from decimal import Decimal
from proteus import config, Model, Wizard
config = config.set_trytond('postgresql:///tryton_42',config_file='/etc/tryton/trytond.conf')
presupuesto= Model.get('sale.sale')
numero_de_presupuesto=(sys.argv[1])
print("actualizando presupuesto Numero %s"%(numero_de_presupuesto))
presupuesto_viejo,=presupuesto.find([('number','=',numero_de_presupuesto)])
flag=0
for lineas in presupuesto_viejo.lines:
if lineas.product:
print(lineas.product.id,lineas.product.name,lineas.unit_price,lineas.product.list_price)
lineas.unit_price=lineas.product.list_price
else:
pass
lineas.save()
# -*- coding: utf-8 -*-
"""
:copyright: (c) 2018 by Smola Pablo Andrés.
:license: GPLv3, see LICENSE for more details
"""
#from trytond.model import fields, ModelSQL, ModelView
from trytond.model import fields
from trytond.pool import PoolMeta,Pool
from trytond.pyson import Eval, Not, Equal, Or, Bool
import datetime
from trytond.transaction import Transaction
from trytond.wizard import Wizard, StateTransition
import logging
logger = logging.getLogger(__name__)
__all__ = ['Sale','UpdatePriceSaleLines']
class Sale(object):
__metaclass__ = PoolMeta
__name__ = 'sale.sale'
@classmethod
def update_price_sale_lines(cls, sales):
pool = Pool()
SaleLine = pool.get('sale.line')
to_write=[]
for sale in sales:
for linea in sale.lines:
if linea.type != 'line':
continue
if linea.product.id==1064:
continue
value = {
'unit_price': linea.product.list_price
}
to_write.extend(([linea], value))
if to_write:
SaleLine.write(*to_write)
class UpdatePriceSaleLines(Wizard):
'Update Price Sale Lines'
__name__ = 'sale.update_price_sale_lines'
start_state = 'update'
update = StateTransition()
def transition_update(self):
pool = Pool()
Sale = pool.get('sale.sale')
if len(Transaction().context['active_ids']) == 1:
sales = Sale.browse(Transaction().context.get('active_ids'))
Sale.update_price_sale_lines(sales)
return 'end'
--
Has recibido este mensaje porque estás suscrito al grupo "tryton-ar" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a tryton-ar+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Has recibido este mensaje porque estás suscrito al grupo "tryton-ar" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a tryton-ar+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/d/optout.