Example #1
0
        /// <summary>
        /// 获取PO变更行
        /// </summary>
        /// <param name="dr"></param>
        /// <param name="changeType"></param>
        /// <param name="modifiedData"></param>
        /// <param name="modifiedDataName"></param>
        /// <param name="modifiedDataType"></param>
        /// <param name="dataBeforeModified"></param>
        /// <param name="dataAfterModified"></param>
        /// <returns></returns>
        public UFIDA.U9.PM.POChange.POModifyLineData GetPOModifyLineData(DataRow dr, int changeType, string modifiedData, string modifiedDataName, string modifiedDataType, string dataBeforeModified, string dataAfterModified)
        {
            UFIDA.U9.PM.POChange.POModifyLineData pomodifyLine = new UFIDA.U9.PM.POChange.POModifyLineData();
            pomodifyLine.DocLineNo           = 0;//默认值
            pomodifyLine.ItemInfo            = Convert.ToInt64(dr["ItemInfo_ItemID"].ToString());
            pomodifyLine.POLineDocLineNo     = Convert.ToInt32(dr["Linenum"].ToString());
            pomodifyLine.POLineID            = Convert.ToInt64(dr["PODocLineID"].ToString());
            pomodifyLine.POShipLineDocLineNo = Convert.ToInt32(dr["PlanLineNum"].ToString());
            pomodifyLine.POShipLineID        = Convert.ToInt64(dr["POSubLineID"].ToString());
            pomodifyLine.SysVersion          = 0;
            pomodifyLine.ChangeType          = changeType;//变更类型
            switch (changeType)
            {
            case 0:    //采购订单头变更
                pomodifyLine.LineID             = Convert.ToInt64(dr["POID"].ToString());
                pomodifyLine.ModifiedEntity     = new BusinessEntity.EntityKey(Convert.ToInt64(dr["POID"].ToString()), "UFIDA.U9.PM.PO.PurchaseOrder");
                pomodifyLine.ModifiedEntityName = "UFIDA.U9.PM.PO.PurchaseOrder";
                break;

            case 1:    //采购订单行变更
                pomodifyLine.LineID             = Convert.ToInt64(dr["PODocLineID"].ToString());
                pomodifyLine.ModifiedEntity     = new BusinessEntity.EntityKey(Convert.ToInt64(dr["PODocLineID"].ToString()), "UFIDA.U9.PM.PO.POLine");
                pomodifyLine.ModifiedEntityName = "UFIDA.U9.PM.PO.POLine";
                break;

            case 2:    //采购计划行变更
                pomodifyLine.CodeAfterModified  = "";
                pomodifyLine.CodeBeforeModified = "";
                pomodifyLine.NameAfterModifeid  = "";
                pomodifyLine.NameBeforeModifeid = "";
                pomodifyLine.LineID             = Convert.ToInt64(dr["POSubLineID"].ToString());
                pomodifyLine.ModifiedEntity     = new BusinessEntity.EntityKey(Convert.ToInt64(dr["POSubLineID"].ToString()), "UFIDA.U9.PM.PO.POShipLine");
                pomodifyLine.ModifiedEntityName = "UFIDA.U9.PM.PO.POShipLine";
                break;

            default:
                break;
            }
            pomodifyLine.ModifiedData       = modifiedData;
            pomodifyLine.ModifiedDataName   = modifiedDataName;
            pomodifyLine.ModifiedDataType   = modifiedDataType;
            pomodifyLine.DataBeforeModified = dr[dataBeforeModified].ToString();
            pomodifyLine.DataAfterModified  = dr[dataAfterModified].ToString();
            return(pomodifyLine);
        }
