feat(handover): one hand-over sheet replaces the separate sale/plantare doors
'Seeds changed hands' is now the single entry point on the variety detail (and per lot row): direction (gave/received), one-tap 'all of it' (default — the whole-plant/shrub case), optional partial quantity, counterparty, and reveal-on-tap money and return-promise sections that spawn the Sale/Plantare rows through recordHandover in one save. Zero-lot varieties still work (ledger rows only); several lots get a chip picker. The Sales/Plantares screens keep their own add buttons for off-app records — the sheets stay, demoted to secondary. i18n handover block in en/es/pt/ast; widget tests for the flow.
This commit is contained in:
parent
e6e70e4b97
commit
491e079b50
12 changed files with 849 additions and 152 deletions
|
|
@ -81,6 +81,7 @@ class Translations with BaseTranslations<AppLocale, Translations> {
|
|||
late final Translations$wot$en wot = Translations$wot$en.internal(_root);
|
||||
late final Translations$notifications$en notifications = Translations$notifications$en.internal(_root);
|
||||
late final Translations$plantare$en plantare = Translations$plantare$en.internal(_root);
|
||||
late final Translations$handover$en handover = Translations$handover$en.internal(_root);
|
||||
late final Translations$sale$en sale = Translations$sale$en.internal(_root);
|
||||
}
|
||||
|
||||
|
|
@ -1722,6 +1723,48 @@ class Translations$plantare$en {
|
|||
String get removeConfirm => 'Remove this commitment?';
|
||||
}
|
||||
|
||||
// Path: handover
|
||||
class Translations$handover$en {
|
||||
Translations$handover$en.internal(this._root);
|
||||
|
||||
final Translations _root; // ignore: unused_field
|
||||
|
||||
// Translations
|
||||
|
||||
/// en: 'Seeds changed hands'
|
||||
String get title => 'Seeds changed hands';
|
||||
|
||||
/// en: 'A gift, a swap or a sale — note it down, with a return promise or without.'
|
||||
String get help => 'A gift, a swap or a sale — note it down, with a return promise or without.';
|
||||
|
||||
/// en: 'I gave seeds'
|
||||
String get iGave => 'I gave seeds';
|
||||
|
||||
/// en: 'I received seeds'
|
||||
String get iReceived => 'I received seeds';
|
||||
|
||||
/// en: 'Which batch?'
|
||||
String get whichLot => 'Which batch?';
|
||||
|
||||
/// en: 'How much?'
|
||||
String get howMuch => 'How much?';
|
||||
|
||||
/// en: 'All of it'
|
||||
String get allOfIt => 'All of it';
|
||||
|
||||
/// en: 'A part'
|
||||
String get partOfIt => 'A part';
|
||||
|
||||
/// en: 'Money changed hands'
|
||||
String get paymentChip => 'Money changed hands';
|
||||
|
||||
/// en: 'They'll return me seed'
|
||||
String get promiseGave => 'They\'ll return me seed';
|
||||
|
||||
/// en: 'I'll return seed'
|
||||
String get promiseReceived => 'I\'ll return seed';
|
||||
}
|
||||
|
||||
// Path: sale
|
||||
class Translations$sale$en {
|
||||
Translations$sale$en.internal(this._root);
|
||||
|
|
@ -2718,6 +2761,17 @@ extension on Translations {
|
|||
'plantare.openSection' => 'Open',
|
||||
'plantare.settledSection' => 'Done',
|
||||
'plantare.removeConfirm' => 'Remove this commitment?',
|
||||
'handover.title' => 'Seeds changed hands',
|
||||
'handover.help' => 'A gift, a swap or a sale — note it down, with a return promise or without.',
|
||||
'handover.iGave' => 'I gave seeds',
|
||||
'handover.iReceived' => 'I received seeds',
|
||||
'handover.whichLot' => 'Which batch?',
|
||||
'handover.howMuch' => 'How much?',
|
||||
'handover.allOfIt' => 'All of it',
|
||||
'handover.partOfIt' => 'A part',
|
||||
'handover.paymentChip' => 'Money changed hands',
|
||||
'handover.promiseGave' => 'They\'ll return me seed',
|
||||
'handover.promiseReceived' => 'I\'ll return seed',
|
||||
'sale.title' => 'Sales',
|
||||
'sale.help' => 'Record seed you sold or bought — money, Ğ1, or any currency. A separate model from a gift or a Plantare. No commission is ever taken on seeds.',
|
||||
'sale.add' => 'Record a sale',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue