diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/snailmail/wizard/snailmail_letter_missing_required_fields.py | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/snailmail/wizard/snailmail_letter_missing_required_fields.py')
| -rw-r--r-- | addons/snailmail/wizard/snailmail_letter_missing_required_fields.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/addons/snailmail/wizard/snailmail_letter_missing_required_fields.py b/addons/snailmail/wizard/snailmail_letter_missing_required_fields.py new file mode 100644 index 00000000..4216f3f8 --- /dev/null +++ b/addons/snailmail/wizard/snailmail_letter_missing_required_fields.py @@ -0,0 +1,52 @@ + +from odoo import _, api, fields, models + +class SnailmailLetterMissingRequiredFields(models.TransientModel): + _name = 'snailmail.letter.missing.required.fields' + _description = 'Update address of partner' + + partner_id = fields.Many2one('res.partner') + letter_id = fields.Many2one('snailmail.letter') + + street = fields.Char('Street') + street2 = fields.Char('Street2') + zip = fields.Char('Zip') + city = fields.Char('City') + state_id = fields.Many2one("res.country.state", string='State') + country_id = fields.Many2one('res.country', string='Country') + + @api.model + def default_get(self, fields): + defaults = super(SnailmailLetterMissingRequiredFields, self).default_get(fields) + if defaults.get('letter_id'): + letter = self.env['snailmail.letter'].browse(defaults.get('letter_id')) + defaults.update({ + 'partner_id': letter.partner_id.id, + 'street': letter.street, + 'street2': letter.street2, + 'zip': letter.zip, + 'city': letter.city, + 'state_id': letter.state_id.id, + 'country_id': letter.country_id.id, + }) + return defaults + + def update_address_cancel(self): + self.letter_id.cancel() + + def update_address_save(self): + address_data = { + 'street': self.street, + 'street2': self.street2, + 'zip': self.zip, + 'city': self.city, + 'state_id': self.state_id.id, + 'country_id': self.country_id.id, + } + self.partner_id.write(address_data) + letters_to_resend = self.env['snailmail.letter'].search([ + ('partner_id', '=', self.partner_id.id), + ('error_code', '=', 'MISSING_REQUIRED_FIELDS'), + ]) + letters_to_resend.write(address_data) + letters_to_resend.snailmail_print() |
