public static bool TryRecordAdd <TSrc, TDst>(this Pinhua2Context context, TSrc src, Action <TSrc> Adding = null) where TSrc : _BaseTableMain where TDst : _BaseTableMain { Adding?.Invoke(src); src.CreateTime = DateTime.Now; src.CreateUser = src.CreateUser ?? "张凯译"; var dst = StaticAutoMapper.Current.Map <TSrc, TDst>(src); context.Entry <TDst>(dst).State = EntityState.Added; var nret = context.SaveChanges(); if (nret > 0) { // SaveChanges 成功的话,把数据库中的数据比如 RecordId 返回 // src.RecordId = dst.RecordId; StaticAutoMapper.Current.Map <TDst, TSrc>(dst, src); return(true); } else { return(false); } }
public static TDst RecordEdit <TSrc, TDst>(this Pinhua2Context context, TSrc src, Action <TSrc> Editing = null /*, Action<TRemote> AfterNew = null*/) where TSrc : _BaseTableMain where TDst : _BaseTableMain { var dst = context.Set <TDst>().FirstOrDefault(m => m.RecordId == src.RecordId); if (dst == null) { return(null); } Editing?.Invoke(src); src.CreateTime = dst.CreateTime; src.CreateUser = dst.CreateUser; src.LastEditTime = DateTime.Now; src.LastEditUser = src.LastEditUser ?? "张凯译"; StaticAutoMapper.Current.Map <TSrc, TDst>(src, dst); context.Entry <TDst>(dst).State = EntityState.Modified; context.SaveChanges(); return(dst); }
public static bool TryRecordEdit <TSrc, TDst>(this Pinhua2Context context, TSrc src, /*out TDst outDst,*/ Action <TSrc> Editing = null) where TSrc : _BaseTableMain where TDst : _BaseTableMain { var dst = context.Set <TDst>().FirstOrDefault(m => m.RecordId == src.RecordId); if (dst == null) { //outDst = null; return(false); } Editing?.Invoke(src); src.CreateTime = dst.CreateTime; src.CreateUser = dst.CreateUser; src.LastEditTime = DateTime.Now; src.LastEditUser = src.LastEditUser ?? "张凯译"; StaticAutoMapper.Current.Map <TSrc, TDst>(src, dst); context.Entry <TDst>(dst).State = EntityState.Modified; var ret = context.SaveChanges(); if (ret > 0) { //outDst = dst; return(true); } else { //outDst = null; return(false); } }
public static TRemote funcEditRecord <TLocal, TRemote>(this Pinhua2Context context, TLocal local, Action <TLocal> BeforeNew = null /*, Action<TRemote> AfterNew = null*/) where TLocal : _BaseTableMain where TRemote : _BaseTableMain { var remote = context.Set <TRemote>().FirstOrDefault(m => m.RecordId == local.RecordId); if (remote == null) { return(null); } BeforeNew?.Invoke(local); //Pinhua2Helper.CompleteMainOnEdit(local); local.CreateTime = remote.CreateTime; local.CreateUser = remote.CreateUser; local.LastEditTime = DateTime.Now; local.LastEditUser = local.LastEditUser ?? "张凯译"; Mapper.Map <TLocal, TRemote>(local, remote); context.Entry <TRemote>(remote).State = EntityState.Modified; //AfterNew?.Invoke(remote); //context.SaveChanges(); return(remote); }
public static string funcAutoCode(this Pinhua2Context context, int codeId) { var id = string.Empty; var autoCode = context.sys_AutoCode.FirstOrDefault(p => p.AutoCodeId == codeId); if (autoCode == null) { return(id); } id += autoCode.Prefix; if (!string.IsNullOrEmpty(autoCode.DateType)) { id += DateTime.Now.ToString(autoCode.DateType); } var autoCodeReg = context.sys_AutoCodeRegister.FirstOrDefault(p => p.AutoCodeId == codeId && p.PrimaryPart == id); if (autoCodeReg != null) { autoCodeReg.CurrentSeed += 1; id += autoCodeReg.CurrentSeed?.ToString($"D{autoCode.SeedLength}"); } else { context.sys_AutoCodeRegister.Add(new Models.sys_AutoCodeRegister { AutoCodeId = codeId, CurrentSeed = 1, PrimaryPart = id, }); id += 1.ToString($"D{autoCode.SeedLength}"); } //context.SaveChanges(); return(id); }
public static IList <view_LastQue> view_最新报价(this Pinhua2Context context) { var o = from m in context.tb_报价表.AsNoTracking() join d in context.tb_报价表D.AsNoTracking() on m.RecordId equals d.RecordId select new { m.RecordId, m.业务类型, m.往来号, d.品号, d.单价, m.日期 }; var l = from p in o where !o.Any(x => x.RecordId > p.RecordId && x.业务类型 == p.业务类型 && x.往来号 == p.往来号 && x.品号 == p.品号) // 不存在更新的RecordId group p by new { p.RecordId, p.业务类型, p.日期, p.往来号, p.品号 } into g select new view_LastQue { RecordId = g.Key.RecordId, 业务类型 = g.Key.业务类型, 往来号 = g.Key.往来号, 品号 = g.Key.品号, 日期 = g.Key.日期, 最低价 = g.Min(x => x.单价), 最高价 = g.Max(x => x.单价) }; return(l.ToList()); }
public static JArray Get销售订单商品(this Pinhua2Context context, string customerId) { if (string.IsNullOrEmpty(customerId)) { return(new JArray()); } var set = from m in context.tb_订单表.AsNoTracking() join d in context.tb_订单表D.AsNoTracking() on m.RecordId equals d.RecordId join x in context.tb_商品表.AsNoTracking() on d.品号 equals x.品号 where m.往来号 == customerId && m.业务类型 == "销售订单" select new { 订 = d, 品 = x }; JArray jsonArray = new JArray(); foreach (var item in set) { jsonArray.Add(Pinhua2Helper.JObjectFromMerge(item.订, item.品)); } return(jsonArray); }
public static JArray Get采购询价商品(this Pinhua2Context context, string customerId, string orderId) { if (orderId == null) { return(new JArray()); } var set = from m in context.tb_报价表.AsNoTracking() join d in context.tb_报价表D.AsNoTracking() on m.RecordId equals d.RecordId join x in context.tb_商品表.AsNoTracking() on d.品号 equals x.品号 where /*m.往来号 == customerId &&*/ m.业务类型 == "采购询价" && m.单号 == orderId select new { 询 = d, 品 = x }; JArray jsonArray = new JArray(); foreach (var item in set) { jsonArray.Add(Pinhua2Helper.JObjectFromMerge(item.询, item.品)); } return(jsonArray); }
public static IList <view_AllOrders2> view_全部订单2(this Pinhua2Context context) { var l = from r in context.tb_订单表.AsNoTracking() join rd in context.tb_订单表D.AsNoTracking() on r.RecordId equals rd.RecordId into rdTemp from rd in rdTemp.DefaultIfEmpty() join p in context.tb_商品表.AsNoTracking() on rd.品号 equals p.品号 into pTemp from p in pTemp.DefaultIfEmpty() select new view_AllOrders2 { Product = p, Order = new view_AllOrders2_order { RecordId = rd.RecordId, 业务类型 = r.业务类型, 交期 = r.交期, 制单 = r.CreateUser, 单价 = rd.单价, 单号 = r.单号, 品号 = rd.品号, 备注 = r.备注, 子单号 = rd.子单号, 往来 = r.往来, 往来号 = r.往来号, 个数 = rd.个数, 日期 = r.日期, 状态 = rd.状态, 金额 = rd.金额, } }; return(l.ToList()); }
public static JArray Get销售出库商品(this Pinhua2Context context, string customerId) { if (string.IsNullOrEmpty(customerId)) { return(new JArray()); } var set = from m in context.tb_IO.AsNoTracking() join d in context.tb_IOD.AsNoTracking() on m.RecordId equals d.RecordId join x in context.tb_商品表.AsNoTracking() on d.品号 equals x.品号 where m.往来号 == customerId && m.类型 == "销售出库" select new { 出 = d, 品 = x }; JArray jsonArray = new JArray(); foreach (var item in set) { var jsonObj = Pinhua2Helper.JObjectFromMerge(item.出, item.品); jsonObj["个数"] = jsonObj["发"]; jsonArray.Add(jsonObj); } return(jsonArray); }
public static bool TryRecordDetailsAdd <TSrc, TSrcD, TDst, TDstD>(this Pinhua2Context context, TSrc src, IEnumerable <TSrcD> srcDSet, Action <TSrcD> Adding = null) where TSrc : _BaseTableMain where TSrcD : _BaseTableDetail where TDst : _BaseTableMain where TDstD : _BaseTableDetail { if (!srcDSet.Any()) { // 如果明细为空,直接返回 true ,避免主表数据无法保存成功 return(true); } foreach (var srcD in srcDSet) { Adding?.Invoke(srcD); srcD.RecordId = src.RecordId; var dstD = StaticAutoMapper.Current.Map <TSrcD, TDstD>(srcD); context.Entry <TDstD>(dstD).State = EntityState.Added; } var nRet = context.SaveChanges(); if (nRet > 0) { return(true); } else { return(false); } }
public static IEnumerable <view_AllOrdersPay> list_收付待付(this Pinhua2Context context, string customerId) { var l = from m in context.list_收付待付() where m.往来号 == customerId select m; return(l); }
public static IEnumerable <view_AllOrdersPay> list_收付待付(this Pinhua2Context context) { var l = from m in context.view_全部订单收付() where m.待付 > 0 select m; return(l.ToList()); }
public static IEnumerable <view_AllOrdersIO> list_订单待收(this Pinhua2Context context) { var l = from m in context.view_全部订单收发() where m.待收 > 0 && m.业务类型 == "采购订单" select m; return(l.ToList()); }
static public Dictionary <string, string> Dic_往来单位(this Pinhua2Context _context) { var customers = _context.tb_往来表.AsNoTracking().OrderBy(m => m.往来号); var customerSelectList = new Dictionary <string, string>(); foreach (var customer in customers) { customerSelectList.Add(customer.往来号, customer.往来号 + " - " + customer.简称); } return(customerSelectList); }
public static TOriginalD RecordDetailAdd <TDtoD, TOriginalD>(this Pinhua2Context context, TDtoD dto, Action <TDtoD> Adding = null) where TDtoD : _BaseTableDetail where TOriginalD : _BaseTableDetail { Adding?.Invoke(dto); var remoteD = StaticAutoMapper.Current.Map <TDtoD, TOriginalD>(dto); context.Entry <TOriginalD>(remoteD).State = EntityState.Added; //context.SaveChanges(); return(remoteD); }
public static string funcAutoCode(this Pinhua2Context context, string codeName) { var autoCode = context.sys_AutoCode.AsNoTracking().FirstOrDefault(p => p.AutoCodeName == codeName); if (autoCode == null) { return(string.Empty); } else { return(funcAutoCode(context, autoCode.AutoCodeId)); } }
public static IList <view_OrderIO> view_订单收发(this Pinhua2Context context) { var l = from rd in context.tb_IOD.AsNoTracking() group rd by rd.子单号 into g select new view_OrderIO { 收 = g.Sum(x => x.收 ?? 0), 发 = g.Sum(x => x.发 ?? 0), 子单号 = g.Key }; return(l.ToList()); }
public static IList <view_Lbq> view_库批存(this Pinhua2Context context) { var l = from detail in context.tb_IOD.AsNoTracking() group detail by new { detail.品号, detail.库位, detail.批次 } into g select new view_Lbq { 品号 = g.Key.品号, 库位 = g.Key.库位, 批次 = g.Key.批次, 库存 = g.Sum(p => p.收 ?? 0 - p.发 ?? 0) }; return(l.ToList()); }
public static IList <view_OrderPay> view_订单收付(this Pinhua2Context context) { var l = from p in context.tb_收付表D.AsNoTracking() where !string.IsNullOrEmpty(p.子单号) group p by p.子单号 into g select new view_OrderPay { 收 = g.Sum(x => x.本次收额 ?? 0), 付 = g.Sum(x => x.本次付额 ?? 0), 子单号 = g.Key }; return(l.ToList()); }
public static TRemote funcNewRecord <TLocal, TRemote>(this Pinhua2Context context, TLocal local, Action <TLocal> BeforeNew = null /*, Action<TRemote> AfterNew = null*/) where TLocal : _BaseTableMain where TRemote : _BaseTableMain { BeforeNew?.Invoke(local); Pinhua2Helper.CompleteMainOnCreate(local); var remote = Mapper.Map <TLocal, TRemote>(local); context.Entry <TRemote>(remote).State = EntityState.Added; //AfterNew?.Invoke(remote); //context.SaveChanges(); return(remote); }
public static TOriginal RecordAdd <TDto, TOriginal>(this Pinhua2Context context, TDto local, Action <TDto> Adding = null /*, Action<TRemote> AfterNew = null*/) where TDto : _BaseTableMain where TOriginal : _BaseTableMain { Adding?.Invoke(local); Pinhua2Helper.CompleteMainOnCreate(local); var remote = StaticAutoMapper.Current.Map <TDto, TOriginal>(local); context.Entry <TOriginal>(remote).State = EntityState.Added; //AfterNew?.Invoke(remote); //context.SaveChanges(); return(remote); }
public static IList <view_Lq> view_库存(this Pinhua2Context context) { var l = from product in context.tb_商品表.AsNoTracking() join detail in context.tb_IOD.AsNoTracking() on product.品号 equals detail.品号 into detailTemp from lDetail in detailTemp.DefaultIfEmpty() group new { product, lDetail } by new { product.品号, lDetail.库位 } into g select new view_Lq { 品号 = g.Key.品号, 库位 = g.Key.库位, //库存 = g.Sum(p => p.lDetail == null ? 0 : p.lDetail.收) - g.Sum(p => p.lDetail == null ? 0 : p.lDetail.发) 库存 = g.Sum(p => p.lDetail == null ? 0 : p.lDetail.收 ?? 0 - p.lDetail.发 ?? 0) }; return(l.ToList()); }
static public List <SelectListItem> DropdownOptions_客户(this Pinhua2Context _context) { var customers = _context.tb_往来表.AsNoTracking(); var customerSelectList = new List <SelectListItem>(); foreach (var customer in customers) { customerSelectList.Add(new SelectListItem { Text = customer.往来号 + " - " + customer.简称, Value = customer.往来号 }); } return(customerSelectList); }
public static IList <view_ShopPrice> view_门店报价(this Pinhua2Context context) { var l = from p in context.tb_商品表.AsNoTracking() select new view_ShopPrice { 品名 = p.品名, 品号 = p.品号, 别名 = p.别名, 型号 = p.型号, 采购价 = p.采购价, 批发价 = p.采购价 + 15, 零售价 = p.采购价 + 15 + 20 }; return(l.ToList()); }
public static IList <view_AllOrdersPay> view_全部订单收付(this Pinhua2Context context) { var l = from m in view_全部订单(context) join x in view_订单收付(context) on m.子单号 equals x.子单号 into vTemp from v in vTemp.DefaultIfEmpty() select new view_AllOrdersPay { RecordId = m.RecordId, 业务类型 = m.业务类型, 交期 = m.交期, 仓 = m.仓, 制单 = m.制单, 单价 = m.单价, 单位 = m.单位, 单号 = m.单号, 品号 = m.品号, 数量 = m.数量, 品名 = m.品名, 品牌 = m.品牌, 备注 = m.备注, 子单号 = m.子单号, 往来 = m.往来, 往来号 = m.往来号, 个数 = m.个数, 型号 = m.型号, 日期 = m.日期, 状态 = m.状态, 税率 = m.税率, 规格 = m.规格, 长度 = m.长度, 宽度 = m.宽度, 高度 = m.高度, 面厚 = m.面厚, 质保 = m.质保, 金额 = m.金额, 已收 = v?.收 ?? 0, 待收 = (m.金额 ?? 0) - (v?.收 ?? 0), 已付 = v?.付 ?? 0, 待付 = (m.金额 ?? 0) - (v?.付 ?? 0), }; return(l.ToList()); }
static public IList <SelectListItem> SelectList_地板计量单位(this Pinhua2Context _context) { var dic = from p in _context.tb_字典表.AsNoTracking() join d in _context.tb_字典表D.AsNoTracking() on p.RecordId equals d.RecordId where p.字典名 == "地板计量单位" select d; var unitSelectList = new List <SelectListItem>(); foreach (var item in dic) { unitSelectList.Add(new SelectListItem { Text = item.称, Value = item.称 }); } return(unitSelectList); }
public static JArray Get销售报价商品(this Pinhua2Context context) { var set = from m in context.tb_报价表.AsNoTracking() join d in context.tb_报价表D.AsNoTracking() on m.RecordId equals d.RecordId join x in context.tb_商品表.AsNoTracking() on d.品号 equals x.品号 where m.业务类型 == "销售报价" select new { 报 = d, 品 = x }; JArray jsonArray = new JArray(); foreach (var item in set) { jsonArray.Add(Pinhua2Helper.JObjectFromMerge(item.报, item.品)); } return(jsonArray); }
public static IList <view_AllOrders2Pay> view_全部订单收付2(this Pinhua2Context context) { var l = from m in view_全部订单2(context) join x in view_订单收付(context) on m.Order.子单号 equals x.子单号 into vTemp from v in vTemp.DefaultIfEmpty() select new view_AllOrders2Pay { Order = m.Order, Product = m.Product, Pay = new view_AllOrders2Pay_pay { 已收 = v?.收 ?? 0, 待收 = (m?.Order?.金额 ?? 0) - (v?.收 ?? 0), 已付 = v?.付 ?? 0, 待付 = (m?.Order?.金额 ?? 0) - (v?.付 ?? 0), } }; return(l.ToList()); }
public static IList <view_AllOrders2IO> view_全部订单收发2(this Pinhua2Context context) { var l = from m in view_全部订单2(context) join x in view_订单收发(context) on m.Order.子单号 equals x.子单号 into vTemp from v in vTemp.DefaultIfEmpty() select new view_AllOrders2IO { Order = m.Order, Product = m.Product, IO = new view_AllOrders2IO_io { 已收 = v?.收 ?? 0, 待收 = (m?.Order?.个数 ?? 0) - (v?.收 ?? 0), 已发 = v?.发 ?? 0, 待发 = (m?.Order?.个数 ?? 0) - (v?.发 ?? 0), } }; return(l.ToList()); }