PurchasereturnController
目录
1、 PurchasereturnController
1.1、 保存采购退货单
1.1.1、 //修改保存后的仓库ID
1.1.2、 //保存要删除的ID的集合,通过 Except() 算出前面两个集合的相同的元素。
1.1.3、 var Quantity = ReturnFormDetail[i].Quantity;//明细数量
1.1.4、 //库存量
1.1.5、 //从某集合中删除与其另一个集合中相同的元素
using QXQPS.Models;
using QXQPS.Vo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace QXQPS.Areas.AccessoriessalesManagment.Controllers
{
public class PurchasereturnController : Controller
{
QXQPEntities myModels = new Models.QXQPEntities();
// GET: AccessoriessalesManagment/Purchasereturn
public ActionResult listReturnForm(List<PW_ReturnForm> listReturn, List<SYS_ReturnFormDetail> ReturnFormDetail)//保存采购退货单
{
ReturnJson returnJson = new ReturnJson();
Session["ReturnFormDetail"] = ReturnFormDetail;
var ReturnFormID = listReturn[0].ReturnFormID;
var WarehouseID = listReturn[0].WarehouseID;
var IncomAudit = listReturn[0].IncomingNumber;//入库单号
var dd=0;
try
{
listReturn[0].DocumentsTypeID = 5;//单据类型
listReturn[0].BalanceStateID = 2;//结算状态
if (ReturnFormID == 0)
{
myModels.PW_ReturnForm.Add(listReturn[0]);
}
else
{
myModels.Entry(listReturn[0]).State = System.Data.Entity.EntityState.Modified;
}
if (myModels.SaveChanges() > 0)
{
//var WarehouseID = listIncome[0].WarehouseID;
ReturnFormID = listReturn[0].ReturnFormID;
WarehouseID = listReturn[0].WarehouseID;
if (ReturnFormDetail != null)
{
List<int> oldID = new List<int>();//保存原来ID的集合
List<int> newID = new List<int>();//保存从页面传来的新ID的集合
List<int> DeleteID = new List<int>();
var RetuDetail = myModels.SYS_ReturnFormDetail.Where(m => m.ReturnFormID == ReturnFormID).Select(m => new { m.ReturnFormDetailID }).ToList();
foreach (var item in RetuDetail)
{
oldID.Add(item.ReturnFormDetailID);
}
for (int i = 0; i < ReturnFormDetail.Count(); i++)
{
var FittingsInfoID = ReturnFormDetail[i].FittingsInfoID;
-
-
- var Quantity = ReturnFormDetail[i].Quantity;//明细数量
-
var FittingsInfo = myModels.SYS_FittingsInfo.Where(m => m.FittingsInfoID == FittingsInfoID).SingleOrDefault();//编码
var FittingsCode = FittingsInfo.FittingsCode;
var B = myModels.SYS_Inventory.Where(m => m.WarehouseID == WarehouseID && m.FittingsCode == FittingsCode).SingleOrDefault();
if (B != null)
{
var InvenQuan = B.InvenQuan;
if (InvenQuan + Quantity >= 0)
{
ReturnFormDetail[i].ReturnFormID = ReturnFormID;
var ReturnFormDetailID = ReturnFormDetail[i].ReturnFormDetailID;
if (ReturnFormDetailID == 0)
{
myModels.SYS_ReturnFormDetail.Add(ReturnFormDetail[i]);
}
else
{
myModels.Entry(ReturnFormDetail[i]).State = System.Data.Entity.EntityState.Modified;
}
newID.Add(ReturnFormDetailID);
}
else
{
returnJson.State = false;
returnJson.Text= "库存数量小于退货数量!";
return Json(returnJson, JsonRequestBehavior.AllowGet);
}
}
else
{
returnJson.State = false;
returnJson.Text = "库存数量小于退货数量!";
return Json(returnJson, JsonRequestBehavior.AllowGet);
}
}
DeleteID = oldID.Except(newID).ToList();
foreach (var item in DeleteID)
{
var delete = myModels.SYS_ReturnFormDetail.Where(m => m.ReturnFormDetailID == item).Single();
myModels.SYS_ReturnFormDetail.Remove(delete);
}
dd = myModels.SaveChanges();
if (dd > 0)
{
returnJson.State = true;
returnJson.Text = ReturnFormID.ToString();
}
}
}
}
catch (Exception)
{
returnJson.State = false;
returnJson.Text = "数据异常!";
}
return Json(returnJson, JsonRequestBehavior.AllowGet);
}