using IO.Swagger.Model;
using MyCode.Project.Domain.Businesses;
using MyCode.Project.Domain.Dtos.Common;
using MyCode.Project.Domain.Model;
using MyCode.Project.Domain.Procs;
using System;
using System.Collections.Generic;
namespace MyCode.Project.Services
{
///
/// 通用模块 相关服务
///
public interface ICommonService
{
///
/// 获取流水编码,前缀使用常量
///
/// 前缀
///
string GetSerialCode(string prefix);
///
/// 获取流水编码,前缀使用常量
///
/// 前缀
/// 店铺ID
///
string GetSerialCode(string prefix, Guid shopId);
///
/// 获取店员编码
///
///
string GetClerkCode();
///
/// 获取支付流水号
///
/// 1 招商银行支付 2 富友支付
///
string GetPaySerialCode(int paySupply = 2);
///
/// 业务单据从临时表转换到正式表
///
/// 临时表转正式表
void TempTableToOfficialTabel(ProcTemp2Official proc);
///
/// 执行存储过程 - 业务单据从临时表转换到正式表,并标记0表为已删除状态
///
/// 临时表转正式表
void ProcTempTableToOfficialTableForSalesSheet(ProcTemp2Official proc);
///
/// 获取空白国际码列表
///
/// 获取数量
/// 商家ID
///
List GetBlankBarcodeList(int qty, Guid merchantId);
///
/// 获取区域详情地址
///
/// 省份
/// 城市
/// 区域
/// 详细地址
///
string GetRegionAddress(Guid? state, Guid? city, Guid? district, string address = "");
///
/// 处理区域详细地址
///
/// 区域数据传输对象
void HandlerRegionAddress(List list) where T : IRegionDto;
///
/// 获取数据配置
///
/// 数据类型
/// 编码
/// 商家ID
///
T GetDataConfig(string code, Guid merchantId);
///
/// 创建条码
///
/// 内容
///
string CreateBarcode(string content);
///
/// 创建二维码
///
/// 内容
///
string CreateQrCode(string content);
///
/// 获取当前星期几 返回字符串
///
///
///
string Getweek(int value);
///
/// 计算两点位置的距离,返回两点的距离,单位 米
/// 该公式为GOOGLE提供,误差小于0.2米
///
/// 第一点经度
/// 第一点纬度
/// 第二点经度
/// 第二点纬度
///
double GetDistance(double lng1, double lat1, double lng2, double lat2);
///
/// 计算订单明细的分摊单价的公共方法
///
/// 订单明细
/// 订单含余额支付的总金额
/// 订单不含余额支付的总金额
///
List GetCalPriceAndRevenuePrice(List sheetItem, decimal totalAmount, decimal? cashAmount);
}
}