0

CARGAR DATOS TIPO FLOATS DESDE UN FORMULARIO ODOO Y MOSTRARLO EN LA VISTA ? AYUDA

por
JUANODOOV8
en 08/06/16 20:53 972 vistas

Amigos presentes por favor requiero de su apoyo, en este momento tengo un formulario cuya funcion es calcular la suma de las dimensiones de las piezas: ingreso alto ancho y largo a travez de esta clase (pieces.py)

# -*- coding: utf-8 -*-
#################################################################
# xxxxxxprueba formulario                                    #
#################################################################
from datetime import timedelta, datetime
from openerp import models,fields,api, osv
from openerp.tools.translate import _
import openerp.addons.decimal_precision as dp

###################################################################3
#Clase para llamado del codigo al formulario nuevo
####################################################################
class pickup(models.Model):
    _name = 'pickup'
    _description = u'Clase pickup'
    _rec_name = 'consecutivo'    
####################################################################
    def _get_consecutivo_num(self, cr, uid, context=None):
        last_id = 0
        get_count = self.search(cr, uid, [(1, '=', 1)], order='id')        
        if get_count:
            for item in self.browse(cr, uid, get_count, context):
                sec = item.consecutivo.split('-')
                sec_num = int(sec[1]) + 1
                last_id = sec_num
        else:
            last_id = 1
        prefijo = 'PSUG-'
        serie = last_id
        consecutivo = prefijo + str(serie).rjust(5, '0')
        return consecutivo      
###################################################################
    @api.one
    def eliminar_buque(self):
        self.write({'eliminado': True, })
        return True
###################################################################
    @api.one    
    @api.depends('consecutivo')
    def extras(self):
        self.consecutivo2 = self.consecutivo          
#########################################################################
 # datos de pestaña general
##################################################################### 
    consecutivo = fields.Char(_(u'Numero de Pickup order:'),required=True, help='Este código de pickup orden es generado por el sistema y no puede modificarse.')
    creation_date_time = fields.Datetime(_(u'Creation Date / Fecha y hora de creación:'), required=True, default=datetime.today().strftime('%Y-%m-%d %H:%M:%S'))
    Pick_up = fields.Datetime(_(u'Pick-up Date / Fecha y hora de Recoger:'), required=True, default=datetime.today().strftime('%Y-%m-%d %H:%M:%S'))
    Delivery_date = fields.Datetime(_(u'Delivery Date / Fecha y hora de Entrega:'), required=True, default=datetime.today().strftime('%Y-%m-%d %H:%M:%S'))
    employee = fields.Many2one('res.users')
    issued_by =fields.Many2one('res.partner', _(u'Issued_by/Emitido por:'), domain=[('customer', '=', True)])
    destination_agent = fields.Many2one('res.partner', _(u'Destination Agent/Agente de Destino:'), domain=[('customer', '=', True)])
    eliminado = fields.Boolean('Eliminado', default=True)   
#####################################################################
 # datos de pestaña Shipper
 # EL CAMPO SHIPPER TRAE LA INFORMACION DEL MODULO CLIENTE
#####################################################################
    shipper = fields.Many2one('res.partner', _(u'Shipper / Name:'), domain=[('customer', '=', True)]) 
    pickup_location = fields.Many2one('res.partner', _(u'Pickup Location / Name:'), domain=[('customer', '=', True)])
    # name = fields.Many2one('res.partner', _(u'Name:'), domain=[('customer', '=', True)])
    place = fields.Many2one('place',string = 'Place:',required=False)
    #string que se utiliza ariiba es para darle  nombre al campo en la vista  xml utilizando many2one cargando campos.
    address = fields.Many2one('res.partner', _(u'Address:'), domain=[('customer', '=', True)])
##################################################################### 
 # datos de pestaña CONSIGNEE
