using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers.GZGL
{
    public class Gy_DuSubsidyItemBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        public DataSet ds = new DataSet();
        public DLL.ClsGy_DuSubsidyItemBill BillNew0 = new DLL.ClsGy_DuSubsidyItemBill();
        public DLL.ClsGy_DuSubsidyItemBill BillOld0 = new DLL.ClsGy_DuSubsidyItemBill();
        #region 扣补资料列表数据
        /// 
        /// 返回扣补资料列表
        ///参数:string sql。
        ///返回值:object。
        /// 
        [Route("Gy_DuSubsidyItemBill/Gy_DuSubsidyItemlist")]
        [HttpGet]
        public object Gy_DuSubsidyItemlist(string sWhere,string user)
        {
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Gy_DuSubsidyItem", 1, false, user))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无查看权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                if (sWhere == null || sWhere.Equals(""))
                {
                    ds = oCN.RunProcReturn("select * from h_v_Gy_DuSubsidyItemList " + sWhere, "h_v_Gy_DuSubsidyItemList");
                }
                else
                {
                    string sql1 = "select * from h_v_Gy_DuSubsidyItemList where 1 = 1 ";
                    string sql = sql1 + sWhere;
                    ds = oCN.RunProcReturn(sql, "h_v_Gy_DuSubsidyItemList");
                }
                if (ds == null || ds.Tables[0].Rows.Count == 0)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "false!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "Sucess!";
                    objJsonResult.data = ds.Tables[0];
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 扣补项目删除
        /// 
        /// 扣补项目删除按钮
        ///参数:string sql。
        ///返回值:object。
        /// 
        [Route("Gy_DuSubsidyItemBill/Delete_Json")]
        [HttpGet]
        public object Delete_Json(string HInterID,string user)
        {
            if (!DBUtility.ClsPub.Security_Log("Gy_DuSubsidyItem_Delete", 1, false, user))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无删除权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            //用id查到该对象
            string sql = "select * from Gy_DuSubsidyItem where HItemID =  " + HInterID;
            ds = oCN.RunProcReturn(sql, "Gy_DuSubsidyItem");
            if (ds == null)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "不存在此对象!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                //if (ds.Tables[0].Columns[12].ToString()!="未使用")
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "此项目已使用或者未检测,不能删除!请重新检测再删除!";
                //    objJsonResult.data = null;
                //    return objJsonResult;
                //}
                //else
                //{
                string sql2 = "delete from Gy_DuSubsidyItem where HItemID = " + HInterID;
                ds = oCN.RunProcReturn(sql2, "Gy_DuSubsidyItem");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "删除成功";
                objJsonResult.data = null;
                return objJsonResult;
                //}
            }
        }
        #endregion
        #region 扣补资料修改获取绑定数据
        /// 
        /// 扣补资料列表修改按钮方法
        ///参数:string sql。
        ///返回值:object。
        /// 
        [Route("Gy_DuSubsidyItemBill/xg")]
        [HttpGet]
        public object xg(long HID)
        {
            try
            {
                ds = oCN.RunProcReturn("select * from Gy_DuSubsidyItem where HItemID=" + HID, "Gy_DuSubsidyItem");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 扣补资料保存
        /// 
        /// 保存按钮
        ///参数:string sql。
        ///返回值:object。
        /// 
        [Route("Gy_DuSubsidyItemBill/SaveGetGy_DuSubsidyItemBill")]
        [HttpPost]
        public object SaveGetGy_DuSubsidyItemBill([FromBody] JObject oMain)
        {
            var _value = oMain["oMain"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            ListModels oListModels = new ListModels();
            try
            {
                if (!DBUtility.ClsPub.Security_Log("Gy_DuSubsidyItem_Edit", 1, false, msg3))
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "无保存权限!";
                    objJsonResult.data = null;
                    return objJsonResult;
                }
                DLL.ClsGy_DuSubsidyItemBill oBill = new DLL.ClsGy_DuSubsidyItemBill();
                List lsmain = new List();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Gy_DuSubsidyItemBill(msg2);
                foreach (Model.ClsGy_DuSubsidyItem_Model oItem in lsmain)
                {
                    oBill.omodel = oItem;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (oBill.omodel.HItemID == 0)
                {
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = oBill.ModifyBill(oBill.omodel.HItemID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
    }
}