目录
1、 PurchaseorderController
1.1、 保存采购订单
1.1.1、 //单据状况
1.1.2、 //保存要删除的ID的集合,通过 Except() 算出前面两个集合的相同的元素。
1.1.3、 /从某集合中删除与其另一个集合中相同的元素
1.2、 //审核采购单
using QXQPS.Models;
using QXQPS.Vo;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace QXQPS.Areas.AccessoriessalesManagment.Controllers
{
public class PurchaseorderController : Controller
{
QXQPEntities myModels = new Models.QXQPEntities();
// GET: AccessoriessalesManagment/Purchaseorder
public ActionResult listProcur(List<PW_Procurement> listProcurement, List<SYS_ProcurementDetail> listFitting)//保存采购订单
{
var ProcurementID = 0;
try
{
if (listProcurement[0].ProcurementID == 0)
{
listProcurement[0].Documents = "未进货";
myModels.PW_Procurement.Add(listProcurement[0]);
}
else
{
listProcurement[0].Documents = "未进货";
myModels.Entry(listProcurement[0]).State = System.Data.Entity.EntityState.Modified;
}
if (myModels.SaveChanges() > 0)
{
ProcurementID = listProcurement[0].ProcurementID;
if (listFitting != null)
{
List<int> oldID = new List<int>();//保存原来ID的集合
List<int> newID = new List<int>();//保存从页面传来的新ID的集合
List<int> DeleteID = new List<int>();
var ProDetail = myModels.SYS_ProcurementDetail.Where(m => m.ProcurementID == ProcurementID).Select(m => new { m.ProcurementDetailID }).ToList();
foreach(var item in ProDetail)
{
oldID.Add(item.ProcurementDetailID);
}
for (int i = 0; i < listFitting.Count(); i++)
{
listFitting[i].ProcurementID = ProcurementID;
var ProcurementDetailID = listFitting[i].ProcurementDetailID;
if (ProcurementDetailID == 0)
{
myModels.SYS_ProcurementDetail.Add(listFitting[i]);
}
else
{
newID.Add(listFitting[i].ProcurementDetailID);
myModels.Entry(listFitting[i]).State = System.Data.Entity.EntityState.Modified;
}
}
DeleteID = oldID.Except(newID).ToList();/
foreach(var item in DeleteID)
{
var delete = myModels.SYS_ProcurementDetail.Where(m => m.ProcurementDetailID == item).Single();
myModels.SYS_ProcurementDetail.Remove(delete);
}
}
myModels.SaveChanges();
}
else
{
return Json(false, JsonRequestBehavior.AllowGet);
}
}
catch (Exception)
{
return Json(false, JsonRequestBehavior.AllowGet);
}
return Json(ProcurementID, JsonRequestBehavior.AllowGet);
}