Пример #1
0
        /// <summary>
        /// 工具账务操作
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="billNo">单据号</param>
        /// <param name="goodsID">物品ID</param>
        /// <param name="provider">供应商</param>
        /// <param name="operationCount">操作数量</param>
        /// <param name="workID">操作人员ID</param>
        void ToolsOperation(DepotManagementDataContext ctx, string billNo, int goodsID, string provider,
                            decimal operationCount, string workID)
        {
            IToolsManage serverTools = ServerModule.ServerModuleFactory.GetServerModule <IToolsManage>();

            if (serverTools.IsTools(goodsID))
            {
                Service_Manufacture_WorkShop.IWorkShopBasic serverWSBasic =
                    Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();
                IPersonnelInfoServer serverPersonnel = ServerModuleFactory.GetServerModule <IPersonnelInfoServer>();

                View_HR_Personnel viewPersonnel = serverPersonnel.GetPersonnelInfo(workID);
                WS_WorkShopCode   tempWSCode    = serverWSBasic.GetPersonnelWorkShop(workID);

                S_MachineAccount_Tools toolsInfo = new S_MachineAccount_Tools();

                toolsInfo.GoodsID    = goodsID;
                toolsInfo.Provider   = provider;
                toolsInfo.StockCount = -operationCount;

                if (tempWSCode != null)
                {
                    toolsInfo.StorageCode = tempWSCode.WSCode;
                }
                else
                {
                    toolsInfo.StorageCode = viewPersonnel.部门编码;
                }

                serverTools.OpertionInfo(ctx, toolsInfo);
                serverTools.DayToDayAccount(ctx, toolsInfo, billNo);
            }
        }
Пример #2
0
        /// <summary>
        /// 操作工具台帐
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="toolsInfo">工具台帐对象</param>
        public void OpertionInfo(DepotManagementDataContext ctx, S_MachineAccount_Tools toolsInfo)
        {
            var varData = from a in ctx.S_MachineAccount_Tools
                          where a.GoodsID == toolsInfo.GoodsID &&
                          a.Provider == toolsInfo.Provider &&
                          a.StorageCode == toolsInfo.StorageCode
                          select a;

            S_MachineAccount_Tools tempInfo = new S_MachineAccount_Tools();

            if (varData.Count() == 1)
            {
                tempInfo            = varData.Single();
                tempInfo.StockCount = tempInfo.StockCount + toolsInfo.StockCount;
            }
            else if (varData.Count() > 1)
            {
                throw new Exception(UniversalFunction.GetGoodsMessage(toolsInfo.GoodsID) + "供应商:" + toolsInfo.Provider
                                    + "所属部门编码: " + toolsInfo.StorageCode + "在工具台帐记录数不唯一");
            }
            else if (varData.Count() == 0)
            {
                tempInfo.GoodsID     = toolsInfo.GoodsID;
                tempInfo.Provider    = toolsInfo.Provider;
                tempInfo.StockCount  = toolsInfo.StockCount;
                tempInfo.StorageCode = toolsInfo.StorageCode;

                ctx.S_MachineAccount_Tools.InsertOnSubmit(tempInfo);
            }

            if (tempInfo.StockCount < 0)
            {
                throw new Exception("工具台帐数量不能小于0");
            }
        }
Пример #3
0
        /// <summary>
        /// 工具流水账记录
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="toolsInfo">工具台帐对象</param>
        /// <param name="billNo">单据号</param>
        public void DayToDayAccount(DepotManagementDataContext ctx, S_MachineAccount_Tools toolsInfo, string billNo)
        {
            S_DayToDay_Tools dayToDayInfo = new S_DayToDay_Tools();

            dayToDayInfo.BillNo         = billNo;
            dayToDayInfo.GoodsID        = toolsInfo.GoodsID;
            dayToDayInfo.OpeartionCount = toolsInfo.StockCount;
            dayToDayInfo.OperationTime  = ServerTime.Time;
            dayToDayInfo.Provider       = toolsInfo.Provider;
            dayToDayInfo.StorageCode    = toolsInfo.StorageCode;

            DayToDayAccount(ctx, dayToDayInfo);
        }
