mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-01-30 19:52:20 +01:00
Ability to configure the prefix of the payment-schedules' files
This commit is contained in:
parent
71775378e8
commit
854db568bf
@ -16,6 +16,7 @@
|
|||||||
- Validate on server side the reservation of slots restricted to subscribers
|
- Validate on server side the reservation of slots restricted to subscribers
|
||||||
− Unified and documented upgrade exit codes
|
− Unified and documented upgrade exit codes
|
||||||
- During setup, ask for the name of the external network and create it, if it does not already exists
|
- During setup, ask for the name of the external network and create it, if it does not already exists
|
||||||
|
- Ability to configure the prefix of the payment-schedules' files
|
||||||
- Fix a bug: cannot select the recurrence end date on Safari or Internet Explorer
|
- Fix a bug: cannot select the recurrence end date on Safari or Internet Explorer
|
||||||
- Fix a bug: build status badge is not working
|
- Fix a bug: build status badge is not working
|
||||||
- Fix a bug: unable to set date formats during installation
|
- Fix a bug: unable to set date formats during installation
|
||||||
|
@ -61,6 +61,14 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
|
|||||||
templateUrl: '/admin/invoices/settings/editPrefix.html'
|
templateUrl: '/admin/invoices/settings/editPrefix.html'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Payment Schedule PDF filename settings (and example)
|
||||||
|
$scope.scheduleFile = {
|
||||||
|
prefix: settings.payment_schedule_prefix,
|
||||||
|
nextId: 11,
|
||||||
|
date: moment().format('DDMMYYYY'),
|
||||||
|
templateUrl: '/admin/invoices/settings/editSchedulePrefix.html'
|
||||||
|
};
|
||||||
|
|
||||||
// Invoices parameters
|
// Invoices parameters
|
||||||
$scope.invoice = {
|
$scope.invoice = {
|
||||||
logo: null,
|
logo: null,
|
||||||
@ -529,6 +537,38 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open a modal dialog allowing the user to edit the prefix of the payment schedules file names
|
||||||
|
*/
|
||||||
|
$scope.openEditSchedulePrefix = function () {
|
||||||
|
const modalInstance = $uibModal.open({
|
||||||
|
animation: true,
|
||||||
|
templateUrl: $scope.scheduleFile.templateUrl,
|
||||||
|
size: 'lg',
|
||||||
|
resolve: {
|
||||||
|
model () { return $scope.scheduleFile.prefix; }
|
||||||
|
},
|
||||||
|
controller: ['$scope', '$uibModalInstance', 'model', function ($scope, $uibModalInstance, model) {
|
||||||
|
$scope.model = model;
|
||||||
|
$scope.ok = function () { $uibModalInstance.close($scope.model); };
|
||||||
|
$scope.cancel = function () { $uibModalInstance.dismiss('cancel'); };
|
||||||
|
}]
|
||||||
|
});
|
||||||
|
|
||||||
|
modalInstance.result.then(function (model) {
|
||||||
|
Setting.update({ name: 'payment_schedule_prefix' }, { value: model }, function (data) {
|
||||||
|
$scope.scheduleFile.prefix = model;
|
||||||
|
return growl.success(_t('app.admin.invoices.prefix_successfully_saved'));
|
||||||
|
}
|
||||||
|
, function (error) {
|
||||||
|
if (error.status === 304) return;
|
||||||
|
|
||||||
|
growl.error(_t('app.admin.invoices.an_error_occurred_while_saving_the_prefix'));
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Callback to save the value of the text zone when editing is done
|
* Callback to save the value of the text zone when editing is done
|
||||||
*/
|
*/
|
||||||
|
@ -874,7 +874,7 @@ angular.module('application.router', ['ui.router'])
|
|||||||
"'accounting_VAT_code', 'accounting_VAT_label', 'accounting_subscription_code', 'accounting_subscription_label', " +
|
"'accounting_VAT_code', 'accounting_VAT_label', 'accounting_subscription_code', 'accounting_subscription_label', " +
|
||||||
"'accounting_Machine_code', 'accounting_Machine_label', 'accounting_Training_code', 'accounting_Training_label', " +
|
"'accounting_Machine_code', 'accounting_Machine_label', 'accounting_Training_code', 'accounting_Training_label', " +
|
||||||
"'accounting_Event_code', 'accounting_Event_label', 'accounting_Space_code', 'accounting_Space_label', " +
|
"'accounting_Event_code', 'accounting_Event_label', 'accounting_Space_code', 'accounting_Space_label', " +
|
||||||
"'payment_gateway', 'accounting_Error_code', 'accounting_Error_label', " +
|
"'payment_gateway', 'accounting_Error_code', 'accounting_Error_label', 'payment_schedule_prefix', " +
|
||||||
"'feature_tour_display', 'online_payment_module', 'stripe_public_key', 'stripe_currency', 'invoice_prefix']"
|
"'feature_tour_display', 'online_payment_module', 'stripe_public_key', 'stripe_currency', 'invoice_prefix']"
|
||||||
}).$promise;
|
}).$promise;
|
||||||
}],
|
}],
|
||||||
|
@ -30,6 +30,38 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.schedule-file {
|
||||||
|
text-align: center;
|
||||||
|
line-height: 4em;
|
||||||
|
margin-top: 2em;
|
||||||
|
|
||||||
|
.fa-stack {
|
||||||
|
position: relative;
|
||||||
|
width: 60px;
|
||||||
|
height: 75px;
|
||||||
|
|
||||||
|
.fa-file-pdf {
|
||||||
|
font-size: 4em;
|
||||||
|
vertical-align: middle;
|
||||||
|
position: absolute;
|
||||||
|
background-color: white;
|
||||||
|
text-shadow: 0 0 2px white;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.filename {
|
||||||
|
font-size: 1.1em;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 1em;
|
||||||
|
|
||||||
|
.prefix:hover {
|
||||||
|
background-color: $yellow;
|
||||||
|
overflow-x: hidden;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.invoice-placeholder {
|
.invoice-placeholder {
|
||||||
width: 80%;
|
width: 80%;
|
||||||
max-width: 800px;
|
max-width: 800px;
|
||||||
|
@ -92,6 +92,14 @@
|
|||||||
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
|
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
|
||||||
<span class="filename"><span class="prefix" ng-click="openEditPrefix()">{{file.prefix}}</span>-{{file.nextId}}_{{file.date}}.pdf</span>
|
<span class="filename"><span class="prefix" ng-click="openEditPrefix()">{{file.prefix}}</span>-{{file.nextId}}_{{file.date}}.pdf</span>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="schedule-file">
|
||||||
|
<h3 class="m-l" translate>{{ 'app.admin.invoices.schedule_filename' }}</h3>
|
||||||
|
<span class="fa-stack">
|
||||||
|
<i class="fa fa-file-pdf" style="top: 0; left: 0" aria-hidden="true"></i>
|
||||||
|
<i class="fa fa-file-pdf" style="top: 10px; left: 10px" aria-hidden="true"></i>
|
||||||
|
</span>
|
||||||
|
<span class="filename"><span class="prefix" ng-click="openEditSchedulePrefix()">{{scheduleFile.prefix}}</span>-{{scheduleFile.nextId}}_{{scheduleFile.date}}.pdf</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<script type="text/ng-template" id="addYear.html">
|
<script type="text/ng-template" id="addYear.html">
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
<div class="custom-invoice">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h3 class="modal-title" translate>{{ 'app.admin.invoices.filename' }}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p class="alert alert-info m-h-md" translate>
|
||||||
|
{{ 'app.admin.invoices.schedule_prefix_info' }}
|
||||||
|
</p>
|
||||||
|
<div>
|
||||||
|
<div class="model">
|
||||||
|
<label for="prefix" translate>{{ 'app.admin.invoices.prefix' }}</label>
|
||||||
|
<input type="text" id="prefix" class="form-control" ng-model="model">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button class="btn btn-warning" ng-click="ok()" translate>{{ 'app.shared.buttons.confirm' }}</button>
|
||||||
|
<button class="btn btn-default" ng-click="cancel()" translate>{{ 'app.shared.buttons.cancel' }}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
@ -530,7 +530,9 @@ en:
|
|||||||
logo_successfully_saved: "Logo successfully saved."
|
logo_successfully_saved: "Logo successfully saved."
|
||||||
an_error_occurred_while_saving_the_logo: "An error occurred while saving the logo."
|
an_error_occurred_while_saving_the_logo: "An error occurred while saving the logo."
|
||||||
filename: "File name"
|
filename: "File name"
|
||||||
|
schedule_filename: "Schedule file name"
|
||||||
prefix_info: "The invoices will be generated as PDF files, named with the following prefix."
|
prefix_info: "The invoices will be generated as PDF files, named with the following prefix."
|
||||||
|
schedule_prefix_info: "The payment schedules will be generated as PDF files, named with the following prefix."
|
||||||
prefix: "Prefix"
|
prefix: "Prefix"
|
||||||
prefix_successfully_saved: "File prefix successfully saved"
|
prefix_successfully_saved: "File prefix successfully saved"
|
||||||
an_error_occurred_while_saving_the_prefix: "An error occurred while saving the file prefix"
|
an_error_occurred_while_saving_the_prefix: "An error occurred while saving the file prefix"
|
||||||
|
@ -530,7 +530,9 @@ fr:
|
|||||||
logo_successfully_saved: "Le logo bien été enregistré."
|
logo_successfully_saved: "Le logo bien été enregistré."
|
||||||
an_error_occurred_while_saving_the_logo: "Une erreur est survenue lors de l'enregistrement du logo."
|
an_error_occurred_while_saving_the_logo: "Une erreur est survenue lors de l'enregistrement du logo."
|
||||||
filename: "Nom de fichier"
|
filename: "Nom de fichier"
|
||||||
|
schedule_filename: "Nom de fichier des échéanciers"
|
||||||
prefix_info: "Les factures seront générées sous la forme de fichiers PDF, nommés avec le préfixe suivant."
|
prefix_info: "Les factures seront générées sous la forme de fichiers PDF, nommés avec le préfixe suivant."
|
||||||
|
schedule_prefix_info: "Les échéanciers de paiement seront générées sous la forme de fichiers PDF, nommés avec le préfixe suivant."
|
||||||
prefix: "Préfixe"
|
prefix: "Préfixe"
|
||||||
prefix_successfully_saved: "Le préfixe de fichier a bien été enregistré"
|
prefix_successfully_saved: "Le préfixe de fichier a bien été enregistré"
|
||||||
an_error_occurred_while_saving_the_prefix: "Une erreur est survenue lors de l'enregistrement du préfixe de fichier"
|
an_error_occurred_while_saving_the_prefix: "Une erreur est survenue lors de l'enregistrement du préfixe de fichier"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user