Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
5e94616d
提交
5e94616d
authored
3月 21, 2025
作者:
刘擎阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.数据迁移
上级
6bb5c09a
全部展开
显示空白字符变更
内嵌
并排
正在显示
13 个修改的文件
包含
711 行增加
和
0 行删除
+711
-0
__manifest__.py
ccs_base/__manifest__.py
+4
-0
zh_CN.po
ccs_base/i18n/zh_CN.po
+0
-0
__init__.py
ccs_base/models/__init__.py
+5
-0
cc_bill_loading.py
ccs_base/models/cc_bill_loading.py
+0
-0
cc_history_big_package.py
ccs_base/models/cc_history_big_package.py
+102
-0
cc_history_package_good.py
ccs_base/models/cc_history_package_good.py
+99
-0
cc_history_package_sync_log.py
ccs_base/models/cc_history_package_sync_log.py
+31
-0
cc_history_ship_package.py
ccs_base/models/cc_history_ship_package.py
+179
-0
ir.model.access.csv
ccs_base/security/ir.model.access.csv
+6
-0
cc_history_big_package_view.xml
ccs_base/views/cc_history_big_package_view.xml
+0
-0
cc_history_package_good_view.xml
ccs_base/views/cc_history_package_good_view.xml
+190
-0
cc_history_package_sync_log_view.xml
ccs_base/views/cc_history_package_sync_log_view.xml
+95
-0
cc_history_ship_package_view.xml
ccs_base/views/cc_history_ship_package_view.xml
+0
-0
没有找到文件。
ccs_base/__manifest__.py
浏览文件 @
5e94616d
...
...
@@ -37,6 +37,10 @@
'views/cc_node_exception_reason_view.xml'
,
'views/cc_bl_view.xml'
,
'views/res_config_setting.xml'
,
'views/cc_history_big_package_view.xml'
,
'views/cc_history_package_good_view.xml'
,
'views/cc_history_ship_package_view.xml'
,
'views/cc_history_package_sync_log_view.xml'
,
# 'views/cc_customers_declaration_order_view.xml',
'templates/login.xml'
,
],
...
...
ccs_base/i18n/zh_CN.po
浏览文件 @
5e94616d
差异被折叠。
点击展开。
ccs_base/models/__init__.py
浏览文件 @
5e94616d
...
...
@@ -11,3 +11,7 @@ from . import mail_thread
from
.
import
order_state_change_rule
from
.
import
res_config_setting
from
.
import
cc_history_big_package
from
.
import
cc_history_package_good
from
.
import
cc_history_ship_package
from
.
import
cc_history_package_sync_log
\ No newline at end of file
ccs_base/models/cc_bill_loading.py
浏览文件 @
5e94616d
差异被折叠。
点击展开。
ccs_base/models/cc_history_big_package.py
0 → 100644
浏览文件 @
5e94616d
# 导入odoo
# 导入日志
import
logging
from
datetime
import
timedelta
import
pytz
from
odoo
import
models
,
fields
,
api
,
_
from
odoo.exceptions
import
UserError
# 获取日志
_logger
=
logging
.
getLogger
(
__name__
)
# 创建一个大包业务对象,用来管理包裹的信息.包裹信息包括所属提单、大包号、下一阶段服务商名称、包裹明细
class
CcHistoryBigPackage
(
models
.
Model
):
# 模型名称
_name
=
'cc.history.big.package'
# 历史大包
_inherit
=
[
'mail.thread'
,
'mail.activity.mixin'
]
# 模型描述
_description
=
'Big Package'
_rec_name
=
'big_package_no'
# 定义模型字段
origin_id
=
fields
.
Integer
(
string
=
'原大包id'
)
# 所属提单
bl_id
=
fields
.
Many2one
(
'cc.bl'
,
string
=
'Bill of Loading'
,
index
=
True
)
# 大包号
big_package_no
=
fields
.
Char
(
string
=
'Big Package No.'
,
index
=
True
)
# 下一阶段服务商名称
next_provider_name
=
fields
.
Char
(
string
=
'Next Provider Name'
)
# 小包 包裹明细
ship_package_ids
=
fields
.
One2many
(
'cc.history.ship.package'
,
'big_package_id'
,
string
=
'Ship Packages'
)
# 商品明细
goods_ids
=
fields
.
One2many
(
'cc.history.package.good'
,
'big_package_id'
,
string
=
'Goods'
)
# 增加包裹数量字段, 用于显示包裹数量, 根据big_package_line_ids计算
# ship_package_qty = fields.Integer(string='Package Qty', compute='_compute_big_package_qty', store=True)
ship_package_qty
=
fields
.
Integer
(
string
=
'Package Qty'
)
# 商品纪录数
# goods_qty = fields.Integer(string='Package Qty', compute='_compute_big_package_qty', store=True)
goods_qty
=
fields
.
Integer
(
string
=
'Package Qty'
)
# New fields: pallet_number (char type), pallet_usage_date
# 托盘号(char型),托盘使用日期
pallet_number
=
fields
.
Char
(
string
=
'Pallet Number'
)
pallet_usage_date
=
fields
.
Date
(
string
=
'Pallet Usage Date'
)
# 增加is_cancel字段, 用于标识大包是否取消, 来自提单的is_cancel字段
# is_cancel = fields.Boolean(string='Is Cancel', related='bl_id.is_cancel', store=True)
is_cancel
=
fields
.
Boolean
(
string
=
'Is Cancel'
)
tally_state
=
fields
.
Selection
([
(
'unprocessed_goods'
,
'Unprocessed goods'
),
(
'checked_goods'
,
'Checked goods'
),
(
'handover_completed'
,
'Handover Completed'
)
],
default
=
'unprocessed_goods'
,
string
=
'Tally Status'
,
index
=
True
)
# 理货状态 未理货/已理货/尾程交接
tally_user_id
=
fields
.
Many2one
(
'res.users'
,
'Tally User'
,
index
=
True
)
# 理货人
tally_time
=
fields
.
Datetime
(
'Tally Time'
)
# 理货时间
delivery_user_id
=
fields
.
Many2one
(
'res.users'
,
string
=
'Delivery User'
,
index
=
True
)
# 尾程交货人
delivery_time
=
fields
.
Datetime
(
string
=
'Delivery Time'
)
# 尾程交货时间
exception_info_ids
=
fields
.
Many2many
(
'cc.exception.info'
,
'history_bigpackage_exception_info_rel'
,
string
=
'Exception Information'
)
def
action_show_ship_package
(
self
):
# 返回一个action,显示包裹
return
{
'name'
:
_
(
'Ship Package'
),
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.history.ship.package'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'big_package_id'
,
'='
,
self
.
id
),
(
'is_cancel'
,
'='
,
False
)],
}
# 创建显示商品的action
def
action_show_package_good
(
self
):
# 返回一个action,显示商品
return
{
'name'
:
_
(
'Goods'
),
'type'
:
'ir.actions.act_window'
,
'res_model'
:
'cc.history.package.good'
,
'view_mode'
:
'tree,form'
,
'domain'
:
[(
'big_package_id'
,
'='
,
self
.
id
),
(
'is_cancel'
,
'='
,
False
)],
}
ccs_base/models/cc_history_package_good.py
0 → 100644
浏览文件 @
5e94616d
# 导入odoo
# 导入日志
import
logging
from
datetime
import
timedelta
import
pytz
from
odoo
import
models
,
fields
,
api
,
_
from
odoo.exceptions
import
UserError
# 获取日志
_logger
=
logging
.
getLogger
(
__name__
)
class
CcPackageGood
(
models
.
Model
):
# 模型名称
_name
=
'cc.history.package.good'
# 历史小包商品
# 模型描述
_description
=
'Package Good'
_rec_name
=
'item_id'
# 定义模型字段
origin_id
=
fields
.
Integer
(
string
=
'原小包商品id'
)
# 所属小包裹
bl_line_id
=
fields
.
Many2one
(
'cc.history.ship.package'
,
string
=
'Ship Package'
,
index
=
True
)
# 所属大包
big_package_id
=
fields
.
Many2one
(
'cc.history.big.package'
)
# 增加一个提单对象的字段, 用于显示提单号,根据bl_line_id的bl_id字段
bl_id
=
fields
.
Many2one
(
'cc.bl'
)
# 按item_id,唯一
_sql_constraints
=
[
(
'item_id_uniq'
,
'unique(item_id)'
,
'The Item ID must be unique.'
)
]
item_id
=
fields
.
Char
(
string
=
'Item ID'
,
index
=
True
)
# SKU标识ID
sku_id
=
fields
.
Char
(
string
=
'SKU ID'
,
index
=
True
)
# 商品中文名称
item_name_cn
=
fields
.
Char
(
string
=
'Name CN'
,
index
=
True
)
# 商品英文名称
item_name_en
=
fields
.
Char
(
string
=
'Name EN'
,
index
=
True
)
# 出口HSCode
export_hs_code
=
fields
.
Char
(
string
=
'Export HSCode'
)
# 进口HSCode
import_hs_code
=
fields
.
Char
(
string
=
'Import HSCode'
)
# 重量
weight
=
fields
.
Float
(
string
=
'Weight'
)
# 数量
quantity
=
fields
.
Integer
(
string
=
'Quantity'
)
# 数量单位
quantity_unit
=
fields
.
Char
(
string
=
'Quantity Unit'
)
# 申报单价
declare_price
=
fields
.
Float
(
string
=
'Declare Price'
)
# 运费
freight
=
fields
.
Float
(
string
=
'Freight'
)
# COD金额
cod_amount
=
fields
.
Float
(
string
=
'COD Amount'
)
# VAT税率
vat_rate
=
fields
.
Float
(
string
=
'VAT Rate'
)
# 商品VAT
item_vat
=
fields
.
Float
(
string
=
'Good VAT'
)
# 原产国
origin_country
=
fields
.
Char
(
string
=
'Origin Country'
)
# 类型
item_type
=
fields
.
Selection
(
[(
'gift'
,
'Gift'
),
(
'normal'
,
'Normal'
),
(
'sample'
,
'Sample'
),
(
'return'
,
'Return'
)],
string
=
'Good Type'
)
# 商品总价
item_total_price
=
fields
.
Float
(
string
=
'Total Price'
)
# 商品链接
item_link
=
fields
.
Char
(
string
=
'Link'
)
# 商品交税情况
item_tax_status
=
fields
.
Selection
(
[(
'TTSTaxed'
,
'TTSTaxed'
),
(
'Sentinel'
,
'Sentinel'
),
(
'LSPTaxed'
,
'LSPTaxed'
),
(
'SellerObligation'
,
'SellerObligation'
)],
string
=
'Tax Status'
)
# 实缴代税总额
actual_tax
=
fields
.
Float
(
string
=
'Actual Tax'
)
# 实缴关税税率
actual_tax_rate
=
fields
.
Float
(
string
=
'Actual Tax Rate'
)
# 实缴关税币种
actual_tax_currency
=
fields
.
Char
(
string
=
'Actual Tax Currency'
)
# 实缴增值税
actual_vat
=
fields
.
Float
(
string
=
'Actual VAT'
)
# 实缴增值税税率
actual_vat_rate
=
fields
.
Float
(
string
=
'Actual VAT Rate'
)
# 实缴GST
actual_gst
=
fields
.
Float
(
string
=
'Actual GST'
)
# 实缴GST税率
actual_gst_rate
=
fields
.
Float
(
string
=
'Actual GST Rate'
)
# 币种
currency_id
=
fields
.
Many2one
(
'res.currency'
,
string
=
'Currency'
)
# 增加is_cancel字段, 用于标识是否取消, 来自小包的is_cancel字段
is_cancel
=
fields
.
Boolean
(
string
=
'Is Cancel'
)
ccs_base/models/cc_history_package_sync_log.py
0 → 100644
浏览文件 @
5e94616d
# 导入odoo
# 导入日志
import
logging
from
datetime
import
timedelta
import
pytz
from
odoo
import
models
,
fields
,
api
,
_
from
odoo.exceptions
import
UserError
# 获取日志
_logger
=
logging
.
getLogger
(
__name__
)
class
CcHistoryPackageSyncLog
(
models
.
Model
):
_name
=
'cc.history.package.sync.log'
_description
=
'CC Ship Package Sync Log'
package_id
=
fields
.
Many2one
(
'cc.history.ship.package'
,
'Ship Package'
,
required
=
True
)
# 同步时间
sync_time
=
fields
.
Datetime
(
'Sync Time'
,
default
=
fields
.
Datetime
.
now
)
# 增加接口客户
api_customer
=
fields
.
Char
(
'Api Customer'
)
# 操作状态
process_code
=
fields
.
Char
(
'TK Process Code'
)
# 操作时间
operate_time
=
fields
.
Datetime
(
'Operate Time'
,
default
=
fields
.
Datetime
.
now
)
# 操作备注
operate_remark
=
fields
.
Text
(
'Operate Remark'
)
# 同步操作人
operate_user
=
fields
.
Many2one
(
'res.users'
,
'Operate User'
,
default
=
lambda
self
:
self
.
env
.
user
)
ccs_base/models/cc_history_ship_package.py
0 → 100644
浏览文件 @
5e94616d
# 导入odoo
# 导入日志
import
logging
from
datetime
import
timedelta
import
pytz
from
odoo
import
models
,
fields
,
api
,
_
from
odoo.exceptions
import
UserError
# 获取日志
_logger
=
logging
.
getLogger
(
__name__
)
class
CcHistoryShipPackage
(
models
.
Model
):
# 模型名称
_name
=
'cc.history.ship.package'
# 历史小包
# 模型描述
_description
=
'Ship Package'
_rec_name
=
'tracking_no'
_inherit
=
[
'mail.thread'
,
'mail.activity.mixin'
]
_order
=
'bl_id, big_package_id,tracking_no'
customer_id
=
fields
.
Many2one
(
'res.partner'
,
string
=
'From Customer'
,
index
=
True
)
origin_id
=
fields
.
Integer
(
string
=
'原小包id'
)
# 定义模型字段
# 提单号
bl_id
=
fields
.
Many2one
(
'cc.bl'
,
string
=
'Bill of Loading'
,
index
=
True
)
# 大包号
big_package_id
=
fields
.
Many2one
(
'cc.big.package'
,
string
=
'Big Package'
,
index
=
True
)
# 物流订单号
logistic_order_no
=
fields
.
Char
(
string
=
'Logistic Order No'
,
index
=
True
)
# 按logistic_order_no,唯一
_sql_constraints
=
[
(
'logistic_order_no_uniq'
,
'unique(logistic_order_no)'
,
'The Logistic Order No must be unique.'
)
]
# 运单号(面单号)
tracking_no
=
fields
.
Char
(
string
=
'Tracking No'
,
index
=
True
)
# 对应面单号
# 客户参考(申报订单号)
customer_ref
=
fields
.
Char
(
string
=
'Customer Ref'
)
# 对应申报订单号
# 内部账号
internal_account_number
=
fields
.
Char
(
string
=
'Internal Account Number'
)
# 用户发货备注
user_track_note
=
fields
.
Char
(
string
=
'User Tracking Note'
)
# 公司代码
company_code
=
fields
.
Char
(
string
=
'Company Code'
)
# 交易单号
trade_no
=
fields
.
Char
(
string
=
'Trade No'
)
# 大包号
big_package_no
=
fields
.
Char
(
string
=
'Big Package No'
,
index
=
True
)
# 海运/铁路的集装箱号
container_no
=
fields
.
Char
(
string
=
'Container No'
)
# 包裹售卖国家编码
buyer_region
=
fields
.
Char
(
string
=
'Package Sell Country Code'
)
# 下一段服务商名称
next_provider_name
=
fields
.
Char
(
string
=
'Next Provider Name'
)
# 发件人姓名
sender_name
=
fields
.
Char
(
string
=
'Sender NAME'
)
# 发件人VAT税号/IOSS NO
sender_vat_no
=
fields
.
Char
(
string
=
'Sender VAT'
)
# 发件人电话
sender_phone
=
fields
.
Char
(
string
=
'Sender PHONE'
)
# 发件人地址1
sender_add_1
=
fields
.
Char
(
string
=
'Sender ADD 1'
)
# 发件人地址2
sender_add_2
=
fields
.
Char
(
string
=
'Sender ADD 2'
)
# 发件人地址3
sender_add_3
=
fields
.
Char
(
string
=
'Sender ADD 3'
)
# 发件人城市
sender_city
=
fields
.
Char
(
string
=
'Sender CITY'
)
# 发件人州
sender_state
=
fields
.
Char
(
string
=
'Sender State'
)
# 发件人邮编
sender_postcode
=
fields
.
Char
(
string
=
'Sender POSTCODE'
)
# 发件人国家
sender_country
=
fields
.
Char
(
string
=
'Sender COUNTRY'
)
# 收件人姓名
receiver_name
=
fields
.
Char
(
string
=
'Receiver NAME'
,
index
=
True
)
# 收件人类型:公司/个人
receiver_type
=
fields
.
Selection
([(
'company'
,
'Company'
),
(
'individual'
,
'Individual'
)],
string
=
'Receiver TYPE'
)
# 收件人VAT税号/IOSS NO
receiver_vat_no
=
fields
.
Char
(
string
=
'Receiver VAT'
)
# 收件人地址1
receiver_add_1
=
fields
.
Char
(
string
=
'Receiver ADD 1'
)
# 收件人地址2
receiver_add_2
=
fields
.
Char
(
string
=
'Receiver ADD 2'
)
# 收件人地址3
receiver_add_3
=
fields
.
Char
(
string
=
'Receiver ADD 3'
)
# 收件人城市
receiver_city
=
fields
.
Char
(
string
=
'Receiver CITY'
)
# 收件人县
receiver_county
=
fields
.
Char
(
string
=
'Receiver COUNTY'
)
receiver_county_translate
=
fields
.
Char
(
string
=
'Receiver COUNTY(EN)'
)
# 收件人邮编
receiver_postcode
=
fields
.
Char
(
string
=
'Receiver POSTCODE'
)
# 收件人邮件
receiver_email
=
fields
.
Char
(
string
=
'Receiver EMAIL'
,
index
=
True
)
# 电话号码
receiver_phone
=
fields
.
Char
(
string
=
'Receiver PHONE'
,
index
=
True
)
# 毛重
gross_weight
=
fields
.
Float
(
string
=
'GROSS WEIGHT'
)
# 重量单位
weight_unit
=
fields
.
Char
(
string
=
'Weight Unit'
)
# 货币
currency
=
fields
.
Char
(
string
=
'Currency'
)
# 币种对象
currency_id
=
fields
.
Many2one
(
'res.currency'
,
string
=
'Currency'
,
index
=
True
)
# 申报价格
total_value
=
fields
.
Float
(
string
=
'Total Value'
)
# 运费
shipping_fee
=
fields
.
Float
(
string
=
'Shipping_fee'
)
# 税的状态
tax_mark
=
fields
.
Selection
(
[(
'TTSTaxed'
,
'TTSTaxed'
),
(
'Sentinel'
,
'Sentinel'
),
(
'LSPTaxed'
,
'LSPTaxed'
),
(
'SellerObligation'
,
'SellerObligation'
)],
string
=
'Tax Mark'
,
index
=
True
)
# 实际缴关税
actual_tax
=
fields
.
Float
(
string
=
'Actual Tax'
)
# 实际缴VAT
actual_vat
=
fields
.
Float
(
string
=
'Actual VAT'
)
# 实缴GST
actual_gst
=
fields
.
Float
(
string
=
'Actual GST'
)
# 实际缴关税币种
actual_tax_currency
=
fields
.
Char
(
string
=
'Actual Tax Currency'
)
# 币种
actual_currency_id
=
fields
.
Many2one
(
'res.currency'
,
string
=
'Currency'
,
index
=
True
)
# 实际缴关税时间
actual_tax_date
=
fields
.
Char
(
string
=
'Actual Tax Date'
)
# 实际缴关税时区
actual_tax_tz
=
fields
.
Char
(
string
=
'Actual Tax Timezone'
)
# 商品明细
good_ids
=
fields
.
One2many
(
'cc.history.package.good'
,
'bl_line_id'
,
string
=
'Goods'
)
# 是否取消
is_cancel
=
fields
.
Boolean
(
string
=
'Is Cancel'
,
default
=
False
)
# 取消原因
cancel_reason
=
fields
.
Char
(
string
=
'Cancel Reason'
)
# 发票附件
invoice_attachment_ids
=
fields
.
Many2many
(
'ir.attachment'
,
relation
=
'history_package_invoice_attachment_rel'
,
string
=
'Invoice Attachments'
)
# 进度状态, 包括已提货、 小包查验、海关放行、小包出库、小包入库、清关失败,包裹交接
state
=
fields
.
Many2one
(
'cc.node'
,
string
=
'Progress state'
,
domain
=
"[('node_type', '=', 'package')]"
,
index
=
True
,
tracking
=
True
,
default
=
lambda
self
:
self
.
env
[
'cc.node'
]
.
search
(
[(
'node_type'
,
'='
,
'package'
),
(
'is_default'
,
'='
,
True
)],
limit
=
1
))
node_exception_reason_id
=
fields
.
Many2one
(
'cc.node.exception.reason'
,
'Exception Reason'
)
process_time
=
fields
.
Datetime
(
'Process Time'
,
index
=
True
)
exception_info_ids
=
fields
.
Many2many
(
'cc.exception.info'
,
'history_package_exception_info_rel'
,
string
=
'Exception Information'
)
# 操作时间RFC3339格式
operation_time
=
fields
.
Char
(
string
=
'Operation Time'
)
# 添加状态说明字段
state_explain
=
fields
.
Text
(
'State Explain'
,
help
=
'State Explain'
)
is_sync
=
fields
.
Boolean
(
'Is Sync'
,
default
=
False
,
index
=
True
)
tk_code
=
fields
.
Char
(
string
=
'TK Code'
,
help
=
'TK Code'
)
# 增加同步日志纪录字段
sync_log_ids
=
fields
.
One2many
(
'cc.history.package.sync.log'
,
'package_id'
,
'Sync Logs'
)
ccs_base/security/ir.model.access.csv
浏览文件 @
5e94616d
...
...
@@ -69,3 +69,8 @@ access_cc_clearance_file_ccs_base.group_clearance_of_customs_manager,cc_clearanc
access_cc_clearance_file_ccs_base.group_clearance_of_customs_user,cc_clearance_file ccs_base.group_clearance_of_customs_user,ccs_base.model_cc_clearance_file,ccs_base.group_clearance_of_customs_user,1,0,0,0
order_state_change_rule_group_user,order_state_change_rule_group_user,ccs_base.model_order_state_change_rule,base.group_user,1,1,1,1
access_cc_history_big_package_base.group_user,cc_history_big_package base.group_user,ccs_base.model_cc_history_big_package,base.group_user,1,1,1,0
access_cc_history_package_good_base.group_user,cc_history_package_good base.group_user,ccs_base.model_cc_history_package_good,base.group_user,1,1,1,0
access_cc_history_ship_package_base.group_user,cc_history_ship_package base.group_user,ccs_base.model_cc_history_ship_package,base.group_user,1,1,1,0
access_cc_history_package_sync_log_base.group_user,cc_history_package_sync_log base.group_user,ccs_base.model_cc_history_package_sync_log,base.group_user,1,1,1,0
\ No newline at end of file
ccs_base/views/cc_history_big_package_view.xml
0 → 100644
浏览文件 @
5e94616d
差异被折叠。
点击展开。
ccs_base/views/cc_history_package_good_view.xml
0 → 100644
浏览文件 @
5e94616d
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
# ---------- History Package Good ------------
<record
model=
"ir.ui.view"
id=
"tree_cc_history_package_good_view"
>
<field
name=
"name"
>
tree.cc.history.package.good
</field>
<field
name=
"model"
>
cc.history.package.good
</field>
<field
name=
"arch"
type=
"xml"
>
<tree
string=
"Package Good"
decoration-warning=
"is_cancel==True"
>
<!-- # decoration-muted="opening_debit == 0 and opening_credit == 0" 根据条件显示每行的颜色 muted-->
<field
optional=
"hide"
name=
"item_id"
/>
<field
optional=
"show"
name=
"sku_id"
string=
"SKU ID"
/>
<field
optional=
"show"
name=
"item_name_en"
/>
<field
optional=
"show"
name=
"item_name_cn"
/>
<field
optional=
"hide"
name=
"item_type"
/>
<field
optional=
"hide"
name=
"origin_country"
/>
<field
optional=
"hide"
name=
"freight"
/>
<field
optional=
"hide"
name=
"weight"
/>
<field
optional=
"hide"
name=
"quantity_unit"
/>
<field
optional=
"hide"
name=
"quantity"
/>
<field
optional=
"show"
name=
"item_total_price"
/>
<field
optional=
"hide"
name=
"item_link"
/>
<field
optional=
"hide"
name=
"bl_id"
/>
<field
optional=
"hide"
name=
"bl_line_id"
string=
"Ship Package"
/>
<field
optional=
"hide"
name=
"export_hs_code"
/>
<field
optional=
"hide"
name=
"import_hs_code"
/>
<field
optional=
"hide"
name=
"currency_id"
string=
"Currency"
/>
<field
optional=
"hide"
name=
"cod_amount"
widget=
"monetary"
options=
"{'currency_field': 'currency_id'}"
/>
<field
optional=
"show"
name=
"declare_price"
widget=
"monetary"
options=
"{'currency_field': 'currency_id'}"
/>
<field
optional=
"show"
name=
"item_vat"
string=
"Item VAT"
widget=
"monetary"
options=
"{'currency_field': 'currency_id'}"
/>
<field
optional=
"show"
name=
"vat_rate"
/>
<field
optional=
"hide"
name=
"actual_tax_currency"
/>
<field
optional=
"show"
name=
"actual_gst"
/>
<field
optional=
"hide"
name=
"actual_gst_rate"
/>
<field
optional=
"show"
name=
"actual_tax"
/>
<field
optional=
"hide"
name=
"actual_tax_rate"
/>
<field
optional=
"show"
name=
"actual_vat"
/>
<field
optional=
"hide"
name=
"actual_vat_rate"
/>
<field
optional=
"show"
name=
"item_tax_status"
/>
<field
optional=
"hide"
name=
"is_cancel"
string=
"Cancelled"
/>
</tree>
</field>
</record>
<record
model=
"ir.ui.view"
id=
"form_cc_history_package_good_view"
>
<field
name=
"name"
>
form.cc.history.package.good
</field>
<field
name=
"model"
>
cc.history.package.good
</field>
<field
name=
"arch"
type=
"xml"
>
<form
string=
"Package Good"
>
<header>
<field
name=
"item_tax_status"
widget=
"statusbar"
/>
</header>
<sheet>
<widget
name=
"web_ribbon"
bg_color=
"bg-warning"
title=
"Cancelled"
attrs=
"{'invisible': [('is_cancel', '=', False)]}"
/>
<label
for=
"item_id"
/>
<h1>
<field
name=
"item_id"
/>
</h1>
<group>
<field
name=
"bl_id"
/>
<field
name=
"bl_line_id"
string=
"Ship Package"
/>
<field
name=
"is_cancel"
string=
"Is Cancel"
/>
</group>
<group>
<group
string=
"Base Info"
>
<field
name=
"sku_id"
string=
"SKU ID"
/>
<field
name=
"item_name_en"
/>
<field
name=
"item_name_cn"
/>
<field
name=
"item_type"
/>
<field
name=
"origin_country"
/>
<field
name=
"freight"
/>
<field
name=
"weight"
/>
<field
name=
"quantity_unit"
/>
<field
name=
"quantity"
/>
<field
name=
"item_total_price"
/>
<field
name=
"item_link"
/>
</group>
<group
string=
"CC Info"
>
<field
name=
"export_hs_code"
/>
<field
name=
"import_hs_code"
/>
<field
name=
"currency_id"
string=
"Currency"
/>
<field
name=
"cod_amount"
/>
<field
name=
"declare_price"
/>
<field
name=
"item_vat"
string=
"Item VAT"
/>
<field
name=
"vat_rate"
/>
<field
name=
"actual_gst"
/>
<field
name=
"actual_gst_rate"
/>
<field
name=
"actual_tax"
/>
<field
name=
"actual_tax_currency"
/>
<field
name=
"actual_tax_rate"
/>
<field
name=
"actual_vat"
/>
<field
name=
"actual_vat_rate"
/>
</group>
</group>
<notebook>
</notebook>
</sheet>
</form>
</field>
</record>
<record
model=
"ir.ui.view"
id=
"search_cc_history_package_good_view"
>
<field
name=
"name"
>
search.cc.history.package.good
</field>
<field
name=
"model"
>
cc.history.package.good
</field>
<field
name=
"arch"
type=
"xml"
>
<search
string=
"Package Good"
>
<field
name=
"item_name_en"
string=
"Search"
filter_domain=
"['|', ('item_id', 'ilike', self)'|', ('sku_id', 'ilike', self)'|', ('item_name_en', 'ilike', self), ('item_name_cn', 'ilike', self)]"
/>
<separator/>
<field
name=
"item_id"
/>
<field
name=
"sku_id"
string=
"SKU ID"
/>
<field
name=
"item_name_en"
/>
<field
name=
"item_name_cn"
/>
<field
name=
"item_type"
/>
<field
name=
"origin_country"
/>
<field
name=
"freight"
/>
<field
name=
"weight"
/>
<field
name=
"quantity_unit"
/>
<field
name=
"quantity"
/>
<field
name=
"item_total_price"
/>
<field
name=
"item_link"
/>
<field
name=
"bl_id"
/>
<field
name=
"bl_line_id"
string=
"Ship Package"
/>
<field
name=
"export_hs_code"
/>
<field
name=
"import_hs_code"
/>
<field
name=
"currency_id"
string=
"Currency"
/>
<field
name=
"cod_amount"
/>
<field
name=
"declare_price"
/>
<field
name=
"item_vat"
string=
"Item VAT"
/>
<field
name=
"vat_rate"
/>
<field
name=
"actual_gst"
/>
<field
name=
"actual_gst_rate"
/>
<field
name=
"actual_tax"
/>
<field
name=
"actual_tax_currency"
/>
<field
name=
"actual_tax_rate"
/>
<field
name=
"actual_vat"
/>
<field
name=
"actual_vat_rate"
/>
<field
name=
"item_tax_status"
/>
<separator/>
<separator/>
<group
expand=
"0"
string=
"Group By"
>
<filter
domain=
"[]"
name=
"groupby_item_type"
string=
"Good Type"
context=
"{'group_by': 'item_type'}"
/>
<filter
domain=
"[]"
name=
"groupby_bl_id"
string=
"Bill of Loading"
context=
"{'group_by': 'bl_id'}"
/>
<filter
domain=
"[]"
name=
"groupby_bl_line_id"
string=
"Ship Package"
context=
"{'group_by': 'bl_line_id'}"
/>
<filter
domain=
"[]"
name=
"groupby_currency_id"
string=
"Currency"
context=
"{'group_by': 'currency_id'}"
/>
<filter
domain=
"[]"
name=
"groupby_item_tax_status"
string=
"Tax Status"
context=
"{'group_by': 'item_tax_status'}"
/>
</group>
<searchpanel>
<field
icon=
"fa-users"
select=
"multi"
name=
"item_type"
/>
<field
icon=
"fa-users"
select=
"multi"
name=
"item_tax_status"
/>
</searchpanel>
</search>
</field>
</record>
<record
model=
"ir.actions.act_window"
id=
"action_cc_history_package_good"
>
<field
name=
"name"
>
History Package Good
</field>
<field
name=
"res_model"
>
cc.history.package.good
</field>
<field
name=
"view_mode"
>
tree,form,pivot,graph
</field>
<field
name=
"domain"
>
[]
</field>
<field
name=
"context"
>
{}
</field>
<field
name=
"help"
type=
"html"
>
<p
class=
"o_view_nocontent_smiling_face"
>
[History Package Good] Not yet! Click the Create button in the top left corner and the sofa is yours!
</p>
<p>
</p>
</field>
</record>
<menuitem
parent=
""
sequence=
"25"
name=
"History Package Goods"
id=
"menu_cc_history_package_good"
action=
"action_cc_history_package_good"
/>
</odoo>
\ No newline at end of file
ccs_base/views/cc_history_package_sync_log_view.xml
0 → 100644
浏览文件 @
5e94616d
<?xml version="1.0" encoding="utf-8"?>
<odoo>
# ---------- CC History Package Sync Log ------------
<record
model=
"ir.ui.view"
id=
"tree_cc_history_package_sync_log_view"
>
<field
name=
"name"
>
tree.cc.history.package.sync.log
</field>
<field
name=
"model"
>
cc.history.package.sync.log
</field>
<field
name=
"arch"
type=
"xml"
>
<tree
string=
"CC History Package Sync Log"
>
<field
optional=
"show"
name=
"package_id"
/>
<field
optional=
"show"
name=
"api_customer"
/>
<field
optional=
"show"
name=
"process_code"
/>
<field
optional=
"show"
name=
"operate_time"
/>
<field
optional=
"show"
name=
"operate_user"
/>
<field
optional=
"show"
name=
"sync_time"
/>
</tree>
</field>
</record>
<record
model=
"ir.ui.view"
id=
"form_cc_history_package_sync_log_view"
>
<field
name=
"name"
>
form.cc.history.package.sync.log
</field>
<field
name=
"model"
>
cc.history.package.sync.log
</field>
<field
name=
"arch"
type=
"xml"
>
<form
string=
"CC History Package Sync Log"
>
<sheet>
<group>
<group>
<field
name=
"package_id"
/>
<field
name=
"api_customer"
/>
<field
name=
"process_code"
/>
<field
name=
"operate_time"
/>
<field
name=
"operate_user"
/>
<field
name=
"sync_time"
/>
</group>
<group>
</group>
</group>
<notebook>
<page
string=
"Operate Remark"
>
<field
name=
"operate_remark"
/>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record
model=
"ir.ui.view"
id=
"search_cc_history_package_sync_log_view"
>
<field
name=
"name"
>
search.cc.history.package.sync.log
</field>
<field
name=
"model"
>
cc.history.package.sync.log
</field>
<field
name=
"arch"
type=
"xml"
>
<search
string=
"CC Ship Package Sync Log"
>
<field
name=
"package_id"
/>
<field
name=
"api_customer"
/>
<field
name=
"process_code"
/>
<field
name=
"operate_time"
/>
<field
name=
"operate_user"
/>
<field
name=
"sync_time"
/>
<separator/>
<filter
name=
"filter_operate_time"
string=
"Operate Time"
date=
"operate_time"
/>
<filter
name=
"filter_sync_time"
string=
"Sync Time"
date=
"sync_time"
/>
<separator/>
<group
expand=
"0"
string=
"Group By"
>
<filter
domain=
"[]"
name=
"groupby_package_id"
string=
"Ship Package"
context=
"{'group_by': 'package_id'}"
/>
<filter
domain=
"[]"
name=
"groupby_operate_user"
string=
"Operate User"
context=
"{'group_by': 'operate_user'}"
/>
</group>
</search>
</field>
</record>
<record
model=
"ir.actions.act_window"
id=
"action_cc_history_package_sync_log"
>
<field
name=
"name"
>
CC History Package Sync Log
</field>
<field
name=
"res_model"
>
cc.history.package.sync.log
</field>
<field
name=
"view_mode"
>
tree
</field>
<field
name=
"domain"
>
[]
</field>
<field
name=
"context"
>
{}
</field>
<field
name=
"help"
type=
"html"
>
<p
class=
"o_view_nocontent_smiling_face"
>
[CC History Package Sync Log] Not yet! Click the Create button in the top left corner and the sofa is yours!
</p>
<p>
</p>
</field>
</record>
</odoo>
\ No newline at end of file
ccs_base/views/cc_history_ship_package_view.xml
0 → 100644
浏览文件 @
5e94616d
差异被折叠。
点击展开。
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论