public bool UpdateInfo(string fields, long id)
        {
            PackageOutboundInfo info = dal.GetInfo(id);

            if (info.Status != (int)WmmOrderStatusConstants.Created)
            {
                throw new Exception("MC:0x00000441");///	状态为10.已创建时可以进行修改或删除
            }
            return(dal.UpdateInfo(fields, id) > 0 ? true : false);
        }
        public bool LogicDeleteInfo(long id, string loginUser)
        {
            PackageOutboundInfo info = dal.GetInfo(id);

            if (info.Status != (int)WmmOrderStatusConstants.Created)
            {
                throw new Exception("MC:0x00000415");///状态为10.已创建时可以进行修改或删除
            }
            return(dal.LogicDelete(id, loginUser) > 0 ? true : false);
        }
        /// <summary>
        /// 完成
        /// </summary>
        /// <param name="rowsKeyValues"></param>
        /// <param name="loginUser"></param>
        /// <returns></returns>
        public bool CompleteInfos(List <string> rowsKeyValues, string loginUser)
        {
            if (dal.GetList("[ID] in (" + string.Join(",", rowsKeyValues.ToArray()) + ") and [STATUS] = " + (int)WmmOrderStatusConstants.Published, "[ID]").Count() != rowsKeyValues.Count())
            {
                throw new Exception("MC:0x00000446");///	状态为20.已发布时可以进行完成操作,更新状态为30.已完成
            }
            List <PackageOutboundInfo> packageBarcodes = dal.GetList("[ID] in (" + string.Join(",", rowsKeyValues.ToArray()) + ")", "[ID]");

            if (packageBarcodes == null || packageBarcodes.Count() == 0)
            {
                throw new Exception("MC:0x00000084");///数据错误
            }
            List <PackageOutboundDetailInfo> packageBarcodeDetails = new PackageOutboundDetailDAL().GetList("[ORDER_FID] in ('" + string.Join("','", packageBarcodes.Select(d => d.Fid.GetValueOrDefault()).ToArray()) + "')", string.Empty);
            StringBuilder stringBuilder = new StringBuilder();

            foreach (var item in packageBarcodeDetails)
            {
                PackageOutboundInfo info = packageBarcodes.Where(d => d.Fid == item.OrderFid).FirstOrDefault();
                stringBuilder.Append("insert into [LES].[TT_PCM_PACKAGE_TRAN_DETAIL]([FID],[TRAN_NO],[TRAN_TYPE],[BARCODE_DATA],[PART_NO],[PLANT],[ASSEMBLY_LINE],[SUPPLIER_NUM],[WM_NO],[ZONE_NO],[DLOC],[TARGET_WM],[TARGET_ZONE],[TARGET_DLOC],[PACKAGE_NO],[PACKAGE_CNAME],[PACKAGE_ENAME],[PACKAGE],[PACKAGE_QTY],[STATUS],[VALID_FLAG],[CREATE_USER],[CREATE_DATE])values(");
                int TranType = new int();
                if (string.IsNullOrEmpty(item.TWmNo) && string.IsNullOrEmpty(item.TZoneNo))
                {
                    TranType = (int)PackageTranTypeConstants.EmptyOutbound;
                }
                else
                {
                    TranType = (int)PackageTranTypeConstants.EmptyMovement;
                }

                stringBuilder.Append("newid(),N'" + info.OrderNo + "',N'" + TranType + "',NULL,NULL,N'" + info.Plant + "',NULL,N'" + item.SupplierNum + "',N'" + item.SWmNo + "',N'" + item.SZoneNo + "',N'" + item.SDloc + "',N'" + item.TWmNo + "',N'" + item.TZoneNo + "',N'" + item.TDloc + "',N'" + item.PackageModel + "',N'" + item.PackageCname + "',NULL,NULL,N'" + item.PackageQty + "'," + (int)PackageTranStateConstants.UNTREATED + ",1,N'" + loginUser + "',GETDATE()");
                stringBuilder.Append(")");
            }
            stringBuilder.Append("update [LES].[TT_PCM_PACKAGE_OUTBOUND] set [STATUS] = N'" + (int)WmmOrderStatusConstants.Completed + "', [MODIFY_DATE] = GETDATE(),[MODIFY_USER] = N'" + loginUser + "'  where [ID] in (" + string.Join(",", rowsKeyValues.ToArray()) + ")");
            using (TransactionScope trans = new TransactionScope())
            {
                if (!string.IsNullOrEmpty(stringBuilder.ToString()))
                {
                    CommonDAL.ExecuteNonQueryBySql(stringBuilder.ToString());
                }
                trans.Complete();
            }
            return(true);
        }
 public long InsertInfo(PackageOutboundInfo info)
 {
     info.OrderNo = new SeqDefineDAL().GetCurrentCode("POUT_ORDER_NO");
     return(dal.Add(info));
 }