punto_retiro.py 3.25 KB
# -*- coding: utf-8 -*-
from odoo import models, fields, api, exceptions

class trans_punto_retiro(models.Model):
    _name = 'trans.punto_retiro'
    _description = 'Punto de Retiro'
    _rec_name = 'pr_localidad'
    _order = 'pr_localidad'

    pr_nombre = fields.Char(
        string=u'Nombre',
        help='Agregar nombre del punto de retiro si lo tuviese'  
    )

    pr_autoelevador = fields.Selection(string='Tiene autoelevador',
        selection=[
            ('sin_elevador', 'No tiene autoelevador'), 
            ('con_autoelevador', 'Tiene autoelevador'),])
    

    pr_localidad = fields.Many2one(
        string=u'Localidad',
        comodel_name='asw.localidad',
        ondelete='restrict',
        required=True,
    )
    
    pr_direccion = fields.Text(
        string=u'Dirección',
        required=True,
    )

    pr_horario = fields.Text(
        string=u'Horarios de Atención',
        #required=True
    )

    pr_feriados = fields.Text(
        string=u'Feriados Locales',
        help=u'Ingrese información sobre horarios en feriados locales',
    )
    
    pr_telefono = fields.Char(
        string='Número de Teléfono',
        required=True
    )

    pr_observaciones = fields.Text(
        string=u'Observaciones',
        help=u'Ingrese si posee alguna observación',
    )
   
    pr_dias_trans = fields.Many2many(
        string=u'Días en que pasa el transporte',
        comodel_name='trans.dias',
        relation='trans_dias_punto_retiro_rel',
        column1='trans_dias_id',
        column2='trans_punto_retiro_id',
    )

    pr_tipo_serv = fields.Selection(
        string=u'Tipo de servicio',
        selection=[('puepue', 'Puerta-Puerta'), ('puepr', 'Puerta-Punto de Retiro'), ('prpue', 'Punto de Retiro-Puerta'), ('prpr', 'Punto de Retiro-Punto de Retiro')]
    )

    pr_transoportista = fields.Many2many(
        string=u'Punto de Retiro',
        comodel_name='trans.transportista',
        relation='pto_retiro_transportista_rel',
        column2='trans_punto_retiro_id',
        column1='trans_transportista_id',
    )

    pr_coordenadas = fields.Char(string='Coordenas punto retiro',
        readonly=True,
        compute="compute_pr_coordenadas")

    dias_arribo = fields.Char(string='Dias internos')

    entrega_domicilio = fields.Boolean(string='Entrega a domicilio')

    retira_domicilio = fields.Boolean(string='Retira a domicilio')

    celular = fields.Char(string='Celular')

    autoelevador = fields.Boolean(string='Autoelevador')
    
    

    @api.depends('pr_coordenadas')
    def compute_pr_coordenadas(self):
        for rec in self:
            loc = rec.pr_localidad.coordenadas
            if loc == False:
                loc = "-32.946832, -60.640122"
            rec.pr_coordenadas = loc
    
    @api.one
    @api.constrains('pr_telefono')
    def _requerir_tel(self):
        if self.pr_telefono == 0:
            #raise exceptions.ValidationError('Por favor ingrese el teléfono')
            pass

    
    
    def AbrirMe(self):
        return {
                'view_type': 'form',
                'view_mode': 'form',
                'res_model': 'trans.punto_retiro',
                'type': 'ir.actions.act_window',
                'target': 'self',
                'res_id': self.id,
            }