From 9c634fd767aec36ef97c3a814bf7a29c67d20ee1 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 29 三月 2024 10:57:35 +0800
Subject: [PATCH] 修改单据重复显示问题,增加工单源单id关联
---
VueWebApi/DLL/DAL/AppPurchManagementDAL.cs | 608 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 564 insertions(+), 44 deletions(-)
diff --git a/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs b/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs
index 3b05d98..bf933fb 100644
--- a/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/AppPurchManagementDAL.cs
@@ -1,4 +1,5 @@
锘縰sing Dapper;
+using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
@@ -33,9 +34,9 @@
//dynamicParams.Add("@purchordercode", purchordercode);
}
//鏌ヨ鏈叧闂笖鏈叏閮ㄥ埌璐х殑閲囪喘璁㈠崟
- sql = @"select distinct A.ordercode from T_PurchaseOrder A
+ sql = @"select distinct A.orderid,A.ordercode from T_PurchaseOrder A
inner join T_PurchaseOrder_sub B on A.ordercode=B.purchaseorder_code
- where B.countarrivalquantity<quantity" + search;
+ where (isnull(B.quantity,0)-isnull(B.countarrivalquantity,0)+isnull(B.countreturnquantity,0))>0 and A.status<>'CLOSED'" + search;
dynamicParams.Add("@purchordercode", purchordercode);
var data = DapperHelper.selectdata(sql, dynamicParams);
if (data.Rows.Count > 0)
@@ -70,7 +71,7 @@
try
{
//鏍规嵁閲囪喘璁㈠崟鍙锋煡璇㈢墿鏂欎俊鎭紝渚涘簲鍟嗕俊鎭�
- sql = @"select B.rownumber, B.materiel_code as partcode,M.partname,M.partspec,M.is_batchno,M.is_incheck,
+ sql = @"select B.rownumber,B.sbid, B.materiel_code as partcode,M.partname,M.partspec,M.is_batchno,M.is_incheck,
B.quantity,B.customercode,C.name as customername,A.departmentcode,T.org_name as departmentname,U.code as uomcode,U.name as uomname,
A.ordercode,B.countarrivalquantity,A.acceptdate
from T_PurchaseOrder A
@@ -79,7 +80,7 @@
left join TUom U on M.uom_code=U.code
left join TCustomer C on B.customercode=C.code
left join TOrganization T on A.departmentcode=T.org_code
- where A.ordercode=@purchordercode";
+ where (isnull(B.quantity,0)-isnull(B.countarrivalquantity,0)+isnull(B.countreturnquantity,0))>0 and A.ordercode=@purchordercode";
dynamicParams.Add("@purchordercode", purchordercode);
var data = DapperHelper.selectdata(sql, dynamicParams);
if (data.Rows.Count > 0)
@@ -109,13 +110,13 @@
#region[閲囪喘鍒拌揣锛氱敓鎴愮郴缁熸潯鐮乚
public static ToMessage MesAppPurchOrderLabelBarCode(string partcode, string arrivalqty, string onelableqty)
{
- mes = AppLableBarCode.EncodingSeach("2060", partcode, arrivalqty, onelableqty);
+ mes = AppLableBarCode.EncodingSeach("2018", partcode, arrivalqty, onelableqty);
return mes;
}
#endregion
#region[閲囪喘鍒拌揣锛氭彁浜
- public static ToMessage MesAppPurchOrderSave(string purordercode, string orderstaus, string username, List<AppPurchOrderSave> json)
+ public static ToMessage MesAppPurchOrderSave(string purordercode, string username, List<AppPurchOrderSave> json)
{
var sql = "";
string djwo = "", numvalue = "";
@@ -157,8 +158,8 @@
{
hbillno = djwo,
hdate = DateTime.Now.ToString(),
- hacceptdate =hacceptdate==""?null:hacceptdate,
- hbillstaus = orderstaus,
+ hacceptdate = hacceptdate == "" ? null : hacceptdate,
+ hbillstaus = "NEW",
hdepartmentcode = dpartment,
hcustomercode = customercode,
hsourcebillno = purordercode,
@@ -170,20 +171,20 @@
for (int i = 0; i < json.Count; i++)
{
//鍐欏叆閲囪喘鍒拌揣鍗曞瓙琛�
- sql = @"insert into T_PurchaseArrivalOrder_sub(hbillno,rownumber,hpartcode,hplanqty,hqty,hacceptdate,hischeck,hbatchno)
- values(@hbillno,@hpartcode,@hplanqty,@hqty,@hacceptdate,@hischeck,@hbatchno)";
+ sql = @"insert into T_PurchaseArrivalOrder_sub(hbillno,rownumber,hpartcode,hplanqty,hqty,hacceptdate,hcheckstaus,hbatchno)
+ values(@hbillno,@rownumber,@hpartcode,@hplanqty,@hqty,@hacceptdate,@hcheckstaus,@hbatchno)";
list.Add(new
{
str = sql,
parm = new
{
hbillno = djwo,
- rownumber=json[i].rownumber,
+ rownumber = json[i].rownumber,
hpartcode = json[i].hpartcode,
hplanqty = decimal.Parse(json[i].hplanqty),
hqty = decimal.Parse(json[i].hqty),
hacceptdate = hacceptdate == "" ? null : hacceptdate,
- hischeck = json[i].hischeck,
+ hcheckstaus = json[i].hischeck,
hbatchno = json[i].hbatchno
}
});
@@ -192,8 +193,8 @@
for (int j = 0; j < json[i].children.Count; j++)
{
//鍐欏叆鏉$爜妗f琛�
- sql = @"insert into T_BarCodeBill(rightcode,hbillno,hbilltype,hbarcode,hbarcodestatus,hbarcodetype,hmaterialcode,hqty,hbatchno,hcustomercode,hdeptcode,hsourcebillno,hsourcebilltype,barcodeposition,lm_user,lm_date)
- values(@rightcode,hbillno,@hbilltype,@hbarcode,@hbarcodestatus,@hbarcodetype,@hmaterialcode,@hqty,@hbatchno,@hcustomercode,@hdeptcode,@hsourcebillno,@hsourcebilltype,@barcodeposition,@lm_user,@lm_date)";
+ sql = @"insert into T_BarCodeBill(rightcode,hbillno,hbilltype,hbarcode,qualitystatus,hbarcodestatus,hbarcodetype,hmaterialcode,hqty,hbatchno,hcustomercode,hdeptcode,hsourcebillno,hsourcebilltype,barcodeposition,lm_user,lm_date)
+ values(@rightcode,@hbillno,@hbilltype,@hbarcode,@qualitystatus,@hbarcodestatus,@hbarcodetype,@hmaterialcode,@hqty,@hbatchno,@hcustomercode,@hdeptcode,@hsourcebillno,@hsourcebilltype,@barcodeposition,@lm_user,@lm_date)";
list.Add(new
{
str = sql,
@@ -203,6 +204,7 @@
hbillno = djwo,
hbilltype = "1103", //閲囪喘鍒拌揣鍗曠被鍨�
hbarcode = json[i].children[j].labcode,
+ qualitystatus = json[i].hischeck == "Y" ? "TS" : "CS",
hbarcodestatus = "Y",
hbarcodetype = "P",
hmaterialcode = json[i].children[j].partnumber,
@@ -212,14 +214,14 @@
hdeptcode = dpartment,
hsourcebillno = purordercode,
hsourcebilltype = "1102",
- barcodeposition="2060;閲囪喘鍒拌揣",
+ barcodeposition = "2060;閲囪喘鍒拌揣",
lm_user = username,
lm_date = DateTime.Now.ToString()
}
});
}
//鏇存柊閲囪喘璁㈠崟瀛愯〃锛氱疮璁″埌璐ф暟閲�
- sql = @"update T_PurchaseOrder_sub set countarrivalquantity=countarrivalquantity+@hqty where ordercode=@purordercode and materiel_code=@materiel_code and rownumber=@rownumber";
+ sql = @"update T_PurchaseOrder_sub set countarrivalquantity=countarrivalquantity+@hqty where purchaseorder_code=@purordercode and materiel_code=@materiel_code and rownumber=@rownumber";
list.Add(new
{
str = sql,
@@ -227,22 +229,11 @@
{
purordercode = purordercode,
materiel_code = json[i].hpartcode,
- rownumber=json[i].rownumber,
- hqty=decimal.Parse(json[i].hqty)
+ rownumber = json[i].rownumber,
+ hqty = decimal.Parse(json[i].hqty)
}
});
}
- //鏇存柊閲囪喘璁㈠崟涓昏〃锛氳鍗曠姸鎬�
- sql = @"update T_PurchaseOrder set status=@status where ordercode=@purordercode";
- list.Add(new
- {
- str = sql,
- parm = new
- {
- status = orderstaus,
- ordercode = purordercode
- }
- });
bool aa = DapperHelper.DoTransaction(list);
if (aa)
{
@@ -272,16 +263,25 @@
#region[閲囪喘鍏ュ簱閫夋嫨鏈夊埌璐ч噰璐鍗昡
- public static ToMessage MesAppPurchInStorSelectCGOrder()
+ public static ToMessage MesAppPurchInStorSelectCGOrder(string purchordercode)
{
string sql = "";
+ string search = "";
var dynamicParams = new DynamicParameters();
try
{
+ if (purchordercode != "" && purchordercode != null) //璁㈠崟鍙蜂笉涓虹┖
+ {
+ search += " and AA.ordercode like '%'+@purchordercode+'%' ";
+ }
//鏈夊埌璐ф垨鑰呴儴鍒嗗叆搴撶殑閲囪喘璁㈠崟
- sql = @"select distinct A.ordercode from T_PurchaseOrder A
+ sql = @"select distinct AA.ordercode from(
+ select A.ordercode,B.hbillstaus,S.hpartcode,MAX(S.hplanqty) as hplanqty,SUM(S.hqty) as hqty,SUM(S.hinqty) as hinqty,SUM(S.hreturnqty) as hreturnqty
+ from T_PurchaseOrder A
inner join T_PurchaseArrivalOrder B on A.ordercode=B.hsourcebillno
- where B.hbillstaus in('BINARIVE','INARIVE','BINSTOG')";
+ inner join T_PurchaseArrivalOrder_sub S on B.hbillno=S.hbillno
+ group by A.ordercode,B.hbillstaus,S.hpartcode
+ ) as AA where (isnull(AA.hplanqty,0)-isnull(AA.hqty,0)+isnull(AA.hreturnqty,0))>0 and AA.hbillstaus='NEW' " + search;
var data = DapperHelper.selecttable(sql);
if (data.Rows.Count > 0)
{
@@ -315,13 +315,13 @@
try
{
//閫夋嫨閲囪喘璁㈠崟甯﹀嚭璁㈠崟涓嬫湁鍒拌揣鐨勭墿鏂欎俊鎭�
- sql = @"select A.ordercode,M.partcode,M.partname,M.partspec,avg(S.hplanqty) as hplanqty,sum(S.hqty) as hqty
+ sql = @"select A.ordercode,M.partcode,M.partname,M.partspec,A.customercode,A.departmentcode,avg(S.hplanqty) as hplanqty,sum(S.hqty) as hqty
from T_PurchaseOrder A
inner join T_PurchaseArrivalOrder B on A.ordercode=B.hsourcebillno
inner join T_PurchaseArrivalOrder_sub S on B.hbillno=S.hbillno
left join TMateriel_Info M on S.hpartcode=M.partcode
- where B.hbillstaus in('BINARIVE','INARIVE','BINSTOG') and A.ordercode=@ordercode
- group by A.ordercode,M.partcode,M.partname,M.partspec";
+ where B.hbillstaus='NEW' and A.ordercode=@ordercode
+ group by A.ordercode,M.partcode,M.partname,M.partspec,A.customercode,A.departmentcode";
dynamicParams.Add("@ordercode", ordercode);
var data = DapperHelper.selectdata(sql, dynamicParams);
if (data.Rows.Count > 0)
@@ -349,26 +349,28 @@
#endregion
#region[閲囪喘鍏ュ簱鎵弿鏍囩鏉$爜甯﹀嚭鍒拌揣鍗曚俊鎭痌
- public static ToMessage MesAppPurchInStorScanLabCode(string labcode,string ordercode)
+ public static ToMessage MesAppPurchInStorScanLabCode(string labcode)
{
string sql = "";
var dynamicParams = new DynamicParameters();
try
{
//鍒ゆ柇鏉$爜鐘舵��
- mes = LabCodeStatusMessage.LabCodeStatus("2060", "1103",labcode);//鍔熻兘缂栧彿銆佸崟鎹被鍨嬬紪鐮併�佹爣绛剧紪鐮�
- if (mes.code == "300")
+ mes = LabCodeStatusMessage.LabCodeStatus("2060", "1103", labcode);//鍔熻兘缂栧彿(閲囪喘鍒拌揣)銆佸崟鎹被鍨嬬紪鐮�(閲囪喘鍒拌揣鍗�)銆佹爣绛剧紪鐮�
+ if (mes.code == "300")
{
return mes;
}
- //鍒ゆ柇鎵弿鏍囩鏄惁涓哄綋鍓嶉�夋嫨閲囪喘璁㈠崟涓嬬殑鍒拌揣鍗曟墍鐢熸垚鏍囩
- sql = @"select * from T_BarCodeBill where hsourcebillno=@ordercode";
- dynamicParams.Add("@ordercode", ordercode);
- var data0 = DapperHelper.selectdata(sql, dynamicParams);
- if (data0.Rows.Count < 0)
+ //鍒ゆ柇鏍囩鐘舵��(鏄惁宸插叆搴�(涓嶈兘鍐嶅叆))
+ sql = @"select * from TK_WMS_Inwh_Sub where labcode like '%'+@labcode+'%'";
+ dynamicParams.Add("@labcode", "labcode");
+ dynamicParams.Add("@labcode", labcode);
+ var dt = DapperHelper.selectdata(sql, dynamicParams);
+ if (dt.Rows.Count > 0)
{
mes.code = "300";
- mes.Message = "褰撳墠鏉$爜涓嶆槸閲囪喘璁㈠崟銆�"+ ordercode + "銆戠敓鎴愭潯鐮�!";
+ mes.count = 0;
+ mes.Message = "褰撳墠鏉$爜宸插叆搴�!";
mes.data = null;
return mes;
}
@@ -403,5 +405,523 @@
}
#endregion
+ #region[閲囪喘鍏ュ簱鎻愪氦]
+ public static ToMessage MesAppPurchInStorSave(string ordercode, string username, string incontent)
+ {
+ var sql = "";
+ string djwo = "", numvalue = "";
+ List<object> list = new List<object>();
+ List<ObjectData> obj = new List<ObjectData>();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ string datetime = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+ mes = SeachEncode.EncodingSeach("2061"); //APP绔噰璐叆搴撶敓鎴愬崟鍙�
+ if (mes.code == "300")
+ {
+ return mes;
+ }
+ else
+ {
+ List<string> wo = (List<string>)mes.data;
+ djwo = wo[0].ToString(); //鑾峰彇鍗曞彿
+ numvalue = wo[1].ToString(); //鑾峰彇娴佹按鍙�
+ }
+ //鑾峰彇鎻愪氦淇℃伅
+ JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(incontent);
+ list.Clear();
+ //鍐欏叆鍏ュ簱璁板綍涓昏〃
+ sql = @"insert into TK_WMS_Inwh_Main(docu_typecode,hbillno,hsoucenillnoid,hsoucenillno,status,hcustomer,hdempart,lm_user,lm_date)
+ values(@docu_typecode,@hbillno,@hsoucenillnoid,@hsoucenillno,@status,@hcustomer,@hdempart,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ docu_typecode = "1201",
+ hbillno = djwo,
+ hsoucenillnoid= arra[0]["hsoucenillnoid"].ToString(),
+ hsoucenillno = ordercode,
+ status = "NEW",
+ hcustomer = arra[0]["customercode"].ToString(),
+ hdempart = arra[0]["departmentcode"].ToString(),
+ lm_user = username,
+ lm_date = datetime
+ }
+ });
+ //鏍规嵁婧愬崟+鐗╂枡鏌ヨ閲囪喘璁㈠崟鍒拌揣鎬绘暟銆佸叆搴撴�绘暟
+ sql = @"select sum(B.quantity) as quantity,sum(B.countarrivalquantity) as countarrivalquantity,
+ sum(B.countInquantity) as countInquantity
+ from T_PurchaseOrder A
+ inner join T_PurchaseOrder_sub B on A.ordercode=B.purchaseorder_code
+ where ordercode=@ordercode";
+ dynamicParams.Add("@ordercode", ordercode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ decimal quantity = decimal.Parse(data0.Rows[0]["quantity"].ToString()); //閲囪喘璁㈠崟绱浠诲姟鏁伴噺
+ decimal countarrivalquantity = decimal.Parse(data0.Rows[0]["countarrivalquantity"].ToString()); //閲囪喘璁㈠崟绱鍒拌揣鏁伴噺
+ decimal countInquantity = decimal.Parse(data0.Rows[0]["countInquantity"].ToString()); //閲囪喘璁㈠崟绱鍏ュ簱鏁伴噺
+
+ string storg = "";//閲囪喘璁㈠崟鍏ュ簱鐘舵��
+ decimal partlabqty = 0; //褰撳墠鏍囩绱鏁伴噺
+
+ for (int i = 1; i <= arra.Count; i++)//寰幆鑾峰彇鐗╂枡淇℃伅
+ {
+ string labcode = "";//鏍囩淇℃伅
+ decimal suminqty = 0; //鍗曟爣绛惧叆搴撴�绘暟閲�
+ string batchno = ""; //鎵规鍙�
+
+ //鏌ヨ姹囨�绘爣绛句俊鎭�
+ for (int j = 0; j < arra[i]["labcont"].Count(); j++)//寰幆鑾峰彇鏍囩淇℃伅
+ {
+ //鏇存柊鏉$爜琛ㄤ粨搴撱�佸簱浣嶄俊鎭�
+ sql = @"update T_BarCodeBill set storehouse_code=@storehouse_code,location_code=@location_code where hsourcebillno=@hsourcebillno and hbarcode=@hbarcode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ storehouse_code = arra[i]["storehousecode"].ToString(),
+ location_code = arra[i]["warehousecode"].ToString(),
+ hsourcebillno = ordercode,
+ hbarcode = arra[i]["labcont"][j]["labcode"].ToString()
+ }
+ });
+ //鏇存柊鍒拌揣鍗曞瓙琛ㄥ叆搴撴暟閲�
+ sql = @"update T_PurchaseArrivalOrder_sub set hinqty=isnull(hinqty,0)+@inqty where hbillno=@hbillno and hpartcode=@hpartcode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ hbillno = arra[i]["labcont"][j]["arrivelorder"].ToString(),
+ hpartcode = arra[i]["partcode"].ToString(),
+ hinqty = decimal.Parse(arra[i]["labcont"][j]["qty"].ToString())
+ }
+ });
+
+ //鍐欏叆搴撳瓨琛�
+ sql = @"insert into TK_WMS_Stock(labcode,materiel_code,batchno,storehouse_code,location_code,customercode,qty,lm_user,lm_date)
+ values(@labcode,materiel_code,batchno,storehouse_code,location_code,customercode,qty,lm_user,lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ labcode = arra[i]["labcont"][j]["labcode"].ToString(),
+ materiel_code = arra[i]["partcode"].ToString(),
+ batchno = batchno,
+ storehouse_code = arra[i]["storehousecode"].ToString(),
+ location_code = arra[i]["warehousecode"].ToString(),
+ customercode = arra[i]["customercode"].ToString(),
+ qty = suminqty,
+ lm_user = username,
+ lm_date = datetime,
+ }
+ });
+
+
+ //labcode = labcode + arra[i]["labcont"][j]["labcode"].ToString() + ",";
+ suminqty = suminqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
+ partlabqty = partlabqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
+ batchno = arra[i]["labcont"][j]["batch"].ToString();
+
+ }
+
+ //鏇存柊閲囪喘璁㈠崟瀛愯〃鍏ュ簱鏁伴噺
+ sql = @"update T_PurchaseOrder_sub set countInquantity=isnull(countInquantity,0)+@countInquantity
+ where purchaseorder_code=@purchaseorder_code and materiel_code=@materiel_code";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ purchaseorder_code = ordercode,
+ materiel_code = arra[i]["partcode"].ToString(),
+ countInquantity = partlabqty
+ }
+ });
+
+ //鍐欏叆閲囪喘鍏ュ簱鍗曞瓙琛�
+ sql = @"insert into TK_WMS_Inwh_Sub(hbillno,rownumber,materiel_code,storehouse_code,location_code,qty,batchno)
+ values(@hbillno,@rownumber,@materiel_code,@storehouse_code,@location_code,@qty,@batchno)";
+ //labcode = string.Format("'{0}'", labcode.Substring(0, labcode.Length - 1).Replace(",", "','"));
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ hbillno = djwo,
+ labcode = labcode,
+ rownumber = i,
+ materiel_code = arra[i]["partcode"].ToString(),
+ storehouse_code = arra[i]["storehousecode"].ToString(),
+ location_code = arra[i]["warehousecode"].ToString(),
+ qty = suminqty,
+ batchno = batchno
+ }
+ });
+
+ /*鍐欏叆ERP閲囪喘鍏ュ簱鍗�************
+ * ***********************
+ * **********************
+ **********************/
+ }
+
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+
+ #region[閲囪喘閫�璐э細鑾峰彇閲囪喘璁㈠崟鍒楄〃(宸插埌璐х殑閲囪喘璁㈠崟)]
+ public static ToMessage MesAppPurchaseReturnOrderSearch(string purchordercode)
+ {
+ string sql = "";
+ string search = "";
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ if (purchordercode != "" && purchordercode != null) //璁㈠崟鍙蜂笉涓虹┖
+ {
+ search += " and A.ordercode like '%'+@purchordercode+'%' ";
+ }
+ //鏌ヨ鏈叧闂笖鏈夊埌璐х殑閲囪喘璁㈠崟
+ sql = @"select distinct A.id,A.ordercode from T_PurchaseOrder A
+ inner join T_PurchaseOrder_sub B on A.ordercode=B.purchaseorder_code
+ where (isnull(B.countarrivalquantity,0)-isnull(B.countreturnquantity,0))>0 and A.status<>'CLOSED'" + search;
+ dynamicParams.Add("@purchordercode", purchordercode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ mes.code = "200";
+ mes.Message = "鏌ヨ鎴愬姛!";
+ mes.data = data;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.Message = "鏃犺鍗曟暟鎹�!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[閲囪喘閫�璐э細閫夋嫨閲囪喘璁㈠崟鑾峰彇鐗╂枡淇℃伅]
+ public static ToMessage MesAppPurchReturnOrderPartSearch(string purchordercode)
+ {
+ string sql = "";
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ //鏍规嵁閲囪喘璁㈠崟鍙锋煡璇㈤潪鍏抽棴鐘舵�佷笅鏈夊埌璐т笖鍒拌揣鏁伴噺澶т簬0鐨勭墿鏂�
+ sql = @"select B.rownumber, B.materiel_code as partcode,M.partname,M.partspec,
+ B.quantity,B.countarrivalquantity,U.code as uomcode,U.name as uomname
+ from T_PurchaseOrder A
+ inner join T_PurchaseOrder_sub B on A.ordercode=B.purchaseorder_code
+ left join TMateriel_Info M on B.materiel_code=M.partcode
+ left join TUom U on M.uom_code=U.code
+ where B.countarrivalquantity>0 and A.status<>'CLOSED' and A.ordercode=@purchordercode";
+ dynamicParams.Add("@purchordercode", purchordercode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ mes.code = "200";
+ mes.Message = "鏌ヨ鎴愬姛!";
+ mes.data = data;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.Message = "鏆傛棤鐗╂枡鏁版嵁!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[閲囪喘閫�璐у崟锛氭壂鎻忔爣绛綸
+ public static ToMessage MesAppPurchReturnInStorScanLabCode(string ordercode, string partcode, string labcode)
+ {
+ string sql = "";
+ string search = "";
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ //鍒ゆ柇鏉$爜鐘舵��
+ mes = LabCodeStatusMessage.LabCodeStatus("2060", "1103", labcode);//鍔熻兘缂栧彿(閲囪喘鍒拌揣)銆佸崟鎹被鍨嬬紪鐮�(閲囪喘鍒拌揣鍗�)銆佹爣绛剧紪鐮�
+ if (mes.code == "300")
+ {
+ return mes;
+ }
+ //鍒ゆ柇鏍囩鐘舵��(鏄惁宸插叆搴�(涓嶈兘閫�璐�))
+ sql = @"select * from TK_WMS_Inwh_Sub where labcode like '%'+@labcode+'%'";
+ dynamicParams.Add("@labcode", "labcode");
+ dynamicParams.Add("@labcode", labcode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ if (data0.Rows.Count > 0)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "褰撳墠鏉$爜宸插叆搴�!";
+ mes.data = null;
+ return mes;
+ }
+ //鏍规嵁閲囪喘璁㈠崟鍙枫�佺墿鏂欑紪鐮併�佹爣绛炬潯鐮佹煡鎵炬爣绛句俊鎭�
+ sql = @"select A.hbarcode,A.hcustomercode,C.name as hcustomercode,
+ A.hbatchno,A.qualitystatus,A.location_code,L.name as location_name,A.hqty
+ from T_BarCodeBill A
+ left join TCustomer C on A.hcustomercode=C.code
+ left join T_Sec_Loca L on A.location_code=L.code
+ where A.rightcode=@rightcode and A.hbilltype=@hbilltype and A.hbarcodestatus='Y'
+ and A.hsourcebillno=@hsourcebillno and A.hmaterialcode=@hmaterialcode and A.hbarcode=@labcode";
+ dynamicParams.Add("@rightcode", "2060");
+ dynamicParams.Add("@hbilltype", "1103");
+ dynamicParams.Add("@hsourcebillno", ordercode);
+ dynamicParams.Add("@hmaterialcode", partcode);
+ dynamicParams.Add("@labcode", labcode);
+ var data = DapperHelper.selectdata(sql, dynamicParams);
+ if (data.Rows.Count > 0)
+ {
+ mes.code = "200";
+ mes.Message = "鏌ヨ鎴愬姛!";
+ mes.data = data;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.Message = "褰撳墠鏍囩涓嶇鍚堣姹�!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
+ #region[閲囪喘閫�璐у崟锛氭彁浜
+ public static ToMessage MesAppPurchReturnInStorSave(string orderid, string ordercode, string username, string incontent)
+ {
+ var sql = "";
+ string djwo = "", numvalue = "";
+ List<object> list = new List<object>();
+ List<ObjectData> obj = new List<ObjectData>();
+ var dynamicParams = new DynamicParameters();
+ try
+ {
+ string datetime = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+ mes = SeachEncode.EncodingSeach("2074"); //APP绔噰璐��璐х敓鎴愬崟鍙�
+ if (mes.code == "300")
+ {
+ return mes;
+ }
+ else
+ {
+ List<string> wo = (List<string>)mes.data;
+ djwo = wo[0].ToString(); //鑾峰彇鍗曞彿
+ numvalue = wo[1].ToString(); //鑾峰彇娴佹按鍙�
+ }
+ //鑾峰彇鎻愪氦淇℃伅
+ JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(incontent);
+ list.Clear();
+ //鍐欏叆閲囪喘閫�璐у崟涓昏〃
+ sql = @"insert into T_PurchaseReturnOrder(orderdate,ordercode,status,departmentcode,customercode,saleorderid,saleordercode,lm_user,lm_date)
+ values(@orderdate,@ordercode,@status,@departmentcode,@customercode,@saleorderid,@saleordercode,@lm_user,@lm_date)";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ orderdate = datetime,
+ ordercode = djwo,
+ status = "NEW",
+ departmentcode = arra[0]["departmentcode"].ToString(),
+ customercode = arra[0]["customercode"].ToString(),
+ saleorderid = orderid,
+ saleordercode = ordercode,
+ lm_user = username,
+ lm_date = datetime
+ }
+ });
+ //鏍规嵁婧愬崟+鐗╂枡鏌ヨ閲囪喘璁㈠崟鍒拌揣鎬绘暟銆佸叆搴撴�绘暟
+ sql = @"select sum(B.quantity) as quantity,sum(B.countarrivalquantity) as countarrivalquantity,
+ sum(B.countInquantity) as countInquantity,sum(B.countreturnquantity) as countreturnquantity
+ from T_PurchaseOrder A
+ inner join T_PurchaseOrder_sub B on A.ordercode=B.purchaseorder_code
+ where ordercode=@ordercode";
+ dynamicParams.Add("@ordercode", ordercode);
+ var data0 = DapperHelper.selectdata(sql, dynamicParams);
+ decimal quantity = decimal.Parse(data0.Rows[0]["quantity"].ToString()); //閲囪喘璁㈠崟绱浠诲姟鏁伴噺
+ decimal countarrivalquantity = decimal.Parse(data0.Rows[0]["countarrivalquantity"].ToString()); //閲囪喘璁㈠崟绱鍒拌揣鏁伴噺
+ decimal countInquantity = decimal.Parse(data0.Rows[0]["countInquantity"].ToString()); //閲囪喘璁㈠崟绱鍏ュ簱鏁伴噺
+ decimal countreturnquantity = decimal.Parse(data0.Rows[0]["countreturnquantity"].ToString()); //閲囪喘璁㈠崟绱閫�璐ф暟閲�
+
+ string storg = "";//閲囪喘璁㈠崟鍏ュ簱鐘舵��
+ decimal partlabqty = 0; //褰撳墠鏍囩绱鏁伴噺
+
+ for (int i = 1; i <= arra.Count; i++)//寰幆鑾峰彇鐗╂枡淇℃伅
+ {
+ string labcode = "";//鏍囩淇℃伅
+ decimal suminqty = 0; //鍗曟爣绛惧叆搴撴�绘暟閲�
+ string batchno = ""; //鎵规鍙�
+
+ //鏌ヨ姹囨�绘爣绛句俊鎭�
+ for (int j = 0; j < arra[i]["labcont"].Count(); j++)//寰幆鑾峰彇鏍囩淇℃伅
+ {
+ //鏇存柊鏉$爜鐘舵��
+ sql = @"update T_BarCodeBill set hbarcodestatus=@hbarcodestatus where hsourcebillno=@hsourcebillno and hbarcode=@hbarcode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ hbarcodestatus = "N",
+ hsourcebillno = ordercode,
+ hbarcode = arra[i]["labcont"][j]["labcode"].ToString()
+ }
+ });
+ //鏇存柊鍒拌揣鍗曞瓙琛ㄩ��璐ф暟閲�
+ sql = @"update T_PurchaseArrivalOrder_sub set hreturnqty=isnull(hreturnqty,0)+@inqty where hbillno=@hbillno and hpartcode=@hpartcode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ hbillno = arra[i]["labcont"][j]["arrivelorder"].ToString(),
+ hpartcode = arra[i]["partcode"].ToString(),
+ hinqty = decimal.Parse(arra[i]["labcont"][j]["qty"].ToString())
+ }
+ });
+
+ //鏇存柊搴撳瓨琛�
+ sql = @"update TK_WMS_Stock set qty=qty-@inqty
+ where materiel_code=@materiel_code and labcode=@labcode";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ labcode = arra[i]["labcont"][j]["labcode"].ToString(),
+ materiel_code = arra[i]["partcode"].ToString(),
+ inqty = decimal.Parse(arra[i]["labcont"][j]["qty"].ToString())
+ }
+ });
+
+ labcode = labcode + arra[i]["labcont"][j]["labcode"].ToString() + ",";
+ suminqty = suminqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
+ partlabqty = partlabqty + decimal.Parse(arra[i]["labcont"][j]["qty"].ToString());
+ batchno = arra[i]["labcont"][j]["batch"].ToString();
+
+ }
+
+ //鏇存柊閲囪喘璁㈠崟瀛愯〃閫�璐ф暟閲�
+ sql = @"update T_PurchaseOrder_sub set countreturnquantity=isnull(countreturnquantity,0)+@countreturnquantity
+ where purchaseorder_code=@purchaseorder_code and materiel_code=@materiel_code";
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ purchaseorder_code = ordercode,
+ materiel_code = arra[i]["partcode"].ToString(),
+ countreturnquantity = partlabqty
+ }
+ });
+
+ //鍐欏叆閲囪喘閫�璐у崟瀛愯〃
+ sql = @"insert into T_PurchaseReturnOrder_sub(purchaseorder_code,labcode,rownumber,materiel_code,customercode,quantity,batchno)
+ values(@purchaseorder_code,@labcode,@rownumber,@materiel_code,@customercode,@quantity,@batchno)";
+ labcode = string.Format("'{0}'", labcode.Substring(0, labcode.Length - 1).Replace(",", "','"));
+ list.Add(new
+ {
+ str = sql,
+ parm = new
+ {
+ purchaseorder_code = djwo,
+ labcode = labcode,
+ rownumber = i,
+ materiel_code = arra[i]["partcode"].ToString(),
+ customercode = arra[0]["customercode"].ToString(),
+ quantity = suminqty,
+ batchno = batchno
+ }
+ });
+ /*鍐欏叆ERP閲囪喘閫�璐у崟************
+ * ***********************
+ * **********************
+ **********************/
+ }
+
+ bool aa = DapperHelper.DoTransaction(list);
+ if (aa)
+ {
+ mes.code = "200";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔鎴愬姛!";
+ mes.data = null;
+ }
+ else
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = "鎿嶄綔澶辫触!";
+ mes.data = null;
+ }
+ }
+ catch (Exception e)
+ {
+ mes.code = "300";
+ mes.count = 0;
+ mes.Message = e.Message;
+ mes.data = null;
+ }
+ return mes;
+ }
+ #endregion
+
}
}
\ No newline at end of file
--
Gitblit v1.9.3