Merge pull request #757 from expsa/membership_task

[UPDATE]UPDATE partner_member
This commit is contained in:
zainab2097 2024-08-15 13:51:59 +03:00 committed by GitHub
commit fd81f2e614
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 85 additions and 47 deletions

View File

@ -923,6 +923,11 @@ msgstr "شروط العضوية"
msgid "Membership To Date"
msgstr "تاريخ نهاية العضوية"
#. module: dev_membership
#: model:ir.model.fields,field_description:dev_membership.field_dev_membership__request_date
msgid "Membership Cancell Request Date"
msgstr "تاريخ طلب إلغاء العضوية"
#. module: dev_membership
#: model:ir.model.fields,field_description:dev_membership.field_membership_cancellation_request__membership_type_id
#: model:ir.model.fields,field_description:dev_membership.field_res_partner__product_id
@ -1111,7 +1116,7 @@ msgstr "العضو"
#. module: dev_membership
#: model:ir.model.fields,field_description:dev_membership.field_dev_membership__payment_state
msgid "Payment State"
msgstr ""
msgstr "حالة الدفع"
#. module: dev_membership
#: model:ir.model.fields,field_description:dev_membership.field_res_config_settings__post_expiry_period

View File

@ -25,6 +25,7 @@ class DevMembership(models.Model):
date = fields.Date(string="Request Date", tracking=3, required=1, default=lambda self: datetime.now().date())
from_date = fields.Date(string="Membership From Date", tracking=3, required=1, default=lambda *a: (datetime.now().date()))
to_date = fields.Date(string="Membership To Date", tracking=3)
request_date = fields.Date(string="Membership Cancell Request Date", tracking=3,readonly=1)
partner_id = fields.Many2one('res.partner', string="Partner", domain="[('is_member', '=', True)]", tracking=2, required=1)
id_no = fields.Char(string='Identification Number',related='partner_id.identification_number',store=True)
phone = fields.Char(string='Phone',related='partner_id.phone',store=True)

View File

@ -26,6 +26,7 @@ class MembershipCancellationRequest(models.Model):
if request_date < rec.membership_id.partner_id.membership_end_date:
# Update the membership end date to the request date
rec.membership_id.partner_id.membership_end_date = request_date
rec.membership_id.request_date = request_date
rec.state = 'approved'
rec.membership_id.state = 'cancel'

View File

@ -67,13 +67,6 @@
</div>
</button>
</div>
<!-- &lt;!&ndash; Payment status for invoices / receipts &ndash;&gt;-->
<!-- <widget name="web_ribbon" title="Paid" attrs="{'invisible': ['|', ('payment_state', '!=', 'paid'), ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/>-->
<!-- <widget name="web_ribbon" title="In Payment" attrs="{'invisible': ['|', ('payment_state', '!=', 'in_payment'), ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/>-->
<!-- <widget name="web_ribbon" title="Partial" attrs="{'invisible': ['|', ('payment_state', '!=', 'partial'), ('move_type', 'not in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund', 'out_receipt', 'in_receipt'))]}"/>-->
<!-- <widget name="web_ribbon" title="Reversed" bg_color="bg-danger" attrs="{'invisible': [('payment_state', '!=', 'reversed')]}"/>-->
<!-- <widget name="web_ribbon" text="Invoicing App Legacy" bg_color="bg-info" attrs="{'invisible': [('payment_state', '!=', 'invoicing_legacy')]}" tooltip="This entry has been generated through the Invoicing app, before installing Accounting. It has been disabled by the 'Invoicing Switch Threshold Date' setting so that it does not impact your accounting."/>-->
<h2>
<field name="name"/>
</h2>
@ -93,6 +86,8 @@
</group>
<group>
<field name="date" attrs="{'readonly': ([('state', '!=', 'draft')])}"/>
<field attrs="{'invisible': ([('state', '!=', 'cancel')])}" name="request_date"
style="width: 48%; padding:3px; font-size:13px;" readonly="1" force_save="1"/>
<label for="from_date" string="Membership Date"/>
<div class="address_format">
<field name="from_date" style="width: 48%; font-size:13px;"
@ -100,6 +95,7 @@
-
<field name="to_date"
style="width: 48%; padding:3px; font-size:13px;" readonly="1" force_save="1"/>
</div>
<label for="duration" string="Membership Duration"/>
<div class="address_format">

