/// <summary>
        /// 删除一条数据
        /// </summary>
        public bool DeleteBill(int invoice_id)
        {
            List <string>             strSqlList = new List <string>();
            string                    strSql     = string.Empty;
            shop_invoices_among_goods _ingoods   = new shop_invoices_among_goods(); //发票明细表
            shop_order_info           _order     = new shop_order_info();           //订单主表

            //发票中间主表信息
            DataSet ds = GetList(" invoice_id=" + invoice_id);

            //发票中间副表中的信息
            DataSet de = _ingoods.GetListOrder(" i.target_id='" + invoice_id + "'");

            //运费
            DataSet dF = _ingoods.GetInfo(" i.target_id='" + invoice_id + "' and i.type='1'");

            string orderId = string.Empty;

            if (dF != null && dF.Tables[0].Rows.Count > 0)
            {
                for (int i = 0; i < dF.Tables[0].Rows.Count; i++)
                {
                    if (i == dF.Tables[0].Rows.Count - 1)
                    {
                        orderId += "'" + dF.Tables[0].Rows[i]["order_id"].ToString() + "'";
                    }
                    else
                    {
                        orderId += "'" + dF.Tables[0].Rows[i]["order_id"].ToString() + "',";
                    }
                }
            }

            string[] oldIdList = orderId.Split(',');
            string   newList   = string.Empty;

            List <string> list = new List <string>();

            //去重
            foreach (var items in oldIdList)
            {
                if (!list.Contains(items))
                {
                    list.Add(items);
                    newList += items + ',';
                }
            }

            if (!string.IsNullOrEmpty(newList))
            {
                newList = newList.TrimEnd(',');
            }

            DataSet dsOrder = null;

            if (!string.IsNullOrEmpty(newList))
            {
                dsOrder = _order.orderCount(newList);
            }

            if (ds != null && ds.Tables[0].Rows.Count > 0)
            {
                string refund_djhm_str = ds.Tables[0].Rows[0]["refund_djhm_str"].ToString();

                //1.删除发票主表信息
                strSql = string.Format(@"delete from shop_invoices_among where invoice_id='{0}'", invoice_id);
                strSqlList.Add(strSql);

                //2.删除发票详情表信息
                strSql = string.Format(@"delete from shop_invoices_among_goods where target_id='{0}'", invoice_id);
                strSqlList.Add(strSql);

                //3.更新订单详情表中商品已开票数量
                if (de != null && de.Tables[0].Rows.Count > 0)
                {
                    int num   = 0;
                    int rec_d = 0;
                    for (int i = 0; i < de.Tables[0].Rows.Count; i++)
                    {
                        if (!string.IsNullOrEmpty(de.Tables[0].Rows[i]["invoice_number"].ToString()))
                        {
                            if (Convert.ToInt32(de.Tables[0].Rows[i]["invoice_number"].ToString()) - Convert.ToInt32(de.Tables[0].Rows[i]["goods_old_num"].ToString()) > 0)
                            {
                                num = num - (Convert.ToInt32(de.Tables[0].Rows[i]["invoice_number"].ToString()) - Convert.ToInt32(de.Tables[0].Rows[i]["goods_old_num"].ToString()));
                            }

                            rec_d = Convert.ToInt32(de.Tables[0].Rows[i]["rec_id"].ToString());
                        }

                        if (num < 0)
                        {
                            num = 0;
                        }
                        strSql = string.Format(" update shop_order_goods set invoice_number='{0}' where ordergood_id='{1}'", num, rec_d);
                        strSqlList.Add(strSql);
                    }
                }

                //4.更新抵扣退货的状态
                if (!string.IsNullOrEmpty(refund_djhm_str) && refund_djhm_str != "")
                {
                    strSql = string.Format(@" update shop_return_goods set is_invoice='{0}' where sid  in ({1})  ", 0, refund_djhm_str);
                    strSqlList.Add(strSql);
                }

                //5.更新运费
                if (dsOrder != null && dsOrder.Tables[0].Rows.Count > 0)
                {
                    strSql = string.Format(@" update shop_order_info set deduction_shipping_fee='{0}' where order_id  in ({1})  ", 0, newList);
                    strSqlList.Add(strSql);
                }
            }


            int rows = Shop_DbHelperMySQL.ExecuteSqlTran(strSqlList);

            if (rows >= 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(FMS_Model.shop_invoices_among model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("insert into shop_invoices_among(");
            strSql.Append("invoice_id,invoice_sn,invoice2_id,invoice_type,tax_rate,currency,exchange_rate,down_count,admin_id,user_id,address,bank_number,bank,shuihao,company_name,tel,total_count,total_money,note,invoices_note,pay_note,add_time,update_time,invoice_status,pre_status,invoice_time,erp_order_sn,invoice_num,invoice_date,refund_money,refund_djhm_str,sold_total_money,shipping_num,shipping_time,shipping_type,shipping_id,print_num,invoice_sn_temp,invoice_num_temp,last_update_admin,init_refund_money,print_hide)");
            strSql.Append(" values (");
            strSql.Append("@invoice_id,@invoice_sn,@invoice2_id,@invoice_type,@tax_rate,@currency,@exchange_rate,@down_count,@admin_id,@user_id,@address,@bank_number,@bank,@shuihao,@company_name,@tel,@total_count,@total_money,@note,@invoices_note,@pay_note,@add_time,@update_time,@invoice_status,@pre_status,@invoice_time,@erp_order_sn,@invoice_num,@invoice_date,@refund_money,@refund_djhm_str,@sold_total_money,@shipping_num,@shipping_time,@shipping_type,@shipping_id,@print_num,@invoice_sn_temp,@invoice_num_temp,@last_update_admin,@init_refund_money,@print_hide)");
            strSql.Append(";select @@IDENTITY");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@invoice_id",        MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_sn",        MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice2_id",       MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_type",      MySqlDbType.Int16,     2),
                new MySqlParameter("@tax_rate",          MySqlDbType.Int16,     2),
                new MySqlParameter("@currency",          MySqlDbType.VarChar,  50),
                new MySqlParameter("@exchange_rate",     MySqlDbType.Decimal,  10),
                new MySqlParameter("@down_count",        MySqlDbType.Int32,    11),
                new MySqlParameter("@admin_id",          MySqlDbType.Int32,    11),
                new MySqlParameter("@user_id",           MySqlDbType.Int32,    11),
                new MySqlParameter("@address",           MySqlDbType.VarChar, 255),
                new MySqlParameter("@bank_number",       MySqlDbType.VarChar,  30),
                new MySqlParameter("@bank",              MySqlDbType.VarChar, 100),
                new MySqlParameter("@shuihao",           MySqlDbType.VarChar,  50),
                new MySqlParameter("@company_name",      MySqlDbType.VarChar, 100),
                new MySqlParameter("@tel",               MySqlDbType.VarChar,  50),
                new MySqlParameter("@total_count",       MySqlDbType.Int32,    11),
                new MySqlParameter("@total_money",       MySqlDbType.Decimal,  10),
                new MySqlParameter("@note",              MySqlDbType.Text),
                new MySqlParameter("@invoices_note",     MySqlDbType.VarChar, 255),
                new MySqlParameter("@pay_note",          MySqlDbType.VarChar, 255),
                new MySqlParameter("@add_time",          MySqlDbType.Int32,    11),
                new MySqlParameter("@update_time",       MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_status",    MySqlDbType.Int16,     3),
                new MySqlParameter("@pre_status",        MySqlDbType.Int16,     3),
                new MySqlParameter("@invoice_time",      MySqlDbType.Int32,    11),
                new MySqlParameter("@erp_order_sn",      MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice_num",       MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice_date",      MySqlDbType.VarChar,  32),
                new MySqlParameter("@refund_money",      MySqlDbType.Decimal,  10),
                new MySqlParameter("@refund_djhm_str",   MySqlDbType.Text),
                new MySqlParameter("@sold_total_money",  MySqlDbType.Decimal,  10),
                new MySqlParameter("@shipping_num",      MySqlDbType.VarChar,  32),
                new MySqlParameter("@shipping_time",     MySqlDbType.Int32,    11),
                new MySqlParameter("@shipping_type",     MySqlDbType.Int16,     2),
                new MySqlParameter("@shipping_id",       MySqlDbType.Int16,     3),
                new MySqlParameter("@print_num",         MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_sn_temp",   MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice_num_temp",  MySqlDbType.Int32,    11),
                new MySqlParameter("@last_update_admin", MySqlDbType.VarChar, 255),
                new MySqlParameter("@init_refund_money", MySqlDbType.Decimal,  10),
                new MySqlParameter("@print_hide",        MySqlDbType.Int16, 1)
            };
            parameters[0].Value  = model.invoice_id;
            parameters[1].Value  = model.invoice_sn;
            parameters[2].Value  = model.invoice2_id;
            parameters[3].Value  = model.invoice_type;
            parameters[4].Value  = model.tax_rate;
            parameters[5].Value  = model.currency;
            parameters[6].Value  = model.exchange_rate;
            parameters[7].Value  = model.down_count;
            parameters[8].Value  = model.admin_id;
            parameters[9].Value  = model.user_id;
            parameters[10].Value = model.address;
            parameters[11].Value = model.bank_number;
            parameters[12].Value = model.bank;
            parameters[13].Value = model.shuihao;
            parameters[14].Value = model.company_name;
            parameters[15].Value = model.tel;
            parameters[16].Value = model.total_count;
            parameters[17].Value = model.total_money;
            parameters[18].Value = model.note;
            parameters[19].Value = model.invoices_note;
            parameters[20].Value = model.pay_note;
            parameters[21].Value = model.add_time;
            parameters[22].Value = model.update_time;
            parameters[23].Value = model.invoice_status;
            parameters[24].Value = model.pre_status;
            parameters[25].Value = model.invoice_time;
            parameters[26].Value = model.erp_order_sn;
            parameters[27].Value = model.invoice_num;
            parameters[28].Value = model.invoice_date;
            parameters[29].Value = model.refund_money;
            parameters[30].Value = model.refund_djhm_str;
            parameters[31].Value = model.sold_total_money;
            parameters[32].Value = model.shipping_num;
            parameters[33].Value = model.shipping_time;
            parameters[34].Value = model.shipping_type;
            parameters[35].Value = model.shipping_id;
            parameters[36].Value = model.print_num;
            parameters[37].Value = model.invoice_sn_temp;
            parameters[38].Value = model.invoice_num_temp;
            parameters[39].Value = model.last_update_admin;
            parameters[40].Value = model.init_refund_money;
            parameters[41].Value = model.print_hide;

            object obj = Shop_DbHelperMySQL.GetSingle(strSql.ToString(), parameters);

            if (obj == null)
            {
                return(0);
            }
            else
            {
                return(Convert.ToInt32(obj));
            }
        }
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Updates(FMS_Model.shop_invoices_among model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update shop_invoices_among set ");
            strSql.Append("invoice_type=@invoice_type,");
            strSql.Append("address=@address,");
            strSql.Append("bank_number=@bank_number,");
            strSql.Append("bank=@bank,");
            strSql.Append("shuihao=@shuihao,");
            strSql.Append("company_name=@company_name,");
            strSql.Append("tax_rate=@tax_rate,");
            strSql.Append("pay_note=@pay_note,");
            strSql.Append("update_time=@update_time,");
            strSql.Append("invoice_status=@invoice_status,");
            strSql.Append("shipping_type=@shipping_type,");
            strSql.Append("shipping_id=@shipping_id,");
            strSql.Append("note=@note");
            strSql.Append(" where invoice_id=@invoice_id ");

            MySqlParameter[] parameters =
            {
                new MySqlParameter("@invoice_type",   MySqlDbType.Int16,     2),
                new MySqlParameter("@address",        MySqlDbType.VarChar, 255),
                new MySqlParameter("@bank_number",    MySqlDbType.VarChar,  30),
                new MySqlParameter("@bank",           MySqlDbType.VarChar, 100),
                new MySqlParameter("@shuihao",        MySqlDbType.VarChar,  50),
                new MySqlParameter("@company_name",   MySqlDbType.VarChar, 100),
                new MySqlParameter("@tax_rate",       MySqlDbType.Int16,     2),
                new MySqlParameter("@pay_note",       MySqlDbType.VarChar, 255),
                new MySqlParameter("@update_time",    MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_status", MySqlDbType.Int16,     3),
                new MySqlParameter("@shipping_type",  MySqlDbType.Int16,     2),
                new MySqlParameter("@shipping_id",    MySqlDbType.Int16,     3),
                new MySqlParameter("@note",           MySqlDbType.Text),
                new MySqlParameter("@invoice_id",     MySqlDbType.Int32, 11)
            };

            parameters[0].Value  = model.invoice_type;
            parameters[1].Value  = model.address;
            parameters[2].Value  = model.bank_number;
            parameters[3].Value  = model.bank;
            parameters[4].Value  = model.shuihao;
            parameters[5].Value  = model.company_name;
            parameters[6].Value  = model.tax_rate;
            parameters[7].Value  = model.pay_note;
            parameters[8].Value  = model.update_time;
            parameters[9].Value  = model.invoice_status;
            parameters[10].Value = model.shipping_type;
            parameters[11].Value = model.shipping_id;
            parameters[12].Value = model.note;
            parameters[13].Value = model.invoice_id;

            int rows = Shop_DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
 /// <summary>
 /// 得到最大ID
 /// </summary>
 public int GetMaxId()
 {
     return(Shop_DbHelperMySQL.GetMaxID("invoice_id", "shop_invoices_among"));
 }
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(FMS_Model.shop_invoices_among model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update shop_invoices_among set ");
            strSql.Append("invoice_sn=@invoice_sn,");
            strSql.Append("invoice2_id=@invoice2_id,");
            strSql.Append("invoice_type=@invoice_type,");
            strSql.Append("tax_rate=@tax_rate,");
            strSql.Append("currency=@currency,");
            strSql.Append("exchange_rate=@exchange_rate,");
            strSql.Append("down_count=@down_count,");
            strSql.Append("admin_id=@admin_id,");
            strSql.Append("user_id=@user_id,");
            strSql.Append("address=@address,");
            strSql.Append("bank_number=@bank_number,");
            strSql.Append("bank=@bank,");
            strSql.Append("shuihao=@shuihao,");
            strSql.Append("company_name=@company_name,");
            strSql.Append("tel=@tel,");
            strSql.Append("total_count=@total_count,");
            strSql.Append("total_money=@total_money,");
            strSql.Append("note=@note,");
            strSql.Append("invoices_note=@invoices_note,");
            strSql.Append("pay_note=@pay_note,");
            strSql.Append("add_time=@add_time,");
            strSql.Append("update_time=@update_time,");
            strSql.Append("invoice_status=@invoice_status,");
            strSql.Append("pre_status=@pre_status,");
            strSql.Append("invoice_time=@invoice_time,");
            strSql.Append("erp_order_sn=@erp_order_sn,");
            strSql.Append("invoice_num=@invoice_num,");
            strSql.Append("invoice_date=@invoice_date,");
            strSql.Append("refund_money=@refund_money,");
            strSql.Append("refund_djhm_str=@refund_djhm_str,");
            strSql.Append("sold_total_money=@sold_total_money,");
            strSql.Append("shipping_num=@shipping_num,");
            strSql.Append("shipping_time=@shipping_time,");
            strSql.Append("shipping_type=@shipping_type,");
            strSql.Append("shipping_id=@shipping_id,");
            strSql.Append("print_num=@print_num,");
            strSql.Append("invoice_sn_temp=@invoice_sn_temp,");
            strSql.Append("invoice_num_temp=@invoice_num_temp,");
            strSql.Append("last_update_admin=@last_update_admin,");
            strSql.Append("init_refund_money=@init_refund_money,");
            strSql.Append("print_hide=@print_hide");
            strSql.Append(" where invoice_id=@invoice_id ");
            MySqlParameter[] parameters =
            {
                new MySqlParameter("@invoice_sn",        MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice2_id",       MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_type",      MySqlDbType.Int16,     2),
                new MySqlParameter("@tax_rate",          MySqlDbType.Int16,     2),
                new MySqlParameter("@currency",          MySqlDbType.VarChar,  50),
                new MySqlParameter("@exchange_rate",     MySqlDbType.Decimal,  10),
                new MySqlParameter("@down_count",        MySqlDbType.Int32,    11),
                new MySqlParameter("@admin_id",          MySqlDbType.Int32,    11),
                new MySqlParameter("@user_id",           MySqlDbType.Int32,    11),
                new MySqlParameter("@address",           MySqlDbType.VarChar, 255),
                new MySqlParameter("@bank_number",       MySqlDbType.VarChar,  30),
                new MySqlParameter("@bank",              MySqlDbType.VarChar, 100),
                new MySqlParameter("@shuihao",           MySqlDbType.VarChar,  50),
                new MySqlParameter("@company_name",      MySqlDbType.VarChar, 100),
                new MySqlParameter("@tel",               MySqlDbType.VarChar,  50),
                new MySqlParameter("@total_count",       MySqlDbType.Int32,    11),
                new MySqlParameter("@total_money",       MySqlDbType.Decimal,  10),
                new MySqlParameter("@note",              MySqlDbType.Text),
                new MySqlParameter("@invoices_note",     MySqlDbType.VarChar, 255),
                new MySqlParameter("@pay_note",          MySqlDbType.VarChar, 255),
                new MySqlParameter("@add_time",          MySqlDbType.Int32,    11),
                new MySqlParameter("@update_time",       MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_status",    MySqlDbType.Int16,     3),
                new MySqlParameter("@pre_status",        MySqlDbType.Int16,     3),
                new MySqlParameter("@invoice_time",      MySqlDbType.Int32,    11),
                new MySqlParameter("@erp_order_sn",      MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice_num",       MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice_date",      MySqlDbType.VarChar,  32),
                new MySqlParameter("@refund_money",      MySqlDbType.Decimal,  10),
                new MySqlParameter("@refund_djhm_str",   MySqlDbType.Text),
                new MySqlParameter("@sold_total_money",  MySqlDbType.Decimal,  10),
                new MySqlParameter("@shipping_num",      MySqlDbType.VarChar,  32),
                new MySqlParameter("@shipping_time",     MySqlDbType.Int32,    11),
                new MySqlParameter("@shipping_type",     MySqlDbType.Int16,     2),
                new MySqlParameter("@shipping_id",       MySqlDbType.Int16,     3),
                new MySqlParameter("@print_num",         MySqlDbType.Int32,    11),
                new MySqlParameter("@invoice_sn_temp",   MySqlDbType.VarChar,  32),
                new MySqlParameter("@invoice_num_temp",  MySqlDbType.Int32,    11),
                new MySqlParameter("@last_update_admin", MySqlDbType.VarChar, 255),
                new MySqlParameter("@init_refund_money", MySqlDbType.Decimal,  10),
                new MySqlParameter("@print_hide",        MySqlDbType.Int16,     1),
                new MySqlParameter("@invoice_id",        MySqlDbType.Int32, 11)
            };
            parameters[0].Value  = model.invoice_sn;
            parameters[1].Value  = model.invoice2_id;
            parameters[2].Value  = model.invoice_type;
            parameters[3].Value  = model.tax_rate;
            parameters[4].Value  = model.currency;
            parameters[5].Value  = model.exchange_rate;
            parameters[6].Value  = model.down_count;
            parameters[7].Value  = model.admin_id;
            parameters[8].Value  = model.user_id;
            parameters[9].Value  = model.address;
            parameters[10].Value = model.bank_number;
            parameters[11].Value = model.bank;
            parameters[12].Value = model.shuihao;
            parameters[13].Value = model.company_name;
            parameters[14].Value = model.tel;
            parameters[15].Value = model.total_count;
            parameters[16].Value = model.total_money;
            parameters[17].Value = model.note;
            parameters[18].Value = model.invoices_note;
            parameters[19].Value = model.pay_note;
            parameters[20].Value = model.add_time;
            parameters[21].Value = model.update_time;
            parameters[22].Value = model.invoice_status;
            parameters[23].Value = model.pre_status;
            parameters[24].Value = model.invoice_time;
            parameters[25].Value = model.erp_order_sn;
            parameters[26].Value = model.invoice_num;
            parameters[27].Value = model.invoice_date;
            parameters[28].Value = model.refund_money;
            parameters[29].Value = model.refund_djhm_str;
            parameters[30].Value = model.sold_total_money;
            parameters[31].Value = model.shipping_num;
            parameters[32].Value = model.shipping_time;
            parameters[33].Value = model.shipping_type;
            parameters[34].Value = model.shipping_id;
            parameters[35].Value = model.print_num;
            parameters[36].Value = model.invoice_sn_temp;
            parameters[37].Value = model.invoice_num_temp;
            parameters[38].Value = model.last_update_admin;
            parameters[39].Value = model.init_refund_money;
            parameters[40].Value = model.print_hide;
            parameters[41].Value = model.invoice_id;

            int rows = Shop_DbHelperMySQL.ExecuteSql(strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 得到最大ID
 /// </summary>
 public int GetMaxId()
 {
     return(Shop_DbHelperMySQL.GetMaxID("region_id", "shop_region"));
 }