Ejemplo n.º 1
0
        public void Test_CreateGAFRecordsForDocumentGroup_When_Document_Is_In_Base_Cury()
        {
            //Arrange
            var taxAgencyID = _vendorDataContext.TaxAgency.BAccountID;
            var taxPeriodID = _taxPeriodDataContext.TaxPeriod.TaxPeriodID;

            const decimal taxableAmt = 100;
            const decimal taxAmt     = 15;

            var paymentAggr = new APRegisterAggregateBuilder()
                              .CreateDocument(APDocType.Check,
                                              DocumentDataContext.RefNbr,
                                              DocumentDataContext.DocDate,
                                              CompanyDataContext.Company.BaseCuryID)
                              .DocumentWith(vendorID: _vendorDataContext.Vendor.BAccountID,
                                            vendorLocationID: _locationDataContext.VendorLocation.LocationID)
                              .AddTaxTran(new TaxTran()
            {
                TaxID          = TaxDataContext.WithholdingTax.TaxID,
                TaxableAmt     = taxableAmt,
                TaxAmt         = taxAmt,
                CuryTaxableAmt = 200,
                CuryTaxAmt     = 30,
                AdjdDocType    = APDocType.Invoice,
                AdjdRefNbr     = DocumentDataContext.RefNbr2
            })
                              .Build();

            var paymentAggregs = paymentAggr.SingleToArray();

            var adjdRegister = new APRegister
            {
                DocType = APDocType.Invoice,
                RefNbr  = DocumentDataContext.RefNbr2
            };

            SetupRepositoryMethods(paymentAggregs, adjdRegister.SingleToArray(), paymentAggr.Document.OrigModule, paymentAggr.Document.DocType, taxAgencyID, taxPeriodID);

            var documentGroup = new DocumentGroup <AP.APRegister>()
            {
                Module            = paymentAggr.Document.OrigModule,
                DocumentType      = paymentAggr.Document.DocType,
                DocumentsByRefNbr = paymentAggregs.ToDictionary(aggr => aggr.Document.RefNbr, aggr => aggr.Document)
            };

            //Action
            var purchaseRecord = ApPaymentGAFRecordsCreator.CreateGAFRecordsForDocumentGroup(documentGroup, taxAgencyID, taxPeriodID)
                                 .Single();

            //Assert
            Assert.Equal(taxableAmt, purchaseRecord.Amount);
            Assert.Equal(taxAmt, purchaseRecord.GSTAmount);
            Assert.Equal(ForeignCurrencyCodeForDocumentInBaseCury, purchaseRecord.ForeignCurrencyCode);
            Assert.Equal(0, purchaseRecord.ForeignCurrencyAmount);
            Assert.Equal(0, purchaseRecord.ForeignCurrencyAmountGST);
        }