This commit is contained in:
PastSaid
2024-08-29 09:42:49 +08:00
parent fa480006a8
commit 5472714e30
66 changed files with 7417 additions and 243 deletions

View File

@@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args.WizardForm;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.K3.FIN.AP.Business.PlugIn;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Log;
namespace CYG.AutoWriteOffWizardEditPlugInEx
{
[HotUpdate, Description("转销处理EX")]
public class AutoWriteOffWizardEditEx : AutoWriteOffWizardEdit
{
public override void WizardStepChanging(WizardStepChangingEventArgs e)
{
base.WizardStepChanging(e);
if (e.OldWizardStep.Key.Equals("FWizard1") && e.NewWizardStep.Key.Equals("FWizard2") && !e.Cancel)
{
try
{
//获取进行转销的单据
var dieObjs = this.DebitDate;
foreach (var debitObj in dieObjs.Values)
{
var billId = debitObj.BillId;
var cSqlL = $@"/*dialect*/
SELECT t1e.FSRCBILLID,t3.FBILLNO
FROM T_AR_RECMACTHLOG t1
INNER JOIN T_AR_RECMACTHLOGENTRY t1e on t1.FID = t1e.FID
INNER JOIN T_AR_RECMACTHLOGENTRY t2e on t2e.FID = t1e.FID
INNER JOIN T_AR_RECEIVABLE t3 on t3.FID = t1e.FSRCBILLID
WHERE 1 = 1
AND t2e.FSRCBILLID = {billId}
AND t2e.FSOURCEFROMID = 'AR_receivable'
AND t1e.FISADIBILL = 1
AND t1.FMATCHFIELDNAME = 'FMatchAmount'
";
//判断是否转销成功
var cResObjs = DBServiceHelper.ExecuteDynamicObject(this.Context, cSqlL);
if (cResObjs != null && cResObjs.Count == 2)
{
var sqlL = $@"/*dialect*/ EXEC PROC_UPDATE_AR_WRITEOFFMATCH {billId} ";
DBServiceHelper.Execute(this.Context, sqlL);
}
}
}
catch (Exception ex)
{
Logger.Error("应收转销后更新对应数据", ex.Message, ex);
}
}
}
}
}

View File

