电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

结算清单-保存重算单价

来源:金蝶云社区作者:金蝶2024-09-168

结算清单-保存重算单价

在结算清单保存时,需要重算单价。根据销售出库单上自定义的一个单价,替代结算清单上的单价。

话不多说,贴代码:


 public override void OnPreparePropertys(PreparePropertysEventArgs e)

        {

            base.OnPreparePropertys(e);

            e.FieldKeys.Add("FAcctOrgId"); //核算组织

            e.FieldKeys.Add("FMapAcctOrgId"); //供货方(核算组织)

            e.FieldKeys.Add("FBizFormId"); //业务单据名称

            e.FieldKeys.Add("FBizEntryId");  //业务单据分录内码

            e.FieldKeys.Add("FBizID"); //业务单据内码

            e.FieldKeys.Add("FCurrencyId");  //结算币别

            e.FieldKeys.Add("FQty");  //计价单位数量

            e.FieldKeys.Add("FPrice"); //结算价格

            e.FieldKeys.Add("FAllAmount");  //价税合计

            e.FieldKeys.Add("FAmount");  //结算金额

            e.FieldKeys.Add("FTaxAmount");  //税额

            e.FieldKeys.Add("FSettleReconciliationAmount");  //结算对账金额

            e.FieldKeys.Add("FSettleReconciliationAllAmount");  //结算对账价税合计

            e.FieldKeys.Add("FSettleReconciliationTaxAmount");  //结算对账税额

            e.FieldKeys.Add("FSumAcount");  //应收结算汇总金额

            e.FieldKeys.Add("FSUMALLACOUNT"); //结算价税合计

            e.FieldKeys.Add("FTaxPrice");  //含税单价

        }


  public override void EndOperationTransaction(EndOperationTransactionArgs e)

        {

            base.EndOperationTransaction(e);


            foreach (var item in e.DataEntitys)

            {

                DynamicObject AcctOrgId = item["AcctOrgId"] as DynamicObject;

                DynamicObject MapAcctOrgId = item["MapAcctOrgId"] as DynamicObject;

                string fromId = this.BusinessInfo.GetForm().Id;

                if (AcctOrgId != null && MapAcctOrgId != null)

                {

                    string AcctOrgIdNumber = AcctOrgId["Number"].ToString();

                    string MapAcctOrgIdNumber = MapAcctOrgId["Number"].ToString();

                    bool PD1 = fromId.Equals("IOS_ARSettlement") && AcctOrgIdNumber.Equals("100") && MapAcctOrgIdNumber.Equals("105");

                    bool PD2 = fromId.Equals("IOS_APSettlement") && AcctOrgIdNumber.Equals("105") && MapAcctOrgIdNumber.Equals("100");

                    //核算组织 100,供货方组织105

                    if (PD1 || PD2)

                    {

                        DynamicObjectCollection DetailEntity = item["DetailEntity"] as DynamicObjectCollection;


                        object FSETTLECURRID = null;

                        foreach (var entityRow in DetailEntity)

                        {

                            DynamicObject BizFormId = entityRow["BizFormId"] as DynamicObject;


                            if (BizFormId != null && BizFormId["Name"].ToString().Equals("销售出库单"))

                            {

                                //根据SQL拿到

                                //                        string querySQL = string.Format(@"   select t1.FTAXPRICE,t2.FSETTLECURRID,t1.FPRICE,t1.FPRICE*t1.FTAXRATE/100 SJ from 

                                //                        T_SAL_OUTSTOCKENTRY_LK t

                                //left join T_SAL_DELIVERYNOTICEENTRY_LK TZDLK on TZDLK.FENTRYID=t.FSID and TZDLK.FSTABLENAME='T_SAL_ORDERENTRY'

                                //                        left join T_SAL_ORDERENTRY_F t1 on TZDLK.FSID=t1.FENTRYID 

                                //                        left join T_SAL_ORDERFIN t2 on t1.FID=t2.FID

                                //                        where t.FENTRYID={0} and t.FSTABLENAME='T_SAL_DELIVERYNOTICEENTRY'", entityRow["BizEntryId"]);


                                string querySQL = string.Format(@"select t1.FTAXRATE/100 FTAXRATE,t2.FSETTLECURRID,F_BGPrice FTAXPRICE from 

                                T_SAL_OUTSTOCKENTRY t

                                left join T_SAL_OUTSTOCKENTRY_F t1 on t.FENTRYID=t1.FENTRYID

                                left join T_SAL_OUTSTOCKFIN t2 on t1.FID=t2.FID where t.FENTRYID={0}", entityRow["BizEntryId"]);


                                DynamicObjectCollection queryResult = DBUtils.ExecuteDynamicObject(Context, querySQL);

                                //重新赋值

           

结算清单-保存重算单价

在结算清单保存时,需要重算单价。根据销售出库单上自定义的一个单价,替代结算清单上的单价。话不多说,贴代码: public override void...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信