deisy преди 5 години
ревизия
46e60a1410

+ 2 - 0
__init__.py

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

BIN
__init__.pyc


+ 26 - 0
__openerp__.py

@@ -0,0 +1,26 @@
+# -*- encoding: utf-8 -*-
+
+{
+    'name': 'DIKASA',
+    'version': '8.0.0.1.0',
+    'category': '',
+    'summary': 'Añade campos y otras funcionalidades',
+    'author': 'Eiru',
+    'license': 'AGPL-3',
+    'depends': [
+        'base',
+        'account',
+        'product',
+        'sale',
+        'sale_stock',
+        ],
+    'data': [
+        'views/res_partner.xml',
+        'views/res_zone.xml',
+        'views/product.xml',
+        'views/sale_order.xml',
+        'views/account_invoice.xml',
+    ],
+
+    'installable': True,
+}

+ 5 - 0
models/__init__.py

@@ -0,0 +1,5 @@
+# -*- encoding: utf-8 -*-
+import res_partner
+import product
+import sale_order
+import account_invoice

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


+ 16 - 0
models/product.py

@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+from openerp import models, fields, api
+import logging
+
+class Product(models.Model):
+    _inherit = 'product.template'
+
+    country_id = fields.Many2one('res.country', string='Procedencia')
+    height = fields.Float(string="Altura")
+    length = fields.Float(string="Largo")
+    width = fields.Float(string="Ancho")
+    last_purchase_date = fields.Date(string="Última compra")
+    price_change =  fields.Selection([
+        ('buy', 'Compra'),
+        ('import', 'Importación')],
+        string='Actualizar costo con')

BIN
models/product.pyc


+ 17 - 0
models/res_partner.py

@@ -0,0 +1,17 @@
+# -*- 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")
+    morosidad = fields.Integer(string="Días de morosidad para bloqueo")
+
+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


+ 59 - 0
models/sale_order.py

@@ -0,0 +1,59 @@
+# -*- 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
+        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
models/sale_order.pyc


BIN
static/description/icon.png


+ 31 - 0
views/account_invoice.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="dikasa_invoice_form">
+       <field name="name">dikasa_invoice_form</field>
+       <field name="model">account.invoice</field>
+       <field name="inherit_id" ref="account.invoice_form"/>
+       <field name="arch" type="xml">
+         <field name="partner_id" position="replace">
+           <field name="partner_id" domain="[('customer','=',True)]" options='{"always_reload": True}'/>
+         </field>
+         <field name="partner_id" position="after">
+            <field name="street"/>
+            <field name="state_id"/>
+            <field name="country_id"/>
+            <field name="email"/>
+            <field name="phone"/>
+            <field name="mobile"/>
+            <field name="credit_limit"/>
+         </field>
+         <field name="user_id" position="attributes">
+            <attribute name="string">Vendedor</attribute>
+         </field>
+         <field name="user_id" position="after">
+            <field name="create_uid" readonly="1"/>
+         </field>
+      </field>
+    </record>
+
+</data>
+</openerp>

+ 53 - 0
views/product.xml

@@ -0,0 +1,53 @@
+<?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="product.product_template_form_view"/>
+       <field name="arch" type="xml">
+         <xpath expr="//group[@name='weight']" position="replace" >
+           <group name="weight" position="before">
+             <group name="weight" string="Medidas y Pesos" attrs="{'invisible':[('type','=','service')]}">
+                 <field digits="(14, 3)" name="volume"/>
+                 <field name="weight"/>
+                 <field name="weight_net"/>
+                 <field name="height"/>
+                 <field name="width"/>
+                 <field name="length"/>
+             </group>
+          </group>
+        </xpath>
+
+        <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>

+ 27 - 0
views/res_partner.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="dikasa_partner_form">
+       <field name="name">dikasa_partner_form</field>
+       <field name="model">res.partner</field>
+       <field name="inherit_id" ref="base.view_partner_form"/>
+       <field name="arch" type="xml">
+         <field name="website"  position="before">
+           <field name="zone_id"/>
+         </field>
+      </field>
+    </record>
+    <record model="ir.ui.view" id="dikasa_partner_form2">
+       <field name="name">dikasa_partner_form</field>
+       <field name="model">res.partner</field>
+       <field name="inherit_id" ref="account.view_partner_property_form"/>
+       <field name="arch" type="xml">
+         <field name="credit_limit"  position="after">
+           <field name="check_limit"/>
+           <field name="morosidad"/>
+           <field name="customer_categ"/>
+         </field>
+      </field>
+    </record>
+</data>
+</openerp>

+ 26 - 0
views/res_zone.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+
+    <record id="res_zone_form_view" model="ir.ui.view">
+      <field name="name">res_zone_form_view</field>
+      <field name="model">res.zone</field>
+      <field name="arch" type="xml">
+        <form string="res_zone_form">
+          <group>
+            <field name="name" required="1"/>
+            <field name="description"/>
+          </group>
+        </form>
+      </field>
+    </record>
+
+    <record model="ir.actions.act_window" id="action_res_zone">
+      <field name="name">Zonas</field>
+      <field name="res_model">res.zone</field>
+      <field name="view_type">form</field>
+      <field name="view_mode">form</field>
+    </record>
+
+  </data>
+</openerp>

+ 49 - 0
views/sale_order.xml

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+    <record model="ir.ui.view" id="dikasa_sale_form">
+       <field name="name">dikasa_sale_form</field>
+       <field name="model">sale.order</field>
+       <field name="inherit_id" ref="sale.view_order_form"/>
+       <field name="arch" type="xml">
+         <field name="partner_id" position="replace">
+           <field name="partner_id" domain="[('customer','=',True)]" options='{"always_reload": True}'/>
+         </field>
+         <field name="partner_id" position="after">
+            <field name="ruc"/>
+            <field name="street"/>
+            <field name="state_id"/>
+            <field name="country_id"/>
+            <field name="email"/>
+            <field name="phone"/>
+            <field name="mobile"/>
+            <field name="credit_limit"/>
+         </field>
+         <field name="user_id" position="attributes">
+            <attribute name="string">Vendedor</attribute>
+         </field>
+         <field name="user_id" position="after">
+            <field name="create_uid" readonly="1"/>
+         </field>
+
+         <field name="note" position="before">
+           <group>
+             <field name="total_weight" class='oe_inline'/><label for="my_field">%%</label>
+           </group>
+         </field>
+      </field>
+    </record>
+
+    <record model="ir.ui.view" id="dikasa_sale_form2">
+       <field name="name">dikasa_sale_form2</field>
+       <field name="model">sale.order</field>
+       <field name="inherit_id" ref="sale_stock.view_order_form_inherit"/>
+       <field name="arch" type="xml">
+         <field name="incoterm" position="attributes">
+           <attribute name="invisible">True</attribute>
+         </field>
+      </field>
+    </record>
+
+</data>
+</openerp>