summaryrefslogtreecommitdiff
path: root/indoteknik_custom/models
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2023-01-13 04:41:16 +0000
committerIT Fixcomart <it@fixcomart.co.id>2023-01-13 04:41:16 +0000
commit45b8c4757ba6107037c3e1f1e2a64c9e47e8ae48 (patch)
tree7d088c21df7a7ac74d896259aefa94d940920294 /indoteknik_custom/models
parent0f8fbe56e89ec285c6fbcdd2bed5a67f62bcfe59 (diff)
parent6fe453ed5da6cfda56f4af454dbedc00b97f0f9e (diff)
Merged in staging (pull request #19)
Staging
Diffstat (limited to 'indoteknik_custom/models')
-rwxr-xr-xindoteknik_custom/models/__init__.py65
-rw-r--r--indoteknik_custom/models/dunning_run.py53
-rwxr-xr-xindoteknik_custom/models/product_template.py2
-rw-r--r--indoteknik_custom/models/res_partner.py7
-rwxr-xr-xindoteknik_custom/models/x_manufactures.py2
5 files changed, 89 insertions, 40 deletions
diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py
index 3d4d646b..8ada3b95 100755
--- a/indoteknik_custom/models/__init__.py
+++ b/indoteknik_custom/models/__init__.py
@@ -1,45 +1,46 @@
-from . import x_banner_banner
-from . import x_banner_category
-from . import x_biaya_kirim
-from . import x_manufactures
+from . import account_asset
+from . import account_move
+from . import blog_post
from . import coupon_program
+from . import crm_lead
+from . import custom_mail_marketing
+from . import customer_review
+from . import delivery_carrier
+from . import delivery_order
+from . import dunning_run
+from . import invoice_reklas
+from . import ir_attachment
+from . import mail_mail
+from . import product_pricelist
from . import product_public_category
+from . import product_spec
from . import product_template
-from . import x_partner_purchase_order
-from . import x_product_tags
-from . import stock_vendor
-from . import crm_lead
-from . import res_users
-from . import user_activity_log
+from . import purchase_order_line
from . import purchase_order
+from . import purchase_outstanding
from . import purchase_pricelist
-from . import purchase_order_line
-from . import sale_order
+from . import res_partner
+from . import res_users
from . import sale_monitoring_detail
from . import sale_monitoring
-from . import account_move
-from . import account_asset
-from . import blog_post
+from . import sale_order
+from . import sales_outstanding
+from . import sales_target
from . import stock_move
-from . import stock_picking
+from . import stock_picking_return
from . import stock_picking_type
-from . import delivery_order
-from . import product_pricelist
+from . import stock_picking
+from . import stock_vendor
+from . import user_activity_log
from . import users
-from . import ir_attachment
-from . import delivery_carrier
-from . import dunning_run
-from . import stock_picking_return
-from . import website_user_cart
-from . import website_user_wishlist
from . import website_brand_homepage
-from . import mail_mail
from . import website_categories_homepage
-from . import sales_target
-from . import product_spec
-from . import purchase_outstanding
-from . import sales_outstanding
-from . import customer_review
from . import website_content
-from . import invoice_reklas
-from . import custom_mail_marketing
+from . import website_user_cart
+from . import website_user_wishlist
+from . import x_banner_banner
+from . import x_banner_category
+from . import x_biaya_kirim
+from . import x_manufactures
+from . import x_partner_purchase_order
+from . import x_product_tags
diff --git a/indoteknik_custom/models/dunning_run.py b/indoteknik_custom/models/dunning_run.py
index 5d98bb98..ed9aa7c0 100644
--- a/indoteknik_custom/models/dunning_run.py
+++ b/indoteknik_custom/models/dunning_run.py
@@ -10,24 +10,55 @@ class DunningRun(models.Model):
_description = 'Dunning Run'
_order = 'dunning_date desc, id desc'
- number = fields.Char(string='Document No', index=True, required=True, copy=False, readonly=True)
- dunning_date = fields.Date(string='Dunning Date')
+ number = fields.Char(string='Document No', index=True, copy=False, readonly=True)
+ dunning_date = fields.Date(string='Dunning Date', required=True)
partner_id = fields.Many2one(
'res.partner', string='Customer',
required=True, change_default=True, index=True, tracking=1)
dunning_line = fields.One2many('dunning.run.line', 'dunning_id', string='Dunning Lines', auto_join=True)
- dunning_level = fields.Integer(string='Dunning Level', default=30, help='30 hari sebelum jatuh tempo invoice')
+ # dunning_level = fields.Integer(string='Dunning Level', default=30, help='30 hari sebelum jatuh tempo invoice')
+
+ def generate_dunning_line(self):
+ if self.partner_id.parent_id:
+ raise UserError('Harus pilih parent company')
+
+ partners = []
+ partners += self.partner_id.child_ids
+ partners.append(self.partner_id)
+
+ for partner in partners:
+ query = [
+ ('move_type', '=', 'out_invoice'),
+ ('partner_id', '=', partner.id),
+ ('outstanding_amount', '>', 0),
+ ]
+ invoices = self.env['account.move'].search(query, order='invoice_date')
+ for invoice in invoices:
+ parameter_line = {
+ 'dunning_id': self.id,
+ 'partner_id': invoice.partner_id,
+ 'invoice_id': invoice.id,
+ 'date_invoice': invoice.invoice_date,
+ 'efaktur_id': invoice.efaktur_id,
+ 'reference': invoice.ref,
+ 'open_amt': invoice.outstanding_amount
+ }
+ self.env['dunning.run.line'].create([parameter_line])
+
+ @api.model
+ def create(self, vals):
+ vals['number'] = self.env['ir.sequence'].next_by_code('dunning.run') or '0'
+ result = super(DunningRun, self).create(vals)
+ return result
def generate_dunning_line(self):
# validation
if not self.partner_id:
raise UserError('Customer harus diisi')
- if self.dunning_level <= 0:
- raise UserError('Dunning Level harus diisi lebih dari 0')
invoices = self.env['account.move'].search([
('amount_residual_signed', '>', 0),
- ('partner_id', '=', self.partner_id),
+ ('partner_id', '=', self.partner_id.id),
('move_type', '=', 'out_invoice'),
('state', '=', 'posted'),
])
@@ -35,11 +66,14 @@ class DunningRun(models.Model):
for invoice in invoices:
self.env['dunning.run.line'].create([{
'dunning_id': self.id,
+ 'partner_id': invoice.partner_id.id,
'invoice_id': invoice.id,
'date_invoice': invoice.invoice_date,
- 'efaktur_id': invoice.efaktur_id,
+ 'efaktur_id': invoice.efaktur_id.id,
'reference': invoice.ref,
- 'open_amt': invoice.amount_residual_signed
+ 'total_amt': invoice.amount_total,
+ 'open_amt': invoice.amount_residual_signed,
+ 'due_date': invoice.invoice_date_due
}])
count += 1
_logger.info("Dunning Line generated %s" % count)
@@ -51,10 +85,13 @@ class DunningRunLine(models.Model):
_order = 'dunning_id, id'
dunning_id = fields.Many2one('dunning.run', string='Dunning Ref', required=True, ondelete='cascade', index=True, copy=False)
+ partner_id = fields.Many2one('res.partner', string='Customer')
invoice_id = fields.Many2one('account.move', string='Invoice')
date_invoice = fields.Date(string='Invoice Date')
# due_date = fields.Date(string='Due Date')
efaktur_id = fields.Many2one('vit.efaktur', string='Faktur Pajak')
reference = fields.Char(string='Reference')
+ total_amt = fields.Float(string='Total Amount')
open_amt = fields.Float(string='Open Amount')
+ due_date = fields.Date(string='Due Date')
diff --git a/indoteknik_custom/models/product_template.py b/indoteknik_custom/models/product_template.py
index dbbd4ad4..9f0410f4 100755
--- a/indoteknik_custom/models/product_template.py
+++ b/indoteknik_custom/models/product_template.py
@@ -44,6 +44,8 @@ class ProductTemplate(models.Model):
usage = fields.Char(string='Usage')
specification = fields.Char(string='Specification')
material = fields.Char(string='Material')
+ is_new_product = fields.Boolean(string='Produk Baru',
+ help='Centang jika ingin ditammpilkan di website sebagai segment Produk Baru')
# def write(self, vals):
# if 'solr_flag' not in vals and self.solr_flag == 1:
diff --git a/indoteknik_custom/models/res_partner.py b/indoteknik_custom/models/res_partner.py
new file mode 100644
index 00000000..403245fb
--- /dev/null
+++ b/indoteknik_custom/models/res_partner.py
@@ -0,0 +1,7 @@
+from odoo import models, fields
+
+
+class ResPartner(models.Model):
+ _inherit = 'res.partner'
+
+ reference_number = fields.Char(string="Reference Number")
diff --git a/indoteknik_custom/models/x_manufactures.py b/indoteknik_custom/models/x_manufactures.py
index 1d215cf8..e6842797 100755
--- a/indoteknik_custom/models/x_manufactures.py
+++ b/indoteknik_custom/models/x_manufactures.py
@@ -42,6 +42,8 @@ class XManufactures(models.Model):
('reset', 'Reset'),
('done', 'Done')
], string="Cache Reset")
+ sequence = fields.Integer(string='Sequence', help='Urutan tampil di homepage jika show as new product')
+ show_as_new_product = fields.Boolean(string='Show as New Product', help='Centang jika ingin ditammpilkan di website sebagai segment Produk Baru')
def cache_reset(self):
manufactures = self.env['x_manufactures'].search([