Exemplo n.º 1
0
        /// <summary> 提交成功时,对引用的前置单据的状态进行更新 
        /// </summary>
        /// <param name="orderid"></param>
        void SetOrderStatus(string orderid)
        {
            //前置单据中的配件信息是否在后置单据中全部导入完成(完成数量>=计划数量)
            List<OrderImportStatus> list_order = new List<OrderImportStatus>();
            List<OrderFinishInfo> list_orderinfo = new List<OrderFinishInfo>();
            OrderImportStatus orderimport_model = new OrderImportStatus();
            OrderFinishInfo orderfinish_info = new OrderFinishInfo();

            DataTable dt_Business = GetBusinessCount(orderid);
            DataTable dt_Finish = GetFinishCount();

            string plan_id = string.Empty;
            string order_num = string.Empty;
            string parts_code = string.Empty;
            string importtype = string.Empty;
            if (dt_Business.Rows.Count > 0)
            {
                for (int i = 0; i < dt_Business.Rows.Count; i++)
                {
                    bool isfinish = true;
                    decimal BusinessCount = decimal.Parse(dt_Business.Rows[i]["business_counts"].ToString());
                    plan_id = dt_Business.Rows[i]["plan_id"].ToString();
                    order_num = dt_Business.Rows[i]["order_num"].ToString();
                    parts_code = dt_Business.Rows[i]["parts_code"].ToString();
                    DataRow[] dr = dt_Finish.Select(" order_num='" + order_num + "' and parts_code='" + parts_code + "'");
                    if (dr != null && dr.Count() > 0)
                    {
                        importtype = dr[0]["ImportType"].ToString();

                        orderfinish_info = new OrderFinishInfo();
                        orderfinish_info.plan_id = plan_id;
                        orderfinish_info.parts_code = parts_code;
                        orderfinish_info.finish_num = dr[0]["relation_count"].ToString();
                        orderfinish_info.importtype = importtype;
                        list_orderinfo.Add(orderfinish_info);
                        if (decimal.Parse(dr[0]["relation_count"].ToString()) < BusinessCount)
                        {
                            isfinish = false;
                        }
                    }
                    else
                    {
                        orderfinish_info = new OrderFinishInfo();
                        orderfinish_info.plan_id = plan_id;
                        orderfinish_info.parts_code = parts_code;
                        orderfinish_info.finish_num = "0";
                        orderfinish_info.importtype = importtype;
                        list_orderinfo.Add(orderfinish_info);

                        isfinish = false;
                    }

                    orderimport_model = new OrderImportStatus();
                    orderimport_model.order_num = order_num;
                    orderimport_model.importtype = importtype;
                    orderimport_model.isfinish = isfinish;
                    if (list_order.Count > 0)
                    {
                        if (list_order.Where(p => p.order_num == order_num).Count() > 0)
                        {
                            if (!isfinish)
                            {
                                for (int a = 0; a < list_order.Count; a++)
                                {
                                    if (list_order[a].order_num == order_num && list_order[a].isfinish)
                                    { list_order[a].isfinish = isfinish; }
                                }
                            }
                        }
                        else
                        { list_order.Add(orderimport_model); }
                    }
                    else
                    { list_order.Add(orderimport_model); }
                }
            }
            ImportPurchasePlanStatus(list_order, list_orderinfo);
        }  
Exemplo n.º 2
0
        /// <summary> 提交成功时,对引用的前置单据的状态进行更新
        /// </summary>
        /// <param name="orderid"></param>
        bool SetOrderStatus(string saleorderid)
        {
            bool ret = false;

            try
            {
                #region 设置前置单据的状态和完成数量
                List <OrderImportStatus> list_order        = new List <OrderImportStatus>();
                List <OrderFinishInfo>   list_orderinfo    = new List <OrderFinishInfo>();
                OrderImportStatus        orderimport_model = new OrderImportStatus();
                OrderFinishInfo          orderfinish_info  = new OrderFinishInfo();

                DataTable dt_Business = GetBusinessCount(saleorderid);
                DataTable dt_Finish   = GetFinishCount(saleorderid);

                string sale_plan_id = string.Empty;
                string order_num    = string.Empty;
                string parts_code   = string.Empty;
                if (dt_Business.Rows.Count > 0)
                {
                    for (int i = 0; i < dt_Business.Rows.Count; i++)
                    {
                        bool isfinish      = true;
                        int  BusinessCount = int.Parse(dt_Business.Rows[i]["business_count"].ToString());
                        sale_plan_id = dt_Business.Rows[i]["sale_plan_id"].ToString();
                        order_num    = dt_Business.Rows[i]["order_num"].ToString();
                        parts_code   = dt_Business.Rows[i]["parts_code"].ToString();
                        DataRow[] dr = dt_Finish.Select(" order_num='" + order_num + "' and parts_code='" + parts_code + "'");
                        if (dr != null && dr.Count() > 0)
                        {
                            orderfinish_info = new OrderFinishInfo();
                            orderfinish_info.sale_plan_id = sale_plan_id;
                            orderfinish_info.parts_code   = parts_code;
                            orderfinish_info.finish_num   = dr[0]["relation_count"].ToString();
                            list_orderinfo.Add(orderfinish_info);
                            if (int.Parse(dr[0]["relation_count"].ToString()) < BusinessCount)
                            {
                                isfinish = false;
                            }
                        }
                        else
                        {
                            orderfinish_info = new OrderFinishInfo();
                            orderfinish_info.sale_plan_id = sale_plan_id;
                            orderfinish_info.parts_code   = parts_code;
                            orderfinish_info.finish_num   = "0";
                            list_orderinfo.Add(orderfinish_info);

                            isfinish = false;
                        }

                        orderimport_model           = new OrderImportStatus();
                        orderimport_model.order_num = order_num;
                        orderimport_model.isfinish  = isfinish;
                        if (list_order.Count > 0)
                        {
                            if (list_order.Where(p => p.order_num == order_num).Count() > 0)
                            {
                                if (!isfinish)
                                {
                                    for (int a = 0; a < list_order.Count; a++)
                                    {
                                        if (list_order[a].order_num == order_num && list_order[a].isfinish)
                                        {
                                            list_order[a].isfinish = isfinish;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                list_order.Add(orderimport_model);
                            }
                        }
                        else
                        {
                            list_order.Add(orderimport_model);
                        }
                    }
                }
                ret = ImportPurchasePlanStatus(list_order, list_orderinfo);
                #endregion
            }
            catch (Exception ex)
            { }
            return(ret);
        }