Skip to content

Commit

Permalink
Add new codes.
Browse files Browse the repository at this point in the history
  • Loading branch information
alvachien committed Apr 3, 2022
1 parent 29b87d0 commit 3796f2f
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 2 deletions.
2 changes: 0 additions & 2 deletions src/hihapi/Controllers/Finance/FinanceAccountsController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -262,9 +262,7 @@ public async Task<IActionResult> Delete([FromODataUri] int key)
{
usrName = HIHAPIUtility.GetUserID(this);
if (String.IsNullOrEmpty(usrName))
{
throw new UnauthorizedAccessException();
}
}
catch
{
Expand Down
6 changes: 6 additions & 0 deletions src/hihapi/Models/Finance/FinanceDocument.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,12 @@ public override bool IsDeleteAllowed(hihDataContext context)
if (!base.IsDeleteAllowed(context))
return false;

// Doc has been used in Tempalte DP
var doccnt = (from acnt in context.FinanceAccountExtraDP
where acnt.RefenceDocumentID == this.ID
select acnt).Count();
if (doccnt > 0) return false;

// Doc has been used in Template Asset
if (UsedInAsset(context))
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,129 @@ public async Task TestCase_AdvancePayment(FinanceDocumentsControllerTestData_DPD
await context.DisposeAsync();
}

[Theory]
[InlineData(DataSetupUtility.UserA, DataSetupUtility.Home1ID)]
public async Task TestCase_AdvancePaymentAndDelete(string user, int hid)
{
var context = fixture.GetCurrentDataContext();

this.fixture.InitHomeTestData(hid, context);

FinanceDocumentsController control = new FinanceDocumentsController(context);

var userclaim = DataSetupUtility.GetClaimForUser(user);
control.ControllerContext = new ControllerContext()
{
HttpContext = new DefaultHttpContext() { User = userclaim }
};

// Create Normal case
FinanceADPDocumentCreateContext createContext = new FinanceADPDocumentCreateContext();
var acntDP = new FinanceAccountExtraDP()
{
StartDate = new DateTime(2022, 1, 1),
EndDate = new DateTime(2023, 1, 1),
RepeatType = RepeatFrequency.Month,
Comment = "TestADP_WithDelete",
};
var dpdates = CommonUtility.WorkoutRepeatedDatesWithAmount(new RepeatDatesWithAmountCalculationInput()
{
StartDate = acntDP.StartDate,
EndDate = acntDP.EndDate,
RepeatType = acntDP.RepeatType,
TotalAmount = 12000,
Desp = acntDP.Comment,
});
int tdocid = 1;
dpdates.ForEach(d =>
{
acntDP.DPTmpDocs.Add(new FinanceTmpDPDocument()
{
DocumentID = tdocid++,
HomeID = hid,
TranAmount = d.TranAmount,
TransactionDate = d.TranDate,
ControlCenterID = DataSetupUtility.Home1ControlCenter1ID,
Description = d.Desp,
});
});
createContext.AccountInfo = new FinanceAccount()
{
HomeID = hid,
Name = acntDP.Comment,
CategoryID = FinanceAccountCategory.AccountCategory_AdvancePayment,
Status = (byte)FinanceAccountStatus.Normal,
Owner = user,
ExtraDP = acntDP,
};
createContext.DocumentInfo = new FinanceDocument()
{
HomeID = hid,
TranCurr = DataSetupUtility.Home1BaseCurrency,
TranDate = acntDP.StartDate,
Desp = acntDP.Comment,
DocType = FinanceDocumentType.DocType_AdvancePayment,
Items = new List<FinanceDocumentItem>
{
new FinanceDocumentItem()
{
ItemID = 1,
AccountID = DataSetupUtility.Home1CashAccount1ID,
ControlCenterID = DataSetupUtility.Home1ControlCenter1ID,
TranType = FinanceTransactionType.TranType_AdvancePaymentOut,
TranAmount = 12000,
Desp = acntDP.Comment,
}
},
};
var postresult = await control.PostDPDocument(createContext);
var postokresult = Assert.IsType<OkObjectResult>(postresult);
var createdoc = Assert.IsAssignableFrom<FinanceDocument>(postokresult.Value as FinanceDocument);

listCreatedDocs.Add(createdoc.ID);
ValidateDocument(createContext.DocumentInfo, createdoc, true, true);
var createdAcntID = -1;
foreach (var item in createdoc.Items)
{
if (item.AccountID != DataSetupUtility.Home1CashAccount1ID)
{
createdAcntID = item.AccountID;
listCreatedAccount.Add(createdAcntID);
}
}
Assert.True(createdAcntID != -1);

// Verify the template docs.
FinanceTmpDPDocumentsController tmpcontroller = new FinanceTmpDPDocumentsController(context);
tmpcontroller.ControllerContext = new ControllerContext()
{
HttpContext = new DefaultHttpContext() { User = userclaim }
};

// Perform the get template docs.
var getresult = tmpcontroller.Get();
Assert.NotNull(getresult);
var gettmpokresult = Assert.IsType<OkObjectResult>(getresult);
var tmpdocs = Assert.IsAssignableFrom<IQueryable<FinanceTmpDPDocument>>(gettmpokresult.Value);
Assert.Equal(dpdates.Count, tmpdocs.Count());

// Perform the post
foreach (var tmpdoc in tmpdocs)
{
var tmppostcontex = new FinanceTmpDPDocumentPostContext();
tmppostcontex.HomeID = hid;
tmppostcontex.AccountID = createdAcntID;
tmppostcontex.DocumentID = tmpdoc.DocumentID;
var tmppostresult = await tmpcontroller.PostDocument(tmppostcontex);
Assert.NotNull(tmppostresult);
var tmppostokrst = Assert.IsType<OkObjectResult>(tmppostresult);
var tmppostdoc = Assert.IsType<FinanceDocument>(tmppostokrst.Value);
listCreatedDocs.Add(tmppostdoc.ID);
}

await context.DisposeAsync();
}

public static TheoryData<FinanceDocumentsControllerTestData_LoanDoc> BorrowFromDocs =>
new TheoryData<FinanceDocumentsControllerTestData_LoanDoc>
{
Expand Down

0 comments on commit 3796f2f

Please sign in to comment.