From 48dcbfec8af08ab4090b7c5b94a2b65a62af4bea Mon Sep 17 00:00:00 2001 From: mikevhe18 Date: Wed, 11 Sep 2019 18:16:22 +0700 Subject: [PATCH 1/6] [8.0.1.0.0][l10n_id_djbc_kite_common] [8.0.1.0.0] Adding ACL for Movement Type Object --- l10n_id_djbc_kite_common/README.rst | 49 +++ l10n_id_djbc_kite_common/__init__.py | 6 + l10n_id_djbc_kite_common/__openerp__.py | 27 ++ .../data/product_category_data.xml | 110 +++++++ l10n_id_djbc_kite_common/menu.xml | 17 ++ l10n_id_djbc_kite_common/models/__init__.py | 10 + .../models/djbc_kite_movement_type.py | 25 ++ .../models/product_category.py | 13 + .../models/product_template.py | 27 ++ .../models/stock_picking_type.py | 18 ++ l10n_id_djbc_kite_common/reports/__init__.py | 5 + .../reports/lap_kite_mutasi_common.py | 281 ++++++++++++++++++ .../reports/lap_kite_mutasi_common_views.xml | 37 +++ .../security/ir.model.access.csv | 3 + .../static/description/icon.png | Bin 0 -> 5005 bytes .../views/djbc_kite_movement_type_views.xml | 61 ++++ .../views/product_category_views.xml | 18 ++ .../views/product_template_views.xml | 21 ++ .../views/stock_picking_type_views.xml | 18 ++ 19 files changed, 746 insertions(+) create mode 100644 l10n_id_djbc_kite_common/README.rst create mode 100644 l10n_id_djbc_kite_common/__init__.py create mode 100644 l10n_id_djbc_kite_common/__openerp__.py create mode 100644 l10n_id_djbc_kite_common/data/product_category_data.xml create mode 100644 l10n_id_djbc_kite_common/menu.xml create mode 100644 l10n_id_djbc_kite_common/models/__init__.py create mode 100644 l10n_id_djbc_kite_common/models/djbc_kite_movement_type.py create mode 100644 l10n_id_djbc_kite_common/models/product_category.py create mode 100644 l10n_id_djbc_kite_common/models/product_template.py create mode 100644 l10n_id_djbc_kite_common/models/stock_picking_type.py create mode 100644 l10n_id_djbc_kite_common/reports/__init__.py create mode 100644 l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common.py create mode 100644 l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common_views.xml create mode 100644 l10n_id_djbc_kite_common/security/ir.model.access.csv create mode 100644 l10n_id_djbc_kite_common/static/description/icon.png create mode 100644 l10n_id_djbc_kite_common/views/djbc_kite_movement_type_views.xml create mode 100644 l10n_id_djbc_kite_common/views/product_category_views.xml create mode 100644 l10n_id_djbc_kite_common/views/product_template_views.xml create mode 100644 l10n_id_djbc_kite_common/views/stock_picking_type_views.xml diff --git a/l10n_id_djbc_kite_common/README.rst b/l10n_id_djbc_kite_common/README.rst new file mode 100644 index 0000000..3904fa5 --- /dev/null +++ b/l10n_id_djbc_kite_common/README.rst @@ -0,0 +1,49 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +=================================== +Indonesia - Common Feature for KITE +=================================== + + + +Installation +============ + +To install this module, you need to: + +1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-l10n-indonesia +2. Add the path to this repository in your configuration (addons-path) +3. Update the module list +4. Go to menu *Setting -> Modules -> Local Modules* +5. Search For *Indonesia - Common Feature for KITE* +6. Install the module + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed +and welcomed feedback. + + +Credits +======= + +Contributors +------------ + +* Michael Viriyananda +* Andhitia Rama + +Maintainer +---------- + +.. image:: https://opensynergy-indonesia.com/logo.png + :alt: OpenSynergy Indonesia + :target: https://opensynergy-indonesia.com + +This module is maintained by the OpenSynergy Indonesia. diff --git a/l10n_id_djbc_kite_common/__init__.py b/l10n_id_djbc_kite_common/__init__.py new file mode 100644 index 0000000..20e86c3 --- /dev/null +++ b/l10n_id_djbc_kite_common/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models +# from . import reports diff --git a/l10n_id_djbc_kite_common/__openerp__.py b/l10n_id_djbc_kite_common/__openerp__.py new file mode 100644 index 0000000..7314fb4 --- /dev/null +++ b/l10n_id_djbc_kite_common/__openerp__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# pylint: disable=locally-disabled, manifest-required-author +{ + "name": "Indonesia - Common Feature for KITE", + "version": "8.0.1.0.0", + "category": "localization", + "website": "https://opensynergy-indonesia.com", + "author": "OpenSynergy Indonesia", + "license": "AGPL-3", + "installable": True, + "depends": [ + "l10n_id_djbc_app", + "product_m2mcategories", + "stock_adjustment_operation", + ], + "data": [ + "security/ir.model.access.csv", + "data/product_category_data.xml", + "menu.xml", + "views/djbc_kite_movement_type_views.xml", + "views/stock_picking_type_views.xml", + "views/product_category_views.xml", + "views/product_template_views.xml", + ], +} diff --git a/l10n_id_djbc_kite_common/data/product_category_data.xml b/l10n_id_djbc_kite_common/data/product_category_data.xml new file mode 100644 index 0000000..4396a6d --- /dev/null +++ b/l10n_id_djbc_kite_common/data/product_category_data.xml @@ -0,0 +1,110 @@ + + + + + + + + KITE + view + + + + Bahan Baku + view + + + + + + Bahan Penolong + view + + + + + + Barang Modal + view + + + + + Peralatan Untuk Pembangunan, Perluasan, atau Konstruksi KITE + view + + + + + + Mesin + view + + + + + + Cetakan Moulding + view + + + + + + Sparepart + view + + + + + + Peralatan Kantor + view + + + + + + Barang Contoh + view + + + + + + Barang WIP + view + + + + + + Hasil Produksi + view + + + + + + Scrap/Waste + view + + + + + + Pengemas & Alat Bantu Pengemas + view + + + + + + Barang Untuk Konsumsi + view + + + + + diff --git a/l10n_id_djbc_kite_common/menu.xml b/l10n_id_djbc_kite_common/menu.xml new file mode 100644 index 0000000..a9fccda --- /dev/null +++ b/l10n_id_djbc_kite_common/menu.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/l10n_id_djbc_kite_common/models/__init__.py b/l10n_id_djbc_kite_common/models/__init__.py new file mode 100644 index 0000000..35d1a89 --- /dev/null +++ b/l10n_id_djbc_kite_common/models/__init__.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import ( + djbc_kite_movement_type, + stock_picking_type, + product_template, + product_category, +) diff --git a/l10n_id_djbc_kite_common/models/djbc_kite_movement_type.py b/l10n_id_djbc_kite_common/models/djbc_kite_movement_type.py new file mode 100644 index 0000000..b2290dd --- /dev/null +++ b/l10n_id_djbc_kite_common/models/djbc_kite_movement_type.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields + + +class DjbcKiteMovementType(models.Model): + _name = "l10n_id.djbc_kite_movement_type" + _description = "DJBC KITE Movement Type" + + name = fields.Char( + string="Name", + required=True, + ) + code = fields.Char( + string="Code", + ) + active = fields.Boolean( + string="Active", + default=True, + ) + note = fields.Text( + string="Note", + ) diff --git a/l10n_id_djbc_kite_common/models/product_category.py b/l10n_id_djbc_kite_common/models/product_category.py new file mode 100644 index 0000000..113cf25 --- /dev/null +++ b/l10n_id_djbc_kite_common/models/product_category.py @@ -0,0 +1,13 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields + + +class ProductCategory(models.Model): + _inherit = "product.category" + + djbc_kite_ok = fields.Boolean( + string="Category for DJBC KITE", + ) diff --git a/l10n_id_djbc_kite_common/models/product_template.py b/l10n_id_djbc_kite_common/models/product_template.py new file mode 100644 index 0000000..076bf6b --- /dev/null +++ b/l10n_id_djbc_kite_common/models/product_template.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields, api + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + @api.multi + @api.depends( + "categ_ids" + ) + def _compute_djbc_kite_ok(self): + for template in self: + djbc_ok = False + for categ in template.categ_ids: + if categ.djbc_kite_ok: + djbc_ok = True + template.djbc_kite_ok = djbc_ok + + djbc_kite_ok = fields.Boolean( + string="Can be Used for DJBC KITE", + compute="_compute_djbc_kite_ok", + store=True, + ) diff --git a/l10n_id_djbc_kite_common/models/stock_picking_type.py b/l10n_id_djbc_kite_common/models/stock_picking_type.py new file mode 100644 index 0000000..03a2e25 --- /dev/null +++ b/l10n_id_djbc_kite_common/models/stock_picking_type.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields + + +class StockPickingType(models.Model): + _inherit = "stock.picking.type" + + djbc_kite_movement_type_id = fields.Many2one( + string="DJBC's Kite Movement Type", + comodel_name="l10n_id.djbc_kite_movement_type" + ) + djbc_kite_scrap = fields.Boolean( + string="DJBC's KITE Scrap?", + default=False, + ) diff --git a/l10n_id_djbc_kite_common/reports/__init__.py b/l10n_id_djbc_kite_common/reports/__init__.py new file mode 100644 index 0000000..a1aaa1c --- /dev/null +++ b/l10n_id_djbc_kite_common/reports/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import lap_kite_mutasi_common diff --git a/l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common.py b/l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common.py new file mode 100644 index 0000000..38029dc --- /dev/null +++ b/l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common.py @@ -0,0 +1,281 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields, api +from openerp import tools + + +class LapKiteMutasiCommon(models.AbstractModel): + _name = "l10n_id.djbc_kite_lap_mutasi_common" + _description = "Common Model for Laporan Mutasi KITE" + _auto = False + + @api.multi + def _qty_from(self): + self.ensure_one() + str_select = """ + FROM stock_move AS a + JOIN stock_picking_type AS b ON a.picking_type_id = b.id + JOIN stock_location AS c ON a.location_id = c.id + JOIN stock_location AS d ON a.location_dest_id =d.id + """ + return str_select + + @api.multi + def _qty_where( + self, date_start, date_end, movement_type="in", + scrap=False, adjustment=False + ): + self.ensure_one() + str_where = """ + WHERE + a.product_id = %s AND + b.warehouse_id = %s AND + b.djbc_kb_movement_type = '%s' AND + b.djbc_kb_scrap %s AND + a.state = 'done' AND + """ % ( + self.product_id.id, + self.warehouse_id.id, + movement_type, + scrap and 'IS TRUE' or 'IS FALSE', + ) + if date_start: + str_where += """ + a.date >= '%s' AND + a.date <= '%s' + """ % (date_start, date_end) + else: + str_where += """ + a.date < '%s' + """ % (date_end) + if adjustment: + str_where += """ + AND (a.inventory_id != %s OR + a.inventory_id IS NULL) + """ % (adjustment) + + return str_where + + @api.multi + def _qty_join(self): + self.ensure_one() + pass + + @api.multi + def _qty_select(self): + self.ensure_one() + str_select = """ + SELECT + a.product_qty AS qty + """ + return str_select + + @api.multi + def _compute_qty(self): + date_start = self._context.get("date_start", False) + date_end = self._context.get("date_end", False) + obj_inv_line = self.env["stock.inventory.line"] + obj_inv = self.env["stock.inventory"] + + for lap in self: + saldo_awal = pemasukan = pengeluaran = \ + penyesuaian = saldo_akhir = stock_opname = \ + selisih = 0.0 + + # Adjustment + inv = False + view_root_id = lap.warehouse_id.view_location_id.id + criteria1 = [ + ("date", ">=", date_start), + ("date", "<=", date_end), + ("state", "=", "done"), + ("djbc", "=", True), + ("location_id.id", "child_of", view_root_id), + ] + invs = obj_inv.search(criteria1, order="date desc", limit=1) + if invs: + inv = invs[0] + + saldo_awal_pemasukan = lap._get_qty( + False, date_start, "in", False, False) + saldo_awal_pengeluaran = lap._get_qty( + False, date_start, "out", False, False) + saldo_awal = saldo_awal_pemasukan - saldo_awal_pengeluaran + pemasukan = lap._get_qty( + date_start, date_end, "in", False, inv and inv.id or False) + pengeluaran = lap._get_qty( + date_start, date_end, "out", False, inv and inv.id or False) + + if inv: + criteria = [ + ("inventory_id", "=", inv.id), + ("product_id", "=", lap.product_id.id), + ] + for inv_line in obj_inv_line.search(criteria): + stock_opname += inv_line.product_qty + penyesuaian += (inv_line.product_qty - + inv_line.theoretical_qty) + + saldo_akhir = saldo_awal + pemasukan - pengeluaran + penyesuaian + selisih = saldo_akhir - stock_opname + + if stock_opname == saldo_akhir: + keterangan = "sesuai" + elif saldo_akhir > stock_opname: + keterangan = "lebih" + else: + keterangan = "kurang" + + lap.saldo_awal = saldo_awal + lap.stock_opname = stock_opname + lap.pemasukan = pemasukan + lap.pengeluaran = pengeluaran + lap.saldo_akhir = saldo_akhir + lap.penyesuaian = penyesuaian + lap.selisih = selisih + lap.keterangan = keterangan + + @api.multi + def _get_qty(self, date_start, date_end, movement_type, scrap, adjustment): + self.ensure_one() + result = 0.0 + # pylint: disable=locally-disabled, sql-injection + str_sql = """ + %s + %s + %s + """ % ( + self._qty_select(), + self._qty_from(), + self._qty_where( + date_start, + date_end, + movement_type, + scrap, + adjustment + ) + ) + self.env.cr.execute(str_sql) + a = self.env.cr.dictfetchall() + for row in a: + result += row["qty"] + return result + + kode_barang = fields.Char( + string="Kode Barang", + readonly=True, + ) + product_id = fields.Many2one( + string="Nama Barang", + comodel_name="product.product", + readonly=True, + ) + uom_id = fields.Many2one( + string="Satuan", + comodel_name="product.uom", + readonly=True, + ) + saldo_awal = fields.Float( + string="Saldo Awal", + readonly=True, + compute="_compute_qty", + store=False, + ) + pemasukan = fields.Float( + string="Pemasukan", + readonly=True, + compute="_compute_qty", + store=False, + ) + pengeluaran = fields.Float( + string="Pengeluaran", + readonly=True, + compute="_compute_qty", + store=False, + ) + penyesuaian = fields.Float( + string="Penyesuaian", + readonly=True, + compute="_compute_qty", + store=False, + ) + stock_opname = fields.Float( + string="Stock Opname", + readonly=True, + compute="_compute_qty", + store=False, + ) + saldo_akhir = fields.Float( + string="Saldo Buku", + readonly=True, + compute="_compute_qty", + store=False, + ) + selisih = fields.Float( + string="Selisih", + readonly=True, + compute="_compute_qty", + store=False, + ) + keterangan = fields.Selection( + string="Ket", + compute="_compute_qty", + store=False, + selection=[ + ("sesuai", "Sesuai"), + ("kurang", "Selisih Kurang"), + ("lebih", "Selisih Lebih"), + ], + ) + warehouse_id = fields.Many2one( + string="Warehouse", + comodel_name="stock.warehouse", + ) + + def _select(self): + select_str = """ + SELECT row_number() OVER() as id, + a.default_code AS kode_barang, + a.id AS product_id, + b.uom_id AS uom_id, + stock_warehouse.id AS warehouse_id + """ + return select_str + + def _from(self): + from_str = """ + product_product AS a + """ + return from_str + + def _where(self): + where_str = """ + WHERE b.djbc_kb_ok = TRUE + """ + return where_str + + def _join(self): + join_str = """ + CROSS JOIN stock_warehouse + JOIN product_template AS b + ON a.product_tmpl_id = b.id + """ + return join_str + + def init(self, cr): + tools.drop_view_if_exists(cr, self._table) + # pylint: disable=locally-disabled, sql-injection + cr.execute("""CREATE or REPLACE VIEW %s as ( + %s + FROM %s + %s + %s + )""" % ( + self._table, + self._select(), + self._from(), + self._join(), + self._where() + )) diff --git a/l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common_views.xml b/l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common_views.xml new file mode 100644 index 0000000..2aa32e1 --- /dev/null +++ b/l10n_id_djbc_kite_common/reports/lap_kite_mutasi_common_views.xml @@ -0,0 +1,37 @@ + + + + + + + tree l10n_id.djbc_kb_lap_mutasi_common + l10n_id.djbc_kb_lap_mutasi_common + + + + + + + + + + + + + + + + + + + + search l10n_id.djbc_kb_lap_mutasi_common + l10n_id.djbc_kb_lap_mutasi_common + + + + + + + diff --git a/l10n_id_djbc_kite_common/security/ir.model.access.csv b/l10n_id_djbc_kite_common/security/ir.model.access.csv new file mode 100644 index 0000000..8866e1f --- /dev/null +++ b/l10n_id_djbc_kite_common/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_l10n_id_djbc_kite_movement_type_employee,l10n_id_djbc_kite_movement_type_employee - user,model_l10n_id_djbc_kite_movement_type,base.group_user,1,1,1,1 +access_l10n_id_djbc_kite_movement_type_all,l10n_id_djbc_kite_movement_type_employee - all,model_l10n_id_djbc_kite_movement_type,,1,0,0,0 diff --git a/l10n_id_djbc_kite_common/static/description/icon.png b/l10n_id_djbc_kite_common/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f884a8dadbc2ef5cbab0eeebd3ca733c7ae4bfc GIT binary patch literal 5005 zcmV;86LRc{P)WX`wbr7B*?~=x*8UCY_y3hiTf`K41$HjOecRd*~!w~rX)>5UO+>kZIXpTNC>7OJYt?UeqhPA-qJm1|L_$^wyt!q zbR|pn{boD^Mvueq`+nc=cg{WcT!LAKPr=>_pcBAq4zvMSKmaEIdp(3o09N_O1c1tK zV*ug+A^;-SAO!$Sa9|j~Wdig8I1b>{UodfgHpPpS^Wg6gsx4IF>pAdQ09^#=sE5!1 zz>!3*USI%x*C35>;52~u2=FH+kayma#-oM+iksnEIndJpVI=^UoY6CZ2!O#6NWBEu z3t)G-IYe0qpxaX47>-6C0V}+qQ~|r}u`3Uo!-tzOI|hpkEO|AF@j9CIFT)@3W#2fqoDIdo~94 z>$jxwxFGdFXQUzbGnKmBG7jwv+%<=f`cz=eJ`cC&2p1Dbh%t0E|-42)xf}js@H9fH|yg7#TLLubKPSO3Eu%QFCXHYI+mbw&CO_C zzYa0?N_04zQEZ$Z9)S69FV4Sn1gDO@Kg}UD3ZdU8;PL&j(H*l=0GlhEO%_6*Hb-JT zP`OGsm3XnS4jrFdk2}_`gMEV=rs}Ga>89i3e)PV15SQNX#p%Dkli~~-gur4}^WG?D zkL(E#U!64qxYOpkUx-ORwo0ru*KF_j+^2EV9k;=8)AEv^_xV2f5Ffnte>nZeKj-8M z5rLkU%)+RioZ5E) z=l=K?^c_2{RS2P&t>Veu{{C;3r2sZpI7JJg&zU2!ExBg=syjEKwyg!_4sYK@oOt8S zoE#x$HNO(&?7=T@X#y)W;kjaqpd2xoHDtJ9^(d zh?6hAp{XoH1bUW=)(3ZwUpWQ<%a<=NJpr^{7~NnC$94jkuVo&e$oi_*g_tYwpTC5^ zKL0X~zwoM-b%ZOy3iGx%f`bQ3P5`YJMmO5RvEM@Bs$JTwcQs?-eRpF0wg)g*@y^cQ zdZvOXw#x3{UjX8~* zmtkIm6XRC~;J@a*{_7eDsDXfSOj};BGRIj@WgvRg=Mc}&xC1P`GQP&_550mkD|3$OGv)xDL!re| zAoQ|{^F?aOZ(Fk(J^ysyb@Bng!sn&{Vo8_c$b1*t>YW(zdf^*Lz2K(c1opVZHoD^U zwUJ7*H)jX9_10T+dgH<~gVxaa#9Qg6dP?Lsbu7Ub9)1W|HT|luO+f^-qN1!xX5nz! z-v^bh!=5;U7oK@G?Ul!LP7o33QL);7$EBsNNG{_u<@z6s1cT2{B|qEcStarl0ZAtU zr2v*Qf|)MDuUd+=|8hT${`anFB1ptHSqN5%t&IeO&jZ+!Qwf+qf4=57HTGV7+#HTR ztd{&w&?+q1b`KhETa(oi&6wQ?s@Q?yXm&vm1XTR(BMkHD8;7Qr1VLgQqBmd*G}gRX za0h7XyY~5LF#J`usw$&o2wbiKk3OSQ)XlK=YpP1o6zRUyzZaG#Uh!b6y5+pyw0zP+S*#w*49os zKxgMNm`tXWA5jz`iek#&n@(JKjE(!Z10ZV12Y|LM8_~4ElXJGj!OPwa!eB6gXwLrY z8QR={Xe0vG`!U8KDZVb@1cJntG{uN7x}foJg2QAkO{N=FUlc`kJwV;@kLLx4M!pMx zs@-*KThWfz_3J=<6L|$N0>CVo%98w;6bF(25BbQrb^SVAJ#h+1vq+StFQCDpk?+P(4mmU7T6 zbB4SH;5c@6t2q+8OReoEXMZ6ATMpzG0VTS7bxt}*ESjR?xgr9+kQ~26Tt7Z}_Ik`OB9ci2mb0VYAJm`jfAw0& zJjD*wtF@3Xxa!c^(h4DvIyi<13}{2;)U|<@R$Oq^K^h!YC4zQI zSbZ%Jdd%T)JfXP+h=)#!75?z{O#MqbD{5K17(#8e!CnC%)K;Tq@#3r;B%3!3OGX8Z<0&u){RwTZOhqYKg08~*kI$K%| zmI{c@mR3|zvlbUXg+KhTT#?zX)YuLHlCWoFrTz<_~^Z zbrTq$%zmPUd;qZ2*Fy4+8!QzVk$SsgVk$I+g!m>Nb~qfr%IW}Y-=WQw!N@AD z4jgTa4-DO&%b=>L8N_Zg*eL=!s&YFdEj}=GI}RL8xydqRB~WB!8=E{;Q=9cuGaA|C zN3qdy&pr+g@4dmQb*ISs_X%!xqj3}Sd><=9L6Tc!y> zWaJ(IwOX=&>Hzpe&|swqNRD$OGfi6<%EDo-%ynuHKm(y3rqTMd4bDLEkf|q_S_)_& z)B|7#08pDKBD(KTCB}m*)qatZ{UokZ87M5K#yP=7ro>FacyMKO-=Rv;W&<@_tsoM+ zB_8lMtL^#~Yfs2%{)&Nfk#WuaKr*NCfWMhY>=ui~GT8%ILeY)La!*DTHD^`WW$&=T zP7z?eHjx)k0L(JylRZEz5LlCU_5(1F1;NGw215mgc`S&i0yjf6u4-){!8sj!`2e*9 zBOQ87I|73v;9+CuPeEq@;RphQBY95^Ex|~~*vkhf1u!o-HrAk&{VFZx1_rzaONE5W z_$u+1;8^B-9;MOPN&q#wEjk1Y2Ph=Gf$aBLsN|}KMq?{Y;R*k0078pSkKOtBavv7Y zuLDHmdVuZ-Md7`CCGU@sdjTOl;a_dCg0_XS%=tCLXEcHZK@M@vv_ND9ZKJV3U|}}$ zwXQh_&Rj6aDgd;^HJLM|ULY0-ETlr5Ia_po>e?U+87@$O>>p$yO>fDTxI&ycX(dCI zF3n#OTvVJ?t04m2$S;JeRx(tXn!Mpkf5AMm*bcmTdie4p`o{?6~Ih2E(VGoKPyEZN5y5z{$z0Pn89QYNEf$UTp$BX6i7Yg zDIfb+LU6=q^aDB6{osgCmygO&1_WB@>`$ph__)Q#hQ7J~=|djTKX9USq& z*5EK0PuD9I2os3H&!(Au#1wMcBUQr_Iop4(^(Z*vGs;1pw(p{%>g8cOEU*J9JBC6| zd&IQhKmQ|8X-hqgW=YaboIe&&DdUqn&Ej-nL`Ac~vd6Bi630H& zC7mabIQz0rhsVws(2miO$*o~RT{T)0zw=G9C&`43kKfoqT<@$-`Mb$)@>9;a;#S@S z`DzDZp!noxLnaP6=fjk9eo5&C$!alBp2)-@=ll}ooc9@Fn!U*40DY8mejLbf47GvT z>Hrew{5S>B3&6NqGxsnCpqB#Z=bRf|+#G|SCPp(?&?g#_o+ZnuLmwjapy5c??$4aQnP>8$}Magzoy#@K$l-9CAHxYcTX7r=lK+Bt&( zne#~jbaizF7-PLgT;>KCW4&EnU4iQYkg?YY&78q?u4z(N_!0oGhJ^&94=ADfpAHJ# zd1bCs1<=*ib&+%4tA=n5&4z(u2}1=ZU{7_w8jpXbH z0P1v39u4etI>9;L2_UbNo{Tb38uqV%Vb1wZr_+hV4^5B{0Nvf)Lq4DHZ8f#TCV=}kMD1c3yHtpe@pU|uEFfjAYpWNS_ z*tBWWo~!}@fU&W$XMohlU2EMPWVpc0Wq%s3xXdY334n9{8_xMzBlNQaob$7s^WUfz zKzDa{h;#l-zRjTF0)@?fwap*r{F(0V?vQE$$YtOO!v$tX_K%H?J)!jPiUN>b;K`}I zfYwIDaDn1we|rA;lSd%W8&m5_@#;g8BS0<@&VwNTFKAJ0TMWJ^{!zHzOfXRN~ z@M22IUP4H_S|^x`ZjdkW8OT4&81M0T+#k<~0AvxY5d``QfO&-wK{*RSi<@aBA3(n( zu`M2tJFgpi^A>6!E0_QhICA93 zPXKJklxqibK?r#g9|G{?x^?TmRmd?GTmW)&ct54|$Apm9Tt!eWV$gE8R0hjG&lvl* z$K%;m=Nu}9o)cTt`jQ#1i23E?qH>35K3 zp|>FNxe+!C@lgP; zGseE=cDpYYn~NC{KvHjTFQxQ*gpgY@y{=qOEy;Ed1?T)-#@G)%9?y$2HO3hgK$0VT zgAnp4A!KQ`*Os~%)Z943IX}ZWf6DE4|7@nmTM`10MPLE&O+v^+gpg(BCIpqlf5bU| z7Qj#4Zg;d4#$7T3ND_hxz*l4;+?1(Dm`OosxJ53?IsZT={?~4|J6=lhE;#{A=@IT0 z1mO_?w>Aj4xy_{orAuiY$0?5!f za?aNag78@YU7Yg{LP!Gu2lCkPssIMS$2lJ%gq#NOo+L?sB80qCDh=J76M&LK0KAhB zvYJxb24Df_+zG%=2&t6a!ivc!r_&^I<8nqvIOhQX6NHdq0GAnKeUtavlT+oE;o0#2 X5=R7uTe7zW00000NkvXXu0mjfHRNu1 literal 0 HcmV?d00001 diff --git a/l10n_id_djbc_kite_common/views/djbc_kite_movement_type_views.xml b/l10n_id_djbc_kite_common/views/djbc_kite_movement_type_views.xml new file mode 100644 index 0000000..c57eefc --- /dev/null +++ b/l10n_id_djbc_kite_common/views/djbc_kite_movement_type_views.xml @@ -0,0 +1,61 @@ + + + + + + + l10n_id.djbc_kite_movement_type.form + l10n_id.djbc_kite_movement_type + + + + + + + + + + l10n_id.djbc_kite_movement_type.tree + l10n_id.djbc_kite_movement_type + + + + + + + + + + l10n_id.djbc_kite_movement_type.form + l10n_id.djbc_kite_movement_type + +
+ + + + + + +
+
+
+ + + KITE Movement Type + ir.actions.act_window + l10n_id.djbc_kite_movement_type + form + tree,form + + + + +
+
diff --git a/l10n_id_djbc_kite_common/views/product_category_views.xml b/l10n_id_djbc_kite_common/views/product_category_views.xml new file mode 100644 index 0000000..dc4a1eb --- /dev/null +++ b/l10n_id_djbc_kite_common/views/product_category_views.xml @@ -0,0 +1,18 @@ + + + + + + + product.category.djbc.kite.form + product.category + + + + + + + + + diff --git a/l10n_id_djbc_kite_common/views/product_template_views.xml b/l10n_id_djbc_kite_common/views/product_template_views.xml new file mode 100644 index 0000000..85aa2ad --- /dev/null +++ b/l10n_id_djbc_kite_common/views/product_template_views.xml @@ -0,0 +1,21 @@ + + + + + + + product.template.djbc.kite.form + product.template + + + +
+ +
+
+
+
+
+
diff --git a/l10n_id_djbc_kite_common/views/stock_picking_type_views.xml b/l10n_id_djbc_kite_common/views/stock_picking_type_views.xml new file mode 100644 index 0000000..7bac8ae --- /dev/null +++ b/l10n_id_djbc_kite_common/views/stock_picking_type_views.xml @@ -0,0 +1,18 @@ + + + + + stock.picking.type.djbc.kite.form + stock.picking.type + + + + + + + + + + + + From dab9664b82b78fbfcde1b0c8082e88bf927f2c12 Mon Sep 17 00:00:00 2001 From: mikevhe18 Date: Wed, 11 Sep 2019 18:16:46 +0700 Subject: [PATCH 2/6] [8.0.1.0.0][l10n_id_djbc_kite_lap_pemakaian_bahan_baku] --- .../README.rst | 50 ++++++ .../__init__.py | 8 + .../__openerp__.py | 22 +++ .../data/djbc_kite_movement_type_data.xml | 13 ++ .../reports/__init__.py | 5 + .../djbc_kite_lap_pemakaian_bahan_baku.py | 144 ++++++++++++++++++ .../djbc_kite_lap_pemakaian_bahan_baku.xml | 59 +++++++ .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 5005 bytes .../wizards/__init__.py | 5 + .../wizards/date_range_selector.py | 33 ++++ .../wizards/date_range_selector_views.xml | 35 +++++ 12 files changed, 376 insertions(+) create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/README.rst create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__openerp__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/data/djbc_kite_movement_type_data.xml create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.xml create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/security/ir.model.access.csv create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/static/description/icon.png create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector_views.xml diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/README.rst b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/README.rst new file mode 100644 index 0000000..64efc5e --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================================================= +Indonesia - Laporan Pemakaian Bahan Baku for KITE +================================================= + +Laporan Pemasukan Bahan Baku for KITE + + +Installation +============ + +To install this module, you need to: + +1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-l10n-indonesia +2. Add the path to this repository in your configuration (addons-path) +3. Update the module list +4. Go to menu *Setting -> Modules -> Local Modules* +5. Search For *Indonesia - Laporan Pemakaian Bahan Baku for KITE* +6. Install the module + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed +and welcomed feedback. + + +Credits +======= + +Contributors +------------ + +* Michael Viriyananda +* Andhitia Rama + +Maintainer +---------- + +.. image:: https://opensynergy-indonesia.com/logo.png + :alt: OpenSynergy Indonesia + :target: https://opensynergy-indonesia.com + +This module is maintained by the OpenSynergy Indonesia. diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__init__.py b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__init__.py new file mode 100644 index 0000000..caa9764 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import ( + wizards, + reports +) diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__openerp__.py b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__openerp__.py new file mode 100644 index 0000000..8d12b4f --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/__openerp__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Indonesia - Laporan Pemakaian Bahan Baku for KITE", + "version": "8.0.1.0.0", + "category": "localization", + "website": "https://opensynergy-indonesia.com", + "author": "OpenSynergy Indonesia", + "license": "AGPL-3", + "installable": True, + "depends": [ + "stock", + "l10n_id_djbc_kite_common", + ], + "data": [ + "security/ir.model.access.csv", + "data/djbc_kite_movement_type_data.xml", + "reports/djbc_kite_lap_pemakaian_bahan_baku.xml", + "wizards/date_range_selector_views.xml" + ], +} diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/data/djbc_kite_movement_type_data.xml b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/data/djbc_kite_movement_type_data.xml new file mode 100644 index 0000000..a8219e1 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/data/djbc_kite_movement_type_data.xml @@ -0,0 +1,13 @@ + + + + + + + Pemakaian Bahan Baku + KITE-PMKBB + + + + diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/__init__.py b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/__init__.py new file mode 100644 index 0000000..4235d52 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import djbc_kite_lap_pemakaian_bahan_baku diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.py b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.py new file mode 100644 index 0000000..6ab50e3 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.py @@ -0,0 +1,144 @@ +# -*- coding: utf-8 -*- +# Copyright 2017 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields +from openerp import tools + + +class LapKitePemakaianBahanBaku(models.Model): + _name = "l10n_id.lap_kite_pemakaian_bahan_baku" + _description = "Laporan Pemakaian Bahan Baku Untuk KITE" + _auto = False + + no_pengeluaran = fields.Many2one( + string="Nomor Pengeluaran", + comodel_name="stock.picking", + ) + tgl_pengeluaran = fields.Datetime( + string="Tanggal Pengeluaran", + ) + kode_barang = fields.Char( + string="Kode Barang", + ) + nama_barang = fields.Char( + string="Nama Barang", + ) + satuan = fields.Many2one( + string="Satuan", + comodel_name="product.uom", + ) + jumlah_digunakan = fields.Float( + string="Jumlah Digunakan", + ) + jumlah_disubkontrakkan = fields.Float( + string="Jumlah Disubkontrakan", + ) + penerima_subkontrak = fields.Many2one( + string="Penerima Subkontrak", + comodel_name="res.partner", + ) + gudang = fields.Many2one( + string="Gudang", + comodel_name="stock.warehouse" + ) + + def _get_movement_type(self, cr): + query = """ + SELECT res_id + FROM ir_model_data + WHERE + module = 'l10n_id_djbc_kite_lap_pemakaian_bahan_baku' AND + name = 'djbc_kite_movement_type_pemakaian_bahan_baku' + """ + cr.execute(query) + movement_type = cr.fetchone() + if movement_type: + return movement_type + else: + return 0 + + def _select(self): + select_str = """ + SELECT a.id as id, + a.picking_id AS no_pengeluaran, + a.date AS tgl_pengeluaran, + c.name AS nama_barang, + b.default_code AS kode_barang, + a.product_uom AS satuan, + CASE + WHEN e.partner_id IS NULL + THEN a.product_uom_qty + ELSE 0.0 + END AS jumlah_digunakan, + CASE + WHEN e.partner_id IS NOT NULL + THEN a.product_uom_qty + ELSE 0.0 + END AS jumlah_disubkontrakkan, + e.partner_id AS penerima_subkontrak, + d.warehouse_id AS gudang + """ + return select_str + + def _from(self): + from_str = """ + FROM stock_move AS a + """ + return from_str + + def _join(self): + join_str = """ + JOIN product_product AS b ON a.product_id = b.id + JOIN product_template AS c ON b.product_tmpl_id = c.id + JOIN stock_picking_type AS d ON a.picking_type_id = d.id + LEFT JOIN stock_picking AS e ON a.picking_id = e.id + JOIN product_categ_rel AS f ON + c.id = f.product_id + JOIN product_category AS g ON + f.categ_id = g.id + JOIN ( + SELECT res_id + FROM ir_model_data AS e1 + WHERE + e1.module = 'l10n_id_djbc_kite_common' AND + (e1.name = 'product_categ_kite_bahan_baku') + ) as h ON + g.id = h.res_id + """ + return join_str + + def _where(self, movement_type_id): + where_str = """ + WHERE + a.state = 'done' AND + d.djbc_kite_scrap IS FALSE AND + d.djbc_kite_movement_type_id=%s + """ % (movement_type_id) + return where_str + + def _order_by(self): + join_str = """ + ORDER BY a.date, a.id + """ + return join_str + + def init(self, cr): + tools.drop_view_if_exists(cr, self._table) + # pylint: disable=locally-disabled, sql-injection + movement_type_id =\ + self._get_movement_type(cr) + cr.execute("""CREATE or REPLACE VIEW %s as ( + %s + %s + %s + %s + %s + )""" % ( + self._table, + self._select(), + self._from(), + self._join(), + self._where(movement_type_id), + self._order_by() + )) diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.xml b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.xml new file mode 100644 index 0000000..2cc6114 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/reports/djbc_kite_lap_pemakaian_bahan_baku.xml @@ -0,0 +1,59 @@ + + + + + + + l10n_id.lap_kite_pemakaian_bahan_baku.tree + l10n_id.lap_kite_pemakaian_bahan_baku + + + + + + + + + + + + + + + + l10n_id.lap_kite_pemakaian_bahan_baku.search + l10n_id.lap_kite_pemakaian_bahan_baku + + + + + + + + + + + + + + + + + + + + + + + Lap. Pemakaian Bahan Baku + ir.actions.act_window + l10n_id.lap_kite_pemakaian_bahan_baku + form + tree + + + current + + + diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/security/ir.model.access.csv b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/security/ir.model.access.csv new file mode 100644 index 0000000..42d9f82 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_all_djbc_lap_kite_pemakaian_bahan_baku,all user l10n_id.lap_kite_pemakaian_bahan_baku,model_l10n_id_lap_kite_pemakaian_bahan_baku,,1,0,0,0 diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/static/description/icon.png b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f884a8dadbc2ef5cbab0eeebd3ca733c7ae4bfc GIT binary patch literal 5005 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 X5=R7uTe7zW00000NkvXXu0mjfHRNu1 literal 0 HcmV?d00001 diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/__init__.py b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/__init__.py new file mode 100644 index 0000000..384e3c2 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import date_range_selector diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector.py b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector.py new file mode 100644 index 0000000..ad56712 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import api, models, fields + + +class KitePemakaianBahanBakuWizard(models.TransientModel): + _name = "l10n_id.kite_pemakaian_bahan_baku_wizard" + _inherit = [ + "l10n_id.date_range_selector" + ] + + warehouse_ids = fields.Many2many( + string="Warehouse", + comodel_name="stock.warehouse", + relation="rel_kite_pemakaian_baku_2_warehouse", + column1="wizard_id", + column2="warehouse_id" + ) + + @api.multi + def action_print_sreen(self): + waction = self.env.ref( + "l10n_id_djbc_kite_lap_pemakaian_bahan_baku." + "lap_kite_pemakaian_bahan_baku_action") + criteria = [ + ("tgl_pengeluaran", ">=", self.date_start), + ("tgl_pengeluaran", "<=", self.date_end), + ("gudang", "in", self.warehouse_ids.ids) + ] + waction.domain = criteria + return waction.read()[0] diff --git a/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector_views.xml b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector_views.xml new file mode 100644 index 0000000..34831c1 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_bahan_baku/wizards/date_range_selector_views.xml @@ -0,0 +1,35 @@ + + + + + + + l10n_id.kite_pemakaian_bahan_baku_wizard.form + l10n_id.kite_pemakaian_bahan_baku_wizard + + primary + + + + + + + + Pemakaian Bahan Baku + l10n_id.kite_pemakaian_bahan_baku_wizard + form + form + + new + + + + + From 020f6a95ff9e60c9a3f765dce3f46bbb4f6811ca Mon Sep 17 00:00:00 2001 From: mikevhe18 Date: Wed, 11 Sep 2019 18:17:12 +0700 Subject: [PATCH 3/6] [8.0.1.0.0][l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak] [8.0.1.0.0]Fixing Travis Error --- .../README.rst | 50 +++++++ .../__init__.py | 6 + .../__openerp__.py | 21 +++ .../data/djbc_kite_movement_type_data.xml | 13 ++ .../reports/__init__.py | 5 + .../reports/djbc_kite_lap_pemakaian_wip_sk.py | 133 ++++++++++++++++++ .../djbc_kite_lap_pemakaian_wip_sk.xml | 58 ++++++++ .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 5005 bytes .../wizards/__init__.py | 5 + .../wizards/date_range_selector.py | 33 +++++ .../wizards/date_range_selector_views.xml | 35 +++++ 12 files changed, 361 insertions(+) create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/README.rst create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__openerp__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/data/djbc_kite_movement_type_data.xml create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.xml create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/security/ir.model.access.csv create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/static/description/icon.png create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector.py create mode 100644 l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector_views.xml diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/README.rst b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/README.rst new file mode 100644 index 0000000..5a11e91 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +===================================================== +Indonesia - Laporan Pemakaian WIP Subkontrak for KITE +===================================================== + +Indonesia - Laporan Pemakaian WIP Subkontrak for KITE + + +Installation +============ + +To install this module, you need to: + +1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-l10n-indonesia +2. Add the path to this repository in your configuration (addons-path) +3. Update the module list +4. Go to menu *Setting -> Modules -> Local Modules* +5. Search For *Indonesia - Laporan Pemakaian WIP Subkontrak for KITE* +6. Install the module + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed +and welcomed feedback. + + +Credits +======= + +Contributors +------------ + +* Michael Viriyananda +* Andhitia Rama + +Maintainer +---------- + +.. image:: https://opensynergy-indonesia.com/logo.png + :alt: OpenSynergy Indonesia + :target: https://opensynergy-indonesia.com + +This module is maintained by the OpenSynergy Indonesia. diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__init__.py b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__init__.py new file mode 100644 index 0000000..0986382 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import reports +from . import wizards diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__openerp__.py b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__openerp__.py new file mode 100644 index 0000000..f3efe64 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/__openerp__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Indonesia - Laporan Pemakaian WIP Subkontrak for KITE", + "version": "8.0.1.0.0", + "category": "localization", + "website": "https://opensynergy-indonesia.com", + "author": "OpenSynergy Indonesia", + "license": "AGPL-3", + "installable": True, + "depends": [ + "l10n_id_djbc_kite_common" + ], + "data": [ + "data/djbc_kite_movement_type_data.xml", + "security/ir.model.access.csv", + "wizards/date_range_selector_views.xml", + "reports/djbc_kite_lap_pemakaian_wip_sk.xml", + ], +} diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/data/djbc_kite_movement_type_data.xml b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/data/djbc_kite_movement_type_data.xml new file mode 100644 index 0000000..8fc8c8e --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/data/djbc_kite_movement_type_data.xml @@ -0,0 +1,13 @@ + + + + + + + Pemakaian WIP Subkontrak + KITE-WIPSK + + + + diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/__init__.py b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/__init__.py new file mode 100644 index 0000000..7bbd74d --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import djbc_kite_lap_pemakaian_wip_sk diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.py b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.py new file mode 100644 index 0000000..6391933 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields +from openerp import tools + + +class LapKitePemakaianWipSk(models.Model): + _name = "l10n_id.lap_kite_pemakaian_wip_sk" + _description = "Laporan Pemakaian WIP Subkontrak Untuk KITE" + _auto = False + + no_pengeluaran = fields.Many2one( + string="Nomor Pengeluaran", + comodel_name="stock.picking", + ) + tgl_pengeluaran = fields.Datetime( + string="Tanggal Pengeluaran", + ) + kode_barang = fields.Char( + string="Kode Barang", + ) + nama_barang = fields.Char( + string="Nama Barang", + ) + satuan = fields.Many2one( + string="Satuan", + comodel_name="product.uom", + ) + jumlah_disubkontrakkan = fields.Float( + string="Jumlah Disubkontrakan", + ) + penerima_subkontrak = fields.Many2one( + string="Penerima Subkontrak", + comodel_name="res.partner", + ) + gudang = fields.Many2one( + string="Gudang", + comodel_name="stock.warehouse" + ) + + def _get_movement_type(self, cr): + query = """ + SELECT res_id + FROM ir_model_data + WHERE + module = 'l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak' AND + name = 'djbc_kite_movement_type_pemakaian_wip_sk' + """ + cr.execute(query) + movement_type = cr.fetchone() + if movement_type: + return movement_type + else: + return 0 + + def _select(self): + select_str = """ + SELECT a.id as id, + a.picking_id AS no_pengeluaran, + a.date AS tgl_pengeluaran, + c.name AS nama_barang, + b.default_code AS kode_barang, + a.product_uom AS satuan, + a.product_uom_qty AS jumlah_disubkontrakkan, + e.partner_id AS penerima_subkontrak, + d.warehouse_id AS gudang + """ + return select_str + + def _from(self): + from_str = """ + FROM stock_move AS a + """ + return from_str + + def _where(self, movement_type_id): + where_str = """ + WHERE + a.state = 'done' AND + e.partner_id IS NOT NULL AND + d.djbc_kite_scrap IS FALSE AND + d.djbc_kite_movement_type_id=%s + """ % (movement_type_id) + return where_str + + def _join(self): + join_str = """ + JOIN product_product AS b ON a.product_id = b.id + JOIN product_template AS c ON b.product_tmpl_id = c.id + JOIN stock_picking_type AS d ON a.picking_type_id = d.id + LEFT JOIN stock_picking AS e ON a.picking_id = e.id + JOIN product_categ_rel AS f ON + c.id = f.product_id + JOIN product_category AS g ON + f.categ_id = g.id + JOIN ( + SELECT res_id + FROM ir_model_data AS e1 + WHERE + e1.module = 'l10n_id_djbc_kite_common' AND + (e1.name = 'product_categ_kite_wip') + ) as h ON + g.id = h.res_id + """ + return join_str + + def _order_by(self): + join_str = """ + ORDER BY a.date, a.id + """ + return join_str + + def init(self, cr): + tools.drop_view_if_exists(cr, self._table) + # pylint: disable=locally-disabled, sql-injection + movement_type_id =\ + self._get_movement_type(cr) + cr.execute("""CREATE or REPLACE VIEW %s as ( + %s + %s + %s + %s + %s + )""" % ( + self._table, + self._select(), + self._from(), + self._join(), + self._where(movement_type_id), + self._order_by(), + )) diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.xml b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.xml new file mode 100644 index 0000000..b8cc69f --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/reports/djbc_kite_lap_pemakaian_wip_sk.xml @@ -0,0 +1,58 @@ + + + + + + + l10n_id.lap_kite_pemakaian_wip_sk.tree + l10n_id.lap_kite_pemakaian_wip_sk + + + + + + + + + + + + + + + l10n_id.lap_kite_pemakaian_wip_sk.search + l10n_id.lap_kite_pemakaian_wip_sk + + + + + + + + + + + + + + + + + + + + + + Lap. Pemakaian WIP Subkontrak + ir.actions.act_window + l10n_id.lap_kite_pemakaian_wip_sk + form + tree + + + current + + + + diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/security/ir.model.access.csv b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/security/ir.model.access.csv new file mode 100644 index 0000000..fe4c79e --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_all_djbc_lap_kite_pemakaian_wip_sk,all user l10n_id.lap_kite_pemakaian_wip_sk,model_l10n_id_lap_kite_pemakaian_wip_sk,,1,0,0,0 diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/static/description/icon.png b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f884a8dadbc2ef5cbab0eeebd3ca733c7ae4bfc GIT binary patch literal 5005 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 X5=R7uTe7zW00000NkvXXu0mjfHRNu1 literal 0 HcmV?d00001 diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/__init__.py b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/__init__.py new file mode 100644 index 0000000..384e3c2 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import date_range_selector diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector.py b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector.py new file mode 100644 index 0000000..292f872 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import api, models, fields + + +class KitePemakaianWipSkWizard(models.TransientModel): + _name = "l10n_id.kite_pemakaian_wip_sk_wizard" + _inherit = [ + "l10n_id.date_range_selector" + ] + + warehouse_ids = fields.Many2many( + string="Warehouse", + comodel_name="stock.warehouse", + relation="rel_kite_pemakaian_wip_2_warehouse", + column1="wizard_id", + column2="warehouse_id" + ) + + @api.multi + def action_print_sreen(self): + waction = self.env.ref( + "l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak." + "lap_kite_pemakaian_wip_sk_action") + criteria = [ + ("tgl_pengeluaran", ">=", self.date_start), + ("tgl_pengeluaran", "<=", self.date_end), + ("gudang", "in", self.warehouse_ids.ids) + ] + waction.domain = criteria + return waction.read()[0] diff --git a/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector_views.xml b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector_views.xml new file mode 100644 index 0000000..d058e61 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemakaian_wip_subkontrak/wizards/date_range_selector_views.xml @@ -0,0 +1,35 @@ + + + + + + + l10n_id.kite_pemakaian_wip_sk_wizard.form + l10n_id.kite_pemakaian_wip_sk_wizard + + primary + + + + + + + + Pemakaian WIP Subkontrak + l10n_id.kite_pemakaian_wip_sk_wizard + form + form + + new + + + + + From 5e5e05cfee3b4a05c70c12dca76001a86452ed8a Mon Sep 17 00:00:00 2001 From: mikevhe18 Date: Wed, 11 Sep 2019 18:17:39 +0700 Subject: [PATCH 4/6] [8.0.1.0.0][l10n_id_djbc_kite_lap_pemasukan_bahan_baku] [8.0.1.0.0]Fixing Travis Error --- .../README.rst | 50 +++++ .../__init__.py | 6 + .../__openerp__.py | 21 ++ .../data/djbc_kite_movement_type_data.xml | 13 ++ .../reports/__init__.py | 5 + .../djbc_kite_lap_pemasukan_bahan_baku.py | 179 ++++++++++++++++++ .../djbc_kite_lap_pemasukan_bahan_baku.xml | 66 +++++++ .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 5005 bytes .../wizards/__init__.py | 5 + .../wizards/date_range_selector.py | 33 ++++ .../wizards/date_range_selector_views.xml | 35 ++++ 12 files changed, 415 insertions(+) create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/README.rst create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__openerp__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/data/djbc_kite_movement_type_data.xml create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.xml create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/security/ir.model.access.csv create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/static/description/icon.png create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector_views.xml diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/README.rst b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/README.rst new file mode 100644 index 0000000..6618a63 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================================================= +Indonesia - Laporan Pemasukan Bahan Baku for KITE +================================================= + +Laporan Pemasukan Bahan Baku for KITE + + +Installation +============ + +To install this module, you need to: + +1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-l10n-indonesia +2. Add the path to this repository in your configuration (addons-path) +3. Update the module list +4. Go to menu *Setting -> Modules -> Local Modules* +5. Search For *Indonesia - Laporan Pemasukan Bahan Baku for KITE* +6. Install the module + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed +and welcomed feedback. + + +Credits +======= + +Contributors +------------ + +* Michael Viriyananda +* Andhitia Rama + +Maintainer +---------- + +.. image:: https://opensynergy-indonesia.com/logo.png + :alt: OpenSynergy Indonesia + :target: https://opensynergy-indonesia.com + +This module is maintained by the OpenSynergy Indonesia. diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__init__.py b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__init__.py new file mode 100644 index 0000000..0986382 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import reports +from . import wizards diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__openerp__.py b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__openerp__.py new file mode 100644 index 0000000..672295d --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/__openerp__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Indonesia - Laporan Pemasukan Bahan Baku for KITE", + "version": "8.0.1.0.0", + "category": "localization", + "website": "https://opensynergy-indonesia.com", + "author": "OpenSynergy Indonesia", + "license": "AGPL-3", + "installable": True, + "depends": [ + "l10n_id_djbc_kite_common" + ], + "data": [ + "data/djbc_kite_movement_type_data.xml", + "security/ir.model.access.csv", + "wizards/date_range_selector_views.xml", + "reports/djbc_kite_lap_pemasukan_bahan_baku.xml", + ], +} diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/data/djbc_kite_movement_type_data.xml b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/data/djbc_kite_movement_type_data.xml new file mode 100644 index 0000000..93daf11 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/data/djbc_kite_movement_type_data.xml @@ -0,0 +1,13 @@ + + + + + + + Pemasukan Bahan Baku + KITE-PMBB + + + + diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/__init__.py b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/__init__.py new file mode 100644 index 0000000..e9d515a --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import djbc_kite_lap_pemasukan_bahan_baku diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.py b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.py new file mode 100644 index 0000000..a483661 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.py @@ -0,0 +1,179 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields +from openerp import tools + + +class LapKitePemasukanBahanBaku(models.Model): + _name = "l10n_id.lap_kite_pemasukan_bahan_baku" + _description = "Laporan Pemasukan Bahan Baku Untuk KITE" + _auto = False + + jenis_dokumen = fields.Many2one( + string="Jenis Dokumen", + comodel_name="l10n_id.djbc_document_type", + ) + no_dokumen = fields.Char( + string="No. Dokumen", + ) + tgl_dokumen = fields.Date( + string="Tanggal Dokumen", + ) + no_seri_barang = fields.Many2one( + string="Nomor Seri Barang", + comodel_name="stock.production.lot", + ) + no_penerimaan = fields.Char( + string="Nomor Penerimaan", + ) + tgl_penerimaan = fields.Char( + string="Tanggal Penerimaan", + ) + kode_barang = fields.Char( + string="Kode Barang", + ) + nama_barang = fields.Many2one( + string="Nama Barang", + comodel_name="product.product", + ) + satuan = fields.Many2one( + string="Satuan", + comodel_name="product.uom", + ) + jumlah = fields.Float( + string="Jumlah", + ) + mata_uang = fields.Many2one( + string="Mata Uang", + comodel_name="res.currency", + ) + nilai = fields.Float( + string="Nilai", + ) + gudang = fields.Many2one( + string="Gudang", + comodel_name="stock.warehouse", + ) + penerima_subkontrak = fields.Many2one( + string="Penerima Subkontrak", + comodel_name="res.partner", + ) + negara_asal_barang = fields.Many2one( + string="Negara Asal Barang", + comodel_name="res.country", + ) + + def _get_movement_type(self, cr): + query = """ + SELECT res_id + FROM ir_model_data + WHERE + module = 'l10n_id_djbc_kite_lap_pemasukan_bahan_baku' AND + name = 'djbc_kite_movement_type_pemasukan_bahan_baku' + """ + cr.execute(query) + movement_type = cr.fetchone() + if movement_type: + return movement_type + else: + return 0 + + def _select(self): + select_str = """ + SELECT + a.id as id, + c.type_id as jenis_dokumen, + c.name as no_dokumen, + c.date as tgl_dokumen, + a.restrict_lot_id as no_seri_barang, + b.name as no_penerimaan, + a.date as tgl_penerimaan, + d.default_code as kode_barang, + a.product_id as nama_barang, + a.product_uom as satuan, + a.product_qty as jumlah, + h.currency_id AS mata_uang, + f.nilai as nilai, + e.warehouse_id AS gudang, + b.partner_id as penerima_subkontrak, + m.country_id AS negara_asal_barang + """ + return select_str + + def _from(self): + from_str = """ + FROM stock_move AS a + """ + return from_str + + def _where(self, movement_type_id): + where_str = """ + WHERE + a.state = 'done' AND + e.djbc_kite_scrap IS FALSE AND + e.djbc_kite_movement_type_id=%s + """ % (movement_type_id) + return where_str + + def _join(self): + join_str = """ + JOIN stock_picking AS b ON a.picking_id=b.id + JOIN l10n_id_djbc_custom_document AS c + ON a.djbc_custom_document_id=c.id + JOIN product_product AS d ON a.product_id=d.id + JOIN stock_picking_type AS e ON a.picking_type_id=e.id + JOIN + ( + SELECT sqmr.move_id, + SUM(sq.qty*sq.cost) AS nilai + FROM stock_quant_move_rel AS sqmr + JOIN stock_quant AS sq ON sqmr.quant_id=sq.id + GROUP BY sqmr.move_id + ) AS f ON f.move_id=a.id + JOIN purchase_order_line AS g ON a.purchase_line_id = g.id + JOIN purchase_order AS h ON g.order_id = h.id + JOIN product_template AS i + ON d.product_tmpl_id = i.id + JOIN product_categ_rel AS j ON + i.id = j.product_id + JOIN product_category AS k ON + j.categ_id = k.id + JOIN ( + SELECT res_id + FROM ir_model_data AS e1 + WHERE + e1.module = 'l10n_id_djbc_kite_common' AND + (e1.name = 'product_categ_kite_bahan_baku') + ) as l ON + k.id = l.res_id + LEFT JOIN res_partner AS m ON b.origin_address_id = m.id + """ + return join_str + + def _order_by(self): + join_str = """ + ORDER BY a.date, a.id + """ + return join_str + + def init(self, cr): + tools.drop_view_if_exists(cr, self._table) + # pylint: disable=locally-disabled, sql-injection + movement_type_id =\ + self._get_movement_type(cr) + cr.execute("""CREATE or REPLACE VIEW %s as ( + %s + %s + %s + %s + %s + )""" % ( + self._table, + self._select(), + self._from(), + self._join(), + self._where(movement_type_id), + self._order_by(), + )) diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.xml b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.xml new file mode 100644 index 0000000..52d9f4b --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/reports/djbc_kite_lap_pemasukan_bahan_baku.xml @@ -0,0 +1,66 @@ + + + + + + + l10n_id.lap_kite_pemasukan_bahan_baku.tree + l10n_id.lap_kite_pemasukan_bahan_baku + + + + + + + + + + + + + + + + + + + + + + + l10n_id.lap_kite_pemasukan_bahan_baku.search + l10n_id.lap_kite_pemasukan_bahan_baku + + + + + + + + + + + + + + + + + + + + + + Lap. Pemasukan Bahan Baku + ir.actions.act_window + l10n_id.lap_kite_pemasukan_bahan_baku + form + tree + + + current + + + + diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/security/ir.model.access.csv b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/security/ir.model.access.csv new file mode 100644 index 0000000..fb19c07 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_all_djbc_lap_kite_pemasukan_bahan_baku,all user l10n_id.lap_kite_pemasukan_bahan_baku,model_l10n_id_lap_kite_pemasukan_bahan_baku,,1,0,0,0 diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/static/description/icon.png b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f884a8dadbc2ef5cbab0eeebd3ca733c7ae4bfc GIT binary patch literal 5005 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 X5=R7uTe7zW00000NkvXXu0mjfHRNu1 literal 0 HcmV?d00001 diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/__init__.py b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/__init__.py new file mode 100644 index 0000000..384e3c2 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import date_range_selector diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector.py b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector.py new file mode 100644 index 0000000..f1c859c --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import api, models, fields + + +class KitePemasukanBahanBakuWizard(models.TransientModel): + _name = "l10n_id.kite_pemasukan_bahan_baku_wizard" + _inherit = [ + "l10n_id.date_range_selector" + ] + + warehouse_ids = fields.Many2many( + string="Warehouse", + comodel_name="stock.warehouse", + relation="rel_kite_pemasukan_baku_2_warehouse", + column1="wizard_id", + column2="warehouse_id" + ) + + @api.multi + def action_print_sreen(self): + waction = self.env.ref( + "l10n_id_djbc_kite_lap_pemasukan_bahan_baku." + "lap_kite_pemasukan_bahan_baku_action") + criteria = [ + ("tgl_penerimaan", ">=", self.date_start), + ("tgl_penerimaan", "<=", self.date_end), + ("gudang", "in", self.warehouse_ids.ids) + ] + waction.domain = criteria + return waction.read()[0] diff --git a/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector_views.xml b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector_views.xml new file mode 100644 index 0000000..aa2dee8 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_bahan_baku/wizards/date_range_selector_views.xml @@ -0,0 +1,35 @@ + + + + + + + l10n_id.kite_pemasukan_bahan_baku_wizard.form + l10n_id.kite_pemasukan_bahan_baku_wizard + + primary + + + + + + + + Pemasukan Bahan Baku + l10n_id.kite_pemasukan_bahan_baku_wizard + form + form + + new + + + + + From aa62d28f0fec169d4aff59292f5a97c2a698221f Mon Sep 17 00:00:00 2001 From: mikevhe18 Date: Wed, 11 Sep 2019 18:17:54 +0700 Subject: [PATCH 5/6] [8.0.1.0.0][l10n_id_djbc_kite_lap_pemasukan_hasil_produksi] --- .../README.rst | 50 +++++++ .../__init__.py | 6 + .../__openerp__.py | 21 +++ .../data/djbc_kite_movement_type_data.xml | 13 ++ .../reports/__init__.py | 5 + .../djbc_kite_lap_pemasukan_hasil_produksi.py | 139 ++++++++++++++++++ ...djbc_kite_lap_pemasukan_hasil_produksi.xml | 56 +++++++ .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 5005 bytes .../wizards/__init__.py | 5 + .../wizards/date_range_selector.py | 33 +++++ .../wizards/date_range_selector_views.xml | 35 +++++ 12 files changed, 365 insertions(+) create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/README.rst create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__openerp__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/data/djbc_kite_movement_type_data.xml create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.xml create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/security/ir.model.access.csv create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/static/description/icon.png create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector.py create mode 100644 l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector_views.xml diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/README.rst b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/README.rst new file mode 100644 index 0000000..91fee3b --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +===================================================== +Indonesia - Laporan Pemasukan Hasil Produksi for KITE +===================================================== + +Laporan Pemasukan Hasil Produksi for KITE + + +Installation +============ + +To install this module, you need to: + +1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-l10n-indonesia +2. Add the path to this repository in your configuration (addons-path) +3. Update the module list +4. Go to menu *Setting -> Modules -> Local Modules* +5. Search For *Indonesia - Laporan Pemasukan Hasil Produksi for KITE* +6. Install the module + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed +and welcomed feedback. + + +Credits +======= + +Contributors +------------ + +* Michael Viriyananda +* Andhitia Rama + +Maintainer +---------- + +.. image:: https://opensynergy-indonesia.com/logo.png + :alt: OpenSynergy Indonesia + :target: https://opensynergy-indonesia.com + +This module is maintained by the OpenSynergy Indonesia. diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__init__.py b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__init__.py new file mode 100644 index 0000000..0986382 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import reports +from . import wizards diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__openerp__.py b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__openerp__.py new file mode 100644 index 0000000..5851ad2 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/__openerp__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Indonesia - Laporan Pemasukan Hasil Produksi for KITE", + "version": "8.0.1.0.0", + "category": "localization", + "website": "https://opensynergy-indonesia.com", + "author": "OpenSynergy Indonesia", + "license": "AGPL-3", + "installable": True, + "depends": [ + "l10n_id_djbc_kite_common" + ], + "data": [ + "data/djbc_kite_movement_type_data.xml", + "security/ir.model.access.csv", + "wizards/date_range_selector_views.xml", + "reports/djbc_kite_lap_pemasukan_hasil_produksi.xml", + ], +} diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/data/djbc_kite_movement_type_data.xml b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/data/djbc_kite_movement_type_data.xml new file mode 100644 index 0000000..bd629d4 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/data/djbc_kite_movement_type_data.xml @@ -0,0 +1,13 @@ + + + + + + + Pemasukan Hasil Produksi + KITE-PMHP + + + + diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/__init__.py b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/__init__.py new file mode 100644 index 0000000..629f012 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import djbc_kite_lap_pemasukan_hasil_produksi diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.py b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.py new file mode 100644 index 0000000..9aa3bec --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.py @@ -0,0 +1,139 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields +from openerp import tools + + +class LapKitePemasukanHasilProduksi(models.Model): + _name = "l10n_id.lap_kite_pemasukan_hasil_produksi" + _description = "Laporan Pemasukan Hasil Produksi Untuk KITE" + _auto = False + + no_penerimaan = fields.Many2one( + string="Nomor Penerimaan", + comodel_name="stock.picking", + ) + tgl_penerimaan = fields.Datetime( + string="Tanggal Penerimaan", + ) + kode_barang = fields.Char( + string="Kode Barang", + ) + nama_barang = fields.Char( + string="Nama Barang", + ) + satuan = fields.Many2one( + string="Satuan", + comodel_name="product.uom", + ) + jumlah_produksi = fields.Float( + string="Jumlah Dari Produksi", + ) + jumlah_disubkontrakkan = fields.Float( + string="Jumlah Disubkontrakan", + ) + gudang = fields.Many2one( + string="Gudang", + comodel_name="stock.warehouse" + ) + + def _get_movement_type(self, cr): + query = """ + SELECT res_id + FROM ir_model_data + WHERE + module = 'l10n_id_djbc_kite_lap_pemasukan_hasil_produksi' AND + name = 'djbc_kite_movement_type_pemasukan_hasil_produksi' + """ + cr.execute(query) + movement_type = cr.fetchone() + if movement_type: + return movement_type + else: + return 0 + + def _select(self): + select_str = """ + SELECT a.id as id, + a.picking_id AS no_penerimaan, + a.date AS tgl_penerimaan, + c.name AS nama_barang, + b.default_code AS kode_barang, + a.product_uom AS satuan, + CASE + WHEN e.partner_id IS NULL + THEN a.product_uom_qty + ELSE 0.0 + END AS jumlah_produksi, + CASE + WHEN e.partner_id IS NOT NULL + THEN a.product_uom_qty + ELSE 0.0 + END AS jumlah_disubkontrakkan, + d.warehouse_id AS gudang + """ + return select_str + + def _from(self): + from_str = """ + FROM stock_move AS a + """ + return from_str + + def _where(self, movement_type_id): + where_str = """ + WHERE + a.state = 'done' AND + d.djbc_kite_scrap IS FALSE AND + d.djbc_kite_movement_type_id=%s + """ % (movement_type_id) + return where_str + + def _join(self): + join_str = """ + JOIN product_product AS b ON a.product_id = b.id + JOIN product_template AS c ON b.product_tmpl_id = c.id + JOIN stock_picking_type AS d ON a.picking_type_id = d.id + LEFT JOIN stock_picking AS e ON a.picking_id = e.id + JOIN product_categ_rel AS f ON + c.id = f.product_id + JOIN product_category AS g ON + f.categ_id = g.id + JOIN ( + SELECT res_id + FROM ir_model_data AS e1 + WHERE + e1.module = 'l10n_id_djbc_kite_common' AND + (e1.name = 'product_categ_kite_hasil_produksi') + ) as h ON + g.id = h.res_id + """ + return join_str + + def _order_by(self): + join_str = """ + ORDER BY a.date, a.id + """ + return join_str + + def init(self, cr): + tools.drop_view_if_exists(cr, self._table) + # pylint: disable=locally-disabled, sql-injection + movement_type_id =\ + self._get_movement_type(cr) + cr.execute("""CREATE or REPLACE VIEW %s as ( + %s + %s + %s + %s + %s + )""" % ( + self._table, + self._select(), + self._from(), + self._join(), + self._where(movement_type_id), + self._order_by(), + )) diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.xml b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.xml new file mode 100644 index 0000000..ecae981 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/reports/djbc_kite_lap_pemasukan_hasil_produksi.xml @@ -0,0 +1,56 @@ + + + + + + + l10n_id.lap_kite_pemasukan_hasil_produksi.tree + l10n_id.lap_kite_pemasukan_hasil_produksi + + + + + + + + + + + + + + + l10n_id.lap_kite_pemasukan_hasil_produksi.search + l10n_id.lap_kite_pemasukan_hasil_produksi + + + + + + + + + + + + + + + + + + + + Lap. Pemasukan Bahan Baku + ir.actions.act_window + l10n_id.lap_kite_pemasukan_hasil_produksi + form + tree + + + current + + + + diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/security/ir.model.access.csv b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/security/ir.model.access.csv new file mode 100644 index 0000000..a00ae33 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_all_djbc_lap_kite_pemasukan_hasil_produksi,all user l10n_id.lap_kite_pemasukan_hasil_produksi,model_l10n_id_lap_kite_pemasukan_hasil_produksi,,1,0,0,0 diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/static/description/icon.png b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f884a8dadbc2ef5cbab0eeebd3ca733c7ae4bfc GIT binary patch literal 5005 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 X5=R7uTe7zW00000NkvXXu0mjfHRNu1 literal 0 HcmV?d00001 diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/__init__.py b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/__init__.py new file mode 100644 index 0000000..384e3c2 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import date_range_selector diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector.py b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector.py new file mode 100644 index 0000000..4fa2492 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import api, models, fields + + +class KitePemasukanHasilProduksiWizard(models.TransientModel): + _name = "l10n_id.kite_pemasukan_hasil_produksi_wizard" + _inherit = [ + "l10n_id.date_range_selector" + ] + + warehouse_ids = fields.Many2many( + string="Warehouse", + comodel_name="stock.warehouse", + relation="rel_kite_pemasukan_produksi_2_warehouse", + column1="wizard_id", + column2="warehouse_id" + ) + + @api.multi + def action_print_sreen(self): + waction = self.env.ref( + "l10n_id_djbc_kite_lap_pemasukan_hasil_produksi." + "lap_kite_pemasukan_hasil_produksi_action") + criteria = [ + ("tgl_penerimaan", ">=", self.date_start), + ("tgl_penerimaan", "<=", self.date_end), + ("gudang", "in", self.warehouse_ids.ids) + ] + waction.domain = criteria + return waction.read()[0] diff --git a/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector_views.xml b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector_views.xml new file mode 100644 index 0000000..8a49c2a --- /dev/null +++ b/l10n_id_djbc_kite_lap_pemasukan_hasil_produksi/wizards/date_range_selector_views.xml @@ -0,0 +1,35 @@ + + + + + + + l10n_id.kite_pemasukan_hasil_produksi_wizard.form + l10n_id.kite_pemasukan_hasil_produksi_wizard + + primary + + + + + + + + Pemasukan Bahan Baku + l10n_id.kite_pemasukan_hasil_produksi_wizard + form + form + + new + + + + + From a23e21ccb15f6f1c6a97d51f6ec7095bd76a86eb Mon Sep 17 00:00:00 2001 From: mikevhe18 Date: Wed, 11 Sep 2019 18:18:11 +0700 Subject: [PATCH 6/6] [8.0.1.0.0][l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi] [8.0.1.0.0]Fixing Travis Error --- .../README.rst | 50 +++++ .../__init__.py | 6 + .../__openerp__.py | 21 +++ .../data/djbc_kite_movement_type_data.xml | 13 ++ .../reports/__init__.py | 5 + ...jbc_kite_lap_pengeluaran_hasil_produksi.py | 171 ++++++++++++++++++ ...bc_kite_lap_pengeluaran_hasil_produksi.xml | 73 ++++++++ .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 5005 bytes .../wizards/__init__.py | 5 + .../wizards/date_range_selector.py | 33 ++++ .../wizards/date_range_selector_views.xml | 35 ++++ 12 files changed, 414 insertions(+) create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/README.rst create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__openerp__.py create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/data/djbc_kite_movement_type_data.xml create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.py create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.xml create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/security/ir.model.access.csv create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/static/description/icon.png create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/__init__.py create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector.py create mode 100644 l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector_views.xml diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/README.rst b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/README.rst new file mode 100644 index 0000000..83af85d --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/README.rst @@ -0,0 +1,50 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +======================================================= +Indonesia - Laporan Pengeluaran Hasil Produksi for KITE +======================================================= + +Laporan Pengeluaran Hasil Produksi for KITE + + +Installation +============ + +To install this module, you need to: + +1. Clone the branch 8.0 of the repository https://github.com/open-synergy/opnsynid-l10n-indonesia +2. Add the path to this repository in your configuration (addons-path) +3. Update the module list +4. Go to menu *Setting -> Modules -> Local Modules* +5. Search For *Indonesia - Laporan Pengeluaran Hasil Produksi for KITE* +6. Install the module + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed +and welcomed feedback. + + +Credits +======= + +Contributors +------------ + +* Michael Viriyananda +* Andhitia Rama + +Maintainer +---------- + +.. image:: https://opensynergy-indonesia.com/logo.png + :alt: OpenSynergy Indonesia + :target: https://opensynergy-indonesia.com + +This module is maintained by the OpenSynergy Indonesia. diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__init__.py b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__init__.py new file mode 100644 index 0000000..0986382 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import reports +from . import wizards diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__openerp__.py b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__openerp__.py new file mode 100644 index 0000000..06a8fd4 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/__openerp__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Indonesia - Laporan Pengeluaran Hasil Produksi for KITE", + "version": "8.0.1.0.0", + "category": "localization", + "website": "https://opensynergy-indonesia.com", + "author": "OpenSynergy Indonesia", + "license": "AGPL-3", + "installable": True, + "depends": [ + "l10n_id_djbc_kite_common" + ], + "data": [ + "data/djbc_kite_movement_type_data.xml", + "security/ir.model.access.csv", + "wizards/date_range_selector_views.xml", + "reports/djbc_kite_lap_pengeluaran_hasil_produksi.xml", + ], +} diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/data/djbc_kite_movement_type_data.xml b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/data/djbc_kite_movement_type_data.xml new file mode 100644 index 0000000..da40201 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/data/djbc_kite_movement_type_data.xml @@ -0,0 +1,13 @@ + + + + + + + Pengeluaran Hasil Produksi + KITE-PGHP + + + + diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/__init__.py b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/__init__.py new file mode 100644 index 0000000..8dc7754 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import djbc_kite_lap_pengeluaran_hasil_produksi diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.py b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.py new file mode 100644 index 0000000..c038674 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.py @@ -0,0 +1,171 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import models, fields +from openerp import tools + + +class LapKitePengeluaranHasilProduksi(models.Model): + _name = "l10n_id.lap_kite_pengeluaran_hasil_produksi" + _description = "Laporan Pengeluaran Hasil Produksi KITE" + _auto = False + + no_peb = fields.Many2one( + string="No. PEB", + comodel_name="l10n_id.djbc_custom_document", + ) + tgl_peb = fields.Date( + string="Tgl. PEB", + readonly=True, + ) + no_pengeluaran = fields.Many2one( + string="No. Pengeluaran", + comodel_name="stock.picking", + ) + tgl_pengeluaran = fields.Datetime( + string="Tgl. Pengeluaran", + ) + penerima = fields.Many2one( + string="Pembeli/Penerima", + comodel_name="res.partner", + ) + negara_tujuan = fields.Many2one( + string="Negara Tujuan", + comodel_name="res.country", + ) + kode_barang = fields.Char( + string="Kode Barang", + ) + nama_barang = fields.Char( + string="Nama Barang", + ) + satuan = fields.Many2one( + string="Satuan", + comodel_name="product.uom", + ) + jumlah = fields.Float( + string="Jumlah", + ) + mata_uang = fields.Many2one( + string="Mata Uang", + comodel_name="res.currency", + ) + nilai = fields.Float( + string="Nilai" + ) + gudang = fields.Many2one( + string="Gudang", + comodel_name="stock.warehouse" + ) + + def _get_movement_type(self, cr): + query = """ + SELECT res_id + FROM ir_model_data + WHERE + module = 'l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi' AND + name = 'djbc_kite_movement_type_pengeluaran_hasil_produksi' + """ + cr.execute(query) + movement_type = cr.fetchone() + if movement_type: + return movement_type + else: + return 0 + + def _select(self): + select_str = """ + SELECT + a.id as id, + a.djbc_custom_document_id AS no_peb, + b.date AS tgl_peb, + a.picking_id AS no_pengeluaran, + a.date AS tgl_pengeluaran, + f.partner_id AS penerima, + g.country_id AS negara_tujuan, + c.default_code AS kode_barang, + d.name AS nama_barang, + a.product_uom AS satuan, + a.product_uom_qty AS jumlah, + l.currency_id AS mata_uang, + e1.nilai as nilai, + e.warehouse_id AS gudang + """ + return select_str + + def _from(self): + from_str = """ + FROM stock_move AS a + """ + return from_str + + def _where(self, movement_type_id): + where_str = """ + WHERE + a.state = 'done' AND + e.djbc_kite_scrap IS FALSE AND + e.djbc_kite_movement_type_id=%s + """ % (movement_type_id) + return where_str + + def _join(self): + join_str = """ + JOIN l10n_id_djbc_custom_document AS b ON + a.djbc_custom_document_id = b.id + JOIN product_product AS c ON a.product_id = c.id + JOIN product_template AS d ON c.product_tmpl_id = d.id + JOIN stock_picking_type AS e ON a.picking_type_id = e.id + JOIN + ( + SELECT sqmr.move_id, + SUM(sq.qty*sq.cost) AS nilai + FROM stock_quant_move_rel AS sqmr + JOIN stock_quant AS sq ON sqmr.quant_id=sq.id + GROUP BY sqmr.move_id + ) AS e1 ON e1.move_id=a.id + JOIN stock_picking AS f ON a.picking_id = f.id + LEFT JOIN res_partner AS g ON f.delivery_address_id = g.id + JOIN stock_location AS h ON a.location_id = h.id + JOIN procurement_order AS i ON a.procurement_id = i.id + JOIN sale_order_line AS j ON i.sale_line_id = j.id + JOIN sale_order AS k ON j.order_id = k.id + JOIN product_pricelist AS l ON k.pricelist_id = l.id + JOIN product_categ_rel AS m ON d.id = m.product_id + JOIN product_category AS n ON m.categ_id = n.id + JOIN ( + SELECT res_id + FROM ir_model_data AS e1 + WHERE + e1.module = 'l10n_id_djbc_kite_common' AND + (e1.name = 'product_categ_kite_hasil_produksi') + ) as o ON + n.id = o.res_id + """ + return join_str + + def _order_by(self): + join_str = """ + ORDER BY a.date, a.id + """ + return join_str + + def init(self, cr): + tools.drop_view_if_exists(cr, self._table) + # pylint: disable=locally-disabled, sql-injection + movement_type_id =\ + self._get_movement_type(cr) + cr.execute("""CREATE or REPLACE VIEW %s as ( + %s + %s + %s + %s + %s + )""" % ( + self._table, + self._select(), + self._from(), + self._join(), + self._where(movement_type_id), + self._order_by(), + )) diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.xml b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.xml new file mode 100644 index 0000000..b0acbb9 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/reports/djbc_kite_lap_pengeluaran_hasil_produksi.xml @@ -0,0 +1,73 @@ + + + + + + + l10n_id.lap_kite_pengeluaran_hasil_produksi.tree + l10n_id.lap_kite_pengeluaran_hasil_produksi + + + + + + + + + + + + + + + + + + + + l10n_id.lap_kite_pengeluaran_hasil_produksi.search + l10n_id.lap_kite_pengeluaran_hasil_produksi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lap. Pengeluaran Hasil Produksi + ir.actions.act_window + l10n_id.lap_kite_pengeluaran_hasil_produksi + form + tree + + + current + + + + diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/security/ir.model.access.csv b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/security/ir.model.access.csv new file mode 100644 index 0000000..5058a6c --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_all_djbc_lap_kite_pengeluaran_hasil_produksi,all user l10n_id.lap_kite_pengeluaran_hasil_produksi,model_l10n_id_lap_kite_pengeluaran_hasil_produksi,,1,0,0,0 diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/static/description/icon.png b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0f884a8dadbc2ef5cbab0eeebd3ca733c7ae4bfc GIT binary patch literal 5005 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 X5=R7uTe7zW00000NkvXXu0mjfHRNu1 literal 0 HcmV?d00001 diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/__init__.py b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/__init__.py new file mode 100644 index 0000000..384e3c2 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import date_range_selector diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector.py b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector.py new file mode 100644 index 0000000..51f1a70 --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2019 OpenSynergy Indonesia +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from openerp import api, models, fields + + +class KitePengeluaranHasilProduksiWizard(models.TransientModel): + _name = "l10n_id.kite_pengeluaran_hasil_produksi_wizard" + _inherit = [ + "l10n_id.date_range_selector" + ] + + warehouse_ids = fields.Many2many( + string="Warehouse", + comodel_name="stock.warehouse", + relation="rel_kite_pengeluaran_produksi_2_warehouse", + column1="wizard_id", + column2="warehouse_id" + ) + + @api.multi + def action_print_sreen(self): + waction = self.env.ref( + "l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi." + "lap_kite_pengeluaran_hasil_produksi_action") + criteria = [ + ("tgl_pengeluaran", ">=", self.date_start), + ("tgl_pengeluaran", "<=", self.date_end), + ("gudang", "in", self.warehouse_ids.ids) + ] + waction.domain = criteria + return waction.read()[0] diff --git a/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector_views.xml b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector_views.xml new file mode 100644 index 0000000..b4f373e --- /dev/null +++ b/l10n_id_djbc_kite_lap_pengeluaran_hasil_produksi/wizards/date_range_selector_views.xml @@ -0,0 +1,35 @@ + + + + + + + l10n_id.kite_pengeluaran_hasil_produksi_wizard.form + l10n_id.kite_pengeluaran_hasil_produksi_wizard + + primary + + + + + + + + Pengeluaran Hasil Produksi + l10n_id.kite_pengeluaran_hasil_produksi_wizard + form + form + + new + + + + +