Overview
Comment: | Make simple tracking use transaction type, not account type |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | dev |
Files: | files | file ages | folders |
SHA1: |
7427b32fb95251bdb5289212d1fbd17e |
User & Date: | bohwaz on 2020-11-30 15:04:07 |
Other Links: | branch diff | manifest | tags |
Context
2020-11-30
| ||
15:05 | Remove payoff transaction type, it wasn't very useful and confusing check-in: 1b33573836 user: bohwaz tags: dev, 1.0.0-rc3 | |
15:04 | Make simple tracking use transaction type, not account type check-in: 7427b32fb9 user: bohwaz tags: dev | |
13:02 | Fix custom user import check-in: 315a772f09 user: bohwaz tags: dev | |
Changes
Modified src/include/lib/Garradin/Accounting/Accounts.php from [6a2f112844] to [104aa964ca].
1 2 3 4 5 6 7 8 9 10 | <?php namespace Garradin\Accounting; use Garradin\Entities\Accounting\Account; use Garradin\Entities\Accounting\Line; use Garradin\Entities\Accounting\Transaction; use Garradin\Entities\Accounting\Year; use Garradin\CSV; use Garradin\DB; | < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php namespace Garradin\Accounting; use Garradin\Entities\Accounting\Account; use Garradin\Entities\Accounting\Line; use Garradin\Entities\Accounting\Transaction; use Garradin\Entities\Accounting\Year; use Garradin\CSV; use Garradin\DB; use Garradin\Utils; use KD2\DB\EntityManager; class Accounts { protected $chart_id; protected $em; |
︙ | ︙ | |||
194 195 196 197 198 199 200 | } catch (\Exception $e) { $db->rollback(); throw $e; } } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 193 194 195 196 197 198 199 200 201 202 203 204 205 206 | } catch (\Exception $e) { $db->rollback(); throw $e; } } public function countByType(int $type) { return DB::getInstance()->count(Account::TABLE, 'id_chart = ? AND type = ?', $this->chart_id, $type); } public function getSingleAccountForType(int $type) { |
︙ | ︙ |
Modified src/include/lib/Garradin/Accounting/Transactions.php from [642fbda057] to [04872dade5].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php namespace Garradin\Accounting; use Garradin\Entities\Accounting\Account; use Garradin\Entities\Accounting\Line; use Garradin\Entities\Accounting\Transaction; use Garradin\Entities\Accounting\Year; use KD2\DB\EntityManager; use Garradin\CSV; use Garradin\CSV_Custom; use Garradin\DB; use Garradin\Utils; use Garradin\UserException; class Transactions { const EXPECTED_CSV_COLUMNS_SELF = ['id', 'type', 'status', 'label', 'date', 'notes', 'reference', 'line_id', 'account', 'credit', 'debit', 'line_reference', 'line_label', 'reconciled']; | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php namespace Garradin\Accounting; use Garradin\Entities\Accounting\Account; use Garradin\Entities\Accounting\Line; use Garradin\Entities\Accounting\Transaction; use Garradin\Entities\Accounting\Year; use KD2\DB\EntityManager; use Garradin\CSV; use Garradin\CSV_Custom; use Garradin\DB; use Garradin\DynamicList; use Garradin\Utils; use Garradin\UserException; class Transactions { const EXPECTED_CSV_COLUMNS_SELF = ['id', 'type', 'status', 'label', 'date', 'notes', 'reference', 'line_id', 'account', 'credit', 'debit', 'line_reference', 'line_label', 'reconciled']; |
︙ | ︙ | |||
363 364 365 366 367 368 369 | $lines = array_map('intval', $lines); return $db->exec(sprintf('UPDATE acc_transactions_lines SET id_analytical = %s WHERE id IN (%s);', (int)$id_analytical ?: 'NULL', implode(', ', $lines))); } | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 | $lines = array_map('intval', $lines); return $db->exec(sprintf('UPDATE acc_transactions_lines SET id_analytical = %s WHERE id IN (%s);', (int)$id_analytical ?: 'NULL', implode(', ', $lines))); } static public function listByType(int $year_id, int $type) { $reverse = 1; $columns = Account::LIST_COLUMNS; unset($columns['line_label'], $columns['sum'], $columns['debit'], $columns['credit']); $columns['line_reference']['label'] = 'Réf. paiement'; $columns['change']['select'] = sprintf($columns['change']['select'], $reverse); $columns['change']['label'] = 'Montant'; $tables = 'acc_transactions_lines l INNER JOIN acc_transactions t ON t.id = l.id_transaction INNER JOIN acc_accounts a ON a.id = l.id_account LEFT JOIN acc_accounts b ON b.id = l.id_analytical'; $conditions = sprintf('t.type = %s AND t.id_year = %d', $type, $year_id); $sum = 0; $list = new DynamicList($columns, $tables, $conditions); $list->orderBy('date', true); $list->setCount('COUNT(*)'); $list->groupBy('t.id'); $list->setModifier(function (&$row) use (&$sum, $reverse) { $row->date = \DateTime::createFromFormat('!Y-m-d', $row->date); }); $list->setExportCallback(function (&$row) { $row->change = Utils::money_format($row->change, '.', '', false); }); return $list; } } |
Modified src/templates/acc/accounts/simple.tpl from [293354b1e4] to [57003f8670].
1 2 3 4 5 6 7 8 9 10 11 | {include file="admin/_head.tpl" title="Suivi : %s"|args:$types[$type] current="acc/simple" js=1} {if empty($year)} {include file="acc/_year_select.tpl"} {else} <nav class="acc-year"> <h4>Exercice sélectionné :</h4> <h3>{$year.label} — {$year.start_date|date_short} au {$year.end_date|date_short}</h3> </nav> {/if} | < < < < | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | {include file="admin/_head.tpl" title="Suivi : %s"|args:$types[$type] current="acc/simple" js=1} {if empty($year)} {include file="acc/_year_select.tpl"} {else} <nav class="acc-year"> <h4>Exercice sélectionné :</h4> <h3>{$year.label} — {$year.start_date|date_short} au {$year.end_date|date_short}</h3> </nav> {/if} <nav class="tabs"> <aside> {if $session->canAccess('compta', Membres::DROIT_ADMIN)} {linkbutton href="?type=%d&export=csv"|args:$type label="Export CSV" shape="export"} {linkbutton href="?type=%d&export=ods"|args:$type label="Export tableur" shape="export"} {/if} </aside> |
︙ | ︙ | |||
39 40 41 42 43 44 45 | {foreach from=$list->iterate() item="line"} <tr> {if $can_edit} <td class="check"> {input type="checkbox" name="check[%s]"|args:$line.id_line value=$line.id default=0} </td> {/if} | < < | | | | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | {foreach from=$list->iterate() item="line"} <tr> {if $can_edit} <td class="check"> {input type="checkbox" name="check[%s]"|args:$line.id_line value=$line.id default=0} </td> {/if} <td class="num"><a href="{$admin_url}acc/transactions/details.php?id={$line.id}">#{$line.id}</a></td> <td>{$line.date|date_short}</td> <td class="money">{$line.change|abs|raw|html_money}</td> <td>{$line.reference}</td> <th>{$line.label}</th> <td>{$line.line_reference}</td> <td class="num">{if $line.id_analytical}<a href="{$admin_url}acc/reports/statement.php?analytical={$line.id_analytical}">{$line.code_analytical}</a>{/if}</td> <td class="actions"> {if $line.type == Entities\Accounting\Transaction::TYPE_DEBT && ($line.status & Entities\Accounting\Transaction::STATUS_WAITING)} {linkbutton shape="check" label="Régler cette dette" href="!acc/transactions/new.php?payoff_for=%d"|args:$line.id} {elseif $line.type == Entities\Accounting\Transaction::TYPE_CREDIT && ($line.status & Entities\Accounting\Transaction::STATUS_WAITING)} {linkbutton shape="export" label="Régler cette créance" href="!acc/transactions/new.php?payoff_for=%d"|args:$line.id} {/if} {linkbutton href="!acc/transactions/details.php?id=%d"|args:$line.id label="Détails" shape="search"} </td> </tr> {/foreach} |
︙ | ︙ |
Modified src/www/admin/acc/accounts/simple.php from [7dbefa9e3c] to [50a686e3e9].
1 2 3 | <?php namespace Garradin; | | | | | | | < | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php namespace Garradin; use Garradin\Accounting\Transactions; use Garradin\Entities\Accounting\Transaction; require_once __DIR__ . '/../_inc.php'; if (!CURRENT_YEAR_ID) { Utils::redirect(ADMIN_URL . 'acc/years/?msg=OPEN'); } $year = $current_year; $types = [ Transaction::TYPE_REVENUE => 'Recettes', Transaction::TYPE_EXPENSE => 'Dépenses', Transaction::TYPE_TRANSFER => 'Virements', Transaction::TYPE_DEBT => 'Dettes', Transaction::TYPE_CREDIT => 'Créances', Transaction::TYPE_ADVANCED => 'Saisies avancées', ]; $type = qg('type') ?? Transaction::TYPE_REVENUE; if (!array_key_exists($type, $types)) { $type = key($types); } $list = Transactions::listByType(CURRENT_YEAR_ID, $type); $list->setTitle(sprintf('Suivi - %s', $types[$type])); $list->loadFromQueryString(); $can_edit = $session->canAccess('compta', Membres::DROIT_ADMIN) && !$year->closed; $tpl->assign(compact('type', 'list', 'types', 'can_edit', 'year')); $tpl->display('acc/accounts/simple.tpl'); |