using Model; 
 | 
using Newtonsoft.Json; 
 | 
using Newtonsoft.Json.Linq; 
 | 
using Pub_Class; 
 | 
using System; 
 | 
using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using System.Data; 
 | 
using System.Data.SqlClient; 
 | 
using System.Web.Http; 
 | 
using WebAPI.Models; 
 | 
using SyntacticSugar.constant; 
 | 
  
 | 
namespace WebAPI.Controllers 
 | 
{ 
 | 
    //销售核销 
 | 
    public class Cg_POStockInBillList_SecController : ApiController 
 | 
    { 
 | 
        //获取系统参数 
 | 
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter(); 
 | 
        public DBUtility.ClsPub.Enum_BillStatus BillStatus; 
 | 
  
 | 
  
 | 
        private json objJsonResult = new json(); 
 | 
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); 
 | 
        DataSet ds; 
 | 
        #region 加入单据到待核销队列 
 | 
        [Route("Cg_POStockInBillList_Sec/addBillToWaitSecList")] 
 | 
        [HttpGet] 
 | 
        public object addBillToWaitSecList(int hmainid, string user) 
 | 
        { 
 | 
            try 
 | 
            { 
 | 
                string sql = "select * from Kf_ICStockBillMain where HBillType = '1201' and HInterID = " + hmainid; 
 | 
                ds = oCN.RunProcReturn(sql, "Kf_ICStockBillMain"); 
 | 
  
 | 
                string sql1 = "insert into Cg_POStockInBillList_Sec(HMaker,HMakeDate,HMainSourceInterID,MainSourceBillNo,HMainSourceBillType) " + 
 | 
                    " values(" + 
 | 
                    "'" + user + "'" + 
 | 
                    "," + "getdate()" + "" + 
 | 
                    "," + hmainid + "" + 
 | 
                    ",'" + ds.Tables[0].Rows[0]["HBillNo"].ToString() + "'" + 
 | 
                    ",'" + "1201" + "'" + 
 | 
                    ")"; 
 | 
                oCN.RunProc(sql1); 
 | 
  
 | 
                objJsonResult.code = "1"; 
 | 
                objJsonResult.count = 1; 
 | 
                objJsonResult.Message = "Sucess!"; 
 | 
                objJsonResult.data = null; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = "Exception!" + e.ToString(); 
 | 
                objJsonResult.data = null; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        #region 核销生成应收单 
 | 
        [Route("Cg_POStockInBillList_Sec/SecToPayableBill")] 
 | 
        [HttpGet] 
 | 
        public object SecToPayableBill(string hmainidList, string user) 
 | 
        { 
 | 
            oCN.BeginTran(); 
 | 
            try 
 | 
            { 
 | 
                //将待核销列表中的数据标记为已核销 
 | 
                string sql0 = $"update Cg_POStockInBillList_Sec set HSecEmp = '{user}',HSecTime = getdate() where HMainSourceInterID in ({hmainidList})"; 
 | 
                oCN.RunProc(sql0); 
 | 
  
 | 
                //生成应付单 
 | 
                string sql = $"select * from h_v_Kf_POStockInBillEdit where hmainid in ({ hmainidList})"; 
 | 
                ds = oCN.RunProcReturn(sql, "h_v_Kf_POStockInBillEdit"); 
 | 
                DAL.ClsCg_PayableBill oBill = new DAL.ClsCg_PayableBill(); 
 | 
                oBill.omodel.HInterID = DBUtility.ClsPub.CreateBillID("1114", ref DBUtility.ClsPub.sExeReturnInfo); 
 | 
                oBill.omodel.HBillNo = DBUtility.ClsPub.CreateBillCode_Prod("1114", ref DBUtility.ClsPub.sExeReturnInfo,false); 
 | 
                oBill.omodel.HDate = DateTime.Now; 
 | 
                oBill.omodel.HPeriod = DateTime.Now.Month; 
 | 
                oBill.omodel.HYear = DateTime.Now.Year; 
 | 
                oBill.omodel.HMainSourceInterID = 0; 
 | 
                oBill.omodel.HMainSourceEntryID = 0; 
 | 
                oBill.omodel.HMainSourceBillNo = ""; 
 | 
                oBill.omodel.HMainSourceBillType = "1201"; 
 | 
                oBill.omodel.HMaker = user; 
 | 
                oBill.omodel.HMakeDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); 
 | 
                oBill.omodel.HSSID = 0; ; 
 | 
                oBill.omodel.HPSStyleID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HPSStyleID"]); ; ; 
 | 
                oBill.omodel.HReceiveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); 
 | 
                oBill.omodel.HSupID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HSupID"]); 
 | 
                oBill.omodel.HCurID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HCurID"]); 
 | 
                oBill.omodel.HExRate = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[0]["汇率"]); 
 | 
                oBill.omodel.HEmpID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HEmpID"]); 
 | 
                oBill.omodel.HMangerID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HManagerID"]); 
 | 
                oBill.omodel.HDeptID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HDeptID"]); 
 | 
                oBill.omodel.HExplanation = ""; 
 | 
                oBill.omodel.HInnerBillNo = ""; 
 | 
                oBill.omodel.HRemark = ""; 
 | 
                oBill.omodel.HInvoiceBillNo = ""; 
 | 
                oBill.omodel.HProjectID = 0; 
 | 
  
 | 
                for(int i = 0; i < ds.Tables[0].Rows.Count; i++) 
 | 
                { 
 | 
                    Model.ClsCg_PayableSub oItemSub = new Model.ClsCg_PayableSub(); 
 | 
                    oItemSub.HInterID = oBill.omodel.HInterID; 
 | 
                    oItemSub.HEntryID = (i + 1); 
 | 
                    oItemSub.HBillNo_bak = oBill.omodel.HBillNo; 
 | 
                    oItemSub.HMaterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["HMaterID"]); 
 | 
                    oItemSub.HUnitID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["HUnitID"]); 
 | 
                    oItemSub.HQty = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["实收数量"]); 
 | 
                    oItemSub.HPrice = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["单价"]); 
 | 
                    oItemSub.HTaxPrice = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["含税单价"]); 
 | 
                    oItemSub.HDiscountRate = 1; ; 
 | 
                    oItemSub.HRelTaxPrice = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["含税单价"]); 
 | 
                    oItemSub.HTaxRate = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["税率"]); 
 | 
                    oItemSub.HTaxMoney = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["金额"]) * DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["税率"]); 
 | 
                    oItemSub.HlineTotal = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["含税金额"]); 
 | 
                    oItemSub.HlineTotalBB = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["含税金额"]) * oBill.omodel.HExRate; 
 | 
                    oItemSub.HMoney = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["金额"]); 
 | 
                    oItemSub.HMoneyBB = DBUtility.ClsPub.isDoule(ds.Tables[0].Rows[i]["金额"]) * oBill.omodel.HExRate; 
 | 
                    oItemSub.HRemark = ""; 
 | 
                    oItemSub.HSourceInterID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["hmainid"]); 
 | 
                    oItemSub.HSourceEntryID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[i]["hsubid"]); 
 | 
                    oItemSub.HSourceBillNo =  DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[i]["单据号"]); 
 | 
                    oItemSub.HSourceBillType = "1201"; 
 | 
                    oItemSub.HRelationQty = 0; 
 | 
                    oItemSub.HRelationMoney = 0; 
 | 
  
 | 
                    oBill.DetailColl.Add(oItemSub); 
 | 
                } 
 | 
  
 | 
                bool bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo); 
 | 
  
 | 
                if (bResult) 
 | 
                { 
 | 
                    oCN.Commit(); 
 | 
                    objJsonResult.code = "0"; 
 | 
                    objJsonResult.count = 1; 
 | 
                    objJsonResult.Message = "核销成功!"; 
 | 
                    objJsonResult.data = 1; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    oCN.RollBack(); 
 | 
                    objJsonResult.code = "0"; 
 | 
                    objJsonResult.count = 0; 
 | 
                    objJsonResult.Message = "核销失败!" + DBUtility.ClsPub.sExeReturnInfo; 
 | 
                    objJsonResult.data = 1; 
 | 
                    return objJsonResult; 
 | 
                } 
 | 
            } 
 | 
            catch (Exception e) 
 | 
            { 
 | 
                oCN.RollBack(); 
 | 
                objJsonResult.code = "0"; 
 | 
                objJsonResult.count = 0; 
 | 
                objJsonResult.Message = "Exception!" + e.ToString(); 
 | 
                objJsonResult.data = null; 
 | 
                return objJsonResult; 
 | 
            } 
 | 
        } 
 | 
        #endregion 
 | 
    } 
 | 
} 
 |