|
|
|
|
|
using System.Collections;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
using Estsh.Core.Services.IServices;
|
|
|
using Estsh.Core.Model.Result;
|
|
|
using Estsh.Core.Models;
|
|
|
using Estsh.Core.Controllers;
|
|
|
using System.Data;
|
|
|
using Estsh.Core.Util;
|
|
|
|
|
|
/***************************************************************************************************
|
|
|
*
|
|
|
* 更新人:sitong.dong
|
|
|
* 描述:无条码采购收货
|
|
|
* 修改时间:2022.06.22
|
|
|
* 修改日志:系统迭代升级
|
|
|
*
|
|
|
**************************************************************************************************/
|
|
|
namespace Estsh.Web.Controllers
|
|
|
{
|
|
|
public class PurchaseNoBarcodeController : BaseController
|
|
|
{
|
|
|
|
|
|
private IPurchaseNoBarcodeService service;
|
|
|
public PurchaseNoBarcodeController(IPurchaseNoBarcodeService _service)
|
|
|
{
|
|
|
service = _service;
|
|
|
}
|
|
|
public ActionResult Index()
|
|
|
{
|
|
|
return View();
|
|
|
}
|
|
|
public ActionResult getQueryByPage( Pager pager, String direction, String sort)
|
|
|
{
|
|
|
string _where = "";
|
|
|
int totalCount = 0;
|
|
|
List<SysStock> dataHt = service.getQueryByPage(_where, pager, direction, sort);
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("rows", dataHt);
|
|
|
result.Add("pager.totalRows", totalCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 过滤零件号
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
public List<string> filePart(string key)
|
|
|
{
|
|
|
Hashtable autoComplateList = GetItemPart(key);
|
|
|
List<String> result = new List<string>();
|
|
|
foreach (System.Collections.DictionaryEntry item in autoComplateList)
|
|
|
{
|
|
|
if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper()))
|
|
|
{
|
|
|
result.Add(item.Value.ToString());
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
public ActionResult GetPart_no(string q)
|
|
|
{
|
|
|
List<string> list = filePart(q);
|
|
|
return writeResult(list);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 查询零件号
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable GetItemPart(string key)
|
|
|
{
|
|
|
List<String> autoComplateList = new List<string>();
|
|
|
Hashtable result = new Hashtable();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
List<SysPart> dt = service.GetPartInfo(0, key);
|
|
|
for (int i = 0; i < dt.Count; i++)
|
|
|
{
|
|
|
result.Add(dt[i].PartId.ToString(), dt[i].PartNo.ToString());
|
|
|
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
result = new Hashtable();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public ActionResult OnsureOrder()
|
|
|
{
|
|
|
Hashtable result = new Hashtable();
|
|
|
string seDate = Request.Form["StartTime"].ToString().Replace("-", "/");
|
|
|
string message = "";
|
|
|
if (string.IsNullOrEmpty(Request.Form["cbTypeName"]))
|
|
|
{
|
|
|
message = " 请正确选择采购单所属项目! ";
|
|
|
result.Add("message", message);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
if (string.IsNullOrEmpty(Request.Form["txtVerdorName"]))
|
|
|
{
|
|
|
message = " 请正确选择采购单所属供应商! ";
|
|
|
result.Add("message", message);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
string serverDate = service.GetServerDateTime("YMD");
|
|
|
if (seDate.CompareTo(serverDate) < 0)
|
|
|
{
|
|
|
message = " 预交日期[" + seDate + "]不能小于当前日期! ";
|
|
|
result.Add("message", message);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
if (string.IsNullOrEmpty(Request.Form["cmbFactory"]))
|
|
|
{
|
|
|
message = " 请正确选择采购单所属供厂区! ";
|
|
|
result.Add("message", message);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
if (string.IsNullOrEmpty(Request.Form["txtBuyNo"]))
|
|
|
{
|
|
|
message = " 请正确选择采购单号! ";
|
|
|
result.Add("message", message);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
message = service.GetOrderNo("PurchaseNoBarcode", "NR");
|
|
|
result.Add("message", "");
|
|
|
result.Add("msg", message);
|
|
|
return Json(result);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取车型
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult GetType()
|
|
|
{
|
|
|
Hashtable resault = new Hashtable();
|
|
|
List<KeyValueResult> list = service.GetModelType();
|
|
|
resault.Add("list", list);
|
|
|
return Json(resault);
|
|
|
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 工厂
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult GetFactory()
|
|
|
{
|
|
|
Hashtable resault = new Hashtable();
|
|
|
List<KeyValueResult> list = service.GetFactoryInfo();
|
|
|
resault.Add("list", list);
|
|
|
return Json(resault);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 供应商
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult GetVendor(string q)
|
|
|
{
|
|
|
List<string> list = filterVendor(q);
|
|
|
return writeResult(list);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 采购单
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult getBuy(string q)
|
|
|
{
|
|
|
List<string> list = filterBuy(q);
|
|
|
return writeResult(list);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 根据供应商汉字过滤
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
private List<String> filterVendor(String key)
|
|
|
{
|
|
|
Hashtable autoComplateList = GetItemVendor(key);
|
|
|
List<String> result = new List<string>();
|
|
|
foreach (System.Collections.DictionaryEntry item in autoComplateList)
|
|
|
{
|
|
|
if (item.Value.ToString().ToUpper().StartsWith(key.ToUpper()))
|
|
|
{
|
|
|
result.Add(item.Value.ToString());
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 根据采购单汉字过滤
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
private List<String> filterBuy(String key)
|
|
|
{
|
|
|
Hashtable autoComplateList = getItemBuy(key);
|
|
|
List<String> result = new List<string>();
|
|
|
foreach (System.Collections.DictionaryEntry item in autoComplateList)
|
|
|
{
|
|
|
if (item.Key.ToString().ToUpper().StartsWith(key.ToUpper()))
|
|
|
{
|
|
|
result.Add(item.Key.ToString());
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 获取采购单
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable getItemBuy(string key)
|
|
|
{
|
|
|
List<string> auto = new List<string>();
|
|
|
Hashtable result = new Hashtable();
|
|
|
try
|
|
|
{
|
|
|
List<dynamic> dt = service.GetBuyNoInfo(key);
|
|
|
for (int i = 0; i < dt.Count; i++)
|
|
|
{
|
|
|
result.Add(dt[i].xw_po_nbr, dt[i].xw_po_nbr);
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ee)
|
|
|
{
|
|
|
result = new Hashtable();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 查询供应商
|
|
|
/// </summary>
|
|
|
/// <param name="key"></param>
|
|
|
/// <returns></returns>
|
|
|
public Hashtable GetItemVendor(string key)
|
|
|
{
|
|
|
List<String> autoComplateList = new List<string>();
|
|
|
Hashtable result = new Hashtable();
|
|
|
|
|
|
try
|
|
|
{
|
|
|
List<SysVendor> dt = service.GetVendorInfo(key);
|
|
|
for (int i = 0; i < dt.Count; i++)
|
|
|
{
|
|
|
result.Add(dt[i].VendorId, dt[i].VendorName.ToString());
|
|
|
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
result = new Hashtable();
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
private ActionResult writeResult(List<string> list)
|
|
|
{
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("list", list);
|
|
|
return Json(result);
|
|
|
}
|
|
|
public ActionResult GetpartNo(string q)
|
|
|
{
|
|
|
List<string> list = filePart(q);
|
|
|
return writeResult(list);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 添加数据
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult add(string txtOrderNo, string StartTime, string txtBuyNo)
|
|
|
{
|
|
|
ViewData["editType"] = "editType";
|
|
|
//ViewData["txtOrderNo"] = Request.Form["txtOrderNo"].ToString();
|
|
|
//ViewData["StartTime"] = Request.Form["StartTime"].ToString();
|
|
|
//ViewData["txtBuyNo"] = Request.Form["txtBuyNo"].ToString();
|
|
|
|
|
|
ViewData["txtOrderNo"] = txtOrderNo;
|
|
|
ViewData["StartTime"] = StartTime;
|
|
|
ViewData["txtBuyNo"] = txtBuyNo;
|
|
|
ViewData["defaultBoxQty"] = "20";
|
|
|
|
|
|
return View("FrmDetail");
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ActionResult SaveList()
|
|
|
{
|
|
|
Hashtable result = new Hashtable();
|
|
|
string message = "";
|
|
|
int iDis = 0;
|
|
|
string partId = Request.Form["partId"].ToString();
|
|
|
string partSpec = Request.Form["partSpec"].ToString();
|
|
|
string partNo = Request.Form["partNo"].ToString();
|
|
|
List<SysPart> dt = service.GetPartInfo(0, partNo);
|
|
|
if (dt.Count > 0)
|
|
|
{
|
|
|
partId = dt[0].PartId.ToString();
|
|
|
partSpec = dt[0].PartSpec.ToString();
|
|
|
}
|
|
|
|
|
|
string buyNumber = Request.Form["buyNumber"].ToString();
|
|
|
string biaoNumber = Request.Form["biaoNumber"].ToString();
|
|
|
|
|
|
string seDate = Request.Form["StartTime"].ToString().Replace("-", "");
|
|
|
if (seDate.Length > 2)
|
|
|
{
|
|
|
seDate = seDate.Substring(2);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
message = " [" + seDate + "]:所选择预交日期数据批次转换失败! ";
|
|
|
result.Add("message", message);
|
|
|
return Json(result);
|
|
|
}
|
|
|
iDis = Convert.ToInt32(buyNumber.Split('.')[0]) % Convert.ToInt32(biaoNumber.Split('.')[0]);
|
|
|
if (iDis == 0)
|
|
|
{
|
|
|
iDis = Convert.ToInt32(buyNumber.Split('.')[0]) / Convert.ToInt32(biaoNumber.Split('.')[0]);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
iDis = Convert.ToInt32(buyNumber.Split('.')[0]) / Convert.ToInt32(biaoNumber.Split('.')[0]) + 1;
|
|
|
}
|
|
|
DataTable data = new DataTable();
|
|
|
|
|
|
data.Columns.Add("partId");
|
|
|
data.Columns.Add("partNo");
|
|
|
data.Columns.Add("partSpec");
|
|
|
data.Columns.Add("qty");
|
|
|
data.Columns.Add("snpQty");
|
|
|
data.Columns.Add("cartonQty");
|
|
|
data.Columns.Add("lotNo");
|
|
|
data.Columns.Add("recQty");
|
|
|
data.Columns.Add("recCartonQty");
|
|
|
//行名
|
|
|
DataRow dr1 = data.NewRow();
|
|
|
dr1["partId"] = partId;
|
|
|
dr1["partNo"] = partNo;
|
|
|
dr1["partSpec"] = partSpec;
|
|
|
dr1["qty"] = buyNumber;
|
|
|
dr1["snpQty"] = biaoNumber;
|
|
|
dr1["cartonQty"] = iDis;
|
|
|
dr1["lotNo"] = seDate;
|
|
|
dr1["recQty"] = "0";
|
|
|
dr1["recCartonQty"] = "0";
|
|
|
data.Rows.Add(dr1);
|
|
|
//memoryCache.Set("table", data);
|
|
|
//Session["table"] = dt;
|
|
|
string orderNo = Request.Form["txtOrderNo"].ToString();
|
|
|
string modelId = Request.Form["cbTypeName"].ToString();
|
|
|
string vendorId = string.Empty;
|
|
|
seDate = Request.Form["StartTime"].ToString().Replace("-", "/");
|
|
|
string factoryId = Request.Form["cmbFactory"].ToString();
|
|
|
string buyNo = Request.Form["txtBuyNo"].ToString();
|
|
|
List<SysVendor> Vendor = service.GetVendorInfo(Request.Form["txtVerdorName"].ToString());
|
|
|
if (Vendor.Count > 0)
|
|
|
{
|
|
|
vendorId = Vendor[0].VendorId.ToString();
|
|
|
}
|
|
|
|
|
|
|
|
|
DataTable dtData = new DataTable();
|
|
|
dtData.TableName = "BuyNoData";
|
|
|
|
|
|
DataColumn dcOrderNo = new DataColumn("order_no", typeof(string));
|
|
|
DataColumn dcWeekOrderNo = new DataColumn("week_order_no", typeof(string));
|
|
|
DataColumn dcTypeId = new DataColumn("type_id", typeof(string));
|
|
|
DataColumn dcBuyNo = new DataColumn("buy_no", typeof(string));
|
|
|
DataColumn dcVendorId = new DataColumn("vendor_id", typeof(string));
|
|
|
DataColumn dcSeDate = new DataColumn("se_date", typeof(string));
|
|
|
DataColumn dcPartId = new DataColumn("part_id", typeof(string));
|
|
|
DataColumn dcPartNo = new DataColumn("part_no", typeof(string));
|
|
|
DataColumn dcLotNo = new DataColumn("lot_no", typeof(string));
|
|
|
DataColumn dcQty = new DataColumn("qty", typeof(string));
|
|
|
DataColumn dcSnpQty = new DataColumn("snp_qty", typeof(string));
|
|
|
DataColumn dcCartonQty = new DataColumn("carton_qty", typeof(string));
|
|
|
DataColumn dcType = new DataColumn("type", typeof(string));
|
|
|
DataColumn dcFactoryId = new DataColumn("factory_id", typeof(string));
|
|
|
|
|
|
dtData.Columns.AddRange(new DataColumn[] { dcOrderNo, dcWeekOrderNo,
|
|
|
dcTypeId, dcBuyNo, dcVendorId, dcSeDate, dcPartId,dcPartNo, dcLotNo, dcQty,
|
|
|
dcSnpQty, dcCartonQty, dcType, dcFactoryId });
|
|
|
|
|
|
for (int i = 0; i < data.Rows.Count; i++)
|
|
|
{
|
|
|
DataRow dr = dtData.NewRow();
|
|
|
dr["order_no"] = orderNo;
|
|
|
dr["week_order_no"] = orderNo;
|
|
|
dr["type_id"] = modelId;
|
|
|
dr["buy_no"] = buyNo;
|
|
|
dr["vendor_id"] = vendorId;
|
|
|
dr["se_date"] = seDate;
|
|
|
dr["part_id"] = data.Rows[i]["partId"].ToString();
|
|
|
dr["part_no"] = data.Rows[i]["partNo"].ToString();
|
|
|
dr["lot_no"] = data.Rows[i]["lotNo"].ToString();
|
|
|
dr["qty"] = data.Rows[i]["qty"].ToString();
|
|
|
dr["snp_qty"] = data.Rows[i]["snpQty"].ToString().Split('.')[0];
|
|
|
dr["carton_qty"] = data.Rows[i]["cartonQty"].ToString();
|
|
|
dr["type"] = "1";
|
|
|
dr["factory_id"] = factoryId;
|
|
|
|
|
|
dtData.Rows.Add(dr);
|
|
|
}
|
|
|
Hashtable resault = new Hashtable();
|
|
|
string rMsg = service.DataSaveTransact(dtData, CurrentEmp.EmpId);
|
|
|
if (!string.IsNullOrEmpty(rMsg))
|
|
|
{
|
|
|
message = " " + rMsg + " ";
|
|
|
resault.Add("message", message);
|
|
|
return Json(resault);
|
|
|
}
|
|
|
|
|
|
message = " 无条码采购订单收货数据保存成功! ";
|
|
|
resault.Add("message", message);
|
|
|
return Json(resault);
|
|
|
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 获取零件信息
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult getPart()
|
|
|
{
|
|
|
Hashtable result = new Hashtable();
|
|
|
string partId = Request.Form["partId"].ToString();
|
|
|
string partSpec = Request.Form["partSpec"].ToString();
|
|
|
string txtBuyNo = Request.Form["txtBuyNo"].ToString();
|
|
|
string biaoNumber = Request.Form["biaoNumber"].ToString();
|
|
|
string partNo = Request.Form["partNo"].ToString();
|
|
|
string message = "";
|
|
|
List<SysPart> dt = service.GetPartInfo(0, partNo);
|
|
|
if (dt.Count > 0)
|
|
|
{
|
|
|
partId = dt[0].PartId.ToString();
|
|
|
biaoNumber = dt[0].DefaultBoxQty.ToString();
|
|
|
partSpec = dt[0].PartSpec.ToString();
|
|
|
|
|
|
if (!service.IsPoPartNo(txtBuyNo, partNo))
|
|
|
{
|
|
|
message = " [" + partNo + "]所选择零件与采购单数据不匹配! ";
|
|
|
result.Add("message", message);
|
|
|
result.Add("status", -1);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
if (!service.IsExistLineLocate(partId))
|
|
|
{
|
|
|
message = " [" + partNo + "]:不存在此零件对应的线边库位配置信息! ";
|
|
|
result.Add("message", message);
|
|
|
result.Add("status", -1);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
|
|
|
result.Add("partId", partId);
|
|
|
result.Add("biaoNumber", biaoNumber);
|
|
|
result.Add("partSpec", partSpec);
|
|
|
result.Add("status", 1);
|
|
|
|
|
|
}
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
/// 删除
|
|
|
/// </summary>
|
|
|
/// <param name="ids"></param>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult delete(string ids)
|
|
|
{
|
|
|
|
|
|
int delCount = 0;
|
|
|
Hashtable result = new Hashtable();
|
|
|
ids = ids.Substring(0, ids.Length - 1);
|
|
|
|
|
|
try
|
|
|
{
|
|
|
delCount = this.service.delete(ids);
|
|
|
if (delCount > 0)
|
|
|
{
|
|
|
result.Add("message", "删除成功!");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
result.Add("message", "删除失败!");
|
|
|
}
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
delCount = -1;
|
|
|
}
|
|
|
|
|
|
|
|
|
return Json(result);
|
|
|
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// 启用
|
|
|
/// </summary>
|
|
|
/// <param name="ids"></param>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult onEnable(String ids)
|
|
|
{
|
|
|
int delCount = 0;
|
|
|
try
|
|
|
{
|
|
|
delCount = this.service.EnableData(ids);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
delCount = -1;
|
|
|
}
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("status", delCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
/// 禁用
|
|
|
/// </summary>
|
|
|
/// <param name="ids"></param>
|
|
|
/// <returns></returns>
|
|
|
public ActionResult onDisable(String ids)
|
|
|
{
|
|
|
int delCount = 0;
|
|
|
try
|
|
|
{
|
|
|
delCount = this.service.DisableData(ids);
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
|
delCount = -1;
|
|
|
}
|
|
|
Hashtable result = new Hashtable();
|
|
|
result.Add("status", delCount);
|
|
|
return Json(result);
|
|
|
}
|
|
|
}
|
|
|
}
|