diff --git a/contract.py b/contract.py
index 9245716..2ca565f 100644
--- a/contract.py
+++ b/contract.py
@@ -35,6 +35,9 @@ class StaffContract(Workflow, ModelSQL, ModelView):
'required': Eval('state') == 'finished',
'readonly': Eval('state') == 'finished',
}, depends=['state'])
+ canceled_date = fields.Date('Canceled Date', states={
+ 'required': Eval('state') == 'canceled',
+ }, depends=['state'])
salary = fields.Numeric('Salary', digits=(16, 2), states=STATES,
help='Salary monthly of person', required=True)
kind = fields.Selection([
@@ -49,6 +52,7 @@ class StaffContract(Workflow, ModelSQL, ModelView):
('draft', 'Draft'),
('active', 'Active'),
('finished', 'Finished'),
+ ('canceled', 'Canceled'),
], 'State', readonly=True, select=True)
payment_term = fields.Selection(
PAYMENT_TERM, 'Payment Term', states=STATES)
@@ -63,6 +67,7 @@ class StaffContract(Workflow, ModelSQL, ModelView):
cls._transitions |= set((
('draft', 'active'),
('active', 'draft'),
+ ('active', 'canceled'),
('active', 'finished'),
))
cls._buttons.update({
@@ -75,6 +80,9 @@ class StaffContract(Workflow, ModelSQL, ModelView):
'finished': {
'invisible': Eval('state') != 'active',
},
+ 'canceled': {
+ 'invisible': Eval('state') != 'active',
+ },
})
@classmethod
@@ -139,6 +147,14 @@ class StaffContract(Workflow, ModelSQL, ModelView):
for contract in records:
contract._check_finish_date()
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('canceled')
+ def canceled(cls, records):
+ for contract in records:
+ if not contract.canceled_date:
+ raise StaffContractError(gettext('staff.msg_missing_canceled_date'))
+
def _check_finish_date(self):
pass
diff --git a/locale/es.po b/locale/es.po
index b8a639a..db2aa08 100644
--- a/locale/es.po
+++ b/locale/es.po
@@ -2,22 +2,6 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:company.employee:"
-msgid "Employee already exists!"
-msgstr "El empleado ya existe!"
-
-msgctxt "error:staff.contract:"
-msgid "The contract sequence is missing on configuration!"
-msgstr "Falta la secuencia de contrato en la configuración!"
-
-msgctxt "error:staff.contract:"
-msgid "The employee %s already has a contract in draft or active!"
-msgstr "El empleado %s ya tiene un contrato activo o en borrador!"
-
-msgctxt "error:staff.contract:"
-msgid "You can not to finish a contract with end date on future!"
-msgstr "No puede terminar un contrato con fecha terminación futura!"
-
msgctxt "field:company.employee,active:"
msgid "Active"
msgstr "Activo"
@@ -104,7 +88,7 @@ msgstr "Usuario de creación"
msgctxt "field:staff.configuration.sequence,id:"
msgid "ID"
-msgstr "UP"
+msgstr "ID"
msgctxt "field:staff.configuration.sequence,rec_name:"
msgid "Record Name"
@@ -112,7 +96,7 @@ msgstr "Nombre del registro"
msgctxt "field:staff.configuration.sequence,staff_contract_sequence:"
msgid "Staff Contract Sequence"
-msgstr ""
+msgstr "Secuencia de Contrato"
msgctxt "field:staff.configuration.sequence,write_date:"
msgid "Write Date"
@@ -122,6 +106,10 @@ msgctxt "field:staff.configuration.sequence,write_uid:"
msgid "Write User"
msgstr "Usuario modificación"
+msgctxt "field:staff.contract,canceled_date:"
+msgid "Canceled Date"
+msgstr "Fecha de Anulación"
+
msgctxt "field:staff.contract,comment:"
msgid "Comment"
msgstr "Observaciones"
@@ -318,6 +306,10 @@ msgctxt "model:ir.action,name:act_contract_form"
msgid "Contract"
msgstr "Contrato"
+msgctxt "model:ir.action,name:act_holidays_form"
+msgid "Holidays"
+msgstr "Vacaciones"
+
msgctxt "model:ir.action,name:act_position_tree"
msgid "Positions"
msgstr "Cargos"
@@ -356,6 +348,10 @@ msgctxt "model:ir.ui.menu,name:"
msgid "Contracts"
msgstr "Contratos"
+msgctxt "model:ir.ui.menu,name:menu_assitants"
+msgid "Assistants"
+msgstr "Asistentes"
+
msgctxt "model:ir.ui.menu,name:menu_configuration"
msgid "Configuration"
msgstr "Configuración"
@@ -402,7 +398,7 @@ msgstr "Configuración"
msgctxt "model:staff.configuration.sequence,name:"
msgid "Staff Configuration Sequence"
-msgstr ""
+msgstr "Configuracion de Secuencia"
msgctxt "model:staff.contract,name:"
msgid "Staff Contract"
@@ -436,6 +432,10 @@ msgctxt "selection:company.employee,contracting_state:"
msgid "Finished"
msgstr "Terminado"
+msgctxt "selection:company.employee,contracting_state:"
+msgid "In Process"
+msgstr "En proceso"
+
msgctxt "selection:company.employee,contracting_state:"
msgid "Rejected"
msgstr "Rechazado"
@@ -456,10 +456,26 @@ msgctxt "selection:staff.contract,kind:"
msgid "Steady"
msgstr "Término Fijo"
+msgctxt "selection:staff.contract,kind:"
+msgid "internships"
+msgstr "Pasantia"
+
+msgctxt "selection:staff.contract,kind:"
+msgid "learning"
+msgstr "Aprendizaje"
+
+msgctxt "selection:staff.contract,payment_term:"
+msgid "Cash"
+msgstr "Efectivo"
+
msgctxt "selection:staff.contract,state:"
msgid "Active"
msgstr "Activo"
+msgctxt "selection:staff.contract,state:"
+msgid "Canceled"
+msgstr "Anulado"
+
msgctxt "selection:staff.contract,state:"
msgid "Draft"
msgstr "Borrador"
@@ -520,6 +536,10 @@ msgctxt "view:staff.contract:"
msgid "Additional Info"
msgstr "Información Adicional"
+msgctxt "view:staff.contract:"
+msgid "Canceled"
+msgstr "Anulado"
+
msgctxt "view:staff.contract:"
msgid "Draft"
msgstr "Borrador"
diff --git a/message.xml b/message.xml
index 0d9c8e1..f326499 100644
--- a/message.xml
+++ b/message.xml
@@ -15,6 +15,9 @@ this repository contains the full copyright notices and license terms. -->
You can not to finish a contract with end date on future!
+
+ You must define canceled date for contract!
+
diff --git a/tryton.cfg b/tryton.cfg
index a8b2b8e..35afbe8 100644
--- a/tryton.cfg
+++ b/tryton.cfg
@@ -1,5 +1,5 @@
[tryton]
-version=6.0.0
+version=6.0.1
depends:
ir
party
diff --git a/view/contract_form.xml b/view/contract_form.xml
index 925a02a..9f554bf 100644
--- a/view/contract_form.xml
+++ b/view/contract_form.xml
@@ -22,6 +22,8 @@ this repository contains the full copyright notices and license terms. -->
+
+
@@ -38,6 +40,8 @@ this repository contains the full copyright notices and license terms. -->
icon="tryton-ok"/>
+