GoodERP
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

56 líneas
2.1KB

  1. from datetime import date, timedelta
  2. from odoo import models, fields, api
  3. class ReportStockReceiptDeliveryWizard(models.TransientModel):
  4. _name = 'report.stock.receipt.delivery.wizard'
  5. _description = '商品收发汇总表向导'
  6. @api.model
  7. def _default_date_start(self):
  8. return date.today().replace(day=1).strftime('%Y-%m-%d')
  9. @api.model
  10. def _default_date_end(self):
  11. now = date.today()
  12. next_month = now.month == 12 and now.replace(year=now.year + 1,
  13. month=1, day=1) or now.replace(month=now.month + 1, day=1)
  14. return (next_month - timedelta(days=1)).strftime('%Y-%m-%d')
  15. date_start = fields.Date('开始日期', default=_default_date_start,
  16. help='查看本次报表的开始日期')
  17. date_end = fields.Date('结束日期', default=_default_date_end,
  18. help='查看本次报表的结束日期')
  19. warehouse_id = fields.Many2one('warehouse', '仓库',
  20. help='本次报表查看的仓库')
  21. goods_id = fields.Many2one('goods', '商品',
  22. help='本次报表查看的商品')
  23. company_id = fields.Many2one(
  24. 'res.company',
  25. string='公司',
  26. change_default=True,
  27. default=lambda self: self.env.company)
  28. @api.onchange('date_start', 'date_end')
  29. def onchange_date(self):
  30. if self.date_start and self.date_end and self.date_end < self.date_start:
  31. return {'warning': {
  32. 'title': '错误',
  33. 'message': '结束日期不可以小于开始日期'
  34. }, 'value': {'date_end': self.date_start}}
  35. return {}
  36. def open_report(self):
  37. return {
  38. 'type': 'ir.actions.act_window',
  39. 'res_model': 'report.stock.receipt.delivery',
  40. 'view_mode': 'list',
  41. 'target': 'main',
  42. 'name': '商品收发汇总表 %s 至 %s ' % (self.date_start, self.date_end),
  43. 'context': self.read(['date_start', 'date_end', 'warehouse_id', 'goods_id'])[0],
  44. 'limit': 65535,
  45. }
上海开阖软件有限公司 沪ICP备12045867号-1