Exemple #1
0
        /// <summary>
        /// 获取信息
        /// </summary>
        void GetInfo()
        {
            m_lnqBill = new WS_CannibalizeBill();

            m_lnqBill.BillNo     = txtBillNo.Text;
            m_lnqBill.BillStatus = lbBillStatus.Text;
            m_lnqBill.Remark     = txtBillRemark.Text;

            m_listLnqWSCode = new List <WS_CannibalizeWSCode>();

            WS_CannibalizeWSCode lnqWSCode = new WS_CannibalizeWSCode();

            lnqWSCode.BillNo        = txtBillNo.Text;
            lnqWSCode.OperationType = (int)CE_SubsidiaryOperationType.车间调出;
            lnqWSCode.WSCode        = cmbOutWSCode.SelectedValue.ToString();

            m_listLnqWSCode.Add(lnqWSCode);

            lnqWSCode = new WS_CannibalizeWSCode();

            lnqWSCode.BillNo        = txtBillNo.Text;
            lnqWSCode.OperationType = (int)CE_SubsidiaryOperationType.车间调入;
            lnqWSCode.WSCode        = cmbInWSCode.SelectedValue.ToString();

            m_listLnqWSCode.Add(lnqWSCode);

            m_dtList = (DataTable)dataGridView1.DataSource;
        }
Exemple #2
0
        /// <summary>
        /// 获得车间调运库房信息表
        /// </summary>
        /// <param name="wsCode"></param>
        /// <returns></returns>
        WS_CannibalizeWSCode GetCannibalizeWSCode(WS_CannibalizeWSCode wsCode)
        {
            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            var varData = from a in ctx.WS_CannibalizeWSCode
                          where a.BillNo == wsCode.BillNo &&
                          a.OperationType == wsCode.OperationType
                          select a;

            if (varData.Count() == 1)
            {
                return(varData.Single());
            }
            else
            {
                return(null);
            }
        }
Exemple #3
0
        /// <summary>
        /// 确认单据
        /// </summary>
        /// <param name="billNo">单据号</param>
        /// <param name="list">明细信息</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True,失败返回False</returns>
        public bool AffirmBill(string billNo, DataTable list, out string error)
        {
            error = null;

            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

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

            try
            {
                var varData = from a in ctx.WS_CannibalizeBill
                              where a.BillNo == billNo
                              select a;

                WS_CannibalizeBill tempBill = new WS_CannibalizeBill();

                if (varData.Count() == 1)
                {
                    tempBill = varData.Single();

                    if (tempBill.BillStatus != CannibalizeBillStatus.等待确认.ToString())
                    {
                        throw new Exception("单据状态错误,请重新确认");
                    }

                    tempBill.BillStatus = CannibalizeBillStatus.单据已完成.ToString();
                    tempBill.Affirm     = BasicInfo.LoginName;
                    tempBill.AffirmDate = ServerTime.Time;
                }
                else
                {
                    throw new Exception("数据不唯一,请重新确认");
                }

                var varCannibalizeWSCode = from a in ctx.WS_CannibalizeWSCode
                                           where a.BillNo == tempBill.BillNo
                                           select a;

                ListControl(ctx, tempBill, varCannibalizeWSCode.ToList <WS_CannibalizeWSCode>(), list);
                ctx.SubmitChanges();

                var varOperationType = from a in varCannibalizeWSCode
                                       join b in ctx.BASE_SubsidiaryOperationType
                                       on a.OperationType equals b.OperationType
                                       orderby b.DepartmentType
                                       select a;

                var varGoodsList = from a in ctx.WS_CannibalizeList
                                   where a.BillNo == tempBill.BillNo
                                   select a;

                foreach (WS_CannibalizeList tempItem in varGoodsList)
                {
                    decimal unitPrice = 0;

                    foreach (WS_CannibalizeWSCode item in varOperationType)
                    {
                        WS_Subsidiary tempSubsidiary = new WS_Subsidiary();

                        tempSubsidiary.BatchNo        = tempItem.BatchNo;
                        tempSubsidiary.BillNo         = tempBill.BillNo;
                        tempSubsidiary.GoodsID        = tempItem.GoodsID;
                        tempSubsidiary.OperationCount = tempItem.OperationCount;
                        tempSubsidiary.OperationType  = item.OperationType;
                        tempSubsidiary.Remark         = tempItem.Remark;
                        tempSubsidiary.WSCode         = item.WSCode;
                        tempSubsidiary.Proposer       = tempBill.Proposer;
                        tempSubsidiary.ProposerDate   = (DateTime)tempBill.ProposerDate;
                        tempSubsidiary.Affirm         = BasicInfo.LoginName;
                        tempSubsidiary.AffirmDate     = ServerTime.Time;
                        tempSubsidiary.BillTime       = ServerTime.Time;

                        WS_CannibalizeWSCode tempCanWSCode = new WS_CannibalizeWSCode();

                        tempCanWSCode.BillNo = tempSubsidiary.BillNo;

                        Service_Manufacture_WorkShop.IWorkShopStock serverStock =
                            Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopStock>();
                        switch (item.OperationType)
                        {
                        case (int)CE_SubsidiaryOperationType.车间调出:
                            tempCanWSCode.OperationType = (int)CE_SubsidiaryOperationType.车间调入;

                            WS_WorkShopStock tempWSStock = serverStock.GetStockSingleInfo(tempSubsidiary.WSCode,
                                                                                          tempSubsidiary.GoodsID,
                                                                                          tempSubsidiary.BatchNo);

                            unitPrice = tempWSStock == null ? 0 : tempWSStock.UnitPrice;
                            tempSubsidiary.UnitPrice = unitPrice;
                            break;

                        case (int)CE_SubsidiaryOperationType.车间调入:
                            tempCanWSCode.OperationType = (int)CE_SubsidiaryOperationType.车间调出;
                            tempSubsidiary.UnitPrice    = unitPrice;
                            break;

                        default:
                            break;
                        }

                        tempCanWSCode = GetCannibalizeWSCode(tempCanWSCode);

                        if (tempCanWSCode == null)
                        {
                            throw new Exception("调运车间信息错误");
                        }

                        Service_Manufacture_WorkShop.IWorkShopBasic serverBasic =
                            Service_Manufacture_WorkShop.ServerModuleFactory.GetServerModule <Service_Manufacture_WorkShop.IWorkShopBasic>();
                        WS_WorkShopCode tempCode = serverBasic.GetWorkShopCodeInfo(tempCanWSCode.WSCode);

                        if (tempCode == null)
                        {
                            throw new Exception("获取车间名称失败");
                        }

                        tempSubsidiary.Applicant = tempCode.WSName;

                        serverStock.OperationSubsidiary(ctx, tempSubsidiary);
                    }
                }

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