/// create new recurring gift info public static ARecurringGiftBatchRow CreateNewRecurringGiftInfo(Int64 APartnerKey, ref GiftBatchTDS AGiftDS) { ALedgerAccess.LoadAll(AGiftDS, DBAccess.GDBAccessObj.Transaction); AGiftDS = TGiftTransactionWebConnector.CreateARecurringGiftBatch(AGiftDS.ALedger[0].LedgerNumber); // Create a new RecurringGiftBatch ARecurringGiftBatchRow Batch = AGiftDS.ARecurringGiftBatch[0]; Batch.BankAccountCode = "6000"; Batch.CurrencyCode = "EUR"; // Create a new RecurringGift record ARecurringGiftRow RecurringGift = AGiftDS.ARecurringGift.NewRowTyped(); RecurringGift.LedgerNumber = Batch.LedgerNumber; RecurringGift.BatchNumber = Batch.BatchNumber; RecurringGift.GiftTransactionNumber = 1; RecurringGift.DonorKey = APartnerKey; AGiftDS.ARecurringGift.Rows.Add(RecurringGift); // Create a new RecurringGiftDetail record ARecurringGiftDetailRow RecurringGiftDetail = AGiftDS.ARecurringGiftDetail.NewRowTyped(); RecurringGiftDetail.LedgerNumber = Batch.LedgerNumber; RecurringGiftDetail.BatchNumber = Batch.BatchNumber; RecurringGiftDetail.GiftTransactionNumber = 1; RecurringGiftDetail.MotivationGroupCode = "GIFT"; RecurringGiftDetail.MotivationDetailCode = "SUPPORT"; RecurringGiftDetail.RecipientKey = APartnerKey; RecurringGiftDetail.RecipientLedgerNumber = APartnerKey; AGiftDS.ARecurringGiftDetail.Rows.Add(RecurringGiftDetail); return(Batch); }
/// create new recurring gift info public static ARecurringGiftBatchRow CreateNewRecurringGiftInfo(Int64 APartnerKey, ref GiftBatchTDS AGiftDS, TDataBase ADataBase = null) { TDataBase db = DBAccess.Connect("CreateNewRecurringGiftInfo", ADataBase); bool NewTransaction; TDBTransaction Transaction = db.GetNewOrExistingTransaction(IsolationLevel.ReadCommitted, out NewTransaction); ALedgerAccess.LoadAll(AGiftDS, Transaction); AGiftDS = TGiftTransactionWebConnector.CreateARecurringGiftBatch(AGiftDS.ALedger[0].LedgerNumber, db); if (NewTransaction) { Transaction.Rollback(); } // Create a new RecurringGiftBatch ARecurringGiftBatchRow Batch = AGiftDS.ARecurringGiftBatch[0]; Batch.BankAccountCode = "6000"; Batch.CurrencyCode = "EUR"; // Create a new RecurringGift record ARecurringGiftRow RecurringGift = AGiftDS.ARecurringGift.NewRowTyped(); RecurringGift.LedgerNumber = Batch.LedgerNumber; RecurringGift.BatchNumber = Batch.BatchNumber; RecurringGift.GiftTransactionNumber = 1; RecurringGift.DonorKey = APartnerKey; AGiftDS.ARecurringGift.Rows.Add(RecurringGift); // Create a new RecurringGiftDetail record ARecurringGiftDetailRow RecurringGiftDetail = AGiftDS.ARecurringGiftDetail.NewRowTyped(); RecurringGiftDetail.LedgerNumber = Batch.LedgerNumber; RecurringGiftDetail.BatchNumber = Batch.BatchNumber; RecurringGiftDetail.GiftTransactionNumber = 1; RecurringGiftDetail.MotivationGroupCode = "GIFT"; RecurringGiftDetail.MotivationDetailCode = "SUPPORT"; RecurringGiftDetail.RecipientKey = 43000000; RecurringGiftDetail.RecipientLedgerNumber = APartnerKey; RecurringGiftDetail.GiftAmount = 10; AGiftDS.ARecurringGiftDetail.Rows.Add(RecurringGiftDetail); return(Batch); }
/// <summary> /// Creates data needed to test posting recalculations /// </summary> /// <param name="ARecipientKey">Partner Key of the recipient.</param> /// <param name="ARealRecipientLedgerNumber">What the RecipientLedgerNumber should be.</param> /// <param name="AFalseRecipientLedgerNumber">What the RecipientLedgerNumber is.</param> /// <param name="ARecurringGiftBatchNumber">Batch Number.</param> private void TestRecurringBatchSubmitRecalculations_Arrange(out long ARecipientKey, out long ARealRecipientLedgerNumber, out long AFalseRecipientLedgerNumber, out Int32 ARecurringGiftBatchNumber) { TVerificationResultCollection VerificationResult; TSubmitChangesResult Result; DataSet ResponseDS; TPartnerEditUIConnector PartnerEditUIUIConnector = new TPartnerEditUIConnector(); GiftBatchTDS MainDS = new GiftBatchTDS(); PartnerEditTDS PartnerEditDS = new PartnerEditTDS(); // this is a family partner in the test database const Int64 DONORKEY = 43005001; // create a new recipient TCreateTestPartnerData.CreateNewFamilyPartner(PartnerEditDS); ARecipientKey = PartnerEditDS.PFamily[0].PartnerKey; // create two new Unit partners TCreateTestPartnerData.CreateNewUnitPartner(PartnerEditDS); TCreateTestPartnerData.CreateNewUnitPartner(PartnerEditDS); AFalseRecipientLedgerNumber = PartnerEditDS.PPartner[0].PartnerKey; ARealRecipientLedgerNumber = PartnerEditDS.PPartner[1].PartnerKey; // create a Gift Destination for family PPartnerGiftDestinationRow GiftDestination = PartnerEditDS.PPartnerGiftDestination.NewRowTyped(true); GiftDestination.Key = TPartnerDataReaderWebConnector.GetNewKeyForPartnerGiftDestination(); GiftDestination.PartnerKey = ARecipientKey; GiftDestination.DateEffective = new DateTime(2011, 01, 01); GiftDestination.FieldKey = ARealRecipientLedgerNumber; PartnerEditDS.PPartnerGiftDestination.Rows.Add(GiftDestination); // Guard Assertions Assert.That(PartnerEditDS.PFamily[0], Is.Not.Null); Assert.That(PartnerEditDS.PPartner[0], Is.Not.Null); Assert.That(PartnerEditDS.PPartner[1], Is.Not.Null); // Submit the new PartnerEditTDS records to the database ResponseDS = new PartnerEditTDS(); Result = PartnerEditUIUIConnector.SubmitChanges(ref PartnerEditDS, ref ResponseDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SubmitChanges for PartnerEditDS failed: " + VerificationResult.BuildVerificationResultString()); // link unit to Cost Centre DataTable PartnerCostCentreTbl = TGLSetupWebConnector.LoadCostCentrePartnerLinks(FLedgerNumber, 0); DataRow PartnerCostCentreRow = PartnerCostCentreTbl.NewRow(); PartnerCostCentreRow["PartnerKey"] = ARealRecipientLedgerNumber; PartnerCostCentreRow["IsLinked"] = 4300; PartnerCostCentreTbl.Rows.Add(PartnerCostCentreRow); TGLSetupWebConnector.SaveCostCentrePartnerLinks(FLedgerNumber, PartnerCostCentreTbl); // create a new Recurring Gift Batch MainDS = TGiftTransactionWebConnector.CreateARecurringGiftBatch(FLedgerNumber); ARecurringGiftBatchNumber = MainDS.ARecurringGiftBatch[0].BatchNumber; // create a new recurring gifts ARecurringGiftRow RecurringGiftRow = MainDS.ARecurringGift.NewRowTyped(true); RecurringGiftRow.LedgerNumber = FLedgerNumber; RecurringGiftRow.BatchNumber = ARecurringGiftBatchNumber; RecurringGiftRow.DonorKey = DONORKEY; RecurringGiftRow.GiftTransactionNumber = 1; RecurringGiftRow.LastDetailNumber = 1; MainDS.ARecurringGift.Rows.Add(RecurringGiftRow); // create a new RecurringGiftDetail ARecurringGiftDetailRow RecurringGiftDetail = MainDS.ARecurringGiftDetail.NewRowTyped(true); RecurringGiftDetail.LedgerNumber = FLedgerNumber; RecurringGiftDetail.BatchNumber = ARecurringGiftBatchNumber; RecurringGiftDetail.GiftTransactionNumber = 1; RecurringGiftDetail.DetailNumber = 1; RecurringGiftDetail.RecipientLedgerNumber = AFalseRecipientLedgerNumber; RecurringGiftDetail.GiftAmount = 100; RecurringGiftDetail.MotivationGroupCode = "GIFT"; RecurringGiftDetail.MotivationDetailCode = "SUPPORT"; RecurringGiftDetail.RecipientKey = ARecipientKey; MainDS.ARecurringGiftDetail.Rows.Add(RecurringGiftDetail); // Submit the new GiftBatchTDS records to the database Result = TGiftTransactionWebConnector.SaveGiftBatchTDS(ref MainDS, out VerificationResult); // Guard Assertion Assert.That(Result, Is.EqualTo( TSubmitChangesResult.scrOK), "SaveGiftBatchTDS failed: " + VerificationResult.BuildVerificationResultString()); }
public void TestDeleteSavedGiftBatch() { Int64 donorKey = 43005001; Int64 recipKey = 43000000; int giftTransNumber = 1; int giftTranDetailNumber = 1; decimal giftAmount = 100.50M; string motivationGroupCode = "GIFT"; string motivationDetailCode = "SUPPORT"; //Create the recurring gift batch FMainDS = TGiftTransactionWebConnector.CreateARecurringGiftBatch(FLedgerNumber); FRecurringBatchNumberToDelete = FMainDS.ARecurringGiftBatch[0].BatchNumber; //Create the recurring gift batch's single gift header ARecurringGiftRow newRow = FMainDS.ARecurringGift.NewRowTyped(true); newRow.LedgerNumber = FLedgerNumber; newRow.BatchNumber = FRecurringBatchNumberToDelete; newRow.DonorKey = donorKey; newRow.GiftTransactionNumber = giftTransNumber; newRow.LastDetailNumber = giftTransNumber; FMainDS.ARecurringGift.Rows.Add(newRow); //Create the recurring gift batch's single gift detail ARecurringGiftDetailRow newDetailRow = FMainDS.ARecurringGiftDetail.NewRowTyped(true); newDetailRow = FMainDS.ARecurringGiftDetail.NewRowTyped(true); newDetailRow.LedgerNumber = FLedgerNumber; newDetailRow.BatchNumber = FRecurringBatchNumberToDelete; newDetailRow.GiftTransactionNumber = giftTransNumber; newDetailRow.DetailNumber = giftTranDetailNumber; newDetailRow.RecipientKey = recipKey; newDetailRow.GiftAmount = giftAmount; newDetailRow.MotivationGroupCode = motivationGroupCode; newDetailRow.MotivationDetailCode = motivationDetailCode; FMainDS.ARecurringGiftDetail.Rows.Add(newDetailRow); //Save changes GiftBatchTDSAccess.SubmitChanges(FMainDS); FMainDS.AcceptChanges(); // Delete the associated recurring gift detail rows. DataView viewGiftDetail = new DataView(FMainDS.ARecurringGiftDetail); viewGiftDetail.RowFilter = string.Empty; foreach (DataRowView row in viewGiftDetail) { row.Delete(); } Assert.AreNotEqual(0, FMainDS.ARecurringGiftDetail.Rows.Count, "after deletion the row should still exist"); // Delete the associated recurring gift rows. DataView viewGift = new DataView(FMainDS.ARecurringGift); viewGift.RowFilter = string.Empty; foreach (DataRowView row in viewGift) { row.Delete(); } Assert.AreNotEqual(0, FMainDS.ARecurringGiftBatch.Rows.Count, "after deletion the batch row should still exist"); // Delete the recurring batch row. FMainDS.ARecurringGiftBatch.Rows[0].Delete(); Assert.AreNotEqual(0, FMainDS.ARecurringGiftBatch.Rows.Count, "after deletion the batch row should still exist"); //Save changes GiftBatchTDSAccess.SubmitChanges(FMainDS); }