You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

556 lines
19 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
}
}