Example #2
0
        /// <summary>
        /// 生成PO变更单
        /// </summary>
        /// <param name="dr"></param>
        /// <param name="type">0\不制作变更单;1\只变更时间;2\其他类型PO变更单;</param>
        /// <returns></returns>
        public UFIDA.U9.PM.POChange.POModifyData GetPOModify(DataRow dr, ref string type)
        {
            type = "0";
            UFIDA.U9.PM.POChange.POModifyData poModify = new UFIDA.U9.PM.POChange.POModifyData();
            #region 变更数据
            //poModify.POShiplineModify = new List<UFIDA.U9.PM.POChange.POShiplineModifyData>();
            //poModify.POLineModify = new List<UFIDA.U9.PM.POChange.POLineModifyData>();
            //poModify.POAddressModify = new List<UFIDA.U9.PM.POChange.POAddressModifyData>();
            //poModify.POContactModify = new List<UFIDA.U9.PM.POChange.POContactModifyData>();
            //poModify.PODiscountModify = new List<UFIDA.U9.PM.POChange.PODiscountModifyData>();
            //poModify.POFeeModify = new List<UFIDA.U9.PM.POChange.POFeeModifyData>();
            //poModify.POMenoModify = new List<UFIDA.U9.PM.POChange.POMenoModifyData>();
            //poModify.POTaxModify = new List<UFIDA.U9.PM.POChange.POTaxModifyData>();
            #endregion
            poModify.ActionType = 0;//更新类型,默认值
            poModify.ApprovedBy = "";
            //poModify.ApprovedOn = DateTime.Now;
            poModify.CancelApprovedBy = "";
            //poModify.CancelApprovedOn = DateTime.Now;
            poModify.Demo         = "系统自动生成单据";       //备注
            poModify.DocumentType = 1001708070112532; //单据类型
            //poModify.DocumentType_SKey
            poModify.IsModifyVersion = true;          //更新订单版本
            poModify.ModifyIndex     = Convert.ToInt32(dr["POModifiedTimes"].ToString()) + 1;
            poModify.ModifyReason    = 0;
            poModify.PO      = Convert.ToInt64(dr["POID"]);
            poModify.PODocNo = dr["PODocNo"].ToString();
            //poModify.PO_SKey
            poModify.Status          = 0;//开立
            poModify.WFCurrentState  = -1;
            poModify.WFOriginalState = -1;
            //采购订单计划行变更表
            poModify.POShiplineModify = new List <UFIDA.U9.PM.POChange.POShiplineModifyData>();
            //poModify.POShiplineModify.Add(GetPOShiplineModifyData(dr));
            //POModifyLine PO变更单单行
            poModify.POModifyLine = new List <UFIDA.U9.PM.POChange.POModifyLineData>();



            int      SupplierConfirmQtyTU = Convert.ToInt32(Convert.ToDouble(dr["SupplierConfirmQtyTU"].ToString()));
            int      SMQty          = Convert.ToInt32(Convert.ToDouble(dr["SMQty"].ToString()));
            int      RescheduleQty  = Convert.ToInt32(Convert.ToDouble(dr["RescheduleQty"].ToString()));
            DateTime OriginalDate   = Convert.ToDateTime(dr["OriginalDate"].ToString());
            DateTime RescheduleDate = Convert.ToDateTime(dr["RescheduleDate"].ToString());
            if (SupplierConfirmQtyTU == SMQty)          //库存主单位数量=采购确认数量
            {
                if (SMQty == RescheduleQty)             //只修改日期
                {
                    if (OriginalDate != RescheduleDate) //修改日期
                    {
                        UFIDA.U9.PM.POChange.POModifyLineData pomodifyLine = new UFIDA.U9.PM.POChange.POModifyLineData();
                        pomodifyLine          = GetPOModifyLineData(dr, 2, "DeliveryDate", "要求交货日", "System.DateTime", "OriginalDate", "RescheduleDate");
                        pomodifyLine.POModify = poModify;
                        poModify.POModifyLine.Add(pomodifyLine);

                        UFIDA.U9.PM.POChange.POModifyLineData pomodifyLine2 = new UFIDA.U9.PM.POChange.POModifyLineData();
                        pomodifyLine2          = GetPOModifyLineData(dr, 2, "NeedPODate", "应下订单日", "System.DateTime", "OriginalDate", "RescheduleDate");
                        pomodifyLine2.POModify = poModify;
                        poModify.POModifyLine.Add(pomodifyLine2);

                        UFIDA.U9.PM.POChange.POModifyLineData pomodifyLine3 = new UFIDA.U9.PM.POChange.POModifyLineData();
                        pomodifyLine3          = GetPOModifyLineData(dr, 2, "PlanArriveDate", "计划到货日", "System.DateTime", "OriginalDate", "RescheduleDate");
                        pomodifyLine3.POModify = poModify;
                        poModify.POModifyLine.Add(pomodifyLine3);
                        type = "1";
                    }
                    else
                    {
                        type = "0";
                    }
                }
                else if (SMQty > RescheduleQty)
                {
                    if (OriginalDate == RescheduleDate)//直接改小数量
                    {
                    }
                    else//原始行修改,拆行,拆行的数量=重排数量,时间=重排时间
                    {
                    }
                }
                else//SMQty<RescheduleQty
                {
                    if (OriginalDate == RescheduleDate)//直接修改数量
                    {
                    }
                    else//直接修改数量和时间,不需要拆行
                    {
                    }
                }
            }
            else//库存主单位数量!=采购确认数量,需要拆行
            {
                if (SMQty == RescheduleQty)
                {
                    if (OriginalDate != RescheduleDate)//拆行,原始行做修改,新拆一行
                    {
                    }
                    else
                    {
                        type = "0";
                    }
                }
                else if (SMQty > RescheduleQty)
                {
                    if (OriginalDate != RescheduleDate)//修改数量和时间
                    {
                    }
                    else//只修改数量
                    {
                    }
                }
            }
            return(poModify);
        }