#####################################################################
    CONSIGNEE = fields.Many2one('res.partner', _(u'Consignee / Name:'), domain=[('customer', '=', True)])
    #place1 = fields.Many2one('place','id',required=True)
    CONSIGNEE_location = fields.Many2one('res.partner', _(u'Delivery Location / Name:'), domain=[('customer', '=', True)])
    cliente_to_bill = fields.Many2one('res.partner', _(u'Cliente to bill:'), domain=[('customer', '=', True)])
    cliente_to_bill_2 = fields.Many2one('res.partner', domain=[('customer', '=', True)])
    address = fields.Many2one('res.partner', _(u'Address:'), domain=[('customer', '=', True)])
#####################################################################
# datos  modulo SUPLIER 
##################################################################### 
    Name = fields.Many2one('res.partner', _(u'Name:'), domain=[('customer', '=', True)])
    invoice_number = fields.Char(_(u'Invoice Number:'))
    Purchase_order_number = fields.Char(_(u'Purchase Order Number:'))
#####################################################################
# datos  modulo CARRIER 
##################################################################### 
    carrier = fields.Many2one('res.partner', _(u'Inland Carrier:'), domain=[('customer', '=', True)])
    pro_number = fields.Char(_(u'PRO number:'))
    driver_name = fields.Char(_(u'Drivers Name:'))
    driver_licence = fields.Char(_(u'Drives Licence Number:'))
    tracking_number = fields.Char(_(u'Tracking Number:'))
    arrier = fields.Many2one('res.partner', _(u'Main Carrier:'), domain=[('customer', '=', True)])
    bookin = fields.Char(_(u'Booking Number:'))
    preferred = fields.Selection ([('Air', 'Air'), ('Land', 'Land')],_(u'Preferred Mode of Transportation'), required = False)
########################################################################    
    # datos  modulo COMODITIES 
##################################################################### 
    consecutivo2 = fields.Char(string='PK', digits=dp.get_precision('Account'), # este fields hace un llamado a el codigo de Pick Order el cual es la clave en todos los llamados.
    store=True, readonly=True, compute='extras', track_visibility='always')
    descrip = fields.Text( _(u'Descriptión:'), Translate= True) #Area de Notes solicitada por Global 
    pack = fields.Many2one('res.partner', _(u'Package Type:'), domain=[('customer', '=', True)])#Este fields debera realizar un llamado a listas predeterminadas.
    loc = fields.Many2one('res.partner', _(u'Location:'), domain=[('customer', '=', True)])#Este fields debera realizar un llamado a listas predeterminadas.
    notes = fields.Text( _(u'Notes:'), Translate= True) #Area de Notes solicitada por Global
    dimensiones = fields.One2many('pieces', 'id', string=_(u'Dimensiones')) #Este campo realiza un llamado al archivo 'pieces' ubicado en la carpeta de models para mostrar los datos en unas listas dinamicas modificables en este caso es una lista de calculos
#####################################################################
#la funcion default me muestra el codigo capturado en _get    
#####################################################################
    _defaults = {
    'consecutivo': _get_consecutivo_num,
    }
#####################################################################
#
#####################################################################
    _sql_constraints = [
    ('consecutivo_uniq', 'unique(consecutivo)', 'Este campo debe ser unico'),
    ]

 

------------------------------------------------------------------------------------------------------------------------------------FIN DE CODIGO---------------------------

 

Pickup _Order.py ES EL CODIGO QUE GENERA  EL FORMULARIO COMPLEMENTARIO AL ANTERIOR Y MUESTRA LAS VISTAS RESULTANTES DEL CALCULO QUE HAGO EN EL FORMULARIO ANTERIOR.

# -*- coding: utf-8 -*-
#################################################################
# Ms2 Consulting Group                                          #
#################################################################
from datetime import timedelta, datetime
from openerp import models, fields, api
from openerp.exceptions import ValidationError
from openerp.tools.translate import _

class contenedor_movimiento(models.Model):

    _name = 'pieces'
    _description = u'Clase Descripcion de las Cargas'
    _rec_name = 'total'
                   
#####################################################################
# Resultado suma 
#########################################################################
    @api.one
    @api.depends('medida1', 'medida2', 'medida3', 'piece')
    def _calcular_suma_pieces(self):
        # print "Calcular suma y multiplicaciones de variables Commodity"
       if self.piece > 0:
            cantidad = self.piece
            length = self.medida2
            width = self.medida1
            height = self.medida3  
            self.total = width + length + height
            self.total1 = (width + length + height) * cantidad
       else:  
            self.piece = 1
            cantidad = self.piece
            width = self.medida1 
            length = self.medida2
            height = self.medida3
            self.total = width + length + height
            self.total1 = (width + length + height) * cantidad    
#########################################################################
    
    piece = fields.Integer(_(u'Amount of Pieces:'), required=False)
    medida1 = fields.Float(_(u'Workpiece Width:'), required=False)
    medida2 = fields.Float(_(u'Workpiece Length:'), required=False)
    medida3 = fields.Float(_(u'Workpiece Height:'), required=False)
    total1 = fields.Float(_(u'Total Global'), required=False, 
    store=True, compute='_calcular_suma_pieces')
    total = fields.Float(_(u'Total Individual'), required=False,
    store=True, compute='_calcular_suma_pieces')
#########################################################################


   -----------------------------------------------------------------------------------------------------------------------------------------------FIN DE CODIGO------ 

muestro las dos vistas tanto del calculo como la del formulario en estos dos grupos de codigo

Pieces.xml: La presente vista me mostrara el calculo a realizar el cual sera guardado en base de datos y deberá ser mostrado en este caso no se muestra la informacion que error consideran que pudiera haber por favor ayudenme.

 

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
    <!-- Vista formulario -->
    <record id='view_pieces_form' model='ir.ui.view' >
            <field name='name'>view.pieces.form</field>
            <field name='model'>pieces</field>
            <field name='arch' type='xml'>
                <form string='Pieces' version='7.0'>
                        <group col="4">
                                <field name='piece' />
                                <field name='medida1' />
                                <field name='medida2' />        
                                <field name='medida3' />        
                                <field name='total' />
                                <field name='total1' />
                        </group>
                </form>
            </field>
        </record>
        <!-- Vista arbol -->
        <record id='view_pieces_tree' model='ir.ui.view' >
            <field name='name'>view.pieces.tree</field>
            <field name='model'>pieces</field>
            <field name='arch' type='xml'>
                <tree string='Pieces' version='7.0'> 
                                <field name='piece' />    
                                <field name='medida1' />
                                <field name='medida2' />        
                                <field name='medida3' />
                                <field name='total' />
                                <field name='total1' />
                </tree>
            </field>
        </record>
        <!-- Busqueda -->
        <record id='view_pieces_search' model='ir.ui.view'>
            <field name='name'>view.pieces.search</field>
            <field name='model'>pieces</field>
            <field name='arch' type='xml'>
                <search string='Búsqueda Pieces' version='7.0'>
                                <field name='piece' />    
                                <field name='medida1' />
                                <field name='medida2' />        
                                <field name='medida3' />        
                                <field name='total' />
                                <field name='total1' />
                </search>
            </field>
        </record>
        
        <!-- Accion de menu -->
        <record id='action_pieces' model='ir.actions.act_window'>
            <field name="name">Pieces</field>
            <field name="res_model">pieces</field>
            <field name="view_mode">tree,form</field>
            <field name="view_type">form</field>
            <field name="domain">[('eliminado','=', False)]</field>

        </record>
        
            <!-- Accion de menu Administrador-->
        <record id='action_pieces_administrador' model='ir.actions.act_window'>
            <field name="name">Pieces</field>
            <field name="res_model">pieces</field>
            <field name="view_mode">tree,form</field>
            <field name="view_type">form</field>

        </record>

        <!-- Menu -->
        <menuitem name="Proyecto" id="menu_naviero_main" sequence="25" />
            <menuitem name="Pieces" id="menu_Pieces_sub" sequence="1" parent="menu_naviero_main" />
