Skip to content

[ADD] academic: sales order verification is added when the payer role… #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 11 commits into
base: 16.0-t-34157-jjs
Choose a base branch
from
9 changes: 8 additions & 1 deletion academic/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
##############################################################################
{
'name': 'Academic',
'version': "16.0.1.2.0",
'version': "16.0.1.4.0",
'sequence': 14,
'summary': '',
'author': 'ADHOC SA',
Expand All @@ -35,6 +35,7 @@
'board',
'sale_management',
'account',
'contacts',
],
'data': [
'security/academic_security.xml',
Expand All @@ -52,9 +53,14 @@
'views/res_users_views.xml',
'views/res_company_views.xml',
'views/login_page.xml',
'views/sale_order_views.xml',
'views/res_partner_link_views.xml',
'views/res_partner_relationship_views.xml',
'data/res_users_data.xml',
'data/res_partner_role_data.xml',
],
'demo': [
'demo/res_partner_relationship_demo.xml',
'demo/res_partner_demo.xml',
'demo/academic.subject.csv',
'demo/academic.section.csv',
Expand All @@ -64,6 +70,7 @@
'demo/res_company_demo.xml',
'demo/res_users_demo.xml',
'demo/academic.group.csv',
'demo/res.partner.link.csv',
],
'installable': True,
'auto_install': False,
Expand Down
29 changes: 29 additions & 0 deletions academic/data/res_partner_role_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<odoo noupdate="1">

<record id="emergency_contact_role" model="res.partner.role">
<field name="name">Contacto de Emergencia</field>
<field name="color">1</field>
</record>

<record id="emergency_institution_role" model="res.partner.role">
<field name="name">Institución de Emergencia</field>
<field name="color">2</field>
</record>

<!-- la idea de este rol es que se use tanto para seleccionar en suscripcion a quien se va a facturar como tambien para definir quienes pueden acceder al portal, ver facturas, pagarlas, etc. -->
<record id="paying_role" model="res.partner.role">
<field name="name">Responsable de Pago</field>
<field name="color">3</field>
</record>

<record id="withdraw_role" model="res.partner.role">
<field name="name">Puede Retirar</field>
<field name="color">4</field>
</record>

<record id="communications_role" model="res.partner.role">
<field name="name">Comunicaciones</field>
<field name="color">5</field>
</record>

