Skip to content
Extraits de code Groupes Projets
Valider 2dd28ad3 rédigé par Juliana's avatar Juliana
Parcourir les fichiers

[ADD]Add action update price un mass

parent 30514bc8
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -15,6 +15,7 @@
"wizard/acc_sale_price_wizard_views.xml",
"wizard/acc_sale_price_surplus_wizard_views.xml",
"wizard/acc_price_conf_wizard_views.xml",
"wizard/acc_update_price_conf_wizard_views.xml",
"wizard/acc_account_wizard_views.xml",
"wizard/acc_account_surplus_wizard_views.xml",
# views
......
......@@ -70,8 +70,9 @@ class AccPriceConf(models.Model):
acc_buyer_id = False
if "start_date" in vals:
start_date = fields.Date.to_date(vals["start_date"])
type = self.env.context.get("type")
vals["type"] = type
if "type" in vals:
type = vals["type"]
# If date start period doesn't exist
if type == "buyer":
price_ids = self.env["acc.price.conf"].search(
......@@ -173,3 +174,4 @@ class AccPriceConf(models.Model):
vals_list += new_vals
res = super(AccPriceConf, self).create(vals_list)
return res
......@@ -9,6 +9,8 @@ id,name,model_id/id,group_id/id,perm_read,perm_write,perm_create,perm_unlink
"access_acc_sale_price_wizard_group_user","acc_sale_price_wizard group_user","model_acc_sale_price_wizard","base.group_user",1,0,0,0
"access_acc_price_conf_wizard_group_partner_manager","acc_price_conf_wizard group_partner_manager","model_acc_price_conf_wizard","base.group_partner_manager",1,1,1,1
"access_acc_price_conf_wizard_group_user","acc_price_conf_wizard group_user","model_acc_price_conf_wizard","base.group_user",1,0,0,0
"access_acc_update_price_conf_wizard_group_partner_manager","acc_update_price_conf_wizard group_partner_manager","model_acc_update_price_conf_wizard","base.group_partner_manager",1,1,1,1
"access_acc_update_price_conf_wizard_group_user","acc_update_price_conf_wizard group_user","model_acc_update_price_conf_wizard","base.group_user",1,0,0,0
"access_acc_sale_price_surplus_wizard_group_partner_manager","acc_sale_price_surplus_wizard group_partner_manager","model_acc_sale_price_surplus_wizard","base.group_partner_manager",1,1,1,1
"access_acc_sale_price_surplus_wizard_group_user","acc_sale_price_surplus_wizard group_user","model_acc_sale_price_surplus_wizard","base.group_user",1,0,0,0
"access_acc_account_group_partner_manager","acc_account group_partner_manager","model_acc_account","base.group_partner_manager",1,1,1,1
......
......@@ -3,6 +3,7 @@
from . import acc_sale_price_wizard
from . import acc_price_conf_wizard
from . import acc_update_price_conf_wizard
from . import acc_sale_price_surplus_wizard
from . import acc_account_wizard
from . import acc_account_surplus_wizard
......@@ -13,6 +13,7 @@ class AccPriceConfWizard(models.TransientModel):
return self.env.context.get("type")
def _default_price_conf_ids(self):
# If click button on operation view
type = self.env.context.get("type")
if type == "buyer":
inj_ids = self.env["acc.counter"].search(
......@@ -31,15 +32,12 @@ class AccPriceConfWizard(models.TransientModel):
"acc_buyer_id": inj.buyer_id.id,
"acc_injection_id": inj.id,
"acc_operation_id": self.env.context.get("active_id"),
"type": type
},
)
# # if there isn't a demo line record for the user, create a new one
# if not rec.acc_sale_price_ids.filtered(lambda x: x.acc_operation_id == op) else
# # otherwise, return the line
# (4, rec.acc_sale_price_ids.filtered(lambda x: x.acc_operation_id == usr)[0].id)
for inj in inj_ids
]
else:
elif type == "sale" or type == "accise":
inj_ids = self.env["acc.counter"].search(
[
("is_injection", "=", True),
......@@ -61,16 +59,32 @@ class AccPriceConfWizard(models.TransientModel):
"acc_delivery_id": rec.id,
"acc_injection_id": inj.id,
"acc_operation_id": self.env.context.get("active_id"),
"type": type
},
)
# # if there isn't a demo line record for the user, create a new one
# if not rec.acc_sale_price_ids.filtered(lambda x: x.acc_operation_id == op) else
# # otherwise, return the line
# (4, rec.acc_sale_price_ids.filtered(lambda x: x.acc_operation_id == usr)[0].id)
for rec in recs
for inj in inj_ids
]
else:
# Objects selected from list view
active_ids = self._context.get('active_ids')
if active_ids:
return [
(
0,
0,
{
"acc_delivery_id": self.env["acc.price.conf"].browse(
rec).acc_delivery_id.id,
"acc_injection_id": self.env["acc.price.conf"].browse(
rec).acc_injection_id.id,
"acc_operation_id": self.env["acc.price.conf"].browse(
rec).acc_operation_id.id,
"type": self.env["acc.price.conf"].browse(rec).type
},
)
for rec in active_ids
]
acc_price_conf_ids = fields.Many2many(
"acc.price.conf", default=lambda self: self._default_price_conf_ids()
......
......@@ -10,7 +10,7 @@
<group>
<group>
<field name="start_date" />
<field name="type" invisible="1"/>
<field name="type" />
</group>
</group>
<field
......@@ -71,20 +71,28 @@
</record>
<record id="act_x2many_2d_matrix_sale" model="ir.actions.act_window">
<field name="name">Gestion prix de vente</field>
<field name="name">Générer des prix de vente</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">acc.price.conf.wizard</field>
<field name="view_mode">form</field>
<field name="view_id" ref="x2many_2d_matrix_sale" />
<field name="target">new</field>
<field name="domain">[('type', '=', 'sale')]</field>
<field name="context">{'default_type': 'sale'}</field>
<field name="binding_model_id" ref="acc_account.model_acc_price_conf" />
<field name="binding_view_types">list</field>
</record>
<record id="act_x2many_2d_matrix_buyer" model="ir.actions.act_window">
<field name="name">Gestion prix d'achat</field>
<field name="name">Générer des prix d'achat</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">acc.price.conf.wizard</field>
<field name="view_mode">form</field>
<field name="view_id" ref="x2many_2d_matrix_buyer" />
<field name="binding_model_id" ref="acc_account.model_acc_price_conf" />
<field name="domain">[('type', '=', 'buyer')]</field>
<field name="context">{'default_type': 'buyer'}</field>
<field name="binding_view_types">list</field>
<field name="target">new</field>
</record>
......
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
class AccUpdatePriceConfWizard(models.TransientModel):
_name = "acc.update.price.conf.wizard"
_description = "Mise à jour des prix wizard"
price = fields.Float("Tarif à mettre à jour", digits="Sale Price")
def update_price(self):
acc_price_ids = self.env["acc.price.conf"].browse(self._context.get('active_ids'))
for price in acc_price_ids:
price.price = self.price
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_acc_price_conf_update_price" model="ir.ui.view">
<field name="name">acc.price.conf.update.price.wizard</field>
<field name="model">acc.update.price.conf.wizard</field>
<field name="arch" type="xml">
<form string="Mise à jour du prix">
<group>
<field name="price"/>
</group>
<footer>
<button string="Mettre à jour" name="update_price" type="object" class="btn-primary"/>
<button string="Annuler" class="btn-default" special="cancel"/>
</footer>
</form>
</field>
</record>
<record id="acc_price_conf_update_price_action" model="ir.actions.act_window">
<field name="name">Mise à jour du prix en masse</field>
<field name="res_model">acc.update.price.conf.wizard</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_acc_price_conf_update_price"/>
<field name="target">new</field>
<field name="binding_model_id" ref="acc_account.model_acc_price_conf" />
<field name="binding_view_types">list</field>
</record>
</odoo>
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter