SGGL_SHJ/SGGL/BLL/CLGL/TwInputdetailBarCodeService.cs

124 lines
4.5 KiB
C#
Raw Permalink Normal View History

using FineUIPro;
using Model;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
public static class TwInputdetailBarCodeService
{
public static int Count
{
get;
set;
}
public static IEnumerable GetListData(Tw_InputDetailBarCodeOutput table, Grid grid1)
{
List<Tw_InputDetailBarCodeOutput> list = GetListData(table);
Count = list.Count;
if (Count == 0)
{
return null;
}
return list.Skip(grid1.PageSize * grid1.PageIndex).Take(grid1.PageSize);
}
public static List<Tw_InputDetailBarCodeOutput> GetListData(Tw_InputDetailBarCodeOutput table)
{
var q = from x in Funs.DB.Tw_InputDetailBarCode
join master in Funs.DB.Tw_InputMaster on x.InputMasterId equals master.Id into masters
from master in masters.DefaultIfEmpty()
join mat in Funs.DB.HJGL_MaterialCodeLib on x.MaterialCode equals mat.MaterialCode into mats
from mat in mats.DefaultIfEmpty()
where
(string.IsNullOrEmpty(table.Id) || x.Id.Contains(table.Id)) &&
(string.IsNullOrEmpty(table.InputDetailId) || x.InputDetailId.Contains(table.InputDetailId)) &&
(string.IsNullOrEmpty(table.InputMasterId) || x.InputMasterId.Contains(table.InputMasterId)) &&
(string.IsNullOrEmpty(table.MaterialCode) || x.MaterialCode.Contains(table.MaterialCode))
orderby master.CusBillCode, x.MaterialCode, x.Id
select new Tw_InputDetailBarCodeOutput
{
Id = x.Id,
InputDetailId = x.InputDetailId,
InputMasterId = x.InputMasterId,
CusBillCode = master.CusBillCode,
MaterialCode = x.MaterialCode,
MaterialName = mat.MaterialName,
MaterialDef = mat.MaterialDef,
BarCode = x.BarCode
};
return q.ToList();
}
public static void AddByInputDetail(Tw_InputMaster inputMaster, Tw_InputDetail inputDetail)
{
if (inputMaster == null || inputDetail == null)
{
return;
}
if (IsExist(inputDetail.Id))
{
return;
}
string id = SQLHelper.GetNewID();
Tw_InputDetailBarCode table = new Tw_InputDetailBarCode
{
Id = id,
InputDetailId = inputDetail.Id,
InputMasterId = inputMaster.Id,
MaterialCode = inputDetail.MaterialCode,
BarCode = BuildBarCode(inputMaster, inputDetail, id)
};
Funs.DB.Tw_InputDetailBarCode.InsertOnSubmit(table);
Funs.DB.SubmitChanges();
}
public static void DeleteByInputMasterId(string inputMasterId)
{
if (string.IsNullOrEmpty(inputMasterId))
{
return;
}
var list = Funs.DB.Tw_InputDetailBarCode.Where(x => x.InputMasterId == inputMasterId).ToList();
if (list.Count > 0)
{
Funs.DB.Tw_InputDetailBarCode.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
}
}
public static void DeleteByInputDetailId(string inputDetailId)
{
if (string.IsNullOrEmpty(inputDetailId))
{
return;
}
var list = Funs.DB.Tw_InputDetailBarCode.Where(x => x.InputDetailId == inputDetailId).ToList();
if (list.Count > 0)
{
Funs.DB.Tw_InputDetailBarCode.DeleteAllOnSubmit(list);
Funs.DB.SubmitChanges();
}
}
private static bool IsExist(string inputDetailId)
{
return Funs.DB.Tw_InputDetailBarCode.Any(x => x.InputDetailId == inputDetailId);
}
/// <summary>
/// 入库材料条形码生成规则,后续调整条形码内容只需修改此方法。
/// </summary>
public static string BuildBarCode(Tw_InputMaster inputMaster, Tw_InputDetail inputDetail, string barCodeDetailId)
{
return "IB" + barCodeDetailId.Replace("-", string.Empty).ToUpperInvariant();
}
}
}