Esempio n. 1
0
        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="p_FormID">单据ID</param>
        /// <param name="p_Type">0/1/2/3:弃审/审核</param>
        public void RSubmit(int p_FormID, int p_Type, IDBTransAccess sqlTrans)
        {
            try
            {
                int         p_TempType = p_Type;//处理状态
                string      sql        = string.Empty;
                ItemBuyForm entity     = new ItemBuyForm(sqlTrans);
                entity.ID = p_FormID;
                entity.SelectByID();
                if (entity.SubmitFlag == p_Type)//如果相同异常
                {
                    throw new Exception("单据状态重复设置,请关闭程序重新打开操作");
                }
                if (p_Type == (int)ConfirmFlag.未提交)                                  //撤销提交验证
                {
                    if (SysConvert.ToBoolean(ProductParamSet.GetIntValueByID(5609))) //采购单有仓库单据不允许修改
                    {
                        bool      allowOPFlag   = true;
                        string    refuseMessage = string.Empty;
                        DataTable dtSOFlow;
                        if (allowOPFlag)
                        {
                            //仓库流程单据
                            sql      = "SELECT TOP 1 ID,FormNo FROM UV1_WH_IOFormDts WHERE DtsSO=" + SysString.ToDBString(entity.FormNo);
                            dtSOFlow = SysUtils.Fill(sql);
                            if (dtSOFlow.Rows.Count != 0)
                            {
                                allowOPFlag   = false;
                                refuseMessage = "此单已有仓库单据(单号):" + dtSOFlow.Rows[0]["FormNo"].ToString() + ",不允许撤销";
                            }
                        }

                        if (!allowOPFlag)//不允许操作
                        {
                            throw new Exception(refuseMessage);
                        }
                    }
                }


                sql = "UPDATE Buy_ItemBuyForm SET SubmitFlag=" + SysString.ToDBString(p_Type);
                //if (p_Type == (int)ConfirmFlag.审核通过 || p_Type == (int)ConfirmFlag.审核拒绝)
                //{
                //sql += ",SubmitOPID=" + SysString.ToDBString(ParamConfig.LoginName) + ",SubmitTime=" + SysString.ToDBString(DateTime.Now);
                //}
                sql += " WHERE ID=" + p_FormID.ToString();//更新单据主表审核状态
                sqlTrans.ExecuteNonQuery(sql);

                int tempSaleProcedureID = 0;
                switch (entity.FormAID)//1/2/3/4/5:成品,坯布,纱线,色坯,辅料


                {
                case 1:
                    tempSaleProcedureID = (int)EnumSaleProcedure.成品采购单;
                    break;

                case 2:
                    tempSaleProcedureID = (int)EnumSaleProcedure.坯布采购单;
                    break;

                case 3:
                    tempSaleProcedureID = (int)EnumSaleProcedure.纱线采购单;
                    break;

                case 4:
                    tempSaleProcedureID = (int)EnumSaleProcedure.坯布采购单;
                    break;

                case 5:    //辅料
                    tempSaleProcedureID = (int)EnumSaleProcedure.辅料采购单;
                    break;
                }
                if (p_Type == (int)YesOrNo.Yes)
                {
                    if (tempSaleProcedureID != (int)EnumSaleProcedure.坯布采购单)
                    {
                        sql = "SELECT DtsSO,ItemCode,ColorNum,ColorName FROM Buy_ItemBuyFormDts WHERE MainID=" + p_FormID;
                        DataTable dtDts = sqlTrans.Fill(sql);

                        SaleOrderRule salerule = new SaleOrderRule();
                        foreach (DataRow dr in dtDts.Rows)
                        {
                            salerule.RUpdateStep(dr["DtsSO"].ToString(), dr["ItemCode"].ToString(), dr["ColorNum"].ToString(), dr["ColorName"].ToString(), tempSaleProcedureID, 0, 0, 0, p_Type, true, sqlTrans);
                        }
                    }
                    else  //坯布采购加载订单时候  将订单里的 ItemCode 加载到 CPItemCode
                    {
                        sql = "SELECT DtsSO,CPItemCode,ColorNum,ColorName FROM Buy_ItemBuyFormDts WHERE MainID=" + p_FormID;
                        DataTable dtDts = sqlTrans.Fill(sql);

                        SaleOrderRule salerule = new SaleOrderRule();
                        foreach (DataRow dr in dtDts.Rows)
                        {
                            salerule.RUpdateStep(dr["DtsSO"].ToString(), dr["CPItemCode"].ToString(), dr["ColorNum"].ToString(), dr["ColorName"].ToString(), tempSaleProcedureID, 0, 0, 0, p_Type, true, sqlTrans);
                        }
                    }
                }

                //#region 回填采购完成数
                //if (p_Type == (int)YesOrNo.Yes)//提交
                //{
                //    if (entity.MLType == (int)EnumMLType.纱线 || entity.MLType == (int)EnumMLType.白坯)
                //    {
                //        decimal TotalQty = 0m;
                //        sql = "SELECT  SUM(Qty) Qty FROM Buy_ItemBuyFormDts WHERE MainID=" + p_FormID;
                //        DataTable dtDts = sqlTrans.Fill(sql);
                //        if (dtDts.Rows.Count != 0)
                //        {
                //            TotalQty = SysConvert.ToDecimal(dtDts.Rows[0]["Qty"]);
                //        }
                //        sql = "SELECT ID FROM Sale_SaleOrderDts WHERE MainID=(SELECT ID FROM Sale_SaleOrder WHERE FormNo=" + SysString.ToDBString(entity.OrderFormNo) + ")";
                //        DataTable dtorder = sqlTrans.Fill(sql);//寻找原始订单
                //        if (dtorder.Rows.Count != 0)
                //        {
                //            while (TotalQty > 0m)//开始回填
                //            {
                //                for (int i = 0; i < dtorder.Rows.Count;i++ )
                //                {
                //                    SaleOrderDts orderentity = new SaleOrderDts(sqlTrans);
                //                    orderentity.ID = SysConvert.ToInt32(dtorder.Rows[i]["ID"]);
                //                    bool findR=orderentity.SelectByID();
                //                    if (i == dtorder.Rows.Count - 1)
                //                    {
                //                        switch (entity.MLType)
                //                        {

                //                            case (int)EnumMLType.纱线:
                //                                orderentity.PSCGQty += TotalQty;
                //                                TotalQty = 0;
                //                                break;
                //                            case (int)EnumMLType.白坯:
                //                                orderentity.PBCGQty += TotalQty;
                //                                TotalQty = 0;
                //                                break;
                //                            default:
                //                                break;
                //                        }
                //                    }
                //                    else
                //                    {
                //                       // decimal HTQty = DifQty <= TotalQty ? DifQty : TotalQty;
                //                        switch (entity.MLType)
                //                        {

                //                            case (int)EnumMLType.纱线:
                //                                decimal DifPSQty = orderentity.Qty - orderentity.PSCGQty;
                //                                if (TotalQty <= DifPSQty)
                //                                {
                //                                    orderentity.PSCGQty += TotalQty;
                //                                    TotalQty = 0;
                //                                    break;
                //                                }
                //                                else
                //                                {
                //                                    if (DifPSQty > 0)
                //                                    {
                //                                        orderentity.PSCGQty += DifPSQty;
                //                                        TotalQty -= DifPSQty;
                //                                        break;
                //                                    }
                //                                }
                //                                break;
                //                            case (int)EnumMLType.白坯:
                //                                decimal DifPBQty = orderentity.Qty - orderentity.PBCGQty;
                //                                if (TotalQty <= DifPBQty)
                //                                {
                //                                    orderentity.PBCGQty += TotalQty;
                //                                    TotalQty = 0;
                //                                    break;
                //                                }
                //                                else
                //                                {
                //                                    if (DifPBQty > 0)
                //                                    {
                //                                        orderentity.PBCGQty += DifPBQty;
                //                                        TotalQty -= DifPBQty;
                //                                        break;
                //                                    }
                //                                }
                //                                break;
                //                            default:
                //                                break;

                //                        }
                //                    }
                //                    if (findR)
                //                    {
                //                        SaleOrderDtsRule rule = new SaleOrderDtsRule();
                //                        rule.RUpdate(orderentity, sqlTrans);
                //                    }

                //                } //For循环结尾
                //            }   //While结尾
                //        }
                //        else
                //        {
                //            throw new Exception("数据出现异常未找到原始订单");
                //        }

                //    }
                //    if (entity.MLType == (int)EnumMLType.成品)
                //    {
                //        sql = "SELECT ItemCode,ColorNum,ColorName,Qty FROM Buy_ItemBuyFormDts WHERE MainID=" + p_FormID;
                //        DataTable dtDts1 = sqlTrans.Fill(sql);
                //        foreach(DataRow dr in dtDts1.Rows)
                //        {
                //             sql = "SELECT DtsID FROM UV1_Sale_SaleOrderDts WHERE FormNo=" + SysString.ToDBString(entity.OrderFormNo);
                //             sql += " AND ItemCode=" + SysString.ToDBString(dr["ItemCode"].ToString());
                //             sql += " AND ColorNum=" + SysString.ToDBString(dr["ColorNum"].ToString());
                //             sql += " AND ColorName=" + SysString.ToDBString(dr["ColorName"].ToString());
                //            DataTable dtorder = sqlTrans.Fill(sql);//寻找原始订单
                //            if (dtorder.Rows.Count == 1)
                //            {
                //                SaleOrderDts orderentity = new SaleOrderDts(sqlTrans);
                //                orderentity.ID = SysConvert.ToInt32(dtorder.Rows[0]["DtsID"]);
                //                bool findR=orderentity.SelectByID();
                //                orderentity.CPCGQty += SysConvert.ToDecimal(dr["Qty"]);
                //                if (findR)
                //                {
                //                    SaleOrderDtsRule rule = new SaleOrderDtsRule();
                //                    rule.RUpdate(orderentity, sqlTrans);
                //                }
                //            }
                //            else
                //            {
                //                throw new Exception("数据出现异常未找到原始订单 订单号:"+entity.FormNo);
                //            }
                //        }
                //    }

                //}
                //else        //撤销提交回填数量
                //{
                //    if (entity.MLType == (int)EnumMLType.纱线 || entity.MLType == (int)EnumMLType.白坯)
                //    {
                //        decimal TotalQty = 0m;
                //        sql = "SELECT  SUM(Qty) Qty FROM Buy_ItemBuyFormDts WHERE MainID=" + p_FormID;
                //        DataTable dtDts = sqlTrans.Fill(sql);
                //        if (dtDts.Rows.Count != 0)
                //        {
                //            TotalQty = SysConvert.ToDecimal(dtDts.Rows[0]["Qty"]);
                //        }
                //        sql = "SELECT ID FROM Sale_SaleOrderDts WHERE MainID=(SELECT ID FROM Sale_SaleOrder WHERE FormNo=" + SysString.ToDBString(entity.OrderFormNo) + ")";
                //        DataTable dtorder = sqlTrans.Fill(sql);//寻找原始订单
                //        if (dtorder.Rows.Count != 0)
                //        {
                //            while (TotalQty > 0m)//开始回填
                //            {
                //                for (int i = 0; i < dtorder.Rows.Count; i++)
                //                {
                //                    SaleOrderDts orderentity = new SaleOrderDts(sqlTrans);
                //                    orderentity.ID = SysConvert.ToInt32(dtorder.Rows[i]["ID"]);
                //                    bool findR=orderentity.SelectByID();
                //                    if (i == dtorder.Rows.Count - 1)
                //                    {
                //                        switch (entity.MLType)
                //                        {

                //                            case (int)EnumMLType.纱线:
                //                                orderentity.PSCGQty -= TotalQty;
                //                                //if (orderentity.PSCGQty < 0)
                //                                //{
                //                                //    orderentity.PSCGQty = 0;
                //                                //}
                //                                TotalQty = 0;
                //                                break;
                //                            case (int)EnumMLType.白坯:
                //                                orderentity.PBCGQty -= TotalQty;
                //                                //if (orderentity.PBCGQty < 0)
                //                                //{
                //                                //    orderentity.PBCGQty = 0;
                //                                //}
                //                                TotalQty = 0;
                //                                break;
                //                            default:
                //                                break;
                //                        }
                //                    }
                //                    else
                //                    {
                //                        switch (entity.MLType)
                //                        {

                //                            case (int)EnumMLType.纱线:
                //                               // decimal DifPSQty = orderentity.Qty - orderentity.PSCGQty;
                //                                if (TotalQty <= orderentity.PSCGQty)
                //                                {
                //                                    orderentity.PSCGQty -= TotalQty;
                //                                    TotalQty = 0;
                //                                    break;
                //                                }
                //                                else
                //                                {
                //                                    if (orderentity.PSCGQty > 0)
                //                                    {
                //                                        TotalQty -= orderentity.PSCGQty;
                //                                        orderentity.PSCGQty =0;
                //                                        break;
                //                                    }
                //                                }
                //                                break;
                //                            case (int)EnumMLType.白坯:
                //                                //decimal DifPBQty = orderentity.Qty - orderentity.PBCGQty;
                //                                if (TotalQty <= orderentity.PBCGQty)
                //                                {
                //                                    orderentity.PBCGQty -= TotalQty;
                //                                    TotalQty = 0;
                //                                    break;
                //                                }
                //                                else
                //                                {
                //                                    if (orderentity.PBCGQty > 0)
                //                                    {
                //                                        TotalQty -= orderentity.PBCGQty;
                //                                        orderentity.PBCGQty= 0;
                //                                        break;
                //                                    }
                //                                }
                //                                break;
                //                            default:
                //                                break;

                //                        }
                //                    }
                //                    if (findR)
                //                    {
                //                        SaleOrderDtsRule rule = new SaleOrderDtsRule();
                //                        rule.RUpdate(orderentity, sqlTrans);
                //                    }

                //                } //For循环结尾
                //            }   //While结尾
                //        }
                //        else
                //        {
                //            throw new Exception("数据出现异常未找到原始订单");
                //        }

                //    }
                //    if (entity.MLType == (int)EnumMLType.成品)
                //    {
                //        sql = "SELECT ItemCode,ColorNum,ColorName,Qty FROM Buy_ItemBuyFormDts WHERE MainID=" + p_FormID;
                //        DataTable dtDts1 = sqlTrans.Fill(sql);
                //        foreach (DataRow dr in dtDts1.Rows)
                //        {
                //            sql = "SELECT DtsID FROM UV1_Sale_SaleOrderDts WHERE FormNo=" + SysString.ToDBString(entity.OrderFormNo);
                //            sql += " AND ItemCode=" + SysString.ToDBString(dr["ItemCode"].ToString());
                //            sql += " AND ColorNum=" + SysString.ToDBString(dr["ColorNum"].ToString());
                //            sql += " AND ColorName=" + SysString.ToDBString(dr["ColorName"].ToString());
                //            DataTable dtorder = sqlTrans.Fill(sql);//寻找原始订单
                //            if (dtorder.Rows.Count == 1)
                //            {
                //                SaleOrderDts orderentity = new SaleOrderDts(sqlTrans);
                //                orderentity.ID = SysConvert.ToInt32(dtorder.Rows[0]["DtsID"]);
                //                bool findR= orderentity.SelectByID();
                //                orderentity.CPCGQty -= SysConvert.ToDecimal(dr["Qty"]);
                //                if (findR)
                //                {
                //                    SaleOrderDtsRule rule = new SaleOrderDtsRule();
                //                    rule.RUpdate(orderentity, sqlTrans);
                //                }
                //            }
                //            else
                //            {
                //                throw new Exception("数据出现异常未找到原始订单 订单号:" + entity.FormNo);
                //            }
                //        }
                //    }
                //}
                //#endregion
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="p_FormID">单据ID</param>
        /// <param name="p_Type">0/1/2/3:弃审/审核</param>
        public void RSubmit(int p_FormID, int p_Type, IDBTransAccess sqlTrans)
        {
            try
            {
                int           p_TempType = p_Type;//处理状态
                string        sql        = string.Empty;
                FabricProcess entity     = new FabricProcess(sqlTrans);
                entity.ID = p_FormID;
                entity.SelectByID();
                if (entity.SubmitFlag == p_Type)//如果相同异常
                {
                    throw new Exception("单据状态重复设置,请关闭程序重新打开操作");
                }
                if (p_Type == (int)ConfirmFlag.未提交)                                  //撤销提交验证
                {
                    if (SysConvert.ToBoolean(ProductParamSet.GetIntValueByID(5809))) //加工单有仓库单据不允许修改
                    {
                        bool      allowOPFlag   = true;
                        string    refuseMessage = string.Empty;
                        DataTable dtSOFlow;
                        if (allowOPFlag)
                        {
                            //仓库流程单据
                            sql      = "SELECT TOP 1 ID,FormNo FROM UV1_WH_IOFormDts WHERE DtsSO=" + SysString.ToDBString(entity.FormNo);
                            dtSOFlow = SysUtils.Fill(sql);
                            if (dtSOFlow.Rows.Count != 0)
                            {
                                allowOPFlag   = false;
                                refuseMessage = "此单已有仓库单据(单号):" + dtSOFlow.Rows[0]["FormNo"].ToString() + ",不允许撤销";
                            }
                        }

                        if (!allowOPFlag)//不允许操作
                        {
                            throw new Exception(refuseMessage);
                        }
                    }
                }


                sql = "UPDATE WO_FabricProcess SET SubmitFlag=" + SysString.ToDBString(p_Type);
                //if (p_Type == (int)ConfirmFlag.审核通过 || p_Type == (int)ConfirmFlag.审核拒绝)
                //{
                //sql += ",SubmitOPID=" + SysString.ToDBString(ParamConfig.LoginName) + ",SubmitTime=" + SysString.ToDBString(DateTime.Now);
                //}
                sql += " WHERE ID=" + p_FormID.ToString();//更新单据主表审核状态
                sqlTrans.ExecuteNonQuery(sql);



                int tempSaleProcedureID = 0;
                switch (entity.ProcessTypeID)//2:织造;1:染整;3:印花;4:其它
                {
                case 1:
                    tempSaleProcedureID = (int)EnumSaleProcedure.染整加工单;
                    break;

                case 2:
                    tempSaleProcedureID = (int)EnumSaleProcedure.织胚加工单;    //织造加工单
                    break;

                case 3:
                    tempSaleProcedureID = (int)EnumSaleProcedure.印花加工单;
                    break;

                case 4:    //其它  改为后整加工
                    tempSaleProcedureID = (int)EnumSaleProcedure.其它加工单;
                    break;

                case 5:
                    tempSaleProcedureID = (int)EnumSaleProcedure.合加工单;
                    break;
                }


                //if (p_Type == (int)YesOrNo.Yes)
                if (p_Type == (int)ConfirmFlag.已提交)
                {
                    sql = "SELECT DtsSO,ItemCode,ColorNum,ColorName,DtsSO,CPItemCode FROM WO_FabricProcessDts WHERE MainID=" + p_FormID;
                    DataTable dtDts = sqlTrans.Fill(sql);
                    if (tempSaleProcedureID == (int)EnumSaleProcedure.织胚加工单)//织造加工单
                    {
                        SaleOrderRule salerule = new SaleOrderRule();
                        foreach (DataRow dr in dtDts.Rows)
                        {
                            salerule.RUpdateStep(dr["DtsSO"].ToString(), dr["CPItemCode"].ToString(), dr["ColorNum"].ToString(), dr["ColorName"].ToString(), tempSaleProcedureID, 0, 0, 0, p_Type, true, sqlTrans);
                        }
                    }
                    else
                    {
                        SaleOrderRule salerule = new SaleOrderRule();
                        foreach (DataRow dr in dtDts.Rows)
                        {
                            salerule.RUpdateStep(dr["DtsSO"].ToString(), dr["ItemCode"].ToString(), dr["ColorNum"].ToString(), dr["ColorName"].ToString(), tempSaleProcedureID, 0, 0, 0, p_Type, true, sqlTrans);
                        }
                    }
                }
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }