Пример #1
0
        /// <summary>
        /// 更新辅材信息
        /// </summary>
        /// <param name="objInfo">收货主材信息</param>
        private void UpdateSecondaryDetail(ContractOrderDetail objInfo)
        {
            //获取主材相关辅材信息
            IList <ICriterion> qryList = new List <ICriterion>();

            qryList = new List <ICriterion>();
            qryList.Add(Expression.Eq("ParentEquipmentID", objInfo.GoodsID));
            qryList.Add(Expression.Eq("EquipmentType", "2"));
            //IList<EquipmentAssortInfo> assortInfolist = Core.Container.Instance.Resolve<IServiceEquipmentAssortInfo>().GetAllByKeys(qryList);
            ////计算并更新辅材信息
            //foreach (EquipmentAssortInfo assortInfo in assortInfolist)
            //{
            //    //获取收货辅材信息
            //    qryList = new List<ICriterion>();
            //    qryList.Add(Expression.Eq("OrderNO", OrderNO));
            //    qryList.Add(Expression.Eq("MainGoodsID", objInfo.GoodsID));
            //    qryList.Add(Expression.Eq("GoodsID", assortInfo.EquipmentID));
            //    ContractOrderSecondaryDetail detail = Core.Container.Instance.Resolve<IServiceContractOrderSecondaryDetail>().GetEntityByFields(qryList);
            //    if (detail != null)
            //    {
            //        //更新辅材信息
            //        detail.FormerlyGoodsNumber = Math.Floor(objInfo.GoodsNumber / assortInfo.EquipmentCount) * assortInfo.AssortCount;
            //        detail.GoodsNumber = detail.FormerlyGoodsNumber - detail.PayForNumber;
            //        detail.GoodsTotalPrice = detail.PayForNumber * detail.GoodsUnitPrice;
            //        Core.Container.Instance.Resolve<IServiceContractOrderSecondaryDetail>().Update(detail);
            //    }
            //}
        }
Пример #2
0
        /// <summary>
        /// 主材单价及发货数量编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Grid1_AfterEdit(object sender, GridAfterEditEventArgs e)
        {
            Dictionary <int, Dictionary <string, object> > modifiedDict = Grid1.GetModifiedDict();

            foreach (int rowIndex in modifiedDict.Keys)
            {
                //根据绑定列的记录编号,获取发货物品信息和物品基本信息
                int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]);
                ContractOrderDetail objInfo = Core.Container.Instance.Resolve <IServiceContractOrderDetail>().GetEntity(rowID);
                objInfo.GoodsInfo = Core.Container.Instance.Resolve <IServiceEquipmentInfo>().GetEntity(objInfo.GoodsID);
                //修改发货数量
                if (modifiedDict[rowIndex].Keys.Contains("FixGoodsNumber"))
                {
                    objInfo.GoodsNumber     = objInfo.FormerlyGoodsNumber + Convert.ToDecimal(modifiedDict[rowIndex]["FixGoodsNumber"]);
                    objInfo.FixGoodsNumber  = Convert.ToDecimal(modifiedDict[rowIndex]["FixGoodsNumber"]);
                    objInfo.NotOffsetNumber = objInfo.FormerlyGoodsNumber + Convert.ToDecimal(modifiedDict[rowIndex]["FixGoodsNumber"]);
                }
                //计算并更新计价数量及重量
                if (objInfo.PayUnit == 1)
                {
                    //按计价单位计价,计价数量=商品规格*发货数量
                    // objInfo.GoodCalcPriceNumber = objInfo.GoodsInfo.Standard * objInfo.GoodsNumber;
                }
                else
                {
                    //按出库数量计价,计价数量=发货数量
                    objInfo.GoodCalcPriceNumber = objInfo.GoodsNumber;
                }
                //更新订单明细
                Core.Container.Instance.Resolve <IServiceContractOrderDetail>().Update(objInfo);
            }
            //重新加载订单发货信息
            BindOrderDetail();
        }
        private bool IsExists(int goodsID)
        {
            IList <ICriterion> qryList = new List <ICriterion>();

            qryList.Add(Expression.Eq("OrderNO", OrderNO));
            qryList.Add(Expression.Eq("GoodsID", goodsID));

            ContractOrderDetail objInfo = Core.Container.Instance.Resolve <IServiceContractOrderDetail>().GetEntityByFields(qryList);

            return(objInfo != null ? true : false);
        }
