You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							1.5 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							31 lines
						
					
					
						
							1.5 KiB
						
					
					
				| from odoo import api, fields, models | |
| 
 | |
| 
 | |
| class ReportPosCustomers(models.AbstractModel): | |
|     _name = 'report.advanced_pos_reports.report_pos_top_selling_customers' | |
| 
 | |
|     def get_top_selling_customers_details(self, no_of_customers=False, start_date=False, end_date=False): | |
|         order_ids = self.env["pos.order"].search([('date_order', '>=', start_date), | |
|                                                   ('date_order', '<=', end_date), | |
|                                                   ('state', 'in', ['paid', 'done', 'invoiced'])]) | |
|         user_currency = self.env.company.currency_id | |
|         if order_ids: | |
|             self.env.cr.execute("""SELECT partner.id, partner.name, | |
|                             sum(amount_total) as amount FROM pos_order, res_partner AS partner  | |
|                             WHERE partner.id= pos_order.partner_id AND pos_order.id IN %s  | |
|                             GROUP BY partner.id, partner.name ORDER BY amount DESC LIMIT %s  | |
|                             """, (tuple(order_ids.ids), no_of_customers)) | |
|             customers = self.env.cr.dictfetchall() | |
|         return { | |
|             'customers': customers or [], | |
|             'today': fields.Datetime.now(), | |
|             'start_date': start_date, | |
|             'end_date': end_date | |
|         } | |
| 
 | |
|     @api.model | |
|     def _get_report_values(self, docids, data=None): | |
|         data = dict(data or {}) | |
|         data.update(self.get_top_selling_customers_details(data['no_of_customers'], data['start_date'], | |
|                                                            data['end_date'])) | |
|         return data
 | |
| 
 |