This commit is contained in:
2023-07-25 22:10:03 +03:00
parent ce2ae68c9f
commit 5ecefe5756
30 changed files with 2321 additions and 123 deletions
+39 -4
View File
@@ -332,7 +332,7 @@
return result.Set(categories);
}
public Exec<Motion, MotionAddResult> MotionAdd(
public Exec<List<Motion>, MotionAddResult> MotionAdd(
Guid userId,
Guid accountId,
MotionAddUpdate motion
@@ -343,7 +343,7 @@
if (motion.Item == null)
throw new ArgumentNullException(nameof(motion.Item));
var result = new Exec<Motion, MotionAddResult>(MotionAddResult.success);
var result = new Exec<List<Motion>, MotionAddResult>(MotionAddResult.success);
var account = _accountRepository.Get(userId, accountId);
if (account == null)
@@ -364,20 +364,55 @@
DateTime = motion.Date,
AccountId = account.Id,
ItemId = itemExec.Result!.Id,
Description = motion.Description,
AmountPlus = motion.Plus,
AmountMinus = motion.Minus,
Description = motion.Description,
};
if (!_motionRepository.Add(motionDb))
{
return result.Set(MotionAddResult.failure);
}
result.Set(new List<Motion>());
result.Result!.Add(motionDb);
if (motion.AccountId.IsPresent() && motion.AmountBalancing != 0)
{
var accountBalancing = _accountRepository.Get(userId, motion.AccountId!.AsGuid());
if (accountBalancing != null)
{
var balancingName = $"+{account.Name}";
var itemBalancingExec = _itemService.GetOrCreate(userId, balancingName);
var plus = motion.AmountBalancing;
var minus = 0m;
if (motion.Plus != 0)
{
plus = 0;
minus = motion.AmountBalancing;
}
var motionBalancing = new Motion
{
Id = Guid.NewGuid(),
CreatedOn = DateTime.UtcNow,
DateTime = motion.Date,
AccountId = accountBalancing.Id,
ItemId = itemBalancingExec.Result!.Id,
Description = motion.Description,
AmountPlus = plus,
AmountMinus = minus,
};
if (_motionRepository.Add(motionBalancing))
{
result.Result!.Add(motionBalancing);
}
}
}
motionDb.Item = itemExec.Result!;
return result.Set(motionDb);
return result;
}
public Exec<Motion, MotionUpdateResult> MotionUpdate(