├── .gitignore ├── README.md ├── TODO ├── public_budget ├── ANALAISIS DEPENDS Y MEJORAS PERFORMANCE ├── README.rst ├── __init__.py ├── __manifest__.py ├── controllers │ ├── __init__.py │ └── portal.py ├── data │ ├── expedient_category.xml │ ├── expedient_founder.xml │ ├── ir_config_parameter_data.xml │ ├── position_category.xml │ ├── position_exc_restrictions.xml │ ├── sequence.xml │ └── server_actions_data.xml ├── demo │ ├── SIPRECO_Logo.png │ ├── account_account_demo.xml │ ├── account_chart_template.xml │ ├── account_journal_demo.xml │ ├── account_payment_receiptbook_demo.xml │ ├── advance_request.xml │ ├── advance_request_type.xml │ ├── public_budget.budget.csv │ ├── public_budget.budget_detail.csv │ ├── public_budget.budget_modification.csv │ ├── public_budget.budget_modification_detail.csv │ ├── public_budget.budget_position.csv │ ├── public_budget.expedient.csv │ ├── public_budget.location.csv │ ├── public_budget.preventive_line.csv │ ├── public_budget.remit.csv │ ├── public_budget.transaction_type.csv │ ├── public_budget_definitive_line_demo.xml │ ├── public_budget_transaction_demo.xml │ ├── res.partner.csv │ ├── res_company_demo.xml │ ├── res_partner_demo.xml │ └── res_users_demo.xml ├── i18n │ ├── br.po │ ├── es.po │ └── ro.po ├── i18n_extra │ └── es.po ├── images │ └── README ├── migrations │ ├── 11.0.1.1.0 │ │ └── post-migration.py │ ├── 11.0.1.18.0 │ │ ├── mig_data.xml │ │ └── post-migration.py │ ├── 11.0.1.21.0 │ │ ├── mig_data.xml │ │ └── post-migration.py │ ├── 11.0.1.25.0 │ │ └── post-migration.py │ ├── 13.0.1.0.0 │ │ ├── mig_data.xml │ │ └── post-migration.py │ ├── 13.0.1.16.0 │ │ ├── mig_data.xml │ │ └── post-migration.py │ └── 15.0.1.14.0 │ │ └── post-migration.py ├── models │ ├── __init__.py │ ├── account_asset.py │ ├── account_bank_statement.py │ ├── account_journal.py │ ├── account_move.py │ ├── account_move_line.py │ ├── account_payment.py │ ├── account_payment_group.py │ ├── account_tax.py │ ├── advance_request.py │ ├── advance_request_line.py │ ├── advance_request_type.py │ ├── advance_return.py │ ├── advance_return_line.py │ ├── budget.py │ ├── budget_detail.py │ ├── budget_modification.py │ ├── budget_modification_detail.py │ ├── budget_pos_exc_rest.py │ ├── budget_position.py │ ├── budget_position_category.py │ ├── budget_prec_detail.py │ ├── definitive_line.py │ ├── expedient.py │ ├── expedient_category.py │ ├── expedient_founder.py │ ├── funding_move.py │ ├── inventory_rule.py │ ├── l10n_latam_document_type.py │ ├── location.py │ ├── preventive_line.py │ ├── remit.py │ ├── res_company.py │ ├── res_partner.py │ ├── res_users.py │ ├── rest_type.py │ ├── transaction.py │ ├── transaction_type.py │ └── transaction_type_amo_rest.py ├── reports │ ├── __init__.py │ ├── advance_request_analysis.py │ ├── advance_request_analysis_view.xml │ ├── advance_request_debt_report.odt │ ├── advance_request_debt_report.xml │ ├── advance_request_report.odt │ ├── advance_request_report.xml │ ├── advance_return_report.odt │ ├── advance_return_report.xml │ ├── asset_alta_report.ods │ ├── asset_amend_report.odt │ ├── asset_amend_report.xml │ ├── asset_baja_report.ods │ ├── asset_missing_report.odt │ ├── asset_missing_report.xml │ ├── asset_printing_report.ods │ ├── asset_report.ods │ ├── asset_report.odt │ ├── asset_report.xml │ ├── asset_report_alta.xml │ ├── asset_report_baja.xml │ ├── asset_report_excel.xml │ ├── asset_report_printing.xml │ ├── budget_modification_report.odt │ ├── budget_modification_report.xml │ ├── budget_report.ods │ ├── budget_report.odt │ ├── budget_report.xml │ ├── budget_report_excel.xml │ ├── expedient_report.odt │ ├── expedient_report.xml │ ├── liquidation_report.odt │ ├── liquidation_report.xml │ ├── payment_list_report.ods │ ├── payment_list_report.xml │ ├── payment_order.odt │ ├── payment_order_list.odt │ ├── payment_order_list.xml │ ├── payment_order_report.xml │ ├── payment_receipt_report.odt │ ├── payment_receipt_report.xml │ ├── public_budget_budget_report_3.py │ ├── public_budget_budget_report_4.py │ ├── public_budget_budget_report_view_3.xml │ ├── public_budget_budget_report_view_4.xml │ ├── remit_report.odt │ ├── remit_report.xml │ ├── reports_stylesheet.odt │ ├── statement_report.xml │ ├── stylesheet.xml │ ├── transaction_report.odt │ └── transaction_report.xml ├── security │ ├── hide_groups.xml │ ├── ir.model.access.csv │ ├── public_budget_group.xml │ └── public_budget_security.xml ├── static │ └── description │ │ ├── asset-icon.png │ │ ├── expedient.png │ │ ├── icon (old).png │ │ └── icon.png ├── views │ ├── account_asset_views.xml │ ├── account_checkbook_views.xml │ ├── account_journal_views.xml │ ├── account_move_line_views.xml │ ├── account_move_views.xml │ ├── account_payment_group_views.xml │ ├── account_payment_views.xml │ ├── advance_request_type_views.xml │ ├── advance_request_views.xml │ ├── advance_return_views.xml │ ├── budget_detail_views.xml │ ├── budget_modification_detail_views.xml │ ├── budget_modification_views.xml │ ├── budget_pos_exc_rest_views.xml │ ├── budget_position_category_views.xml │ ├── budget_position_views.xml │ ├── budget_prec_detail_views.xml │ ├── budget_views.xml │ ├── custom_views.xml │ ├── definitive_line_views.xml │ ├── expedient_category_views.xml │ ├── expedient_founder_views.xml │ ├── expedient_views.xml │ ├── funding_move_views.xml │ ├── hr_public_holidays_views.xml │ ├── inventory_rule_views.xml │ ├── location_views.xml │ ├── preventive_line_views.xml │ ├── public_budget_actions.xml │ ├── public_budget_menuitem.xml │ ├── remit_views.xml │ ├── res_company_views.xml │ ├── res_partner_views.xml │ ├── res_users_views.xml │ ├── rest_type_views.xml │ ├── transaction_type_amo_rest_views.xml │ ├── transaction_type_views.xml │ └── transaction_views.xml └── wizards │ ├── __init__.py │ ├── avance_request_report_wizard.py │ ├── avance_request_report_wizard_views.xml │ ├── budget_analysis_wizard.py │ ├── budget_analysis_wizard_views.xml │ ├── public_budget_preventive_changeposition.py │ ├── public_budget_preventive_changeposition_views.xml │ ├── transaction_definitive_make_invoice.py │ ├── transaction_definitive_make_invoice_detail.py │ ├── transaction_definitive_make_invoice_views.xml │ ├── transaction_definitive_mass_invoice_create.py │ ├── transaction_definitive_mass_invoice_create_views.xml │ ├── transfer_asset_wizard_views.xml │ └── transfer_assets_wizard.py ├── public_budget_subscription ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── ir_actions_server_data.xml ├── i18n │ └── es.po ├── models │ ├── __init__.py │ └── purchase_subscription.py ├── security │ └── ir.model.access.csv └── views │ └── purchase_subscription_views.xml ├── public_budget_tax_settlement ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ └── es.po ├── models │ ├── __init__.py │ ├── account_move.py │ ├── account_move_line.py │ └── account_payment.py └── views │ ├── account_journal_dashboard_views.xml │ ├── account_move_line_views.xml │ └── account_move_views.xml ├── requirements.txt ├── sipreco_payment_line ├── README.rst ├── __init__.py ├── __manifest__.py ├── i18n │ ├── br.po │ └── es.po ├── models │ ├── __init__.py │ ├── account_payment_group.py │ ├── account_payment_group_line.py │ ├── advance_request.py │ └── res_partner_bank.py ├── security │ └── ir.model.access.csv ├── views │ ├── account_payment_group_views.xml │ └── res_partner_bank_views.xml └── wizards │ ├── __init__.py │ ├── account_payment_group_line_import.py │ └── account_payment_group_line_import_views.xml ├── sipreco_position_helper ├── README.rst ├── __init__.py ├── __manifest__.py ├── demo │ └── public_budget.budget_position.csv ├── i18n │ └── es.po ├── models │ ├── __init__.py │ └── budget_position.py └── views │ └── budget_position_views.xml ├── sipreco_project ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ └── ir_parameters.xml └── demo │ ├── config_data.xml │ └── load_es_lang.xml ├── sipreco_purchase ├── README.rst ├── __init__.py ├── __manifest__.py ├── data │ ├── ir_actions_server_data.xml │ └── sequence_data.xml ├── demo │ ├── product_demo.xml │ ├── res_users_demo.xml │ ├── sequence_demo.xml │ └── stock_demo.xml ├── i18n │ ├── br.po │ └── es.po ├── i18n_extra │ └── es.po ├── migrations │ └── 15.0.1.3.0 │ │ └── pre-migration.py ├── models │ ├── __init__.py │ ├── expedient.py │ ├── product_product.py │ ├── purchase_order.py │ ├── purchase_order_line.py │ ├── purchase_requisition.py │ ├── purchase_requisition_line.py │ ├── purchase_requisition_type.py │ ├── res_users.py │ ├── stock_location_route.py │ ├── stock_picking_type.py │ ├── stock_request.py │ ├── stock_request_order.py │ ├── stock_rule.py │ └── transaction.py ├── reports │ ├── purchase_order_publicity_report.odt │ ├── purchase_order_publicity_report.xml │ ├── purchase_requisition_report.odt │ └── purchase_requisition_report.xml ├── security │ ├── hide_groups.xml │ ├── ir.model.access.csv │ └── sipreco_purchase_security.xml ├── static │ └── description │ │ └── procurement_order.png ├── views │ ├── expedient_views.xml │ ├── product_template_views.xml │ ├── purchase_order_views.xml │ ├── purchase_requisition_type_views.xml │ ├── purchase_requisition_views.xml │ ├── res_users_views.xml │ ├── stock_inventory_views.xml │ ├── stock_location_route_views.xml │ ├── stock_move_line_views.xml │ ├── stock_move_views.xml │ ├── stock_picking_type_views.xml │ ├── stock_picking_views.xml │ ├── stock_request_order_views.xml │ ├── stock_request_views.xml │ └── transaction_views.xml └── wizards │ ├── __init__.py │ ├── create_expedients_wizard.py │ └── create_expedients_wizard_views.xml └── sipreco_subsidy_management ├── README.rst ├── __init__.py ├── __manifest__.py ├── data ├── cron.xml ├── ir_actions_server_data.xml ├── sequence_data.xml └── subsidy_note_type_data.xml ├── demo ├── helpdesk_demo.xml ├── public_budget.transaction_type.csv └── subsidy_demo.xml ├── i18n ├── br.po └── es.po ├── models ├── __init__.py ├── expedient.py ├── ir_actions_report.py ├── subsidy.py ├── subsidy_approval_arrangement.py ├── subsidy_note.py ├── subsidy_note_type.py ├── subsidy_rendition.py ├── subsidy_resolution.py ├── subsidy_resolution_line.py ├── subsidy_stage.py ├── subsidy_ticket.py └── transaction_type.py ├── reports ├── remit_report_subsidy.ods ├── remit_report_subsidy.xml ├── report_subsidy_resolution.ods ├── report_subsidy_tickets_resolution.ods ├── report_ticket_template.xml ├── subsidy_approval_arrangement_report.odt ├── subsidy_approval_arrangement_report.xml ├── subsidy_form_report.odt ├── subsidy_form_report.xml ├── subsidy_note_report.odt ├── subsidy_note_report.xml ├── subsidy_report.ods ├── subsidy_report.xml ├── subsidy_report_resolution.xml ├── subsidy_resolution_COMUN.odt ├── subsidy_resolution_INSTIT.odt ├── subsidy_resolution_ITRANS.odt ├── subsidy_tickets_resolution_COMUN.odt └── subsidy_tickets_resolution_INSTIT.odt ├── security ├── ir.model.access.csv └── ir_rule.xml ├── static └── description │ └── icon.png ├── views ├── expedient_views.xml ├── subsidy_approval_arrangement_views.xml ├── subsidy_note_type_views.xml ├── subsidy_portaluser_views.xml ├── subsidy_resolution_views.xml ├── subsidy_stage_views.xml ├── subsidy_ticket_director_views.xml ├── subsidy_ticket_views.xml ├── subsidy_views.xml └── transaction_type_views.xml └── wizards ├── __init__.py ├── create_administrative_process_wizard.py └── create_administrative_process_wizard_views.xml /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | 5 | # C extensions 6 | *.so 7 | 8 | # Distribution / packaging 9 | .Python 10 | env/ 11 | bin/ 12 | build/ 13 | develop-eggs/ 14 | dist/ 15 | eggs/ 16 | lib/ 17 | lib64/ 18 | parts/ 19 | sdist/ 20 | var/ 21 | *.egg-info/ 22 | .installed.cfg 23 | *.egg 24 | 25 | # Installer logs 26 | pip-log.txt 27 | pip-delete-this-directory.txt 28 | 29 | # Unit test / coverage reports 30 | htmlcov/ 31 | .tox/ 32 | .vscode/ 33 | .coverage 34 | .cache 35 | nosetests.xml 36 | coverage.xml 37 | 38 | # Translations 39 | *.mo 40 | 41 | # Mr Developer 42 | .mr.developer.cfg 43 | .project 44 | .pydevproject 45 | 46 | # Rope 47 | .ropeproject 48 | 49 | # Django stuff: 50 | *.log 51 | 52 | # Sphinx documentation 53 | docs/_build/ 54 | 55 | # UML temp files 56 | *.uml~ 57 | 58 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Coverage Status](https://coveralls.io/repos/ingadhoc/odoo-public-administration/badge.png?branch=15.0)](https://coveralls.io/r/ingadhoc/odoo-public-administration?branch=15.0) 2 | [![Code Climate](https://codeclimate.com/github/ingadhoc/odoo-public-administration/badges/gpa.svg)](https://codeclimate.com/github/ingadhoc/odoo-public-administration) 3 | 4 | # ADHOC odoo-public-administration 5 | 6 | ADHOC Odoo odoo-public-administration related Addons 7 | 8 | [//]: # (addons) 9 | [//]: # (end addons) 10 | 11 | Translation Status 12 | ------------------ 13 | [![Transifex Status](https://www.transifex.com/projects/p/ingadhoc-odoo-public-administration-15-0/chart/image_png)](https://www.transifex.com/projects/p/ingadhoc-odoo-public-administration-15-0) 14 | 15 | ---- 16 | 17 | ADHOC 18 | **Adhoc SA** - www.adhoc.com.ar 19 | -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- 1 | PARA MAS ADELANTE: 2 | * cambiamos implementación de subsidy line? por ej para lineas de pago: 3 | hacemos que todo se genere usando lógica de los payments 4 | datos fijos que vayan a journal o algo así, datos variables a wizard. 5 | que se pueda generar archivo desde lista de payment groups y dese uno solo 6 | hacer todo esto en módulo de localización 7 | Si hacemos este cambio deberíamos ver como migramos las payment lines 8 | * terminar de agregar al reporte _3 lo de adelanto y pagos (hay que traerlo de v8 porque lo borre) 9 | * Calculo de a pagar y pagado en facturas: Si a una factura se le imputa un saldo parcial (por ejemplo factura de sueldos por 1000 que se le impute devolución por 500), no se visualiza como pagado o mandado a pagar, solo cuando se paga completamente 10 | * advance.request.analysis: agregar currency y convertir a monetary 11 | 12 | -------------------------------------------------------------------------------- /public_budget/ANALAISIS DEPENDS Y MEJORAS PERFORMANCE: -------------------------------------------------------------------------------- 1 | CHANGELOG: 2 | * JULIO 2016 3 | ** Hicimos: 4 | account.invoice 5 | hicismos campo normal a to_pay_amount (_compute_to_pay_amount) 6 | public_budget.definitive_line 7 | hicismos campo normal a to_pay_amount (_get_amounts) 8 | hicismos campo normal a paid_amount (_get_amounts) 9 | hicismos campo normal a invoiced_amount (_get_amounts) 10 | para que funcione bien en reporte a fecha, además agregamos campos auxilaires calculados 11 | Agregamos auto_join 12 | 13 | POSIBLES MEJORAS 14 | * Si necesitamos más performance: 15 | la alternativa es hacer no computados a campos de invoice.line 16 | probar unificar métodos de campos calculados en transacion 17 | probar separar algunos métodos de definitive line 18 | 19 | ANALAISIS DEPENDS (VIEJO; YA CAMBIAMOS MUCHAS COSAS) 20 | 21 | invoice_line 22 | @api.one 23 | @api.depends( 24 | 'price_subtotal', 25 | 'invoice_id.amount_total', 26 | 'invoice_id.residual' 27 | ) 28 | def _get_amounts(self): 29 | to_pay_amount - NO STORED 30 | paid_amount - NO STORED 31 | 32 | invoice 33 | @api.one 34 | @api.depends( 35 | 'state', 'currency_id', 36 | 'move_id.line_id.voucher_line_ids.amount', 37 | 'move_id.line_id.voucher_line_ids.voucher_id.state', 38 | ) 39 | def _compute_to_pay_amount(self): 40 | to_pay_amount - STORED 41 | 42 | definitive 43 | @api.one 44 | @api.depends( 45 | 'amount', 46 | 'invoice_line_ids.invoice_id.state', 47 | 'invoice_line_ids.invoice_id.type', 48 | 'invoice_line_ids.price_subtotal', 49 | 'invoice_line_ids.to_pay_amount', 50 | 'invoice_line_ids.paid_amount', 51 | ) 52 | def _get_amounts(self): 53 | self.invoiced_amount = invoiced_amount - STORED 54 | self.residual_amount = self.amount - invoiced_amount - STORED 55 | self.to_pay_amount = to_pay_amount - STORED 56 | self.paid_amount = paid_amount - STORED -------------------------------------------------------------------------------- /public_budget/__init__.py: -------------------------------------------------------------------------------- 1 | from . import controllers 2 | from . import models 3 | from . import wizards 4 | from . import reports 5 | from odoo import fields 6 | -------------------------------------------------------------------------------- /public_budget/controllers/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | 6 | from . import portal 7 | -------------------------------------------------------------------------------- /public_budget/controllers/portal.py: -------------------------------------------------------------------------------- 1 | from odoo import http 2 | from odoo.addons.portal.controllers.portal import CustomerPortal 3 | from odoo.http import request 4 | 5 | 6 | class CustomerPortal(CustomerPortal): 7 | 8 | @http.route() 9 | def home(self, **kw): 10 | # Anulamos portal para este caso que simpre redirija a backend 11 | return request.redirect('/web') 12 | -------------------------------------------------------------------------------- /public_budget/data/expedient_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Administrativo 6 | 7 | 8 | 9 | Contable 10 | 11 | 12 | Personal 13 | 14 | 15 | Subsidios 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /public_budget/data/expedient_founder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Protocolo 5 | 6 | 7 | 8 | Compras 9 | 10 | 11 | 12 | Prensa 13 | 14 | 15 | 16 | DAF 17 | 18 | 19 | 20 | Otros 21 | 22 | 23 | 24 | Habilitaciones 25 | 26 | 27 | 28 | Secretaría Administrativa 29 | 30 | 31 | 32 | Contaduria 33 | 34 | 35 | -------------------------------------------------------------------------------- /public_budget/data/ir_config_parameter_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | -------------------------------------------------------------------------------- /public_budget/data/position_category.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Gasto 5 | 6 | 7 | 8 | Capital 9 | 10 | 11 | -------------------------------------------------------------------------------- /public_budget/data/position_exc_restrictions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ¡Advertencia! Recuerde que no es posible reasignar saldo de una partida del tipo Capital a una del tipo Gastos. 5 | block 6 | 7 | 8 | 9 | 10 | 11 | Aviso: Esta reasignando saldos entre partidas de tipo Gastos. 12 | alert 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /public_budget/data/sequence.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Expedient 7 | public_budget.expedient 8 | TA-%(year)s- 9 | 6 10 | 11 | no_gap 12 | 13 | 14 | 15 | 16 | 17 | Remit 18 | public_budget.remit 19 | RE-%(year)s- 20 | 6 21 | 22 | 23 | 24 | 25 | Asset Reference 26 | public_budget.asset 27 | A 28 | 4 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /public_budget/data/server_actions_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Imprimir Cheques 7 | 8 | 9 | report 10 | code 11 | 12 | payments = records.mapped('payment_ids').filtered(lambda x: x.payment_method_code == 'issue_check') 13 | if not payments: 14 | raise Warning('No se encontraron cheques en las ordenes de pago seleccionadas') 15 | payments = payments.with_context(active_model=payments._name, active_ids=payments.ids) 16 | action = env['ir.actions.report'].search([('report_name', '=', 'check_report')], limit=1).report_action(payments) 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /public_budget/demo/SIPRECO_Logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/demo/SIPRECO_Logo.png -------------------------------------------------------------------------------- /public_budget/demo/account_chart_template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public_budget/demo/account_journal_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Adelantos 9 | 99ADE 10 | general 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /public_budget/demo/account_payment_receiptbook_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | supplier 6 | automatic 7 | 8 | OP/%(year)s 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.budget.csv: -------------------------------------------------------------------------------- 1 | id,name,income_account_id/id,expedient_id/id,company_id/id,receiptbook_id/id,state 2 | budget_actual,Presupuesto Actual,account_ingresos,budget_exp_caso_11,company_sipreco,payment_order_actual,open 3 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.budget_detail.csv: -------------------------------------------------------------------------------- 1 | id,budget_position_id/id,initial_amount,budget_id/id 2 | budg_det_1,budg_pos_1,40000,budget_actual 3 | budg_det_2,budg_pos_2,50000,budget_actual 4 | budg_det_3,budg_pos_3,30000,budget_actual 5 | budg_det_5,budg_pos_5,3000,budget_actual 6 | budg_det_6,budg_pos_6,25000,budget_actual 7 | budg_det_7,budg_pos_7,0,budget_actual 8 | budg_det_8,budg_pos_8,10000,budget_actual 9 | budg_det_9,budg_pos_9,50000,budget_actual 10 | budg_det_10,budg_pos_10,30000,budget_actual 11 | budg_det_11,budg_pos_11,9000000,budget_actual 12 | budg_det_12,budg_pos_12,150000,budget_actual 13 | budg_det_13,budg_pos_13,0,budget_actual 14 | budg_det_14,budg_pos_14,1000000,budget_actual 15 | budg_det_15,budg_pos_otros,84000,budget_actual 16 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.budget_modification.csv: -------------------------------------------------------------------------------- 1 | id,name,type,reference,budget_id/id 2 | budg_mod_2,Modificación para compra de computadoras con licencia,exchange,Según resolución 20xx/14,budget_actual 3 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.budget_modification_detail.csv: -------------------------------------------------------------------------------- 1 | id,budget_position_id/id,amount,budget_modification_id/id 2 | budg_mod_det_2_1,budg_pos_14,10000,budg_mod_2 3 | budg_mod_det_2_2,budg_pos_12,-10000,budg_mod_2 4 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.expedient.csv: -------------------------------------------------------------------------------- 1 | id,description,number,type,founder_id/id,category_id/id,first_location_id/id,pages,user_id/id 2 | budget_exp_caso_1,Adquisición de sistema de software (bien/servicio por licitacion/concurso),Caso 1,authorizing,expedient_founder_1,budget_exp_category_1,public_location_secretaria,5,contaduria_manager_user 3 | budget_exp_caso_2,Adquisición de bienes inventariables que afectan a más de un presupuesto,Caso 2,authorizing,expedient_founder_2,budget_exp_category_2,public_location_secretaria,4,contaduria_manager_user 4 | budget_exp_caso_3,Compra directa (bien o servicio),Caso 3,authorizing,expedient_founder_3,budget_exp_category_2,public_location_secretaria,2,contaduria_manager_user 5 | budget_exp_caso_4,"Pago de servicios (luz,agua,etc)",Caso 4,authorizing,expedient_founder_4,budget_exp_category_2,public_location_secretaria,55,contaduria_manager_user 6 | budget_exp_caso_5,Caja chica,Caso 5,authorizing,expedient_founder_1,budget_exp_category_1,public_location_secretaria,3,contaduria_manager_user 7 | budget_exp_caso_6,Anticipo con cargo de rendición,Caso 6,authorizing,expedient_founder_2,budget_exp_category_2,public_location_secretaria,2,contaduria_manager_user 8 | budget_exp_caso_7,Pago de alquiler,Caso 7,payment,expedient_founder_3,budget_exp_category_2,public_location_secretaria,5,contaduria_manager_user 9 | budget_exp_caso_8,Pago de sueldos,Caso 8,payment,expedient_founder_4,budget_exp_category_2,public_location_secretaria,6,contaduria_manager_user 10 | budget_exp_caso_9,Subsidio con cargo,Caso 9,authorizing,expedient_founder_3,budget_exp_category_1,public_location_secretaria,3,contaduria_manager_user 11 | budget_exp_caso_10,Subsidio sin cargo,Caso 10,authorizing,expedient_founder_4,budget_exp_category_2,public_location_secretaria,1,contaduria_manager_user 12 | budget_exp_caso_11,Presupuesto 2014,Caso 11,authorizing,expedient_founder_4,budget_exp_category_2,public_location_secretaria,5,contaduria_manager_user 13 | budget_exp_caso_12,Presupuesto 2015,Caso 12,authorizing,expedient_founder_4,budget_exp_category_2,public_location_secretaria,2,contaduria_manager_user 14 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.location.csv: -------------------------------------------------------------------------------- 1 | id,name,expedient_management,level,number,building 2 | public_location_secretaria,Secretaria,True,1,3,10 3 | public_location_contaduria,Contaduría,True,1,3,10 4 | public_location_habilitaciones,Habilitaciones,True,1,3,10 5 | public_location_mesa_de_entrada,Mesa de Entrada,True,1,3,10 6 | public_location_compras,Compras,True,1,3,10 7 | public_location_tmc,Tribunal de Cuentas,True,1,3,10 8 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.preventive_line.csv: -------------------------------------------------------------------------------- 1 | id,transaction_id/id,account_id/id,budget_position_id/id,preventive_amount,advance_line 2 | prev_line_1,budg_trans_caso_1,account_gastos_varios,budg_pos_12,30000, 3 | prev_line_2,budg_trans_caso_1,account_gastos_varios,budg_pos_14,20000, 4 | prev_line_3,budg_trans_caso_2,account_gastos_varios,budg_pos_14,30000, 5 | prev_line_5,budg_trans_caso_3,account_gastos_varios,budg_pos_12,800, 6 | prev_line_6,budg_trans_caso_4,account_gastos_varios,budg_pos_5,1300, 7 | prev_line_7,budg_trans_caso_5,,budg_pos_11,1000,True 8 | prev_line_8,budg_trans_caso_6,,budg_pos_11,1000,True 9 | prev_line_9,budg_trans_caso_7,account_gastos_varios,budg_pos_6,15000, 10 | prev_line_10,budg_trans_caso_8,account_gastos_varios,budg_pos_1,30000, 11 | prev_line_11,budg_trans_caso_8,account_gastos_varios,budg_pos_2,10000, 12 | prev_line_12,budg_trans_caso_8,account_gastos_varios,budg_pos_3,10000, 13 | prev_line_13,budg_trans_caso_9,,budg_pos_17,1500,True 14 | prev_line_14,budg_trans_caso_10,account_gastos_varios,budg_pos_17,1000, 15 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.remit.csv: -------------------------------------------------------------------------------- 1 | id,user_id/id,location_id/id,location_dest_id/id,expedient_ids/id 2 | expedient_remit_1,contaduria_user_user,public_location_secretaria,public_location_mesa_de_entrada,"budget_exp_caso_1,budget_exp_caso_2" 3 | expedient_remit_2,contaduria_user_user,public_location_secretaria,public_location_contaduria,"budget_exp_caso_3,budget_exp_caso_4" 4 | expedient_remit_3,contaduria_user_user,public_location_secretaria,public_location_compras,budget_exp_caso_5 5 | -------------------------------------------------------------------------------- /public_budget/demo/public_budget.transaction_type.csv: -------------------------------------------------------------------------------- 1 | id,advance_account_id/id,name,with_advance_payment,definitive_partner_type,company_id/id 2 | purchase_type_fondo_fijo_demo,account_fondo_fijo,Fondo Fijo / Caja Chica,True,supplier,company_sipreco 3 | purchase_type_compra_directa_demo,,Compra Directa,,supplier,company_sipreco 4 | purchase_type_lprivada_demo,,Licitación Privada,,supplier,company_sipreco 5 | purchase_type_lpublica_demo,,Licitación Pública,,supplier,company_sipreco 6 | purchase_type_concurso_precios_demo,,Concurso de Precios,,supplier,company_sipreco 7 | purchase_type_sueldos_demo,,Sueldos,,supplier,company_sipreco 8 | purchase_type_anticipo_gasto_demo,account_anticipo_gastos,Anticipo de Gastos,True,supplier,company_sipreco 9 | purchase_type_subsidio_con_cargo_demo,account_subsidio_con_cargo,Anticipo de Gastos,True,subsidy_recipient,company_sipreco 10 | purchase_type_subsidio_sin_cargo_demo,,Subsidio sin Cargo de Rendición,,subsidy_recipient,company_sipreco 11 | purchase_type_compra_directa_con_autorizacion_demo,,Compra Directa con autorización de cuerpo,,supplier,company_sipreco 12 | purchase_type_orden_de_trabajo_demo,,Orden de Trabajo (adicional empleado),,supplier,company_sipreco 13 | -------------------------------------------------------------------------------- /public_budget/demo/res_company_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 30666666662 9 | SIPRECO 10 | Calle Falsa 456 11 | Rosario 12 | 13 | 14 | 15 | 2000 16 | +1 555 123 8069 17 | info@yourcompany.example.com 18 | www.example.com 19 | 20 | 21 | 22 | 23 | 24 | 25 | exempt 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | SIPRECO 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /public_budget/demo/res_partner_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Personal Permanente 7 | 8 | 9 | 30000001 10 | 11 | 12 | 13 | Personal No Permanente 14 | 15 | 16 | 30000002 17 | 18 | 19 | 20 | Personal Transitorio 21 | 22 | 23 | 30000003 24 | 25 | 26 | -------------------------------------------------------------------------------- /public_budget/i18n_extra/es.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * public_budget 4 | # 5 | msgid "" 6 | msgstr "" 7 | "Project-Id-Version: Odoo Server 13.0e\n" 8 | "Report-Msgid-Bugs-To: \n" 9 | "POT-Creation-Date: 2017-12-10 22:54+0000\n" 10 | "PO-Revision-Date: 2017-12-11 14:06-0300\n" 11 | "Last-Translator: <>\n" 12 | "Language-Team: \n" 13 | "MIME-Version: 1.0\n" 14 | "Content-Type: text/plain; charset=UTF-8\n" 15 | "Content-Transfer-Encoding: 8bit\n" 16 | "Plural-Forms: \n" 17 | "Language: es\n" 18 | "X-Generator: Poedit 1.8.7.1\n" 19 | 20 | #. module: account_asset 21 | #: model:ir.model.fields,field_description:account_asset.field_account_asset__model_id 22 | #: model:ir.model.fields.selection,name:account_asset.selection__account_asset__state__mod 23 | msgid "Model" 24 | msgstr "Rubro" 25 | 26 | 27 | #. module: account 28 | #: model_terms:ir.ui.view,arch_db:account.view_move_form 29 | msgid "Post" 30 | msgstr "Validar" 31 | -------------------------------------------------------------------------------- /public_budget/images/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/images/README -------------------------------------------------------------------------------- /public_budget/migrations/11.0.1.1.0/post-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | 3 | 4 | @openupgrade.migrate() 5 | def migrate(env, version): 6 | openupgrade.load_data( 7 | env.cr, 'public_budget', 'data/server_actions_data.xml') 8 | -------------------------------------------------------------------------------- /public_budget/migrations/11.0.1.18.0/mig_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public_budget/migrations/11.0.1.18.0/post-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | 3 | 4 | @openupgrade.migrate() 5 | def migrate(env, version): 6 | openupgrade.load_data( 7 | env.cr, 'public_budget', 'migrations/11.0.1.18.0/mig_data.xml') 8 | -------------------------------------------------------------------------------- /public_budget/migrations/11.0.1.21.0/mig_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /public_budget/migrations/11.0.1.21.0/post-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | 3 | 4 | @openupgrade.migrate() 5 | def migrate(env, version): 6 | openupgrade.load_data( 7 | env.cr, 'public_budget', 'migrations/11.0.1.21.0/mig_data.xml') 8 | -------------------------------------------------------------------------------- /public_budget/migrations/11.0.1.25.0/post-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | 3 | 4 | @openupgrade.migrate() 5 | def migrate(env, version): 6 | locations = env['public_budget.location'].search([]) 7 | locations.write({'expedient_management': True}) 8 | -------------------------------------------------------------------------------- /public_budget/migrations/13.0.1.0.0/mig_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public_budget/migrations/13.0.1.0.0/post-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | 3 | 4 | @openupgrade.migrate() 5 | def migrate(env, version): 6 | openupgrade.load_data( 7 | env.cr, 'public_budget', 'migrations/13.0.1.0.0/mig_data.xml') 8 | -------------------------------------------------------------------------------- /public_budget/migrations/13.0.1.16.0/mig_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public_budget/migrations/13.0.1.16.0/post-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | 3 | 4 | @openupgrade.migrate() 5 | def migrate(env, version): 6 | openupgrade.load_data( 7 | env.cr, 'public_budget', 'migrations/13.0.1.16.0/mig_data.xml') 8 | -------------------------------------------------------------------------------- /public_budget/migrations/15.0.1.14.0/post-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | import logging 3 | 4 | logger = logging.getLogger(__name__) 5 | 6 | 7 | @openupgrade.migrate() 8 | def migrate(env, version): 9 | logger.info('Corremos el método computado _compute_cover del modelo public_budget.expedient en aquellos registros con fecha de emisión y creados en el año 2024 y con fecha de última modificación el 16-02-2024 (fecha en la cual se introdujo el bug) que tengan registros en el campo "Proveedor/Empleado" (supplier_ids) y el campo "description" coincida con el campo "cover". Esto lo hacemos porque al momento de imprimir el Reporte de expediente en la carátula no sale concatenado el nombre de "Proveedor/Empleado".') 10 | env['public_budget.expedient'].search([('write_date', '>=', '2024-02-16'), ('issue_date', '>=', '2024-01-01'), ('create_date', '>=', '2024-01-01')]).filtered(lambda x: x.description and x.supplier_ids and x.description == x.cover)._compute_cover() 11 | -------------------------------------------------------------------------------- /public_budget/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import inventory_rule 2 | from . import res_partner 3 | from . import account_payment_group 4 | from . import account_payment 5 | from . import account_move 6 | from . import advance_request_type 7 | from . import advance_request 8 | from . import transaction_type 9 | from . import transaction_type_amo_rest 10 | from . import advance_return 11 | from . import expedient_category 12 | from . import location 13 | from . import budget_modification_detail 14 | from . import funding_move 15 | from . import account_move_line 16 | from . import rest_type 17 | from . import res_users 18 | from . import budget_position 19 | from . import res_company 20 | from . import budget_detail 21 | from . import budget_prec_detail 22 | from . import preventive_line 23 | from . import definitive_line 24 | from . import transaction 25 | from . import budget_position_category 26 | from . import budget 27 | from . import remit 28 | from . import advance_return_line 29 | from . import budget_pos_exc_rest 30 | from . import budget_modification 31 | from . import expedient 32 | from . import advance_request_line 33 | from . import expedient_founder 34 | from . import account_bank_statement 35 | from . import account_journal 36 | from . import account_tax 37 | from . import account_asset 38 | from . import l10n_latam_document_type 39 | -------------------------------------------------------------------------------- /public_budget/models/account_bank_statement.py: -------------------------------------------------------------------------------- 1 | from odoo import models, _ 2 | from odoo.exceptions import ValidationError 3 | import logging 4 | _logger = logging.getLogger(__name__) 5 | 6 | 7 | class AccountBankStatementLine(models.Model): 8 | 9 | _inherit = 'account.bank.statement.line' 10 | 11 | def process_reconciliation( 12 | self, counterpart_aml_dicts=None, payment_aml_rec=None, 13 | new_aml_dicts=None): 14 | max_operation = self.journal_id.max_statement_operation 15 | if counterpart_aml_dicts: 16 | raise ValidationError(_( 17 | 'No se puede pagar una deuda desde aquí. Utilice las órdenes ' 18 | 'de pago')) 19 | elif new_aml_dicts and max_operation: 20 | debit = sum([x.get('debit', 0.0) for x in new_aml_dicts]) 21 | credit = sum([x.get('credit', 0.0) for x in new_aml_dicts]) 22 | # for line in new_aml_dicts: 23 | # if line.get('debit') > max_statement_operation or\ 24 | # line.get('credit') > max_statement_operation: 25 | if credit > max_operation or debit > max_operation: 26 | raise ValidationError(_( 27 | 'No puede hacer un registro en extractos mayor a %s' 28 | ) % (max_operation)) 29 | 30 | return super().process_reconciliation( 31 | counterpart_aml_dicts=counterpart_aml_dicts, 32 | payment_aml_rec=payment_aml_rec, 33 | new_aml_dicts=new_aml_dicts, 34 | ) 35 | -------------------------------------------------------------------------------- /public_budget/models/account_journal.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class AccountJournal(models.Model): 5 | 6 | _inherit = 'account.journal' 7 | 8 | max_statement_operation = fields.Float( 9 | ) 10 | -------------------------------------------------------------------------------- /public_budget/models/account_tax.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | from dateutil.relativedelta import relativedelta 3 | import datetime 4 | 5 | 6 | class AccountTax(models.Model): 7 | _inherit = "account.tax" 8 | 9 | def get_period_payments_domain(self, payment_group): 10 | """ en sipreco usamos to_signature_date en vez de payment_date 11 | """ 12 | to_date = fields.Date.from_string( 13 | payment_group.to_signature_date) or datetime.date.today() 14 | common_previous_domain = [ 15 | ('partner_id.commercial_partner_id', '=', 16 | payment_group.commercial_partner_id.id), 17 | ] 18 | if self.withholding_accumulated_payments == 'month': 19 | from_relative_delta = relativedelta(day=1) 20 | elif self.withholding_accumulated_payments == 'year': 21 | from_relative_delta = relativedelta(day=1, month=1) 22 | from_date = to_date + from_relative_delta 23 | common_previous_domain += [ 24 | ('to_signature_date', '<=', to_date), 25 | ('to_signature_date', '>=', from_date), 26 | ] 27 | 28 | previous_payment_groups_domain = common_previous_domain + [ 29 | ('state', 'not in', ['draft', 'cancel', 'confirmed']), 30 | ('id', '!=', payment_group.id), 31 | ] 32 | # for compatibility with public_budget we check state not in and not 33 | # state in posted. Just in case someone implements payments cancelled 34 | # on posted payment group, we remove the cancel payments (not the 35 | # draft ones as they are also considered by public_budget) 36 | previous_payments_domain = common_previous_domain + [ 37 | ('payment_group_id.state', 'not in', 38 | ['draft', 'cancel', 'confirmed']), 39 | ('state', '!=', 'cancel'), 40 | ('tax_withholding_id', '=', self.id), 41 | ('payment_group_id.id', '!=', payment_group.id), 42 | ] 43 | return (previous_payment_groups_domain, previous_payments_domain) 44 | -------------------------------------------------------------------------------- /public_budget/models/advance_return_line.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | 4 | class AdvanceReturnLine(models.Model): 5 | 6 | _name = 'public_budget.advance_return_line' 7 | _description = 'Advance Return Lines' 8 | 9 | employee_id = fields.Many2one( 10 | 'res.partner', 11 | required=True, 12 | context={'default_employee': 1}, 13 | domain=[('employee', '=', True)] 14 | ) 15 | debt_amount = fields.Monetary( 16 | required=True, 17 | compute='_compute_amounts', 18 | ) 19 | returned_amount = fields.Monetary( 20 | required=True, 21 | ) 22 | advance_return_id = fields.Many2one( 23 | 'public_budget.advance_return', 24 | ondelete='cascade', 25 | required=True, 26 | auto_join=True 27 | ) 28 | state = fields.Selection( 29 | related='advance_return_id.state', 30 | readonly=False, 31 | ) 32 | currency_id = fields.Many2one( 33 | related='advance_return_id.company_id.currency_id', 34 | ) 35 | 36 | @api.depends( 37 | 'employee_id', 38 | ) 39 | def _compute_amounts(self): 40 | self.debt_amount = 0.0 41 | for rec in self.filtered('employee_id'): 42 | rec.debt_amount = rec.employee_id.get_debt_amount( 43 | rec.advance_return_id.type_id) 44 | -------------------------------------------------------------------------------- /public_budget/models/budget_detail.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, _ 2 | 3 | 4 | class BudgetDetail(models.Model): 5 | 6 | _name = 'public_budget.budget_detail' 7 | _description = 'Budget Detail' 8 | 9 | _order = "budget_position_id" 10 | 11 | initial_amount = fields.Monetary( 12 | required=True, 13 | ) 14 | state = fields.Selection( 15 | related='budget_id.state' 16 | ) 17 | budget_id = fields.Many2one( 18 | 'public_budget.budget', 19 | required=True 20 | ) 21 | budget_position_id = fields.Many2one( 22 | 'public_budget.budget_position', 23 | required=True, 24 | context={ 25 | 'default_type': 'normal', 'default_budget_assignment_allowed': 1}, 26 | domain=[('budget_assignment_allowed', '=', True)] 27 | ) 28 | currency_id = fields.Many2one( 29 | related='budget_id.currency_id', 30 | ) 31 | amount = fields.Monetary( 32 | compute='_compute_amount', 33 | ) 34 | modifications = fields.Monetary( 35 | compute='_compute_amount', 36 | ) 37 | 38 | _sql_constraints = [ 39 | ('position_unique', 'unique(budget_position_id, budget_id)', 40 | _('Budget Position must be unique per Budget.'))] 41 | 42 | def _compute_amount(self): 43 | for rec in self: 44 | modifications = sum( 45 | rec.budget_id.budget_modification_ids.mapped( 46 | 'budget_modification_detail_ids').filtered( 47 | lambda x: x.budget_position_id == rec. 48 | budget_position_id).mapped('amount')) 49 | rec.update({ 50 | 'amount': rec.initial_amount + modifications, 51 | 'modifications': modifications, 52 | }) 53 | -------------------------------------------------------------------------------- /public_budget/models/budget_pos_exc_rest.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class BudgetPositionExchangeRestriction(models.Model): 5 | 6 | _name = 'public_budget.budget_pos_exc_rest' 7 | _description = 'Budget Position Exchange Restriction' 8 | 9 | origin_category_id = fields.Many2one( 10 | 'public_budget.budget_position_category', 11 | required=True 12 | ) 13 | destiny_category_id = fields.Many2one( 14 | 'public_budget.budget_position_category', 15 | required=True 16 | ) 17 | type = fields.Selection( 18 | [('alert', 'Alert'), ('block', 'Block')], 19 | required=True 20 | ) 21 | message = fields.Char( 22 | required=True 23 | ) 24 | -------------------------------------------------------------------------------- /public_budget/models/budget_position_category.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class BudgetPositionCategory(models.Model): 5 | """Budget Position Category""" 6 | 7 | _name = 'public_budget.budget_position_category' 8 | _description = 'Budget Position Category' 9 | 10 | name = fields.Char( 11 | required=True 12 | ) 13 | -------------------------------------------------------------------------------- /public_budget/models/budget_prec_detail.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class BudgetPrecloseDetail(models.Model): 5 | """""" 6 | 7 | _name = 'public_budget.budget_prec_detail' 8 | _description = 'Budget Preclose Detail' 9 | _order = "order_int" 10 | 11 | budget_position_id = fields.Many2one( 12 | 'public_budget.budget_position', 13 | required=True 14 | ) 15 | amount = fields.Monetary( 16 | readonly=True, 17 | required=True, 18 | ) 19 | draft_amount = fields.Monetary( 20 | readonly=True, 21 | required=True, 22 | ) 23 | preventive_amount = fields.Monetary( 24 | readonly=True, 25 | required=True, 26 | ) 27 | definitive_amount = fields.Monetary( 28 | readonly=True, 29 | required=True, 30 | ) 31 | to_pay_amount = fields.Monetary( 32 | readonly=True, 33 | required=True, 34 | ) 35 | paid_amount = fields.Monetary( 36 | readonly=True, 37 | required=True, 38 | ) 39 | balance_amount = fields.Monetary( 40 | readonly=True, 41 | required=True, 42 | ) 43 | account_type = fields.Selection( 44 | string='Type', 45 | related='budget_position_id.type', 46 | ) 47 | order_int = fields.Integer( 48 | string='Parent Left' 49 | ) 50 | budget_id = fields.Many2one( 51 | 'public_budget.budget', 52 | required=True 53 | ) 54 | currency_id = fields.Many2one( 55 | related='budget_id.company_id.currency_id', 56 | ) 57 | -------------------------------------------------------------------------------- /public_budget/models/expedient_category.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class ExpedientCategory(models.Model): 5 | 6 | _name = 'public_budget.expedient_category' 7 | _description = 'Expedient Category' 8 | 9 | name = fields.Char( 10 | required=True 11 | ) 12 | -------------------------------------------------------------------------------- /public_budget/models/expedient_founder.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class ExpedientFounder(models.Model): 5 | 6 | _name = 'public_budget.expedient_founder' 7 | _description = 'Expedient Founder' 8 | 9 | name = fields.Char( 10 | required=True 11 | ) 12 | -------------------------------------------------------------------------------- /public_budget/models/inventory_rule.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class InventoryRule(models.Model): 5 | """""" 6 | 7 | _name = 'public_budget.inventory_rule' 8 | _description = 'Inventory Rule' 9 | 10 | date = fields.Date( 11 | required=True, 12 | default=fields.Date.context_today 13 | ) 14 | min_amount = fields.Monetary( 15 | string='Minimum Amount', 16 | required=True, 17 | ) 18 | company_id = fields.Many2one( 19 | 'res.company', 20 | required=True, 21 | default=lambda self: self.env.company 22 | ) 23 | currency_id = fields.Many2one( 24 | related='company_id.currency_id', 25 | ) 26 | -------------------------------------------------------------------------------- /public_budget/models/l10n_latam_document_type.py: -------------------------------------------------------------------------------- 1 | from odoo import models 2 | 3 | 4 | class L10nLatamDocumentType(models.Model): 5 | 6 | _inherit = 'l10n_latam.document.type' 7 | 8 | 9 | def _format_document_number(self, document_number): 10 | """ We consider that validation not apply to recipts 11 | """ 12 | if self._context.get('is_recipt', False): 13 | return document_number 14 | return super()._format_document_number(document_number) 15 | -------------------------------------------------------------------------------- /public_budget/models/location.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | 4 | class Location(models.Model): 5 | 6 | _name = 'public_budget.location' 7 | _inherit = ['mail.thread', 'mail.activity.mixin'] 8 | _description = 'Location' 9 | _rec_name = 'complete_name' 10 | 11 | _order = "name" 12 | 13 | name = fields.Char( 14 | required=True, 15 | ) 16 | complete_name = fields.Char( 17 | compute='_compute_complete_name', 18 | store=True, 19 | ) 20 | user_ids = fields.Many2many( 21 | 'res.users', 22 | 'public_budget_user_ids_location_ids_rel', 23 | 'location_id', 24 | 'users_id', 25 | string='Users' 26 | ) 27 | user_id = fields.Many2one( 28 | 'res.users', 29 | 'Responsable', 30 | tracking=True, 31 | ) 32 | asset_management = fields.Boolean('For asset management') 33 | expedient_management = fields.Boolean('For expedient management') 34 | level = fields.Char() 35 | number = fields.Char() 36 | building = fields.Char() 37 | active = fields.Boolean( 38 | tracking=True, 39 | default=True, 40 | ) 41 | 42 | @api.depends('name', 'level', 'number', 'building') 43 | def _compute_complete_name(self): 44 | for location in self: 45 | name = location.name 46 | if location.level: 47 | name += '-' + location.level 48 | if location.number: 49 | name += '-' + location.number 50 | if location.building: 51 | name += '-' + location.building 52 | location.complete_name = name 53 | -------------------------------------------------------------------------------- /public_budget/models/res_company.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class ResCompany(models.Model): 5 | 6 | _inherit = 'res.company' 7 | 8 | inventory_rule_ids = fields.One2many( 9 | 'public_budget.inventory_rule', 10 | 'company_id', 11 | string='Inventory Rules' 12 | ) 13 | -------------------------------------------------------------------------------- /public_budget/models/res_users.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | 4 | class ResUsers(models.Model): 5 | 6 | _inherit = 'res.users' 7 | 8 | location_ids = fields.Many2many( 9 | 'public_budget.location', 10 | 'public_budget_user_ids_location_ids_rel', 11 | 'users_id', 12 | 'location_id', 13 | string='Allowed Locations' 14 | ) 15 | 16 | expedient_category_ids = fields.Many2many( 17 | 'public_budget.expedient_category', 18 | 'public_budget_user_ids_category_ids_rel', 19 | 'users_id', 20 | 'category_id', 21 | string='Allowed Expedient Categories' 22 | ) 23 | public_portal_groups_ids = fields.Many2many( 24 | 'res.groups', 25 | compute='_compute_public_portal_groups_ids', 26 | inverse='_inverse_public_portal_groups_ids', 27 | string='Portal Groups', 28 | domain=lambda self: [('category_id', '=', self.env.ref( 29 | 'public_budget.category_public_budget_portal', raise_if_not_found=False) and self.env.ref( 30 | 'public_budget.category_public_budget_portal', raise_if_not_found=False).id or False)], 31 | ) 32 | is_portal_user = fields.Boolean( 33 | compute='_compute_is_portal_user', 34 | ) 35 | 36 | @api.depends('groups_id') 37 | def _compute_is_portal_user(self): 38 | for rec in self: 39 | rec.is_portal_user = rec.groups_id.filtered( 40 | lambda g: g == self.env.ref('base.group_portal')) or False 41 | 42 | def _inverse_public_portal_groups_ids(self): 43 | for rec in self: 44 | rec.groups_id = rec.public_portal_groups_ids 45 | 46 | def _compute_public_portal_groups_ids(self): 47 | portal_group = self.env.ref('public_budget.category_public_budget_portal', raise_if_not_found=False) or None 48 | if not portal_group: 49 | self.update({'public_portal_groups_ids': self.env['res.groups']}) 50 | for rec in self: 51 | groups = rec.groups_id.filtered( 52 | lambda g: g.category_id == portal_group) 53 | rec.public_portal_groups_ids = groups 54 | -------------------------------------------------------------------------------- /public_budget/models/rest_type.py: -------------------------------------------------------------------------------- 1 | from odoo import models 2 | 3 | 4 | class RestType(models.Model): 5 | """ 6 | Parece que no es usado para nada pero es posible que si, tengo que 7 | analizarlo 8 | """ 9 | 10 | _name = 'public_budget.rest_type' 11 | _description = 'rest_type' 12 | -------------------------------------------------------------------------------- /public_budget/models/transaction_type.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api, _ 2 | from odoo.exceptions import ValidationError 3 | 4 | 5 | class TransactionType(models.Model): 6 | """Transaction Type""" 7 | 8 | _name = 'public_budget.transaction_type' 9 | _description = 'Transaction Type' 10 | 11 | name = fields.Char( 12 | required=True, 13 | translate=True 14 | ) 15 | with_amount_restriction = fields.Boolean( 16 | string='With Amount Restriction?' 17 | ) 18 | with_advance_payment = fields.Boolean( 19 | string='With advance payment?' 20 | ) 21 | advance_account_id = fields.Many2one( 22 | 'account.account', 23 | string='Advance Account', 24 | domain="[('company_id', '=', company_id), " 25 | "('internal_type', '!=', 'liquidity'), ('deprecated', '=', False)," 26 | " ('reconcile', '=', False)]", 27 | help='This account will be used on advance payments. Must be a payable' 28 | ' account.', 29 | ) 30 | amount_restriction_ids = fields.One2many( 31 | 'public_budget.transaction_type_amo_rest', 32 | 'transaction_type_id', 33 | string='Amount Restrictions' 34 | ) 35 | company_id = fields.Many2one( 36 | 'res.company', 37 | required=True, 38 | default=lambda self: self.env.company, 39 | ) 40 | definitive_partner_type = fields.Selection([ 41 | ('supplier', 'Suppliers'), 42 | ('subsidy_recipient', 'Subsidy Recipients'), 43 | ], 44 | 'Definitive Partner Type', 45 | default='supplier', 46 | required=True, 47 | ) 48 | 49 | @api.constrains('advance_account_id', 'company_id') 50 | def check_account_company(self): 51 | for rec in self: 52 | if ( 53 | rec.advance_account_id and 54 | rec.advance_account_id.company_id != rec.company_id 55 | ): 56 | raise ValidationError(_( 57 | 'Company must be the same as Account Company!')) 58 | -------------------------------------------------------------------------------- /public_budget/models/transaction_type_amo_rest.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class TransactionTypeAmountRestriction(models.Model): 5 | """Transaction Type Amount Restriction""" 6 | 7 | _name = 'public_budget.transaction_type_amo_rest' 8 | _description = 'Transaction Type Amount Restriction' 9 | 10 | _order = "date desc" 11 | 12 | date = fields.Date( 13 | required=True, 14 | default=fields.Date.context_today 15 | ) 16 | from_amount = fields.Monetary( 17 | required=True, 18 | ) 19 | to_amount = fields.Monetary( 20 | required=True, 21 | ) 22 | transaction_type_id = fields.Many2one( 23 | 'public_budget.transaction_type', 24 | ondelete='cascade', 25 | string='transaction_type_id', 26 | required=True 27 | ) 28 | currency_id = fields.Many2one( 29 | related='transaction_type_id.company_id.currency_id', 30 | ) 31 | -------------------------------------------------------------------------------- /public_budget/reports/__init__.py: -------------------------------------------------------------------------------- 1 | from . import advance_request_analysis 2 | # Por ahora vamos a ahcer una vista para analizar las líneas preventivas 3 | # from . import public_budget_budget_report_3 4 | from . import public_budget_budget_report_4 5 | -------------------------------------------------------------------------------- /public_budget/reports/advance_request_debt_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/advance_request_debt_report.odt -------------------------------------------------------------------------------- /public_budget/reports/advance_request_debt_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Advance Request Debt Report 7 | ir.actions.report 8 | public_budget.advance_request_type 9 | advance_request_debt_report 10 | aeroo 11 | oo-odt 12 | public_budget/reports/advance_request_debt_report.odt 13 | file 14 | 15 | specified 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/advance_request_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/advance_request_report.odt -------------------------------------------------------------------------------- /public_budget/reports/advance_request_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Advance Request Report 7 | public_budget.advance_request 8 | advance_request_report 9 | aeroo 10 | oo-odt 11 | public_budget/reports/advance_request_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/advance_return_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/advance_return_report.odt -------------------------------------------------------------------------------- /public_budget/reports/advance_return_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Advance Return Report 6 | ir.actions.report 7 | public_budget.advance_return 8 | advance_return_report 9 | aeroo 10 | oo-odt 11 | public_budget/reports/advance_return_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/asset_alta_report.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/asset_alta_report.ods -------------------------------------------------------------------------------- /public_budget/reports/asset_amend_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/asset_amend_report.odt -------------------------------------------------------------------------------- /public_budget/reports/asset_amend_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Reporte de Activos a Corregir 6 | account.asset 7 | asset_amend_report 8 | aeroo 9 | oo-odt 10 | public_budget/reports/asset_amend_report.odt 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/asset_baja_report.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/asset_baja_report.ods -------------------------------------------------------------------------------- /public_budget/reports/asset_missing_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/asset_missing_report.odt -------------------------------------------------------------------------------- /public_budget/reports/asset_missing_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Reporte de Faltante de Activos 6 | account.asset 7 | asset_missing_report 8 | aeroo 9 | oo-odt 10 | public_budget/reports/asset_missing_report.odt 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/asset_printing_report.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/asset_printing_report.ods -------------------------------------------------------------------------------- /public_budget/reports/asset_report.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/asset_report.ods -------------------------------------------------------------------------------- /public_budget/reports/asset_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/asset_report.odt -------------------------------------------------------------------------------- /public_budget/reports/asset_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Reporte de Activos 7 | account.asset 8 | asset_report 9 | aeroo 10 | oo-odt 11 | public_budget/reports/asset_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /public_budget/reports/asset_report_alta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Reporte de Activos Alta 6 | account.asset 7 | asset_report_alta 8 | aeroo 9 | oo-ods 10 | public_budget/reports/asset_alta_report.ods 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/asset_report_baja.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Reporte de Activos Baja 6 | account.asset 7 | asset_report_baja 8 | aeroo 9 | oo-ods 10 | public_budget/reports/asset_baja_report.ods 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/asset_report_excel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Reporte de Activos Excel 6 | account.asset 7 | asset_report_excel 8 | aeroo 9 | oo-ods 10 | public_budget/reports/asset_report.ods 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/asset_report_printing.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Reporte de Impresion de Etiquetas 6 | account.asset 7 | asset_report_printing 8 | aeroo 9 | oo-ods 10 | public_budget/reports/asset_printing_report.ods 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/budget_modification_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/budget_modification_report.odt -------------------------------------------------------------------------------- /public_budget/reports/budget_modification_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Budget Modification Report 5 | public_budget.budget_modification 6 | budget_modification_report 7 | aeroo 8 | oo-odt 9 | public_budget/reports/budget_modification_report.odt 10 | file 11 | 12 | specified 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /public_budget/reports/budget_report.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/budget_report.ods -------------------------------------------------------------------------------- /public_budget/reports/budget_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/budget_report.odt -------------------------------------------------------------------------------- /public_budget/reports/budget_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Budget Report 7 | ir.actions.report 8 | public_budget.budget 9 | budget_report 10 | aeroo 11 | oo-odt 12 | public_budget/reports/budget_report.odt 13 | file 14 | 15 | specified 16 | 17 | 18 | report 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public_budget/reports/budget_report_excel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Budget Report Excel 6 | ir.actions.report 7 | public_budget.budget 8 | budget_report_excel 9 | aeroo 10 | oo-ods 11 | public_budget/reports/budget_report.ods 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /public_budget/reports/expedient_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/expedient_report.odt -------------------------------------------------------------------------------- /public_budget/reports/expedient_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Expedient Report 7 | public_budget.expedient 8 | expedient_report 9 | aeroo 10 | oo-odt 11 | public_budget/reports/expedient_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /public_budget/reports/liquidation_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/liquidation_report.odt -------------------------------------------------------------------------------- /public_budget/reports/liquidation_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Liquidation Report 7 | ir.actions.report 8 | account.move 9 | liquidation_report 10 | aeroo 11 | oo-odt 12 | public_budget/reports/liquidation_report.odt 13 | 14 | file 15 | 16 | specified 17 | 18 | 19 | report 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /public_budget/reports/payment_list_report.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/payment_list_report.ods -------------------------------------------------------------------------------- /public_budget/reports/payment_list_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Payment List Report 6 | account.payment.group 7 | payment_list_report 8 | aeroo 9 | oo-ods 10 | public_budget/reports/payment_list_report.ods 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/payment_order.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/payment_order.odt -------------------------------------------------------------------------------- /public_budget/reports/payment_order_list.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/payment_order_list.odt -------------------------------------------------------------------------------- /public_budget/reports/payment_order_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Ordenes de Pago - Listado con Cheques 6 | account.payment.group 7 | payment_order_list_checks 8 | aeroo 9 | oo-odt 10 | public_budget/reports/payment_order_list.odt 11 | file 12 | 13 | specified 14 | 15 | 16 | report 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/payment_order_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Orden de Pago 6 | account.payment.group 7 | aeroo_report_payment 8 | aeroo 9 | oo-odt 10 | public_budget/reports/payment_order.odt 11 | file 12 | specified 13 | 14 | 15 | 16 | (object.partner_type == 'supplier' and 'Orden de pago' or 'Recibo') + ' ' + object.document_number 17 | 18 | report 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /public_budget/reports/payment_receipt_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/payment_receipt_report.odt -------------------------------------------------------------------------------- /public_budget/reports/payment_receipt_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Payment Receipt Report 6 | account.payment.group 7 | payment_receipt_report 8 | aeroo 9 | oo-odt 10 | public_budget/reports/payment_receipt_report.odt 11 | file 12 | 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | -------------------------------------------------------------------------------- /public_budget/reports/remit_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/remit_report.odt -------------------------------------------------------------------------------- /public_budget/reports/remit_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Remit Report 7 | public_budget.remit 8 | remit_report 9 | aeroo 10 | oo-odt 11 | public_budget/reports/remit_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /public_budget/reports/reports_stylesheet.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/reports_stylesheet.odt -------------------------------------------------------------------------------- /public_budget/reports/statement_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | specified 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /public_budget/reports/stylesheet.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Sipreco Style Sheet 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /public_budget/reports/transaction_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/reports/transaction_report.odt -------------------------------------------------------------------------------- /public_budget/reports/transaction_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | transaction Report 7 | public_budget.transaction 8 | transaction_report 9 | aeroo 10 | oo-odt 11 | public_budget/reports/transaction_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /public_budget/security/hide_groups.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Sale / User 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /public_budget/static/description/asset-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/static/description/asset-icon.png -------------------------------------------------------------------------------- /public_budget/static/description/expedient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/static/description/expedient.png -------------------------------------------------------------------------------- /public_budget/static/description/icon (old).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/static/description/icon (old).png -------------------------------------------------------------------------------- /public_budget/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/public_budget/static/description/icon.png -------------------------------------------------------------------------------- /public_budget/views/account_checkbook_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | l10n_latam.checkbook.tree 7 | l10n_latam.checkbook 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | Gestionar Chequeras 18 | l10n_latam.checkbook 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /public_budget/views/account_journal_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | account.journal.form 7 | account.journal 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /public_budget/views/account_move_line_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | account.move.line.tree.inherit 8 | account.move.line 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /public_budget/views/budget_position_category_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.budget_position_category.select 6 | public_budget.budget_position_category 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | public_budget.budget_position_category.form 19 | public_budget.budget_position_category 20 | 21 |
22 |
23 |
24 | 25 |
26 |
27 | 28 | 29 | 30 |
31 | 32 |
33 |
34 |
35 | 36 | 37 | 38 | public_budget.budget_position_category.tree 39 | public_budget.budget_position_category 40 | 41 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | -------------------------------------------------------------------------------- /public_budget/views/custom_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /public_budget/views/expedient_category_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.expedient_category.select 6 | public_budget.expedient_category 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | public_budget.expedient_category.form 19 | public_budget.expedient_category 20 | 21 |
22 |
23 |
24 | 25 |
26 |
27 | 28 | 29 | 30 |
31 | 32 |
33 |
34 |
35 | 36 | 37 | 38 | public_budget.expedient_category.tree 39 | public_budget.expedient_category 40 | 41 | 43 | 44 | 45 | 46 | 47 | 48 |
49 | -------------------------------------------------------------------------------- /public_budget/views/expedient_founder_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.expedient_founder.select 6 | public_budget.expedient_founder 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | public_budget.expedient_founder.form 19 | public_budget.expedient_founder 20 | 21 |
22 |
23 |
24 | 25 |
26 |
27 | 28 | 29 | 30 |
31 |
32 |
33 |
34 | 35 | 36 | 37 | public_budget.expedient_founder.tree 38 | public_budget.expedient_founder 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 |
47 | -------------------------------------------------------------------------------- /public_budget/views/hr_public_holidays_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | hr.holidays.public.form 5 | hr.holidays.public 6 | 7 | 8 | 9 | 1 10 | 11 | 12 | 1 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /public_budget/views/inventory_rule_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.inventory_rule.select 6 | public_budget.inventory_rule 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | public_budget.inventory_rule.form 18 | public_budget.inventory_rule 19 | 20 |
21 |
22 |
23 | 24 |
25 |
26 | 27 | 28 |
29 | 30 |
31 |
32 |
33 | 34 | 35 | 36 | public_budget.inventory_rule.tree 37 | public_budget.inventory_rule 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
48 | -------------------------------------------------------------------------------- /public_budget/views/public_budget_actions.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /public_budget/views/res_company_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.company.select 6 | res.company 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | public_budget.company.form 16 | res.company 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | public_budget.company.tree 32 | res.company 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /public_budget/views/res_users_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | public_budget.users.form 7 | res.users 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /public_budget/views/rest_type_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.rest_type.select 6 | public_budget.rest_type 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | public_budget.rest_type.form 18 | public_budget.rest_type 19 | 20 |
21 |
22 |
23 | 24 |
25 |
26 | 27 | 28 |
29 | 30 |
31 |
32 |
33 | 34 | 35 | 36 | public_budget.rest_type.tree 37 | public_budget.rest_type 38 | 39 | 40 | 41 | 42 | 43 | 44 |
45 | -------------------------------------------------------------------------------- /public_budget/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import transaction_definitive_make_invoice_detail 2 | from . import transaction_definitive_make_invoice 3 | from . import transaction_definitive_mass_invoice_create 4 | from . import budget_analysis_wizard 5 | from . import avance_request_report_wizard 6 | from . import public_budget_preventive_changeposition 7 | from . import transfer_assets_wizard 8 | -------------------------------------------------------------------------------- /public_budget/wizards/avance_request_report_wizard.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class PublicBudgetAvanceRequestReportWizard(models.TransientModel): 5 | _name = "public_budget.advance.request.report.wizard" 6 | _description = "public_budget.advance.request.report.wizard" 7 | 8 | type_id = fields.Many2one( 9 | 'public_budget.advance_request_type', 10 | string='Tipo', 11 | required=True, 12 | ) 13 | to_date = fields.Date( 14 | 'Hasta Fecha', 15 | ) 16 | 17 | def confirm(self): 18 | self.ensure_one() 19 | return self.env['ir.actions.report'].search( 20 | [('report_name', '=', 'advance_request_debt_report')], 21 | limit=1).with_context( 22 | to_date=self.to_date).report_action(self.type_id) 23 | -------------------------------------------------------------------------------- /public_budget/wizards/avance_request_report_wizard_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Advance Request Debt Report Wizard 5 | public_budget.advance.request.report.wizard 6 | 7 |
8 | 9 | 10 | 11 | 12 |
13 |
17 |
18 |
19 |
20 | 21 | 22 | Deudas de Adelantos a Fecha 23 | public_budget.advance.request.report.wizard 24 | form 25 | new 26 | 27 | 28 |
29 | -------------------------------------------------------------------------------- /public_budget/wizards/budget_analysis_wizard.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class PublicBudgetBudgetAnalysisWizard(models.TransientModel): 5 | _name = "public_budget.budget.analysis.wizard" 6 | _description = "public_budget.budget.analysis.wizard" 7 | 8 | budget_id = fields.Many2one( 9 | 'public_budget.budget', 10 | 'Presupuesto', 11 | required=True, 12 | ) 13 | to_date = fields.Date( 14 | 'Hasta Fecha', 15 | ) 16 | 17 | def open(self): 18 | self.ensure_one() 19 | action_read = self.env["ir.actions.act_window"]._for_xml_id('public_budget.action_public_budget_budget_budgets') 20 | form_view = self.env.ref('public_budget.view_public_budget_budget_to_date_form') 21 | action_read.pop('views') 22 | action_read['target'] = 'inlineview' 23 | action_read['res_id'] = self.budget_id.id 24 | action_read['view_mode'] = 'form' 25 | action_read['view_id'] = form_view.id, 26 | action_read['context'] = { 27 | 'budget_id': self.budget_id.id, 28 | 'analysis_to_date': self.to_date, 29 | } 30 | return action_read 31 | 32 | def print_report(self): 33 | self.ensure_one() 34 | action = self.env.ref('public_budget.action_aeroo_report_budget') 35 | return { 36 | 'actions': [ 37 | {'type': 'ir.actions.act_window_close'}, 38 | action.with_context( 39 | analysis_to_date=self.to_date 40 | ).report_action(self.budget_id), 41 | ], 42 | 'type': 'ir.actions.act_multi', 43 | } 44 | -------------------------------------------------------------------------------- /public_budget/wizards/budget_analysis_wizard_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Budget Analysis Wizard 5 | public_budget.budget.analysis.wizard 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 |
14 |
20 |
21 |
22 |
23 | 24 | 25 | Budget Analysis Wizard 26 | public_budget.budget.analysis.wizard 27 | form 28 | new 29 | 30 | 31 |
32 | -------------------------------------------------------------------------------- /public_budget/wizards/public_budget_preventive_changeposition.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, _ 2 | from odoo.exceptions import ValidationError 3 | 4 | 5 | class PublicBudgetPreventiveChangePosition(models.TransientModel): 6 | _name = "public_budget.preventive.change_position" 7 | _description = "public_budget.preventive.change_position" 8 | 9 | new_budget_position_id = fields.Many2one( 10 | 'public_budget.budget_position', 11 | string='Budget Position', 12 | required=True, 13 | ondelete='cascade', 14 | context={'default_type': 'normal'}, 15 | domain=[('type', '=', 'normal')], 16 | ) 17 | 18 | def confirm(self): 19 | self.ensure_one() 20 | active_id = self._context.get('active_id') 21 | active_model = self._context.get('active_model') 22 | if active_model != 'public_budget.preventive_line' or not active_id: 23 | return False 24 | prev_line = self.env[active_model].browse(active_id) 25 | if prev_line.budget_id.state != 'open': 26 | raise ValidationError(_( 27 | 'You can only change budget position if budget is open!')) 28 | prev_line.budget_position_id = self.new_budget_position_id.id 29 | -------------------------------------------------------------------------------- /public_budget/wizards/public_budget_preventive_changeposition_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Preventive Change Position 5 | public_budget.preventive.change_position 6 | 7 |
8 | 9 | 10 | 11 |
12 |
16 |
17 |
18 |
19 | 20 | 21 | Preventive Change Position 22 | ir.actions.act_window 23 | public_budget.preventive.change_position 24 | form 25 | 26 | new 27 | 28 |
29 | -------------------------------------------------------------------------------- /public_budget/wizards/transaction_definitive_make_invoice_detail.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api, _ 2 | from odoo.exceptions import ValidationError 3 | from odoo.tools import float_compare 4 | 5 | 6 | class PublicBudgetDefinitiveMakeInvoiceDetail(models.TransientModel): 7 | _name = "public_budget.definitive.make.invoice.detail" 8 | _description = "public_budget.definitive.make.invoice.detail" 9 | 10 | definitive_make_invoice_id = fields.Many2one( 11 | 'public_budget.definitive.make.invoice', 12 | 'Def Make Invoice', 13 | ) 14 | definitive_line_id = fields.Many2one( 15 | 'public_budget.definitive_line', 16 | 'Definitive Line', 17 | readonly=True, 18 | ) 19 | residual_amount = fields.Monetary( 20 | related='definitive_line_id.residual_amount', 21 | ) 22 | to_invoice_amount = fields.Monetary( 23 | 'Amount', 24 | ) 25 | full_imputation = fields.Boolean( 26 | 'Full Imputation?', 27 | ) 28 | currency_id = fields.Many2one( 29 | related='definitive_line_id.currency_id', 30 | ) 31 | 32 | @api.onchange('full_imputation') 33 | def change_full_imputation(self): 34 | self.to_invoice_amount = self.definitive_line_id.residual_amount 35 | 36 | @api.constrains( 37 | 'to_invoice_amount' 38 | ) 39 | def _check_amounts(self): 40 | if self.filtered( 41 | lambda x: float_compare( 42 | x.residual_amount, x.to_invoice_amount, 43 | precision_rounding=x.currency_id.rounding) < 0): 44 | raise ValidationError( 45 | _("To Invoice Amount can't be greater than Residual Amount")) 46 | -------------------------------------------------------------------------------- /public_budget/wizards/transaction_definitive_mass_invoice_create_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mass Invoice Create 5 | public_budget.definitive.mass.invoice.create 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
19 | 20 |
21 |
22 | 23 | 24 | Mass Invoice Create 25 | public_budget.definitive.mass.invoice.create 26 | form 27 | new 28 | 29 |
30 | -------------------------------------------------------------------------------- /public_budget/wizards/transfer_asset_wizard_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Transfer Asset Wizard 5 | public_budget.transfer.asset.wizard 6 | 7 |
8 | 9 | 10 | 11 |
12 |
16 |
17 |
18 |
19 | 20 | 21 | Asistente de Transferencia de Activos 22 | public_budget.transfer.asset.wizard 23 | form 24 | new 25 | 26 | 27 |
28 | -------------------------------------------------------------------------------- /public_budget/wizards/transfer_assets_wizard.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class PublicBudgetTransferAssetWizard(models.TransientModel): 5 | _name = "public_budget.transfer.asset.wizard" 6 | _description = "public_budget.transfer.asset.wizard" 7 | 8 | location_id = fields.Many2one( 9 | 'public_budget.location', 10 | required=True, 11 | string='Location Destiny', 12 | domain=[('asset_management', '=', True)], 13 | ) 14 | 15 | def confirm(self): 16 | self.ensure_one() 17 | active_id = self._context.get('active_id', False) 18 | if active_id: 19 | asset = self.env['account.asset'].browse( 20 | active_id) 21 | asset.location_id = self.location_id 22 | asset.transit = True 23 | return True 24 | -------------------------------------------------------------------------------- /public_budget_subscription/README.rst: -------------------------------------------------------------------------------- 1 | .. |company| replace:: ADHOC SA 2 | 3 | .. |company_logo| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-logo.png 4 | :alt: ADHOC SA 5 | :target: https://www.adhoc.com.ar 6 | 7 | .. |icon| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-icon.png 8 | 9 | .. image:: https://img.shields.io/badge/license-AGPL--3-blue.png 10 | :target: https://www.gnu.org/licenses/agpl 11 | :alt: License: AGPL-3 12 | 13 | ========================== 14 | Public Budget Subscription 15 | ========================== 16 | 17 | This module of purchase Subscription and adds some specific changes in views. 18 | 19 | Installation 20 | ============ 21 | 22 | To install this module, you need to: 23 | 24 | #. Only need to install the module 25 | 26 | Configuration 27 | ============= 28 | 29 | To configure this module, you need to: 30 | 31 | #. Nothing to configure 32 | 33 | Usage 34 | ===== 35 | 36 | To use this module, you need to: 37 | 38 | #. Go to Purchase / Subscription 39 | 40 | .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas 41 | :alt: Try me on Runbot 42 | :target: http://runbot.adhoc.com.ar/ 43 | 44 | Bug Tracker 45 | =========== 46 | 47 | Bugs are tracked on `GitHub Issues 48 | `_. In case of trouble, please 49 | check there if your issue has already been reported. If you spotted it first, 50 | help us smashing it by providing a detailed and welcomed feedback. 51 | 52 | Credits 53 | ======= 54 | 55 | Images 56 | ------ 57 | 58 | * |company| |icon| 59 | 60 | Contributors 61 | ------------ 62 | 63 | Maintainer 64 | ---------- 65 | 66 | |company_logo| 67 | 68 | This module is maintained by the |company|. 69 | 70 | To contribute to this module, please visit https://www.adhoc.com.ar. 71 | -------------------------------------------------------------------------------- /public_budget_subscription/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from . import models 6 | -------------------------------------------------------------------------------- /public_budget_subscription/__manifest__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # 3 | # Copyright (C) 2015 ADHOC SA (http://www.adhoc.com.ar) 4 | # All Rights Reserved. 5 | # 6 | # This program is free software: you can redistribute it and/or modify 7 | # it under the terms of the GNU Affero General Public License as 8 | # published by the Free Software Foundation, either version 3 of the 9 | # License, or (at your option) any later version. 10 | # 11 | # This program is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU Affero General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU Affero General Public License 17 | # along with this program. If not, see . 18 | # 19 | ############################################################################## 20 | { 21 | "name": "Public Budget Subscription", 22 | 'version': "15.0.1.0.0", 23 | 'category': 'Accounting', 24 | 'sequence': 14, 25 | 'summary': 'Subscription Purchase, Invoicing', 26 | 'author': 'ADHOC SA', 27 | 'website': 'www.adhoc.com.ar', 28 | 'license': 'AGPL-3', 29 | 'images': [ 30 | ], 31 | 'depends': [ 32 | 'public_budget', 33 | 'purchase_subscription', 34 | ], 35 | 'data': [ 36 | 'views/purchase_subscription_views.xml', 37 | 'data/ir_actions_server_data.xml', 38 | 'security/ir.model.access.csv', 39 | ], 40 | 'demo': [ 41 | ], 42 | 'installable': False, 43 | 'auto_install': False, 44 | 'application': False, 45 | } 46 | -------------------------------------------------------------------------------- /public_budget_subscription/models/__init__.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from . import purchase_subscription 6 | -------------------------------------------------------------------------------- /public_budget_subscription/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | purchase_subscription_management,access.purchase.sucription.management,purchase_subscription.model_purchase_subscription,public_budget.group_secretary_director,1,1,1,1 3 | purchase_subscription_line_management,access.purchase.sucription.line.management,purchase_subscription.model_purchase_subscription_line,public_budget.group_secretary_director,1,1,1,1 4 | purchase_subscription_close_reason_management,access.purchase.sucription.close.reason.management,purchase_subscription.model_purchase_subscription_close_reason,public_budget.group_secretary_director,1,1,1,1 5 | purchase_subscription_manager,access.purchase.sucription.manager,purchase_subscription.model_purchase_subscription,account.group_account_manager,1,1,1,1 6 | purchase_subscription_line_manager,access.purchase.sucription.manager,purchase_subscription.model_purchase_subscription_line,account.group_account_manager,1,1,1,1 7 | purchase_subscription_close_reason_manager,access.purchase.sucription.close.reason.manager,purchase_subscription.model_purchase_subscription_close_reason,account.group_account_manager,1,1,1,1 8 | -------------------------------------------------------------------------------- /public_budget_tax_settlement/README.rst: -------------------------------------------------------------------------------- 1 | .. |company| replace:: ADHOC SA 2 | 3 | .. |company_logo| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-logo.png 4 | :alt: ADHOC SA 5 | :target: https://www.adhoc.com.ar 6 | 7 | .. |icon| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-icon.png 8 | 9 | .. image:: https://img.shields.io/badge/license-AGPL--3-blue.png 10 | :target: https://www.gnu.org/licenses/agpl 11 | :alt: License: AGPL-3 12 | 13 | ============================================= 14 | Public Budget integration with Tax settlement 15 | ============================================= 16 | 17 | #. Oculta menú de pagar desde las tarjetas ya que lleva toda la deuda del partner y permite pagar cosas que queremos que se paguen de la transacción correspondiente. 18 | #. Agrega opción de pagar un asiento de liquidación desde el asiento. 19 | 20 | Installation 21 | ============ 22 | 23 | To install this module, you need to: 24 | 25 | #. Only need to install the module 26 | 27 | Configuration 28 | ============= 29 | 30 | To configure this module, you need to: 31 | 32 | #. Nothing to configure 33 | 34 | Usage 35 | ===== 36 | 37 | To use this module, you need to: 38 | 39 | #. Go to ... 40 | 41 | .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas 42 | :alt: Try me on Runbot 43 | :target: http://runbot.adhoc.com.ar/ 44 | 45 | Bug Tracker 46 | =========== 47 | 48 | Bugs are tracked on `GitHub Issues 49 | `_. In case of trouble, please 50 | check there if your issue has already been reported. If you spotted it first, 51 | help us smashing it by providing a detailed and welcomed feedback. 52 | 53 | Credits 54 | ======= 55 | 56 | Images 57 | ------ 58 | 59 | * |company| |icon| 60 | 61 | Contributors 62 | ------------ 63 | 64 | Maintainer 65 | ---------- 66 | 67 | |company_logo| 68 | 69 | This module is maintained by the |company|. 70 | 71 | To contribute to this module, please visit https://www.adhoc.com.ar. 72 | -------------------------------------------------------------------------------- /public_budget_tax_settlement/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /public_budget_tax_settlement/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Public Budget integration with Tax settlement', 3 | 'version': "15.0.1.0.0", 4 | 'author': 'ADHOC SA,Odoo Community Association (OCA)', 5 | 'license': 'AGPL-3', 6 | 'website': 'www.adhoc.com.ar', 7 | 'category': 'Accounting & Finance', 8 | 'data': [ 9 | 'views/account_journal_dashboard_views.xml', 10 | 'views/account_move_views.xml', 11 | 'views/account_move_line_views.xml', 12 | ], 13 | 'demo': [ 14 | ], 15 | 'depends': [ 16 | 'public_budget', 17 | 'account_tax_settlement', 18 | ], 19 | 'installable': False, 20 | 'auto_install': True, 21 | } 22 | -------------------------------------------------------------------------------- /public_budget_tax_settlement/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_move 2 | from . import account_payment 3 | from . import account_move_line 4 | -------------------------------------------------------------------------------- /public_budget_tax_settlement/models/account_move_line.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class AccountMoveLine(models.Model): 5 | _inherit = 'account.move.line' 6 | 7 | payment_methods = fields.Char( 8 | related='payment_id.payment_group_id.payment_methods', 9 | ) 10 | -------------------------------------------------------------------------------- /public_budget_tax_settlement/views/account_journal_dashboard_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | account.journal.dashboard.kanban.inherited 5 | account.journal 6 | 7 | 8 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # ofxparse 2 | -------------------------------------------------------------------------------- /sipreco_payment_line/README.rst: -------------------------------------------------------------------------------- 1 | .. |company| replace:: ADHOC SA 2 | 3 | .. |company_logo| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-logo.png 4 | :alt: ADHOC SA 5 | :target: https://www.adhoc.com.ar 6 | 7 | .. |icon| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-icon.png 8 | 9 | .. image:: https://img.shields.io/badge/license-AGPL--3-blue.png 10 | :target: https://www.gnu.org/licenses/agpl 11 | :alt: License: AGPL-3 12 | 13 | ===================== 14 | Sipreco Payment Lines 15 | ===================== 16 | 17 | Agregar líneas de pago en ordenes de pago para poder dividir el mismo en varios pagos (para distintos partners), tipicamente utilizado para pagos de sueldos que vienen totalizados y se desglozan por empleado. 18 | Además permite generar el archivo para subir en home banking y generar las transferencias. 19 | 20 | Installation 21 | ============ 22 | 23 | To install this module, you need to: 24 | 25 | #. Only need to install the module 26 | 27 | Configuration 28 | ============= 29 | 30 | To configure this module, you need to: 31 | 32 | #. Nothing to configure 33 | 34 | Usage 35 | ===== 36 | 37 | To use this module, you need to: 38 | 39 | #. Go to ... 40 | 41 | .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas 42 | :alt: Try me on Runbot 43 | :target: http://runbot.adhoc.com.ar/ 44 | 45 | Bug Tracker 46 | =========== 47 | 48 | Bugs are tracked on `GitHub Issues 49 | `_. In case of trouble, please 50 | check there if your issue has already been reported. If you spotted it first, 51 | help us smashing it by providing a detailed and welcomed feedback. 52 | 53 | Credits 54 | ======= 55 | 56 | Images 57 | ------ 58 | 59 | * |company| |icon| 60 | 61 | Contributors 62 | ------------ 63 | 64 | Maintainer 65 | ---------- 66 | 67 | |company_logo| 68 | 69 | This module is maintained by the |company|. 70 | 71 | To contribute to this module, please visit https://www.adhoc.com.ar. 72 | -------------------------------------------------------------------------------- /sipreco_payment_line/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards 3 | -------------------------------------------------------------------------------- /sipreco_payment_line/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sipreco Payment Lines', 3 | 'version': "15.0.1.1.0", 4 | 'license': 'AGPL-3', 5 | 'author': 'ADHOC SA,Odoo Community Association (OCA)', 6 | 'website': 'www.adhoc.com.ar', 7 | 'category': 'Accounting & Finance', 8 | 'depends': [ 9 | 'public_budget', 10 | ], 11 | 'data': [ 12 | 'wizards/account_payment_group_line_import_views.xml', 13 | 'views/account_payment_group_views.xml', 14 | 'views/res_partner_bank_views.xml', 15 | 'security/ir.model.access.csv', 16 | ], 17 | 'demo': [ 18 | ], 19 | 'installable': False, 20 | } 21 | -------------------------------------------------------------------------------- /sipreco_payment_line/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_payment_group_line 2 | from . import account_payment_group 3 | from . import res_partner_bank 4 | from . import advance_request 5 | -------------------------------------------------------------------------------- /sipreco_payment_line/models/advance_request.py: -------------------------------------------------------------------------------- 1 | from odoo import models, api 2 | 3 | 4 | class AdvanceRequest(models.Model): 5 | 6 | _inherit = 'public_budget.advance_request' 7 | 8 | def create_payment_group(self): 9 | payment_group = super(AdvanceRequest, self).create_payment_group() 10 | for line in self.advance_request_line_ids: 11 | partner = line.employee_id 12 | payment_group.line_ids.create({ 13 | 'payment_group_id': payment_group.id, 14 | 'partner_id': partner.id, 15 | 'bank_account_id': ( 16 | partner.bank_ids and partner.bank_ids[0].id or False), 17 | 'amount': line.approved_amount, 18 | }) 19 | return payment_group 20 | -------------------------------------------------------------------------------- /sipreco_payment_line/models/res_partner_bank.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class ResPartnerBank(models.Model): 5 | _inherit = "res.partner.bank" 6 | 7 | numero_de_sucursal = fields.Char( 8 | ) 9 | -------------------------------------------------------------------------------- /sipreco_payment_line/security/ir.model.access.csv: -------------------------------------------------------------------------------- 1 | id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 2 | access_account_payment_group_line_import,access_account_payment_group_line_import,model_account_payment_group_line_import,account.group_account_user,1,1,1,1 3 | access_account_payment_group_line_account_user,access_account_payment_group_line_account_user,model_account_payment_group_line,account.group_account_user,1,1,1,1 4 | access_account_payment_group_line_account_employee,access_account_payment_group_line_account_employee,model_account_payment_group_line,base.group_user,1,0,0,0 5 | access_account_payment_group_line_account_portal_expedient,access_account_payment_group_line_account_portal_expedient,model_account_payment_group_line,public_budget.group_portal_transaction,1,0,0,0 6 | -------------------------------------------------------------------------------- /sipreco_payment_line/views/res_partner_bank_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | partner.bank.select 5 | res.partner.bank 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | res.partner.bank 16 | res.bank.form 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /sipreco_payment_line/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import account_payment_group_line_import 2 | -------------------------------------------------------------------------------- /sipreco_payment_line/wizards/account_payment_group_line_import_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Import Payment Lines 6 | account.payment.group.line.import 7 | 1 8 | 9 |
10 | 11 |
12 | Seleccionar el archivo y hacer click en 'Importar' 13 |
14 | Si al importar se encuentra una línea con mismo cuit se sobre escribirá la línea. 15 |
16 |
20 | 21 |
22 |
23 | 24 | 25 | Import Payment Lines 26 | ir.actions.act_window 27 | account.payment.group.line.import 28 | form 29 | new 30 | 31 | 32 | 33 | 34 | 35 |
36 | -------------------------------------------------------------------------------- /sipreco_position_helper/README.rst: -------------------------------------------------------------------------------- 1 | .. |company| replace:: ADHOC SA 2 | 3 | .. |company_logo| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-logo.png 4 | :alt: ADHOC SA 5 | :target: https://www.adhoc.com.ar 6 | 7 | .. |icon| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-icon.png 8 | 9 | .. image:: https://img.shields.io/badge/license-AGPL--3-blue.png 10 | :target: https://www.gnu.org/licenses/agpl 11 | :alt: License: AGPL-3 12 | 13 | ===================== 14 | Sipreco Payment Lines 15 | ===================== 16 | 17 | Agregar líneas de pago en ordenes de pago para poder dividir el mismo en varios pagos (para distintos partners), tipicamente utilizado para pagos de sueldos que vienen totalizados y se desglozan por empleado. 18 | Además permite generar el archivo para subir en home banking y generar las transferencias. 19 | Installation 20 | ============ 21 | 22 | To install this module, you need to: 23 | 24 | #. Only need to install the module 25 | 26 | Configuration 27 | ============= 28 | 29 | To configure this module, you need to: 30 | 31 | #. Nothing to configure 32 | 33 | Usage 34 | ===== 35 | 36 | To use this module, you need to: 37 | 38 | #. Go to ... 39 | 40 | .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas 41 | :alt: Try me on Runbot 42 | :target: http://runbot.adhoc.com.ar/ 43 | 44 | Bug Tracker 45 | =========== 46 | 47 | Bugs are tracked on `GitHub Issues 48 | `_. In case of trouble, please 49 | check there if your issue has already been reported. If you spotted it first, 50 | help us smashing it by providing a detailed and welcomed feedback. 51 | 52 | Credits 53 | ======= 54 | 55 | Images 56 | ------ 57 | 58 | * |company| |icon| 59 | 60 | Contributors 61 | ------------ 62 | 63 | Maintainer 64 | ---------- 65 | 66 | |company_logo| 67 | 68 | This module is maintained by the |company|. 69 | 70 | To contribute to this module, please visit https://www.adhoc.com.ar. 71 | -------------------------------------------------------------------------------- /sipreco_position_helper/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | -------------------------------------------------------------------------------- /sipreco_position_helper/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sipreco Position Helper', 3 | 'version': "15.0.1.0.0", 4 | 'license': 'AGPL-3', 5 | 'author': 'ADHOC SA,Odoo Community Association (OCA)', 6 | 'website': 'www.adhoc.com.ar', 7 | 'category': 'Accounting & Finance', 8 | 'data': [ 9 | 'views/budget_position_views.xml', 10 | ], 11 | 'demo': [ 12 | 'demo/public_budget.budget_position.csv', 13 | ], 14 | 'depends': [ 15 | 'public_budget', 16 | ], 17 | 'installable': False, 18 | } 19 | -------------------------------------------------------------------------------- /sipreco_position_helper/demo/public_budget.budget_position.csv: -------------------------------------------------------------------------------- 1 | id,individual_code 2 | public_budget.budg_pos_personal,01. 3 | public_budget.budg_pos_1,01. 4 | public_budget.budg_pos_2,05. 5 | public_budget.budg_pos_3,04. 6 | public_budget.budg_pos_bs_y_ser,02. 7 | public_budget.budg_pos_31,09. 8 | public_budget.budg_pos_ser_no_pers,03. 9 | public_budget.budg_pos_5,01. 10 | public_budget.budg_pos_6,02. 11 | public_budget.budg_pos_7,03. 12 | public_budget.budg_pos_8,04. 13 | public_budget.budg_pos_9,05. 14 | public_budget.budg_pos_10,07. 15 | public_budget.budg_pos_11,09. 16 | public_budget.budg_pos_activos,04. 17 | public_budget.budg_pos_12,03. 18 | public_budget.budg_pos_13,05. 19 | public_budget.budg_pos_14,08. 20 | public_budget.budg_pos_otros,05. 21 | public_budget.budg_pos_15,04. 22 | public_budget.budg_pos_16,09. 23 | public_budget.budg_pos_17,01. 24 | -------------------------------------------------------------------------------- /sipreco_position_helper/i18n/es.po: -------------------------------------------------------------------------------- 1 | # Translation of Odoo Server. 2 | # This file contains the translation of the following modules: 3 | # * sipreco_position_helper 4 | # 5 | # Translators: 6 | # Juan José Scarafía , 2019 7 | # 8 | msgid "" 9 | msgstr "" 10 | "Project-Id-Version: Odoo Server 11.0\n" 11 | "Report-Msgid-Bugs-To: \n" 12 | "POT-Creation-Date: 2019-02-26 17:52+0000\n" 13 | "PO-Revision-Date: 2019-01-18 20:37+0000\n" 14 | "Last-Translator: Juan José Scarafía , 2019\n" 15 | "Language-Team: Spanish (https://www.transifex.com/adhoc/teams/46451/es/)\n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: \n" 19 | "Language: es\n" 20 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" 21 | 22 | #. module: sipreco_position_helper 23 | #: model:ir.model,name:sipreco_position_helper.model_public_budget_budget_position 24 | msgid "Budget Position" 25 | msgstr "Partida Presupuestaria" 26 | 27 | #. module: sipreco_position_helper 28 | #: model:ir.model.fields,field_description:sipreco_position_helper.field_public_budget_budget_position_individual_code 29 | msgid "Individual Code" 30 | msgstr "Código Individual" 31 | -------------------------------------------------------------------------------- /sipreco_position_helper/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import budget_position 2 | -------------------------------------------------------------------------------- /sipreco_position_helper/models/budget_position.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields, api 2 | 3 | 4 | class BudgetPosition(models.Model): 5 | 6 | _inherit = 'public_budget.budget_position' 7 | 8 | individual_code = fields.Char( 9 | # lo hacemos no requerido para no tener warnings, no es lo mas elegante 10 | # pero funciona, requerido por vista.. 11 | required=False, 12 | ) 13 | code = fields.Char( 14 | compute='_compute_code', 15 | store=True, 16 | required=False, 17 | ) 18 | 19 | @api.depends( 20 | 'individual_code', 21 | 'parent_id.individual_code', 22 | ) 23 | def _compute_code(self): 24 | for rec in self: 25 | rec.code = "%s%s" % ( 26 | rec.parent_id.code or '', 27 | rec.individual_code or '') 28 | -------------------------------------------------------------------------------- /sipreco_position_helper/views/budget_position_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | public_budget.budget_position.form 7 | public_budget.budget_position 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /sipreco_project/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_project/__init__.py -------------------------------------------------------------------------------- /sipreco_project/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sipreco Project', 3 | 'license': 'LGPL-3', 4 | 'version': "15.0.1.0.0", 5 | 'category': 'Accounting', 6 | 'sequence': 14, 7 | 'summary': '', 8 | 'author': 'ADHOC SA,Odoo Community Association (OCA)', 9 | 'website': 'www.adhoc.com.ar', 10 | 'images': [ 11 | ], 12 | 'depends': [ 13 | 'web_m2x_options', 14 | 'public_budget', 15 | 'account_accountant', 16 | 'l10n_ar_bank', 17 | # 'web_pdf_preview', 18 | 'account_tax_settlement', 19 | 'account_reports', 20 | # para que genere los diarios que queremos 21 | # 'portal', # necesitamos portal por un error 22 | # raro al crear un voucher 23 | # es un error de javascript pero con portal de 24 | # alguna manera se 25 | # resuelve. Luego de instalar portal refrescar pantalla 26 | ], 27 | 'data': [ 28 | 'data/ir_parameters.xml', 29 | ], 30 | 'demo': [ 31 | 'demo/config_data.xml', 32 | 'demo/load_es_lang.xml', 33 | ], 34 | 'installable': False, 35 | 'auto_install': False, 36 | 'application': True, 37 | } 38 | -------------------------------------------------------------------------------- /sipreco_project/data/ir_parameters.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | web_m2x_options.create 5 | False 6 | 7 | 8 | web_m2x_options.create_edit 9 | False 10 | 11 | 12 | -------------------------------------------------------------------------------- /sipreco_project/demo/config_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /sipreco_project/demo/load_es_lang.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sipreco_purchase/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards 3 | -------------------------------------------------------------------------------- /sipreco_purchase/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Sipreco Purchase Management', 3 | 'version': "15.0.1.3.0", 4 | 'license': 'AGPL-3', 5 | 'author': 'ADHOC SA,Odoo Community Association (OCA)', 6 | 'website': 'www.adhoc.com.ar', 7 | 'category': 'Accounting & Finance', 8 | 'depends': [ 9 | 'public_budget', 10 | 'purchase_requisition', 11 | 'stock_ux', 12 | 'stock_request_ux', 13 | ], 14 | 'data': [ 15 | 'data/ir_actions_server_data.xml', 16 | 'data/sequence_data.xml', 17 | 'security/sipreco_purchase_security.xml', 18 | 'security/hide_groups.xml', 19 | 'security/ir.model.access.csv', 20 | 'views/stock_move_views.xml', 21 | 'views/stock_move_line_views.xml', 22 | 'views/stock_picking_type_views.xml', 23 | 'views/stock_picking_views.xml', 24 | 'views/purchase_requisition_views.xml', 25 | 'views/purchase_requisition_type_views.xml', 26 | 'views/stock_request_order_views.xml', 27 | 'views/stock_request_views.xml', 28 | 'views/res_users_views.xml', 29 | 'views/stock_location_route_views.xml', 30 | 'views/product_template_views.xml', 31 | 'views/purchase_order_views.xml', 32 | 'views/transaction_views.xml', 33 | 'views/stock_inventory_views.xml', 34 | 'views/expedient_views.xml', 35 | 'reports/purchase_requisition_report.xml', 36 | 'reports/purchase_order_publicity_report.xml', 37 | 'wizards/create_expedients_wizard_views.xml', 38 | ], 39 | 'demo': [ 40 | 'demo/stock_demo.xml', 41 | 'demo/res_users_demo.xml', 42 | 'demo/product_demo.xml', 43 | 'demo/sequence_demo.xml', 44 | ], 45 | 'installable': False, 46 | } 47 | -------------------------------------------------------------------------------- /sipreco_purchase/data/sequence_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Procurement Request 7 | PR-%(year)s- 8 | 6 9 | 10 | no_gap 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sipreco_purchase/demo/product_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Producto de Informática 1 6 | product 7 | 8 | 9 | 10 | 11 | 12 | Producto de Economato 1 13 | product 14 | 15 | 16 | 17 | 18 | 19 | Producto de Economato 2 20 | product 21 | 22 | 23 | 24 | 25 | 26 | Producto de Secretarías 27 | product 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /sipreco_purchase/demo/sequence_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Procurement Group Sipreco 5 | procurement.group 6 | PG/ 7 | 6 8 | 1 9 | 1 10 | 11 | 12 | 13 | 14 | 15 | Purchase Requisition Order 16 | purchase.order.requisition 17 | TE 18 | 5 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /sipreco_purchase/migrations/15.0.1.3.0/pre-migration.py: -------------------------------------------------------------------------------- 1 | from openupgradelib import openupgrade 2 | import logging 3 | 4 | logger = logging.getLogger(__name__) 5 | 6 | 7 | @openupgrade.migrate() 8 | def migrate(env, version): 9 | logger.info('Forzamos la actualizacion de la vista product_views del modulo stock para que no nos de conflicto con la vista product_template_kanban_stock_view') 10 | openupgrade.load_data( 11 | env.cr, 'stock', 'views/product_views.xml') 12 | -------------------------------------------------------------------------------- /sipreco_purchase/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import stock_rule 2 | from . import stock_picking_type 3 | from . import stock_request 4 | from . import stock_request_order 5 | from . import purchase_order 6 | from . import purchase_order_line 7 | from . import purchase_requisition_type 8 | from . import purchase_requisition 9 | from . import purchase_requisition_line 10 | from . import res_users 11 | from . import stock_location_route 12 | from . import product_product 13 | from . import transaction 14 | from . import expedient 15 | -------------------------------------------------------------------------------- /sipreco_purchase/models/expedient.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class PublicBudgetExpedient(models.Model): 5 | 6 | _inherit = 'public_budget.expedient' 7 | 8 | purchase_order_ids = fields.One2many( 9 | 'purchase.order', 10 | 'expedient_id', 11 | ) 12 | -------------------------------------------------------------------------------- /sipreco_purchase/models/product_product.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, fields 6 | 7 | 8 | class ProductProduct(models.Model): 9 | _inherit = 'product.product' 10 | 11 | standard_price = fields.Float( 12 | groups='base.group_user,\ 13 | sipreco_purchase.group_portal_requester') 14 | -------------------------------------------------------------------------------- /sipreco_purchase/models/purchase_order.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, fields, api, _ 6 | from odoo.exceptions import UserError 7 | 8 | 9 | class PurchaseOrder(models.Model): 10 | _inherit = "purchase.order" 11 | 12 | expedient_id = fields.Many2one( 13 | 'public_budget.expedient', 14 | copy=False, 15 | ) 16 | 17 | @api.onchange('requisition_id') 18 | def _onchange_requisition_id(self): 19 | super(PurchaseOrder, self)._onchange_requisition_id() 20 | if self.requisition_id.type_id.line_copy == 'copy'\ 21 | and self.requisition_id.type_id.price_unit_copy != 'copy': 22 | self.order_line.update({'price_unit': 0.0}) 23 | 24 | def check_if_expedients_exist(self): 25 | purchase_orders_expedient = self.filtered('expedient_id') 26 | if purchase_orders_expedient: 27 | raise UserError( 28 | _("This Purchase orders has expedient generated:\n * %s \n\n" 29 | "Only one expedient for Purchase Order are allowed," 30 | " place select other Purchase orders.") % 31 | ("\n* ".join( 32 | [p.name + '(%s)' % (p.expedient_id.number) 33 | for p in purchase_orders_expedient]))) 34 | -------------------------------------------------------------------------------- /sipreco_purchase/models/purchase_order_line.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, api, fields 6 | 7 | 8 | class PurchaseOrderLine(models.Model): 9 | _inherit = "purchase.order.line" 10 | 11 | brand = fields.Char( 12 | ) 13 | 14 | @api.onchange('product_qty', 'product_uom') 15 | def _onchange_quantity(self): 16 | price_unit = self.price_unit 17 | res = super()._onchange_quantity() 18 | if self.order_id.requisition_id and self.order_id.\ 19 | requisition_id.type_id.price_unit_copy != 'copy': 20 | self.price_unit = price_unit 21 | return res 22 | -------------------------------------------------------------------------------- /sipreco_purchase/models/purchase_requisition_line.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, fields, api 6 | 7 | 8 | class PurchaseRequisitionLine(models.Model): 9 | _inherit = 'purchase.requisition.line' 10 | 11 | name = fields.Text( 12 | string='Description', 13 | ) 14 | price_unit = fields.Float( 15 | string='Unit Price', 16 | digits='Product Price', 17 | ) 18 | subtotal = fields.Float( 19 | digits='Product Price', 20 | compute='_compute_subtotal', 21 | store=True, 22 | ) 23 | 24 | @api.depends('price_unit', 'product_qty') 25 | def _compute_subtotal(self): 26 | for rec in self: 27 | rec.subtotal = rec.price_unit * rec.product_qty 28 | 29 | def _prepare_purchase_order_line( 30 | self, name, product_qty=0.0, price_unit=0.0, taxes_ids=False): 31 | res = super()._prepare_purchase_order_line( 32 | name, product_qty=product_qty, price_unit=price_unit, 33 | taxes_ids=taxes_ids) 34 | if self.name: 35 | res.update({ 36 | 'name': self.name, 37 | }) 38 | return res 39 | 40 | @api.onchange('product_id') 41 | def _onchange_product_id(self): 42 | super()._onchange_product_id() 43 | if self.product_id: 44 | product_lang = self.product_id.with_context( 45 | lang=self.requisition_id.vendor_id.lang, 46 | partner_id=self.requisition_id.vendor_id.id, 47 | ) 48 | self.name = product_lang.display_name 49 | if product_lang.description_purchase: 50 | self.name += '\n' + product_lang.description_purchase 51 | -------------------------------------------------------------------------------- /sipreco_purchase/models/purchase_requisition_type.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, fields 6 | 7 | 8 | class PurchaseRequisitionType(models.Model): 9 | _inherit = "purchase.requisition.type" 10 | 11 | price_unit_copy = fields.Selection( 12 | [('copy', 'Use price of agreement'), 13 | ('none', 'Set price manually')], 14 | string='Price Unit', 15 | required=True, 16 | default='none', 17 | ) 18 | -------------------------------------------------------------------------------- /sipreco_purchase/models/res_users.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, fields 6 | 7 | 8 | class ResUsers(models.Model): 9 | _inherit = 'res.users' 10 | 11 | picking_type_ids = fields.Many2many( 12 | 'stock.picking.type', 13 | 'stock_picking_type_users_rel', 14 | 'user_id', 15 | 'picking_type_id', 16 | 'Restricted Picking Types', 17 | ) 18 | -------------------------------------------------------------------------------- /sipreco_purchase/models/stock_location_route.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, fields 6 | 7 | 8 | class StockLocationRoute(models.Model): 9 | _inherit = 'stock.location.route' 10 | 11 | stock_request_selectable = fields.Boolean( 12 | 'Applicable on Stock Requests', 13 | ) 14 | -------------------------------------------------------------------------------- /sipreco_purchase/models/stock_picking_type.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | # ############################################################################## 5 | from odoo import models, fields 6 | 7 | class StockPickingType(models.Model): 8 | _inherit = 'stock.picking.type' 9 | 10 | count_pending_requests = fields.Integer( 11 | compute='_compute_requests_count', 12 | ) 13 | user_ids = fields.Many2many( 14 | 'res.users', 15 | 'stock_picking_type_users_rel', 16 | 'picking_type_id', 17 | 'user_id', 18 | string='Users', 19 | copy=False 20 | ) 21 | 22 | def _compute_requests_count(self): 23 | for rec in self: 24 | rec.count_pending_requests = self.env[ 25 | 'stock.request'].search_count([ 26 | ('state', 'not in', ['done', 'cancel']), 27 | ('rule_id.picking_type_id', '=', rec.id)]) 28 | 29 | def action_type_stock_request(self): 30 | self.ensure_one() 31 | action = self.env["ir.actions.actions"]._for_xml_id('stock_request.action_stock_request_form') 32 | if not action: 33 | return False 34 | action['domain'] = [('rule_id.picking_type_id', '=', self.id)] 35 | action['context'] = {'search_default_pending': 1} 36 | return action 37 | -------------------------------------------------------------------------------- /sipreco_purchase/models/stock_request_order.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models, fields, api 6 | 7 | 8 | class StockRequestOrder(models.Model): 9 | _inherit = 'stock.request.order' 10 | 11 | partner_id = fields.Many2one( 12 | 'res.partner', 13 | 'Requirente', 14 | required=True, 15 | default=lambda self: self.env.user.partner_id 16 | ) 17 | description = fields.Text( 18 | 'Motivacion', 19 | required=True, 20 | ) 21 | activity_date_deadline = fields.Date( 22 | related_sudo=True, 23 | compute_sudo=True, 24 | ) 25 | 26 | @api.onchange('company_id') 27 | def change_company_id(self): 28 | self.warehouse_id = self.env['stock.warehouse'].search( 29 | [('company_id', '=', self.company_id.id)], limit=1) 30 | 31 | @api.onchange('partner_id', 'warehouse_id') 32 | def onchange_warehouse_id(self): 33 | # clientes esta seteada en el partner 34 | super().onchange_warehouse_id() 35 | self.location_id = self.partner_id.property_stock_customer 36 | # # use customer location by default instead of stock location 37 | # self.location_id = self.warehouse_id.wh_output_stock_loc_id 38 | 39 | @api.model 40 | def create(self, vals): 41 | # mandamos el partner en el group ya que es este el que va hasta el 42 | # # picking 43 | rec = super().create(vals) 44 | if rec.procurement_group_id: 45 | rec.procurement_group_id.partner_id = rec.partner_id 46 | return rec 47 | -------------------------------------------------------------------------------- /sipreco_purchase/models/stock_rule.py: -------------------------------------------------------------------------------- 1 | ############################################################################## 2 | # For copyright and license notices, see __manifest__.py file in module root 3 | # directory 4 | ############################################################################## 5 | from odoo import models 6 | 7 | 8 | class StockRule(models.Model): 9 | _inherit = 'stock.rule' 10 | 11 | def _get_stock_move_values( 12 | self, product_id, product_qty, product_uom, location_id, name, origin, company_id, values): 13 | result = super()._get_stock_move_values(product_id, product_qty, 14 | product_uom, location_id, name, origin, company_id, values) 15 | stock_request_id = values.get('stock_request_id', False) 16 | if stock_request_id: 17 | stock_request = self.env['stock.request'].browse(stock_request_id) 18 | stock_request.rule_id = self.id 19 | result['name'] = stock_request.description 20 | return result 21 | -------------------------------------------------------------------------------- /sipreco_purchase/models/transaction.py: -------------------------------------------------------------------------------- 1 | from odoo import models 2 | 3 | 4 | class BudgetTransaction(models.Model): 5 | 6 | _inherit = 'public_budget.transaction' 7 | 8 | def action_view_purchase_requisitions(self): 9 | self.ensure_one() 10 | action = self.env["ir.actions.actions"]._for_xml_id( 11 | 'purchase_requisition.action_purchase_requisition') 12 | action['context'] = {'search_default_expedient_id': self.expedient_id.id} 13 | return action 14 | -------------------------------------------------------------------------------- /sipreco_purchase/reports/purchase_order_publicity_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_purchase/reports/purchase_order_publicity_report.odt -------------------------------------------------------------------------------- /sipreco_purchase/reports/purchase_order_publicity_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Pedido de Compra Publicidad 7 | purchase.order 8 | purchase_order_report 9 | aeroo 10 | oo-odt 11 | sipreco_purchase/reports/purchase_order_publicity_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | True 19 | 20 | 21 | -------------------------------------------------------------------------------- /sipreco_purchase/reports/purchase_requisition_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_purchase/reports/purchase_requisition_report.odt -------------------------------------------------------------------------------- /sipreco_purchase/reports/purchase_requisition_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Solicitud de Compra 9 | purchase.requisition 10 | purchase_requisition_report 11 | aeroo 12 | oo-odt 13 | sipreco_purchase/reports/purchase_requisition_report.odt 14 | file 15 | 16 | specified 17 | 18 | 19 | report 20 | 21 | 22 | -------------------------------------------------------------------------------- /sipreco_purchase/security/hide_groups.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Stock Manager 11 | 12 | 13 | 14 | 15 | 16 | 17 | Purchase Manager 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /sipreco_purchase/static/description/procurement_order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_purchase/static/description/procurement_order.png -------------------------------------------------------------------------------- /sipreco_purchase/views/expedient_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | sipreco_purchase.expedient.form 6 | public_budget.expedient 7 | 8 | 9 | 10 |
11 | 12 |
14 |
15 |
16 |
17 | -------------------------------------------------------------------------------- /sipreco_purchase/views/purchase_requisition_type_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | purchase.requisition.type.form 5 | purchase.requisition.type 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sipreco_purchase/views/res_users_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | public_budget.users.form 7 | res.users 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /sipreco_purchase/views/stock_inventory_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /sipreco_purchase/views/stock_location_route_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | stock.location.route.form 5 | 6 | stock.location.route 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sipreco_purchase/views/stock_move_line_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | stock.move.line.tree 7 | stock.move.line 8 | 9 | 10 | 11 | 1 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /sipreco_purchase/views/stock_picking_type_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | stock.picking.type.kanban 6 | stock.picking.type 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 |
17 | 18 |
19 | 24 |
25 | 26 |
27 |
28 |
29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /sipreco_purchase/views/transaction_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.transaction.form.inherit 6 | public_budget.transaction 7 | 8 | 9 |
10 |
12 |
13 |
14 | 15 |
16 | -------------------------------------------------------------------------------- /sipreco_purchase/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_expedients_wizard 2 | -------------------------------------------------------------------------------- /sipreco_purchase/wizards/create_expedients_wizard_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Create Expedients Wizard 5 | public_budget.create.expedients.wizard 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
23 |
24 |
25 |
26 | 27 | 28 | Asistente de creacion de Expedientes 29 | public_budget.create.expedients.wizard 30 | form 31 | new 32 | 33 | 34 |
35 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/README.rst: -------------------------------------------------------------------------------- 1 | .. |company| replace:: ADHOC SA 2 | 3 | .. |company_logo| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-logo.png 4 | :alt: ADHOC SA 5 | :target: https://www.adhoc.com.ar 6 | 7 | .. |icon| image:: https://raw.githubusercontent.com/ingadhoc/maintainer-tools/master/resources/adhoc-icon.png 8 | 9 | .. image:: https://img.shields.io/badge/license-AGPL--3-blue.png 10 | :target: https://www.gnu.org/licenses/agpl 11 | :alt: License: AGPL-3 12 | 13 | ================================ 14 | Public Budget Subsidy Management 15 | ================================ 16 | 17 | Installation 18 | ============ 19 | 20 | To install this module, you need to: 21 | 22 | #. Only need to install the module 23 | 24 | Configuration 25 | ============= 26 | 27 | To configure this module, you need to: 28 | 29 | #. Nothing to configure 30 | 31 | Usage 32 | ===== 33 | 34 | To use this module, you need to: 35 | 36 | #. Go to ... 37 | 38 | .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas 39 | :alt: Try me on Runbot 40 | :target: http://runbot.adhoc.com.ar/ 41 | 42 | Bug Tracker 43 | =========== 44 | 45 | Bugs are tracked on `GitHub Issues 46 | `_. In case of trouble, please 47 | check there if your issue has already been reported. If you spotted it first, 48 | help us smashing it by providing a detailed and welcomed feedback. 49 | 50 | Credits 51 | ======= 52 | 53 | Images 54 | ------ 55 | 56 | * |company| |icon| 57 | 58 | Contributors 59 | ------------ 60 | 61 | Maintainer 62 | ---------- 63 | 64 | |company_logo| 65 | 66 | This module is maintained by the |company|. 67 | 68 | To contribute to this module, please visit https://www.adhoc.com.ar. 69 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/__init__.py: -------------------------------------------------------------------------------- 1 | from . import models 2 | from . import wizards 3 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/__manifest__.py: -------------------------------------------------------------------------------- 1 | { 2 | 'name': 'Public Budget Subsidy Management', 3 | 'version': "15.0.1.4.0", 4 | 'author': 'ADHOC SA,Odoo Community Association (OCA)', 5 | 'website': 'www.adhoc.com.ar', 6 | 'category': 'Accounting & Finance', 7 | 'license': 'AGPL-3', 8 | 'data': [ 9 | 'security/ir_rule.xml', 10 | 'reports/subsidy_note_report.xml', 11 | 'reports/subsidy_approval_arrangement_report.xml', 12 | 'reports/remit_report_subsidy.xml', 13 | 'reports/subsidy_form_report.xml', 14 | 'reports/subsidy_report.xml', 15 | 'reports/subsidy_report_resolution.xml', 16 | 'reports/report_ticket_template.xml', 17 | 'views/subsidy_views.xml', 18 | 'views/subsidy_ticket_views.xml', 19 | 'views/transaction_type_views.xml', 20 | 'views/subsidy_approval_arrangement_views.xml', 21 | 'views/subsidy_note_type_views.xml', 22 | 'views/subsidy_resolution_views.xml', 23 | 'views/subsidy_ticket_director_views.xml', 24 | 'security/ir.model.access.csv', 25 | 'data/sequence_data.xml', 26 | 'data/subsidy_note_type_data.xml', 27 | 'data/cron.xml', 28 | 'data/ir_actions_server_data.xml', 29 | 'wizards/create_administrative_process_wizard_views.xml', 30 | 'views/expedient_views.xml', 31 | 'views/subsidy_stage_views.xml', 32 | 'views/subsidy_portaluser_views.xml', 33 | ], 34 | 'demo': [ 35 | 'demo/public_budget.transaction_type.csv', 36 | 'demo/subsidy_demo.xml', 37 | 'demo/helpdesk_demo.xml', 38 | ], 39 | 'depends': [ 40 | 'public_budget', 41 | 'helpdesk', 42 | 'mail', 43 | ], 44 | 'installable': False, 45 | } 46 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/data/cron.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Subsidy Report Week Reminder 6 | ${(object.email or '')|safe} 7 | Informe semanal de Subsidios 8 | ${object.id} 9 | ${object.lang} 10 | 11 | 12 | 17 | 18 | Numero Interno 19 | Receptor 20 | 21 | % for sub in ctx['data'].get('subsidys'): 22 | 23 | ${sub.internal_number} 24 | ${sub.partner_id.name} 25 | 26 | % endfor 27 | 28 | 29 | 30 |

