涉税数据采集会计期间开放(允许未结账期间采集涉税数据)
近期处理特殊业务(做笔记):需要将系统涉税数据采集会计期间开放(允许未结账期间采集涉税数据)
实现方案:插件:二开重写税务管理-涉税数据采集表单插件 放开期间选择;bos界面:涉税数据采集表单 取消 标准插件 并 注册启用二开插件;
标准插件:Kingdee.K3.FIN.IV.Business.PlugIn.IntegrationTax.TaxItgDataCollectionPlugIn
达到效果:
二开重写代码(仅供参考):
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.K3.FIN.IV.Business.PlugIn.IntegrationTax;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
namespace XXXX.Business.Plugin.IV_TAXITGDATACLCT
{
[HotUpdate]
[Description("涉税数据采集表单插件-含未结账")]
public class TaxItgDataCollectionPlugIn_CustomerDev : TaxItgDataCollectionPlugIn
{
public override void DataChanged(DataChangedEventArgs e)
{
int num = 0;
string fieldKey;
if ((fieldKey = e.Field.Key.ToUpperInvariant()) == null)
{
return;
}
if (!(fieldKey == "FACCOUNTBOOKID"))
{
if (fieldKey == "FYEAR")
{
DynamicObject dynamicObject = View.Model.GetValue("FACCOUNTBOOKID") as DynamicObject;
num = (dynamicObject != null) ? Convert.ToInt32(dynamicObject["Id"]) : 0;
if (!e.NewValue.IsNullOrEmptyOrWhiteSpace() && num != 0)
{
if (!acctBook_YearPeriod_Dic.ContainsKey(num))
{
acctBook_YearPeriod_Dic.Add(num, GetCloseYearPeriodByAccountBook(base.Context, num));
}
}
}
}
else if (!e.NewValue.IsNullOrEmptyOrWhiteSpace() && Convert.ToInt64(e.NewValue) != 0)
{
num = Convert.ToInt32(e.NewValue);
if (!acctBook_YearPeriod_Dic.ContainsKey(num))
{
acctBook_YearPeriod_Dic.Add(num, GetCloseYearPeriodByAccountBook(base.Context, num));
}
}
base.DataChanged(e);
}
public Dictionary<int, List<int>> GetCloseYearPeriodByAccountBook(Context ctx, int accountBookId)
{
Dictionary<int, List<int>> dictionary = new Dictionary<int, List<int>>();
string strSQL = string.Format(@"/*dialect*/SELECT T3.FYEAR AS FYEAR, T3.FPERIOD AS FPERIOD
FROM T_BD_ACCOUNTBOOK T1
INNER JOIN T_BD_ACCOUNTCALENDAR T2 ON T1.FPERIODID = T2.FID
INNER JOIN T_BD_ACCOUNTPERIOD T3 ON T2.FID = T3.FID
WHERE T1.FBOOKID = {0}
AND (T3.FYEAR > T1.FSTARTYEAR OR (T3.FYEAR = T1.FSTARTYEAR AND T3.FPERIOD >= T1.FSTARTPERIOD))
AND (T3.FYEAR < T1.FCURRENTYEAR OR (T3.FYEAR = T1.FCURRENTYEAR AND T3.FPERIOD <T1.FCURRENTPERIOD +2) )
ORDER BY T3.FYEAR, T3.FPERIOD ", accountBookId);
DynamicObjectCollection dynamicObjectCollection = DBUtils.ExecuteDynamicObject(ctx, strSQL, null, null, CommandType.Text);
if (dynamicObjectCollection != null && dynamicObjectCollection.Count > 0)
{
foreach (DynamicObject item2 in dynamicObjectCollection)
{
int num = Convert.ToInt32(item2["FYEAR"]);
int item = Convert.ToInt32(item2["FPERIOD"]);
if (dictionary.Keys.Contains(num))
{
dictionary[num].Add(item);
}
else
{
dictionary.Add(num, new List<int>
{
item
});
}
}
return dictionary;
}
return dictionary;
}
}
}
补充(如涉税数据采集.账簿选不到值-->需手工维护'连接配置')
涉税数据采集会计期间开放(允许未结账期间采集涉税数据)
本文2024-09-16 17:10:20发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-13988.html