public bool SelfThingsMethod(DataTable _dtSms, OrderDeliver query, string Descriptions) { try { return _orderDao.SelfThingsMethod(_dtSms, query, Descriptions); } catch (Exception ex) { throw new Exception("OrderMgr-->SelfThingsMethod-->" + ex.Message, ex); } }
public bool ThingsMethod(string[] rows, OrderDeliver order, OrderSlaveMaster master, string Descriptions) { try { return _orderDao.ThingsMethod(rows, order, master, Descriptions); } catch (Exception ex) { throw new Exception("OrderMgr-->ThingsMethod-->" + ex.Message, ex); } }
/// <summary> /// 調度出貨:確認出貨 /// </summary> /// <returns></returns> public HttpResponseBase DispatchConfirmShipment() { string jsonStr = String.Empty; BLL.gigade.Model.Vendor vendor = Session["vendor"] as BLL.gigade.Model.Vendor; BLL.gigade.Model.OrderSlaveMaster master = new OrderSlaveMaster(); string rowIDs = "";//出貨單號 string sendProTime = "";//出貨時間 string delivery_note = "";//出貨單備註 string DeliverStores = "";//物流單號 string delivery_Code = "";//物流業者 string IP = ""; string Description = ""; #region 條件 if (!string.IsNullOrEmpty(Request.Params["rowIDs"])) { rowIDs = Request.Params["rowIDs"]; } if (!string.IsNullOrEmpty(Request.Params["sendProTime"])) { sendProTime = Request.Params["sendProTime"]; master.deliver_time = uint.Parse(CommonFunction.GetPHPTime(sendProTime).ToString()); } if (!string.IsNullOrEmpty(Request.Params["delivery_note"])) { delivery_note = Request.Params["delivery_note"]; } if (!string.IsNullOrEmpty(Request.Params["DeliverStores"])) { DeliverStores = Request.Params["DeliverStores"]; } if (!string.IsNullOrEmpty(Request.Params["delivery_Code"])) { delivery_Code = Request.Params["delivery_Code"]; } if (!string.IsNullOrEmpty(Request.Params["normal_Subtotal"])) { master.normal_subtotal = uint.Parse(Request.Params["normal_Subtotal"]); } if (!string.IsNullOrEmpty(Request.Params["hypothermia_Subtotal"])) { master.hypothermia_subtotal = uint.Parse(Request.Params["hypothermia_Subtotal"]); } master.creator = vendor.vendor_id; //if (!string.IsNullOrEmpty(Request.Params["freight_Normal"])) //{ // master.fre = Request.Params["freight_Normal"]; //} //if (!string.IsNullOrEmpty(Request.Params["hypothermia_Subtotal"])) //{ // hypothermia_Subtotal = Request.Params["hypothermia_Subtotal"]; //} //if (!string.IsNullOrEmpty(Request.Params["freight_Low"])) //{ // freight_Low = Request.Params["freight_Low"]; //} if (!string.IsNullOrEmpty(Request.Params["order_Freight_Normal"])) { master.order_freight_normal = uint.Parse(Request.Params["order_Freight_Normal"]); } if (!string.IsNullOrEmpty(Request.Params["Order_Freight_Low"])) { master.order_freight_low = uint.Parse(Request.Params["Order_Freight_Low"]); } if (!string.IsNullOrEmpty(Request.Params["code"])) { master.code_num = Request.Params["code"]; } System.Net.IPAddress[] addlist = Dns.GetHostByName(Dns.GetHostName()).AddressList; if (addlist.Length > 0) { IP = addlist[0].ToString(); } rowIDs = rowIDs.TrimEnd(',');//去掉最後一個分割符號 string[] Sid_Row = rowIDs.Split(',');//拆分 #endregion OrderDeliver order = new OrderDeliver(); order.deliver_code = delivery_Code; order.deliver_store = uint.Parse(DeliverStores); order.deliver_note = delivery_note; order.deliver_ipfrom = IP; try { order.deliver_time = uint.Parse(CommonFunction.GetPHPTime(sendProTime).ToString()); Description = "Writer : vendor(" + vendor.vendor_id + ") " + vendor.vendor_name_simple + "批次出貨"; _OrderMgr = new OrderMgr(mySqlConnectionString); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd"; _OrderMgr.ThingsMethod(Sid_Row, order, master, Description);//出貨成功! // jsonStr = "{success:true}";//返回json數據 jsonStr = "{success:true,msg:\"" + 1 + "\"}"; } 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); jsonStr = "{success:false,msg:0}"; } this.Response.Clear(); this.Response.Write(jsonStr.ToString()); this.Response.End(); return this.Response; }
/// <summary> /// 供應商自行出貨確認 /// </summary> /// <returns></returns> public HttpResponseBase SelfConfirmShipment() { string jsonStr = String.Empty; BLL.gigade.Model.Vendor vendor = Session["vendor"] as BLL.gigade.Model.Vendor; BLL.gigade.Model.OrderSlaveMaster master = new OrderSlaveMaster(); OrderDeliverQuery query = new OrderDeliverQuery(); uint Slave_Id = 0;//要出貨的訂單; string Select_Did = "";//選中要出貨的出貨單號 DateTime sendProTime = DateTime.MinValue;//出貨時間 string delivery_note = "";//出貨單備註 uint DeliverStores = 0;//物流單號 string delivery_Code = "";//物流業者 string IP = ""; string Description = ""; #region 獲取條件 if (!string.IsNullOrEmpty(Request.Params["Slave_Id"])) { Slave_Id = uint.Parse(Request.Params["Slave_Id"]); } if (!string.IsNullOrEmpty(Request.Params["Select_Did"])) { Select_Did = Request.Params["Select_Did"]; } if (!string.IsNullOrEmpty(Request.Params["sendProTime"])) { sendProTime = DateTime.Parse(Request.Params["sendProTime"]); } if (!string.IsNullOrEmpty(Request.Params["delivery_note"])) { delivery_note = Request.Params["delivery_note"]; } if (!string.IsNullOrEmpty(Request.Params["DeliverStores"])) { DeliverStores = uint.Parse(Request.Params["DeliverStores"]); } if (!string.IsNullOrEmpty(Request.Params["delivery_Code"])) { delivery_Code = Request.Params["delivery_Code"]; } #endregion string did = Select_Did.TrimEnd(',');//去掉最後一個分割符號 string[] Sid_Row = did.Split(',');//拆分 List<OrderDetailQuery> store = new List<OrderDetailQuery>(); OrderDetailQuery querys = new OrderDetailQuery(); querys.Slave_Id = Slave_Id; querys.Vendor_Id = vendor.vendor_id; _OrderDetailMgr = new OrderDetailMgr(mySqlConnectionString); store = _OrderDetailMgr.DeliveryInformation(querys, null);//查询出供應商出貨單Vendor delivery int reslut = 0; if (Sid_Row.Length != store.Count) { #region 轉換數據 DataTable All_Did = new DataTable(); All_Did.Columns.Add("detail_id", typeof(String)); All_Did.Columns.Add("product_name", typeof(String)); All_Did.Columns.Add("product_freight_set", typeof(String)); All_Did.Columns.Add("product_spec_name", typeof(String)); All_Did.Columns.Add("single_money", typeof(String)); All_Did.Columns.Add("parent_name", typeof(String)); All_Did.Columns.Add("parent_num", typeof(String)); All_Did.Columns.Add("combined_mode", typeof(String)); All_Did.Columns.Add("item_mode", typeof(String)); All_Did.Columns.Add("buy_num", typeof(String)); foreach (var item in store) { DataRow dr = All_Did.NewRow(); dr[0] = item.Detail_Id; dr[1] = item.Product_Name; dr[2] = item.Product_Freight_Set; dr[3] = item.Product_Spec_Name; dr[4] = item.Single_Money; dr[5] = item.parent_name; dr[6] = item.parent_num; dr[7] = item.Combined_Mode; dr[8] = item.item_mode; dr[9] = item.Buy_Num; All_Did.Rows.Add(dr); } #endregion // //調用宋東亞 _OrderDeliverMgr = new OrderDeliverMgr(mySqlConnectionString); _OrderDeliverMgr.DismantleSlave(int.Parse(querys.Slave_Id.ToString()), Select_Did, All_Did); } master.creator = vendor.vendor_id; System.Net.IPAddress[] addlist = Dns.GetHostByName(Dns.GetHostName()).AddressList; if (addlist.Length > 0) { IP = addlist[0].ToString(); } try { OrderDeliver deliver = new OrderDeliver(); deliver.slave_id = Slave_Id; deliver.deliver_store = DeliverStores; deliver.deliver_code = delivery_Code; deliver.deliver_note = delivery_note; deliver.deliver_time = uint.Parse(CommonFunction.GetPHPTime(sendProTime.ToString("yyyy-MM-dd")).ToString()); deliver.deliver_ipfrom = IP; DataTable _dtSms = new DataTable(); _dtSms.Columns.Add("sms_id", typeof(String)); DataRow row = _dtSms.NewRow();//需發簡訊通知的item row[0] = 113552; _dtSms.Rows.Add(row); row = _dtSms.NewRow(); row[0] = 113550; _dtSms.Rows.Add(row); Description = "Writer : vendor(" + vendor.vendor_id + ") " + vendor.vendor_name_simple; _OrderMgr = new OrderMgr(mySqlConnectionString); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 timeConverter.DateTimeFormat = "yyyy-MM-dd"; _OrderMgr.SelfThingsMethod(_dtSms, deliver, Description);//出貨成功! jsonStr = "{success:true}";//返回json數據 // jsonStr = "{success:true,msg:\"" + 1 + "\"}"; } 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); jsonStr = "{success:false,msg:0}"; } this.Response.Clear(); this.Response.Write(jsonStr.ToString()); this.Response.End(); return this.Response; }
public static string IPAddress = "";//獲取本機的IP地址 #region 調度商品出貨 /// <summary> /// 調度商品出貨 /// </summary> /// <param name="rows">要出的商品</param> /// <param name="order">商品詳細信息</param> /// <param name="master"></param> /// <param name="Descriptions">描述</param> /// <returns></returns> public bool ThingsMethod(string[] rows, OrderDeliver order, OrderSlaveMaster master, string Descriptions) { Description = Descriptions; System.Net.IPAddress[] addlist = Dns.GetHostByName(Dns.GetHostName()).AddressList; if (addlist.Length > 0) { IPAddress = addlist[0].ToString(); } StringBuilder sb = new StringBuilder(); MySqlCommand mySqlCmd = new MySqlCommand(); MySqlConnection mySqlConn = new MySqlConnection(connStr); try { if (mySqlConn != null && mySqlConn.State == System.Data.ConnectionState.Closed) { mySqlConn.Open(); } mySqlCmd.Connection = mySqlConn; mySqlCmd.Transaction = mySqlConn.BeginTransaction(); mySqlCmd.CommandType = System.Data.CommandType.Text; SerialDao serial = new SerialDao(connStr); mySqlCmd.CommandText = serial.Update(64);// 廠商出貨單總表流水號 int Master_Slave_Id = int.Parse(mySqlCmd.ExecuteScalar().ToString());//--用這個值新增至出貨單詳情表(order_slave_detail),出貨單主表(order_slave_master) foreach (var item in rows)//循環讀取數據 { sb.AppendFormat(@"select order_id from order_slave where slave_id='{0}';", item); mySqlCmd.CommandText = sb.ToString(); string Order_Id = mySqlCmd.ExecuteScalar().ToString();//--訂單編號,後面會用來修改付款單狀態和查詢訂單流水號詳情 sb.Clear(); mySqlCmd.CommandText = serial.Update(41);// 廠商出貨單總表流水號 int Deliver_Id = int.Parse(mySqlCmd.ExecuteScalar().ToString());//用來新增信息到物流單 sb.Append(@"insert into order_deliver (deliver_id,slave_id,deliver_status,deliver_store,deliver_code,deliver_time,");///*新增物流單*/ sb.Append("deliver_note,deliver_createdate,deliver_updatedate,deliver_ipfrom )value("); sb.AppendFormat("'{0}','{1}','{2}','{3}','{4}',", Deliver_Id, item, 1, order.deliver_store, order.deliver_code); sb.AppendFormat("'{0}','{1}','{2}','{3}','{4}');", order.deliver_time, order.deliver_note, CommonFunction.GetPHPTime(DateTime.Now.ToString()), 0, order.deliver_ipfrom); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); int[] arrays = { 2, 3 };//通過這個數組查詢訂單詳情 #region vendor.gigade100.com/order/all_order_deliver.php第357行 //vendor.gigade100.com/order/all_order_deliver.php第357行 sb.Append(update_detail_for_product_mode(item, arrays, order.deliver_time));//執行事務-參考自includes/order/order.php第1672行方法 mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); //vendor.gigade100.com/order/all_order_deliver.php第360行 sb.Append(order_slave_status_record(item, 6, Description)); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); #endregion // vendor.gigade100.com/order/all_order_deliver.php第361行 string Modify_Master_Order_Status = check_vendor_deliver_order_master_status(Order_Id); if (Modify_Master_Order_Status == "false")//參考自(vendor.gigade100.com/order/all_order_deliver.php第363行方法) { mySqlCmd.Transaction.Rollback(); } //vendor.gigade100.com/order/all_order_deliver.php第367 sb.Append(modify_order_master_status(Order_Id, Modify_Master_Order_Status)); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); #region vendor.gigade100.com/order/all_order_deliver.php第368行方法*/ //vendor.gigade100.com/order/all_order_deliver.php第368行方法*/ sb.Append(order_master_status_record(Order_Id, Modify_Master_Order_Status, Description)); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); #endregion //寫入批次出貨單細項 /*vendor.gigade100.com/order/all_order_deliver.php 第370行*/ sb.AppendFormat(@"INSERT INTO order_slave_detail (slave_master_id, slave_id) VALUES ('{0}','{1}');", Master_Slave_Id, item); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); } //批次出貨單 /*vendor.gigade100.com/order/all_order_deliver.php 第384行*/ sb.AppendFormat("select count(*) from order_slave_master where 1=1 and creator='{0}' and code_num='{1}';", master.creator, master.code_num);//供应商编号,批次编号 mySqlCmd.CommandText = sb.ToString(); int Total_Search = int.Parse(mySqlCmd.ExecuteScalar().ToString()); sb.Clear(); Total_Search += 1; //vendor.gigade100.com/order/all_order_deliver.php 第412行行方法*/ sb.Append(@"insert into order_slave_master(slave_master_id,code_num,paper,order_freight_normal,order_freight_low,"); sb.Append("normal_subtotal,hypothermia_subtotal,deliver_store,deliver_code,deliver_time,deliver_note,createdate,creator) value( "); sb.AppendFormat("'{0}','{1}','{2}','{3}','{4}',", Master_Slave_Id, master.code_num, Total_Search, master.order_freight_normal, master.order_freight_low); sb.AppendFormat("'{0}','{1}','{2}','{3}','{4}',", master.normal_subtotal, master.hypothermia_subtotal, order.deliver_store, order.deliver_code, master.deliver_time); sb.AppendFormat("'{0}','{1}','{2}');", order.deliver_note, CommonFunction.GetPHPTime(DateTime.Now.ToString()), master.creator); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); mySqlCmd.Transaction.Commit(); // mySqlCmd.Transaction.Rollback();//---功能完成,用来测试 return true; } catch (Exception ex) { mySqlCmd.Transaction.Rollback(); throw new Exception("OrderDao.ThingsMethod -->" + ex.Message + sb.ToString(), ex); } finally { if (mySqlConn != null && mySqlConn.State == System.Data.ConnectionState.Open) { mySqlConn.Close(); } } }
public bool SelfThingsMethod( DataTable _dtSms ,OrderDeliver query, string Descriptions) { Description = Descriptions; StringBuilder sb = new StringBuilder(); MySqlCommand mySqlCmd = new MySqlCommand(); MySqlConnection mySqlConn = new MySqlConnection(connStr); try { if (mySqlConn != null && mySqlConn.State == System.Data.ConnectionState.Closed) { mySqlConn.Open(); } mySqlCmd.Connection = mySqlConn; mySqlCmd.Transaction = mySqlConn.BeginTransaction(); mySqlCmd.CommandType = System.Data.CommandType.Text; sb.AppendFormat(@"select order_id from order_slave where slave_id='{0}';", query.slave_id); mySqlCmd.CommandText = sb.ToString(); string Order_Id = mySqlCmd.ExecuteScalar().ToString();//--訂單編號,後面會用來修改付款單狀態和查詢訂單流水號詳情 sb.Clear(); SerialDao serial = new SerialDao(connStr); sb.AppendFormat(serial.Update(41)); // 出貨單流水號參考自vendor.gigade100.com/order/orerd_deliver.php第226行 sb.Append(@"insert into order_deliver(deliver_id,slave_id,deliver_status,deliver_store,deliver_code,deliver_time,deliver_note"); sb.Append(",deliver_createdate,deliver_updatedate,deliver_ipfrom)value((select serial_value from serial where serial_id=41),"); sb.AppendFormat(" '{0}','{1}','{2}','{3}','{4}',",query.slave_id,1,query.deliver_store,query.deliver_code,query.deliver_time); sb.AppendFormat(" '{0}','{1}',", query.deliver_note, CommonFunction.GetPHPTime(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"))); sb.AppendFormat(" '{0}','{1}');", CommonFunction.GetPHPTime(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")), query.deliver_ipfrom); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); int[] Product_Mode = { 1 }; //參考自vendor.gigade100.com/order/orerd_deliver.php第246行 sb.Append(update_detail_for_product_mode(query.slave_id.ToString(), Product_Mode,query.deliver_time)); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); //參考自vendor.gigade100.com/order/orerd_deliver.php第252行 string Modify_Master_Order_Status = check_vendor_deliver_order_master_status(Order_Id); if (Modify_Master_Order_Status == "false")//參考自(vendor.gigade100.com/order/order_deliver.php第253行方法) { mySqlCmd.Transaction.Rollback(); } // 修改付款單狀態參考自(vendor.gigade100.com/order/order_deliver.php第259行方法) sb.Append(modify_order_master_status(Order_Id, Modify_Master_Order_Status)); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); // 新增付款單狀態參考自(vendor.gigade100.com/order/order_deliver.php第263行方法) sb.Append(order_master_status_record(Order_Id, Modify_Master_Order_Status,Descriptions)); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); // 異動商品明細狀態為已出貨態 參考自(vendor.gigade100.com/order/order_deliver.php第266行方法) //簡訊通知 //參考自(vendor.gigade100.com/order/order_deliver.php第269行方法) List<OrderDetailQuery> OrderDetailList=new List<OrderDetailQuery>(); sb.AppendFormat(@"select item_id,product_name from order_detail where slave_id='{0}';", query.slave_id); OrderDetailList = _dbAccess.getDataTableForObj<OrderDetailQuery>(sb.ToString()); sb.Clear(); //參考自(vendor.gigade100.com/order/order_deliver.php第281行方法) sb.AppendFormat(@"select delivery_mobile from order_master where order_id='{0}';", Order_Id); OrderMaster ordermaster = new OrderMaster(); ordermaster=_dbAccess.getSinggleObj<OrderMaster>(sb.ToString()); sb.Clear(); foreach (var item in OrderDetailList) {//參考自(vendor.gigade100.com/order/order_deliver.php第276行方法) DataRow[] rows = _dtSms.Select("sms_id='" + item.Item_Id + "'"); foreach (DataRow row in rows)//篩選出的最多只有一條數據, { if (!string.IsNullOrEmpty(row["sms_id"].ToString())) { string content = "您好,您所訂購的商品 " + item.Product_Name + " 已於今天送出,到貨前會由宅配人員與您確認到貨時段, 謝謝您.吉甲地"; sb.AppendFormat(@"insert into sms(type,order_id,mobile,subject,content,estimated_send_time)value(4,'{0}',", Order_Id); sb.AppendFormat(" '{0}','','{1}','{2}');", ordermaster.Delivery_Mobile, content, "00-00-00 00:00:00"); mySqlCmd.CommandText = sb.ToString(); mySqlCmd.ExecuteNonQuery(); sb.Clear(); break; } } } //---------------------------------------------這個PHP傳入的是Slave_id那個是錯誤的,但是我先傳入Order_id以便實現現在的功能 #region 參考自(vendor.gigade100.com/order/order_deliver.php第364行方法) sb.AppendFormat(@"select user_id,order_name from order_master where order_id='{0}';", Order_Id); ordermaster = _dbAccess.getSinggleObj<OrderMaster>(sb.ToString()); sb.Clear(); sb.AppendFormat(@"select user_email from users where user_id='{0}';", ordermaster.user_id); Users user = new Users(); user = _dbAccess.getSinggleObj<Users>(sb.ToString()); sb.Clear(); // $aParamenter['s_username'] = $sOrder_Username;-----------------ordermaster.Order_Name; //$aParamenter['s_deliver_time'] = $sDeliver_Time;-----------------query.deliver_time //$aParamenter['s_deliver_store'] = $aLang['Deliver_Store'][$nDeliver_Store];----------------地圖,需要查詢 //$aParamenter['s_deliver_code'] = $sDeliver_Code;-------------------query.deliver_code //$sFrom_Name = $amego_config->get_single_config('system_mail_from_name'); //$sFrom_Email = $amego_config->get_single_config('system_mail_from_email'); //$sMailer_Root = MAIL_TEMPLATE_ROOT; Config conf = new Config(); sb.AppendFormat(@"select *from config where config_name='system_mail_from_name';"); conf = _dbAccess.getSinggleObj<Config>(sb.ToString()); sb.Clear(); string From_Name = conf.config_value;//--------------------有了 sb.AppendFormat(@"select *from config where config_name='system_mail_from_email';"); conf = _dbAccess.getSinggleObj<Config>(sb.ToString()); sb.Clear(); string From_Email = conf.config_value;//--------------------有了 //出貨單通知信_新增 int Mailer_Number = 406; //----------------------------------下面的不知道怎麼賦值啊!! string Mailer_Root = "";////define('MAIL_TEMPLATE_ROOT', GIGADE_WWW_DIR . '/mailer/'); // 郵件版型位置,在各實體目錄中的相對位置 #endregion mySqlCmd.Transaction.Rollback(); return true; } catch (Exception ex) { mySqlCmd.Transaction.Rollback(); throw new Exception("OrderDao.SelfThingsMethod -->" + ex.Message + sb.ToString(), ex); } finally { if (mySqlConn != null && mySqlConn.State == System.Data.ConnectionState.Open) { mySqlConn.Close(); } } }