/// 
///WCF service
///FOR TABLE t_erpOrgDoc
///By wm  
///on 08/04/2023
/// 
  
using System.Collections.Generic;
using System.Data;
using DeiNiu.wms.Data.Model.Wcf ;
using DeiNiu.wms.Data.Model;
using System.Transactions;
using DeiNiu.Utils;
using System;
using DeiNiu.Wcf.erp.wcfData;
namespace DeiNiu.Wcf
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名 。
    public class T_ERPORGDOC :baseSvc, IErpOrgDoc 
    {
        #region options
      /*: basicService, 
        private static  lErpOrgDoc  _lErpOrgDoc ;
         lErpOrgDoc  lErpOrgDocObj
        {
            get
            {
                if ( _lErpOrgDoc  == null ||   _lErpOrgDoc.operId != getOperId())
                {
                     _lErpOrgDoc= new  lErpOrgDoc(getOperId());
                }
                return  _lErpOrgDoc;
            }
        }
       */
       #endregion 
       
         public WcfErpOrgDoc getObj(int Id)
        {
            log.Debug("getObj called --->" + Id);
            WcfErpOrgDoc  wcfObj = new WcfErpOrgDoc ();
            ErpOrgDoc dbObj = new ErpOrgDoc(Id);
             log.Debug("return json :" + Util.getJson( wcfObj.getWcfObject(dbObj)));
            return wcfObj.getWcfObject(dbObj);
        }
        public  Result add(WcfErpOrgDoc obj)
        {
            log.Debug("add called --->" + Util.getJson(obj));
            int id = 0; 
            try
            {
                id = obj.getDbObject().Add();
            }
            catch (Exception ex)
            {
                log.Error(ex);
                return new Result(enumDbResult.失败, ex.Message);
            }
            Result  rt = id > 0 ? new Result(id, enumDbResult.成功) : new Result(enumDbResult.失败);
            log.Debug(Util.getJson(rt));
            return rt;
           
        }
 
      
        public Result update(WcfErpOrgDoc obj)
        {
             log.Debug("update called --->" + Util.getJson(obj));
            int cnt = 0; 
            try
            {
                cnt = obj.getDbObject().Update();
            }
            catch (Exception ex)
            {
                log.Error(ex);
             return new Result(enumDbResult.失败, ex.Message);
            }
              Result rt  = cnt > 0 ? new Result(cnt, enumDbResult.成功) : new Result(enumDbResult.失败);
            log.Debug(Util.getJson(rt));
            return rt;
        } 
       #region options
       /*
        public enumDbResult delete(WcfErpOrgDoc obj)
        {
            int cnt = 0;
            try { 
            
                cnt = obj.getDbObject().Delete();
            }catch(Exception er)
            {
                return new Result(enumDbResult.失败, er.Message);
            } 
            return new Result(cnt,  enumDbResult.成功);
        }
     
        public List updateList(List objs)
        {
             
            List results = new List();
           // using (TransactionScope scope = new TransactionScope())
            {
                foreach (WcfErpOrgDoc obj in objs)
                {
                    Result rs = new Result(obj.id, obj.getDbObject().Update());
                    results.Add(rs);
                }
              //  scope.Complete();
            }
            return results;
        }
        public List addList(List objs)
        {
            List results = new List();
           // using (TransactionScope scope = new TransactionScope())
            {
                foreach (WcfErpOrgDoc obj in objs)
                {
                    Result rs = new Result( obj.getDbObject().Add(),1);
                    results.Add(rs);
                }
              //  scope.Complete();
            }
            return results;
        }
        public List deleteList(List objs)
        {
            List results = new List();
           // using (TransactionScope scope = new TransactionScope())
            {
                foreach (WcfErpOrgDoc obj in objs)
                {
                    Result rs = new Result(obj.id, obj.getDbObject().Delete());
                    results.Add(rs);
                }
              //  scope.Complete();
            }
            return results;
        }*/
  #endregion 
     
        
        public WcfErpOrgDocList query(string condition, int pageno)
        {
            log.Debug("query called --->" + condition +", pageno " +pageno);
             condition = filterRisk(condition);
            WcfErpOrgDocList objLst = new WcfErpOrgDocList();
            List lst = new List();
              ErpOrgDoc dbObj = new   ErpOrgDoc();
            dbObj.rownumStart =(Convert.ToInt16(  pageno)-1)*  WmsConstants.PAGER_SIZE;
            dbObj.rownumEnd = dbObj.rownumStart + DeiNiu.Utils.WmsConstants.PAGER_SIZE;
            DataSet ds = dbObj.Query(condition);                     
            if (ds.Tables.Count >1)
            {
              DataTable dt = ds.Tables[0];    
                foreach(DataRow dr in dt.Rows)
                { 
                    lst.Add(new WcfErpOrgDoc(dr));
                }
                objLst.rows = Convert.ToInt32(ds.Tables[1].Rows[0][0].ToString());
            }
            objLst.list =lst; 
            objLst.page = Convert.ToInt16(pageno);
            objLst.pageSize = WmsConstants.PAGER_SIZE;
            
            objLst.pageCnt = objLst.rows / WmsConstants.PAGER_SIZE;
            log.Debug(Util.getJson(objLst));
            return objLst;
        }
    }
 }