BLL - 主从表业务单据业务逻辑层C#代码


BLL - 主从表业务单据业务逻辑层C#代码-开发框架文库

BLL - 主从表业务单据业务逻辑层C#代码

由CodeGeneratorV6.0代码生成器自动生成。

代码摘自纸箱行业ERP系统《生产计划管理》。

C# 全选
using CartonERP.Common;
using CartonERP.DataAccess;
using CartonERP.Interfaces;
using CartonERP.Models;
using CartonERP.Models.ResModels;
using CartonERP.Models.UpdateModel;
using CartonERP.WebApiClient;
using CSFrameworkV6.Core;
using CSFrameworkV6.Core.Common;
using System;
using System.Collections.Generic;
using System.Data;

/*===================================================================
 *   程序说明: PFPlan 业务单据BLL
 *   作者资料: CSFramework
 *   创建日期: 2023/08/08 07:09:38
 *   最后修改: 2023/08/08 07:09:38
 *   
 *   注:本文件由CSFramework.CodeGenerator代码生成器自动生成。
 *      请将源码文件复制到 YourProject 对应的项目。
 *   
 *   版权所有 Copyright 2006~2023, C/S框架网 (www.csframework.com)
 *===================================================================*/

namespace CartonERP.Business
{
    /// <summary>
    /// PFPlan - 业务逻辑层
    /// </summary>
    public class bll_PFPlan : bllBaseBusiness<res_tb_PFPlan, res_tb_PFPlanDetails>
    {
        private IBridge_PFPlan _Bridge;

        /// <summary>
        /// 构造器
        /// </summary>
        public bll_PFPlan()
        {
            _SummaryTableName = nameof(tb_PFPlan);//表名
            _KeyFieldName = nameof(tb_PFPlan.isid);//主键字段
            _Bridge = this.CreateBridge();
         }

        /// <summary>
        /// 创建策略接口实例
        /// </summary>
        /// <returns></returns>
        private IBridge_PFPlan CreateBridge()
        {
            if (BridgeFactory.IsADODirect)
                return new dal_PFPlan(Loginer.CurrentUser);

            if (BridgeFactory.IsWebApi)
                return new WebApi_PFPlan();

             throw new Exception(BridgeFactory.UNKNOW_BRIDGE_TYPE);
        }
        /// <summary>
        ///新增业务单据
        /// </summary>
        public override void NewBusiness()
        {
            this.CurrentBusiness = new BusinessData<res_tb_PFPlan, res_tb_PFPlanDetails>();
            this.CurrentBusiness.Master = new res_tb_PFPlan();
            this.CurrentBusiness.Details = new List<res_tb_PFPlanDetails>();

            //新增状态:主表记录设置默认值
            this.CurrentBusiness.Master.PLNO = Globals.DEF_NO_TEXT;
            this.CurrentBusiness.Master.DocDate = DateTime.Today;
        }

        /// <summary>
        /// 审核单据
        /// </summary>
        /// <param name="current">单据主表记录</param>
        /// <returns></returns>
        public override bool ApprovalBusiness(res_tb_PFPlan current)
        {
             var input = new req_Approval
             {
                 DocNo = current.PLNO,
                 Type = ApprovalType.Approval,
             };

             var result = _Bridge.ApprovalBusiness(input);
             if (result)
             {
                 current.FlagApp = "Y";
                 current.AppDate = DateTime.Now;
                 current.AppUser = Loginer.CurrentUser.Account;
             }
             return result;
        }

        /// <summary>
        /// 反审核单据。
        /// </summary>
        public override bool ApprovalBusinessUndo(res_tb_PFPlan current)
        {
             var input = new req_Approval
             {
                 DocNo = current.PLNO,
                 Type = ApprovalType.UnApproval,
             };

             var result = _Bridge.ApprovalBusiness(input);
             if (result)
             {
                 current.FlagApp = "N";
                 current.AppDate = null;
                 current.AppUser = null;
             }
             return result;
        }

        /// <summary>
        /// 查询数据
        /// </summary>
        public List<res_tb_PFPlan> Query(req_PFPlan input)
        {
            return _Bridge.Query(input);
        }

        /// <summary>
        /// 获取单据
        /// </summary>
        public override BusinessData<res_tb_PFPlan, res_tb_PFPlanDetails> GetDataByKey(string docNo)
        {
            return _Bridge.GetDataByKey(docNo);
        }

        /// <summary>
        /// 删除单据
        /// </summary>
        /// <param name="docNo">单据号码</param>
        public override bool Delete(string docNo)
        {
            return _Bridge.Delete(docNo);
        }

        /// <summary>
        /// 创建用于保存的临时数据
        /// 逻辑:将界面操作的单据实体类转换为EF实体。
        /// </summary>
        /// <param name="formData">界面操作的单据实体</param>
        public BusinessData<tb_PFPlan, tb_PFPlanDetails> CreateSaveData(BusinessData<res_tb_PFPlan, res_tb_PFPlanDetails> formData)
        {
            var data = new BusinessData<tb_PFPlan, tb_PFPlanDetails>
            {
                Master = ObjectHelper.Convert<tb_PFPlan>(formData.Master),
                Details = ObjectHelper.Convert<List<tb_PFPlanDetails>>(formData.Details),
            };

            //
            //其他逻辑处理
            //

            return data;
        }


        /// <summary>
        /// 保存数据
        /// </summary>
        /// <param name="formData">界面操作的单据实体</param>
        public override SaveResult Update(BusinessData<res_tb_PFPlan, res_tb_PFPlanDetails> formData)
        {
            //将界面操作的单据实体类转换为EF实体
            var temp = this.CreateSaveData(formData);

            return _Bridge.Update(temp);
        }

        /// <summary>
        /// 保存数据
        /// </summary>
        /// <param name="data">EF单据实体</param>
        public SaveResult Update(BusinessData<tb_PFPlan, tb_PFPlanDetails> data)
        {
            return _Bridge.Update(data);
        }
    }
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
评论列表

发表评论

评论内容
昵称:
关联文章

BLL - 主从业务单据业务逻辑C#代码
BLL - 单数据字典业务逻辑C#代码
DAL - 主从业务单据数据访问C#代码
代码生成器 CodeGenerator - 生成BLL
使用bllBaseDataDict类提交业务单据主从)的明细表实例|C/S框架网
CSFrameworkV6旗舰版-使用代码生成器生成业务单据窗体(主从窗体)
代码生成器 CodeGenerator - 生成业务窗体 (主从数据管理界面)
新增业务单据主从窗体 - MiniFramework蝇量框架 - Winform框架
CSFramework C#代码生成器生成窗体界面UI,BLL,DAL,Model,WCF接口源代码
CSFrameworkV6-业务单据数据查询页面显示主从关联数据解决方案
支持主从BLL单独提交明细表优化UpdateDetailKey方法|C/S框架网
新增主从业务单据窗体 | C/S架构软件开发平台 - 旗舰版V6.0
CSFramework代码生成器自动生成主从界面-C/S框架网
开发业务单据报表(主从) - MiniFramework蝇量框架 - Winform框架
业务单据上下级权限控制实现
《CS框架V2.2-3.0业务单据窗体_主从_快速开发指南》
三.业务单据窗体逻辑关系图-业务单据窗体-C/S快速开发框架-标准版V2.3
C/S快速开发框架旗舰版V5.1 - 业务单据窗体开发步骤
C# Winform 三架构代码生成器 V5.1版正式发布
关于业务单据主从导入数据,销售订单(SO)的数据导入到销售退货单(SR)