You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
5.2 KiB
162 lines
5.2 KiB
using HONORCSData;
|
|
using HONORCSData.Goods;
|
|
using HONORCSData.Order;
|
|
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using HONORCSData.Order;
|
|
namespace OrmTest
|
|
{
|
|
/// <summary>
|
|
/// 采购明细
|
|
/// </summary>
|
|
public class PurchaseDetailModel
|
|
{
|
|
public int Index { get; set; }
|
|
|
|
/// <summary>
|
|
/// 录入日期
|
|
/// </summary>
|
|
public DateTime? EntryTime { get; set; }
|
|
|
|
/// <summary>
|
|
/// 编号
|
|
/// </summary>
|
|
public string No { get; set; }
|
|
|
|
/// <summary>
|
|
/// 类型
|
|
/// </summary>
|
|
public int Type { get; set; }
|
|
|
|
public string GoodsNo { get; set; }
|
|
|
|
public string GoodsName { get; set; }
|
|
|
|
|
|
public string GoodsCategory { get; set; }
|
|
|
|
|
|
public string BrandName { get; set; }
|
|
|
|
|
|
public decimal? Number { get; set; }
|
|
|
|
|
|
public decimal? Price { get; set; }
|
|
|
|
public decimal TotalPrice
|
|
{
|
|
get
|
|
{
|
|
if (Number == null || Price == null) return 0;
|
|
return Number.Value * Price.Value;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
public class CustomTest1
|
|
{
|
|
/// <summary>
|
|
/// 采购明细汇总
|
|
/// </summary>
|
|
/// <param name="condition"></param>
|
|
/// <param name="res"></param>
|
|
/// <returns></returns>
|
|
public static async Task GetPurchaseDetailPageAsync(SqlSugarClient Db)
|
|
{
|
|
Db.CodeFirst.InitTables<EGoods, EGoodsBrand, EGoodsClass>();
|
|
Db.CodeFirst.InitTables<EOrderAlbaran, EOrderAlbaranDetail, EOrderReturn, EOrderReturnDetail>();
|
|
//入库单
|
|
Db.Insertable(new EOrderAlbaranDetail()
|
|
{
|
|
AlbaranId = 1,
|
|
BarCode = "a",
|
|
ChineseName = "a",
|
|
Commentary = "a",
|
|
CostPrice = 1,
|
|
DelFlag = "a",
|
|
Discount = 1,
|
|
GoodsBrandId = 1,
|
|
GoodsBrandName = "a",
|
|
GoodsClassId = 1,
|
|
GoodsClassName = "a",
|
|
GoodsNo = "a",
|
|
Id = new Random().Next(0, 99999999),
|
|
Index = 1,
|
|
IsBlanceBarCode = true,
|
|
IsProhibitedChangeDiscount = true,
|
|
IsTemporary = true,
|
|
Iva = 1,
|
|
IvaId = 1,
|
|
Number = 1,
|
|
OrderId = 1,
|
|
PackageAmount = 1,
|
|
Price = 1,
|
|
PurchaseSpec = "",
|
|
Remark = "a",
|
|
Req = 1,
|
|
SpanishName = "a",
|
|
TenantId = 1,
|
|
Total = 1,
|
|
UnitName = "a"
|
|
}).ExecuteCommand();
|
|
var query1 = Db.Queryable<EOrderAlbaranDetail, EOrderAlbaran, EGoods, EGoodsClass, EGoodsBrand>((d, h, g, c, b) => new JoinQueryInfos(
|
|
JoinType.Left, h.AlbaranId == d.AlbaranId,
|
|
JoinType.Left, d.GoodsNo == g.GoodsNo,
|
|
JoinType.Left, g.GoodsClassId == c.GoodsClassId,
|
|
JoinType.Left, g.BrandId == b.BrandId
|
|
))
|
|
.Where((d, h, g, c, b) => h.AlbaranType == null) //固定入库单
|
|
.Select((d, h, g, c, b) => new PurchaseDetailModel
|
|
{
|
|
EntryTime = h.EntryTime,
|
|
No = h.AlbaranNo,
|
|
Type = 1,
|
|
GoodsNo = d.GoodsNo,
|
|
GoodsName = g.SpanishName,
|
|
GoodsCategory = c.SpanishName,
|
|
BrandName = b.BranchSpanishName,
|
|
Number = d.Number,
|
|
Price = d.Price
|
|
});
|
|
|
|
//退货单
|
|
var query2 = Db.Queryable<EOrderReturnDetail, EOrderReturn, EGoods, EGoodsClass, EGoodsBrand>((d, h, g, c, b) => new JoinQueryInfos(
|
|
JoinType.Left, h.OrderReturnId == d.OrderReturnId,
|
|
JoinType.Left, d.GoodsNo == g.GoodsNo,
|
|
JoinType.Left, g.GoodsClassId == c.GoodsClassId,
|
|
JoinType.Left, g.BrandId == b.BrandId
|
|
)).Where((d, h, g, c, b) => h.OrderReturnType == 1) //固定入库单
|
|
.Select((d, h, g, c, b) => new PurchaseDetailModel
|
|
{
|
|
EntryTime = h.EntryTime,
|
|
No = h.OrderReturnNo,
|
|
Type = 2,
|
|
GoodsNo = d.GoodsNo,
|
|
GoodsName = g.SpanishName,
|
|
GoodsCategory = c.SpanishName,
|
|
BrandName = b.BranchSpanishName,
|
|
Number = d.Number,
|
|
Price = d.Price
|
|
});
|
|
SqlSugar.RefAsync<int> totalNum = 0;
|
|
|
|
var res2 = await query2.Clone().ToPageListAsync(1, 2, totalNum);
|
|
var res = await Db.UnionAll(query1, query2).ToPageListAsync(1, 2, totalNum);
|
|
|
|
var q = Db.Queryable<Order>().Where(it => it.Id == 1).Select(it => new { id=1});
|
|
var q2 = q.Clone();
|
|
var x = q.ToList();
|
|
var y = q2.ToList();
|
|
//var res = await Db.UnionAll<PurchaseDetailModel>(query1.Clone(), query2.Clone()).ToPageListAsync(1, 10, totalNum);
|
|
|
|
}
|
|
|
|
}
|
|
}
|
|
|