/// 
///WCF service
///FOR TABLE t_erp_pandian
///By wm  
///on 06/08/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_ERP_PANDIAN :baseSvc, IErp_pandian 
    {
        #region options
        /*: basicService, 
          private static  lErp_pandian  _lErp_pandian ;
           lErp_pandian  lErp_pandianObj
          {
              get
              {
                  if ( _lErp_pandian  == null ||   _lErp_pandian.operId != getOperId())
                  {
                       _lErp_pandian= new  lErp_pandian(getOperId());
                  }
                  return  _lErp_pandian;
              }
          }
         */
        #endregion
        public WcfErp_pandian getObj(int Id)
        {
            log.Debug("getObj called --->" + Id);
            WcfErp_pandian wcfObj = new WcfErp_pandian();
            Erp_pandian dbObj = new Erp_pandian(Id);
            log.Debug("return json :" + Util.getJson(wcfObj.getWcfObject(dbObj)));
            return wcfObj.getWcfObject(dbObj);
        }
        public Result add(WcfErp_pandian 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(WcfErp_pandian 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(WcfErp_pandian 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 (WcfErp_pandian 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 (WcfErp_pandian 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 (WcfErp_pandian obj in objs)
                 {
                     Result rs = new Result(obj.id, obj.getDbObject().Delete());
                     results.Add(rs);
                 }
               //  scope.Complete();
             }
             return results;
         }*/
        #endregion
        public WcfErp_pandianList query(string condition, int pageno)
        {
            log.Debug("query called --->" + condition + ", pageno " + pageno);
            condition = filterRisk(condition);
            WcfErp_pandianList objLst = new WcfErp_pandianList();
            List lst = new List();
            Erp_pandian dbObj = new Erp_pandian();
            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 WcfErp_pandian(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;
        }
        public Result complete(string orderNo)
        {
            return new Result(enumDbResult.成功);
        }
        
        public WcfErp_pandian getSumary(string orderNo,string goodsId)
        {
            Erp_pandian dbObj = new Erp_pandian();
            return new WcfErp_pandian( dbObj.getGoodsSumary(orderNo,goodsId));
        }
        public List getDetail(string orderNo, string goodsId)
        {
            Erp_pandian dbObj = new Erp_pandian();
            List lst = new List();
            DataTable dt = dbObj.getGoodsDetail(orderNo, goodsId);
            foreach (DataRow dr in dt.Rows)
            {
                lst.Add(new WcfErp_pandian( new Erp_pandian(dr)));
            }
            return lst;
        }
        
    }
 }