deisy vor 5 Jahren
Ursprung
Commit
3d905fb2a3

BIN
__init__.pyc


+ 1 - 0
__openerp__.py

@@ -32,6 +32,7 @@
         'stock',
     ],
     'data': [
+        'views/stock_warehouse.xml',
         'views/sis_warehouse_transfer.xml',
         'views/res_partner.xml',
         'data/ir_sequence.xml',

+ 1 - 1
data/ir_sequence.xml

@@ -17,7 +17,7 @@
 
         <!-- COnsulta -->
         <record id="sis_stock_appointment_ir_seq_type" model="ir.sequence.type">
-            <field name="name">Stock Warehouse Transfer</field>
+            <field name="name">Consulta Médica</field>
             <field name="code">sis.stock.appointment</field>
         </record>
 

+ 1 - 0
models/__init__.py

@@ -1,5 +1,6 @@
 # -*- encoding: utf-8 -*-
 
+from . import stock_warehouse
 from . import sis_stock_transfer
 from . import sis_stock_transfer_line
 from . import stock_picking

BIN
models/__init__.pyc


+ 0 - 1
models/res_partner.py

@@ -5,7 +5,6 @@ from openerp import models, fields, api, _
 class res_partner(models.Model):
     _inherit = 'res.partner'
 
-    doctor = fields.Boolean(string='Doctor')
     appointment_count = fields.Integer(compute='_appointment_count', string='Consultas')
 
     @api.one

BIN
models/res_partner.pyc


+ 30 - 9
models/sis_stock_transfer.py

@@ -19,6 +19,7 @@
 ##############################################################################
 
 from openerp import models, fields, api, _
+from openerp.exceptions import Warning
 import logging
 
 _logger = logging.getLogger(__name__)
@@ -50,14 +51,28 @@ class SisStockTransfer(models.Model):
                     rec.state = 'done'
             else:
                 rec.state = 'draft'
+    @api.model
+    def _get_default_source_warehouse(self):
+        warehouse = self.env['stock.warehouse'].search([('user_id','=',self.env.user.id)])
+        if warehouse:
+            return warehouse[0].id
+
+    @api.model
+    def _get_default_dest_warehouse(self):
+        if (self._context.get('type') == 'appointment'):
+            warehouse = self.env['stock.warehouse'].search([('name','ilike','Cliente')])
+            if warehouse:
+                return warehouse[0].id
+            else:
+                raise Warning(_("No existe un almacén asignado para clientes"))
 
     name = fields.Char(string='Referencia')
     date = fields.Date(string='Fecha',default=_get_default_date)
     partner_id = fields.Many2one('res.partner', string="Paciente")
-    doctor_id = fields.Many2one('res.users', string="Doctor")
+    doctor_id = fields.Many2one('res.users', string="Doctor", default=lambda self: self.env.user.id)
     appointment_reason = fields.Char('Motivo')
-    source_warehouse = fields.Many2one(comodel_name='stock.warehouse',string='Déposito de Origen')
-    dest_warehouse = fields.Many2one(comodel_name='stock.warehouse',string='Déposito de Destino')
+    source_warehouse = fields.Many2one(comodel_name='stock.warehouse',string='Déposito de Origen', default=_get_default_source_warehouse)
+    dest_warehouse = fields.Many2one(comodel_name='stock.warehouse',string='Déposito de Destino', default=_get_default_dest_warehouse)
     state = fields.Selection(
             selection=[
                 ('draft', 'Borrador'),
@@ -84,15 +99,21 @@ class SisStockTransfer(models.Model):
             vals['name'] = self.env['ir.sequence'].get('sis.stock.appointment') or '/'
         return super(SisStockTransfer, self).create(vals)
 
+    @api.one
+    @api.onchange('doctor_id')
+    def onchange_doctor_id(self):
+        if self.doctor_id:
+            warehouse = self.env['stock.warehouse'].search([('user_id','=',self.doctor_id.id)])
+            if warehouse:
+                self.source_warehouse = warehouse.id
+            else:
+                raise Warning(_("El Doctor seleccionado no posee almacén asignado"))
+
     def get_transfer_picking_type(self):
         self.ensure_one()
 
-        picking_types = self.env['stock.picking.type'].search(
-                [
-                    ('default_location_src_id', '=', self.source_warehouse.lot_stock_id.id),
-                    ('code', '=', 'outgoing')
-                ]
-        )
+        picking_types = self.env['stock.picking.type'].search([('default_location_src_id', '=', self.source_warehouse.lot_stock_id.id),('code', '=', 'outgoing')])
+
         if not picking_types:
             _logger.error("No picking tye found")
             #TODO: Exception Raise

BIN
models/sis_stock_transfer.pyc


+ 1 - 1
models/sis_stock_transfer_line.py

@@ -100,7 +100,7 @@ class SisStockTransferLine(models.Model):
 
         self.ensure_one()
         return {
-            'name' : 'Warehouse Transfer',
+            'name' : 'Transferencia de stock',
             'product_id' : self.product_id.id,
             'product_uom' : self.product_uom_id.id,
             'product_uom_qty' : self.product_qty,

BIN
models/sis_stock_transfer_line.pyc


+ 1 - 1
models/stock_picking.py

@@ -29,4 +29,4 @@ class StockPicking(models.Model):
 
     transfer = fields.Many2one(
             comodel_name='sis.stock.transfer',
-            string='Transfer')
+            string='Transferencia')

BIN
models/stock_picking.pyc


+ 8 - 0
models/stock_warehouse.py

@@ -0,0 +1,8 @@
+# -*- encoding: utf-8 -*-
+
+from openerp import models, fields, api, _
+
+class stock_warehouse(models.Model):
+    _inherit = 'stock.warehouse'
+
+    user_id = fields.Many2one('res.users','Responsable')

+ 1 - 7
views/res_partner.xml

@@ -7,6 +7,7 @@
          <field name="res_model">sis.stock.transfer</field>
          <field name="view_type">form</field>
          <field name="view_mode">tree,form</field>
+         <field name="view_id" ref="sis_appointment_tree_view"/>
          <field name="context">{'search_default_partner_id': active_id}</field>
          <field name="arch" type="xml">
              <tree string="Consultas">
@@ -29,14 +30,7 @@
                     <field string="Consultas" name="appointment_count" widget="statinfo"/>
                   </button>
                 </xpath>
-                <xpath expr="//field[@name='supplier']" position="after">
-                  <field name="doctor"/>
-                </xpath>
-
             </field>
         </record>
-
-
-
     </data>
 </openerp>

+ 3 - 3
views/sis_warehouse_transfer.xml

@@ -77,13 +77,13 @@
                         <group>
                             <field name="date" required="1" attrs="{'readonly':[('state','!=','draft')]}"/>
                             <field name="partner_id" attrs="{'invisible': [('type', '=', 'transfer')],'readonly':[('state','!=','draft')]}"/>
-                            <field name="doctor_id" attrs="{'invisible': [('type', '=', 'transfer')],'readonly':[('state','!=','draft')]}"/>
+                            <field name="doctor_id" attrs="{'invisible': [('type', '=', 'transfer')],'readonly':[('state','!=','draft')]}" options="{'no_create': True, 'no_create_edit':True,'no_open' : True}"/>
                             <field name="appointment_reason" attrs="{'invisible': [('type', '=', 'transfer')],'readonly':[('state','!=','draft')]}"/>
                         </group>
 
                         <group col="4">
-                            <field name="source_warehouse" required="1" attrs="{'readonly':[('state','!=','draft')]}"/>
-                            <field name="dest_warehouse" required="1" attrs="{'readonly':[('state','!=','draft')]}"/>
+                            <field name="source_warehouse" required="1" attrs="{'readonly':[('state','!=','draft')],'invisible':[('type', '=', 'appointment')]}" options="{'no_create': True, 'no_create_edit':True,'no_open' : True}"/>
+                            <field name="dest_warehouse" required="1" attrs="{'readonly':[('state','!=','draft')],'invisible':[('type', '=', 'appointment')]}" options="{'no_create': True, 'no_create_edit':True,'no_open' : True}"/>
                         </group>
 
                         <separator colspan="4" string="Transferencia" attrs="{'invisible':['|',('state','in','draft'),('type', '=', 'appointment')]}"/>

+ 16 - 0
views/stock_warehouse.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+  <data>
+
+    <record model="ir.ui.view" id="sis_stock_warehouse_form">
+       <field name="name">sis_stock_warehouse_form</field>
+       <field name="model">stock.warehouse</field>
+       <field name="inherit_id" ref="stock.view_warehouse"/>
+       <field name="arch" type="xml">
+         <field name="code"  position="after">
+           <field name="user_id" options="{'no_create': True, 'no_create_edit':True}"/>
+         </field>
+      </field>
+    </record>
+  </data>
+</openerp>