Пример #4
0
        /// <summary>
        /// 工具出库业务的处理
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="fetchGoodsDetailInfo">出库业务对象</param>
        void FetchToolsInfo(DepotManagementDataContext ctx, S_FetchGoodsDetailBill fetchGoodsDetailInfo)
        {
            if (fetchGoodsDetailInfo == null)
            {
                return;
            }

            IToolsManage serverTools = ServerModule.ServerModuleFactory.GetServerModule <IToolsManage>();

            if (serverTools.IsTools(ctx, fetchGoodsDetailInfo.GoodsID))
            {
                if (fetchGoodsDetailInfo.StorageID != null && fetchGoodsDetailInfo.StorageID.Trim().Length > 0)
                {
                    S_MachineAccount_Tools toolsInfo_Storage = new S_MachineAccount_Tools();

                    toolsInfo_Storage.GoodsID     = fetchGoodsDetailInfo.GoodsID;
                    toolsInfo_Storage.Provider    = fetchGoodsDetailInfo.Provider;
                    toolsInfo_Storage.StockCount  = -(decimal)fetchGoodsDetailInfo.FetchCount;
                    toolsInfo_Storage.StorageCode = fetchGoodsDetailInfo.StorageID;

                    serverTools.OpertionInfo(ctx, toolsInfo_Storage);
                    serverTools.DayToDayAccount(ctx, toolsInfo_Storage, fetchGoodsDetailInfo.FetchBIllID);
                }

                CE_SubsidiaryOperationType operationType =
                    (CE_SubsidiaryOperationType)Enum.ToObject(typeof(CE_SubsidiaryOperationType), fetchGoodsDetailInfo.OperationType);

                if (operationType != CE_SubsidiaryOperationType.营销出库 && operationType != CE_SubsidiaryOperationType.营销退库)
                {
                    S_MachineAccount_Tools toolsInfo_Department = new S_MachineAccount_Tools();

                    toolsInfo_Department.GoodsID     = fetchGoodsDetailInfo.GoodsID;
                    toolsInfo_Department.Provider    = fetchGoodsDetailInfo.Provider;
                    toolsInfo_Department.StockCount  = (decimal)fetchGoodsDetailInfo.FetchCount;
                    toolsInfo_Department.StorageCode = UniversalFunction.GetPersonnelInfo(ctx, fetchGoodsDetailInfo.FillInPersonnel).部门编码;

                    serverTools.OpertionInfo(ctx, toolsInfo_Department);
                    serverTools.DayToDayAccount(ctx, toolsInfo_Department, fetchGoodsDetailInfo.FetchBIllID);
                }
            }
        }
Пример #5
0
        /// <summary>
        /// 工具入库业务的处理
        /// </summary>
        /// <param name="ctx">数据上下文</param>
        /// <param name="indepotDetailInfo">入库业务对象</param>
        void InDepotToolsInfo(DepotManagementDataContext ctx, S_InDepotDetailBill indepotDetailInfo)
        {
            if (indepotDetailInfo == null)
            {
                return;
            }

            IToolsManage serverTools = ServerModule.ServerModuleFactory.GetServerModule <IToolsManage>();

            if (serverTools.IsTools(indepotDetailInfo.GoodsID))
            {
                S_MachineAccount_Tools toolsInfo = new S_MachineAccount_Tools();

                toolsInfo.GoodsID     = indepotDetailInfo.GoodsID;
                toolsInfo.Provider    = indepotDetailInfo.Provider;
                toolsInfo.StockCount  = (decimal)indepotDetailInfo.InDepotCount;
                toolsInfo.StorageCode = indepotDetailInfo.StorageID;

                serverTools.OpertionInfo(ctx, toolsInfo);
                serverTools.DayToDayAccount(ctx, toolsInfo, indepotDetailInfo.InDepotBillID);
            }
        }