у меня четыре модели
модель orderdetails, fabri c модель, модель fabricStore и модель StockStatu
я хочу получить товары, которые stockStatu == id, и просуммировать количество для каждого случая без удвоения значений orderdetails, я получаю fabri c, который мне нужен, присоединяясь к fabricStore.
this is fabri c model:
public class Fabric
{
public int ID { get; set; }
public string FabricName { get; set; }
//[DataType(DataType.Date)]
[Display(Name = "Color")]
public Nullable<int> ColorID { get; set; }
public string Code { get; set; }
[ForeignKey("ColorID")]
public virtual Colors Colors { get; set; }
public virtual List<FabricStore> fabricStore { get; set; }
public virtual List<Production> production { get; set; }
}
this is fabri c store модель:
public class FabricStore
{
public int ID { get; set; }
public int FabricID { get; set; }
public DateTime ExpenseDate { get; set; }
public Nullable<int> SupplierID { get; set; }
public decimal Cost { get; set; }
public decimal Quantity { get; set; }
public decimal Total { get; set; }
public decimal Paid { get; set; }
public decimal Remain { get; set; }
public Nullable<int> ReceiptNumber { get; set; }
public string Notes { get; set; }
public virtual Fabric fabric { get; set; }
public virtual Supplier Suppliers { get; set; }
}
это детали заказа модель:
public class OrderDetail
{
public int ID { get; set; }
public int OrderID { get; set; }
public Nullable<int> ItemID { get; set; }
public Nullable<int> SizeID { get; set; }
public Nullable<int> ColorID { get; set; }
public decimal Price { get; set; }
public Nullable<int> StockStatuID { get; set; }
public Nullable<int> StockStatuReasonsID { get; set; }
public int Quantity { get; set; }
public decimal Total { get; set; }
public virtual Order order { get; set; }
public virtual Item item { get; set; }
public virtual Size size { get; set; }
[ForeignKey("ColorID")]
public virtual Colors Colors { get; set; }
public virtual StockStatu stockStatus { get; set; }
public virtual StockStatuReason StockStatuReasons { get; set; }
}
это модель StockStatu:
public class StockStatu
{
public int ID { get; set; }
public string StockStatuName { get; set; }
[DefaultValue(false)]
public bool ProductionProblem { get; set; }
[DefaultValue(false)]
public bool AccessoriesProblem { get; set; }
[DefaultValue(false)]
public bool FabricProblem { get; set; }
public virtual List<OrderDetail> orderDetails { get; set; }
public virtual List<StockStatuReason> StockStatuReasons { get; set; }
}
мой контроллер работает нормально без суммарного количества
это контроллер:
public JsonResult FabricRequires(int ID)
{
var index = (from o in db.OrderDetails
join P in db.Productions on o.ItemID equals P.ItemID
where o.StockStatuID == ID && P.fabric.ColorID == o.ColorID
select new
{
FabricCode = P.fabric.Code,
FabricName = P.fabric.FabricName,
Color = P.fabric.Colors.ColorName,
FabricID = P.fabric.ID,
itemID = o.ItemID,
ItemName = o.item.ItemName
//ItemQuantity = o.Quantity
}).Distinct()
.ToList();
return Json(index.ToList(), JsonRequestBehavior.AllowGet);
}