</odoo>
41 changes: 32 additions & 9 deletions academic/demo/res.partner.csv
Original file line number Diff line number Diff line change
@@ -1,9 +1,32 @@
id,name,partner_type,is_company,active,section_id/id,promotion_id/id
res_partner_ignacio_rodriguez,Ignacio Rodriguez,teacher,False,True,,
res_partner_laura_sali,Laura Sali,teacher,False,True,,
res_partner_alvaro_diaz,Alvaro Diaz,student,False,True,,academic_promotion_1
res_partner_jose_martin_rodriguez,José Martín Rodriguez,student,False,True,,academic_promotion_1
res_partner_martin_perez,Martin Perez,student,False,True,,academic_promotion_2
res_partner_juan_gomez,Juan Gomez,administrator,False,True,academic_section_1,
res_partner_roberto_martin,Roberto Martin,administrator,False,True,academic_section_1,
res_partner_malena_apdes,Malena Apdes,,False,True,,
id,name,partner_type,is_company,section_id/id,promotion_id/id,sex,parent_id/id,links_by_student
res_partner_flia_mufaza,Flia. Mufaza,family,False,,,,,
res_partner_flia_frias,Flia. Frias,family,False,,,,,True
res_partner_flia_pampa,Flia. Pampa,family,False,,,,,
res_partner_ignacio_rodriguez,Ignacio Rodriguez,teacher,False,,,M,,
res_partner_laura_sali,Laura Sali,teacher,False,,,F,,
res_partner_alvaro_diaz,Alvaro Diaz,student,False,,academic_promotion_1,M,,
res_partner_jose_martin_rodriguez,José Martín Rodriguez,student,False,,academic_promotion_1,M,,
res_partner_martin_perez,Martin Perez,student,False,,academic_promotion_2,M,,
res_partner_juan_gomez,Juan Gomez,administrator,False,academic_section_1,,M,,
res_partner_roberto_martin,Roberto Martin,administrator,False,academic_section_1,,M,,
res_partner_malena_apdes,Malena Apdes,,False,,,F,,
res_partner_luz,Luz Mufaza,student,False,,academic_promotion_2,F,res_partner_flia_mufaza,
res_partner_bautista,Bautista Mufaza,student,False,,academic_promotion_2,M,res_partner_flia_mufaza,
res_partner_mateo,Mateo Frias,student,False,,academic_promotion_2,M,res_partner_flia_frias,
res_partner_amalia,Amalia Frias,student,False,,academic_promotion_2,F,res_partner_flia_frias,
res_partner_ignacio,Ignacio Frias,student,False,,academic_promotion_2,M,res_partner_flia_frias,
res_partner_martina,Martina Pampa,student,False,,academic_promotion_2,M,res_partner_flia_pampa,
res_partner_gonzalo,Gonzalo Mufaza,relative,False,,,M,,
res_partner_teresa,Teresa Ciudadela,relative,False,,,F,,
res_partner_marina,Marina Priti,relative,False,,,F,,
res_partner_juan,Juan Frias,relative,False,,,M,,
res_partner_manuel,Manuel Pampa,relative,False,,,M,,
res_partner_cecilia,Cecilia Todi,relative,False,,,F,,
res_partner_marcelo,Marcelo Pampa,relative,False,,,M,,
res_partner_laura,Laura Perez,relative,False,,,F,,
res_partner_cristina,Cristina Garcia,relative,False,,,F,,
res_partner_rosa,Rosa Roma,relative,False,,,F,,
res_partner_daniel,Daniel Priti,relative,False,,,M,,
res_partner_jose_luis,Jose Luis Mufaza,relative,False,,,M,,
res_partner_hospital_espanol,Hospital Español,,True,,,,,
res_partner_sanatorio_amercano,Sanatorio Americano,,True,,,,,
26 changes: 26 additions & 0 deletions academic/demo/res.partner.link.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
id,student_id/id,partner_id/id,relationship_id/id,role_ids/id,note
res_partner_amalia_juan,res_partner_amalia,res_partner_juan,parent_relationship,,
res_partner_amalia_marina,res_partner_amalia,res_partner_marina,parent_relationship,,
res_partner_amalia_daniel,res_partner_amalia,res_partner_daniel,grandfather_mother_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_amalia_rosa,res_partner_amalia,res_partner_rosa,grandfather_mother_relationship,"emergency_contact_role,withdraw_role",
res_partner_amalia_americano,res_partner_amalia,res_partner_sanatorio_amercano,other_relationship,emergency_institution_role,
res_partner_ignacio_juan,res_partner_ignacio,res_partner_juan,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_ignacio_marina,res_partner_ignacio,res_partner_marina,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_ignacio_daniel,res_partner_ignacio,res_partner_daniel,grandfather_mother_relationship,,
res_partner_ignacio_rosa,res_partner_ignacio,res_partner_rosa,grandfather_mother_relationship,,
res_partner_ignacio_americano,res_partner_ignacio,res_partner_sanatorio_amercano,other_relationship,emergency_institution_role,
res_partner_mufaza_gonzalo,res_partner_flia_mufaza,res_partner_gonzalo,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_mufaza_teresa,res_partner_flia_mufaza,res_partner_teresa,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_mufaza_jose_luis,res_partner_flia_mufaza,res_partner_jose_luis,grandfather_mother_relationship,withdraw_role,
res_partner_mufaza_cristina,res_partner_flia_mufaza,res_partner_cristina,grandfather_mother_relationship,withdraw_role,
res_partner_mufaza_espanol,res_partner_flia_mufaza,res_partner_hospital_espanol,other_relationship,emergency_institution_role,
res_partner_pampa_manuel,res_partner_flia_pampa,res_partner_manuel,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_pampa_cecilia,res_partner_flia_pampa,res_partner_cecilia,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_pampa_marcelo,res_partner_flia_pampa,res_partner_marcelo,grandfather_mother_relationship,withdraw_role,
res_partner_pampa_laura,res_partner_flia_pampa,res_partner_laura,grandfather_mother_relationship,withdraw_role,
res_partner_pampa_espanol,res_partner_flia_pampa,res_partner_hospital_espanol,other_relationship,emergency_institution_role,
res_partner_mateo_juan,res_partner_mateo,res_partner_juan,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_mateo_marina,res_partner_mateo,res_partner_marina,parent_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_mateo_daniel,res_partner_mateo,res_partner_daniel,grandfather_mother_relationship,"emergency_contact_role,withdraw_role,paying_role",
res_partner_mateo_rosa,res_partner_mateo,res_partner_rosa,grandfather_mother_relationship,withdraw_role,
res_partner_mateo_americano,res_partner_mateo,res_partner_sanatorio_amercano,other_relationship,emergency_institution_role,
4 changes: 4 additions & 0 deletions academic/demo/res_company_demo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,17 @@
<field name="partner_id" ref="res_partner_los_arroyos"/>
<field name="parent_id" ref="base.main_company"/>
<field name="currency_id" ref="base.ARS"/>
<!-- para hacerlo requerido deberiamos cambiar la data demo de algunos partners -->
<!-- <field name="family_required" eval="True"/> -->
<field name="fiscalyear_last_day">31</field>
<field name="name">Colegio Los Arroyos</field>
</record>

<record id="res_company_los_molinos" model="res.company">
<field name="partner_id" ref="res_partner_los_molinos"/>
<field name="parent_id" ref="base.main_company"/>
<!-- para hacerlo requerido deberiamos cambiar la data demo de algunos partners -->
<!-- <field name="family_required" eval="True"/> -->
<field name="currency_id" ref="base.ARS"/>
<!-- <field name="fiscalyear_last_day">31</field> -->
<field name="name">Colegio Los Molinos</field>
Expand Down
24 changes: 24 additions & 0 deletions academic/demo/res_partner_relationship_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<odoo>