View File

@ -187,28 +187,51 @@
<xpath expr="//field[@name='title']" position="replace"></xpath>
<xpath expr="//div/h1" position="replace">
<!-- <xpath expr="//div/h1" position="replace">-->
<!-- <h1 class="o_addressformat">-->
<!-- <div class="o_address_row"-->
<!-- style="display: flex; justify-content: space-between;"> &lt;!&ndash; Title Field on the Right &ndash;&gt;-->
<!-- <div attrs="{'invisible': [('company_type', '=', 'company')]}" style="flex: 1;" class="o_address_state">-->
<!-- <field widget="selection" name="title" placeholder="Title"-->
<!-- options="{'no_quick_create': True}"-->
<!-- attrs="{'invisible': [('company_type', '=', 'company')]}"/>-->
<!-- </div>-->
<!-- &lt;!&ndash; Name Field on the Left &ndash;&gt;-->
<!-- <div style="flex: 1;" class="o_address_zip">-->
<!-- <field name="name" default_focus="1" placeholder="e.g. Lumber Inc"-->
<!-- attrs="{'required': [('type', '=', 'contact'), ('is_company', '=', True)],-->
<!-- 'invisible': [('is_company','=', False)]}"/>-->
<!-- <field name="name" default_focus="1" placeholder="e.g. Brandon Freeman"-->
<!-- attrs="{'required': [('type', '=', 'contact'), ('is_company', '=', False)],-->
<!-- 'invisible': [('is_company','=', True)]}"/>-->
<!-- </div>-->
<!-- </div>-->
<!-- </h1>-->
<!-- </xpath>-->
<xpath expr="//div/h1" position="replace">
<h1 class="o_addressformat">
<div class="o_address_row"
style="display: flex; justify-content: space-between;"> <!-- Title Field on the Right -->
<div attrs="{'invisible': [('company_type', '=', 'company')]}" style="flex: 1;" class="o_address_state">
<div class="o_address_row" style="display: flex; justify-content: flex-start; align-items: center;">
<!-- Title Field -->
<div attrs="{'invisible': [('company_type', '=', 'company')]}" style="flex: 0 0 auto; margin-right: 10px;">
<field widget="selection" name="title" placeholder="Title"
options="{'no_quick_create': True}"
attrs="{'invisible': [('company_type', '=', 'company')]}"/>
</div>
<!-- Name Field on the Left -->
<div style="flex: 1;" class="o_address_zip">
<!-- Name Field -->
<div style="flex: 0 0 auto;">
<field name="name" default_focus="1" placeholder="e.g. Lumber Inc"
attrs="{'required': [('type', '=', 'contact'), ('is_company', '=', True)],
'invisible': [('is_company','=', False)]}"/>
'invisible': [('is_company','=', False)]}"/>
<field name="name" default_focus="1" placeholder="e.g. Brandon Freeman"
attrs="{'required': [('type', '=', 'contact'), ('is_company', '=', False)],
'invisible': [('is_company','=', True)]}"/>
'invisible': [('is_company','=', True)]}"/>
</div>
</div>
</h1>
</xpath>
<xpath expr="//page" position="after">
<page groups="dev_membership.group_membership_user" name="memebership" string='Memebership'>
<group>

View File

