xinjiang/SGGL/BLL/HJGL/MaterialManage/HJGL_EMaterialRegistService.cs

299 lines
13 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
namespace BLL
{
/// <summary>
/// 材料到货登记及验收记录
/// </summary>
public class HJGL_EMaterialRegistService
{
public static Model.SGGLDB db = Funs.DB;
/// <summary>
/// 记录数
/// </summary>
private static int count
{
get;
set;
}
/// <summary>
/// 定义变量
/// </summary>
private static IQueryable<Model.HJGL_EMaterialRegist> qq = from x in db.HJGL_EMaterialRegist orderby x.EMaterialRegistCode select x;
/// <summary>
/// 分页查询列表
/// </summary>
/// <param name="projectId"></param>
/// <param name="startRowIndex"></param>
/// <param name="maximumRows"></param>
/// <returns></returns>
public static IEnumerable GetListData(string projectId, int startRowIndex, int maximumRows)
{
IQueryable<Model.HJGL_EMaterialRegist> q = qq;
if (!string.IsNullOrEmpty(projectId))
{
q = q.Where(e => e.ProjectId == projectId);
}
count = q.Count();
if (count == 0)
{
return new object[] { "" };
}
return from x in q.Skip(startRowIndex).Take(maximumRows)
select new
{
x.EMaterialRegistId,
x.EMaterialRegistCode,
x.EMaterialRegistDate,
x.DeliveryMan,
CompileMan = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(),
x.CompileDate,
x.UnitName,
ProjectName = (from y in db.Base_Project where y.ProjectId == x.ProjectId select y.ProjectName).First()
};
}
/// <summary>
/// 分页查询数
/// </summary>
/// <param name="projectId"></param>
/// <returns></returns>
public static int GetListCount(string projectId)
{
return count;
}
/// <summary>
/// 材料到货登记及验收记录明细分页列表
/// </summary>
/// <param name="eMaterialRegistId"></param>
/// <returns></returns>
public static IEnumerable GetEMaterialRegistItemList(string eMaterialRegistId)
{
return from x in Funs.DB.HJGL_EMaterialRegistItem
where x.EMaterialRegistId == eMaterialRegistId
select new
{
x.EMaterialRegistItemId,
x.EMaterialRegistId,
MatName = (from y in Funs.DB.Base_Consumables where y.ConsumablesId == x.WMT_ID select y.ConsumablesName).First(),
x.SpecificationsModel,
x.UnitName,
x.MaterialCount,
x.ItemCode,
x.Testrecords,
x.Models
};
}
/// <summary>
/// 根据材料到货登记及验收记录Id获取材料到货登记及验收记录信息
/// </summary>
/// <param name="eMaterialRegistId"></param>
/// <returns></returns>
public static Model.HJGL_EMaterialRegist GetEMaterialRegistByID(string eMaterialRegistId)
{
Model.SGGLDB db = Funs.DB;
var eMaterialRegist = db.HJGL_EMaterialRegist.FirstOrDefault(e => e.EMaterialRegistId == eMaterialRegistId);
return eMaterialRegist;
}
/// <summary>
/// 根据材料到货登记及验收记录Id获取明细信息
/// </summary>
/// <param name="eMaterialRegistId"></param>
/// <returns></returns>
public static List<Model.HJGL_EMaterialRegistItem> GetEMaterialRegistItemByRegistId(string eMaterialRegistId)
{
return (from x in Funs.DB.HJGL_EMaterialRegistItem where x.EMaterialRegistId == eMaterialRegistId select x).ToList();
}
/// <summary>
///
/// </summary>
/// <returns></returns>
public static List<Model.HJGL_EMaterialRegistItem> GetRegistItem()
{
return (from x in Funs.DB.HJGL_EMaterialRegistItem select x).ToList();
}
/// <summary>
/// 添加材料到货登记及验收记录
/// </summary>
/// <param name="eMaterialRegist"></param>
public static void AddEMaterialRegist(Model.HJGL_EMaterialRegist eMaterialRegist)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_EMaterialRegist newEMaterialRegist = new Model.HJGL_EMaterialRegist();
newEMaterialRegist.EMaterialRegistId = eMaterialRegist.EMaterialRegistId;
newEMaterialRegist.EMaterialRegistCode = eMaterialRegist.EMaterialRegistCode;
newEMaterialRegist.EMaterialRegistDate = eMaterialRegist.EMaterialRegistDate;
newEMaterialRegist.DeliveryMan = eMaterialRegist.DeliveryMan;
newEMaterialRegist.UnitName = eMaterialRegist.UnitName;
newEMaterialRegist.CompileMan = eMaterialRegist.CompileMan;
newEMaterialRegist.CompileDate = eMaterialRegist.CompileDate;
newEMaterialRegist.ProjectId = eMaterialRegist.ProjectId;
newEMaterialRegist.SystemCode = eMaterialRegist.SystemCode;
newEMaterialRegist.PartACode = eMaterialRegist.PartACode;
newEMaterialRegist.Condition = eMaterialRegist.Condition;
newEMaterialRegist.Name = eMaterialRegist.Name;
newEMaterialRegist.SpecificationsModel = eMaterialRegist.SpecificationsModel;
newEMaterialRegist.Standard = eMaterialRegist.Standard;
newEMaterialRegist.Material = eMaterialRegist.Material;
newEMaterialRegist.SpecialInstructions = eMaterialRegist.SpecialInstructions;
newEMaterialRegist.Unit = eMaterialRegist.Unit;
newEMaterialRegist.Amount = eMaterialRegist.Amount;
newEMaterialRegist.FourLocation = eMaterialRegist.FourLocation;
newEMaterialRegist.Manufacturer = eMaterialRegist.Manufacturer;
newEMaterialRegist.DesignUnit = eMaterialRegist.DesignUnit;
newEMaterialRegist.RealArriveAmount = eMaterialRegist.RealArriveAmount;
newEMaterialRegist.OutProve = eMaterialRegist.OutProve;
newEMaterialRegist.OutPrices = eMaterialRegist.OutPrices;
newEMaterialRegist.Supply = eMaterialRegist.Supply;
newEMaterialRegist.WMT_ID = eMaterialRegist.WMT_ID;
db.HJGL_EMaterialRegist.InsertOnSubmit(newEMaterialRegist);
db.SubmitChanges();
}
/// <summary>
/// 修改材料到货登记及验收记录
/// </summary>
/// <param name="eMaterialRegist"></param>
public static void UpdateEMaterialRegist(Model.HJGL_EMaterialRegist eMaterialRegist)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_EMaterialRegist newEMaterialRegist = db.HJGL_EMaterialRegist.First(e => e.EMaterialRegistId == eMaterialRegist.EMaterialRegistId);
newEMaterialRegist.EMaterialRegistCode = eMaterialRegist.EMaterialRegistCode;
newEMaterialRegist.EMaterialRegistDate = eMaterialRegist.EMaterialRegistDate;
newEMaterialRegist.DeliveryMan = eMaterialRegist.DeliveryMan;
newEMaterialRegist.UnitName = eMaterialRegist.UnitName;
newEMaterialRegist.CompileMan = eMaterialRegist.CompileMan;
newEMaterialRegist.CompileDate = eMaterialRegist.CompileDate;
newEMaterialRegist.ProjectId = eMaterialRegist.ProjectId;
newEMaterialRegist.SystemCode = eMaterialRegist.SystemCode;
newEMaterialRegist.PartACode = eMaterialRegist.PartACode;
newEMaterialRegist.Condition = eMaterialRegist.Condition;
newEMaterialRegist.Name = eMaterialRegist.Name;
newEMaterialRegist.SpecificationsModel = eMaterialRegist.SpecificationsModel;
newEMaterialRegist.Standard = eMaterialRegist.Standard;
newEMaterialRegist.Material = eMaterialRegist.Material;
newEMaterialRegist.SpecialInstructions = eMaterialRegist.SpecialInstructions;
newEMaterialRegist.Unit = eMaterialRegist.Unit;
newEMaterialRegist.Amount = eMaterialRegist.Amount;
newEMaterialRegist.FourLocation = eMaterialRegist.FourLocation;
newEMaterialRegist.Manufacturer = eMaterialRegist.Manufacturer;
newEMaterialRegist.DesignUnit = eMaterialRegist.DesignUnit;
newEMaterialRegist.RealArriveAmount = eMaterialRegist.RealArriveAmount;
newEMaterialRegist.OutProve = eMaterialRegist.OutProve;
newEMaterialRegist.OutPrices = eMaterialRegist.OutPrices;
newEMaterialRegist.Supply = eMaterialRegist.Supply;
newEMaterialRegist.WMT_ID = eMaterialRegist.WMT_ID;
db.SubmitChanges();
}
/// <summary>
/// 删除材料到货登记及验收记录
/// </summary>
/// <param name="eMaterialRegistId"></param>
public static void DeleteEMaterialRegist(string eMaterialRegistId)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_EMaterialRegist eMaterialRegist = db.HJGL_EMaterialRegist.First(e => e.EMaterialRegistId == eMaterialRegistId);
db.HJGL_EMaterialRegist.DeleteOnSubmit(eMaterialRegist);
db.SubmitChanges();
}
/// <summary>
/// 添加材料到货登记及验收记录明细
/// </summary>
/// <param name="item"></param>
public static void AddEMaterialRegistItem(Model.HJGL_EMaterialRegistItem item)
{
Model.SGGLDB db = Funs.DB;
Model.HJGL_EMaterialRegistItem newItem = new Model.HJGL_EMaterialRegistItem();
newItem.EMaterialRegistItemId = item.EMaterialRegistItemId;
newItem.EMaterialRegistId = item.EMaterialRegistId;
newItem.WMT_ID = item.WMT_ID;
newItem.SpecificationsModel = item.SpecificationsModel;
newItem.UnitName = item.UnitName;
newItem.MaterialCount = item.MaterialCount;
newItem.ItemCode = item.ItemCode;
newItem.Testrecords = item.Testrecords;
newItem.Models = item.Models;
db.HJGL_EMaterialRegistItem.InsertOnSubmit(newItem);
db.SubmitChanges();
}
/// <summary>
/// 根据材料到货登记及验收记录Id删除所有相关明细
/// </summary>
/// <param name="eMaterialRegistId"></param>
public static void DeleteEMaterialRegistItem(string projectId,string unitId, string eMaterialRegistId)
{
Model.SGGLDB db = Funs.DB;
var deleteItem = from x in db.HJGL_EMaterialRegistItem where x.EMaterialRegistId == eMaterialRegistId select x;
/// 取到货明细 库存减去明细值
if (deleteItem.Count() > 0)
{
foreach (var ditem in deleteItem)
{
int count = 0;
if (ditem.MaterialCount.HasValue)
{
count = count - ditem.MaterialCount.Value;
}
if (count < 0)
{
BLL.HJGL_EMInventoryRecordsService.UpdateEMInventoryRecords(projectId,unitId, ditem.WMT_ID, ditem.Models, ditem.SpecificationsModel, count);
}
}
db.HJGL_EMaterialRegistItem.DeleteAllOnSubmit(deleteItem);
db.SubmitChanges();
}
}
/// <summary>
/// 获取打印列表
/// </summary>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <returns></returns>
public static IEnumerable GetListDataPrint(string eMaterialRegistId)
{
return from x in db.HJGL_EMaterialRegistItem
join y in db.HJGL_EMaterialRegist on x.EMaterialRegistId equals y.EMaterialRegistId
where y.EMaterialRegistId == eMaterialRegistId
orderby y.EMaterialRegistCode
select new
{
x.EMaterialRegistItemId,
x.EMaterialRegistId,
MatName = (from m in db.Base_Consumables where m.ConsumablesId == x.WMT_ID select m.ConsumablesName).First(),
x.SpecificationsModel,
x.UnitName,
x.MaterialCount,
x.ItemCode,
x.Testrecords,
x.Models
};
}
}
}