Beispiel #1
0
        /// <summary>
        /// 审核合同
        /// </summary>
        /// <param name="auditingPersonnel">审核人</param>
        /// <param name="bargainNumber">合同号</param>
        /// <param name="error">出错时返回错误信息,否则为null</param>
        /// <returns>操作是否成功的标志</returns>
        public bool AuditingBargainInfo(string auditingPersonnel, string bargainNumber, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var varData = from a in dataContxt.B_BargainInfo
                              where a.BargainNumber == bargainNumber
                              select a;

                if (varData.Count() == 0)
                {
                    error = "无记录";
                    return(false);
                }

                B_BargainInfo lnqbargin = varData.Single();

                lnqbargin.AuditPersonnel = auditingPersonnel;
                lnqbargin.AuditDate      = ServerTime.Time;

                dataContxt.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 添加合同信息
        /// </summary>
        /// <param name="bargainInfo">合同信息</param>
        /// <param name="returnBargainInfo">返回查询到的合同信息</param>
        /// <param name="error">错误信息, 没有则为null</param>
        /// <returns>操作是否成功的标志</returns>
        public bool AddBargainInfo(B_BargainInfo bargainInfo, out IQueryResult returnBargainInfo, out string error)
        {
            returnBargainInfo = null;
            error             = null;

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                dataContxt.B_BargainInfo.InsertOnSubmit(bargainInfo);
                dataContxt.SubmitChanges();

                return(GetAllBargainInfo(out returnBargainInfo, out error));
            }
            catch (Exception exce)
            {
                error = exce.Message;
                return(false);
            }
        }
Beispiel #3
0
        /// <summary>
        /// 修改合同信息
        /// </summary>
        /// <param name="oldBargainNumber">旧合同号</param>
        /// <param name="bargainInfo">合同信息</param>
        /// <param name="returnBargainInfo">返回查询到的合同信息</param>
        /// <param name="error">错误信息, 没有则为null</param>
        /// <returns>操作是否成功的标志</returns>
        public bool UpdateBargainInfo(string oldBargainNumber, B_BargainInfo bargainInfo,
                                      out IQueryResult returnBargainInfo, out string error)
        {
            returnBargainInfo = null;
            error             = null;

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from r in dataContxt.B_BargainInfo
                             where r.BargainNumber == oldBargainNumber
                             select r;

                if (result.Count() == 0)
                {
                    error = string.Format("找不到合同号为 [{0}] 的信息!", oldBargainNumber);
                    return(false);
                }

                B_BargainInfo       record      = result.Single();
                IBargainGoodsServer goodsServer = ServerModuleFactory.GetServerModule <IBargainGoodsServer>();

                if (oldBargainNumber != bargainInfo.BargainNumber)
                {
                    IQueryable <View_B_BargainGoods> returnBargainGoods;

                    if (!goodsServer.GetBargainGoods(oldBargainNumber, out returnBargainGoods, out error))
                    {
                        return(false);
                    }

                    goodsServer.AutoSubmitToDatabase = false;

                    foreach (var item in returnBargainGoods)
                    {
                        if (!goodsServer.UpdateBargainNumber(dataContxt, item.序号, bargainInfo.BargainNumber, out error))
                        {
                            return(false);
                        }
                    }

                    #region 更新订单信息表中的合同编号

                    IOrderFormInfoServer orderFormServer = ServerModuleFactory.GetServerModule <IOrderFormInfoServer>();
                    orderFormServer.UpdateBargainNumber(dataContxt, oldBargainNumber, bargainInfo.BargainNumber);

                    #endregion

                    dataContxt.B_BargainInfo.DeleteOnSubmit(record);
                    record = new B_BargainInfo();
                }

                record.BargainNumber   = bargainInfo.BargainNumber;
                record.Provider        = bargainInfo.Provider;
                record.Buyer           = bargainInfo.Buyer;
                record.Cess            = bargainInfo.Cess;
                record.Date            = bargainInfo.Date;
                record.InputPerson     = bargainInfo.InputPerson;
                record.LaisonMode      = bargainInfo.LaisonMode;
                record.ProviderLinkman = bargainInfo.ProviderLinkman;
                record.IsOverseas      = bargainInfo.IsOverseas;
                record.IsConsignOut    = bargainInfo.IsConsignOut;
                record.Remark          = bargainInfo.Remark;
                record.AuditDate       = bargainInfo.AuditDate;

                if (oldBargainNumber != bargainInfo.BargainNumber)
                {
                    dataContxt.B_BargainInfo.InsertOnSubmit(record);
                }

                dataContxt.SubmitChanges();

                goodsServer.AutoSubmitToDatabase = true;

                return(GetAllBargainInfo(out returnBargainInfo, out error));
            }
            catch (Exception exce)
            {
                error = exce.Message;
                return(false);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 获取合同物品表中某一产品单价
        /// </summary>
        /// <param name="bargainNumber">合同物品号</param>
        /// <param name="goodsID">物品ID</param>
        /// <param name="provider">供应商</param>
        /// <returns>返回获取到的单价</returns>
        public decimal GetGoodsUnitPrice(string bargainNumber, int goodsID, string provider)
        {
            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            DateTime dateTemp = ServerTime.Time;

            var varData = from a in dataContxt.Bus_PurchasingMG_UnitPriceList
                          where a.Provider == provider &&
                          a.GoodsID == goodsID &&
                          a.ValidityStart <= dateTemp &&
                          a.ValidityEnd >= dateTemp
                          select a;

            if (varData.Count() > 0)
            {
                Bus_PurchasingMG_UnitPriceList tempList = varData
                                                          .OrderByDescending(k => k.ValidityStart)
                                                          .ThenByDescending(k => k.VersionNo).First();

                decimal unitPrice = (decimal)tempList.UnitPrice;
                int     rate      = (int)tempList.Rate;

                return(unitPrice / (1m + rate / 100.0m));
            }

            var goodsGroup = from r in dataContxt.B_BargainGoods
                             where r.BargainNumber == bargainNumber && r.GoodsID == goodsID
                             select r;

            if (goodsGroup.Count() == 0)
            {
                var varData1 = from a in dataContxt.B_OrderFormInfo
                               where a.BargainNumber == bargainNumber ||
                               a.OrderFormNumber == bargainNumber
                               select a;

                if (varData1.Count() > 0)
                {
                    bargainNumber = varData1.First().BargainNumber;

                    if (bargainNumber == "价格清单")
                    {
                        throw new Exception("无法获取物品单价");
                    }

                    goodsGroup = from r in dataContxt.B_BargainGoods
                                 where r.BargainNumber == bargainNumber && r.GoodsID == goodsID
                                 select r;
                }
                else
                {
                    throw new Exception("无法获取物品单价");
                }
            }

            B_BargainInfo bargain = (from r in dataContxt.B_BargainInfo
                                     where r.BargainNumber == bargainNumber
                                     select r).Single();

            if (bargain.IsOverseas)
            {
                return((decimal)goodsGroup.Single().UnitPrice);
            }
            else
            {
                return(goodsGroup.Single().UnitPrice / (1m + bargain.Cess / 100.0m));
            }
        }