@ -27,38 +27,50 @@
ref="membership_card_odoo.paperformat_card"/>
</record>
<!-- Template to print Pdf. -->
<template id="print_member_ship_card">
<t t-call="web.html_container">
<t t-set="company" t-value="user.company_id"/>
<!-- Header -->
<div style="font-family: 'Roboto', sans-serif;" class="page">
<div t-attf-style="background-color:{{membrship_level_color }};">
<div style="font-family: 'Roboto', sans-serif;">
<center>
<h2><t t-esc="company.name"/></h2>
</center>
<center>
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" height="50" style="max-height: 80px;" alt="Logo"/>
</center>
</div><br/>
<!-- Content -->
<div style="font-family: 'Roboto', sans-serif; display: flex; align-items: flex-start; gap: 15px;">
<!-- Image Section -->
<div style="flex: 0 0 auto;">
<img t-if="image" style="width: 120px; border-radius: 5px;" t-attf-src="data:image/*;base64,{{image}}"/>
</div>
<!-- Information Section -->
<div style="flex: 1 1 auto; font-family: 'Roboto', sans-serif;">
<p dir="rtl" t-if="name"><strong>الاسم:</strong> <t t-esc="name"/></p>
<p dir="rtl" t-if="membrship_no"><strong>رقم العضوية:</strong> <t t-esc="membrship_no"/></p>
<p dir="rtl" t-if="product_id"><strong>نوع العضوية:</strong> <t t-esc="product_id"/></p>
<p dir="rtl" t-if="membrship_level"><strong>العضوية:</strong> <t t-esc="membrship_level"/></p>
<p dir="rtl" t-if="end_date"><strong>تاريخ الانتهاء:</strong> <t t-esc="end_date"/></p>
<template id="print_member_ship_card">
<t t-call="web.html_container">
<t t-set="company" t-value="user.company_id"/>
<!-- Header -->
<style>
@font-face {font-family: "Sakkal Majalla"; src:
url("/membership_card_odoo/static/fonts/ce7b5754581057e6f7444e2192850cc8.eot"); src:
url("/membership_card_odoo/static/fonts/ce7b5754581057e6f7444e2192850cc8.eot?#iefix")
format("embedded-opentype"),
url("/membership_card_odoo/static/fonts/ce7b5754581057e6f7444e2192850cc8.woff2") format("woff2"),
url("/membership_card_odoo/static/fonts/ce7b5754581057e6f7444e2192850cc8.woff") format("woff"),
url("/membership_card_odoo/static/fonts/ce7b5754581057e6f7444e2192850cc8.ttf") format("truetype");
}
#font{
font-family: 'Sakkal Majalla'!important;
}
</style>
<div style="font-family:'Sakkal Majalla'!important;" id="font" class="page">
<div t-attf-style="background-color:{{membrship_level_color }};">
<div style="font-family:'Sakkal Majalla'!important;">
<center>
<h2><t t-esc="company.name"/></h2>
</center>
<center>
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" height="50" style="max-height: 80px;" alt="Logo"/>
</center>
</div><br/>
<!-- Content -->
<div style="font-family:'Sakkal Majalla'!important;" class="row mt32">
<div style="width:20%;margin-top:10px;float:right">
<img t-if="image" style="width: 120px; border-radius: 5px;"
t-attf-src="data:image/*;base64,{{image}}"/>
</div>
<div style="width:75%;font-family:'Sakkal Majalla'!important;margin-top:5px;float:left">
<p dir="rtl" t-if="name"><strong>الاسم:</strong> <t t-esc="name"/></p>
<p dir="rtl" t-if="membrship_no"><strong>رقم العضوية:</strong> <t t-esc="membrship_no"/></p>
<p dir="rtl" t-if="product_id"><strong> نوع العضوية:</strong> <t t-esc="product_id"/></p>
<p dir="rtl" t-if="membrship_level"><strong> العضوية:</strong> <t t-esc="membrship_level"/></p>
<p dir="rtl" t-if="end_date"><strong>تاريخ الانتهاء:</strong> <t t-esc="end_date"/></p>
</div>
</div>
</div>
</div>
</div>
</t>
</template>
</t>
</template>
</odoo>