diff --git a/Gatedge.K3.Pilot.PlugIn/bin/Debug/Newtonsoft.Json.dll b/Gatedge.K3.Pilot.PlugIn/bin/Debug/Newtonsoft.Json.dll deleted file mode 100644 index d593ed6..0000000 Binary files a/Gatedge.K3.Pilot.PlugIn/bin/Debug/Newtonsoft.Json.dll and /dev/null differ diff --git a/Gatedge.K3.Pilot.PlugIn/bin/Debug/Oracle.DataAccess.dll b/Gatedge.K3.Pilot.PlugIn/bin/Debug/Oracle.DataAccess.dll deleted file mode 100644 index 910c9c5..0000000 Binary files a/Gatedge.K3.Pilot.PlugIn/bin/Debug/Oracle.DataAccess.dll and /dev/null differ diff --git a/Gatedge.K3.Pilot.PlugIn/obj/Debug/Gatedge..4146081E.Up2Date b/Gatedge.K3.Pilot.PlugIn/obj/Debug/Gatedge..4146081E.Up2Date deleted file mode 100644 index e69de29..0000000 diff --git a/Pilot_KD_Parino/AR_SalesVATInvoice/ServicePlugIn/AfterSave.cs b/Pilot_KD_Parino/AR_SalesVATInvoice/ServicePlugIn/AfterSave.cs index 7740491..7b0fa4a 100644 --- a/Pilot_KD_Parino/AR_SalesVATInvoice/ServicePlugIn/AfterSave.cs +++ b/Pilot_KD_Parino/AR_SalesVATInvoice/ServicePlugIn/AfterSave.cs @@ -20,82 +20,81 @@ namespace Gatedge.K3.Pilot.PlugIn.BOSPlugIn.AR_SalesVATInvoice.ServicePlugIn // 根据日志中的实际实体属性名来添加 e.FieldKeys.Add("FIDD"); e.FieldKeys.Add("FSEQQ"); - e.FieldKeys.Add("FSRCBILLTYPEID"); - e.FieldKeys.Add("FSRCBILLNO"); + e.FieldKeys.Add("SRCBILLTYPEID"); // 实体属性名(没有F前缀) + e.FieldKeys.Add("SRCBILLNO"); // 实体属性名(没有F前缀) + e.FieldKeys.Add("SEQ"); + e.FieldKeys.Add("BILLNO"); // 单据编号(主表字段) } - public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) + + public override void EndOperationTransaction(EndOperationTransactionArgs e) { - base.AfterExecuteOperationTransaction(e); - - - foreach (var dataEntity in e.DataEntitys) + base.EndOperationTransaction(e); + try { - var billObj = dataEntity as DynamicObject; - if (billObj == null) - continue; - - // 获取单据体 - var entrys = billObj["SALESICENTRY"] as DynamicObjectCollection; - if (entrys == null || entrys.Count == 0) - continue; - - foreach (var entry in entrys) + foreach (var dataEntity in e.DataEntitys) { - // 使用 Id 获取主键值 - var entryId = Convert.ToInt64(entry.GetPrimaryKeyValue()); - var fidd = entry["FIDD"]; - var fiddValue = fidd == null ? 0 : Convert.ToInt64(fidd); + var billObj = dataEntity as DynamicObject; + if (billObj == null) + continue; - if (fiddValue > 0) + // 获取单据体 + var entrys = billObj["SALESICENTRY"] as DynamicObjectCollection; + if (entrys == null || entrys.Count == 0) + continue; + + foreach (var entry in entrys) { - // FIDD > 0 时,判断是否需要回写 - var srcBillNo = entry["SRCBILLNO"]?.ToString() ?? ""; + // 使用 Id 获取主键值 + var entryId = Convert.ToInt64(entry.GetPrimaryKeyValue()); + var fidd = entry["FIDD"]; + var fiddValue = fidd == null ? 0 : Convert.ToInt64(fidd); - // 判断条件:FIDD != 当前行ID 且 源单编号为空 - if (fiddValue != entryId && string.IsNullOrWhiteSpace(srcBillNo)) + if (fiddValue > 0) { - // 查询源单据体信息(主键=FIDD的明细行) - var sql = $@"/*dialect*/ -SELECT FSRCBILLTYPEID, FSRCBILLNO, FSEQ -FROM T_IV_SALESICENTRY -WHERE FENTRYID = {fiddValue}"; - Logger.Error("销售增值税专用发票", sql, new Exception()); - var result = DBServiceHelper.ExecuteDynamicObject(this.Context, sql); - if (result == null || result.Count == 0) - continue; - Logger.Error("销售增值税专用发票", "69", new Exception()); - var srcData = result[0]; - var srcBillTypeId = srcData["FSRCBILLTYPEID"]; - var srcBillNoValue = srcData["FSRCBILLNO"]; + // FIDD > 0 时,判断是否需要回写 + var srcBillNo = entry["SRCBILLNO"]?.ToString() ?? ""; - // 回写当前单据体:源单类型、源单编号 - // 这里使用数据库字段名(带F前缀) + // 判断条件:FIDD != 当前行ID 且 源单编号为空 + if (fiddValue != entryId && string.IsNullOrWhiteSpace(srcBillNo)) + { + // 从当前单据主表获取单据编号(实体属性名:BILLNO) + var billNo = billObj["BILLNO"]?.ToString() ?? ""; + // 固定源单类型为"销售增值税专用发票" + var srcBillType = "IV_SALESIC"; + + // 回写当前单据体:源单类型、源单编号 + // 这里使用数据库字段名(带F前缀) + var updateSql = $@"/*dialect*/ +UPDATE T_IV_SALESICENTRY +SET FSRCBILLTYPEID = '{srcBillType.Replace("'", "''")}', + FSRCBILLNO = '{billNo.Replace("'", "''")}' +WHERE FENTRYID = {entryId}"; + Logger.Error("销售增值税专用发票", updateSql, new Exception()); + Logger.Error("销售增值税专用发票", "78", new Exception()); + DBServiceHelper.Execute(this.Context, updateSql); + } + } + else + { + // FIDD <= 0 时,把当前行FID赋值给FIDD,同时把FSEQ赋值给FSEQQ + var seq = entry["SEQ"]?.ToString() ?? "0"; var updateSql = $@"/*dialect*/ UPDATE T_IV_SALESICENTRY -SET FSRCBILLTYPEID = '{srcBillTypeId}', - FSRCBILLNO = '{srcBillNoValue}' +SET FIDD = {entryId}, + FSEQQ = '{seq.Replace("'", "''")}' WHERE FENTRYID = {entryId}"; Logger.Error("销售增值税专用发票", updateSql, new Exception()); Logger.Error("销售增值税专用发票", "78", new Exception()); DBServiceHelper.Execute(this.Context, updateSql); } } - else - { - // FIDD <= 0 时,把当前行FID赋值给FIDD,同时把FSEQ赋值给FSEQQ - var seq = entry["SEQ"]?.ToString() ?? "0"; - var updateSql = $@"/*dialect*/ -UPDATE T_IV_SALESICENTRY -SET FIDD = {entryId}, - FSEQQ = '{seq.Replace("'", "''")}' -WHERE FENTRYID = {entryId}"; - Logger.Error("销售增值税专用发票", updateSql, new Exception()); - Logger.Error("销售增值税专用发票", "78", new Exception()); - DBServiceHelper.Execute(this.Context, updateSql); - } } } + catch (Exception ex) + { + Logger.Error("销售增值税专用发票出错了:", ex.Message, new Exception()); + } } } } \ No newline at end of file