<!-- <record id="father_relationship" model="res.partner.relationship"> -->
<record id="parent_relationship" model="res.partner.relationship">
<field name="name">Padre/Madre</field>
</record>

<!-- <record id="mather_relationship" model="res.partner.relationship">
<field name="name">Madre</field>
</record> -->

<record id="relative_relationship" model="res.partner.relationship">
<field name="name">Pariente</field>
</record>

<record id="grandfather_mother_relationship" model="res.partner.relationship">
<field name="name">Abuelo/a</field>
</record>

<record id="other_relationship" model="res.partner.relationship">
<field name="name">Otro</field>
</record>

</odoo>
15 changes: 14 additions & 1 deletion academic/demo/res_users_demo.xml
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo noupdate="1">


<record id="base.user_root" model="res.users">
<field name="company_ids" eval="[(6, 0, [ref('base.main_company'), ref('academic.res_company_los_molinos'), ref('academic.res_company_los_arroyos')])]"/>
</record>

<record id="base.user_admin" model="res.users">
<field name="company_ids" eval="[(6, 0, [ref('base.main_company'), ref('academic.res_company_los_molinos'), ref('academic.res_company_los_arroyos')])]"/>
</record>

<record id="base.user_demo" model="res.users">
<field name="company_ids" eval="[(6, 0, [ref('base.main_company'), ref('academic.res_company_los_molinos'), ref('academic.res_company_los_arroyos')])]"/>
</record>

<!-- Apdes Manger -->
<record id="user_malena_apdes" model="res.users" context="{'no_reset_password': True}">
<field name="partner_id" ref="res_partner_malena_apdes"/>
<field name="login">mapdes</field>
<field name="password">mapdes@academic.com</field>
<field name="email">mapdes@academic.com</field>
<field name="company_id" ref="base.main_company"/>
<field name="company_ids" eval="[(4, ref('base.main_company'))]"/>
<field name="company_ids" eval="[(6, 0, [ref('base.main_company'), ref('academic.res_company_los_molinos'), ref('academic.res_company_los_arroyos')])]"/>
<field name="groups_id" eval="[(6,0,[ref('base.group_user'), ref('base.group_partner_manager'),ref('group_manager'),ref('base.group_multi_company')])]"/>
</record>

Expand Down
4 changes: 2 additions & 2 deletions academic/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -423,8 +423,8 @@ msgstr "Otro"
#. module: academic
#: model:ir.model.fields.selection,name:academic.selection__academic_group__type__parent
#: model:ir.model.fields.selection,name:academic.selection__res_partner__partner_type__parent
msgid "Parent"
msgstr "Padre"
msgid "Relative"
msgstr "Pariente"

#. module: academic
#: model:res.groups,name:academic.group_portal_parent
Expand Down
3 changes: 3 additions & 0 deletions academic/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,6 @@
from . import res_partner_relationship
from . import res_partner
from . import res_users
from . import res_partner_role
from . import res_partner_link
from . import sale_order
4 changes: 2 additions & 2 deletions academic/models/academic_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class AcademicGroup(models.Model):
('teacher', 'Teacher'),
('administrator', 'Administrator'),
('gral_administrator', 'gral_administrator'),
('parent', 'Parent')]
('parent', 'Relative')]
)
year = fields.Integer(
required=True,
Expand Down Expand Up @@ -71,7 +71,7 @@ class AcademicGroup(models.Model):
'unique(subject_id, company_id, level_id, year, division_id)',
'Group should be unique per Institution, Subject,'
' Course-Division and Year')]

sequence = fields.Integer(help='Used to order Groups', default=10)

def name_get(self):
Expand Down
20 changes: 20 additions & 0 deletions academic/models/account_move.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from odoo import _, models, fields, api
from odoo.exceptions import ValidationError
import logging

_logger = logging.getLogger(__name__)


class AccountMove(models.Model):
_inherit = 'account.move'

student_id = fields.Many2one('res.partner', string='Alumno', domain="[('parent_id', '=', partner_id), ('partner_type', '=', 'student')]")

@api.constrains('student_id')
def _check_student(self):
invoices_wo_student = self.filtered(lambda x: x.type in ["out_invoice", "out_refund"] and not x.student_id)
if invoices_wo_student:
msg = _("Las facturas de clientes y notas de debito debe tener asociado siempre un alumno")
if len(invoices_wo_student) > 1:
msg += ".\n" + _("Los siguientes documentos no cumplen esa condición:") + "\n\n - %s" % '\n - '.join(invoices_wo_student.mapped('display_name'))
raise ValidationError(msg)
7 changes: 7 additions & 0 deletions academic/models/account_move_line.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from odoo import models, fields


class AccountMoveLine(models.Model):
_inherit = 'account.move.line'

student_id = fields.Many2one(related="move_id.student_id", store=True)
2 changes: 1 addition & 1 deletion academic/models/res_company.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ class ResCompany(models.Model):
'company_id',
string='Groups',
)

study_plan_id = fields.Many2one(
comodel_name='academic.study.plan',
string='Plan de Estudio'
)
family_required = fields.Boolean()
Loading