Esempio n. 1
0
        /// <summary>
        /// 匯出csv
        /// </summary>
        /// <returns></returns>
        public HttpResponseBase VendorExportCsv()
        {
            string newCsvName = string.Empty;
            string json = string.Empty;
            _vendorMgr = new VendorMgr(connectionString);
            string sqlwhere = string.Empty;
            string type = string.Empty;
            string content = string.Empty;
            if (!string.IsNullOrEmpty(Request.Params["dateType"]))
            {
                type = Request.Params["dateType"];
            }
            if (!string.IsNullOrEmpty(Request.Params["dateCon"]))
            {
                content = Request.Params["dateCon"];
            }
            // string status = Request.Params["dateStatus"];
            string agreementStart = string.Empty;
            string agreementEnd = string.Empty;
            if (!string.IsNullOrEmpty(Request.Params["dateOne"]))
            {
                // agreementStart = Convert.ToDateTime(Request.Params["dateOne"]).ToString("yyyy-MM-dd 00:00:00");
                agreementStart = CommonFunction.DateTimeToString(Convert.ToDateTime(Request.Params["dateOne"]));
            }
            if (!string.IsNullOrEmpty(Request.Params["dateTwo"]))
            {
                //  agreementEnd = Convert.ToDateTime(Request.Params["dateTwo"]).ToString("yyyy-MM-dd 23:59:59");
                agreementEnd = CommonFunction.DateTimeToString(Convert.ToDateTime(Request.Params["dateTwo"]));
            }
            //匯出不需要查詢狀態
            if (!string.IsNullOrEmpty(content) && !string.IsNullOrEmpty(type) && type != "0")
            {
                switch (type)
                {
                    case "1":
                        sqlwhere += " AND vendor_email LIKE '%" + content + "%'";
                        break;
                    case "2":
                        sqlwhere += " AND vendor_name_simple  LIKE '%" + content + "%'";
                        break;
                    case "3":
                        sqlwhere += " AND  vendor_name_full LIKE '%" + content + "%'";
                        break;
                    case "4":
                        sqlwhere += " AND vendor_invoice LIKE '%" + content + "%'";
                        break;
                    case "5":
                        sqlwhere += " AND vendor.erp_id LIKE '%" + content + "%'";
                        break;
                    case "6":
                        uint isTranUint = 0;
                        if (uint.TryParse(content, out isTranUint))
                        {
                            if (content != "0")
                            {
                                sqlwhere += " AND vendor_id = '" + content + "'";
                            }
                        }
                        break;
                    case "7":
                        sqlwhere += " AND vendor_code LIKE '%" + content + "%'";
                        break;
                    default:
                        sqlwhere += "";
                        break;

                }
            }
            else
            {
                if (!string.IsNullOrEmpty(Request.Params["vendortype"]))//供应商类型
                {
                    string vondertype = Request.Params["vendortype"].ToString();
                    sqlwhere += " and (";
                    string[] checks = vondertype.Substring(0, vondertype.Length - 1).Split(',');
                    int num = 0;
                    for (int i = 0; i < checks.Length; i++)
                    {
                        if (num == 0)
                        {
                            sqlwhere += " vendor_type like '%" + checks[i] + "%'";
                            num++;
                        }
                        else
                        {
                            sqlwhere += " or vendor_type like '%" + checks[i] + "%'";
                            num++;
                        }
                    }
                    sqlwhere += " ) ";
                }
                if (!string.IsNullOrEmpty(agreementStart))
                {
                    sqlwhere += " AND agreement_createdate >=" + CommonFunction.GetPHPTime(agreementStart);
                }
                if (!string.IsNullOrEmpty(agreementEnd))
                {
                    sqlwhere += " AND agreement_createdate <=" + CommonFunction.GetPHPTime(agreementEnd);
                }
            }
            DataTable dt = new DataTable();
            dt = _vendorMgr.GetVendorDetail(sqlwhere);

            DataTable dtHZ = new DataTable();
            dtHZ.Columns.Add("供應商編號", typeof(String));
            dtHZ.Columns.Add("供應商編碼", typeof(String));
            dtHZ.Columns.Add("狀態", typeof(String));
            dtHZ.Columns.Add("供應商名稱", typeof(String));
            dtHZ.Columns.Add("供應商簡稱", typeof(String));
            dtHZ.Columns.Add("統一編號", typeof(String));
            dtHZ.Columns.Add("傳真", typeof(String));
            dtHZ.Columns.Add("負責人", typeof(String));
            dtHZ.Columns.Add("公司地址", typeof(String));
            dtHZ.Columns.Add("發票地址", typeof(String));
            dtHZ.Columns.Add("成本百分比", typeof(String));
            dtHZ.Columns.Add("信用卡一期百分比", typeof(String));
            dtHZ.Columns.Add("信用卡三期百分比", typeof(String));
            dtHZ.Columns.Add("合約簽定日", typeof(String));
            dtHZ.Columns.Add("合約期間", typeof(String));
            dtHZ.Columns.Add("結帳方式", typeof(String));
            dtHZ.Columns.Add("銀行代碼", typeof(String));
            dtHZ.Columns.Add("銀行名稱", typeof(String));
            dtHZ.Columns.Add("銀行帳號", typeof(String));
            dtHZ.Columns.Add("銀行戶名", typeof(String));
            dtHZ.Columns.Add("常溫運費", typeof(String));
            dtHZ.Columns.Add("常溫運費門檻", typeof(String));
            dtHZ.Columns.Add("常溫逆物流費", typeof(String));
            dtHZ.Columns.Add("低溫運費", typeof(String));
            dtHZ.Columns.Add("低溫運費門檻", typeof(String));
            dtHZ.Columns.Add("低溫逆物流費", typeof(String));
            dtHZ.Columns.Add("負責PM", typeof(String));

            dtHZ.Columns.Add("業績獎金門檻", typeof(String));
            dtHZ.Columns.Add("獎金百分比", typeof(String));
            dtHZ.Columns.Add("採購天數", typeof(String));
            dtHZ.Columns.Add("自出出貨天數", typeof(String));
            dtHZ.Columns.Add("寄倉出貨天數", typeof(String));
            dtHZ.Columns.Add("調度出貨天數", typeof(String));
            dtHZ.Columns.Add("調度倉模式", typeof(String));

            dtHZ.Columns.Add("出貨窗口聯絡人", typeof(String));
            dtHZ.Columns.Add("連絡電話", typeof(String));
            dtHZ.Columns.Add("聯絡手機", typeof(String));
            dtHZ.Columns.Add("聯絡Mail", typeof(String));

            dtHZ.Columns.Add("第二聯絡人類型", typeof(String));
            dtHZ.Columns.Add("第二聯絡人姓名", typeof(String));
            dtHZ.Columns.Add("第二連絡電話", typeof(String));
            dtHZ.Columns.Add("第二聯絡手機", typeof(String));
            dtHZ.Columns.Add("第二聯絡Mail", typeof(String));

            dtHZ.Columns.Add("第三聯絡人類型", typeof(String));
            dtHZ.Columns.Add("第三聯絡人姓名", typeof(String));
            dtHZ.Columns.Add("第三連絡電話", typeof(String));
            dtHZ.Columns.Add("第三聯絡手機", typeof(String));
            dtHZ.Columns.Add("第三聯絡Mail", typeof(String));

            dtHZ.Columns.Add("第四聯絡人類型", typeof(String));
            dtHZ.Columns.Add("第四聯絡人姓名", typeof(String));
            dtHZ.Columns.Add("第四連絡電話", typeof(String));
            dtHZ.Columns.Add("第四聯絡手機", typeof(String));
            dtHZ.Columns.Add("第四聯絡Mail", typeof(String));

            dtHZ.Columns.Add("第五聯絡人類型", typeof(String));
            dtHZ.Columns.Add("第五聯絡人姓名", typeof(String));
            dtHZ.Columns.Add("第五連絡電話", typeof(String));
            dtHZ.Columns.Add("第五聯絡手機", typeof(String));
            dtHZ.Columns.Add("第五聯絡Mail", typeof(String));


            dtHZ.Columns.Add("備註", typeof(String));
            try
            {
                //"電話"   "電子信箱",
                //string[] colname ={"供應商編號","供應商編碼","狀態","供應商名稱","供應商簡稱","統一編號","傳真","負責人",
                //               "公司地址","發票地址","成本百分比","信用卡一期百分比","信用卡三期百分比",
                //               "合約簽定日","合約期間","結帳方式","銀行代碼","銀行名稱","銀行帳號","銀行戶名",
                //               "常溫運費","常溫運費門檻","常溫逆物流費","低溫運費","低溫運費門檻","低溫逆物流費",
                //               "負責PM","出貨窗口聯絡人","連絡電話","聯絡手機","聯絡Mail","業績獎金門檻","獎金百分比","採購天數"
                //               ,"自出出貨天數","寄倉出貨天數","調度出貨天數","調度倉模式","備註"
                //              };                                      
                string filename = "供應商列表_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";
                newCsvName = Server.MapPath(excelPath) + filename;
                foreach (DataRow dr in dt.Rows)
                {
                    dr["company_address"] = CommonFunction.ZipAddress(dr["company_zip"].ToString()) + " " + dr["company_address"].ToString();
                    dr["invoice_address"] = CommonFunction.ZipAddress(dr["invoice_zip"].ToString()) + " " + dr["invoice_address"].ToString();
                    if (string.IsNullOrEmpty(dr["user_username"].ToString()))
                    {
                        dr["user_username"] = "******";
                    }
                    string temp = string.Empty;
                    if (Convert.ToInt32(dr["self_send_days"]) == 0)
                    {
                        if (Convert.ToInt32(dr["stuff_ware_days"]) == 0)
                        {
                            if (Convert.ToInt32(dr["dispatch_days"]) == 0)
                            {
                                temp = "";
                            }
                            else
                            {
                                temp = "調度";
                            }
                        }
                        else
                        {
                            if (Convert.ToInt32(dr["dispatch_days"]) == 0)
                            {
                                temp = "寄倉";
                            }
                            else
                            {
                                temp = "寄倉,調度";
                            }
                        }
                    }
                    else
                    {
                        if (Convert.ToInt32(dr["stuff_ware_days"]) == 0)
                        {
                            if (Convert.ToInt32(dr["dispatch_days"]) == 0)
                            {
                                temp = "自出";
                            }
                            else
                            {
                                temp = "自出,調度";
                            }
                        }
                        else
                        {
                            if (Convert.ToInt32(dr["dispatch_days"]) == 0)
                            {
                                temp = "自出,寄倉";
                            }
                            else
                            {
                                temp = "自出,寄倉,調度";
                            }
                        }
                    }
                    dr["vendor_mode"] = temp;

                    dr["vendor_note"] = dr["vendor_note"].ToString().Replace(',', ',').Replace("\r", "").Replace("\n", "");
                }
                foreach (DataRow dr_v in dt.Rows)
                {
                    DataRow dr = dtHZ.NewRow();
                    dr[0] = dr_v["vendor_id"].ToString();
                    dr[1] = dr_v["vendor_code"].ToString();
                    dr[2] = dr_v["case vendor_status when 1 then '啟用' when 2 then '停用' when 3 then '失格' end"].ToString();
                    dr[3] = dr_v["vendor_name_full"].ToString();
                    dr[4] = dr_v["vendor_name_simple"].ToString();
                    dr[5] = dr_v["vendor_invoice"].ToString();
                    dr[6] = dr_v["company_fax"].ToString();
                    dr[7] = dr_v["company_person"].ToString();
                    dr[8] = dr_v["company_address"].ToString();
                    dr[9] = dr_v["invoice_address"].ToString();
                    dr[10] = dr_v["cost_percent"].ToString();
                    dr[11] = dr_v["creditcard_1_percent"].ToString();
                    dr[12] = dr_v["creditcard_3_percent"].ToString();
                    dr[13] = dr_v["FROM_UNIXTIME(agreement_createdate,'%Y/%m/%d')"].ToString();
                    dr[14] = dr_v["agreement_duration"].ToString();
                    dr[15] = dr_v["checkout_type"].ToString();
                    dr[16] = dr_v["bank_code"].ToString();
                    dr[17] = dr_v["bank_name"].ToString();
                    dr[18] = dr_v["bank_number"].ToString();
                    dr[19] = dr_v["bank_account"].ToString();
                    dr[20] = dr_v["freight_normal_money"].ToString();
                    dr[21] = dr_v["freight_normal_limit"].ToString();
                    dr[22] = dr_v["freight_return_normal_money"].ToString();
                    dr[23] = dr_v["freight_low_money"].ToString();
                    dr[24] = dr_v["freight_low_limit"].ToString();
                    dr[25] = dr_v["freight_return_low_money"].ToString();
                    dr[26] = dr_v["user_username"].ToString();

                    dr[27] = dr_v["gigade_bunus_threshold"].ToString();
                    dr[28] = dr_v["gigade_bunus_percent"].ToString();
                    dr[29] = dr_v["procurement_days"].ToString();
                    dr[30] = dr_v["self_send_days"].ToString();
                    dr[31] = dr_v["stuff_ware_days"].ToString();
                    dr[32] = dr_v["dispatch_days"].ToString();
                    dr[33] = dr_v["vendor_mode"].ToString();


                    dr[34] = dr_v["contact_name_1"].ToString();
                    dr[35] = dr_v["contact_phone_1_1"].ToString();
                    dr[36] = dr_v["contact_mobile_1"].ToString();
                    dr[37] = dr_v["contact_email_1"].ToString();

                    //dr[31] = dr_v["contact_type_2"].ToString();
                    dr[38] = ContactTypeToStr(dr_v["contact_type_2"].ToString());
                    dr[39] = dr_v["contact_name_2"].ToString();
                    dr[40] = dr_v["contact_phone_1_2"].ToString();
                    dr[41] = dr_v["contact_mobile_2"].ToString();
                    dr[42] = dr_v["contact_email_2"].ToString();

                    dr[43] = ContactTypeToStr(dr_v["contact_type_3"].ToString());

                    dr[44] = dr_v["contact_name_3"].ToString();
                    dr[45] = dr_v["contact_phone_1_3"].ToString();
                    dr[46] = dr_v["contact_mobile_3"].ToString();
                    dr[47] = dr_v["contact_email_3"].ToString();
                    dr[48] = ContactTypeToStr(dr_v["contact_type_4"].ToString());
                    dr[49] = dr_v["contact_name_4"].ToString();
                    dr[50] = dr_v["contact_phone_1_4"].ToString();
                    dr[51] = dr_v["contact_mobile_4"].ToString();
                    dr[52] = dr_v["contact_email_4"].ToString();
                    dr[53] = ContactTypeToStr(dr_v["contact_type_5"].ToString());
                    dr[54] = dr_v["contact_name_5"].ToString();
                    dr[55] = dr_v["contact_phone_1_5"].ToString();
                    dr[56] = dr_v["contact_mobile_5"].ToString();
                    dr[57] = dr_v["contact_email_5"].ToString();


                    dr[58] = dr_v["vendor_note"].ToString();
                    dtHZ.Rows.Add(dr);
                }


                dt.Columns.Remove("company_zip");
                dt.Columns.Remove("invoice_zip");
                dt.Columns.Remove("product_manage");
                dt.Columns.Remove("company_phone");//電話
                dt.Columns.Remove("vendor_email");//郵箱
                if (System.IO.File.Exists(newCsvName))
                {
                    //設置文件的屬性,以防刪除文件的時候因為文件的屬性造成無法刪除
                    System.IO.File.SetAttributes(newCsvName, FileAttributes.Normal);
                    System.IO.File.Delete(newCsvName);
                }
                ExcelHelperXhf.ExportDataTabletoExcel(dtHZ, "", newCsvName);
                json = "true," + filename;
                //if (System.IO.File.Exists(newCsvName))
                //{
                //    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", filename));
                //    Response.ContentType = "application/ms-excel";
                //    //Response.WriteFile(newCsvName);
                //    Response.Flush();
                //    Response.End();

                //}
            }
            catch (Exception ex)
            {
                Log4NetCustom.LogMessage logMessage = new Log4NetCustom.LogMessage();
                logMessage.Content = string.Format("TargetSite:{0},Source:{1},Message:{2}", ex.TargetSite.Name, ex.Source, ex.Message);
                logMessage.MethodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                log.Error(logMessage);
                json = "false, ";
            }
            this.Response.Clear();
            this.Response.Write(json);
            this.Response.End();
            return this.Response;

        }