Esempio n. 1
0
        /// <summary>
        /// 生成领料单明细
        /// </summary>
        /// <param name="dataContxt">LINQ数据上下文</param>
        /// <param name="antirust">防锈物品信息</param>
        /// <param name="billID">单据号</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>操作成功返回True,操作失败返回False</returns>
        public bool CreateMaterialRequisitionGoods(DepotManagementDataContext dataContxt,
                                                   KF_GoodsAntirust antirust, string billID, out string error)
        {
            error = null;

            try
            {
                S_MaterialRequisitionGoods lnqMaterGoods = new S_MaterialRequisitionGoods();

                lnqMaterGoods.BasicCount   = 0;
                lnqMaterGoods.BatchNo      = antirust.BatchNo;
                lnqMaterGoods.Bill_ID      = billID;
                lnqMaterGoods.GoodsID      = (int)antirust.GoodsID;
                lnqMaterGoods.ProviderCode = antirust.Provider;
                lnqMaterGoods.RealCount    = Convert.ToDecimal(antirust.AntirustUnqualifiedCount);
                lnqMaterGoods.Remark       = "由防锈报废自动生成";
                lnqMaterGoods.RequestCount = Convert.ToDecimal(antirust.AntirustUnqualifiedCount);
                lnqMaterGoods.ShowPosition = 1;

                MaterialRequisitionGoodsServer serverMaterialGoods = new MaterialRequisitionGoodsServer();

                if (!serverMaterialGoods.AutoCreateGoods(dataContxt, lnqMaterGoods, out error))
                {
                    return(false);
                }
                //dataContxt.S_MaterialRequisitionGoods.InsertOnSubmit(lnqMaterGoods);

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 审核防锈
        /// </summary>
        /// <param name="goodsTable">需要执行的物品数据表</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>操作成功返回True,操作失败返回False</returns>
        public bool AuditingAntirustInfo(DataTable goodsTable, out string error)
        {
            error = null;

            try
            {
                DepotManagementDataContext contxt = CommentParameter.DepotDataContext;

                for (int i = 0; i < goodsTable.Rows.Count; i++)
                {
                    var varData = from a in contxt.S_Stock
                                  where a.GoodsID == (int)goodsTable.Rows[i]["物品ID"] &&
                                  a.BatchNo == goodsTable.Rows[i]["批次号"].ToString() &&
                                  a.StorageID == goodsTable.Rows[i]["库房ID"].ToString() &&
                                  a.Provider == goodsTable.Rows[i]["供应商"].ToString()
                                  select a;

                    var varAntirust = from a in contxt.KF_GoodsAntirust
                                      where a.GoodsID == (int)goodsTable.Rows[i]["物品ID"] &&
                                      a.BatchNo == goodsTable.Rows[i]["批次号"].ToString() &&
                                      a.StorageID == goodsTable.Rows[i]["库房ID"].ToString() &&
                                      a.Provider == goodsTable.Rows[i]["供应商"].ToString()
                                      select a;

                    if (varData.Count() != 1)
                    {
                        error = "数据不唯一或者为空";
                        return(false);
                    }
                    else
                    {
                        S_Stock lnqStock = varData.Single();

                        KF_GoodsAntirust lnqAntirust = varAntirust.Single();

                        lnqAntirust.AuditingDate      = ServerTime.Time;
                        lnqAntirust.AuditingPersonnel = BasicInfo.LoginName;

                        if (Convert.ToInt32(goodsTable.Rows[i]["不合格数"]) > lnqStock.ExistCount)
                        {
                            error = "【" + lnqStock.GoodsCode.ToString() + "】的批次号[" + lnqStock.BatchNo
                                    + "]的物品不合格数不能大于库存数";
                            return(false);
                        }

                        lnqAntirust.AntirustUnqualifiedCount = Convert.ToInt32(goodsTable.Rows[i]["不合格数"]);

                        if (lnqAntirust.AntirustState.ToString() == "等待审核" &&
                            Convert.ToDecimal(lnqAntirust.AntirustUnqualifiedCount) > 0)
                        {
                            lnqAntirust.AntirustState = "等待确认";
                        }
                        else if (lnqAntirust.AntirustState.ToString() == "等待审核" &&
                                 Convert.ToDecimal(lnqAntirust.AntirustUnqualifiedCount) == 0)
                        {
                            lnqAntirust.AntirustState = "未防锈";
                        }
                        else
                        {
                            error = "状态不符,请重新审核";
                            return(false);
                        }
                    }
                }

                contxt.SubmitChanges();

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// 确认防锈
        /// </summary>
        /// <param name="goodsTable">需要执行的物品数据集</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>True 成功 false  失败</returns>
        public bool AuthorizeAntirustInfo(DataTable goodsTable, out string error)
        {
            error = null;
            MaterialRequisitionServer  serverMaterialBill = new MaterialRequisitionServer();
            DepotManagementDataContext contxt             = CommentParameter.DepotDataContext;

            contxt.Connection.Open();
            contxt.Transaction = contxt.Connection.BeginTransaction();
            try
            {
                DataTable dtTemp = GlobalObject.DataSetHelper.SelectDistinct("", goodsTable, "库房ID");

                for (int k = 0; k < dtTemp.Rows.Count; k++)
                {
                    DataTable dtgoodsTable =
                        GlobalObject.DataSetHelper.SiftDataTable(goodsTable, "库房ID = '" + dtTemp.Rows[k][0].ToString() + "'", out error);

                    if (error != null)
                    {
                        throw new Exception(error);
                    }

                    string billID = m_assignBill.AssignNewNo(serverMaterialBill, CE_BillTypeEnum.领料单.ToString());

                    for (int i = 0; i < dtgoodsTable.Rows.Count; i++)
                    {
                        var varStock = from a in contxt.S_Stock
                                       where a.GoodsID == (int)dtgoodsTable.Rows[i]["物品ID"] &&
                                       a.BatchNo == dtgoodsTable.Rows[i]["批次号"].ToString() &&
                                       a.StorageID == dtgoodsTable.Rows[i]["库房ID"].ToString() &&
                                       a.Provider == dtgoodsTable.Rows[i]["供应商"].ToString()
                                       select a;

                        var varAntirust = from a in contxt.KF_GoodsAntirust
                                          where a.GoodsID == (int)dtgoodsTable.Rows[i]["物品ID"] &&
                                          a.BatchNo == dtgoodsTable.Rows[i]["批次号"].ToString() &&
                                          a.StorageID == dtgoodsTable.Rows[i]["库房ID"].ToString() &&
                                          a.Provider == dtgoodsTable.Rows[i]["供应商"].ToString()
                                          select a;

                        if (varStock.Count() != 1)
                        {
                            error = "数据不唯一或者为空";
                            throw new Exception(error);
                        }
                        else
                        {
                            S_Stock lnqStock = varStock.Single();

                            KF_GoodsAntirust lnqAntirust = varAntirust.Single();

                            if (Convert.ToDecimal(lnqAntirust.AntirustUnqualifiedCount) > 0)
                            {
                                if (!CreateMaterialRequisitionGoods(contxt, lnqAntirust, billID, out error))
                                {
                                    throw new Exception(error);
                                }
                            }

                            lnqAntirust.AntirustUnqualifiedCount = 0;
                            lnqAntirust.AuthorizePersonnel       = BasicInfo.LoginName;

                            if (lnqAntirust.AntirustState.ToString() == "等待确认")
                            {
                                lnqAntirust.AntirustDate  = ServerTime.Time;
                                lnqAntirust.AntirustState = "未防锈";
                            }
                            else
                            {
                                error = "状态不符,请重新确认";
                                throw new Exception(error);
                            }
                        }
                    }

                    contxt.SubmitChanges();

                    var requistionVar = from a in contxt.S_MaterialRequisition
                                        where a.Bill_ID == billID
                                        select a;

                    IMaterialRequisitionServer requisitionService = ServerModule.ServerModuleFactory.GetServerModule <IMaterialRequisitionServer>();

                    requisitionService.OpertaionDetailAndStock(contxt, requistionVar.Single());

                    m_assignBill.UseBillNo(CE_BillTypeEnum.领料单.ToString(), billID);
                }

                contxt.SubmitChanges();
                contxt.Transaction.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                contxt.Transaction.Rollback();
                error = ex.Message;
                return(false);
            }
        }