涉税数据采集会计期间开放(允许未结账期间采集涉税数据)

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

涉税数据采集会计期间开放(允许未结账期间采集涉税数据)

近期处理特殊业务(做笔记):需要将系统涉税数据采集会计期间开放(允许未结账期间采集涉税数据)

实现方案:插件:二开重写税务管理-涉税数据采集表单插件 放开期间选择;bos界面:涉税数据采集表单 取消 标准插件 并 注册启用二开插件;

标准插件:Kingdee.K3.FIN.IV.Business.PlugIn.IntegrationTax.TaxItgDataCollectionPlugIn

image.webp


达到效果:

image.webp


二开重写代码(仅供参考):

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;

        }

    }

}


补充(如涉税数据采集.账簿选不到值-->需手工维护'连接配置')

image.webp


image.webp


涉税数据采集会计期间开放(允许未结账期间采集涉税数据)

近期处理特殊业务(做笔记):需要将系统涉税数据采集会计期间开放(允许未结账期间采集涉税数据)实现方案:插件:二开重写税务管理-涉税数据...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息