def test_number_multiple_million_should_show_multiple_laan(self): self.assertEqual(bahttext(12000000.0), u'สิบสองล้านบาทถ้วน') self.assertEqual(bahttext(21000000.0), u'ยี่สิบเอ็ดล้านบาทถ้วน') self.assertEqual( bahttext(51000000000000.51), u'ห้าสิบเอ็ดล้านล้านบาทห้าสิบเอ็ดสตางค์') self.assertEqual( bahttext(10000000680000.51), u'สิบล้านล้านหกแสนแปดหมื่นบาทห้าสิบเอ็ดสตางค์')
def test_number_multiple_million_should_show_multiple_laan(self): self.assertEqual(bahttext(12000000.0), 'สิบสองล้านบาทถ้วน') self.assertEqual(bahttext(21000000.0), 'ยี่สิบเอ็ดล้านบาทถ้วน') self.assertEqual(bahttext(51000000000000.51), 'ห้าสิบเอ็ดล้านล้านบาทห้าสิบเอ็ดสตางค์') self.assertEqual(bahttext(10000000680000.51), 'สิบล้านล้านหกแสนแปดหมื่นบาทห้าสิบเอ็ดสตางค์')
def _total_text(self, cr, uid, ids, field_name, arg, context=None): res = {} for line in self.browse(cr, uid, ids): res[line.id] = { 'bahttext': '-' + bahttext(line.amount_total) + '-', } return res
def save(self, *args, **kwargs): quotation_items = self.quotation_items.all() sub_total = quotation_items.aggregate(Sum('amount'))['amount__sum'] if quotation_items.exists() else 0.00 self.sub_total = Decimal(sub_total) self.after_discount = Decimal(sub_total) - Decimal(self.discount) self.vat = Decimal(self.after_discount) * Decimal(0.07) self.net_total = Decimal(self.after_discount) + Decimal(self.vat) self.baht_text = bahttext(self.net_total) super().save(*args, **kwargs)
def _compute_tax(self, cr, uid, ids, prop, unknow_none, context=None): result = {} for id in ids: result[id] = { 'tax': 0.0, 'base_amount': 0.0, 'tax_text': False, } data = self.browse(cr, uid, [id], context=context)[0] val = val1 = 0.0 for line in data.line_ids: val1 += line.base_amount val += line.tax result[id]['tax'] = val result[id]['base_amount'] = val1 result[id]['tax_text'] = '- '+bahttext.bahttext(val)+' -' return result
def test_input_is_not_number_then_raise_error(self): with self.assertRaises(TypeError) as ex: bahttext('text input') self.assertIsInstance(ex.exception, TypeError)
def _get_amount_text(self): self.amount_text = '-'+bahttext.bahttext(self.amount_total)+'-'
def test_input_is_a_number_then_can_convert_to_string(self): self.assertIsInstance(bahttext(1.0), unicode)
def test_number_in_multiple_could_show_sip(self): self.assertEqual(bahttext(10.0), 'สิบบาทถ้วน') self.assertEqual(bahttext(20.0), 'ยี่สิบบาทถ้วน') self.assertEqual(bahttext(50.0), 'ห้าสิบบาทถ้วน') self.assertEqual(bahttext(11.0), 'สิบเอ็ดบาทถ้วน') self.assertEqual(bahttext(15.0), 'สิบห้าบาทถ้วน')
def test_input_one_interger_wth_decimal_can_convert(self): self.assertEqual(bahttext(1.10), u'หนึ่งบาทสิบสตางค์') self.assertEqual(bahttext(2.50), u'สองบาทห้าสิบสตางค์') self.assertEqual(bahttext(3.75), u'สามบาทเจ็ดสิบห้าสตางค์')
def test_number_start_with_two_could_show_yee(self): self.assertEqual(bahttext(2.21), u'สองบาทยี่สิบเอ็ดสตางค์')
def test_number_ten_thousand_should_show_muern(self): self.assertEqual(bahttext(30000.0), 'สามหมื่นบาทถ้วน') self.assertEqual(bahttext(98765.10), 'เก้าหมื่นแปดพันเจ็ดร้อยหกสิบห้าบาทสิบสตางค์') self.assertEqual(bahttext(30211.21), 'สามหมื่นสองร้อยสิบเอ็ดบาทยี่สิบเอ็ดสตางค์')
def test_number_hundred_thousand_should_show_saan(self): self.assertEqual(bahttext(800000.0), 'แปดแสนบาทถ้วน') self.assertEqual(bahttext(258065.81), 'สองแสนห้าหมื่นแปดพันหกสิบห้าบาทแปดสิบเอ็ดสตางค์')
def test_number_hundred_should_show_roi(self): self.assertEqual(bahttext(100.0), 'หนึ่งร้อยบาทถ้วน') self.assertEqual(bahttext(101.0), 'หนึ่งร้อยเอ็ดบาทถ้วน') self.assertEqual(bahttext(200.0), 'สองร้อยบาทถ้วน') self.assertEqual(bahttext(201.0), 'สองร้อยเอ็ดบาทถ้วน')
def test_number_thousand_should_show_pan(self): self.assertEqual(bahttext(1000.0), 'หนึ่งพันบาทถ้วน') self.assertEqual(bahttext(2000.10), 'สองพันบาทสิบสตางค์') self.assertEqual(bahttext(3211.51), 'สามพันสองร้อยสิบเอ็ดบาทห้าสิบเอ็ดสตางค์') self.assertEqual(bahttext(8000.31), 'แปดพันบาทสามสิบเอ็ดสตางค์')
def test_number_start_with_two_could_show_yee(self): self.assertEqual(bahttext(2.21), 'สองบาทยี่สิบเอ็ดสตางค์')
def test_number_ending_with_one_could_show_edd(self): self.assertEqual(bahttext(4.81), 'สี่บาทแปดสิบเอ็ดสตางค์')
def test_input_one_interger_wth_decimal_can_convert(self): self.assertEqual(bahttext(1.10), 'หนึ่งบาทสิบสตางค์') self.assertEqual(bahttext(2.50), 'สองบาทห้าสิบสตางค์') self.assertEqual(bahttext(3.75), 'สามบาทเจ็ดสิบห้าสตางค์')
def test_input_integer_one_digit_can_convert(self): self.assertEqual(bahttext(0.0), u'ศูนย์บาทถ้วน') self.assertEqual(bahttext(1.0), u'หนึ่งบาทถ้วน') self.assertEqual(bahttext(2.0), u'สองบาทถ้วน') self.assertEqual(bahttext(5.0), u'ห้าบาทถ้วน')
def test_number_million_should_show_laan(self): self.assertEqual(bahttext(3500000.0), 'สามล้านห้าแสนบาทถ้วน')
def test_number_in_multiple_could_show_sip(self): self.assertEqual(bahttext(10.0), u'สิบบาทถ้วน') self.assertEqual(bahttext(20.0), u'ยี่สิบบาทถ้วน') self.assertEqual(bahttext(50.0), u'ห้าสิบบาทถ้วน') self.assertEqual(bahttext(11.0), u'สิบเอ็ดบาทถ้วน') self.assertEqual(bahttext(15.0), u'สิบห้าบาทถ้วน')
def test_number_thoundsand_should_show_pan(self): self.assertEqual(bahttext(1000.0), u'หนึ่งพันบาทถ้วน') self.assertEqual(bahttext(2000.10), u'สองพันบาทสิบสตางค์') self.assertEqual( bahttext(3211.51), u'สามพันสองร้อยสิบเอ็ดบาทห้าสิบเอ็ดสตางค์') self.assertEqual(bahttext(8000.31), u'แปดพันบาทสามสิบเอ็ดสตางค์')
def test_number_ending_with_one_could_show_edd(self): self.assertEqual(bahttext(4.81), u'สี่บาทแปดสิบเอ็ดสตางค์')
def test_number_hundred_thoundsand_should_show_saan(self): self.assertEqual(bahttext(800000.0), u'แปดแสนบาทถ้วน') self.assertEqual( bahttext(258065.81), u'สองแสนห้าหมื่นแปดพันหกสิบห้าบาทแปดสิบเอ็ดสตางค์')
def test_number_hundred_should_show_roi(self): self.assertEqual(bahttext(100.0), u'หนึ่งร้อยบาทถ้วน') self.assertEqual(bahttext(101.0), u'หนึ่งร้อยเอ็ดบาทถ้วน') self.assertEqual(bahttext(200.0), u'สองร้อยบาทถ้วน') self.assertEqual(bahttext(201.0), u'สองร้อยเอ็ดบาทถ้วน')
def test_input_integer_one_digit_can_convert(self): self.assertEqual(bahttext(0.0), 'ศูนย์บาทถ้วน') self.assertEqual(bahttext(1.0), 'หนึ่งบาทถ้วน') self.assertEqual(bahttext(2.0), 'สองบาทถ้วน') self.assertEqual(bahttext(5.0), 'ห้าบาทถ้วน')
def test_number_ten_thoundsand_should_show_muern(self): self.assertEqual(bahttext(30000.0), u'สามหมื่นบาทถ้วน') self.assertEqual( bahttext(98765.10), u'เก้าหมื่นแปดพันเจ็ดร้อยหกสิบห้าบาทสิบสตางค์') self.assertEqual( bahttext(30211.21), u'สามหมื่นสองร้อยสิบเอ็ดบาทยี่สิบเอ็ดสตางค์')
def test_fraction_number_should_not_have_tuan(self): self.assertEqual(bahttext(12000000.0), 'สิบสองล้านบาทถ้วน') self.assertNotEqual(bahttext(12000000.0), 'สิบสองล้านบาทสตางค์')
def test_number_million_should_show_laan(self): self.assertEqual(bahttext(3500000.0), u'สามล้านห้าแสนบาทถ้วน')
def test_input_is_a_number_then_can_convert_to_string(self): self.assertIsInstance(bahttext(1.0), str)
def test_negative_minus_prefix_number_should_print_loob(self): self.assertEqual(bahttext(-1.10), u'ลบหนึ่งบาทสิบสตางค์') self.assertEqual(bahttext(-1000.0), u'ลบหนึ่งพันบาทถ้วน') self.assertEqual( bahttext(-258065.81), u'ลบสองแสนห้าหมื่นแปดพันหกสิบห้าบาทแปดสิบเอ็ดสตางค์')
def test_negative_minus_prefix_number_should_print_loob(self): self.assertEqual(bahttext(-1.10), 'ลบหนึ่งบาทสิบสตางค์') self.assertEqual(bahttext(-1000.0), 'ลบหนึ่งพันบาทถ้วน') self.assertEqual(bahttext(-258065.81), 'ลบสองแสนห้าหมื่นแปดพันหกสิบห้าบาทแปดสิบเอ็ดสตางค์')