last day (16 days later) » 

20:09
0
Q: como hacer que abstraiga de un solo nombre en especifico

Carlos BaezEn uno de los popup que estoy haciendo, hice un abstractmodel para que busque por fecha de creacion y por nombre pero esta para que busque de una persona en especifico pero al meter el nombre lo que hace es que me imprime todos los registros y no los registros que solo esten con su nombre Adjunt...

Según tu dominio ('seller_id', '!=', data['seller_id']) estas filtrando todo lo que no sea igual a data['seller_id']. Si quieres lo que sea igual, debe ser =
a ok es que si lo pongo que fuilte lo que sea igual a data seller_id lo maanda vacio le agregue para que igual filtre por rango de fechas y si manda la informacion pero manda todos los rejistros y solo deberian de estar los registros del nombre que se ponga en el seller_id
Que contiene data['seller_id']? Si es todo el registro deberías pasar solo el id así: data['seller_id'].id
seller id es el campo donde estan los nombres de los empleados seller_id = fields.Many2one(comodel_name='hr.employee',string='Ejecutivo‌​') y ahi vienen los nombres de todos los empleados y la finalidad es que me aparezcan solo los registros qu ehay echo x empleado en un rango de fechas
('seller_id', '=', data['seller_id'].id) intenta así.
20:09
File "/opt/odoo14.0/odoo/odoo/addons/base/models/ir_actions_repor‌​t.py", line 939, in _get_rendering_context data.update(report_model._get_report_values(docids, data=data)) File "/opt/odoo14.0/odoo/customs_addons/o14-com-mti/sale_report_t‌​errestre/wizard/sale‌​_executive.py", line 65, in _get_report_values ('seller_id', '=', data['seller_id'].id)], AttributeError: 'str' object has no attribute 'id' manda ese error
y asi lo tengo dentro swl return
def _get_report_values(self, docids, data=None):
    return {
        'doc_ids': docids,
        'doc_model': 'sale.order',
        'docs': self.env['sale.order'].search_read([('date_order', '>=', data['date_order']),
                                                    ('validity_date', '<=', data['validity_date']),
                                                    ('seller_id', '=', data['seller_id'].id)],
                                                    ['name', 'seller_id','date_order', 'consignee_id', 'country_arrival', "freight_type", "gross_weight", "volume","invoice_amount_assur
Entonces tus datos estan mal.
import json
import io
import calendar
from datetime import timedelta, datetime
from dateutil import rrule

from reportlab.platypus.tableofcontents import delta
from xlsxwriter import workbook

from odoo.tools import date_utils
from odoo import fields, models, api


try:
from odoo.tools.misc import xlsxwriter
except ImportError:
import xlsxwriter


class SaleReportAdvance(models.TransientModel):
_name = "sale_report_executive"

date_order = fields.Date(string="Fecha de cotizacion")
validity_date = fields.Date(string="Fecha de vencimiento")
y esta es la estructura del modelo
data['seller_id'] esto es un string, y lo estas comparando contra seller_id que por convencion deberia ser un id
Confirma que datos estas poniendo en data
entonces como lo tendira de que poner+
y que data['seller_id'] sea un numero
20:13
es que seller id no es un numero son string
no se de donde sale data
Eso no es posible
Por que tu campo dice many2one
data = {
'date_order': self.date_order,
'validity_date': self.validity_date,
'seller_id': self.seller_id,
}
return self.env.ref('sale_report_terrestre.action_ejecutivo_report').report_action(self, data=data)
'seller_id': self.seller_id.id
si porque esta ligado a hr.employee donde estan todos esos no se si eso tenga que ver
Pon el id ahí
Y dejalo como estaba
20:14
ok
listo si funciono
ya te debo muchas jajaja
Así empezamos todos, no te preocupas.
oye otra cosa en el reporte en el encabezado debo de poner el nombre del empleado pero no se si sea el mismo problema pero solo pne el numero de empleado mas no el nombre
<h3 class="text-center">Sales By Executive
<span style="font-size: 14px;"><storng>From</storng>:<t t-esc="date_order"/> <strong>To</strong>: <t t-esc="validity_date"/></span>
</h3>
<h3>
<span style="font-size: 14px;"><storng>Ejecutivo</storng>:<t t-esc="seller_id"/></span>
</h3>
asi es como tengo el encabezado
Crea un nuevo campo donde solo mandes el nombre. Algo tipo seller_name
y le pasas el nombre del registro seleccionado
data = {
'date_order': self.date_order,
'validity_date': self.validity_date,
'seller_id': self.seller_id,
}
En ese lugar. Puede ser:

data = {
'date_order': self.date_order,
'validity_date': self.validity_date,
'seller_id': self.seller_id,
'seller_name': self.seller_id.name,
}
a ok
y ese lo agrego en el return igual verdad
Lo pones en el html igual
20:22
ok
manda este error
File "/opt/odoo14.0/odoo/odoo/models.py", line 3011, in read
raise ValueError("Invalid field %r on model %r" % (name, self._name))
ValueError: Invalid field 'seller_name' on model 'sale.order'
class executivecard(models.AbstractModel):
_name = 'report.sale_report_terrestre.sales_executive_view'

@api.model
def _get_report_values(self, docids, data=None):
return {
'doc_ids': docids,
'doc_model': 'sale.order',
'docs': self.env['sale.order'].search_read([('date_order', '>=', data['date_order']),
('validity_date', '<=', data['validity_date']),
('seller_id', '=', data['seller_id'])],
['name', 'seller_id','date_order', 'consignee_id', 'country_arrival', "freight_type", "gross_weight", "volume","invoice_amount_assured",'partner_id','seller_name']),
<h3>
<span style="font-size: 14px;"><storng>Ejecutivo</storng>:<t t-esc="seller_name"/></span>
</h3>
Quitalo de aquí:

['name', 'seller_id','date_order', 'consignee_id', 'country_arrival', "freight_type", "gross_weight", "volume","invoice_amount_assured",'partner_id','seller_name']),
Esos son campos para mostrar de la orden de venta.
'data':data con esto deberia bastar
Tendrías que acceder como t t-esc="data.seller_name"
algo así
listo muchas gracias
No, ps de que.
20:32
la neta me has ayudado mucho con odoo me creeras que se me sorprendi cuando vi que se puede integrar con codigo
Esa es una de las razones por las que esta creciendo mucho. Es altamente personalizable. El problema es que tiene muy poco soporte, y en español menos. O los partner te cobran la capacitación.
Tienes que leer mucho y hacer muchas pruebas. Todos los devs que he conocido de odoo se formaron a la brava.
oye y para darle permisos ya que solo esto lo puede ver el administrador si es necesario crear el archivo groups xml es que en el csv no pertenece a ningun grupo y solo lo puede ver el admin porque hice un ususario aparte y le instale el modulo y no le apaece el menu
Yo lo haria desde la interfaz de odoo
Ahí puedes asignar los grupos tambien
a ok
en lpo spermisos de acceso busco los que cree en el csv y desde ahi creo los grupos verdad
Son cuatro datos los que se registra. El primero es el nombre para identificar el permiso, el segundo debe ser el modelo al que le vas a dar el permiso (en tu caso el que creaste), el tercero es el grupo al que aplicara el permiso, y el cuarto las operaciones CRUD que tendrán permitidas.
20:44
a ok
cualquier cosa puedo escribirte o algun otro contacto al que te pueda escribir?
seri aun permiso por cada campo o por modelo
ya que tengo otros dos modelos de informes avanzados
oye pero los unicos modelos que me aparecen solo del abstactmodel eso esta bien o tambien me debe de aparecer el nombre del transient model?
 
2 hours later…
22:37
@Legna oye ya le di los permisos pero la pestaña aparece solo cuando estoy como administrador en el modulo de ventas

  last day (16 days later) »