diff --git a/GZ_LTHPilot_ORDER.csproj b/GZ_LTHPilot_ORDER.csproj index 2d476d6..8949135 100644 --- a/GZ_LTHPilot_ORDER.csproj +++ b/GZ_LTHPilot_ORDER.csproj @@ -238,6 +238,9 @@ + + + diff --git a/SAL_DELIVERYNOTICE/PushCeLue.cs b/SAL_DELIVERYNOTICE/PushCeLue.cs index 0ea2327..9ddd957 100644 --- a/SAL_DELIVERYNOTICE/PushCeLue.cs +++ b/SAL_DELIVERYNOTICE/PushCeLue.cs @@ -16,7 +16,8 @@ namespace GZ_LTHPilot_ORDER.SAL_DELIVERYNOTICE public override void OnParseFilter(ParseFilterEventArgs e) { base.OnParseFilter(e); - e.FilterPolicySQL = string.Format("And 1 = 1"); + e.FilterPolicySQL += $"AND (SELECT CASE WHEN (SELECT COUNT(*) FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID WHERE C.FSaleOrgId = 100302 AND C.FSALEORGID <> C.F_SaleOrgId AND A.FENTRYID = t1.FENTRYID) > 0 THEN 1 WHEN (SELECT COUNT(*) FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID WHERE C.FSaleOrgId <> 100302 AND A.FENTRYID = t1.FENTRYID) > 0 THEN 1 WHEN (SELECT COUNT(*) FROM T_PRD_MO A INNER JOIN T_PRD_MOENTRY B ON A.FID = B.FID INNER JOIN T_PRD_MOENTRY_LK C ON B.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY' WHERE A.FDocumentStatus = 'C' AND C.FSBILLID IN (SELECT C.FID FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID INNER JOIN T_BD_MATERIAL E ON D.FMATERIALID = E.FMATERIALID WHERE C.FSaleOrgId = 100302 AND C.FSALEORGID = C.F_SaleOrgId AND (E.FNUMBER NOT LIKE 'H.10%' OR E.FNUMBER NOT LIKE 'H.20%' OR E.FNUMBER NOT LIKE 'H.30%') AND A.FENTRYID = t1.FENTRYID)) > 0 THEN 1 ELSE (SELECT COUNT(*) FROM T_PRD_MO A INNER JOIN T_PRD_MOENTRY B ON A.FID = B.FID INNER JOIN T_PRD_MOENTRY_LK C ON B.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY' WHERE A.FDocumentStatus = 'C' AND C.FSBILLID IN (SELECT C.FID FROM T_SAL_DELIVERYNOTICEENTRY A INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID INNER JOIN T_BD_MATERIAL E ON D.FMATERIALID = E.FMATERIALID WHERE C.FSaleOrgId = 100302 AND C.FSALEORGID = C.F_SaleOrgId AND (E.FNUMBER LIKE 'H.10%' OR E.FNUMBER LIKE 'H.20%' OR E.FNUMBER LIKE 'H.30%') AND A.FENTRYID = t1.FENTRYID)) END AS Result) > 0"; + e.PlugFilterDesc = "当销售订单的销售组织为珠海派诺且销售组织=备货组织时,销售订单需下推生产订单且生产订单处于审核状态后,才可由发货通知单下推销售出库"; } } } diff --git a/SAL_DELIVERYNOTICE/SaveYFH.cs b/SAL_DELIVERYNOTICE/SaveYFH.cs new file mode 100644 index 0000000..f5bb772 --- /dev/null +++ b/SAL_DELIVERYNOTICE/SaveYFH.cs @@ -0,0 +1,191 @@ +using System; +using Kingdee.BOS.Core.Bill.PlugIn; +using Kingdee.BOS.App.Data; +using System.ComponentModel; +using Kingdee.BOS.Core.Bill.PlugIn.Args; +using Kingdee.BOS.Util; +using Kingdee.BOS.WebApi.Client; +using Newtonsoft.Json.Linq; +using System.Net.Http; +using System.Text; +using Kingdee.BOS.WebApi.FormService; +using Newtonsoft.Json; + +namespace GZ_LthFHTZSava +{ + [Description("保存前触发,以收款条件和发货金额做判断01"), HotUpdate] + public class SaveYFH : AbstractBillPlugIn + { + private double F_Amount; + + //获取当前时间 + private DateTime now = DateTime.Now; + + public override void BeforeSave(BeforeSaveEventArgs e) + { + base.BeforeSave(e); + + //获取发货通知单的销售范围#字段 + var F_SalesRange = this.View.Model.GetValue("F_SalesRange"); + + //判断销售范围字段等于购销 + if (F_SalesRange.ToString() == "GX") + { + //获取发货通知单的源单编号字段 + var FSrcBillNo = this.View.Model.GetValue("FSrcBillNo", 0); + + //SQL查询获取销售订单的累计核销金额字段 + var F_AmountSql = string.Format(@"SELECT F_AMOUNT FROM T_SAL_ORDER WHERE FBILLNO = '{0}'", FSrcBillNo.ToString()); + var F_AmountDS = DBUtils.ExecuteDynamicObject(this.Context, F_AmountSql); + if (F_AmountDS.Count != 0) + { + F_Amount = Convert.ToDouble(F_AmountDS[0]["F_AMOUNT"]); + } + + //SQL以销售订单编号做查询,查询收款条件名称 + var SKTJFNameSql = string.Format(@"SELECT ISNULL(t3.FNAME,'') AS FNAME FROM T_SAL_ORDER t1 LEFT JOIN T_SAL_ORDERPLAN t2 on t1.FID = t2.FID LEFT JOIN T_BD_RECCONDITION_L t3 on t3.FID = t2.F_RecConditionId Where t1.FBILLNO = '{0}'", FSrcBillNo.ToString()); + var SKTJFNameDS = DBUtils.ExecuteDynamicObject(this.Context, SKTJFNameSql); + foreach (var SKTJFNameRow in SKTJFNameDS) + { + if (SKTJFNameRow["FNAME"].ToString() == "") + { + continue; + } + //判定收款条件是否为预付款 + string IFYFK = "预付"; + if (SKTJFNameRow["FNAME"].ToString().Contains(IFYFK)) + { + //SQL查询获取销售订单预付款的应收金额 + string FRecAdvanceAmountSql = string.Format(@"SELECT SUM(t1.FRecAdvanceAmount) AS FRecAdvanceAmount FROM T_SAL_ORDERPLAN t1 LEFT JOIN T_SAL_ORDER t2 on t1.FID = t2.FID LEFT JOIN T_BD_RECCONDITION_L t3 on t3.FID = t1.F_RECCONDITIONID WHERE t2.FBILLNO = '{0}' AND t3.FNAME like '%预付%'", FSrcBillNo); + var FRecAdvanceAmountDS = DBUtils.ExecuteDynamicObject(this.Context, FRecAdvanceAmountSql); + if (FRecAdvanceAmountDS.Count != 0) + { + double FRecAdvanceAmount = Convert.ToDouble(FRecAdvanceAmountDS[0]["FRecAdvanceAmount"]); + //判定收款条件为预付款时,是否为预发货 + if (F_Amount < FRecAdvanceAmount) + { + this.View.Model.SetValue("F_SFYFH", "是"); + this.View.Model.SetValue("F_VRYF_Date_83g", now); + this.View.UpdateView(); + } + else + { + this.View.Model.SetValue("F_SFYFH", "否"); + this.View.Model.SetValue("F_VRYF_Date_83g", now); + this.View.UpdateView(); + } + } + } + //判定条件是否为款到发货 + string IFKDFH = "款到发货"; + if (SKTJFNameRow["FNAME"].ToString().Contains(IFKDFH)) + { + //获取当前单据的发货金额 + double FBillAllAmount1 = Convert.ToDouble(this.View.Model.GetValue("FBillAllAmount")); + + string FBillAllAmountSql; + + //SQL查询累计发货金额 + if (this.View.Model.GetValue("FBillNo").IsNullOrEmpty()) + { + FBillAllAmountSql = string.Format(@"SELECT SUM(t1.FBillAllAmount) FBillAllAmount FROM T_SAL_DELIVERYNOTICEFIN t1 LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t2 on t1.FID = t2.FID WHERE t2.FSRCBILLNO = '{0}'And t2.FID != 0", FSrcBillNo); + } + else + { + //获取发货通知单的FID + string FormTitle = this.View.Model.DataObject["Id"].ToString(); + + FBillAllAmountSql = string.Format(@"SELECT SUM(t1.FBillAllAmount) FBillAllAmount FROM T_SAL_DELIVERYNOTICEFIN t1 LEFT JOIN T_SAL_DELIVERYNOTICEENTRY t2 on t1.FID = t2.FID WHERE t2.FSRCBILLNO = '{0}' And t1.FID != '{1}'", FSrcBillNo, FormTitle); + } + + var FBillAllAmountDS = DBUtils.ExecuteDynamicObject(this.Context, FBillAllAmountSql); + if (FBillAllAmountDS.Count != 0) + { + double FBillAllAmount = Convert.ToDouble(FBillAllAmountDS[0]["FBillAllAmount"]); + if (F_Amount < FBillAllAmount + FBillAllAmount1) + { + this.View.Model.SetValue("F_SFYFH", "是"); + this.View.UpdateView(); + this.View.Model.SetValue("F_VRYF_Date_83g", now); + this.View.UpdateView(); + } + else + { + this.View.Model.SetValue("F_SFYFH", "否"); + this.View.UpdateView(); + this.View.Model.SetValue("F_VRYF_Date_83g", now); + this.View.UpdateView(); + } + } + } + ////判定条件是否为协议付款 + //string IFXYFK = "协议付款"; + //if (SKTJFNameRow["FNAME"].ToString().Contains(IFXYFK)) + //{ + // //SQL查询销售组织和客户编码 + // string FSaleOrgIdAndFCustIdSql = string.Format(@"SELECT t1.FSaleOrgId AS FSaleOrgId,t2.FNUMBER AS FNUMBER FROM T_SAL_ORDER t1 LEFT JOIN T_BD_CUSTOMER t2 on t1.FCUSTID = t2.FCUSTID WHERE FBILLNO = '{0}'", FSrcBillNo); + // var FSaleOrgIdAndFCustIdDS = DBUtils.ExecuteDynamicObject(this.Context, FSaleOrgIdAndFCustIdSql); + // if (FSaleOrgIdAndFCustIdDS.Count != 0) + // { + // //获取销售组织 + // string FSaleOrgId = FSaleOrgIdAndFCustIdDS[0]["FSaleOrgId"].ToString(); + // //获取客户编码 + // string FCustId = FSaleOrgIdAndFCustIdDS[0]["FNUMBER"].ToString(); + // //通过API获取客户剩余信用额度 + // var Json = "{\"FieldKeys\":\"FLIMITBALANCE\",\"SchemeId\":\"\",\"StartRow\":0,\"Limit\":2000,\"IsVerifyBaseDataField\":\"true\",\"FilterString\":[],\"Model\":{\"FSaleOrgList\":\"" + FSaleOrgId + "\",\"FObjectType\":\"BD_Customer\",\"FStartCustId\":{\"FNumber\":\"" + FCustId + "\"},\"FEndCustId\":{\"FNumber\":\"" + FCustId + "\"},\"FCreditStatus\":\"ALL\",\"FIsExceeds\":\"-1\",\"FMultiSelect\":false}}"; + + // var result = WebApiServiceCall.GetSysReportData(this.Context, "CRE_Rpt_CreditInfo", Json); + + // var resultJo = JsonConvert.DeserializeObject(JsonConvert.SerializeObject(result)); + // var IsSuccess = resultJo["Result"]["IsSuccess"].Value(); + // if (IsSuccess == "True") + // { + // var RowCount = resultJo["Result"]["RowCount"].Value(); + // if (RowCount != 0) + // { + // JArray FLIMITBALANCEJArray = resultJo["Result"]["Rows"].Value(); + + // double FLIMITBALANCE = Convert.ToDouble(FLIMITBALANCEJArray[0][0]); + + // //查询当前发货通知单的发货金额 + // double FBillAllAmount = Convert.ToDouble(this.View.Model.GetValue("FBillAllAmount").ToString()); + // //发货金额大于剩余额度百分之九十,则判定为预发货 + // if (FBillAllAmount > FLIMITBALANCE * 0.9) + // { + // this.View.Model.SetValue("F_SFYFH", "是"); + // this.View.UpdateView(); + // this.View.Model.SetValue("F_VRYF_Date_83g", now); + // this.View.UpdateView(); + // } + // else + // { + // this.View.Model.SetValue("F_SFYFH", "否"); + // this.View.UpdateView(); + // this.View.Model.SetValue("F_VRYF_Date_83g", now); + // this.View.UpdateView(); + // } + // } + // else if (RowCount == 0) + // { + // this.View.Model.SetValue("F_SFYFH", "是"); + // this.View.UpdateView(); + // this.View.ShowErrMessage("客户编码: " + FCustId + ",未启用信用管理"); + // this.View.Model.SetValue("F_VRYF_Date_83g", now); + // this.View.UpdateView(); + // } + // else + // { + // this.View.Model.SetValue("F_SFYFH", "否"); + // this.View.UpdateView(); + // this.View.Model.SetValue("F_VRYF_Date_83g", now); + // this.View.UpdateView(); + // } + // } + // } + //} + + } + } + } + } +} diff --git a/SAL_ORDER/SaveWL.cs b/SAL_ORDER/SaveWL.cs new file mode 100644 index 0000000..d81a928 --- /dev/null +++ b/SAL_ORDER/SaveWL.cs @@ -0,0 +1,41 @@ +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GZ_LTHPilot_ORDER.SAL_ORDER +{ + [Description("服务插件:销售订单根据物料编码做判断"), HotUpdate] + public class SaveWL : AbstractOperationServicePlugIn + { + public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) + { + base.BeforeExecuteOperationTransaction(e); + foreach (var Row in e.SelectedRows) + { + //获取单据信息 + var Billobj = Row.DataEntity; + //根据订单FID + var sqls = SqlManage.SqlManage.SaveOrder_GZTH(this.Context, Convert.ToString(Billobj["Id"])); + if (sqls != null) + { + foreach (var sql in sqls) + { + if (Convert.ToInt32(sql["SUMWL"]) == 0) + { + e.Cancel = true; + throw new Exception( + string.Format(@"物料编码J开头,则明细物联网卡使用年份字段必填") + ); + } + } + } + } + } + } +} diff --git a/SQL/SqlManage.cs b/SQL/SqlManage.cs index 46fae20..d56a996 100644 --- a/SQL/SqlManage.cs +++ b/SQL/SqlManage.cs @@ -58,17 +58,17 @@ namespace GZ_LTHPilot_ORDER.SqlManage return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为半成品仓,更改是否关键件字段 - public static void UpdatePRD_PPBOMFIsKeyComponent(Context ctx,string FENTRYID) + public static void UpdatePRD_PPBOMFIsKeyComponent(Context ctx, string FENTRYID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C SET FIsKeyComponent = '1' WHERE FENTRYID = '{0}' - ",FENTRYID); + ", FENTRYID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为包材仓,更改发料方式 - public static void UpdatePRD_PPBOMFIssueType(Context ctx, string FENTRYID) + public static void UpdatePRD_PPBOMFIssueType(Context ctx, string FENTRYID) { string sql = string.Format(@"/*dialect*/ update T_PRD_PPBOMENTRY_C @@ -84,7 +84,7 @@ namespace GZ_LTHPilot_ORDER.SqlManage update T_PRD_PPBOMENTRY_C SET FIssueType = '4',FBackFlushType = '3',FSrcTransOrgId = '{1}' WHERE FENTRYID = '{0}' - ", FENTRYID,ZZID); + ", FENTRYID, ZZID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //生产用料清单明细为包装结构件仓和装配结构件仓,更改拔出仓库为仓库 @@ -159,7 +159,7 @@ namespace GZ_LTHPilot_ORDER.SqlManage } //查询收款单源单明细的源单类型为应收单查询销售订单编号的SQL语句 - public static DynamicObjectCollection GetRECEIVEBILLFSRCBILLNOAndFREALRECAMOUNTFOR(Context ctx,string FID) + public static DynamicObjectCollection GetRECEIVEBILLFSRCBILLNOAndFREALRECAMOUNTFOR(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ SELECT @@ -178,13 +178,13 @@ namespace GZ_LTHPilot_ORDER.SqlManage } //更新销售订单表头的累计核销金额 - public static void UpdateOrderF_AMOUNTNew(Context ctx,string Fbillno,string FREALRECAMOUNTFOR) + public static void UpdateOrderF_AMOUNTNew(Context ctx, string Fbillno, string FREALRECAMOUNTFOR) { string sql = string.Format(@"/*dialect*/ update T_SAL_ORDER SET F_AMOUNT = F_AMOUNT+{1} WHERE FBILLNO = '{0}' - ", Fbillno,FREALRECAMOUNTFOR); + ", Fbillno, FREALRECAMOUNTFOR); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } @@ -200,7 +200,7 @@ namespace GZ_LTHPilot_ORDER.SqlManage } //获取预收款单的销售订单源单编号 - public static DynamicObjectCollection GetRECEIVEBILLFSRCBILLNOS(Context ctx,string FID) + public static DynamicObjectCollection GetRECEIVEBILLFSRCBILLNOS(Context ctx, string FID) { string sql = string.Format(@" SELECT @@ -229,7 +229,7 @@ namespace GZ_LTHPilot_ORDER.SqlManage INNER JOIN T_AR_RECEIVABLEENTRY_LK F On E.FENTRYID = F.FENTRYID AND F.FALLAMOUNTFOR_D <> 0 INNER JOIN T_SAL_RETURNSTOCKENTRY G ON G.FID = F.FSBILLID AND F.FSID = G.FENTRYID WHERE A.FID = '{0}' AND B.FSOURCETYPE = 'AR_receivable' AND A.FSALEORGID <> '100302' - ",FID); + ", FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } @@ -257,56 +257,56 @@ namespace GZ_LTHPilot_ORDER.SqlManage } //根据销售出库单的FID,获取销售订单的FENTRYID - public static DynamicObjectCollection GetSal_ORderFEntryIdAndFid(Context ctx,string FID) + public static DynamicObjectCollection GetSal_ORderFEntryIdAndFid(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ EXEC GETSAL_ORDERFidAndFENTRYID_GZTH '{0}' - ",FID); + ", FID); //执行SQL return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } //根据销售出库单的FID,反写销售订单新旧系统未出库数量 - public static void UpdateSal_OrderF_notoutQty(Context ctx,string FENTRYID) + public static void UpdateSal_OrderF_notoutQty(Context ctx, string FENTRYID) { string sql = string.Format(@"/*dialect*/ EXEC UpdateSAL_ORDERF_notoutQty '{0}' - ",FENTRYID); + ", FENTRYID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据销售退货单的FID,获取销售订单的FENTRYID - public static DynamicObjectCollection GETRETURNSTOCKSal_ORDERFidAndFentryid(Context ctx,string FID) + public static DynamicObjectCollection GETRETURNSTOCKSal_ORDERFidAndFentryid(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ EXEC GETRETURNSTOCKSal_ORDERFidAndFentryid_GZTH '{0}' - ",FID); + ", FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null) as DynamicObjectCollection; } /*当物料为M开头,发料方式设置为调拨倒冲,倒冲时机设置为入库倒冲,拨出组织设置为珠海派诺,拨出组织为空, 仓库设置为 : 68*/ - public static void UpdatePRD_PPBOMLIkeM(Context ctx,string FID) + public static void UpdatePRD_PPBOMLIkeM(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ EXEC UpdatePRD_PPBOMLIkeM_GZTH '{0}' - ",FID); + ", FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据销售订单的纸质合同号,修改销售订单的销售类型字段 - public static void UpdateSal_OrderF_VRYF_Combo_lsn(Context ctx,string FID) + public static void UpdateSal_OrderF_VRYF_Combo_lsn(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ EXEC GZTH_UpdateSal_OrderF_VRYF_Combo_lsn '{0}' - ",FID); + ", FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } - //根据红字发票FID,获取查询出是否由蓝字发票进行下推,获取蓝字发票的FID,FENTRYID - public static DynamicObjectCollection GetBuleFpFID(Context ctx,string FID) + //根据红字发票FID,获取查询出是否由蓝字发票进行下推,获取蓝字发票的FID,FENTRYID + public static DynamicObjectCollection GetBuleFpFID(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ EXEC GetLPFid_GZTH '{0}' - ",FID); + ", FID); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); string LpFidSql = string.Format(@"/*dialect*/ SELECT * FROM GZ_AuditTHHZFP @@ -315,7 +315,7 @@ namespace GZ_LTHPilot_ORDER.SqlManage } //根据红字发票查询蓝字发票的FID,查询销售订单的FID和FENTRYID,开票数量和开票金额 - public static DynamicObjectCollection GetHZFPSal_ORDERFidAndFentryid(Context ctx,string FID) + public static DynamicObjectCollection GetHZFPSal_ORDERFidAndFentryid(Context ctx, string FID) { string sql = string.Format(@"/*dialect*/ EXEC GetIV_SALESICSal_OrderFID_GZTH '{0}' @@ -338,11 +338,11 @@ namespace GZ_LTHPilot_ORDER.SqlManage return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null); } //根据获取的销售订单FID和FentryId,更新开票数量和开票金额 - public static void UpSal_OrderKPJEAndKPSL(Context ctx,string FID,string FENTRYID,string F_INVOICEQTY,string F_F_INVOICEAMOUNT) + public static void UpSal_OrderKPJEAndKPSL(Context ctx, string FID, string FENTRYID, string F_INVOICEQTY, string F_F_INVOICEAMOUNT) { string sql = string.Format(@"/*dialect*/ EXEC TrueUpdateSal_OrderF_INVOICEQTYAndF_F_INVOICEAMOUNTAndF_invoiceAmount_TH '{0}','{1}','{2}','{3}' - ",FID,FENTRYID,F_INVOICEQTY,F_F_INVOICEAMOUNT); + ", FID, FENTRYID, F_INVOICEQTY, F_F_INVOICEAMOUNT); DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据获取的销售订单FID和FentryId,更新开票数量和开票金额(当销售订单的累计核销金额>价税合计本位币后) @@ -354,17 +354,17 @@ namespace GZ_LTHPilot_ORDER.SqlManage DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } //根据查询销售订单FID,查询销售订单累计核销金额和价税合计本位币 - public static DynamicObjectCollection GetSal_Order(Context ctx,string FID) + public static DynamicObjectCollection GetSal_Order(Context ctx, string FID) { string sql = string.Format(@" SELECT A.FBILLNO AS '单据编号', - B.FBILLALLAMOUNT_LC AS '价税合计', + B.FBillAllAmount AS '价税合计', A.F_INVOICEAMOUNT AS '累计开票金额' FROM T_SAL_ORDER A INNER JOIN T_SAL_ORDERFIN B ON A.FID = B.FID WHERE A.FID = '{0}' - AND ABS(A.F_invoiceAmount) > ABS(B.FBILLALLAMOUNT_LC) + AND ABS(A.F_invoiceAmount) > ABS(B.FBillAllAmount) ", FID); return DBServiceHelper.ExecuteDynamicObject(ctx, sql.ToString(), null, null, CommandType.Text, null); } @@ -382,5 +382,25 @@ namespace GZ_LTHPilot_ORDER.SqlManage "); return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null); } + //根据销售出库的FID,反写发货通知单的检验周期字段 + public static DynamicObjectCollection UpdateFHTZDJYZQ(Context ctx,string FID) + { + //查询表并且返回表的数据 + string getSql = string.Format(@"/*dialect*/ + EXEC SaveCGRK_GZTH '{0}' + ", FID); + return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null); + } + + //根据销售订单的FID,查询物料编码J开头的物联网卡使用年份必填 + public static DynamicObjectCollection SaveOrder_GZTH(Context ctx, string FID) + { + //查询表并且返回表的数据 + string getSql = string.Format(@"/*dialect*/ + EXEC SaveOrder_GZTH '{0}' + ", FID); + return DBServiceHelper.ExecuteDynamicObject(ctx, getSql.ToString(), null, null, CommandType.Text, null); + } + } } diff --git a/T_IV_SALESIC/AuditS_Order.cs b/T_IV_SALESIC/AuditS_Order.cs index caab9f9..7cdb91e 100644 --- a/T_IV_SALESIC/AuditS_Order.cs +++ b/T_IV_SALESIC/AuditS_Order.cs @@ -11,7 +11,7 @@ using System.Threading.Tasks; namespace GZ_LTHPilot_ORDER.IV_SALESIC { - [Description("服务插件:发票审核时,反写销售订单累计开票金额字段"), HotUpdate] + [Description("服务插件:发票审核时,反写销售订单累计开票金额字段非本位币"), HotUpdate] public class AuditS_Order : AbstractOperationServicePlugIn { public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e) diff --git a/T_IV_SALESIC/UnAuditS_Order.cs b/T_IV_SALESIC/UnAuditS_Order.cs index 0de9d35..b2924dc 100644 --- a/T_IV_SALESIC/UnAuditS_Order.cs +++ b/T_IV_SALESIC/UnAuditS_Order.cs @@ -54,6 +54,7 @@ namespace GZ_LTHPilot_ORDER.T_IV_SALESIC Convert.ToString(LZOrder["销售订单FENTRYID"]), Convert.ToString(LZOrder["开票数量"]), Convert.ToString(LZOrder["开票金额"])); } + break; } } } diff --git a/T_PUR_RECEIVE/SaveDate.cs b/T_PUR_RECEIVE/SaveDate.cs new file mode 100644 index 0000000..292a8ed --- /dev/null +++ b/T_PUR_RECEIVE/SaveDate.cs @@ -0,0 +1,28 @@ +using Kingdee.BOS.Core.DynamicForm.PlugIn; +using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; +using Kingdee.BOS.Util; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GZ_LTHPilot_ORDER.SAL_DELIVERYNOTICE +{ + [Description("服务插件:采购入库单保存触发检验周期字段更新"), HotUpdate] + public class SaveDate : AbstractOperationServicePlugIn + { + public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) + { + base.AfterExecuteOperationTransaction(e); + foreach (var Row in e.SelectedRows) + { + //获取单据信息 + var Billobj = Row.DataEntity; + //以采购入库单的FID,获取采购入库单日期字段减去收料通知单的日期的天数,并对检验周期字段赋值 + SqlManage.SqlManage.UpdateFHTZDJYZQ(this.Context, Convert.ToString(Billobj["Id"])); + } + } + } +} diff --git a/bin/Debug/AForge.Video.DirectShow.dll b/bin/Debug/AForge.Video.DirectShow.dll new file mode 100644 index 0000000..e3f806f Binary files /dev/null and b/bin/Debug/AForge.Video.DirectShow.dll differ diff --git a/bin/Debug/AForge.Video.dll b/bin/Debug/AForge.Video.dll new file mode 100644 index 0000000..dc67243 Binary files /dev/null and b/bin/Debug/AForge.Video.dll differ diff --git a/bin/Debug/Antlr3.Runtime.dll b/bin/Debug/Antlr3.Runtime.dll new file mode 100644 index 0000000..34bd478 Binary files /dev/null and b/bin/Debug/Antlr3.Runtime.dll differ diff --git a/bin/Debug/Aspose.Cells.dll b/bin/Debug/Aspose.Cells.dll new file mode 100644 index 0000000..623290b Binary files /dev/null and b/bin/Debug/Aspose.Cells.dll differ diff --git a/bin/Debug/BouncyCastle.Crypto.dll b/bin/Debug/BouncyCastle.Crypto.dll new file mode 100644 index 0000000..a0590ca Binary files /dev/null and b/bin/Debug/BouncyCastle.Crypto.dll differ diff --git a/bin/Debug/Castle.Core.dll b/bin/Debug/Castle.Core.dll new file mode 100644 index 0000000..24f4b2f Binary files /dev/null and b/bin/Debug/Castle.Core.dll differ diff --git a/bin/Debug/DevExpress.Data.v13.1.dll b/bin/Debug/DevExpress.Data.v13.1.dll new file mode 100644 index 0000000..f8e5b4f Binary files /dev/null and b/bin/Debug/DevExpress.Data.v13.1.dll differ diff --git a/bin/Debug/DevExpress.Printing.v13.1.Core.dll b/bin/Debug/DevExpress.Printing.v13.1.Core.dll new file mode 100644 index 0000000..d6d6b43 Binary files /dev/null and b/bin/Debug/DevExpress.Printing.v13.1.Core.dll differ diff --git a/bin/Debug/DevExpress.Utils.v13.1.dll b/bin/Debug/DevExpress.Utils.v13.1.dll new file mode 100644 index 0000000..143cbc7 Binary files /dev/null and b/bin/Debug/DevExpress.Utils.v13.1.dll differ diff --git a/bin/Debug/DevExpress.XtraEditors.v13.1.dll b/bin/Debug/DevExpress.XtraEditors.v13.1.dll new file mode 100644 index 0000000..a157f79 Binary files /dev/null and b/bin/Debug/DevExpress.XtraEditors.v13.1.dll differ diff --git a/bin/Debug/DocumentFormat.OpenXml.Framework.dll b/bin/Debug/DocumentFormat.OpenXml.Framework.dll new file mode 100644 index 0000000..93f3b67 Binary files /dev/null and b/bin/Debug/DocumentFormat.OpenXml.Framework.dll differ diff --git a/bin/Debug/DocumentFormat.OpenXml.dll b/bin/Debug/DocumentFormat.OpenXml.dll new file mode 100644 index 0000000..c879ea9 Binary files /dev/null and b/bin/Debug/DocumentFormat.OpenXml.dll differ diff --git a/bin/Debug/FarPoint.CalcEngine.dll b/bin/Debug/FarPoint.CalcEngine.dll new file mode 100644 index 0000000..82e3cfb Binary files /dev/null and b/bin/Debug/FarPoint.CalcEngine.dll differ diff --git a/bin/Debug/FarPoint.Excel.dll b/bin/Debug/FarPoint.Excel.dll new file mode 100644 index 0000000..2a1672a Binary files /dev/null and b/bin/Debug/FarPoint.Excel.dll differ diff --git a/bin/Debug/FarPoint.Localization.dll b/bin/Debug/FarPoint.Localization.dll new file mode 100644 index 0000000..6fe23a4 Binary files /dev/null and b/bin/Debug/FarPoint.Localization.dll differ diff --git a/bin/Debug/FarPoint.PDF.dll b/bin/Debug/FarPoint.PDF.dll new file mode 100644 index 0000000..95fcac8 Binary files /dev/null and b/bin/Debug/FarPoint.PDF.dll differ diff --git a/bin/Debug/FarPoint.PluginCalendar.WinForms.dll b/bin/Debug/FarPoint.PluginCalendar.WinForms.dll new file mode 100644 index 0000000..f3fbc45 Binary files /dev/null and b/bin/Debug/FarPoint.PluginCalendar.WinForms.dll differ diff --git a/bin/Debug/FarPoint.Win.Chart.dll b/bin/Debug/FarPoint.Win.Chart.dll new file mode 100644 index 0000000..3e92872 Binary files /dev/null and b/bin/Debug/FarPoint.Win.Chart.dll differ diff --git a/bin/Debug/FarPoint.Win.Spread.dll b/bin/Debug/FarPoint.Win.Spread.dll new file mode 100644 index 0000000..667181f Binary files /dev/null and b/bin/Debug/FarPoint.Win.Spread.dll differ diff --git a/bin/Debug/FarPoint.Win.dll b/bin/Debug/FarPoint.Win.dll new file mode 100644 index 0000000..77d4684 Binary files /dev/null and b/bin/Debug/FarPoint.Win.dll differ diff --git a/bin/Debug/GZ_LTHPilot_ORDER.dll b/bin/Debug/GZ_LTHPilot_ORDER.dll index 2c39cb6..d905e09 100644 Binary files a/bin/Debug/GZ_LTHPilot_ORDER.dll and b/bin/Debug/GZ_LTHPilot_ORDER.dll differ diff --git a/bin/Debug/GZ_LTHPilot_ORDER.pdb b/bin/Debug/GZ_LTHPilot_ORDER.pdb index 471754b..30781c6 100644 Binary files a/bin/Debug/GZ_LTHPilot_ORDER.pdb and b/bin/Debug/GZ_LTHPilot_ORDER.pdb differ diff --git a/bin/Debug/ICSharpCode.SharpZipLib.dll b/bin/Debug/ICSharpCode.SharpZipLib.dll new file mode 100644 index 0000000..49a1d1a Binary files /dev/null and b/bin/Debug/ICSharpCode.SharpZipLib.dll differ diff --git a/bin/Debug/IronPython.dll b/bin/Debug/IronPython.dll new file mode 100644 index 0000000..c633a5a Binary files /dev/null and b/bin/Debug/IronPython.dll differ diff --git a/bin/Debug/JWT.dll b/bin/Debug/JWT.dll new file mode 100644 index 0000000..bfa0e65 Binary files /dev/null and b/bin/Debug/JWT.dll differ diff --git a/bin/Debug/Microsoft.Dynamic.dll b/bin/Debug/Microsoft.Dynamic.dll new file mode 100644 index 0000000..20ae62b Binary files /dev/null and b/bin/Debug/Microsoft.Dynamic.dll differ diff --git a/bin/Debug/Microsoft.Scripting.dll b/bin/Debug/Microsoft.Scripting.dll new file mode 100644 index 0000000..e768906 Binary files /dev/null and b/bin/Debug/Microsoft.Scripting.dll differ diff --git a/发货通知单下推sql.sql b/发货通知单下推sql.sql new file mode 100644 index 0000000..d377295 --- /dev/null +++ b/发货通知单下推sql.sql @@ -0,0 +1,44 @@ +SELECT + CASE + WHEN + ( + SELECT COUNT(*) + FROM T_SAL_DELIVERYNOTICEENTRY A + INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' + INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID + INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID + WHERE C.FSaleOrgId = 100302 + AND C.FSALEORGID <> C.F_SaleOrgId + AND A.FENTRYID = t1.FENTRYID + ) > 0 + THEN 1 + WHEN( + SELECT COUNT(*) + FROM T_SAL_DELIVERYNOTICEENTRY A + INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' + INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID + INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID + WHERE C.FSaleOrgId <> 100302 + AND A.FENTRYID = t1.FENTRYID + ) > 0 + THEN 1 + ELSE + ( + SELECT COUNT(*) + FROM T_PRD_MO A + INNER JOIN T_PRD_MOENTRY B ON A.FID = B.FID + INNER JOIN T_PRD_MOENTRY_LK C ON B.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY' + WHERE A.FDocumentStatus = 'C' + AND C.FSBILLID IN + ( + SELECT C.FID + FROM T_SAL_DELIVERYNOTICEENTRY A + INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK B ON A.FENTRYID = B.FENTRYID AND B.FSTABLENAME = 'T_SAL_ORDERENTRY' + INNER JOIN T_SAL_ORDER C ON C.FID = B.FSBILLID + INNER JOIN T_SAL_ORDERENTRY D ON C.FID = D.FID + WHERE C.FSaleOrgId = 100302 + AND C.FSALEORGID = C.F_SaleOrgId + AND A.FENTRYID = t1.FENTRYID + ) + ) + END AS Result \ No newline at end of file