Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -407,6 +407,59 @@ def submit_order2(
|
|
407 |
session.close()
|
408 |
return "操作有误: {}".format(e)
|
409 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
410 |
def format_order(order):
|
411 |
try:
|
412 |
return f"""
|
@@ -420,7 +473,7 @@ def format_order(order):
|
|
420 |
<tr><th>销售合同价(FOB美元)</th><td>{order['销售合同价']}</td></tr>
|
421 |
<tr><th>采购价(人民币)</th><td>{order['采购价']}</td></tr>
|
422 |
<tr><th>费用名称</th><td>{order['费用名称']}</td></tr>
|
423 |
-
<tr><th>费用金额</th><td>{order['费用金额']}</td></tr>
|
424 |
<tr><th>采购款收款抬头</th><td>{order['采购款收款抬头']}</td></tr>
|
425 |
<tr><th>采购款收款账号信息</th><td>{order['采购款收款账号信息']}</td></tr>
|
426 |
<tr><th>业务员</th><td>{order['业务员']}</td></tr>
|
|
|
407 |
session.close()
|
408 |
return "操作有误: {}".format(e)
|
409 |
|
410 |
+
def num_to_chinese_upper(num_str):
|
411 |
+
"""将数字转换为中文大写金额"""
|
412 |
+
try:
|
413 |
+
num = float(num_str)
|
414 |
+
if num <= 0:
|
415 |
+
return "零元整"
|
416 |
+
|
417 |
+
# 中文数字
|
418 |
+
chinese_nums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
|
419 |
+
# 单位
|
420 |
+
units = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿']
|
421 |
+
|
422 |
+
# 处理整数部分
|
423 |
+
int_part = int(num)
|
424 |
+
int_str = ''
|
425 |
+
|
426 |
+
if int_part == 0:
|
427 |
+
int_str = '零'
|
428 |
+
else:
|
429 |
+
i = 0
|
430 |
+
while int_part > 0:
|
431 |
+
digit = int_part % 10
|
432 |
+
if digit != 0:
|
433 |
+
int_str = chinese_nums[digit] + units[i] + int_str
|
434 |
+
elif i == 4 or i == 8: # 万位或亿位
|
435 |
+
int_str = units[i] + int_str
|
436 |
+
elif int_str and int_str[0] != '零':
|
437 |
+
int_str = '零' + int_str
|
438 |
+
int_part //= 10
|
439 |
+
i += 1
|
440 |
+
|
441 |
+
# 处理小数部分
|
442 |
+
decimal_part = round((num - int(num)) * 100)
|
443 |
+
decimal_str = ''
|
444 |
+
|
445 |
+
if decimal_part == 0:
|
446 |
+
decimal_str = '整'
|
447 |
+
else:
|
448 |
+
jiao = decimal_part // 10
|
449 |
+
fen = decimal_part % 10
|
450 |
+
|
451 |
+
if jiao > 0:
|
452 |
+
decimal_str += chinese_nums[jiao] + '角'
|
453 |
+
elif fen > 0:
|
454 |
+
decimal_str += '零'
|
455 |
+
|
456 |
+
if fen > 0:
|
457 |
+
decimal_str += chinese_nums[fen] + '分'
|
458 |
+
|
459 |
+
return int_str + '元' + decimal_str
|
460 |
+
except:
|
461 |
+
return num_str # 如果转换失败,返回原始字符串
|
462 |
+
|
463 |
def format_order(order):
|
464 |
try:
|
465 |
return f"""
|
|
|
473 |
<tr><th>销售合同价(FOB美元)</th><td>{order['销售合同价']}</td></tr>
|
474 |
<tr><th>采购价(人民币)</th><td>{order['采购价']}</td></tr>
|
475 |
<tr><th>费用名称</th><td>{order['费用名称']}</td></tr>
|
476 |
+
<tr><th>费用金额</th><td>{order['费用金额']} ({fee_amount_chinese})</td></tr>
|
477 |
<tr><th>采购款收款抬头</th><td>{order['采购款收款抬头']}</td></tr>
|
478 |
<tr><th>采购款收款账号信息</th><td>{order['采购款收款账号信息']}</td></tr>
|
479 |
<tr><th>业务员</th><td>{order['业务员']}</td></tr>
|