diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2023-01-10 16:54:57 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2023-01-10 16:54:57 +0700 |
| commit | e1a19093f74222251280bf598a6256d6766dc4a2 (patch) | |
| tree | 30bd46d13c69388f72fbedb9e3399af3819c5032 | |
| parent | b12be84e1f8f4b0082a4c77e25b3dc68434b1ebc (diff) | |
add reklas for uang muka penjualan
| -rw-r--r-- | __init__.py | 0 | ||||
| -rwxr-xr-x | indoteknik_custom/__manifest__.py | 1 | ||||
| -rwxr-xr-x | indoteknik_custom/models/__init__.py | 1 | ||||
| -rw-r--r-- | indoteknik_custom/models/invoice_reklas.py | 58 | ||||
| -rwxr-xr-x | indoteknik_custom/models/sale_order.py | 2 | ||||
| -rwxr-xr-x | indoteknik_custom/security/ir.model.access.csv | 3 | ||||
| -rw-r--r-- | indoteknik_custom/views/account_move.xml | 4 | ||||
| -rw-r--r-- | indoteknik_custom/views/invoice_reklas.xml | 31 |
8 files changed, 99 insertions, 1 deletions
diff --git a/__init__.py b/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/__init__.py diff --git a/indoteknik_custom/__manifest__.py b/indoteknik_custom/__manifest__.py index 137cfb1f..a5f262bd 100755 --- a/indoteknik_custom/__manifest__.py +++ b/indoteknik_custom/__manifest__.py @@ -54,6 +54,7 @@ 'views/customer_review.xml', 'views/website_content_channel.xml', 'views/website_content.xml', + 'views/invoice_reklas.xml', 'report/report.xml', 'report/report_banner_banner.xml', 'report/report_banner_banner2.xml', diff --git a/indoteknik_custom/models/__init__.py b/indoteknik_custom/models/__init__.py index d7d3e03c..4b9d4545 100755 --- a/indoteknik_custom/models/__init__.py +++ b/indoteknik_custom/models/__init__.py @@ -41,3 +41,4 @@ from . import purchase_outstanding from . import sales_outstanding from . import customer_review from . import website_content +from . import invoice_reklas diff --git a/indoteknik_custom/models/invoice_reklas.py b/indoteknik_custom/models/invoice_reklas.py new file mode 100644 index 00000000..7c29ebca --- /dev/null +++ b/indoteknik_custom/models/invoice_reklas.py @@ -0,0 +1,58 @@ +from odoo import api, fields, models, _ +from odoo.exceptions import UserError +from datetime import datetime +from odoo.http import request + +import logging + +_logger = logging.getLogger(__name__) + + +class InvoiceReklas(models.TransientModel): + _name = 'invoice.reklas' + _description = "digunakan untuk reklas Uang Muka Penjualan" + reklas_id = fields.Many2one('account.move', string='Nomor CAB') + pay_amt = fields.Float(string='Yang dibayarkan') + + def create_reklas(self): + if not self.reklas_id: + raise UserError('Nomor CAB harus diisi') + invoices = self.env['account.move'].browse(self._context.get('active_ids', [])) + current_time = datetime.now() + for invoice in invoices: + + parameters_header = { + 'ref': 'REKLAS '+self.reklas_id.name+" UANG MUKA PENJUALAN "+invoice.name+" "+invoice.partner_id.name, + 'date': current_time, + 'journal_id': 13 + } + + account_move = request.env['account.move'].create([parameters_header]) + _logger.info('Success Reklas with %s' % account_move.name) + + parameter_debit = { + 'move_id': account_move.id, + 'account_id': 449, + 'partner_id': invoice.partner_id.id, + 'currency_id': 12, + 'debit': self.pay_amt, + 'credit': 0 + } + parameter_credit = { + 'move_id': account_move.id, + 'account_id': 395, + 'partner_id': invoice.partner_id.id, + 'currency_id': 12, + 'debit': 0, + 'credit': self.pay_amt + } + request.env['account.move.line'].create([parameter_debit, parameter_credit]) + return { + 'name': _('Journal Entries'), + 'view_mode': 'form', + 'res_model': 'account.move', + 'target': 'current', + 'view_id': False, + 'type': 'ir.actions.act_window', + 'res_id': account_move.id + } diff --git a/indoteknik_custom/models/sale_order.py b/indoteknik_custom/models/sale_order.py index e7b28c6d..c8937ca4 100755 --- a/indoteknik_custom/models/sale_order.py +++ b/indoteknik_custom/models/sale_order.py @@ -235,6 +235,8 @@ class SaleOrder(models.Model): def action_confirm(self): res = super(SaleOrder, self).action_confirm() for order in self: + if order.warehouse_id.id != 8: #GD Bandengan + raise UserError('Gudang harus Bandengan') if not order.sales_tax_id: raise UserError("Tax di Header harus diisi") if not order.carrier_id: diff --git a/indoteknik_custom/security/ir.model.access.csv b/indoteknik_custom/security/ir.model.access.csv index 2f70d737..67bce62c 100755 --- a/indoteknik_custom/security/ir.model.access.csv +++ b/indoteknik_custom/security/ir.model.access.csv @@ -23,4 +23,5 @@ access_purchase_outstanding,access.purchase.outstanding,model_purchase_outstandi access_sales_outstanding,access.sales.outstanding,model_sales_outstanding,,1,1,1,1 access_customer_review,access.customer.review,model_customer_review,,1,1,1,1 access_website_content_channel,access.website.content.channel,model_website_content_channel,,1,1,1,1 -access_website_content,access.website.content,model_website_content,,1,1,1,1
\ No newline at end of file +access_website_content,access.website.content,model_website_content,,1,1,1,1 +access_invoice_reklas,access.invoice.reklas,model_invoice_reklas,,1,1,1,1
\ No newline at end of file diff --git a/indoteknik_custom/views/account_move.xml b/indoteknik_custom/views/account_move.xml index b3e9fb8c..c315bb1c 100644 --- a/indoteknik_custom/views/account_move.xml +++ b/indoteknik_custom/views/account_move.xml @@ -6,6 +6,10 @@ <field name="model">account.move</field> <field name="inherit_id" ref="account.view_move_form"/> <field name="arch" type="xml"> + <button name="action_register_payment" position="after"> + <button name="indoteknik_custom.action_view_invoice_reklas" string="Reklas" + type="action" class="btn-primary" attrs="{'invisible': [('state', '!=', 'posted')]}"/> + </button> <field name="invoice_user_id" position="after"> <field name="date_kirim_tukar_faktur"/> <field name="shipper_faktur_id"/> diff --git a/indoteknik_custom/views/invoice_reklas.xml b/indoteknik_custom/views/invoice_reklas.xml new file mode 100644 index 00000000..126ba71e --- /dev/null +++ b/indoteknik_custom/views/invoice_reklas.xml @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<odoo> + <record id="view_invoice_reklas" model="ir.ui.view"> + <field name="name">Invoice Reklas</field> + <field name="model">invoice.reklas</field> + <field name="arch" type="xml"> + <form string="Invoice Sales Order"> + <p class="oe_grey"> + Invoices will be created in draft so that you can review + them before validation. + </p> + <group> + <field name="reklas_id"/> + <field name="pay_amt"/> + </group> + <footer> + <button name="create_reklas" id="create_reklas" string="Create Reklas" type="object" required="1"/> + </footer> + </form> + </field> + </record> + + <record id="action_view_invoice_reklas" model="ir.actions.act_window"> + <field name="name">Create Reklas</field> + <field name="type">ir.actions.act_window</field> + <field name="res_model">invoice.reklas</field> + <field name="view_mode">form</field> + <field name="target">new</field> + </record> + +</odoo> |
