# -*- coding: utf-8 -*- ############################################################################### # # Cybrosys Technologies Pvt. Ltd. # # Copyright (C) 2024-TODAY Cybrosys Technologies() # Author: Ammu Raj (odoo@cybrosys.com) # # You can modify it under the terms of the GNU AFFERO # GENERAL PUBLIC LICENSE (AGPL v3), Version 3. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. # # You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE # (AGPL v3) along with this program. # If not, see . # ############################################################################### from odoo import fields, models, tools class ReportLaundryOrder(models.Model): """Model for checking the history of all laundry orders.""" _name = "report.laundry.order" _description = "Report Laundry Order" _order = 'name desc' _auto = False name = fields.Char(string="Label") invoice_status = fields.Selection([ ('upselling', 'Upselling Opportunity'), ('invoiced', 'Fully Invoiced'), ('to invoice', 'To Invoice'), ('no', 'Nothing to Invoice') ], string='Invoice Status', store=True, help="status of invoice") partner_id = fields.Many2one('res.partner', string='Customer', help="Name of the customer") partner_invoice_id = fields.Many2one('res.partner', string='Invoice Address', help="Invoice address of Customer") partner_shipping_id = fields.Many2one('res.partner', string='Delivery Address', help="Delivery address of customer") order_date = fields.Datetime(string="Date", help="Date of order") laundry_person_id = fields.Many2one('res.users', string='Laundry Person', help="Name of laundry person") total_amount = fields.Float(string='Total') currency_id = fields.Many2one("res.currency", string="Currency", help="Name of currency") state = fields.Selection([ ('draft', 'Draft'), ('order', 'Laundry Order'), ('process', 'Processing'), ('done', 'Done'), ('return', 'Returned'), ('cancel', 'Cancelled'), ], string='Status') def _select(self): select_str = """ SELECT (select 1 ) AS nbr, t.id as id, t.name as name, t.invoice_status as invoice_status, t.partner_id as partner_id, t.partner_invoice_id as partner_invoice_id, t.partner_shipping_id as partner_shipping_id, t.order_date as order_date, t.laundry_person_id as laundry_person_id, t.total_amount as total_amount, t.currency_id as currency_id, t.state as state """ return select_str def _group_by(self): group_by_str = """ GROUP BY t.id, name, invoice_status, partner_id, partner_invoice_id, partner_shipping_id, order_date, laundry_person_id, total_amount, currency_id, state """ return group_by_str def init(self): tools.sql.drop_view_if_exists(self._cr, 'report_laundry_order') self._cr.execute(""" CREATE view report_laundry_order as %s FROM laundry_order t %s """ % (self._select(), self._group_by()))