Beispiel #1
0
        /// <summary>
        /// 变更金额_采购退货单
        /// </summary>
        /// <param name="dataContxt">数据上下文</param>
        /// <param name="detailInfo">结算单明细</param>
        void ChangePrice_S_MaterialRejectBill(DepotManagementDataContext dataContxt,
                                              View_Business_Settlement_ProcurementStatementDetail detailInfo)
        {
            IMaterialRejectBill serviceMaterialRejectBill = ServerModule.ServerModuleFactory.GetServerModule <IMaterialRejectBill>();
            string error         = "";
            var    varRejectList = from a in dataContxt.S_MaterialListRejectBill
                                   where a.Bill_ID == detailInfo.入库单号 &&
                                   a.GoodsID == detailInfo.物品ID &&
                                   a.BatchNo == detailInfo.批次号
                                   select a;

            if (varRejectList.Count() != 0)
            {
                S_MaterialListRejectBill lnqMaterialList = varRejectList.Single();

                lnqMaterialList.InvoiceUnitPrice = detailInfo.发票单价;
                lnqMaterialList.InvoicePrice     = detailInfo.发票金额;

                lnqMaterialList.HavingInvoice = true;
                dataContxt.SubmitChanges();

                int intFlag = serviceMaterialRejectBill.SetHavingInvoiceReturn(dataContxt, detailInfo.入库单号, out error);

                if (intFlag == 4)
                {
                    throw new Exception(error);
                }
                else
                {
                    var varReject = from a in dataContxt.S_MaterialRejectBill
                                    where a.Bill_ID == detailInfo.入库单号
                                    select a;

                    if (varReject.Count() != 0)
                    {
                        S_MaterialRejectBill lnqMaterialBill = varReject.Single();

                        lnqMaterialBill.InvoiceFlag = intFlag;
                        dataContxt.SubmitChanges();
                    }
                }
            }
        }
Beispiel #2
0
        /// <summary>
        /// 生成采购退货单
        /// </summary>
        /// <param name="context">数据上下文</param>
        /// <param name="billNo">单据号</param>
        void InsertRejectBill(DepotManagementDataContext context, string billNo)
        {
            string error = null;
            IMaterialRejectBill     serverRejectBill     = ServerModule.ServerModuleFactory.GetServerModule <IMaterialRejectBill>();
            IMaterialListRejectBill serverRejectListBill = ServerModule.ServerModuleFactory.GetServerModule <IMaterialListRejectBill>();

            var varData = from a in context.S_ScrapBill
                          where a.Bill_ID == billNo
                          select a;

            if (varData.Count() == 0)
            {
                return;
            }

            S_ScrapBill   scarpBill   = varData.Single();
            List <string> lstProvider = (from a in context.S_ScrapGoods
                                         where a.Bill_ID == billNo && a.ResponsibilityProvider == a.Provider
                                         select a.Provider).Distinct().ToList();

            foreach (string provider in lstProvider)
            {
                var dataProviderWork = from a in context.ProviderPrincipal
                                       where a.Provider == provider &&
                                       a.IsMainDuty == true
                                       select a;

                View_HR_Personnel    personnelInfo = UniversalFunction.GetPersonnelInfo(context, dataProviderWork.First().PrincipalWorkId);
                S_MaterialRejectBill bill          = new S_MaterialRejectBill();

                bill.Bill_ID             = m_assignBill.AssignNewNo(context, serverRejectBill, CE_BillTypeEnum.采购退货单.ToString());
                bill.Bill_Time           = ServerTime.Time;
                bill.BillStatus          = MaterialRejectBillBillStatus.已完成.ToString();
                bill.Department          = personnelInfo.部门编码;
                bill.FillInPersonnel     = personnelInfo.姓名;
                bill.FillInPersonnelCode = personnelInfo.工号;
                bill.DepotManager        = BasicInfo.LoginName;
                bill.Provider            = provider;
                bill.Reason       = "由【报废单】:" + billNo + " 生成的报废退货";
                bill.Remark       = "系统自动生成";
                bill.BillType     = "总仓库退货单";
                bill.StorageID    = "01";
                bill.OutDepotDate = ServerTime.Time;

                context.S_MaterialRejectBill.InsertOnSubmit(bill);
                context.SubmitChanges();

                var varData2 = from a in context.S_ScrapGoods
                               where a.Provider == provider &&
                               a.Bill_ID == billNo &&
                               a.ResponsibilityProvider == a.Provider
                               select a;

                foreach (S_ScrapGoods goodsInfo in varData2)
                {
                    string orderForm = GetOrderForm(context, goodsInfo.GoodsID, goodsInfo.BatchNo, provider);

                    if (orderForm == null)
                    {
                        throw new Exception(UniversalFunction.GetGoodsMessage(context, goodsInfo.GoodsID)
                                            + " 批次号:【" + goodsInfo.BatchNo + "】  供应商:【" + provider + "】 找不到对应的【订单号】");
                    }

                    QueryCondition_Store queryInfo = new QueryCondition_Store();

                    queryInfo.BatchNo   = goodsInfo.BatchNo;
                    queryInfo.GoodsID   = goodsInfo.GoodsID;
                    queryInfo.StorageID = "01";

                    S_Stock stockInfo = UniversalFunction.GetStockInfo(context, queryInfo);

                    //插入业务明细信息
                    S_MaterialListRejectBill goods = new S_MaterialListRejectBill();

                    goods.Bill_ID         = bill.Bill_ID;
                    goods.GoodsID         = goodsInfo.GoodsID;
                    goods.Provider        = provider;
                    goods.ProviderBatchNo = stockInfo == null ? "" : stockInfo.ProviderBatchNo;
                    goods.BatchNo         = goodsInfo.BatchNo;
                    goods.Amount          = (decimal)goodsInfo.Quantity;
                    goods.Remark          = "";
                    goods.AssociateID     = orderForm;

                    if (!serverRejectListBill.SetPriceInfo(goods.AssociateID, goods, bill.StorageID, out error))
                    {
                        throw new Exception(error);
                    }

                    context.S_MaterialListRejectBill.InsertOnSubmit(goods);
                    context.SubmitChanges();
                }

                serverRejectBill.OpertaionDetailAndStock(context, bill);
                context.SubmitChanges();
            }
        }