@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{FF4006B6-E4D9-4007-BC97-F6CBADD0BCF3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CYG.AutoWriteOffWizardEditPlugInEx</RootNamespace>
<AssemblyName>CYG.AutoWriteOffWizardEditPlugInEx</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Kingdee.BOS">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.App">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.App.Core">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Core">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.DataEntity">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.ServiceHelper, Version=8.2.830.9, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.ServiceHelper.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.Core">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.AP.Business.PlugIn">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.AP.Business.PlugIn.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.AP.ServiceHelper">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.AP.ServiceHelper.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.App">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.App.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.App.Core">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.App.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.Business.PlugIn">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.Business.PlugIn.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.Contracts, Version=8.2.830.9, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.Contracts.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.Core">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.FIN.ServiceHelper">
<HintPath>..\..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.FIN.ServiceHelper.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AutoWriteOffWizardEditEx.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("CYG.AutoWriteOffWizardEditPlugInEx")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CYG.AutoWriteOffWizardEditPlugInEx")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ff4006b6-e4d9-4007-bc97-f6cbadd0bcf3")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@@ -0,0 +1,127 @@
DECLARE @billNo varchar(100)
SET @billNo = 'FBILL2024040437'
SET @billNo = 'FBILL2024041172'
DECLARE @billId int
SET @billId = 0
;WITH #<23><><EFBFBD><EFBFBD>Ӧ<EFBFBD>յ<EFBFBD> AS (
SELECT t0.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD>񵥾ݱ<EFBFBD><EFBFBD><EFBFBD>'
,t0.FID,t0e.FENTRYID,t0e.FSRCROWID,t0e.FSEQ
,t0e_lk.FSBILLID,t0e_lk.FSID
FROM T_AR_RECEIVABLE t0
INNER JOIN T_AR_RECEIVABLEENTRY t0e on t0.FID = t0e.FID
INNER JOIN T_AR_RECEIVABLEENTRY_LK t0e_lk on t0e_lk.FENTRYID = t0e.FENTRYID
WHERE 1=1
AND t0e_lk.FSTABLENAME = 't_AR_receivableEntry'
--AND t0.FBILLNO = @billNo
AND t0.FID = @billId
AND t0.FDOCUMENTSTATUS = 'C'
)
, #<23>ݹ<EFBFBD>Ӧ<EFBFBD>յ<EFBFBD> AS (
SELECT tt.<EFBFBD><EFBFBD><EFBFBD>񵥾ݱ<EFBFBD><EFBFBD><EFBFBD>
,tt.FID AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID'
,tt.FSEQ
,tt.FENTRYID AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ENTRYID'
,t0.FBILLNO AS '<EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><EFBFBD><EFBFBD>'
,t0.FID AS '<EFBFBD>ݹ<EFBFBD>ID',t0e.FENTRYID AS '<EFBFBD>ݹ<EFBFBD>ENTRYID'
,t0e.FCOSTAMTSUM ,t0e.FBASICUNITQTY
,CAST(t0e.FCOSTAMTSUM / t0e.FBASICUNITQTY AS decimal(23,6)) AS '<EFBFBD>ݹ<EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD>'
,t1.FID AS '<EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID',t1e.FENTRYID AS '<EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ENTRYID'
,t1.FBILLNO AS '<EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><EFBFBD>ݱ<EFBFBD><EFBFBD><EFBFBD>'
,t1e.FCOSTAMTSUM 'FCOSTAMTSUM1',t1e.FBASICUNITQTY 'FBASICUNITQTY1'
,CAST(t1e.FCOSTAMTSUM / t1e.FBASICUNITQTY AS decimal(23,6)) AS '<EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>سɱ<EFBFBD><EFBFBD><EFBFBD>'
FROM #<23><><EFBFBD><EFBFBD>Ӧ<EFBFBD>յ<EFBFBD> tt
INNER JOIN T_AR_RECEIVABLEENTRY t0e on tt.FSBILLID = t0e.FID AND tt.FSID = t0e.FENTRYID
INNER JOIN T_AR_RECEIVABLE t0 on t0.FID = t0e.FID
INNER JOIN T_AR_RECEIVABLEENTRY t1e on t1e.FSRCROWID = t0e.FENTRYID
INNER JOIN T_AR_RECEIVABLE t1 on t1.FID = t1e.FID
WHERE 1=1
AND t0.FDOCUMENTSTATUS = 'C'
AND t1.FDOCUMENTSTATUS = 'C'
)
, #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AS (
SELECT t1.*,t0.*
FROM #<23>ݹ<EFBFBD>Ӧ<EFBFBD>յ<EFBFBD> t0
CROSS APPLY (
SELECT t3e.FENTRYID AS 'ENTRYID'
,t1e.FSRCBILLID,t3.FBILLNO--,t3e.FSEQ
,t3e.FALLAMOUNT,t3e.FALLAMOUNTFOR
,t3e.FTAXAMOUNT,t3e.FTAXAMOUNTFOR
,t3e.FNOTAXAMOUNT,t3e.FNOTAXAMOUNTFOR
--,t3e.FBASICUNITQTY
,t3e.F_CYG_TECost
,t3e.F_CYG_TEAmount
,t3e.F_CYG_TECBCost
,t3e.F_CYG_TECBAmount
FROM T_AR_RECMACTHLOG t1
INNER JOIN T_AR_RECMACTHLOGENTRY t1e on t1.FID = t1e.FID
INNER JOIN T_AR_RECMACTHLOGENTRY t2e on t2e.FID = t1e.FID
INNER JOIN T_AR_RECEIVABLE t3 on t3.FID = t1e.FSRCBILLID
INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3.FID AND t3e.FSEQ = t0.FSEQ
WHERE 1=1
AND t2e.FSRCBILLID = t0.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
AND t2e.FSOURCEFROMID = 'AR_receivable'
AND t1e.FISADIBILL = 1
AND t1.FMATCHFIELDNAME = 'FMatchAmount'
) t1
)
--SELECT * FROM #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--ORDER BY ENTRYID,FSEQ
UPDATE t0e SET t0e.F_CYG_TECost = t1.<EFBFBD>ݹ<EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD>
,t0e.F_CYG_TEAmount = t1.FCOSTAMTSUM
,t0e.F_CYG_TECBCost = t1.<EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>سɱ<EFBFBD><EFBFBD><EFBFBD>
,t0e.F_CYG_TECBAmount = t1.FCOSTAMTSUM1
FROM T_AR_RECEIVABLEENTRY t0e
INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t1 on t1.ENTRYID = t0e.FENTRYID
--DECLARE @billNo varchar(100)
--SET @billNo = 'FBILL2024040437'
----SET @billNo = 'FBILL2024041172'
--SET @billNo = 'FBILL2024040438'
--DECLARE @billId int
--SET @billId = 0
--;WITH #<23><><EFBFBD><EFBFBD>Ӧ<EFBFBD>յ<EFBFBD> AS (
-- SELECT t0.FBILLNO AS '<27><><EFBFBD>񵥾ݱ<F1B5A5BE><DDB1><EFBFBD>'
-- ,t0.FID,t0.FISPRICEEXCLUDETAX
-- ,t0f.FALLAMOUNT,t0.FALLAMOUNTFOR
-- ,t0f.FNOTAXAMOUNT,t0f.FNOTAXAMOUNTFOR
-- ,t0f.FTAXAMOUNT,t0f.FTAXAMOUNTFOR
-- ,t2e.FSRCBILLID
-- --,t3f.FALLAMOUNT,t3.FALLAMOUNTFOR
-- --,t3f.FNOTAXAMOUNT,t3f.FNOTAXAMOUNTFOR
-- --,t3f.FTAXAMOUNT,t3f.FTAXAMOUNTFOR
-- ,t2e.FISWRITEAMOUNT
-- FROM T_AR_RECEIVABLE t0
-- INNER JOIN T_AR_RECEIVABLEFIN t0f on t0.FID = t0f.FID
-- INNER JOIN T_AR_RECMACTHLOGENTRY t1e on t1e.FSRCBILLID = t0.FID
-- INNER JOIN T_AR_RECMACTHLOGENTRY t2e on t2e.FID = t1e.FID
-- WHERE 1=1
-- AND t0.FBILLNO = @billNo
-- --AND t0.FID = @billId
-- --AND t2e.FSRCBILLID != t1e.FSRCBILLID
-- AND t1e.FSOURCEFROMID = 'AR_receivable'
-- AND t2e.FISADIBILL = 1
-- AND t0.FDOCUMENTSTATUS = 'C'
--)
--SELECT t0.*
-- ,t3f.FNOTAXAMOUNT,t3f.FNOTAXAMOUNTFOR
-- ,t3f.FTAXAMOUNT,t3f.FTAXAMOUNTFOR
-- ,t3e.FENTRYTAXRATE
-- ,t3e.FALLAMOUNT,t3e.FALLAMOUNTFOR
-- ,t3e.FNOTAXAMOUNT,t3e.FNOTAXAMOUNTFOR
-- ,t3e.FTAXAMOUNT,t3e.FTAXAMOUNTFOR
-- ,t3e.FALLAMOUNTFOR / (t3e.FENTRYTAXRATE / 100 + 1) --<2D><><EFBFBD><EFBFBD>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>
-- ,t3e.FALLAMOUNTFOR / (t3e.FENTRYTAXRATE / 100 + 1) * t3e.FENTRYTAXRATE / 100 --<2D><><EFBFBD><EFBFBD>˰˰<CBB0><CBB0>
-- ,t3e.FALLAMOUNTFOR * (1 - t3e.FENTRYTAXRATE / 100) --<2D><><EFBFBD><EFBFBD>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>˰<EFBFBD><CBB0><EFBFBD><EFBFBD>
-- ,t3e.FALLAMOUNTFOR * t3e.FENTRYTAXRATE / 100 --<2D><><EFBFBD><EFBFBD>˰˰<CBB0><CBB0>
-- ,t0.FISPRICEEXCLUDETAX
--FROM #<23><><EFBFBD><EFBFBD>Ӧ<EFBFBD>յ<EFBFBD> t0
-- INNER JOIN T_AR_RECEIVABLEFIN t3f on t3f.FID = t0.FSRCBILLID
-- INNER JOIN T_AR_RECEIVABLEENTRY t3e on t3e.FID = t3f.FID
----ORDER BY ENTRYID,FSEQ
----UPDATE t0e SET t0e.F_CYG_TECost = t1.<EFBFBD>ݹ<EFBFBD><EFBFBD>ɱ<EFBFBD><EFBFBD><EFBFBD>
---- ,t0e.F_CYG_TEAmount = t1.FCOSTAMTSUM
---- ,t0e.F_CYG_TECBCost = t1.<2E>ݹ<EFBFBD><DDB9><EFBFBD><EFBFBD>سɱ<D8B3><C9B1><EFBFBD>
---- ,t0e.F_CYG_TECBAmount = t1.FCOSTAMTSUM1
----FROM T_AR_RECEIVABLEENTRY t0e
---- INNER JOIN #<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> t1 on t1.ENTRYID = t0e.FENTRYID