<!--                 <menuitem id="action_pieces" sequence="1"
                          parent="menu_Pieces_sub" action="action_buque" groups="naviero.group_naviero_user"/> -->
                <menuitem id="menu_buque_administrador" sequence="1"
                          parent="menu_Pieces_sub" action="action_pieces_administrador" groups="naviero.group_naviero_admin"/>                          
    </data>
</openerp>

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------FIN DE VISTA 1

 

Pickup_Order.xml : vista principal la cual debera mostrar el resultado del calculo desde la base de datos QUE contine los calculos hechos en mi VISTA 1

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <!-- Vista formulario -->
        <record id='view_pickup_form' model='ir.ui.view' >
            <field name='name'>view.pickup.form</field>
            <field name='model'>pickup</field>
            <field name='arch' type='xml'>
                <form string='Pickup Order' version='7.0'>
                        <notebook colspan="4" position="inside">
                            <page string="General">
                                <group col="4">
                                    <group>
                                        <field name='consecutivo' />     
                                        <field name='creation_date_time' />                                
                                        <field name='Pick_up'/>
                                        <field name='Delivery_date'/>
                                        <field name='employee'  t-field="user.name"/>
                                        <field name='issued_by'/>
                                        <field name='destination_agent'/>
                                    </group>
                                </group>
                            </page>
                            <page string="Shipper ">
                                <group col="4">
                                    <group>
                                        <field name='shipper' />    
                                        <field name='pickup_location' />
                                        <field name='place' />
                                    </group>
                                </group>                                
                            </page>    
                            
                            <page string="Consiggnee ">
                                <group col="4">
                                    <group>
                                        <field name='CONSIGNEE' />    
                                        <field name='CONSIGNEE_location' />
                                        <field name='place' />
                                                                                
                                    </group>
                                </group>
                                <notebook>
                                    <page string="">
                                    <group>
                                        <field name='cliente_to_bill' />    
                                        <field name='cliente_to_bill_2' />    
                                    </group>                                        
                                    </page>
                                    </notebook>                                    
                            </page>        
                            <page string="Supplier">
                                <group col="4">
                                    <group>
                                        
                                        <field name="Name" widget="handle"/>
                                        <field name="invoice_number" widget="handle"/>     
                                        <field name="Purchase_order_number" widget="handle"/>
                                    
                                    </group>
                                </group>
                            </page>
                            
                            <page string="Carrier">
                                <group col="4">
                                    <group>
                                        
                                        <field name="carrier" widget="handle"/>
                                        <field name="pro_number" widget="handle"/>     
                                        <field name="driver_name" widget="handle"/>
                                        <field name="driver_licence" widget="handle"/>
                                        <field name="tracking_number" widget="handle"/>
                                        <field name="arrier" widget="handle"/>
                                        <field name="bookin" widget="handle"/>
                                        <field name="preferred" widget="handle"/>
                                    
                                    </group>
                                </group>
                            </page>
                            
                            <page string="Comoditties">
                                <group  col="4">
                                        <group>
                                        <field name="consecutivo2" widget="handle"/>        
                                        <field name="pack" widget="handle"/> 
                                        <field name="loc" widget="handle"/>
                                        <field name="descrip" widget="handle"/> 
                                        <field name="notes" widget="handle"/>
                                        <!-- <field name="total1" widget="handle"/> -->                                    
                                        </group>
                                
                             </group>
                                    <notebook>
                                        <page string="Dimention of Pieces" > <!-- Este Nnotebook es el que me muestra el listado de campos editablles llamados de la clase piece.py desde el Pickup_order.py -->
                                            <field name="dimensiones" />    
                                        </page>                                
                                    </notebook>                                             
                            </page>
                        </notebook>
                </form>
            </field>
        </record>
        <!-- Vista arbol -->
        <record id='view_pickup_tree' model='ir.ui.view' >
            <field name='name'>view.pickup.tree</field>
            <field name='model'>pickup</field>
            <field name='arch' type='xml'>
                <tree string='pickup' version='7.0'> <!--colors='#FF0000:full_view==False'> -->    
                    <field name='consecutivo' />
                    <field name='creation_date_time' />                                
                    <field name='Pick_up'/>
                    <field name='Delivery_date'/>                
                </tree>
            </field>
        </record>
        <!-- Busqueda -->
        <record id='view_pickup_search' model='ir.ui.view'>
            <field name='name'>view.pickup.search</field>
            <field name='model'>pickup</field>
            <field name='arch' type='xml'>
                <search string='Búsqueda pickup' version='7.0'>
                                <field name='creation_date_time' />                                
                                <field name='Pick_up'/>                            
                </search>
            </field>
        </record>
        
        <!-- Accion de menu -->
        <record id='action_pickup' model='ir.actions.act_window'>
            <field name="name">Pickup Order</field>
            <field name="res_model">pickup</field>
            <field name="view_mode">tree,form</field>
            <field name="view_type">form</field>
            <field name="domain">[('eliminado','=', False)]</field>

        </record>
        
            <!-- Accion de menu Administrador-->
        <record id='action_pickup_administrador' model='ir.actions.act_window'>
            <field name="name">Pickup Order </field>
            <field name="res_model">pickup</field>
            <field name="view_mode">tree,form</field>
            <field name="view_type">form</field>

        </record>

        <!-- Menu -->
        <menuitem name="Proyecto" id="menu_naviero_main" sequence="25" />
            <menuitem name="Pickup Order" id="menu_pickup_sub" sequence="1" parent="menu_naviero_main" />
