GoodERP
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.

82 lines
2.9KB

  1. # -*- coding: utf-8 -*-
  2. from odoo import _
  3. from odoo import fields, models, api
  4. class SellReceipt(models.TransientModel):
  5. _name = 'sell.receipt'
  6. _description = '销售收款一览表'
  7. c_category_id = fields.Many2one('core.category', '客户类别')
  8. partner_id = fields.Many2one('partner', '客户')
  9. user_id = fields.Many2one('res.users', '销售员')
  10. type = fields.Char('业务类别')
  11. date = fields.Date('单据日期')
  12. warehouse_id = fields.Many2one('warehouse', '仓库')
  13. order_name = fields.Char('单据编号')
  14. sell_amount = fields.Float('销售金额', digits='Amount')
  15. discount_amount = fields.Float('优惠金额',
  16. digits='Amount')
  17. amount = fields.Float('成交金额', digits='Amount')
  18. partner_cost = fields.Float('客户承担费用', digits='Amount')
  19. receipt = fields.Float('已收款', digits='Amount')
  20. balance = fields.Float('应收款余额', digits='Amount')
  21. receipt_rate = fields.Float('回款率(%)')
  22. note = fields.Char('备注')
  23. def view_detail(self):
  24. '''销售收款一览表查看明细按钮'''
  25. self.ensure_one()
  26. order = self.env['sell.delivery'].search(
  27. [('name', '=', self.order_name)])
  28. if order:
  29. if not order.is_return:
  30. view = self.env.ref('sell.sell_delivery_form')
  31. else:
  32. view = self.env.ref('sell.sell_return_form')
  33. return {
  34. 'name': _('销售发货单'),
  35. 'view_mode': 'form',
  36. 'view_id': False,
  37. 'views': [(view.id, 'form')],
  38. 'res_model': 'sell.delivery',
  39. 'type': 'ir.actions.act_window',
  40. 'res_id': order.id,
  41. }
  42. def generate_reconcile_order(self):
  43. """新建核销单,应收冲预收,客户为所选行客户"""
  44. self.ensure_one()
  45. view = self.env.ref('money.reconcile_order_form')
  46. # 如果已存在该客户核销单,则查看核销单,否则创建
  47. order = self.env['reconcile.order'].search([
  48. ('partner_id', '=', self.partner_id.id),
  49. ('business_type', '=', 'adv_pay_to_get')])
  50. if order:
  51. return {
  52. 'name': _('核销单'),
  53. 'view_mode': 'form',
  54. 'views': [(view.id, 'form')],
  55. 'res_model': 'reconcile.order',
  56. 'type': 'ir.actions.act_window',
  57. 'res_id': order.id,
  58. }
  59. order = self.env['reconcile.order'].create({
  60. 'partner_id': self.partner_id.id,
  61. 'business_type': 'adv_pay_to_get',
  62. })
  63. order.onchange_partner_id()
  64. return {
  65. 'name': _('核销单'),
  66. 'view_mode': 'form',
  67. 'views': [(view.id, 'form')],
  68. 'res_model': 'reconcile.order',
  69. 'type': 'ir.actions.act_window',
  70. 'res_id': order.id,
  71. }
上海开阖软件有限公司 沪ICP备12045867号-1