Ejemplo n.º 1
0
        public void AutoSupplementaryRequisition(string billNo, out List <string> listBillNo)
        {
            listBillNo = null;
            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            ctx.Connection.Open();
            ctx.Transaction = ctx.Connection.BeginTransaction();
            IFlowServer serverFlow = FlowControlService.ServerModuleFactory.GetServerModule <IFlowServer>();
            string      billStatus = serverFlow.GetNowBillStatus(billNo);

            if (billStatus == null)
            {
                throw new Exception("单据状态为空,请重新确认");
            }

            try
            {
                if (billStatus == CE_CommonBillStatus.单据完成.ToString())
                {
                    var varBill = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition
                                  where a.BillNo == billNo
                                  select a;

                    Business_WarehouseOutPut_WholeMachineRequisition lnqWholeBill = varBill.Single();

                    string error = "";

                    Hashtable hsTable = new Hashtable();
                    hsTable.Add("@BillNo", billNo);

                    DataTable tempTable = GlobalObject.DatabaseServer.QueryInfoPro("Business_WarehouseOutPut_WholeMachineRequisition_GetLastShortageInfo",
                                                                                   hsTable, out error);

                    List <Business_WarehouseOutPut_WholeMachineRequisitionDetail> listDetail = new List <Business_WarehouseOutPut_WholeMachineRequisitionDetail>();

                    if (tempTable != null && tempTable.Rows.Count > 0)
                    {
                        foreach (DataRow dr in tempTable.Rows)
                        {
                            Business_WarehouseOutPut_WholeMachineRequisitionDetail detail =
                                new Business_WarehouseOutPut_WholeMachineRequisitionDetail();

                            detail.BillNo      = billNo;
                            detail.Cardinality = 0;
                            detail.GoodsCount  = Convert.ToDecimal(dr["NeedCount"]);
                            detail.GoodsID     = Convert.ToInt32(dr["GoodsID"]);

                            listDetail.Add(detail);
                        }
                    }
                    else
                    {
                        throw new Exception("无物品可生成补领的【领料单】");
                    }

                    var varStorage = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID
                                     where a.BillNo == billNo
                                     select a;

                    List <Business_WarehouseOutPut_WholeMachineRequisition_StorageID> listStorage = varStorage.ToList();

                    CreateMaterialRequisition(ctx, lnqWholeBill, listDetail, listStorage, out listBillNo);
                    ctx.Transaction.Commit();
                }
            }
            catch (Exception ex)
            {
                ctx.Transaction.Rollback();
                throw new Exception(ex.Message);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 保存业务信息
        /// </summary>
        /// <param name="billInfo">业务总单信息</param>
        /// <param name="detailInfo">业务明细信息</param>
        public void SaveInfo(Business_WarehouseOutPut_WholeMachineRequisition billInfo,
                             List <View_Business_WarehouseOutPut_WholeMachineRequisitionDetail> detailInfo,
                             List <View_Business_WarehouseOutPut_WholeMachineRequisition_StorageID> listStorageID)
        {
            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

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

            try
            {
                var varData = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition
                              where a.BillNo == billInfo.BillNo
                              select a;

                if (varData.Count() == 1)
                {
                    Business_WarehouseOutPut_WholeMachineRequisition lnqBill = varData.Single();

                    lnqBill.MachineCount           = billInfo.MachineCount;
                    lnqBill.ProductType            = billInfo.ProductType;
                    lnqBill.Remark                 = billInfo.Remark;
                    lnqBill.BillTypeDetail         = billInfo.BillTypeDetail;
                    lnqBill.IncludeAfterSupplement = billInfo.IncludeAfterSupplement;
                }
                else if (varData.Count() == 0)
                {
                    ctx.Business_WarehouseOutPut_WholeMachineRequisition.InsertOnSubmit(billInfo);
                }
                else
                {
                    throw new Exception("单据数据不唯一");
                }

                #region 添加明细
                var varDetail = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisitionDetail
                                where a.BillNo == billInfo.BillNo
                                select a;

                ctx.Business_WarehouseOutPut_WholeMachineRequisitionDetail.DeleteAllOnSubmit(varDetail);
                ctx.SubmitChanges();

                foreach (View_Business_WarehouseOutPut_WholeMachineRequisitionDetail item in detailInfo)
                {
                    Business_WarehouseOutPut_WholeMachineRequisitionDetail lnqDetail =
                        new Business_WarehouseOutPut_WholeMachineRequisitionDetail();

                    lnqDetail.BillNo      = billInfo.BillNo;
                    lnqDetail.GoodsCount  = item.数量;
                    lnqDetail.GoodsID     = item.物品ID;
                    lnqDetail.Cardinality = item.基数;

                    ctx.Business_WarehouseOutPut_WholeMachineRequisitionDetail.InsertOnSubmit(lnqDetail);
                }

                ctx.SubmitChanges();
                #endregion

                #region 添加库房顺序
                var varStorageID = from a in ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID
                                   where a.BillNo == billInfo.BillNo
                                   select a;

                ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID.DeleteAllOnSubmit(varStorageID);
                ctx.SubmitChanges();

                foreach (View_Business_WarehouseOutPut_WholeMachineRequisition_StorageID item1 in listStorageID)
                {
                    Business_WarehouseOutPut_WholeMachineRequisition_StorageID lnqStorage =
                        new Business_WarehouseOutPut_WholeMachineRequisition_StorageID();

                    lnqStorage.BillNo    = billInfo.BillNo;
                    lnqStorage.StorageID = item1.库房代码;
                    lnqStorage.OrderID   = item1.库房顺序;

                    ctx.Business_WarehouseOutPut_WholeMachineRequisition_StorageID.InsertOnSubmit(lnqStorage);
                }

                ctx.SubmitChanges();
                #endregion

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