Пример #4
0
        /// <summary>
        /// 删除收货物品信息
        /// </summary>
        /// <param name="id">物品ID</param>
        private void DeleteDetail(int id)
        {
            ContractOrderDetail contractOrderDetail = Core.Container.Instance.Resolve <IServiceContractOrderDetail>().GetEntity(id);

            //删除主材信息
            Core.Container.Instance.Resolve <IServiceContractOrderDetail>().Delete(id);
            //删除辅材信息
            string sqlWhere = string.Format(" OrderNO='{0}' AND MainGoodsID={1}  ", OrderNO, contractOrderDetail.GoodsID);

            Core.Container.Instance.Resolve <IServiceContractOrderSecondaryDetail>().DelelteAll(sqlWhere);
        }
Пример #5
0
        /// <summary>
        /// 主材发货数量编辑
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Grid1_AfterEdit(object sender, GridAfterEditEventArgs e)
        {
            Dictionary <int, Dictionary <string, object> > modifiedDict = Grid1.GetModifiedDict();

            foreach (int rowIndex in modifiedDict.Keys)
            {
                //根据绑定列的记录编号,获取发货物品信息和物品基本信息
                int rowID = Convert.ToInt32(Grid1.DataKeys[rowIndex][0]);
                ContractOrderDetail objInfo = Core.Container.Instance.Resolve <IServiceContractOrderDetail>().GetEntity(rowID);
                objInfo.GoodsInfo = Core.Container.Instance.Resolve <IServiceEquipmentInfo>().GetEntity(objInfo.GoodsID);
                //修改发货数量
                if (modifiedDict[rowIndex].Keys.Contains("GoodsNumber"))
                {
                    objInfo.GoodsNumber         = Convert.ToDecimal(modifiedDict[rowIndex]["GoodsNumber"]);     //最终发货数量
                    objInfo.FormerlyGoodsNumber = Convert.ToDecimal(modifiedDict[rowIndex]["GoodsNumber"]);     //原始发货数量
                    objInfo.NotOffsetNumber     = Convert.ToDecimal(modifiedDict[rowIndex]["GoodsNumber"]);     //商品待还数量
                    //更新辅材信息
                    UpdateSecondaryDetail(objInfo);
                }
                //计算并更新计价数量及重量
                if (objInfo.PayUnit == 1)
                {
                    //按计价单位计价,计价数量=商品规格*发货数量
                    // objInfo.GoodCalcPriceNumber = objInfo.GoodsInfo.Standard * objInfo.GoodsNumber;
                }
                else
                {
                    //按出库数量计价,计价数量=发货数量
                    objInfo.GoodCalcPriceNumber = objInfo.GoodsNumber;
                }
                //计算客户、员工和司机的发货商品重量
                //objInfo.GoodsCustomerWeight = objInfo.GoodsInfo.Standard * objInfo.GoodsNumber / objInfo.GoodsInfo.CustomerUnit;
                //objInfo.GoodsDriverWeight = objInfo.GoodsInfo.Standard * objInfo.GoodsNumber / objInfo.GoodsInfo.DriverUnit;
                //objInfo.GoodsStaffWeight = objInfo.GoodsInfo.Standard * objInfo.GoodsNumber / objInfo.GoodsInfo.StaffUnit;
                ////更新订单明细
                Core.Container.Instance.Resolve <IServiceContractOrderDetail>().Update(objInfo);
                //更新费用信息
                new ContractOrderBase().CalcOrderCost(OrderNO);
                //CalcOrderCost();
            }
            //重新加载订单发货信息
            BindOrderDetail();
        }
        /// <summary>
        /// 创建收货单辅材信息
        /// </summary>
        /// <param name="dbEntity">收货单主材信息</param>
        /// <param name="priceSetInfo">合同价格套系</param>
        /// <param name="whGoodsEntity">库存物品信息</param>
        private void CreateSHSecondaryDetail(ContractOrderDetail dbEntity, PriceSetInfo priceSetInfo, WHGoodsDetail whGoodsEntity)
        {
            IList <ICriterion> qryList = new List <ICriterion>();

            //获取主材相关辅材信息
            qryList = new List <ICriterion>();
            qryList.Add(Expression.Eq("ParentEquipmentID", whGoodsEntity.GoodsID));
            qryList.Add(Expression.Eq("EquipmentType", "2"));
            //IList<EquipmentAssortInfo> assortInfolist = Core.Container.Instance.Resolve<IServiceEquipmentAssortInfo>().GetAllByKeys(qryList);
            ////计算并保存辅材信息
            //foreach (EquipmentAssortInfo assortInfo in assortInfolist)
            //{
            //    //判断辅材是否入库要算量
            //    if (assortInfo.IsInCalcNumber == 1)
            //    {
            //        //获取辅材物品基本信息
            //        EquipmentInfo equipmentInfo = Core.Container.Instance.Resolve<IServiceEquipmentInfo>().GetEntity(assortInfo.EquipmentID);
            //        //创建辅材信息
            //        ContractOrderSecondaryDetail detail = new ContractOrderSecondaryDetail();
            //        detail.GoodsID = assortInfo.EquipmentID;
            //        detail.MainGoodsID = whGoodsEntity.GoodsID;
            //        detail.GoodsNumber = Math.Floor(1 / assortInfo.EquipmentCount) * assortInfo.AssortCount;
            //        detail.FormerlyGoodsNumber = Math.Floor(1 / assortInfo.EquipmentCount) * assortInfo.AssortCount;
            //        detail.PayForNumber = 0;
            //        detail.GoodsUnit = equipmentInfo.EquipmentUnit;
            //        detail.GoodsUnitPrice = 0;
            //        detail.IsShow = 0;
            //        //判断辅材收货时是否计算金额买赔
            //        if (assortInfo.IsInCalcPrice == 1)
            //        {
            //            /*-------------------获取价格-------------------*/
            //            //获取主材类别,根据类别的报价策略获取价格
            //            EquipmentTypeInfo equipmentTypeInfo = Core.Container.Instance.Resolve<IServiceEquipmentTypeInfo>().GetEntity(equipmentInfo.EquipmentTypeID);
            //            //获取价格
            //            qryList = new List<ICriterion>();
            //            qryList.Add(Expression.Eq("SetID", priceSetInfo.ID));
            //            // 报价类型 1:按类别统计报价  2:按物品分别报价 3:不参与合同报价
            //            //if (equipmentTypeInfo.PriceSetType == 1)
            //            //{
            //            //    qryList.Add(Expression.Eq("EquipmentID", equipmentInfo.EquipmentTypeID));
            //            //}
            //            //if (equipmentTypeInfo.PriceSetType == 2)
            //            //{
            //            //    qryList.Add(Expression.Eq("EquipmentID", equipmentInfo.ID));
            //            //}
            //            //获取合同价格设置
            //            PriceSetGoodsInfo priceSetGoodsInfo1 = Core.Container.Instance.Resolve<IServicePriceSetGoodsInfo>().GetEntityByFields(qryList);
            //            if (priceSetGoodsInfo1 != null)
            //            {
            //                detail.GoodsUnitPrice = priceSetGoodsInfo1.UnitPrice;
            //            }
            //            else
            //            {
            //                detail.GoodsUnitPrice = equipmentInfo.UnitPrice;
            //            }
            //            detail.IsShow = 1;
            //        }
            //        detail.GoodsTotalPrice = detail.GoodsNumber * detail.GoodsUnitPrice;
            //        detail.IsCalcNumber = assortInfo.IsInCalcNumber;
            //        detail.IsCalcPrice = assortInfo.IsInCalcPrice;
            //        detail.OrderDate = dbEntity.OrderDate;
            //        detail.OrderNO = OrderNO;
            //        detail.OrderType = OrderType;
            //        detail.WareHouseID = int.Parse(ddlWH.SelectedValue);
            //        //保存收货辅材信息
            //        Core.Container.Instance.Resolve<IServiceContractOrderSecondaryDetail>().Create(detail);
            //    }
            //}
        }
        private void SaveItem()
        {
            // 从每个选中的行中获取ID(在Grid1中定义的DataKeyNames)
            List <int>          ids           = GetSelectedDataKeyIDs(Grid1);
            WHGoodsDetail       whGoodsEntity = new WHGoodsDetail();
            ContractOrderDetail dbEntity      = new ContractOrderDetail();
            IList <ICriterion>  qryList       = new List <ICriterion>();
            PriceSetInfo        priceSetInfo  = new PriceSetInfo();

            //获取合同信息
            ContractInfo contractInfo = Core.Container.Instance.Resolve <IServiceContractInfo>().GetEntity(ContractID);

            // 执行数据库操作
            foreach (int ID in ids)
            {
                //获取物品信息
                whGoodsEntity = Core.Container.Instance.Resolve <IServiceWHGoodsDetail>().GetEntity(ID);
                if (whGoodsEntity != null)
                {
                    whGoodsEntity.GoodsInfo = Core.Container.Instance.Resolve <IServiceEquipmentInfo>().GetEntity(whGoodsEntity.GoodsID);
                    //判断是否已经添加改商品物品
                    if (whGoodsEntity.GoodsInfo != null && !IsExists(whGoodsEntity.GoodsID))
                    {
                        #region 主材

                        dbEntity                     = new ContractOrderDetail();
                        dbEntity.OrderNO             = OrderNO;
                        dbEntity.OrderDate           = DateTime.Now;
                        dbEntity.GoodsID             = whGoodsEntity.GoodsID;
                        dbEntity.GoodTypeID          = whGoodsEntity.GoodsTypeID;
                        dbEntity.GoodsNumber         = 1;
                        dbEntity.FormerlyGoodsNumber = 1;
                        dbEntity.FixGoodsNumber      = 0;
                        dbEntity.GoodsUnit           = whGoodsEntity.InventoryUnit;
                        //dbEntity.GoodsCalcUnit = whGoodsEntity.GoodsInfo.CalcPriceUnit;
                        //dbEntity.NotOffsetNumber = dbEntity.GoodsNumber;
                        //dbEntity.GoodCalcPriceNumber = dbEntity.GoodsNumber * whGoodsEntity.GoodsInfo.Standard;
                        //dbEntity.PayUnit = whGoodsEntity.GoodsInfo.PayUnit;
                        /*-------------------获取价格-------------------*/
                        //获取主材类别,根据类别的报价策略获取价格
                        EquipmentTypeInfo equipmentTypeInfo = Core.Container.Instance.Resolve <IServiceEquipmentTypeInfo>().GetEntity(whGoodsEntity.GoodsInfo.EquipmentTypeID);
                        //dbEntity.IsStockByRepaired = equipmentTypeInfo.IsStockByRepaired;

                        //priceSetInfo = Core.Container.Instance.Resolve<IServicePriceSetInfo>().GetEntity(contractInfo.PriceSetID);
                        qryList = new List <ICriterion>();
                        qryList.Add(Expression.Eq("SetID", priceSetInfo.ID));
                        // 报价类型 1:按类别统计报价  2:按物品分别报价 3:不参与合同报价
                        //if (equipmentTypeInfo.PriceSetType == 1)
                        //{
                        //    qryList.Add(Expression.Eq("EquipmentID", whGoodsEntity.GoodsInfo.EquipmentTypeID));
                        //}
                        //if (equipmentTypeInfo.PriceSetType == 2)
                        //{
                        //    qryList.Add(Expression.Eq("EquipmentID", whGoodsEntity.GoodsID));
                        //}
                        PriceSetGoodsInfo priceSetGoodsInfo = Core.Container.Instance.Resolve <IServicePriceSetGoodsInfo>().GetEntityByFields(qryList);
                        if (priceSetGoodsInfo != null)
                        {
                            dbEntity.GoodsUnitPrice = priceSetGoodsInfo.DailyRents;
                            //判断物品费用是日租金还是现金买赔
                            //if (whGoodsEntity.GoodsInfo.IsPayNow == 1)
                            //{
                            //    dbEntity.GoodsUnitPrice = priceSetGoodsInfo.UnitPrice;
                            //}
                        }
                        else
                        {
                            // dbEntity.GoodsUnitPrice = whGoodsEntity.GoodsInfo.DailyRents;
                            //判断物品费用是日租金还是现金买赔
                            //if (whGoodsEntity.GoodsInfo.IsPayNow == 1)
                            //{
                            //    dbEntity.GoodsUnitPrice = whGoodsEntity.GoodsInfo.UnitPrice;
                            //}
                        }
                        dbEntity.NotOffsetNumber = 1;
                        dbEntity.WareHouseID     = int.Parse(ddlWH.SelectedValue);
                        //保存领用主材信息
                        Core.Container.Instance.Resolve <IServiceContractOrderDetail>().Create(dbEntity);

                        #endregion 主材

                        //辅材列表
                        if (OrderType == 1)
                        {
                            //创建发货单辅材信息
                            CreateFHSecondaryDetail(dbEntity, priceSetInfo, whGoodsEntity);
                        }
                        else
                        {
                            //创建收货单辅材信息
                            CreateSHSecondaryDetail(dbEntity, priceSetInfo, whGoodsEntity);
                        }
                    }
                }
            }
        }