Example #1
0
        /// <summary>
        /// 编辑检验状态
        /// </summary>
        /// <param name="djh">单据号</param>
        /// <param name="remark">备注</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>编辑成功返回True,编辑失败返回False</returns>
        public bool CheckBill(string djh, string remark, out string error)
        {
            error = null;

            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            try
            {
                var varData = from a in dataContxt.S_CannibalizeBill
                              where a.DJH == djh
                              select a;

                if (varData.Count() != 0)
                {
                    S_CannibalizeBill lnqMarketing = varData.Single();

                    lnqMarketing.DJZT   = "已批准";
                    lnqMarketing.CWRY   = BasicInfo.LoginID;
                    lnqMarketing.Remark = remark;
                    lnqMarketing.CWRQ   = ServerTime.Time;

                    dataContxt.SubmitChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Example #2
0
        /// <summary>
        /// 仓管确认
        /// </summary>
        /// <param name="djID">单据ID</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>确认成功返回True,确认失败返回False</returns>
        public bool AffirmBill(int djID, out string error)
        {
            error = null;
            ISellIn serverSell = ServerModule.ServerModuleFactory.GetServerModule <ISellIn>();

            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            dataContxt.Connection.Open();
            dataContxt.Transaction = dataContxt.Connection.BeginTransaction();

            try
            {
                var varBill = from a in dataContxt.S_CannibalizeBill
                              where a.ID == djID
                              select a;

                if (varBill.Count() != 1)
                {
                    throw new Exception("单据信息为空或者不唯一");
                }

                S_CannibalizeBill tempBillInfo = varBill.Single();

                if (tempBillInfo.DJZT == "已确认")
                {
                    throw new Exception("单据不能重复确认");
                }

                tempBillInfo.DJZT = "已确认";
                tempBillInfo.KFRY = BasicInfo.LoginID;
                tempBillInfo.KFRQ = ServerTime.Time;

                //操作总成库存状态
                if (!serverSell.UpdateProductStock(dataContxt, tempBillInfo.DJH, "调拨", tempBillInfo.OutStoreRoom,
                                                   tempBillInfo.InStoreRoom, out error))
                {
                    return(false);
                }

                OpertaionDetailAndStock(dataContxt, tempBillInfo, CE_SubsidiaryOperationType.库房调出);
                OpertaionDetailAndStock(dataContxt, tempBillInfo, CE_SubsidiaryOperationType.库房调入);

                dataContxt.SubmitChanges();
                dataContxt.Transaction.Commit();
                return(true);
            }
            catch (Exception ex)
            {
                dataContxt.Transaction.Rollback();
                error = ex.Message;
                return(false);
            }
        }
Example #3
0
        private void 库房调拨明细单_Load(object sender, EventArgs e)
        {
            S_CannibalizeBill tempBillInfo = new S_CannibalizeBill();

            if (m_intDJID != 0)
            {
                tempBillInfo  = m_serverCannibalize.GetBill(m_intDJID);
                m_strDJZTFlag = tempBillInfo.DJZT;

                View_HR_Personnel lnqPersonnel = m_findPersonnel.GetPersonnelInfo(tempBillInfo.LRRY);

                if (lnqPersonnel.姓名 != BasicInfo.LoginName)
                {
                    btnSave.Visible       = false;
                    cmbInStorage.Enabled  = false;
                    cmbOutStorage.Enabled = false;
                }

                m_dtMxCK           = m_serverCannibalize.GetList(m_intDJID);
                txtSellID.Text     = tempBillInfo.DJH;
                txtPrice.Text      = tempBillInfo.Price.ToString();
                txtRemarkAll.Text  = tempBillInfo.Remark;
                cmbInStorage.Text  = UniversalFunction.GetStorageName(tempBillInfo.InStoreRoom);
                cmbOutStorage.Text = UniversalFunction.GetStorageName(tempBillInfo.OutStoreRoom);
                btnAffirm.Visible  = UniversalFunction.CheckStorageAndPersonnel(tempBillInfo.OutStoreRoom);
            }
            else
            {
                m_strDJZTFlag     = "已保存";
                btnAffirm.Visible = false;
                txtSellID.Text    = m_billNoControl.GetNewBillNo();
                CreateDateTableStyle();
            }

            if (m_strDJZTFlag != "已保存" && m_strDJZTFlag != "")
            {
                cmbOutStorage.Enabled = false;
                cmbInStorage.Enabled  = false;

                if (!UniversalFunction.CheckStorageAndPersonnel(tempBillInfo.OutStoreRoom) == false)
                {
                    btnSh.Visible = false;
                }
            }

            dgv_Main.DataSource = m_dtMxCK;

            m_strDJH = txtSellID.Text.Trim();
        }
Example #4
0
        /// <summary>
        /// 赋值库存信息
        /// </summary>
        /// <param name="dataContext">数据上下文</param>
        /// <param name="billInfo">单据信息</param>
        /// <param name="listSingle">明细信息</param>
        /// <param name="operationType">操作类型</param>
        /// <returns>返回库存信息对象</returns>
        S_Stock AssignStockInfo(DepotManagementDataContext dataContext, S_CannibalizeBill billInfo, S_CannibalizeList listSingle,
                                CE_SubsidiaryOperationType operationType)
        {
            S_Stock tempLnqStock = new S_Stock();

            tempLnqStock.GoodsID    = Convert.ToInt32(listSingle.GoodsID);
            tempLnqStock.BatchNo    = listSingle.BatchNo;
            tempLnqStock.ExistCount = (decimal)listSingle.Count;
            tempLnqStock.Date       = ServerTime.Time;
            tempLnqStock.Provider   = listSingle.Provider;
            tempLnqStock.UnitPrice  = (decimal)listSingle.UnitPrice;
            tempLnqStock.Price      = tempLnqStock.UnitPrice * tempLnqStock.ExistCount;

            if (operationType == CE_SubsidiaryOperationType.库房调出)
            {
                tempLnqStock.StorageID = billInfo.OutStoreRoom;
            }
            else if (operationType == CE_SubsidiaryOperationType.库房调入)
            {
                tempLnqStock.StorageID = billInfo.InStoreRoom;
            }
            else
            {
                throw new Exception("业务类型错误");
            }

            QueryCondition_Store store = new QueryCondition_Store();

            store.BatchNo   = tempLnqStock.BatchNo;
            store.GoodsID   = tempLnqStock.GoodsID;
            store.StorageID = billInfo.OutStoreRoom;
            store.Provider  = tempLnqStock.Provider;

            S_Stock stockInfo = UniversalFunction.GetStockInfo(dataContext, store);

            tempLnqStock.GoodsStatus = stockInfo.GoodsStatus;

            tempLnqStock.InputPerson = BasicInfo.LoginID;

            return(tempLnqStock);
        }
Example #5
0
        /// <summary>
        /// 根据单据信息操作账务信息与库存信息
        /// </summary>
        /// <param name="dataContext">数据上下文</param>
        /// <param name="bill">单据信息</param>
        /// <param name="operationType">操作类型</param>
        void OpertaionDetailAndStock(DepotManagementDataContext dataContext, S_CannibalizeBill bill,
                                     CE_SubsidiaryOperationType operationType)
        {
            IFinancialDetailManagement serverDetail =
                ServerModule.ServerModuleFactory.GetServerModule <IFinancialDetailManagement>();

            var result = from r in dataContext.S_CannibalizeList
                         where r.DJ_ID == bill.ID
                         select r;

            foreach (var item in result)
            {
                S_FetchGoodsDetailBill detailInfo = AssignDetailInfo(dataContext, bill, item, operationType);
                S_Stock stockInfo = AssignStockInfo(dataContext, bill, item, operationType);

                if (detailInfo == null || stockInfo == null)
                {
                    throw new Exception("获取账务信息或者库存信息失败");
                }

                serverDetail.ProcessFetchGoodsDetail(dataContext, detailInfo, stockInfo);
            }
        }
Example #6
0
        /// <summary>
        /// 变更单据状态(检测)
        /// </summary>
        /// <param name="djID">单据ID</param>
        /// <param name="remark">备注</param>
        /// <param name="error">出错时返回错误信息,无错时返回null</param>
        /// <returns>变更成功返回True,变更失败返回False</returns>
        public bool QualityBill(int djID, string remark, out string error)
        {
            error = null;

            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            try
            {
                var varData = from a in dataContxt.S_CannibalizeBill
                              where a.ID == djID
                              select a;

                if (varData.Count() == 0)
                {
                    error = "无记录";
                }
                else
                {
                    S_CannibalizeBill lnqMarkBill = varData.Single();

                    lnqMarkBill.Checker   = BasicInfo.LoginID;
                    lnqMarkBill.DJZT      = "已检测";
                    lnqMarkBill.Remark    = remark;
                    lnqMarkBill.CheckTime = ServerTime.Time;

                    dataContxt.SubmitChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
Example #7
0
        /// <summary>
        /// 赋值账务信息
        /// </summary>
        /// <param name="dataContext">数据上下文</param>
        /// <param name="billInfo">单据信息</param>
        /// <param name="listSingle">明细信息</param>
        /// <param name="operationType">操作类型</param>
        /// <returns>返回账务信息</returns>
        S_FetchGoodsDetailBill AssignDetailInfo(DepotManagementDataContext dataContext, S_CannibalizeBill billInfo, S_CannibalizeList listSingle,
                                                CE_SubsidiaryOperationType operationType)
        {
            S_FetchGoodsDetailBill lnqOutDepot = new S_FetchGoodsDetailBill();

            bool flag = false;

            if (operationType == CE_SubsidiaryOperationType.库房调出)
            {
                flag = true;
            }
            else if (operationType == CE_SubsidiaryOperationType.库房调入)
            {
                flag = false;
            }
            else
            {
                throw new Exception("业务类型错误");
            }

            lnqOutDepot.ID              = Guid.NewGuid();
            lnqOutDepot.FetchBIllID     = billInfo.DJH;
            lnqOutDepot.BillTime        = ServerTime.Time;
            lnqOutDepot.GoodsID         = (int)listSingle.GoodsID;
            lnqOutDepot.Provider        = listSingle.Provider;
            lnqOutDepot.BatchNo         = listSingle.BatchNo;
            lnqOutDepot.FetchCount      = flag ? listSingle.Count : -listSingle.Count;
            lnqOutDepot.UnitPrice       = (decimal)listSingle.UnitPrice;
            lnqOutDepot.Price           = flag ? (decimal)listSingle.Price : -(decimal)listSingle.Price;
            lnqOutDepot.Using           = flag ? "仓库调拨单:调出" : "仓库调拨:调入";
            lnqOutDepot.Department      = UniversalFunction.GetStorageName(dataContext, flag ? billInfo.InStoreRoom : billInfo.OutStoreRoom);
            lnqOutDepot.FillInPersonnel = UniversalFunction.GetPersonnelInfo(dataContext, billInfo.LRRY).姓名;
            lnqOutDepot.DepartDirector  = UniversalFunction.GetPersonnelInfo(dataContext, billInfo.SHRY).姓名;
            lnqOutDepot.DepotManager    = BasicInfo.LoginName;
            lnqOutDepot.OperationType   = flag ? (int)CE_SubsidiaryOperationType.库房调出 : (int)CE_SubsidiaryOperationType.库房调入;
            lnqOutDepot.Remark          = billInfo.Remark;
            lnqOutDepot.StorageID       = flag ? billInfo.OutStoreRoom : billInfo.InStoreRoom;
            lnqOutDepot.FillInDate      = billInfo.LRRQ;

            return(lnqOutDepot);
        }
Example #8
0
        /// <summary>
        /// 保存单据数据(如果单据信息ID为0则添加数据,否则更新数据)
        /// </summary>
        /// <param name="billList">单据明细</param>
        /// <param name="billInfo">单据信息</param>
        public void SaveBill(DataTable billList, S_CannibalizeBill billInfo)
        {
            DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

            dataContxt.Connection.Open();
            dataContxt.Transaction = dataContxt.Connection.BeginTransaction();

            try
            {
                int intDJID = 0;

                if (billInfo.ID == 0)//添加
                {
                    S_CannibalizeBill lnqBill = new S_CannibalizeBill();

                    lnqBill.DJH          = billInfo.DJH;
                    lnqBill.LRRY         = billInfo.LRRY;
                    lnqBill.LRRQ         = billInfo.LRRQ;
                    lnqBill.DJZT         = "已保存";
                    lnqBill.Remark       = billInfo.Remark;
                    lnqBill.Price        = billInfo.Price;
                    lnqBill.OutStoreRoom = billInfo.OutStoreRoom;
                    lnqBill.InStoreRoom  = billInfo.InStoreRoom;

                    dataContxt.S_CannibalizeBill.InsertOnSubmit(lnqBill);
                    dataContxt.SubmitChanges();

                    var varData = from a in dataContxt.S_CannibalizeBill
                                  where a.DJH == billInfo.DJH
                                  select a;

                    if (varData.Count() == 1)
                    {
                        intDJID = varData.Single().ID;
                    }
                    else
                    {
                        throw new Exception("数据为空或者不唯一");
                    }
                }
                else //更新
                {
                    var varData = from a in dataContxt.S_CannibalizeBill
                                  where a.ID == billInfo.ID
                                  select a;

                    if (varData.Count() != 0)
                    {
                        S_CannibalizeBill lnqBill = varData.Single();

                        lnqBill.LRRY  = billInfo.LRRY;
                        lnqBill.LRRQ  = billInfo.LRRQ;
                        lnqBill.Price = billInfo.Price;
                        lnqBill.DJZT  = "已保存";
                        lnqBill.SHRQ  = null;
                        lnqBill.SHRY  = null;
                        lnqBill.CWRQ  = null;
                        lnqBill.CWRY  = null;
                        lnqBill.KFRQ  = null;
                        lnqBill.KFRY  = null;

                        intDJID = billInfo.ID;
                    }
                }

                List <S_CannibalizeList> lisList = new List <S_CannibalizeList>();

                for (int i = 0; i < billList.Rows.Count; i++)
                {
                    S_CannibalizeList lnqList = new S_CannibalizeList();

                    lnqList.GoodsID   = Convert.ToInt32(billList.Rows[i]["GoodsID"].ToString());
                    lnqList.BatchNo   = billList.Rows[i]["BatchNo"].ToString();
                    lnqList.UnitPrice = Convert.ToDecimal(billList.Rows[i]["UnitPrice"]);
                    lnqList.Count     = Convert.ToDecimal(billList.Rows[i]["Count"]);
                    lnqList.Price     = Convert.ToDecimal(billList.Rows[i]["Price"]);
                    lnqList.Remark    = billList.Rows[i]["Remark"].ToString();
                    lnqList.Provider  = billList.Rows[i]["Provider"].ToString();

                    if (billList.Rows[i]["RepairStatus"] != null && billList.Rows[i]["RepairStatus"].ToString() != "")
                    {
                        lnqList.RepairStatus = billList.Rows[i]["RepairStatus"].ToString() == "1" ? true : false;
                    }

                    lisList.Add(lnqList);
                }

                SaveBillList(dataContxt, lisList, intDJID, billInfo.DJH);

                dataContxt.SubmitChanges();
                dataContxt.Transaction.Commit();
            }
            catch (Exception ex)
            {
                dataContxt.Transaction.Rollback();
                throw new Exception(ex.Message);
            }
        }