mirror of
https://github.com/chenasraf/cospend-nc.git
synced 2026-05-17 17:38:10 +00:00
rename columns in bill table
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<id>cospend</id>
|
||||
<name>Cospend</name>
|
||||
<summary> </summary><description> </description>
|
||||
<version>3.0.0</version>
|
||||
<version>3.0.1</version>
|
||||
<licence>agpl</licence>
|
||||
<author mail="julien-nc@posteo.net">Julien Veyssier</author>
|
||||
<namespace>Cospend</namespace>
|
||||
|
||||
@@ -68,7 +68,7 @@ class DeleteBills extends Base {
|
||||
foreach ($billsToDelete as $bill) {
|
||||
$ts = $bill->getTimestamp();
|
||||
$date = (new DateTime())->setTimestamp($ts)->format('c');
|
||||
$output->writeln('DELETE [' . $bill->getId() . '] ' . $bill->getWhat() . ' ; ' . $bill->getAmount() . ' ; ' . $date . ' ; ' . $bill->getPayerid());
|
||||
$output->writeln('DELETE [' . $bill->getId() . '] ' . $bill->getWhat() . ' ; ' . $bill->getAmount() . ' ; ' . $date . ' ; ' . $bill->getPayerId());
|
||||
}
|
||||
|
||||
if ($input->getOption('simulate')) {
|
||||
|
||||
101
lib/Db/Bill.php
101
lib/Db/Bill.php
@@ -20,66 +20,66 @@ use OCP\AppFramework\Db\Entity;
|
||||
* @method void setWhat(string $what)
|
||||
* @method string|null getComment()
|
||||
* @method void setComment(string|null $comment)
|
||||
* @method int getPayerid()
|
||||
* @method void setPayerid(int $payerid)
|
||||
* @method int getPayerId()
|
||||
* @method void setPayerId(int $payerId)
|
||||
* @method float getAmount()
|
||||
* @method void setAmount(float $amount)
|
||||
* @method int getTimestamp()
|
||||
* @method void setTimestamp(int $timestamp)
|
||||
* @method string getRepeat()
|
||||
* @method void setRepeat(string $repeat)
|
||||
* @method int getRepeatallactive()
|
||||
* @method void setRepeatallactive(int $repeatallactive)
|
||||
* @method string getRepeatuntil()
|
||||
* @method void setRepeatuntil(string $repeatuntil)
|
||||
* @method int getRepeatfreq()
|
||||
* @method void setRepeatfreq(int $repeatfreq)
|
||||
* @method string getProjectid()
|
||||
* @method void setProjectid(string $projectid)
|
||||
* @method int getCategoryid()
|
||||
* @method void setCategoryid(int $categoryid)
|
||||
* @method string getPaymentmode()
|
||||
* @method void setPaymentmode(string $paymentmode)
|
||||
* @method int getPaymentmodeid()
|
||||
* @method void setPaymentmodeid(int $paymentmodeid)
|
||||
* @method int getLastchanged()
|
||||
* @method void setLastchanged(int $lastchanged)
|
||||
* @method int getRepeatAllActive()
|
||||
* @method void setRepeatAllActive(int $repeatAllActive)
|
||||
* @method string|null getRepeatUntil()
|
||||
* @method void setRepeatUntil(string|null $repeatUntil)
|
||||
* @method int getRepeatFrequency()
|
||||
* @method void setRepeatFrequency(int $repeatFrequency)
|
||||
* @method string getProjectId()
|
||||
* @method void setProjectId(string $projectId)
|
||||
* @method int|null getCategoryId()
|
||||
* @method void setCategoryId(int|null $categoryId)
|
||||
* @method string|null getPaymentMode()
|
||||
* @method void setPaymentMode(string|null $paymentMode)
|
||||
* @method int|null getPaymentModeId()
|
||||
* @method void setPaymentModeId(int|null $paymentModeId)
|
||||
* @method int getLastChanged()
|
||||
* @method void setLastChanged(int $lastChanged)
|
||||
* @method int getDeleted()
|
||||
* @method void setDeleted(int $deleted) */
|
||||
class Bill extends Entity implements \JsonSerializable {
|
||||
|
||||
protected $what;
|
||||
protected $comment;
|
||||
protected $payerid;
|
||||
protected $amount;
|
||||
protected $timestamp;
|
||||
protected $repeat;
|
||||
protected $repeatallactive;
|
||||
protected $repeatuntil;
|
||||
protected $repeatfreq;
|
||||
protected $projectid;
|
||||
protected $categoryid;
|
||||
protected $paymentmode;
|
||||
protected $paymentmodeid;
|
||||
protected $lastchanged;
|
||||
protected $deleted;
|
||||
protected string $what = '';
|
||||
protected ?string $comment = null;
|
||||
protected int $payerId = 0;
|
||||
protected float $amount = 0;
|
||||
protected int $timestamp = 0;
|
||||
protected string $repeat = 'n';
|
||||
protected int $repeatAllActive = 0;
|
||||
protected ?string $repeatUntil = null;
|
||||
protected int $repeatFrequency = 1;
|
||||
protected string $projectId = '';
|
||||
protected ?int $categoryId = null;
|
||||
protected ?string $paymentMode = null;
|
||||
protected ?int $paymentModeId = 0;
|
||||
protected int $lastChanged = 0;
|
||||
protected int $deleted = 0;
|
||||
|
||||
public function __construct() {
|
||||
$this->addType('id', 'integer');
|
||||
$this->addType('what', 'string');
|
||||
$this->addType('comment', 'string');
|
||||
$this->addType('payerid', 'integer');
|
||||
$this->addType('payer_id', 'integer');
|
||||
$this->addType('timestamp', 'integer');
|
||||
$this->addType('amount', 'float');
|
||||
$this->addType('repeat', 'string');
|
||||
$this->addType('repeatallactive', 'integer');
|
||||
$this->addType('repeatuntil', 'string');
|
||||
$this->addType('repeatfreq', 'integer');
|
||||
$this->addType('projectid', 'string');
|
||||
$this->addType('categoryid', 'integer');
|
||||
$this->addType('paymentmode', 'string');
|
||||
$this->addType('paymentmodeid', 'integer');
|
||||
$this->addType('lastchanged', 'integer');
|
||||
$this->addType('repeat_all_active', 'integer');
|
||||
$this->addType('repeat_until', 'string');
|
||||
$this->addType('repeat_frequency', 'integer');
|
||||
$this->addType('project_id', 'string');
|
||||
$this->addType('category_id', 'integer');
|
||||
$this->addType('payment_mode', 'string');
|
||||
$this->addType('payment_mode_id', 'integer');
|
||||
$this->addType('last_changed', 'integer');
|
||||
$this->addType('deleted', 'integer');
|
||||
}
|
||||
|
||||
@@ -87,21 +87,22 @@ class Bill extends Entity implements \JsonSerializable {
|
||||
public function jsonSerialize() {
|
||||
return [
|
||||
'id' => $this->getId(),
|
||||
'projectid' => $this->getProjectid(),
|
||||
'projectid' => $this->getProjectId(),
|
||||
'what' => $this->getWhat(),
|
||||
'comment' => $this->getComment() ?? '',
|
||||
'payer_id' => $this->getPayerid(),
|
||||
'payer_id' => $this->getPayerId(),
|
||||
'timestamp' => $this->getTimestamp(),
|
||||
'date' => DateTime::createFromFormat('U', (string)$this->getTimestamp())->format('Y-m-d'),
|
||||
'amount' => $this->getAmount(),
|
||||
'repeat' => $this->getRepeat(),
|
||||
'repeatallactive' => $this->getRepeatallactive(),
|
||||
'repeatuntil' => $this->getRepeatuntil(),
|
||||
'repeatfreq' => $this->getRepeatfreq(),
|
||||
'categoryid' => $this->getCategoryid(),
|
||||
'paymentmode' => $this->getPaymentmode(),
|
||||
'paymentmodeid' => $this->getPaymentmodeid(),
|
||||
'repeatallactive' => $this->getRepeatAllActive(),
|
||||
'repeatuntil' => $this->getRepeatUntil(),
|
||||
'repeatfreq' => $this->getRepeatFrequency(),
|
||||
'categoryid' => $this->getCategoryId(),
|
||||
'paymentmode' => $this->getPaymentMode(),
|
||||
'paymentmodeid' => $this->getPaymentModeId(),
|
||||
'deleted' => $this->getDeleted(),
|
||||
'lastchanged' => $this->getLastChanged(),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,10 +25,9 @@ use OCP\IDBConnection;
|
||||
* @extends QBMapper<Bill>
|
||||
*/
|
||||
class BillMapper extends QBMapper {
|
||||
public const TABLE_NAME = 'cospend_bills';
|
||||
|
||||
public function __construct(IDBConnection $db) {
|
||||
parent::__construct($db, self::TABLE_NAME, Bill::class);
|
||||
parent::__construct($db, 'cospend_bills', Bill::class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -52,22 +51,6 @@ class BillMapper extends QBMapper {
|
||||
return $this->mapRowToEntity($row);
|
||||
}
|
||||
|
||||
public function findProjectId(int $id): string {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('projectid')
|
||||
->from($this->getTableName())
|
||||
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)));
|
||||
$result = $qb->executeQuery();
|
||||
$row = $result->fetch();
|
||||
$result->closeCursor();
|
||||
|
||||
if ($row === false) {
|
||||
throw new Exception('Bill ' . $id . ' not found');
|
||||
}
|
||||
|
||||
return $row['projectid'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete bill owers of given bill
|
||||
*
|
||||
@@ -93,7 +76,7 @@ class BillMapper extends QBMapper {
|
||||
$qb2->select('id')
|
||||
->from($this->getTableName())
|
||||
->where(
|
||||
$qb2->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb2->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
)
|
||||
->andWhere(
|
||||
$qb->expr()->eq('deleted', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT))
|
||||
@@ -109,7 +92,7 @@ class BillMapper extends QBMapper {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->delete($this->getTableName())
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
)
|
||||
->andWhere(
|
||||
$qb->expr()->eq('deleted', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT))
|
||||
@@ -132,7 +115,7 @@ class BillMapper extends QBMapper {
|
||||
$qb2->select('id')
|
||||
->from($this->getTableName())
|
||||
->where(
|
||||
$qb2->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb2->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
if ($what !== null) {
|
||||
$qb2->andWhere(
|
||||
@@ -156,7 +139,7 @@ class BillMapper extends QBMapper {
|
||||
// delete the bills
|
||||
$qb->delete($this->getTableName())
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
if ($what !== null) {
|
||||
$qb->andWhere(
|
||||
@@ -187,7 +170,7 @@ class BillMapper extends QBMapper {
|
||||
$qb->update($this->getTableName())
|
||||
->set('deleted', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT))
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
if ($what !== null) {
|
||||
$qb->andWhere(
|
||||
@@ -218,7 +201,7 @@ class BillMapper extends QBMapper {
|
||||
$qb->select('*')
|
||||
->from($this->getTableName())
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
if ($what !== null) {
|
||||
$qb->andWhere(
|
||||
@@ -247,7 +230,7 @@ class BillMapper extends QBMapper {
|
||||
$qb->expr()->eq('id', $qb->createNamedParameter($billId, IQueryBuilder::PARAM_INT))
|
||||
)
|
||||
->andWhere(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
|
||||
try {
|
||||
@@ -357,24 +340,24 @@ class BillMapper extends QBMapper {
|
||||
bool $reverse = false, ?int $payerId = null, ?int $deleted = 0
|
||||
): array {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('bi.id', 'what', 'comment', 'timestamp', 'amount', 'payerid', 'repeat',
|
||||
'paymentmode', 'paymentmodeid', 'categoryid', 'bi.lastchanged', 'repeatallactive', 'repeatuntil', 'repeatfreq',
|
||||
$qb->select('bi.id', 'what', 'comment', 'timestamp', 'amount', 'payer_id', 'repeat',
|
||||
'payment_mode', 'payment_mode_id', 'category_id', 'bi.last_changed', 'repeat_all_active', 'repeat_until', 'repeat_frequency',
|
||||
'deleted', 'memberid', 'm.name', 'm.weight', 'm.activated')
|
||||
->from('cospend_bill_owers', 'bo')
|
||||
->innerJoin('bo', 'cospend_bills', 'bi', $qb->expr()->eq('bo.billid', 'bi.id'))
|
||||
->innerJoin('bo', 'cospend_members', 'm', $qb->expr()->eq('bo.memberid', 'm.id'))
|
||||
->where(
|
||||
$qb->expr()->eq('bi.projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('bi.project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
// take bills that have changed after $lastchanged
|
||||
if ($lastchanged !== null) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->gt('bi.lastchanged', $qb->createNamedParameter($lastchanged, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->gt('bi.last_changed', $qb->createNamedParameter($lastchanged, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($payerId !== null) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('bi.payerid', $qb->createNamedParameter($payerId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('bi.payer_id', $qb->createNamedParameter($payerId, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($tsMin !== null) {
|
||||
@@ -394,22 +377,22 @@ class BillMapper extends QBMapper {
|
||||
}
|
||||
if ($paymentMode !== null && $paymentMode !== '' && $paymentMode !== 'n') {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('paymentmode', $qb->createNamedParameter($paymentMode, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('payment_mode', $qb->createNamedParameter($paymentMode, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
} elseif (!is_null($paymentModeId)) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('paymentmodeid', $qb->createNamedParameter($paymentModeId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('payment_mode_id', $qb->createNamedParameter($paymentModeId, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($category !== null) {
|
||||
if ($category === -100) {
|
||||
$or = $qb->expr()->orx();
|
||||
$or->add($qb->expr()->isNull('categoryid'));
|
||||
$or->add($qb->expr()->neq('categoryid', $qb->createNamedParameter(Application::CATEGORY_REIMBURSEMENT, IQueryBuilder::PARAM_INT)));
|
||||
$or->add($qb->expr()->isNull('category_id'));
|
||||
$or->add($qb->expr()->neq('category_id', $qb->createNamedParameter(Application::CATEGORY_REIMBURSEMENT, IQueryBuilder::PARAM_INT)));
|
||||
$qb->andWhere($or);
|
||||
} else {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('categoryid', $qb->createNamedParameter($category, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('category_id', $qb->createNamedParameter($category, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -502,17 +485,17 @@ class BillMapper extends QBMapper {
|
||||
$qb->select('*')
|
||||
->from($this->getTableName(), 'bi')
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
// take bills that have changed after $lastchanged
|
||||
if ($lastchanged !== null) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->gt('lastchanged', $qb->createNamedParameter($lastchanged, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->gt('last_changed', $qb->createNamedParameter($lastchanged, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($payerId !== null) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('payerid', $qb->createNamedParameter($payerId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('payer_id', $qb->createNamedParameter($payerId, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($tsMin !== null) {
|
||||
@@ -532,22 +515,22 @@ class BillMapper extends QBMapper {
|
||||
}
|
||||
if ($paymentMode !== null && $paymentMode !== '' && $paymentMode !== 'n') {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('paymentmode', $qb->createNamedParameter($paymentMode, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('payment_mode', $qb->createNamedParameter($paymentMode, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
} elseif (!is_null($paymentModeId)) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('paymentmodeid', $qb->createNamedParameter($paymentModeId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('payment_mode_id', $qb->createNamedParameter($paymentModeId, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($category !== null) {
|
||||
if ($category === -100) {
|
||||
$or = $qb->expr()->orx();
|
||||
$or->add($qb->expr()->isNull('categoryid'));
|
||||
$or->add($qb->expr()->neq('categoryid', $qb->createNamedParameter(Application::CATEGORY_REIMBURSEMENT, IQueryBuilder::PARAM_INT)));
|
||||
$or->add($qb->expr()->isNull('category_id'));
|
||||
$or->add($qb->expr()->neq('category_id', $qb->createNamedParameter(Application::CATEGORY_REIMBURSEMENT, IQueryBuilder::PARAM_INT)));
|
||||
$qb->andWhere($or);
|
||||
} else {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('categoryid', $qb->createNamedParameter($category, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('category_id', $qb->createNamedParameter($category, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -657,14 +640,14 @@ class BillMapper extends QBMapper {
|
||||
$dbTimestamp = (int) $row['timestamp'];
|
||||
$dbDate = DateTime::createFromFormat('U', $row['timestamp']);
|
||||
$dbRepeat = $row['repeat'];
|
||||
$dbPayerId = (int) $row['payerid'];
|
||||
$dbPaymentMode = $row['paymentmode'];
|
||||
$dbPaymentModeId = (int) $row['paymentmodeid'];
|
||||
$dbCategoryId = (int) $row['categoryid'];
|
||||
$dbLastchanged = (int) $row['lastchanged'];
|
||||
$dbRepeatAllActive = (int) $row['repeatallactive'];
|
||||
$dbRepeatUntil = $row['repeatuntil'];
|
||||
$dbRepeatFreq = (int) $row['repeatfreq'];
|
||||
$dbPayerId = (int) $row['payer_id'];
|
||||
$dbPaymentMode = $row['payment_mode'];
|
||||
$dbPaymentModeId = (int) $row['payment_mode_id'];
|
||||
$dbCategoryId = (int) $row['category_id'];
|
||||
$dbLastchanged = (int) $row['last_changed'];
|
||||
$dbRepeatAllActive = (int) $row['repeat_all_active'];
|
||||
$dbRepeatUntil = $row['repeat_until'];
|
||||
$dbRepeatFreq = (int) $row['repeat_frequency'];
|
||||
$dbDeleted = (int) $row['deleted'];
|
||||
return [
|
||||
'id' => $dbBillId,
|
||||
@@ -727,14 +710,14 @@ class BillMapper extends QBMapper {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select(
|
||||
'b.id', 'what', 'comment', 'amount', 'timestamp',
|
||||
'paymentmode', 'paymentmodeid', 'categoryid',
|
||||
'payment_mode', 'payment_mode_id', 'category_id',
|
||||
'pr.currency_name', 'me.name', 'me.userid'
|
||||
)
|
||||
->from($this->getTableName(), 'b')
|
||||
->innerJoin('b', 'cospend_projects', 'pr', $qb->expr()->eq('b.projectid', 'pr.id'))
|
||||
->innerJoin('b', 'cospend_members', 'me', $qb->expr()->eq('b.payerid', 'me.id'))
|
||||
->where(
|
||||
$qb->expr()->eq('b.projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('b.project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
if ($deleted !== null) {
|
||||
$qb->andWhere(
|
||||
@@ -753,9 +736,9 @@ class BillMapper extends QBMapper {
|
||||
$dbWhat = $row['what'];
|
||||
$dbTimestamp = (int) $row['timestamp'];
|
||||
$dbComment = $row['comment'];
|
||||
$dbPaymentMode = $row['paymentmode'];
|
||||
$dbPaymentModeId = (int) $row['paymentmodeid'];
|
||||
$dbCategoryId = (int) $row['categoryid'];
|
||||
$dbPaymentMode = $row['payment_mode'];
|
||||
$dbPaymentModeId = (int) $row['payment_mode_id'];
|
||||
$dbCategoryId = (int) $row['category_id'];
|
||||
$dbProjectCurrencyName = $row['currency_name'];
|
||||
$dbPayerName = $row['name'];
|
||||
$dbPayerUserId = $row['userid'];
|
||||
@@ -795,7 +778,7 @@ class BillMapper extends QBMapper {
|
||||
$qb->selectAlias($qb->createFunction('COUNT(*)'), 'count_bills')
|
||||
->from($this->getTableName())
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
if ($deleted !== null) {
|
||||
$qb->andWhere(
|
||||
@@ -804,17 +787,17 @@ class BillMapper extends QBMapper {
|
||||
}
|
||||
if ($payerId !== null) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('payerid', $qb->createNamedParameter($payerId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('payer_id', $qb->createNamedParameter($payerId, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($categoryId !== null) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('categoryid', $qb->createNamedParameter($categoryId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('category_id', $qb->createNamedParameter($categoryId, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
if ($paymentModeId !== null) {
|
||||
$qb->andWhere(
|
||||
$qb->expr()->eq('paymentmodeid', $qb->createNamedParameter($paymentModeId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('payment_mode_id', $qb->createNamedParameter($paymentModeId, IQueryBuilder::PARAM_INT))
|
||||
);
|
||||
}
|
||||
$req = $qb->executeQuery();
|
||||
@@ -836,9 +819,9 @@ class BillMapper extends QBMapper {
|
||||
$billIds = [];
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('id')
|
||||
->from(self::TABLE_NAME, 'b')
|
||||
->from($this->getTableName(), 'b')
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
if ($deleted !== null) {
|
||||
$qb->andWhere(
|
||||
@@ -864,12 +847,12 @@ class BillMapper extends QBMapper {
|
||||
public function removePaymentModeInProject(string $projectId, int $pmId): int {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->update($this->getTableName());
|
||||
$qb->set('paymentmodeid', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))
|
||||
$qb->set('payment_mode_id', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))
|
||||
->where(
|
||||
$qb->expr()->eq('paymentmodeid', $qb->createNamedParameter($pmId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('payment_mode_id', $qb->createNamedParameter($pmId, IQueryBuilder::PARAM_INT))
|
||||
)
|
||||
->andWhere(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
return $qb->executeStatement();
|
||||
}
|
||||
@@ -883,12 +866,12 @@ class BillMapper extends QBMapper {
|
||||
public function removeCategoryInProject(string $projectId, int $categoryId): int {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->update($this->getTableName());
|
||||
$qb->set('categoryid', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))
|
||||
$qb->set('category_id', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))
|
||||
->where(
|
||||
$qb->expr()->eq('categoryid', $qb->createNamedParameter($categoryId, IQueryBuilder::PARAM_INT))
|
||||
$qb->expr()->eq('category_id', $qb->createNamedParameter($categoryId, IQueryBuilder::PARAM_INT))
|
||||
)
|
||||
->andWhere(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
return $qb->executeStatement();
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ use OCP\AppFramework\Db\Entity;
|
||||
**/
|
||||
class BillOwer extends Entity implements \JsonSerializable {
|
||||
|
||||
protected int $billid;
|
||||
protected int $memberid;
|
||||
protected int $billid = 0;
|
||||
protected int $memberid = 0;
|
||||
|
||||
public function __construct() {
|
||||
$this->addType('id', 'integer');
|
||||
|
||||
@@ -152,7 +152,7 @@ class MemberMapper extends QBMapper {
|
||||
->innerJoin('bo', 'cospend_bills', 'bi', $qb->expr()->eq('bo.billid', 'bi.id'))
|
||||
->innerJoin('bo', self::TABLE_NAME, 'm', $qb->expr()->eq('bo.memberid', 'm.id'));
|
||||
$or = $qb->expr()->orx();
|
||||
$or->add($qb->expr()->eq('bi.payerid', $qb->createNamedParameter($memberId, IQueryBuilder::PARAM_INT)));
|
||||
$or->add($qb->expr()->eq('bi.payer_id', $qb->createNamedParameter($memberId, IQueryBuilder::PARAM_INT)));
|
||||
$or->add($qb->expr()->eq('bo.memberid', $qb->createNamedParameter($memberId, IQueryBuilder::PARAM_INT)));
|
||||
$qb->where($or);
|
||||
if ($deleted !== null) {
|
||||
|
||||
@@ -70,7 +70,7 @@ class ProjectMapper extends QBMapper {
|
||||
|
||||
try {
|
||||
return $this->findEntity($qb);
|
||||
} catch (DoesNotExistException | MultipleObjectsReturnedException |\OCP\DB\Exception $e) {
|
||||
} catch (DoesNotExistException | MultipleObjectsReturnedException |Exception $e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -135,7 +135,7 @@ class ProjectMapper extends QBMapper {
|
||||
/**
|
||||
* @param string $userId
|
||||
* @return Project[]
|
||||
* @throws \OCP\DB\Exception
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getProjects(string $userId): array {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
@@ -152,14 +152,14 @@ class ProjectMapper extends QBMapper {
|
||||
/**
|
||||
* @param string $projectId
|
||||
* @return void
|
||||
* @throws \OCP\DB\Exception
|
||||
* @throws Exception
|
||||
*/
|
||||
public function deleteBillOwersOfProject(string $projectId): void {
|
||||
// old style
|
||||
/*
|
||||
$query = 'DELETE FROM `*PREFIX*cospend_bill_owers`
|
||||
WHERE `billid` IN (
|
||||
SELECT `id` FROM `*PREFIX*cospend_bills` WHERE `projectid` = ?
|
||||
SELECT `id` FROM `*PREFIX*cospend_bills` WHERE `project_id` = ?
|
||||
)';
|
||||
$this->db->executeQuery($query, [$projectId]);
|
||||
*/
|
||||
@@ -171,7 +171,7 @@ class ProjectMapper extends QBMapper {
|
||||
$qb2->select('id')
|
||||
->from('cospend_bills')
|
||||
->where(
|
||||
$qb2->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb2->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
|
||||
$qb->delete('cospend_bill_owers')
|
||||
@@ -187,12 +187,12 @@ class ProjectMapper extends QBMapper {
|
||||
* @param string $projectId
|
||||
* @param int $timestamp
|
||||
* @return void
|
||||
* @throws \OCP\DB\Exception
|
||||
* @throws Exception
|
||||
*/
|
||||
public function updateProjectLastChanged(string $projectId, int $timestamp): void {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->update($this->getTableName());
|
||||
$qb->set('lastchanged', $qb->createNamedParameter($timestamp, IQueryBuilder::PARAM_INT));
|
||||
$qb->set('last_changed', $qb->createNamedParameter($timestamp, IQueryBuilder::PARAM_INT));
|
||||
$qb->where(
|
||||
$qb->expr()->eq('id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
|
||||
128
lib/Migration/Version030000Date20240911230019.php
Normal file
128
lib/Migration/Version030000Date20240911230019.php
Normal file
@@ -0,0 +1,128 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace OCA\Cospend\Migration;
|
||||
|
||||
use Closure;
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
use OCP\DB\Types;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\SimpleMigrationStep;
|
||||
|
||||
class Version030000Date20240911230019 extends SimpleMigrationStep {
|
||||
|
||||
public function __construct(
|
||||
private IDBConnection $connection,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @return null|ISchemaWrapper
|
||||
*/
|
||||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
|
||||
/** @var ISchemaWrapper $schema */
|
||||
$schema = $schemaClosure();
|
||||
|
||||
$schemaChanged = false;
|
||||
|
||||
if ($schema->hasTable('cospend_bills')) {
|
||||
$table = $schema->getTable('cospend_bills');
|
||||
// rename columns
|
||||
if (!$table->hasColumn('project_id')) {
|
||||
$table->addColumn('project_id', Types::STRING, [
|
||||
'notnull' => true,
|
||||
'length' => 64,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('payer_id')) {
|
||||
$table->addColumn('payer_id', Types::BIGINT, [
|
||||
'notnull' => true,
|
||||
'unsigned' => true,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('category_id')) {
|
||||
$table->addColumn('category_id', Types::BIGINT, [
|
||||
'notnull' => false,
|
||||
'default' => null,
|
||||
'unsigned' => true,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('payment_mode_id')) {
|
||||
$table->addColumn('payment_mode_id', Types::BIGINT, [
|
||||
'notnull' => false,
|
||||
'default' => 0,
|
||||
'unsigned' => true,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('payment_mode')) {
|
||||
$table->addColumn('payment_mode', Types::STRING, [
|
||||
'notnull' => false,
|
||||
'length' => 1,
|
||||
'default' => null,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('last_changed')) {
|
||||
$table->addColumn('last_changed', Types::BIGINT, [
|
||||
'notnull' => true,
|
||||
'unsigned' => true,
|
||||
'default' => 0,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('repeat_all_active')) {
|
||||
$table->addColumn('repeat_all_active', Types::INTEGER, [
|
||||
'notnull' => true,
|
||||
'default' => 0,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('repeat_until')) {
|
||||
$table->addColumn('repeat_until', Types::INTEGER, [
|
||||
'notnull' => false,
|
||||
'default' => null,
|
||||
'length' => 20,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if (!$table->hasColumn('repeat_frequency')) {
|
||||
$table->addColumn('repeat_frequency', Types::INTEGER, [
|
||||
'notnull' => true,
|
||||
'default' => 1,
|
||||
]);
|
||||
$schemaChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $schemaChanged ? $schema : null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
*/
|
||||
public function postSchemaChange(IOutput $output, Closure $schemaClosure, array $options) {
|
||||
$qb = $this->connection->getQueryBuilder();
|
||||
$qb->update('cospend_bills');
|
||||
$qb->set('project_id', 'projectid');
|
||||
$qb->set('payer_id', 'payerid');
|
||||
$qb->set('category_id', 'categoryid');
|
||||
$qb->set('payment_mode_id', 'paymentmodeid');
|
||||
$qb->set('payment_mode', 'paymentmode');
|
||||
$qb->set('last_changed', 'lastchanged');
|
||||
$qb->set('repeat_all_active', 'repeatallactive');
|
||||
$qb->set('repeat_until', 'repeatuntil');
|
||||
$qb->set('repeat_frequency', 'repeatfreq');
|
||||
$qb->executeStatement();
|
||||
}
|
||||
}
|
||||
74
lib/Migration/Version030000Date20240911230034.php
Normal file
74
lib/Migration/Version030000Date20240911230034.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace OCA\Cospend\Migration;
|
||||
|
||||
use Closure;
|
||||
use OCP\DB\ISchemaWrapper;
|
||||
use OCP\DB\Types;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\Migration\IOutput;
|
||||
use OCP\Migration\SimpleMigrationStep;
|
||||
|
||||
class Version030000Date20240911230034 extends SimpleMigrationStep {
|
||||
|
||||
public function __construct() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param IOutput $output
|
||||
* @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
|
||||
* @param array $options
|
||||
* @return null|ISchemaWrapper
|
||||
*/
|
||||
public function changeSchema(IOutput $output, Closure $schemaClosure, array $options): ?ISchemaWrapper {
|
||||
/** @var ISchemaWrapper $schema */
|
||||
$schema = $schemaClosure();
|
||||
|
||||
$schemaChanged = false;
|
||||
|
||||
if ($schema->hasTable('cospend_bills')) {
|
||||
$table = $schema->getTable('cospend_bills');
|
||||
// drop columns that have been renamed
|
||||
if ($table->hasColumn('project_id') && $table->hasColumn('projectid')) {
|
||||
$table->dropColumn('projectid');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('payer_id') && $table->hasColumn('payerid')) {
|
||||
$table->dropColumn('payerid');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('category_id') && $table->hasColumn('categoryid')) {
|
||||
$table->dropColumn('categoryid');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('payment_mode_id') && $table->hasColumn('paymentmodeid')) {
|
||||
$table->dropColumn('paymentmodeid');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('payment_mode') && $table->hasColumn('paymentmode')) {
|
||||
$table->dropColumn('paymentmode');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('repeat_all_active') && $table->hasColumn('repeatallactive')) {
|
||||
$table->dropColumn('repeatallactive');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('repeat_until') && $table->hasColumn('repeatuntil')) {
|
||||
$table->dropColumn('repeatuntil');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('repeat_frequency') && $table->hasColumn('repeatfreq')) {
|
||||
$table->dropColumn('repeatfreq');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
if ($table->hasColumn('last_changed') && $table->hasColumn('lastchanged')) {
|
||||
$table->dropColumn('lastchanged');
|
||||
$schemaChanged = true;
|
||||
}
|
||||
}
|
||||
|
||||
return $schemaChanged ? $schema : null;
|
||||
}
|
||||
}
|
||||
@@ -293,7 +293,7 @@ class LocalProjectService implements IProjectService {
|
||||
$this->projectMapper->deleteBillOwersOfProject($projectId);
|
||||
|
||||
$associatedTableNames = [
|
||||
'cospend_bills',
|
||||
// 'cospend_bills',
|
||||
'cospend_members',
|
||||
'cospend_shares',
|
||||
'cospend_currencies',
|
||||
@@ -310,6 +310,11 @@ class LocalProjectService implements IProjectService {
|
||||
$qb->executeStatement();
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
}
|
||||
$qb->delete('cospend_bills')
|
||||
->where(
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
);
|
||||
$qb->executeStatement();
|
||||
|
||||
$this->projectMapper->delete($dbProjectToDelete);
|
||||
}
|
||||
@@ -396,7 +401,7 @@ class LocalProjectService implements IProjectService {
|
||||
$qb->selectAlias($qb->createFunction('SUM(amount)'), 'sum_amount')
|
||||
->from('cospend_bills')
|
||||
->where(
|
||||
$qb->expr()->eq('projectid', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
$qb->expr()->eq('project_id', $qb->createNamedParameter($projectId, IQueryBuilder::PARAM_STR))
|
||||
)
|
||||
->andWhere(
|
||||
$qb->expr()->eq('deleted', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT))
|
||||
@@ -975,22 +980,22 @@ class LocalProjectService implements IProjectService {
|
||||
$ts = (new DateTime())->getTimestamp();
|
||||
|
||||
$newBill = new Bill();
|
||||
$newBill->setProjectid($projectId);
|
||||
$newBill->setProjectId($projectId);
|
||||
$newBill->setWhat($what);
|
||||
if ($comment !== null) {
|
||||
$newBill->setComment($comment);
|
||||
}
|
||||
$newBill->setTimestamp($dateTs);
|
||||
$newBill->setAmount($amount);
|
||||
$newBill->setPayerid($payer);
|
||||
$newBill->setPayerId($payer);
|
||||
$newBill->setRepeat($repeat);
|
||||
$newBill->setRepeatallactive($repeatAllActive);
|
||||
$newBill->setRepeatuntil($repeatUntil);
|
||||
$newBill->setRepeatfreq($repeatFreq ?? 1);
|
||||
$newBill->setCategoryid($categoryId ?? 0);
|
||||
$newBill->setPaymentmode($paymentMode ?? 'n');
|
||||
$newBill->setPaymentmodeid($paymentModeId ?? 0);
|
||||
$newBill->setLastchanged($ts);
|
||||
$newBill->setRepeatAllActive($repeatAllActive);
|
||||
$newBill->setRepeatUntil($repeatUntil);
|
||||
$newBill->setRepeatFrequency($repeatFreq ?? 1);
|
||||
$newBill->setCategoryId($categoryId ?? 0);
|
||||
$newBill->setPaymentMode($paymentMode ?? 'n');
|
||||
$newBill->setPaymentModeId($paymentModeId ?? 0);
|
||||
$newBill->setLastChanged($ts);
|
||||
$newBill->setDeleted($deleted);
|
||||
|
||||
$createdBill = $this->billMapper->insert($newBill);
|
||||
@@ -1796,11 +1801,11 @@ class LocalProjectService implements IProjectService {
|
||||
$jsonElementsById = [];
|
||||
|
||||
if ($getCategories) {
|
||||
$billTableField = 'categoryid';
|
||||
$billTableField = 'category_id';
|
||||
$dbTable = 'cospend_categories';
|
||||
$alias = 'cat';
|
||||
} else {
|
||||
$billTableField = 'paymentmodeid';
|
||||
$billTableField = 'payment_mode_id';
|
||||
$dbTable = 'cospend_paymentmodes';
|
||||
$alias = 'pm';
|
||||
}
|
||||
@@ -2178,7 +2183,7 @@ class LocalProjectService implements IProjectService {
|
||||
// UPDATE
|
||||
// set last modification timestamp
|
||||
$ts = (new DateTime())->getTimestamp();
|
||||
$dbBill->setLastchanged($ts);
|
||||
$dbBill->setLastChanged($ts);
|
||||
if ($what !== null) {
|
||||
$dbBill->setWhat($what);
|
||||
}
|
||||
@@ -2194,13 +2199,13 @@ class LocalProjectService implements IProjectService {
|
||||
}
|
||||
}
|
||||
if ($repeatFreq !== null) {
|
||||
$dbBill->setRepeatfreq($repeatFreq);
|
||||
$dbBill->setRepeatFrequency($repeatFreq);
|
||||
}
|
||||
if ($repeatUntil !== null) {
|
||||
$dbBill->setRepeatuntil($repeatUntil === '' ? null : $repeatUntil);
|
||||
$dbBill->setRepeatUntil($repeatUntil === '' ? null : $repeatUntil);
|
||||
}
|
||||
if ($repeatAllActive !== null) {
|
||||
$dbBill->setRepeatallactive($repeatAllActive);
|
||||
$dbBill->setRepeatAllActive($repeatAllActive);
|
||||
}
|
||||
// payment mode
|
||||
if ($paymentModeId !== null) {
|
||||
@@ -2212,8 +2217,8 @@ class LocalProjectService implements IProjectService {
|
||||
) {
|
||||
$paymentMode = $this->paymentModes[$paymentModeId]['old_id'];
|
||||
}
|
||||
$dbBill->setPaymentmodeid($paymentModeId);
|
||||
$dbBill->setPaymentmode($paymentMode);
|
||||
$dbBill->setPaymentModeId($paymentModeId);
|
||||
$dbBill->setPaymentMode($paymentMode);
|
||||
} elseif ($paymentMode !== null) {
|
||||
// is there a pm with this old id? if yes, use it for new id
|
||||
$paymentModeId = 0;
|
||||
@@ -2223,11 +2228,11 @@ class LocalProjectService implements IProjectService {
|
||||
break;
|
||||
}
|
||||
}
|
||||
$dbBill->setPaymentmodeid($paymentModeId);
|
||||
$dbBill->setPaymentmode($paymentMode);
|
||||
$dbBill->setPaymentModeId($paymentModeId);
|
||||
$dbBill->setPaymentMode($paymentMode);
|
||||
}
|
||||
if ($categoryId !== null) {
|
||||
$dbBill->setCategoryid($categoryId);
|
||||
$dbBill->setCategoryId($categoryId);
|
||||
}
|
||||
// priority to timestamp (moneybuster might send both for a moment)
|
||||
if ($timestamp !== null) {
|
||||
@@ -2243,7 +2248,7 @@ class LocalProjectService implements IProjectService {
|
||||
$dbBill->setAmount($amount);
|
||||
}
|
||||
if ($payer !== null) {
|
||||
$dbBill->setPayerid($payer);
|
||||
$dbBill->setPayerId($payer);
|
||||
}
|
||||
|
||||
$this->billMapper->update($dbBill);
|
||||
@@ -2357,8 +2362,8 @@ class LocalProjectService implements IProjectService {
|
||||
// get bills with repetition flag
|
||||
$bills = $this->billMapper->getBillsToRepeat($billId);
|
||||
foreach ($bills as $bill) {
|
||||
if (!isset($timezoneByProjectId[$bill->getProjectid()])) {
|
||||
$timezoneByProjectId[$bill->getProjectid()] = $this->getProjectTimeZone($bill->getProjectid());
|
||||
if (!isset($timezoneByProjectId[$bill->getProjectId()])) {
|
||||
$timezoneByProjectId[$bill->getProjectId()] = $this->getProjectTimeZone($bill->getProjectId());
|
||||
}
|
||||
}
|
||||
$jsonBills = array_map(function (Bill $bill) {
|
||||
|
||||
Reference in New Issue
Block a user