Overview
Comment:Merge with trunk + missing commit
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | templates
Files: files | file ages | folders
SHA3-256: 70ed2096acb773e93d78b9bbd1df20ab76a10c6b622ed4d88e8c335c74b743d3
User & Date: bohwaz on 2021-12-21 02:07:54
Other Links: branch diff | manifest | tags
Context
2021-12-21
02:12
Merge missing check-in: 8924951cb4 user: bohwaz tags: templates
02:07
Merge with trunk + missing commit check-in: 70ed2096ac user: bohwaz tags: templates
02:04
If key is empty, use a UUID check-in: bdf4d75003 user: bohwaz tags: templates
01:52
Fix documents size in backup page for SQLite storage check-in: 899f8a37cf user: bohwaz tags: trunk, stable
2021-11-20
23:45
Invert order of accounts for debt/credit so that it matches expense/revenue, thanks @Didier check-in: 790cbb4ad6 user: bohwaz tags: trunk, stable
Changes

Modified src/include/lib/Garradin/Entities/Accounting/Transaction.php from [ab4675f214] to [5a45a1bbbd].

763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778





779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794





795
796
797
798
799
800
801
				],
				'label' => self::TYPES_NAMES[self::TYPE_TRANSFER],
				'help' => 'Dépôt en banque, virement interne, etc.',
			],
			self::TYPE_DEBT => [
				'accounts' => [
					[
						'label' => 'Compte de tiers',
						'targets' => [Account::TYPE_THIRD_PARTY],
						'position' => 'credit',
					],
					[
						'label' => 'Type de dette (dépense)',
						'targets' => [Account::TYPE_EXPENSE],
						'position' => 'debit',
					],





				],
				'label' => self::TYPES_NAMES[self::TYPE_DEBT],
				'help' => 'Quand l\'association doit de l\'argent à un membre ou un fournisseur',
			],
			self::TYPE_CREDIT => [
				'accounts' => [
					[
						'label' => 'Compte de tiers',
						'targets' => [Account::TYPE_THIRD_PARTY],
						'position' => 'debit',
					],
					[
						'label' => 'Type de créance (recette)',
						'targets' => [Account::TYPE_REVENUE],
						'position' => 'credit',
					],





				],
				'label' => self::TYPES_NAMES[self::TYPE_CREDIT],
				'help' => 'Quand un membre ou un fournisseur doit de l\'argent à l\'association',
			],
			self::TYPE_ADVANCED => [
				'accounts' => [],
				'label' => self::TYPES_NAMES[self::TYPE_ADVANCED],







<
<
<
<
<




>
>
>
>
>







<
<
<
<
<




>
>
>
>
>







763
764
765
766
767
768
769





770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785





786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
				],
				'label' => self::TYPES_NAMES[self::TYPE_TRANSFER],
				'help' => 'Dépôt en banque, virement interne, etc.',
			],
			self::TYPE_DEBT => [
				'accounts' => [
					[





						'label' => 'Type de dette (dépense)',
						'targets' => [Account::TYPE_EXPENSE],
						'position' => 'debit',
					],
					[
						'label' => 'Compte de tiers',
						'targets' => [Account::TYPE_THIRD_PARTY],
						'position' => 'credit',
					],
				],
				'label' => self::TYPES_NAMES[self::TYPE_DEBT],
				'help' => 'Quand l\'association doit de l\'argent à un membre ou un fournisseur',
			],
			self::TYPE_CREDIT => [
				'accounts' => [
					[





						'label' => 'Type de créance (recette)',
						'targets' => [Account::TYPE_REVENUE],
						'position' => 'credit',
					],
					[
						'label' => 'Compte de tiers',
						'targets' => [Account::TYPE_THIRD_PARTY],
						'position' => 'debit',
					],
				],
				'label' => self::TYPES_NAMES[self::TYPE_CREDIT],
				'help' => 'Quand un membre ou un fournisseur doit de l\'argent à l\'association',
			],
			self::TYPE_ADVANCED => [
				'accounts' => [],
				'label' => self::TYPES_NAMES[self::TYPE_ADVANCED],
827
828
829
830
831
832
833

834

835
836
837
838
839
840
841
842
		$this->label = ($this->_related->type == Transaction::TYPE_DEBT ? 'Règlement de dette : ' : 'Règlement de créance : ') . $this->_related->label;
		$this->type = $this->_related->type;

		$out = (object) [
			'id' => $this->_related->id,
			'sum' => $this->_related->sum(),
			'id_account' => null,

			'form_account_name' => sprintf('account_%d_%d', $this->type, 1),

			'form_target_name' => sprintf('account_%d_%d', $this->type, 0),
		];

		foreach ($this->_related->getLines() as $line) {
			if (($this->_related->type == self::TYPE_DEBT && $line->debit)
				|| ($this->_related->type == self::TYPE_CREDIT && $line->credit)) {
				// Skip the type of debt/credit, just keep the thirdparty account
				continue;







>
|
>
|







827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
		$this->label = ($this->_related->type == Transaction::TYPE_DEBT ? 'Règlement de dette : ' : 'Règlement de créance : ') . $this->_related->label;
		$this->type = $this->_related->type;

		$out = (object) [
			'id' => $this->_related->id,
			'sum' => $this->_related->sum(),
			'id_account' => null,
			// input name for the input containing the account ID for the expense/revenue from the related transaction
			'form_account_name' => sprintf('account_%d_%d', $this->type, 0),
			// input name for the account selector, for selecting a bank/cash account
			'form_target_name' => sprintf('account_%d_%d', $this->type, 1),
		];

		foreach ($this->_related->getLines() as $line) {
			if (($this->_related->type == self::TYPE_DEBT && $line->debit)
				|| ($this->_related->type == self::TYPE_CREDIT && $line->credit)) {
				// Skip the type of debt/credit, just keep the thirdparty account
				continue;

Modified src/include/lib/Garradin/Membres/Session.php from [bd0ecb065e] to [3164774ac4].

250
251
252
253
254
255
256
257
258
259
260
261
262
263
264

		$id = base_convert($membre->id, 10, 36);
		$expire = base_convert($expire, 10, 36);

		$query = sprintf('%s.%s.%s', $id, $expire, $hash);

		$message = "Bonjour,\n\nVous avez oublié votre mot de passe ? Pas de panique !\n\n";
		$message.= "Il vous suffit de cliquer sur le lien ci-dessous pour recevoir un nouveau mot de passe.\n\n";
		$message.= ADMIN_URL . 'password.php?c=' . $query;
		$message.= "\n\nSi vous n'avez pas demandé à recevoir ce message, ignorez-le, votre mot de passe restera inchangé.";

		return Utils::sendEmail(Utils::EMAIL_CONTEXT_SYSTEM, $membre->email, 'Mot de passe perdu ?', $message, $membre->id, $membre->clef_pgp);
	}

	public function recoverPasswordCheck($code, &$membre = null)







|







250
251
252
253
254
255
256
257
258
259
260
261
262
263
264

		$id = base_convert($membre->id, 10, 36);
		$expire = base_convert($expire, 10, 36);

		$query = sprintf('%s.%s.%s', $id, $expire, $hash);

		$message = "Bonjour,\n\nVous avez oublié votre mot de passe ? Pas de panique !\n\n";
		$message.= "Il vous suffit de cliquer sur le lien ci-dessous pour modifier votre mot de passe.\n\n";
		$message.= ADMIN_URL . 'password.php?c=' . $query;
		$message.= "\n\nSi vous n'avez pas demandé à recevoir ce message, ignorez-le, votre mot de passe restera inchangé.";

		return Utils::sendEmail(Utils::EMAIL_CONTEXT_SYSTEM, $membre->email, 'Mot de passe perdu ?', $message, $membre->id, $membre->clef_pgp);
	}

	public function recoverPasswordCheck($code, &$membre = null)

Modified src/www/admin/config/backup/save.php from [977249d76d] to [9f5c67bf3b].

1
2


3
4
5
6
7
8
9
<?php
namespace Garradin;



require_once __DIR__ . '/../_inc.php';

$s = new Sauvegarde;

// Download database
$form->runIf('download', function () use ($s) {


>
>







1
2
3
4
5
6
7
8
9
10
11
<?php
namespace Garradin;

use Garradin\Files\Files;

require_once __DIR__ . '/../_inc.php';

$s = new Sauvegarde;

// Download database
$form->runIf('download', function () use ($s) {
36
37
38
39
40
41
42

43
44
45
46
47
48
	$config = Config::getInstance();
	$config->set('frequence_sauvegardes', $frequency);
	$config->set('nombre_sauvegardes', $number);
	$config->save();
}, 'backup_config', Utils::getSelfURI(['ok' => 'config']));

$db_size = $s->getDBSize();


$ok = qg('ok'); // return message

$tpl->assign(compact('ok', 'db_size'));

$tpl->display('admin/config/backup/save.tpl');







>



|


38
39
40
41
42
43
44
45
46
47
48
49
50
51
	$config = Config::getInstance();
	$config->set('frequence_sauvegardes', $frequency);
	$config->set('nombre_sauvegardes', $number);
	$config->save();
}, 'backup_config', Utils::getSelfURI(['ok' => 'config']));

$db_size = $s->getDBSize();
$files_size = (FILE_STORAGE_BACKEND == 'SQLite') ? Files::getUsedQuota() : null;

$ok = qg('ok'); // return message

$tpl->assign(compact('ok', 'db_size', 'files_size'));

$tpl->display('admin/config/backup/save.tpl');