summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-12-02 09:31:13 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-12-02 09:31:13 +0700
commit6fbfe31167e6eb66d4995374dadb14774026e8c7 (patch)
tree044465ba37c6c6bc47ca2f0d6729ef6a64836397 /indoteknik_custom/models
parent07c14fedc459106189d040e7724e6d7f81051658 (diff)
<iman> pengajuan tempo update
Diffstat (limited to 'indoteknik_custom/models')
-rw-r--r--indoteknik_custom/models/res_partner.py7
-rwxr-xr-xindoteknik_custom/models/res_users.py5
-rw-r--r--indoteknik_custom/models/solr/apache_solr.py2
-rw-r--r--indoteknik_custom/models/user_pengajuan_tempo.py15
-rw-r--r--indoteknik_custom/models/user_pengajuan_tempo_request.py261
5 files changed, 180 insertions, 110 deletions
diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py
index f01ea481..b21b1965 100644
--- a/indoteknik_custom/models/res_partner.py
+++ b/indoteknik_custom/models/res_partner.py
@@ -406,13 +406,10 @@ class ResPartner(models.Model):
if self.customer_type == 'nonpkp':
self.npwp = '00.000.000.0-000.000'
- def get_check_tempo_partner(self):
+ def get_check_payment_term(self):
self.ensure_one()
partner = self.parent_id or self
- if not partner.property_payment_term_id or 'Tempo' not in partner.property_payment_term_id.name:
- return False
- else:
- return True
+ return partner.property_payment_term_id.name if partner.property_payment_term_id.id else 'Cash Before Delivery (C.B.D)'
diff --git a/indoteknik_custom/models/res_users.py b/indoteknik_custom/models/res_users.py
index 5e16aad1..fb9e8bfb 100755
--- a/indoteknik_custom/models/res_users.py
+++ b/indoteknik_custom/models/res_users.py
@@ -46,6 +46,11 @@ class ResUsers(models.Model):
for user in self:
template.send_mail(user.id, force_send=True)
+ def send_company_request_tempo_review(self):
+ template = self.env.ref('indoteknik_custom.mail_template_res_user_company_tempo_review')
+ for user in self:
+ template.send_mail(user.id, force_send=True)
+
def get_activation_token_url(self):
base_url = self.env['ir.config_parameter'].get_param('site.base.url')
return f'{base_url}/register?activation=token&amp;token={self.activation_token}'
diff --git a/indoteknik_custom/models/solr/apache_solr.py b/indoteknik_custom/models/solr/apache_solr.py
index 6560c9b5..d111c1c1 100644
--- a/indoteknik_custom/models/solr/apache_solr.py
+++ b/indoteknik_custom/models/solr/apache_solr.py
@@ -22,7 +22,7 @@ class ApacheSolr(models.Model):
url = ''
if env == 'development':
- url = 'http://192.168.23.5:8983/solr/'
+ url = 'http://localhost:8983/solr/'
elif env == 'production':
url = 'http://34.101.189.218:8983/solr/'
diff --git a/indoteknik_custom/models/user_pengajuan_tempo.py b/indoteknik_custom/models/user_pengajuan_tempo.py
index d8a6d106..006bbb55 100644
--- a/indoteknik_custom/models/user_pengajuan_tempo.py
+++ b/indoteknik_custom/models/user_pengajuan_tempo.py
@@ -18,6 +18,9 @@ class UserPengajuanTempo(models.Model):
_name = 'user.pengajuan.tempo'
_inherit = ['mail.thread', 'mail.activity.mixin']
partner_id = fields.Char()
+ _description = 'User Pengajuan Tempo'
+
+ name = fields.Char(string='Name', required=True)
# informasi perusahaan
# name_tempo = fields.Many2one(
@@ -31,6 +34,7 @@ class UserPengajuanTempo(models.Model):
'res.partner', string='Nama Perusahaan',
tracking=True, # Menambahkan tracking=True
)
+ user_id = fields.Many2one('res.users', string='User')
industry_id_tempo = fields.Many2one('res.partner.industry', 'Customer Industry', readonly=True)
street_tempo = fields.Char(string="Alamat Perusahaan")
state_id_tempo = fields.Many2one('res.country.state', string='State')
@@ -97,6 +101,17 @@ class UserPengajuanTempo(models.Model):
string=" Foto Kantor (Tampak Depan)", tracking=3)
dokumen_tempat_bekerja = fields.Many2many('ir.attachment', 'pengajuan_dokumen_tempat_bekerja_rel',
string="Tempat Bekerja", tracking=3)
+
+ @api.depends('name', 'name_tempo')
+ def name_get(self):
+ result = []
+ for record in self:
+ if record.name_tempo:
+ display_name = f"DETAIL FORM TEMPO - {record.name_tempo.name}"
+ else:
+ display_name = "DETAIL FORM TEMPO"
+ result.append((record.id, display_name))
+ return result
#
# def _compute_attachment_url(self):
# if self.id:
diff --git a/indoteknik_custom/models/user_pengajuan_tempo_request.py b/indoteknik_custom/models/user_pengajuan_tempo_request.py
index 438d48cc..b7526238 100644
--- a/indoteknik_custom/models/user_pengajuan_tempo_request.py
+++ b/indoteknik_custom/models/user_pengajuan_tempo_request.py
@@ -4,118 +4,171 @@ from odoo.http import request
class UserPengajuanTempoRequest(models.Model):
_name = 'user.pengajuan.tempo.request'
+ _inherit = ['mail.thread', 'mail.activity.mixin']
_rec_name = 'user_id'
user_id = fields.Many2one('res.partner', string='User')
- is_approve = fields.Selection([
- ('approved', 'Approve'),
- ('rejected', 'Reject'),
- ], string='Approval')
+ user_company_id = fields.Many2one('res.partner', string='Company')
pengajuan_tempo_id = fields.Many2one('user.pengajuan.tempo', string='Form Tempo')
+ tempo_duration = fields.Many2one('account.payment.term', string='Durasi Tempo')
+ tempo_limit = fields.Char(string='Limit Tempo')
+ state_tempo = fields.Selection([
+ ('draft', 'Pengajuan Tempo'),
+ ('approval_sales', 'Approved by Sales Manager'),
+ ('approval_finance', 'Approved by Finance'),
+ ('approval_director', 'Approved by Director'),
+ ], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', default='draft')
+
+ @api.onchange('tempo_duration')
+ def _tempo_duration_change(self):
+ for tempo in self:
+ if tempo.env.user.id not in (7, 377):
+ raise UserError("Durasi tempo hanya bisa di ubah oleh Sales Manager atau Direktur")
+
+ @api.onchange('tempo_limit')
+ def _tempo_limit_change(self):
+ for tempo in self:
+ if tempo.env.user.id not in (7, 377):
+ raise UserError("Limit tempo hanya bisa di ubah oleh Sales Manager atau Direktur")
+
+ def button_approve(self):
+ for tempo in self:
+ if tempo.state_tempo == 'draft':
+ if tempo.env.user.id in (688, 28, 7):
+ raise UserError("Pengajuan tempo harus di approve oleh sales manager terlebih dahulu")
+ else:
+ # if tempo.env.user.id != 377:
+ if tempo.env.user.id != 25:
+ raise UserError("Pengajuan tempo hanya bisa di approve oleh sales manager")
+ else:
+ tempo.state_tempo = 'approval_sales'
+
+ elif tempo.state_tempo == 'approval_sales':
+ if tempo.env.user.id == 7:
+ raise UserError("Pengajuan tempo harus di approve oleh Finence terlebih dahulu")
+ else:
+ # if tempo.env.user.id not in (688, 28):
+ if tempo.env.user.id not in (101):
+ raise UserError("Pengajuan tempo hanya bisa di approve oleh Finence")
+ else:
+ tempo.state_tempo = 'approval_finance'
+
+ elif tempo.state_tempo == 'approval_finance':
+ # if tempo.env.user.id != 7:
+ if tempo.env.user.id != 12182:
+ raise UserError("Pengajuan tempo hanya bisa di approve oleh Direktur")
+ else:
+ tempo.state_tempo = 'approval_director'
+
+
+
+ res = super(UserPengajuanTempoRequest, self).button_approve()
+ return res
+
def write(self, vals):
user = self.get_user_by_email(self.user_id.email)
- is_approve = vals.get('is_approve')
- company_id = ''
- if self.is_approve and is_approve:
- raise UserError('Tidak dapat mengubah approval yang sudah diisi')
-
- if not self.is_approve and is_approve:
- if is_approve == 'approved':
- self.pengajuan_tempo_id.partner_id = self.user_id.id
- # informasi perusahaan
- company_id.name_tempo = self.pengajuan_tempo_id.name_tempo
- company_id.industry_id_tempo = self.pengajuan_tempo_id.industry_id_tempo
- company_id.street_tempo = self.pengajuan_tempo_id.street_tempo
- company_id.state_id_tempo = self.pengajuan_tempo_id.state_id_tempo
- company_id.city_id_tempo = self.pengajuan_tempo_id.city_id_tempo
- company_id.zip_tempo = self.pengajuan_tempo_id.zip_tempo
- company_id.mobile_tempo = self.pengajuan_tempo_id.mobile_tempo
- company_id.bank_name_tempo = self.pengajuan_tempo_id.bank_name_tempo
- company_id.account_name_tempo = self.pengajuan_tempo_id.account_name_tempo
- company_id.account_number_tempo = self.pengajuan_tempo_id.account_number_tempo
- company_id.website_tempo = self.pengajuan_tempo_id.website_tempo
- company_id.estimasi_tempo = self.pengajuan_tempo_id.estimasi_tempo
- company_id.tempo_duration = self.pengajuan_tempo_id.tempo_duration
- company_id.tempo_limit = self.pengajuan_tempo_id.tempo_limit
- company_id.category_produk_ids = self.pengajuan_tempo_id.category_produk_ids
-
- # Kontak Perusahaan
- company_id.direktur_name = self.pengajuan_tempo_id.direktur_name
- company_id.direktur_mobile = self.pengajuan_tempo_id.direktur_mobile
- company_id.direktur_email = self.pengajuan_tempo_id.direktur_email
- company_id.purchasing_name = self.pengajuan_tempo_id.purchasing_name
- company_id.purchasing_mobile = self.pengajuan_tempo_id.purchasing_mobile
- company_id.purchasing_email = self.pengajuan_tempo_id.purchasing_email
- company_id.finance_name = self.pengajuan_tempo_id.finance_name
- company_id.finance_mobile = self.pengajuan_tempo_id.finance_mobile
- company_id.finance_email = self.pengajuan_tempo_id.finance_email
-
- # Pengiriman
- company_id.pic_name = self.pengajuan_tempo_id.pic_name
- company_id.street_pengiriman = self.pengajuan_tempo_id.street_pengiriman
- company_id.state_id_pengiriman = self.pengajuan_tempo_id.state_id_pengiriman
- company_id.city_id_pengiriman = self.pengajuan_tempo_id.city_id_pengiriman
- company_id.zip_pengiriman = self.pengajuan_tempo_id.zip_pengiriman
- company_id.invoice_pic = self.pengajuan_tempo_id.invoice_pic
- company_id.street_invoice = self.pengajuan_tempo_id.street_invoice
- company_id.state_id_invoice = self.pengajuan_tempo_id.state_id_invoice
- company_id.city_id_invoice = self.pengajuan_tempo_id.city_id_invoice
- company_id.tukar_invoice = self.pengajuan_tempo_id.tukar_invoice
- company_id.jadwal_bayar = self.pengajuan_tempo_id.jadwal_bayar
- company_id.dokumen_pengiriman = self.pengajuan_tempo_id.dokumen_pengiriman
- company_id.dokumen_invoice = self.pengajuan_tempo_id.dokumen_invoice
-
- # Referensi
- company_id.supplier_ids = self.pengajuan_tempo_id.supplier_ids
-
- # Dokumen
- company_id.dokumen_nib = self.pengajuan_tempo_id.dokumen_nib
- if company_id.dokumen_nib:
- company_id.message_post(body='Dokumen NIB', attachment_ids=[company_id.dokumen_nib.id])
-
- company_id.dokumen_npwp = self.pengajuan_tempo_id.dokumen_npwp
- if company_id.dokumen_npwp:
- company_id.message_post(body='Dokumen NPWP', attachment_ids=[company_id.dokumen_npwp.id])
-
- company_id.dokumen_sppkp = self.pengajuan_tempo_id.dokumen_sppkp
- if company_id.dokumen_sppkp:
- company_id.message_post(body='Dokumen SPPKP', attachment_ids=[company_id.dokumen_sppkp.id])
-
- company_id.dokumen_akta_perubahan = self.pengajuan_tempo_id.dokumen_akta_perubahan
- if company_id.dokumen_akta_perubahan:
- company_id.message_post(body='Dokumen Akta Perubahan',
- attachment_ids=[company_id.dokumen_akta_perubahan.id])
-
- company_id.dokumen_ktp_dirut = self.pengajuan_tempo_id.dokumen_ktp_dirut
- if company_id.dokumen_ktp_dirut:
- company_id.message_post(body='Dokumen Ktp Dirut',
- attachment_ids=[company_id.dokumen_ktp_dirut.id])
-
- company_id.dokumen_akta_pendirian = self.pengajuan_tempo_id.dokumen_akta_pendirian
- if company_id.dokumen_akta_pendirian:
- company_id.message_post(body='Dokumen Akta Pendirian',
- attachment_ids=[company_id.dokumen_akta_pendirian.id])
-
- company_id.dokumen_laporan_keuangan = self.pengajuan_tempo_id.dokumen_laporan_keuangan
- if company_id.dokumen_laporan_keuangan:
- company_id.message_post(body='Dokumen Laporan Keuangan',
- attachment_ids=[company_id.dokumen_laporan_keuangan.id])
-
- company_id.dokumen_foto_kantor = self.pengajuan_tempo_id.dokumen_foto_kantor
- if company_id.dokumen_foto_kantor:
- company_id.message_post(body='Dokumen Foto Kantor',
- attachment_ids=[company_id.dokumen_foto_kantor.id])
-
- company_id.dokumen_tempat_bekerja = self.pengajuan_tempo_id.dokumen_tempat_bekerja
- if company_id.dokumen_tempat_bekerja:
- company_id.message_post(body='Dokumen Tempat Bekerja',
- attachment_ids=[company_id.dokumen_tempat_bekerja.id])
+ is_approve = True if self.state_tempo == 'approval_director' else False
+ # if self.is_approve and is_approve:
+ # raise UserError('Tidak dapat mengubah approval yang sudah diisi')
+
+ if is_approve:
+ self.pengajuan_tempo_id.partner_id = self.user_id.id
+ # informasi perusahaan
+ self.user_company_id.name_tempo = self.pengajuan_tempo_id.name_tempo
+ self.user_company_id.industry_id_tempo = self.pengajuan_tempo_id.industry_id_tempo
+ self.user_company_id.street_tempo = self.pengajuan_tempo_id.street_tempo
+ self.user_company_id.state_id_tempo = self.pengajuan_tempo_id.state_id_tempo
+ self.user_company_id.city_id_tempo = self.pengajuan_tempo_id.city_id_tempo
+ self.user_company_id.zip_tempo = self.pengajuan_tempo_id.zip_tempo
+ self.user_company_id.mobile_tempo = self.pengajuan_tempo_id.mobile_tempo
+ self.user_company_id.bank_name_tempo = self.pengajuan_tempo_id.bank_name_tempo
+ self.user_company_id.account_name_tempo = self.pengajuan_tempo_id.account_name_tempo
+ self.user_company_id.account_number_tempo = self.pengajuan_tempo_id.account_number_tempo
+ self.user_company_id.website_tempo = self.pengajuan_tempo_id.website_tempo
+ self.user_company_id.estimasi_tempo = self.pengajuan_tempo_id.estimasi_tempo
+ self.user_company_id.tempo_duration = vals.get('tempo_duration') if vals.get('tempo_duration') else self.pengajuan_tempo_id.tempo_duration
+ self.user_company_id.tempo_limit = vals.get('tempo_limit') if vals.get('tempo_limit') else self.pengajuan_tempo_id.tempo_limit
+ self.user_company_id.category_produk_ids = self.pengajuan_tempo_id.category_produk_ids
+
+ # Kontak Perusahaan
+ self.user_company_id.direktur_name = self.pengajuan_tempo_id.direktur_name
+ self.user_company_id.direktur_mobile = self.pengajuan_tempo_id.direktur_mobile
+ self.user_company_id.direktur_email = self.pengajuan_tempo_id.direktur_email
+ self.user_company_id.purchasing_name = self.pengajuan_tempo_id.purchasing_name
+ self.user_company_id.purchasing_mobile = self.pengajuan_tempo_id.purchasing_mobile
+ self.user_company_id.purchasing_email = self.pengajuan_tempo_id.purchasing_email
+ self.user_company_id.finance_name = self.pengajuan_tempo_id.finance_name
+ self.user_company_id.finance_mobile = self.pengajuan_tempo_id.finance_mobile
+ self.user_company_id.finance_email = self.pengajuan_tempo_id.finance_email
+
+ # Pengiriman
+ self.user_company_id.pic_name = self.pengajuan_tempo_id.pic_name
+ self.user_company_id.street_pengiriman = self.pengajuan_tempo_id.street_pengiriman
+ self.user_company_id.state_id_pengiriman = self.pengajuan_tempo_id.state_id_pengiriman
+ self.user_company_id.city_id_pengiriman = self.pengajuan_tempo_id.city_id_pengiriman
+ self.user_company_id.zip_pengiriman = self.pengajuan_tempo_id.zip_pengiriman
+ self.user_company_id.invoice_pic = self.pengajuan_tempo_id.invoice_pic
+ self.user_company_id.street_invoice = self.pengajuan_tempo_id.street_invoice
+ self.user_company_id.state_id_invoice = self.pengajuan_tempo_id.state_id_invoice
+ self.user_company_id.city_id_invoice = self.pengajuan_tempo_id.city_id_invoice
+ self.user_company_id.tukar_invoice = self.pengajuan_tempo_id.tukar_invoice
+ self.user_company_id.jadwal_bayar = self.pengajuan_tempo_id.jadwal_bayar
+ self.user_company_id.dokumen_pengiriman = self.pengajuan_tempo_id.dokumen_pengiriman
+ self.user_company_id.dokumen_invoice = self.pengajuan_tempo_id.dokumen_invoice
+
+ # Referensi
+ self.user_company_id.supplier_ids = self.pengajuan_tempo_id.supplier_ids
+
+ # Dokumen
+ self.user_company_id.dokumen_nib = self.pengajuan_tempo_id.dokumen_nib
+ if self.user_company_id.dokumen_nib:
+ self.user_company_id.message_post(body='Dokumen NIB', attachment_ids=[self.user_company_id.dokumen_nib.id])
+
+ self.user_company_id.dokumen_npwp = self.pengajuan_tempo_id.dokumen_npwp
+ if self.user_company_id.dokumen_npwp:
+ self.user_company_id.message_post(body='Dokumen NPWP', attachment_ids=[self.user_company_id.dokumen_npwp.id])
+
+ self.user_company_id.dokumen_sppkp = self.pengajuan_tempo_id.dokumen_sppkp
+ if self.user_company_id.dokumen_sppkp:
+ self.user_company_id.message_post(body='Dokumen SPPKP', attachment_ids=[self.user_company_id.dokumen_sppkp.id])
+
+ self.user_company_id.dokumen_akta_perubahan = self.pengajuan_tempo_id.dokumen_akta_perubahan
+ if self.user_company_id.dokumen_akta_perubahan:
+ self.user_company_id.message_post(body='Dokumen Akta Perubahan',
+ attachment_ids=[self.user_company_id.dokumen_akta_perubahan.id])
+
+ self.user_company_id.dokumen_ktp_dirut = self.pengajuan_tempo_id.dokumen_ktp_dirut
+ if self.user_company_id.dokumen_ktp_dirut:
+ self.user_company_id.message_post(body='Dokumen Ktp Dirut',
+ attachment_ids=[self.user_company_id.dokumen_ktp_dirut.id])
+
+ self.user_company_id.dokumen_akta_pendirian = self.pengajuan_tempo_id.dokumen_akta_pendirian
+ if self.user_company_id.dokumen_akta_pendirian:
+ self.user_company_id.message_post(body='Dokumen Akta Pendirian',
+ attachment_ids=[self.user_company_id.dokumen_akta_pendirian.id])
+
+ self.user_company_id.dokumen_laporan_keuangan = self.pengajuan_tempo_id.dokumen_laporan_keuangan
+ if self.user_company_id.dokumen_laporan_keuangan:
+ self.user_company_id.message_post(body='Dokumen Laporan Keuangan',
+ attachment_ids=[self.user_company_id.dokumen_laporan_keuangan.id])
+
+ self.user_company_id.dokumen_foto_kantor = self.pengajuan_tempo_id.dokumen_foto_kantor
+ if self.user_company_id.dokumen_foto_kantor:
+ self.user_company_id.message_post(body='Dokumen Foto Kantor',
+ attachment_ids=[self.user_company_id.dokumen_foto_kantor.id])
+
+ self.user_company_id.dokumen_tempat_bekerja = self.pengajuan_tempo_id.dokumen_tempat_bekerja
+ if self.user_company_id.dokumen_tempat_bekerja:
+ self.user_company_id.message_post(body='Dokumen Tempat Bekerja',
+ attachment_ids=[self.user_company_id.dokumen_tempat_bekerja.id])
# self.user_company_id.active = True
# user.send_company_request_approve_mail()
- else:
- new_company = self.env['res.partner'].create({
- 'name': self.user_input
- })
+ self.user_company_id.property_payment_term_id = self.pengajuan_tempo_id.tempo_duration.id
+ self.user_company_id.active_limit = True
+ self.user_company_id.warning_stage = self.pengajuan_tempo_id.tempo_limit - (int(self.pengajuan_tempo_id.tempo_limit)/2)
+ self.user_company_id.blocking_stage = self.pengajuan_tempo_id.tempo_limit
+ template = self.env.ref('indoteknik_custom.mail_template_user_cart_reminder_to_checkout')
+ template.send_mail(latest_cart.id, force_send=True)
# self.user_id.parent_id = new_company.id
# user.send_company_request_reject_mail()
return super(UserPengajuanTempoRequest, self).write(vals)