public ReceivingNoteItem[] getReceivingNoteDetail(GetReceivingNoteDetailRequest request)
    {
        DetachedCriteria criteria = DetachedCriteria.For<ReceiptDetail>();
        criteria.Add(Expression.Eq("ReceiptNo",request.receivingNo));
        IList<ReceiptDetail> reciptDetailList = TheCriteriaMgr.FindAll<ReceiptDetail>(criteria);
        List<ReceivingNoteItem> receivingNoteItemList = new List<ReceivingNoteItem>();
        foreach (ReceiptDetail receiptDetail in reciptDetailList)
        {
            ReceivingNoteItem item = new ReceivingNoteItem();

            //set unit of messure
            UOM uom = new UOM();
            uom.id = receiptDetail.OrderLocationTransaction.Item.Uom.Code;
            uom.abbreviation = receiptDetail.OrderLocationTransaction.Item.Uom.Name;
            uom.description = receiptDetail.OrderLocationTransaction.Item.Uom.Name;

            //set supplier Item
            Material suppItem = new Material();
            suppItem.id = receiptDetail.OrderLocationTransaction.OrderDetail.ReferenceItemCode;
            suppItem.no = receiptDetail.OrderLocationTransaction.OrderDetail.ReferenceItemCode;
            suppItem.description = receiptDetail.OrderLocationTransaction.OrderDetail.ReferenceItemCode;
            suppItem.quantityUOM = uom;

            //set Item
            Material material = new Material();
            material.id = receiptDetail.OrderLocationTransaction.Item.Code;
            material.no = receiptDetail.OrderLocationTransaction.Item.Code;
            material.name = receiptDetail.OrderLocationTransaction.Item.Description;
            material.description = receiptDetail.OrderLocationTransaction.Item.Description;
            material.quantityUOM = uom;

            item.material = material;


            item.receiveQuantity = Convert.ToDouble(receiptDetail.ReceivedQty);
            item.receiveQuantitySpecified = true;
            
            //不知道怎么取
            item.totalBillingQuantity = Convert.ToDouble(receiptDetail.ReceivedQty);
            item.totalBillingQuantitySpecified = true;
            item.billingStatus = string.Empty;

            item.unitCount = Convert.ToDouble(receiptDetail.OrderLocationTransaction.OrderDetail.UnitCount);
            item.unitCountSpecified = true;
        }
        return null;
    }
    public int getReceivingNoteDetailCount(GetReceivingNoteDetailRequest requset)
    {
        DetachedCriteria criteria = DetachedCriteria.For<ReceiptDetail>().SetProjection(Projections.ProjectionList()
             .Add(Projections.Count("ReceiptNo")));

        IList list = TheCriteriaMgr.FindAll(criteria);

        int count = 0;
        if (list != null && list.Count > 0)
        {
            if (list[0] is int)
            {
                count = int.Parse(list[0].ToString());
            }
        }

        return count;
    }