Skip to content

Commit

Permalink
Merge a751633 into 9d3fd0f
Browse files Browse the repository at this point in the history
  • Loading branch information
floraXiao committed Jun 27, 2018
2 parents 9d3fd0f + a751633 commit ef50225
Show file tree
Hide file tree
Showing 4 changed files with 91 additions and 3 deletions.
10 changes: 9 additions & 1 deletion buy/models/buy_receipt.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def _compute_all_amount(self):
self.amount = total - self.discount_amount + self.delivery_fee

@api.one
@api.depends('is_return', 'invoice_id.reconciled', 'invoice_id.amount')
@api.depends('is_return', 'invoice_id.reconciled', 'invoice_id.amount', 'order_id.paid_amount', 'amount')
def _get_buy_money_state(self):
'''返回付款状态'''
if not self.is_return:
Expand All @@ -45,6 +45,14 @@ def _get_buy_money_state(self):
self.money_state = u'部分付款'
elif self.invoice_id.reconciled == self.invoice_id.amount:
self.money_state = u'全部付款'
if not self.invoice_by_receipt and self.order_id: # 购货订单按收货结算时
if self.order_id.paid_amount == 0:
self.money_state = u'未付款'
elif self.order_id.paid_amount < self.amount:
self.money_state = u'部分付款'
elif self.order_id.paid_amount == self.amount:
self.money_state = u'全部付款'

# 返回退款状态
if self.is_return:
if self.invoice_id.reconciled == 0:
Expand Down
2 changes: 2 additions & 0 deletions ir_sequence_autoreset/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
import test_ir_sequence
27 changes: 27 additions & 0 deletions ir_sequence_autoreset/tests/test_ir_sequence.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
from odoo.tests.common import TransactionCase


class TestIrSequence(TransactionCase):

def test_get_next_char(self):
'''序列号自动重置'''
seq = self.env['ir.sequence'].with_context({
'ir_sequence_date': '2018-04-01',
'ir_sequence_date_range': '2018-05-01',
}).create({
'number_next': 1,
'padding': 4,
'number_increment': 1,
'implementation': 'standard',
'name': 'test-sequence',
'auto_reset': True,
'reset_period': 'month',
'reset_init_number': 1,
})
seq.next_by_id()
n = seq.next_by_id()
self.assertEqual(n, "0002")
seq.reset_time = '00' # current_time = '04',二者不等即可自动重置
n = seq.next_by_id()
self.assertEqual(n, "0001")
55 changes: 53 additions & 2 deletions sell/tests/test_sell_delivery.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ def setUp(self):
for line in self.return_delivery.line_in_ids:
line.location_id = self.env.ref('warehouse.b001_location').id

warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
warehouse_obj.approve_order()
self.warehouse_obj = self.env.ref('warehouse.wh_in_whin0')
self.warehouse_obj.approve_order()

self.warehouse_id = self.env.ref('warehouse.hd_stock')
self.customer_warehouse_id = self.env.ref(
Expand Down Expand Up @@ -98,6 +98,21 @@ def test_sell_to_return_all_return(self):
with self.assertRaises(UserError):
self.delivery.sell_to_return()

def test_sell_to_return_goods_is_using_batch(self):
'''转化为销售退货单goods using_batch'''
vals = {'partner_id': self.partner.id,
'date_due': (datetime.now()).strftime(ISODATEFORMAT),
'warehouse_id': self.warehouse_id.id,
'warehouse_dest_id': self.customer_warehouse_id.id,
'line_out_ids': [(0, 0, {'goods_id': self.env.ref('goods.mouse').id,
'lot_id': self.env.ref('warehouse.wh_move_line_12').id,
'price_taxed': 400,
'goods_qty': 1,
'type': 'out'})],
}
new = self.env['sell.delivery'].create(vals)
new.sell_delivery_done()
new.sell_to_return()

def test_onchange_partner_id(self):
'''选择客户带出其默认地址信息'''
Expand Down Expand Up @@ -300,6 +315,33 @@ def test_goods_inventory(self):
# no message
self.delivery.open_dialog('goods_inventory', vals)

def test_sell_delivery_done_not_create_voucher(self):
'''发库单审核商品不足时不生成凭证'''
# 一个有批号管理的鼠标缺货
self.warehouse_obj.cancel_approved_order()
order_1 = self.env.ref('sell.sell_order_1')
for line in order_1.line_ids:
line.quantity = 1
line.discount_amount = 0
order_1.sell_order_done()
delivery = self.env['sell.delivery'].search(
[('order_id', '=', order_1.id)])
line = delivery.line_out_ids[0]
vals = {
'type': 'inventory',
'warehouse_id': self.env.ref('warehouse.warehouse_inventory').id,
'warehouse_dest_id': self.delivery.warehouse_id.id,
'line_in_ids': [(0, 0, {
'goods_id': line.goods_id.id,
'uos_id': line.uos_id.id,
'goods_qty': 1,
'uom_id': line.uom_id.id,
})]
}
self.assertEqual(line.cost, 0.0)
delivery.goods_inventory(vals)
self.assertTrue(not delivery.voucher_id)

def test_create_zero_wh_in_with_attribute(self):
'''创建一个缺货向导:有属性的商品'''
for line in self.delivery.line_out_ids:
Expand Down Expand Up @@ -329,6 +371,15 @@ def test_sell_delivery_done_raise_credit_limit(self):
with self.assertRaises(UserError):
self.delivery.sell_delivery_done()

def test_sell_delivery_done_return_goods_and_money(self):
'''如果已退货也已退款不生成新的分单'''
self.delivery.sell_to_return()
ret_order = self.env['sell.delivery'].search([('origin_id', '=', self.delivery.id)])
ret_order.bank_account_id = self.bank_account.id
ret_order.receipt = ret_order.amount
ret_order.sell_delivery_done()
self.assertEqual(ret_order.order_id.delivery_count, 1)

def test_sell_delivery_draft(self):
'''反审核发货单/退货单'''
# 先审核发货单,再反审核
Expand Down

0 comments on commit ef50225

Please sign in to comment.