[FIX]pms_api_rest: fix import odoo.odoo

This commit is contained in:
Darío Lodeiros
2023-03-06 19:04:57 +01:00
parent a212ce3607
commit 56eaef7335

View File

@@ -2,11 +2,11 @@ from datetime import datetime
from odoo import _, fields from odoo import _, fields
from odoo.exceptions import UserError from odoo.exceptions import UserError
from odoo.osv import expression
from odoo.addons.base_rest import restapi from odoo.addons.base_rest import restapi
from odoo.addons.base_rest_datamodel.restapi import Datamodel from odoo.addons.base_rest_datamodel.restapi import Datamodel
from odoo.addons.component.core import Component from odoo.addons.component.core import Component
from odoo.odoo.osv import expression
class PmsInvoiceService(Component): class PmsInvoiceService(Component):
@@ -35,28 +35,25 @@ class PmsInvoiceService(Component):
domain_fields = [ domain_fields = [
("state", "in", ("draft", "posted")), ("state", "in", ("draft", "posted")),
("move_type", "in", ("out_invoice", "out_refund")), ("move_type", "in", ("out_invoice", "out_refund")),
("folio_ids", "!=", False) ("folio_ids", "!=", False),
] ]
domain_filter = list() domain_filter = list()
if pms_invoice_search_param.originAgencyId: if pms_invoice_search_param.originAgencyId:
domain_fields.append( domain_fields.append(
("origin_agency_id","=", pms_invoice_search_param.originAgencyId), ("origin_agency_id", "=", pms_invoice_search_param.originAgencyId),
) )
if pms_invoice_search_param.paymentState == "paid": if pms_invoice_search_param.paymentState == "paid":
domain_fields.append( domain_fields.append(
("payment_state", "in", ("paid", "reversed", "invoicing_legacy")) ("payment_state", "in", ("paid", "reversed", "invoicing_legacy"))
) )
elif pms_invoice_search_param.paymentState == "not_paid": elif pms_invoice_search_param.paymentState == "not_paid":
domain_fields.append( domain_fields.append(("payment_state", "in", ("not_paid", "in_payment")))
("payment_state", "in", ("not_paid", "in_payment"))
)
elif pms_invoice_search_param.paymentState == "partial": elif pms_invoice_search_param.paymentState == "partial":
domain_fields.append( domain_fields.append(
("payment_state", "=", pms_invoice_search_param.paymentState) ("payment_state", "=", pms_invoice_search_param.paymentState)
) )
if ( if pms_invoice_search_param.dateStart and pms_invoice_search_param.dateEnd:
pms_invoice_search_param.dateStart and pms_invoice_search_param.dateEnd):
date_from = fields.Date.from_string(pms_invoice_search_param.dateStart) date_from = fields.Date.from_string(pms_invoice_search_param.dateStart)
date_to = fields.Date.from_string(pms_invoice_search_param.dateEnd) date_to = fields.Date.from_string(pms_invoice_search_param.dateEnd)
domain_fields.extend( domain_fields.extend(
@@ -91,12 +88,16 @@ class PmsInvoiceService(Component):
PmsInvoiceInfo = self.env.datamodels["pms.invoice.info"] PmsInvoiceInfo = self.env.datamodels["pms.invoice.info"]
PmsInvoiceLineInfo = self.env.datamodels["pms.invoice.line.info"] PmsInvoiceLineInfo = self.env.datamodels["pms.invoice.line.info"]
total_invoices = self.env["account.move"].search_count(domain) total_invoices = self.env["account.move"].search_count(domain)
amount_total = sum(self.env["account.move"].search( amount_total = sum(
domain, self.env["account.move"]
order=pms_invoice_search_param.orderBy, .search(
limit=pms_invoice_search_param.limit, domain,
offset=pms_invoice_search_param.offset, order=pms_invoice_search_param.orderBy,
).mapped("amount_total")) limit=pms_invoice_search_param.limit,
offset=pms_invoice_search_param.offset,
)
.mapped("amount_total")
)
for invoice in self.env["account.move"].search( for invoice in self.env["account.move"].search(
domain, domain,
order=pms_invoice_search_param.orderBy, order=pms_invoice_search_param.orderBy,
@@ -111,18 +112,12 @@ class PmsInvoiceService(Component):
PmsInvoiceLineInfo( PmsInvoiceLineInfo(
id=move_line.id, id=move_line.id,
name=move_line.name if move_line.name else None, name=move_line.name if move_line.name else None,
quantity=move_line.quantity quantity=move_line.quantity if move_line.quantity else None,
if move_line.quantity
else None,
priceUnit=move_line.price_unit priceUnit=move_line.price_unit
if move_line.price_unit if move_line.price_unit
else None, else None,
total=move_line.price_total total=move_line.price_total if move_line.price_total else None,
if move_line.price_total discount=move_line.discount if move_line.discount else None,
else None,
discount=move_line.discount
if move_line.discount
else None,
displayType=move_line.display_type displayType=move_line.display_type
if move_line.display_type if move_line.display_type
else None, else None,
@@ -133,16 +128,14 @@ class PmsInvoiceService(Component):
) )
) )
invoice_date = ( invoice_date = (
datetime.combine( datetime.combine(invoice.invoice_date, datetime.min.time()).isoformat()
invoice.invoice_date, datetime.min.time() if invoice.invoice_date
).isoformat() else datetime.combine(
if invoice.invoice_date invoice.invoice_date_due, datetime.min.time()
else datetime.combine( ).isoformat()
invoice.invoice_date_due, datetime.min.time() if invoice.invoice_date_due
).isoformat() else None
if invoice.invoice_date_due )
else None
)
invoice_url = ( invoice_url = (
invoice.get_proforma_portal_url() invoice.get_proforma_portal_url()
if invoice.state == "draft" if invoice.state == "draft"
@@ -167,10 +160,8 @@ class PmsInvoiceService(Component):
partnerName=invoice.partner_id.name partnerName=invoice.partner_id.name
if invoice.partner_id.name if invoice.partner_id.name
else None, else None,
partnerId=invoice.partner_id.id partnerId=invoice.partner_id.id if invoice.partner_id.id else None,
if invoice.partner_id.id moveLines=move_lines if len(move_lines) > 0 else None,
else None,
moveLines=move_lines if len(move_lines)>0 else None,
folioId=invoice.folio_ids, folioId=invoice.folio_ids,
portalUrl=portal_url, portalUrl=portal_url,
moveType=invoice.move_type, moveType=invoice.move_type,
@@ -186,7 +177,7 @@ class PmsInvoiceService(Component):
return PmsInvoiceResults( return PmsInvoiceResults(
invoices=result_invoices, invoices=result_invoices,
total=round(amount_total, 2), total=round(amount_total, 2),
totalInvoices=total_invoices totalInvoices=total_invoices,
) )
@restapi.method( @restapi.method(