AddTransportationBillDetail() public method

public AddTransportationBillDetail ( TransportationBillDetail transportationBillDetail ) : void
transportationBillDetail TransportationBillDetail
return void
        public TransportationBill VoidTransportationBill(string billNo, User user)
        {
            TransportationBill oldTransportationBill = this.CheckAndLoadTransportationBill(billNo, true);
            DateTime dateTimeNow = DateTime.Now;

            #region ���״̬
            if (oldTransportationBill.Status != BusinessConstants.CODE_MASTER_STATUS_VALUE_CLOSE)
            {
                throw new BusinessErrorException("TransportationBill.Error.StatusErrorWhenVoid", oldTransportationBill.Status, oldTransportationBill.BillNo);
            }
            #endregion

            #region ���������˵�
            TransportationBill voidTransportationBill = new TransportationBill();
            CloneHelper.CopyProperty(oldTransportationBill, voidTransportationBill, this.TransportationBillCloneField);

            voidTransportationBill.BillNo = this.numberControlMgr.GenerateNumber(BusinessConstants.CODE_PREFIX_TRANSPORTATIONBILL_RED);
            voidTransportationBill.Status = BusinessConstants.CODE_MASTER_STATUS_VALUE_CLOSE;
            if (oldTransportationBill.Discount.HasValue)
            {
                voidTransportationBill.Discount = 0 - oldTransportationBill.Discount.Value;
            }
            voidTransportationBill.ReferenceBillNo = oldTransportationBill.BillNo;
            voidTransportationBill.BillType = BusinessConstants.CODE_TRANSPORTATION_TRANSPORTATIONBILL_TYPE_VALUE_CANCEL;
            voidTransportationBill.CreateDate = dateTimeNow;
            voidTransportationBill.CreateUser = user;
            voidTransportationBill.LastModifyDate = dateTimeNow;
            voidTransportationBill.LastModifyUser = user;

            this.CreateTransportationBill(voidTransportationBill);
            #endregion

            #region ���������˵���ϸ
            foreach (TransportationBillDetail oldTransportationBillDetail in oldTransportationBill.TransportationBillDetails)
            {
                TransportationBillDetail voidTransportationBillDetail = new TransportationBillDetail();
                CloneHelper.CopyProperty(oldTransportationBillDetail, voidTransportationBillDetail, this.TransportationBillDetailCloneField);
                voidTransportationBillDetail.BilledQty = 0 - oldTransportationBillDetail.BilledQty;
                voidTransportationBillDetail.Discount = 0 - oldTransportationBillDetail.Discount;
                voidTransportationBillDetail.Amount = 0 - oldTransportationBillDetail.Amount;
                voidTransportationBillDetail.Bill = voidTransportationBill;

                this.transportationBillDetailMgr.CreateTransportationBillDetail(voidTransportationBillDetail);
                voidTransportationBill.AddTransportationBillDetail(voidTransportationBillDetail);

                //�������TransportationActBill
                this.transportationActBillMgr.ReverseUpdateTransportationActBill(null, voidTransportationBillDetail, user);
            }
            #endregion

            #region ��¼��Ʊ����
            /*20110422 Tag ������ǣ����ڲ���
            foreach (TransportationBillDetail transportationBillDetail in oldTransportationBill.TransportationBillDetails)
            {
                this.billTransactionMgr.RecordBillTransaction(transportationBillDetail, user, true);
            }
             */
            #endregion

            #region ����ԭ�˵�
            oldTransportationBill.ReferenceBillNo = voidTransportationBill.BillNo;
            oldTransportationBill.Status = BusinessConstants.CODE_MASTER_STATUS_VALUE_VOID;
            oldTransportationBill.LastModifyDate = dateTimeNow;
            oldTransportationBill.LastModifyUser = user;

            this.UpdateTransportationBill(oldTransportationBill);
            #endregion

            return voidTransportationBill;
        }