31 | Thanks, 32 |

33 | 34 |
35 | 
36 | 37 | ]]>
38 |
39 | 40 | 41 | 42 | Subsidy Report Week 43 | 44 | 1 45 | weeks 46 | -1 47 | 48 | code 49 | 50 | model._cron_recurring_subsidy_report(1) 51 | 52 | 53 |
54 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/data/ir_actions_server_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Generar Tramite Administrativo 6 | 7 | 8 | code 9 | 10 | action = env["ir.actions.act_window"]._for_xml_id('sipreco_subsidy_management.action_create_administrative_process_wizard') 11 | helpdesk_tickets = records.filtered(lambda x: x.stage_id.name in ['Ticket', 'Aprobado']) 12 | action['context'] = {'active_ids': helpdesk_tickets.ids} 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/data/sequence_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Disposición de aprobacion 6 | approval_arrangement 7 | /%(y)s-N 8 | 4 9 | 10 | 11 | 12 | 13 | Subsidy Internal number 14 | subsidy_internal_number 15 | OI-%(year)s- 16 | 6 17 | 18 | no_gap 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/data/subsidy_note_type_data.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NOTA A PRESIDENCIA - Cambio de destino del subsidio 6 | 1 7 | 8 | 9 | 10 | NOTA A PRESIDENCIA- Omisión presentación de rendición de cuentas 11 | 2 12 | 13 | 14 | 15 | 16 | 17 | NOTA A PRESIDENCIA- Novedad por rendición presentada 18 | 3 19 | 20 | 21 | 22 | 23 | NOTA CON OBSERVACIONES AL RESPONSABLE 24 | 4 25 | 26 | 27 | 28 | 29 | NOTA A RESPONSABLE- Intimación presentación en 5 días 30 | 5 31 | 32 | 33 | 34 | 35 | NOTA A RESPONSABLE- Intimación presentación ultimo aviso 36 | 6 37 | 38 | 39 | 40 | 41 | OTRAS NOTAS- Presentación de la rendición 42 | 7 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/demo/public_budget.transaction_type.csv: -------------------------------------------------------------------------------- 1 | id,subsidy 2 | public_budget.purchase_type_subsidio_con_cargo_demo,True 3 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/demo/subsidy_demo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Expediente 9 | 10 | None 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/models/__init__.py: -------------------------------------------------------------------------------- 1 | from . import subsidy 2 | from . import subsidy_approval_arrangement 3 | from . import subsidy_rendition 4 | from . import subsidy_note 5 | from . import subsidy_note_type 6 | from . import subsidy_resolution 7 | from . import subsidy_resolution_line 8 | from . import subsidy_ticket 9 | from . import transaction_type 10 | from . import expedient 11 | from . import subsidy_stage 12 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/models/expedient.py: -------------------------------------------------------------------------------- 1 | from odoo import models, fields 2 | 3 | 4 | class PublicBudgetExpedient(models.Model): 5 | 6 | _inherit = 'public_budget.expedient' 7 | 8 | purchase_order_ids = fields.One2many( 9 | 'helpdesk.ticket', 10 | 'expedient_id', 11 | ) 12 | 13 | def action_open_subsidy_ticket(self): 14 | action = self.env["ir.actions.actions"]._for_xml_id("helpdesk.helpdesk_ticket_action_main_tree") 15 | action['context'] = {} 16 | all_child = self.with_context(active_test=False).search([('id', 'child_of', self.ids)]) 17 | action['domain'] = [('expedient_id', 'in', self.ids)] 18 | return action 19 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/models/ir_actions_report.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/models/ir_actions_report.py -------------------------------------------------------------------------------- /sipreco_subsidy_management/models/subsidy_note.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class PublicBudgetSubsidyNote(models.Model): 5 | 6 | _name = 'public_budget.subsidy.note' 7 | _description = 'public_budget.subsidy.note' 8 | 9 | subsidy_id = fields.Many2one( 10 | 'public_budget.subsidy', 11 | 'Subsidy', 12 | required=True, 13 | ondelete='cascade', 14 | ) 15 | name = fields.Char( 16 | required=True, 17 | ) 18 | date = fields.Date( 19 | required=True, 20 | default=fields.Date.context_today 21 | ) 22 | # type = fields.Selection([ 23 | # ('first', 'Primer reclamo'), 24 | # ('last', 'Ultimo aviso')], 25 | # 'Tipo', 26 | # required=True, 27 | # ) 28 | type_id = fields.Many2one( 29 | 'public_budget.subsidy.note.type', 30 | string='Tipo', 31 | required=True, 32 | ) 33 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/models/subsidy_note_type.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class PublicBudgetSubsidyNoteType(models.Model): 5 | 6 | _name = 'public_budget.subsidy.note.type' 7 | _description = 'public_budget.subsidy.note.type' 8 | _order = 'sequence' 9 | 10 | sequence = fields.Integer( 11 | required=True, 12 | default=10, 13 | ) 14 | name = fields.Char( 15 | required=True, 16 | ) 17 | code = fields.Char( 18 | required=True, 19 | ) 20 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/models/subsidy_stage.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class HelpdeskStage(models.Model): 5 | _inherit = 'helpdesk.stage' 6 | 7 | is_verified = fields.Boolean(string='Verificar Etapa') 8 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/models/transaction_type.py: -------------------------------------------------------------------------------- 1 | from odoo import fields, models 2 | 3 | 4 | class PublicBudgetTransactionType(models.Model): 5 | 6 | _inherit = 'public_budget.transaction_type' 7 | 8 | subsidy = fields.Boolean( 9 | ) 10 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/remit_report_subsidy.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/remit_report_subsidy.ods -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/remit_report_subsidy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Reporte Remito - Subsidios 8 | public_budget.remit 9 | remit_report_subsidy 10 | aeroo 11 | oo-ods 12 | sipreco_subsidy_management/reports/remit_report_subsidy.ods 13 | file 14 | 15 | specified 16 | 17 | 18 | report 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/report_subsidy_resolution.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/report_subsidy_resolution.ods -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/report_subsidy_tickets_resolution.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/report_subsidy_tickets_resolution.ods -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_approval_arrangement_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_approval_arrangement_report.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_approval_arrangement_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Subsidy Approval Arrangement 8 | 9 | public_budget.subsidy.rendition 10 | subsidy_approval_arrangement_report 11 | aeroo 12 | oo-odt 13 | sipreco_subsidy_management/reports/subsidy_approval_arrangement_report.odt 14 | file 15 | 16 | specified 17 | 18 | 19 | report 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_form_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_form_report.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_form_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Reporte Subsidio Individual 8 | public_budget.subsidy 9 | subsidy_form_report 10 | aeroo 11 | oo-odt 12 | sipreco_subsidy_management/reports/subsidy_form_report.odt 13 | file 14 | 15 | specified 16 | 17 | 18 | report 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_note_report.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_note_report.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_note_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Subsidy Note Report 7 | public_budget.subsidy.note 8 | subsidy_note_report 9 | aeroo 10 | oo-odt 11 | sipreco_subsidy_management/reports/subsidy_note_report.odt 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_report.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_report.ods -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_report.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Reporte Tabla Subsidios 7 | public_budget.subsidy 8 | subsidy_report 9 | aeroo 10 | oo-ods 11 | sipreco_subsidy_management/reports/subsidy_report.ods 12 | file 13 | 14 | specified 15 | 16 | 17 | report 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_resolution_COMUN.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_resolution_COMUN.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_resolution_INSTIT.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_resolution_INSTIT.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_resolution_ITRANS.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_resolution_ITRANS.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_tickets_resolution_COMUN.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_tickets_resolution_COMUN.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/reports/subsidy_tickets_resolution_INSTIT.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/reports/subsidy_tickets_resolution_INSTIT.odt -------------------------------------------------------------------------------- /sipreco_subsidy_management/security/ir_rule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Subsidios 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/static/description/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ingadhoc/odoo-public-administration/a7d87b43426b720d69d0d5c9c8908acd7a402a42/sipreco_subsidy_management/static/description/icon.png -------------------------------------------------------------------------------- /sipreco_subsidy_management/views/expedient_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.expedient.form 6 | public_budget.expedient 7 | 8 | 9 |
10 | 16 |
17 |
18 |
19 |
20 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/views/subsidy_note_type_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | public_budget.subsidy.note.type.form 7 | public_budget.subsidy.note.type 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 |
18 | 19 | 20 | 21 | public_budget.subsidy.note.type.tree 22 | public_budget.subsidy.note.type 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | Tipos de Reclamo de Subsidios 34 | public_budget.subsidy.note.type 35 | 36 | 37 | 38 | 39 |
40 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/views/subsidy_portaluser_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Subsidios 6 | helpdesk.ticket 7 | tree,kanban 8 | {'create': False} 9 | [('responsible_user', '=', uid)] 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/views/subsidy_stage_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | helpdesk_subsidy_stage_view_form_inherit 5 | helpdesk.stage 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/views/subsidy_ticket_director_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | subsidy.ticket.director.form 5 | helpdesk.ticket 6 | 7 | 8 | 9 | 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/views/transaction_type_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | public_budget.transaction_type.select 6 | public_budget.transaction_type 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/wizards/__init__.py: -------------------------------------------------------------------------------- 1 | from . import create_administrative_process_wizard 2 | -------------------------------------------------------------------------------- /sipreco_subsidy_management/wizards/create_administrative_process_wizard_views.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Create Administrative Process Wizard 5 | public_budget.create.administrative.process.wizard 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
22 |
23 |
24 |
25 | 26 | 27 | Asistente de creacion de Tramites Administrativos 28 | public_budget.create.administrative.process.wizard 29 | form 30 | new 31 | 32 | 33 |
34 | --------------------------------------------------------------------------------