Skip to content
ImportPrice.aspx.cs 9.85 KiB
Newer Older
Jack Dan's avatar
Jack Dan committed
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Ces.IBLL;
using Ces.BLL;
using Ces.Model;
using System.Data;
using Ces.Lib;
using Hxj.Data;
using System.Collections;
using Sqcy.Page;
using System.IO;
using System.Data.OleDb;
using System.Data.SqlClient;

//namespace Sqcy.Web.Supplier
//{
    public partial class _Sqcy_Web_Supplier_ImportPrice : System.Web.UI.Page
    {

        private ICyptService cyptService;
        public _Sqcy_Web_Supplier_ImportPrice() { cyptService = new CyptService(); }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                PageInit();
            }
        }

        private void PageInit()
        {
            if (Session["UserInfo"] != null)
            {
                UserInfo ui = (UserInfo)Session["UserInfo"];

                if (Request.QueryString["id"] != null && Request.QueryString["ft"] != null)
                {
                    Guid PriceSheetID = Request.QueryString["id"].ToSafeGuid();

                    int ft = Request.QueryString["ft"].ToSafeInt();

                    if (ui.Role == 1 && ft == 2)
                    {

                    }
                    else if (ui.Role == 4 && ft == 1)
                    {

                    }
                    else
                    {
                        UICommon.Msg(this.Page, 1, "您没有权限进行操作", "javascript:Back()", true);
                    }
                }
            }
        }

        protected void ImportPriceBut_Click(object sender, EventArgs e)
        {
            if (Session["UserInfo"] != null)
            {
                UserInfo ui = (UserInfo)Session["UserInfo"];

                if (Request.QueryString["id"] != null && Request.QueryString["ft"] != null)
                {
                    Guid PriceSheetID = Request.QueryString["id"].ToSafeGuid();

                    int ft = Request.QueryString["ft"].ToSafeInt();

                    if (ui.Role == 1 && ft==2)
                    {

                    }else if(ui.Role==4 && ft == 1)
                    {

                    }
                    else
                    {
                        UICommon.Msg(this.Page, 1, "您没有权限进行操作", "javascript:Back()", true);
                    }

                    ////先删除
                    //cyptService.Delete<Supplier_PriceSheetDetailSub>(new WhereClip()
                        
                    //    .And(Supplier_PriceSheetDetailSub._.PriceSheetID==PriceSheetID)
                    //    .And(Supplier_PriceSheetDetailSub._.FromType==ft)
                    //    .And(Supplier_PriceSheetDetailSub._.SupplierID == ui.GroupID.Value)
                    //    );

                    if (FileImport.HasFile)
                    {
                        string IsXls = System.IO.Path.GetExtension(FileImport.FileName).ToString().ToLower();//System.IO.Path.GetExtension获得文件的扩展名
                        if (IsXls == ".xls")
                        {
                            //  string FileName = DateTime.Now.ToString("yyyymmddhhMMss")+ FileImport.FileName;
                            string SavePath = Server.MapPath("~/upfiles/Temp/" + Guid.NewGuid().ToString() + ".xls");

                            FileImport.SaveAs(SavePath);

                            DataTable dt = ExRead(SavePath);           //调用自定义方法

                            RemoveEmpty(dt);

                            DataRow[] drr = dt.Select();            //定义一个DataRow数组
                            int rowsnum = dt.Rows.Count;

                            //提交报价start

                                List<Ces.Model.Supplier_PriceSheetDetailSub> list = new List<Supplier_PriceSheetDetailSub>();

                                for (int i = 0; i < dt.Rows.Count; i++)
                                {
                                    DataRow drs = dt.Rows[i];

                                    if (!string.IsNullOrEmpty(drs["报价"].ToSafeString().Trim()))
                                    {
                                        Ces.Model.Supplier_PriceSheetDetailSub psds = new Supplier_PriceSheetDetailSub();

                                        psds.PriceSheetID = PriceSheetID;

                                        psds.GoodsID = drs["序列号"].ToSafeString().ToSafeGuid();

                                        psds.Price = drs["报价"].ToSafeDecimal();

                                        psds.FromType = ft;

                                        psds.SupplierID = ui.GroupID.Value;

                                        psds.CreateDate = DateTime.Now;

                                        list.Add(psds);
                                    }
                                }

                                bool isDone = cyptService.GivePriceSheetDetailSub(list);

                                if (isDone)
                                {
                                    UICommon.Msg(this.Page, 1, "提交成功", "javascript:Back()", true);
                                }
                                else
                                {
                                    UICommon.Msg(this.Page, 2, "提交失败");
                                }
                        }
                        else
                        {
                            UICommon.Msg(this.Page, 2, "文件格式不正确");
                        }
                    }
                    else
                    {
                        UICommon.Msg(this.Page, 2, "请选择上传文件");
                    }
                }
            }
        }

        /// <summary>
        /// 工具类-删除空行
        /// </summary>
        /// <param name="dt"></param>
        protected void RemoveEmpty(DataTable dt)
        {
            List<DataRow> removelist = new List<DataRow>();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                bool IsNull = true;
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    if (!string.IsNullOrEmpty(dt.Rows[i][j].ToString().Trim()))
                    {
                        IsNull = false;
                    }
                }
                if (IsNull)
                {
                    removelist.Add(dt.Rows[i]);
                }
            }
            for (int i = 0; i < removelist.Count; i++)
            {
                dt.Rows.Remove(removelist[i]);
            }
        }

        /// <summary>
        /// 工具类-读取excle中的内容转为DataTable
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public DataTable ExRead(string fileName)
        {
            if (fileName == "" || !System.IO.File.Exists(fileName))
                throw new Exception("File is not opened is not specified!");
            DataTable dt = new DataTable();

            string strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ fileName + ";" +"Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

            //  using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=YSE;IMEX=1;\";Data Source=" + fileName))
            using (OleDbConnection conn = new OleDbConnection(strConn))
            {
                conn.Open();

                OleDbCommand cmd = null;

                DataTable dtExcel = new DataTable();

                DataTable dtOle = conn.GetSchema("Tables");

                dtExcel = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "table" });

                string tableName = dtExcel.Rows[0]["TABLE_NAME"].ToString();

                OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + tableName + "]", conn);

                cmd = da.SelectCommand;

                da.SelectCommand.CommandTimeout = 0;

                da.Fill(dt);

                dt.TableName = tableName;
            }
            return dt;
        }

        public DataTable ExReadPlus(string fileName)
        {
            if (fileName == "" || !System.IO.File.Exists(fileName))
                throw new Exception("File is not opened is not specified!");
            DataTable dt = new DataTable();
            using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\";Data Source=" + fileName))
            {
                conn.Open();

                OleDbCommand cmd = null;

                DataTable dtExcel = new DataTable();

                DataTable dtOle = conn.GetSchema("Tables");

                dtExcel = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "table" });

                string tableName = dtExcel.Rows[0]["TABLE_NAME"].ToString();

                OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM [" + tableName + "]", conn);

                cmd = da.SelectCommand;

                da.SelectCommand.CommandTimeout = 0;

                da.Fill(dt);

                dt.TableName = tableName;
            }
            return dt;
        }



        //cn1.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + textBox1.Text + ";Extended Properties=Excel 8.0";

        //cmd1.CommandText = "select * from [Sheet3$]";
        //dr1 = cmd1.ExecuteReader();

        //while(dr1.read())
        //{
        //DataRow dr1 = Table1.NewRow();
        //dr1[0] =dr1["sod_nbr"].ToString();
        //dr1[1] =dr1["sod_line"].ToString();
        //Table1.Rows.Add(dr1);
        //}





        private string ClearNull(string s)
        {
            if (!string.IsNullOrEmpty(s))
            {
                return s;
            }
            else
            {
                return "";
            }
        }


    }
//}