Преглед изворни кода

Campos extra de tipo de actualizacion de precio de costo

sebastian пре 5 година
комит
e31ed58528

+ 2 - 0
__init__.py

@@ -0,0 +1,2 @@
+# -*- encoding: utf-8 -*-
+import models


+ 25 - 0
__openerp__.py

@@ -0,0 +1,25 @@
+# -*- encoding: utf-8 -*-
+
+{
+    'name': 'Campos extra de tipo de actualizacion de precio de costo',
+    'version': '8.0.0.1.0',
+    'category': '',
+    'summary': 'Añade campos y otras funcionalidades',
+    'author': 'Eiru',
+    'license': 'AGPL-3',
+    'depends': [
+        'base',
+        'account',
+        'product',
+        'sale',
+        'purchase',
+        'sale_stock',
+        'fields_security',
+        ],
+    'data': [
+        'views/product.xml',
+
+    ],
+
+    'installable': True,
+}

+ 2 - 0
models/__init__.py

@@ -0,0 +1,2 @@
+# -*- encoding: utf-8 -*-
+import product

BIN
models/__init__.pyc


+ 46 - 0
models/account_invoice.py

@@ -0,0 +1,46 @@
+# -*- encoding: utf-8 -*-
+
+from openerp import models, fields, api, tools, _
+from openerp.exceptions import Warning
+
+class account_invoice(models.Model):
+    _inherit = 'account.invoice'
+
+    street = fields.Char(string="Calle", compute="_get_partner_data")
+    state_id = fields.Many2one('res.country.state',string="Departamento", compute="_get_partner_data")
+    country_id = fields.Many2one('res.country',string="País", compute="_get_partner_data")
+    email = fields.Char(string="Email", compute="_get_partner_data")
+    phone = fields.Char(string="Teléfono", compute="_get_partner_data")
+    mobile = fields.Char(string="Celular", compute="_get_partner_data")
+    credit_limit = fields.Float(string="Límite de crédito", compute="_get_partner_data")
+
+    @api.onchange('partner_id')
+    def onchange_partner_id(self):
+        res = super(account_invoice, self).onchange_partner_id(self.type, self.partner_id.id, self.date_invoice,self.payment_term, self.partner_bank_id.id, self.company_id.id)
+        if type(res) is dict and res.has_key('value'):
+            for field, value in res.get('value').items():
+                if hasattr(self, field):
+                    setattr(self, field, value)
+        if self.partner_id:
+            domain = [('id', '=', self.partner_id.id)]
+            partner = self.env['res.partner'].search(domain)
+            self.street = partner.street
+            self.state_id = partner.state_id and partner.state_id.id or False
+            self.country_id = partner.country_id and partner.country_id.id or False
+            self.email = partner.email
+            self.phone = partner.phone
+            self.mobile = partner.mobile
+            self.credit_limit = partner.credit_limit
+        return res
+
+    @api.one
+    def _get_partner_data(self):
+        domain = [('id', '=', self.partner_id.id)]
+        partner = self.env['res.partner'].search(domain)
+        self.street = partner.street
+        self.state_id = partner.state_id and partner.state_id.id or False
+        self.country_id = partner.country_id and partner.country_id.id or False
+        self.email = partner.email
+        self.phone = partner.phone
+        self.mobile = partner.mobile
+        self.credit_limit = partner.credit_limit

BIN
models/account_invoice.pyc


+ 12 - 0
models/product.py

@@ -0,0 +1,12 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, api
+import logging
+
+class Product(models.Model):
+    _inherit = 'product.template'
+
+    last_purchase_date = fields.Date(string="Última compra")
+    price_change =  fields.Selection([
+        ('purchase', 'Compra'),
+        ('import', 'Importación')],
+        string='Actualizar costo con' , default='purchase')

BIN
models/product.pyc


+ 57 - 0
models/purchase_order.py

@@ -0,0 +1,57 @@
+# -*- encoding: utf-8 -*-
+
+from openerp import models, fields, api, tools, _
+from openerp.exceptions import Warning
+
+class purchase_order(models.Model):
+    _inherit = 'purchase.order'
+
+    ruc = fields.Char(string="Cédula/R.U.C", compute="_get_partner_data")
+    street = fields.Char(string="Dirección", compute="_get_partner_data")
+    state_id = fields.Many2one('res.country.state',string="Departamento", compute="_get_partner_data")
+    country_id = fields.Many2one('res.country',string="País", compute="_get_partner_data")
+    email = fields.Char(string="Email", compute="_get_partner_data")
+    phone = fields.Char(string="Teléfono", compute="_get_partner_data")
+    mobile = fields.Char(string="Celular", compute="_get_partner_data")
+
+
+    @api.onchange('partner_id')
+    def onchange_partner_id(self):
+        res = super(purchase_order, self).onchange_partner_id(self.partner_id.id)
+        if type(res) is dict and res.has_key('value'):
+            for field, value in res.get('value').items():
+                if hasattr(self, field):
+                    setattr(self, field, value)
+        if self.partner_id:
+            domain = [('id', '=', self.partner_id.id)]
+            partner = self.env['res.partner'].search(domain)
+            self.ruc = partner.ruc
+            self.street = partner.street
+            self.state_id = partner.state_id and partner.state_id.id or False
+            self.country_id = partner.country_id and partner.country_id.id or False
+            self.email = partner.email
+            self.phone = partner.phone
+            self.mobile = partner.mobile
+
+        if self.partner_id.supplier_type == 'exterior':
+            msj = {
+            'warning':{
+                'title': "Atención",
+                'message': "El proveedor seleccionado es del exterior"
+                }
+            }
+            return msj
+
+        return res
+
+    @api.one
+    def _get_partner_data(self):
+        domain = [('id', '=', self.partner_id.id)]
+        partner = self.env['res.partner'].search(domain)
+        self.ruc = partner.ruc
+        self.street = partner.street
+        self.state_id = partner.state_id and partner.state_id.id or False
+        self.country_id = partner.country_id and partner.country_id.id or False
+        self.email = partner.email
+        self.phone = partner.phone
+        self.mobile = partner.mobile

