Esempio n. 1
0
 /// <summary>
 /// get asset depre list
 /// <summary>
 /// <param name=accname>accname</param>
 /// <param name=out emsg>return error message</param>
 ///<returns>get a record detail of assetlist</returns>
 public BindingCollection <modAssetDepreList> GetDepreList(out string emsg)
 {
     try
     {
         BindingCollection <modAssetDepreList> modellist = new BindingCollection <modAssetDepreList>();
         //Execute a query to read the categories
         string sql = "select acc_name,asset_id,asset_name,depre_method,depre_unit,net_mny,depre_mny,depre_qty,net_qty,remark,update_user,update_time from asset_depre_list order by asset_id, acc_name";
         using (SqlDataReader rdr = SqlHelper.ExecuteReader(sql))
         {
             while (rdr.Read())
             {
                 modAssetDepreList model = new modAssetDepreList();
                 model.AccName     = dalUtility.ConvertToString(rdr["acc_name"]);
                 model.AssetId     = dalUtility.ConvertToString(rdr["asset_id"]);
                 model.AssetName   = dalUtility.ConvertToString(rdr["asset_name"]);
                 model.DepreMethod = dalUtility.ConvertToString(rdr["depre_method"]);
                 model.DepreUnit   = dalUtility.ConvertToString(rdr["depre_unit"]);
                 model.NetMny      = dalUtility.ConvertToDecimal(rdr["net_mny"]);
                 model.DepreMny    = dalUtility.ConvertToDecimal(rdr["depre_mny"]);
                 model.DepreQty    = dalUtility.ConvertToDecimal(rdr["depre_qty"]);
                 model.NetQty      = dalUtility.ConvertToDecimal(rdr["net_qty"]);
                 model.Remark      = dalUtility.ConvertToString(rdr["remark"]);
                 model.UpdateUser  = dalUtility.ConvertToString(rdr["update_user"]);
                 model.UpdateTime  = dalUtility.ConvertToDateTime(rdr["update_time"]);
                 modellist.Add(model);
             }
         }
         emsg = null;
         return(modellist);
     }
     catch (Exception ex)
     {
         emsg = dalUtility.ErrorMessage(ex.Message);
         return(null);
     }
 }
Esempio n. 2
0
        /// <summary>
        /// get asset depre list
        /// <summary>
        /// <param name=accname>accname</param>
        /// <param name=out emsg>return error message</param>
        ///<returns>get a record detail of assetlist</returns>
        public BindingCollection <modAssetDepreList> GetWaitDepreList(string accname, out string emsg)
        {
            try
            {
                BindingCollection <modAssetDepreList> modellist = new BindingCollection <modAssetDepreList>();
                //Execute a query to read the categories
                string sql = "select asset_id,asset_name,depre_method,raw_qty,raw_mny,(raw_mny-last_mny) ttl_mny,depre_unit from asset_list where status<=1 order by asset_id";
                using (SqlDataReader rdr = SqlHelper.ExecuteReader(sql))
                {
                    while (rdr.Read())
                    {
                        modAssetDepreList model = new modAssetDepreList();
                        model.AccName     = accname;
                        model.AssetId     = dalUtility.ConvertToString(rdr["asset_id"]);
                        model.AssetName   = dalUtility.ConvertToString(rdr["asset_name"]);
                        model.DepreMethod = dalUtility.ConvertToString(rdr["depre_method"]);
                        model.NetMny      = Convert.ToDecimal(rdr["raw_mny"]) - GetDepreMny(model.AssetId, string.Empty);
                        model.DepreUnit   = dalUtility.ConvertToString(rdr["depre_unit"]);

                        switch (model.DepreMethod)
                        {
                        case "平均年限法":
                            model.NetQty = dalUtility.ConvertToDecimal(rdr["raw_qty"]);
                            if (model.NetQty > 0)
                            {
                                model.DepreQty = 1;
                                model.DepreMny = decimal.Round(Convert.ToDecimal(rdr["ttl_mny"]) / model.NetQty, 2);
                            }
                            break;

                        case "双倍余额递减法":
                            model.NetQty = dalUtility.ConvertToDecimal(rdr["raw_qty"]);
                            if (model.NetQty > 0)
                            {
                                model.DepreMny = decimal.Round(Convert.ToDecimal(rdr["ttl_mny"]) * 2 / model.NetQty, 2);
                                if (Convert.ToDecimal(rdr["ttl_mny"]) > 0)
                                {
                                    model.DepreQty = decimal.Round(model.DepreMny * model.NetQty / Convert.ToDecimal(rdr["ttl_mny"]), 2);
                                }
                            }
                            break;

                        case "工作量法":
                            dalAssetWorkQty dalwork = new dalAssetWorkQty();
                            modAssetWorkQty modwork = dalwork.GetItem(model.AssetId, model.AccName, out emsg);
                            if (modwork == null)
                            {
                                emsg = model.AssetName + "未做工量设置";
                                return(null);
                            }
                            else
                            {
                                model.NetQty = dalUtility.ConvertToDecimal(rdr["raw_qty"]);
                                if (model.NetQty > 0)
                                {
                                    model.DepreQty = modwork.WorkQty;
                                    model.DepreMny = decimal.Round(Convert.ToDecimal(rdr["ttl_mny"]) * modwork.WorkQty / model.NetQty, 2);
                                }
                            }
                            break;

                        default:
                            emsg = model.AssetName + "未设置折旧方法";
                            return(null);
                        }
                        if (model.DepreMny > model.NetMny)
                        {
                            model.DepreMny = model.NetMny;
                        }
                        modellist.Add(model);
                    }
                }
                emsg = null;
                return(modellist);
            }
            catch (Exception ex)
            {
                emsg = dalUtility.ErrorMessage(ex.Message);
                return(null);
            }
        }