POS转零售单逻辑梳理
2025-03-10 10:39:30 0 举报
转单逻辑图
作者其他创作
大纲/内容
model.DetailShares
业务逻辑入口
RetailOrderPayShareDetails付款分摊明细
查询品牌,条码,品类,单位,部门等信息,营业员,这个是为了组装明细表
KposOrderTempModel对象就是POS传递给ERP的原始信息
有数电子发票数据上传
RetailOrderPayDetails付款明细表(1778)
组装RetailOrderItemDetails明细表
基础档案的基础效验
CPosOrderTempToRetailAsync
是否特殊劵
档期限购(1481行)
获取重打印订单
初始化折扣明细逻辑
组装RetailOrderMaster主表
有促销
效验当前零售单表,是否重复效验30天前的零售单是否重复订单基础信息不能为空效验收银员,班次,订单时间效验如果是退货,还需要效验原单
满减劵、折扣劵、兑换劵、卡券商品,团劵
KposOrderTempToRetailJobWorker
RetailOrderDiscountDetails折扣明细
根据机构多线程
KposOrderMaster初始化
model.Pays
零售单基础效验
手工折扣、会员折扣、优惠劵折扣、整单折让、整单折扣,团劵
销售/退货/充值订单列表查询
JOB入口
是
无促销
List taskList = new List(); int i = 0; foreach (var branchId in branchIds) { i++; var task = Task.Run(async () = { var bId = branchId; var tempOrderListTemp = tempOrderList.Where(x = x.BranchId == bId).OrderBy(x = x.CreateDate).ToList(); foreach (var tempOrder in tempOrderListTemp) { try { Stopwatch sw = new Stopwatch(); sw.Start(); using (var scope = _serviceProvider.CreateScope()) { var _kposManager = scope.ServiceProvider.GetService(typeof(IKposManager)) as IKposManager; await _kposManager.CPosOrderTempToRetailAsync(tempOrder).ConfigureAwait(false); } sw.Stop(); _logger.LogInformation($\"CPos订单{tempOrder.OrderId}转单耗时:{sw.ElapsedMilliseconds}毫秒\
赠品,换购,折扣码
RetailOrderGiftCoupon赠劵
这里按照CPOS创建了一套表这里一共有7张表,其中商品明细,明细分摊都是超千万的表
SecuritiesSurplus处理劵溢余(1973)
RetailReturnToDiscountAsync(1754)
销售/退货/充值订单详情查询
处理抹零,享钱支付
限时特价,限时折扣,满减
促销类型
查询促销单,POS在DetailShares中携带了促销的信息,优惠方式,优惠凭证,优惠金额,参与优惠的数量等(1318行)
Pos分摊好,新增一条RetailOrderPayShareDetails
退货
0 条评论
下一页