BIN
models/purchase_order.pyc


+ 22 - 0
models/res_partner.py

@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, api
+import logging
+
+class ResPartner(models.Model):
+    _inherit = 'res.partner'
+
+    customer_categ = fields.Char(string="Categoría")
+    zone_id = fields.Many2one('res.zone', string='Zona')
+    check_limit = fields.Float(string="L.C Cheques", default=9999999999)
+    morosidad = fields.Integer(string="Días de morosidad para bloqueo", default=30)
+    supplier_type = fields.Selection([
+        ('local','Local'),
+        ('exterior','Exterior')],
+        string="Tipo")
+
+
+class ResZone(models.Model):
+    _name = 'res.zone'
+
+    name = fields.Char(string="Zona", sequence="0")
+    description = fields.Char(string="Descripción")

BIN
models/res_partner.pyc


+ 61 - 0
models/sale_order.py

@@ -0,0 +1,61 @@
+# -*- encoding: utf-8 -*-
+
+from openerp import models, fields, api, tools, _
+from openerp.exceptions import Warning
+
+class sale_order(models.Model):
+    _inherit = 'sale.order'
+
+    ruc = fields.Char(string="Cédula/R.U.C", compute="_get_partner_data")
+    street = fields.Char(string="Dirección", compute="_get_partner_data")
+    state_id = fields.Many2one('res.country.state',string="Departamento", compute="_get_partner_data")
+    country_id = fields.Many2one('res.country',string="País", compute="_get_partner_data")
+    email = fields.Char(string="Email", compute="_get_partner_data")
+    phone = fields.Char(string="Teléfono", compute="_get_partner_data")
+    mobile = fields.Char(string="Celular", compute="_get_partner_data")
+    credit_limit = fields.Float(string="Límite de crédito", compute="_get_partner_data")
+    total_weight = fields.Float(string="Peso total", compute="_get_total_weight")
+
+
+    @api.onchange('partner_id')
+    def onchange_partner_id(self):
+        res = super(sale_order, self).onchange_partner_id(self.partner_id.id)
+        if type(res) is dict and res.has_key('value'):
+            for field, value in res.get('value').items():
+                if hasattr(self, field):
+                    setattr(self, field, value)
+        if self.partner_id:
+            domain = [('id', '=', self.partner_id.id)]
+            partner = self.env['res.partner'].search(domain)
+            self.ruc = partner.ruc
+            self.street = partner.street
+            self.state_id = partner.state_id and partner.state_id.id or False
+            self.country_id = partner.country_id and partner.country_id.id or False
+            self.email = partner.email
+            self.phone = partner.phone
+            self.mobile = partner.mobile
+            self.credit_limit = partner.credit_limit
+            self.user_id = partner.user_id
+            self.fiscal_position = partner.property_account_position
+        return res
+
+    @api.one
+    def _get_partner_data(self):
+        domain = [('id', '=', self.partner_id.id)]
+        partner = self.env['res.partner'].search(domain)
+        self.ruc = partner.ruc
+        self.street = partner.street
+        self.state_id = partner.state_id and partner.state_id.id or False
+        self.country_id = partner.country_id and partner.country_id.id or False
+        self.email = partner.email
+        self.phone = partner.phone
+        self.mobile = partner.mobile
+        self.credit_limit = partner.credit_limit
+
+    @api.one
+    def _get_total_weight(self):
+        total_weight = 0
+        for item in self.order_line:
+            order_line = self.env['sale.order.line'].search([('id','=',item.id)])
+            total_weight = total_weight + order_line.th_weight
+        self.total_weight = total_weight

BIN
static/description/icon.png


+ 41 - 0
views/product.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="dikasa_product_template_form_view">
+       <field name="name">dikasa_product_template_form_view</field>
+       <field name="model">product.template</field>
+       <field name="inherit_id" ref="fields_security.product_template_form_price_view"/>
+       <field name="arch" type="xml">
+
+        <field name="standard_price"  position="after">
+          <field name="last_purchase_date"/>
+          <field name="price_change"/>
+        </field>
+      </field>
+    </record>
+
+    <!-- <record model="ir.ui.view" id="dikasa_product_template_only_form_view">
+       <field name="name">dikasa_product_template_only_form_view</field>
+       <field name="model">product.template</field>
+       <field name="inherit_id" ref="product.product_template_only_form_view"/>
+       <field name="arch" type="xml">
+         <field name="default_code"  position="after">
+           <field name="country_id"/>
+         </field>
+      </field>
+    </record> -->
+
+    <!-- Agregar boton lista de precio en la vista arbol -->
+
+    <!-- <record model="ir.ui.view" id="dikasa_product_template_only_form_view">
+       <field name="name">dikasa_product_template_only_form_view</field>
+       <field name="model">product.template</field>
+       <field name="inherit_id" ref="product.product_template_only_form_view"/>
+       <field name="arch" type="xml">
+         <field name="default_code"  position="after">
+           <field name="country_id"/>
+         </field>
+      </field>
+    </record> -->
+</data>
+</openerp>