<!--                 <menuitem id="menu_pickup" sequence="1"
                          parent="menu_pickup_sub" action="action_pickup" groups="naviero.group_naviero_user"/> -->
                <menuitem id="menu_pickup_administrador" sequence="1"
                          parent="menu_pickup_sub" action="action_pickup_administrador" groups="naviero.group_naviero_admin"/>                          
    </data>
</openerp>

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------VISTA 2

 

 

En resumen, lo que requiero de estos conjuntos de codigos py y xml es que se realicen los calculos primeramente y esos calculos sean guardados en mi base de datos que los mismos se guardan correctamente, pero al instante de mostrarlos en mi Vista 2 hago el llamado a travez de la variable 'dimensiones' y no me muestra en absoluto nada, hubo un instante en que si me la mostraba pero no se que paso:

                       Aqui el fragmento de codigo donde se deben mostrar las dimensiones de las pieces y el resultado

                                         <notebook>
                                        <page string="Dimention of Pieces" > <!-- Este Nnotebook es el que me muestra el listado de campos editablles llamados de la clase piece.py desde el Pickup_order.py -->
                                            <field name="dimensiones" />    
                                        </page>                                
                                    </notebook>     

 

 

Alguien que me apoye por favor le estare agradecido ......feliz tarde

 

 
    
    

 

 

 


0
saud
En 05/06/17 13:22

Thanks

can you plese help me how i can add traking opation form website

also how i can link Master air waybill with hosue air waybill

can you please how we can link website traking opation with model

and how i can update

  • Flag

Su respuesta

Por favor trate de dar una respuesta sustancial. Si desea comentar sobre la pregunta o respuesta, utilice la herramienta de comentarios. Recuerde que siempre puede revisar sus respuestas - no hay necesidad de contestar la misma pregunta dos veces. Además, no olvide valorar - realmente ayuda a seleccionar las mejores preguntas y respuestas

Hacer una pregunta

Mantener informado

Sobre este foro

Esta comunidad es para profesionales y entusiastas de nuestros productos y servicios.

Lea las directrices

Herramientas de las preguntas

40 seguidor(es)

Estadísticas

Preguntado: 08/06/16 20:53
Visto: 972 veces
Última actualización: 14/04/18 12:41