Initial commit: OCA Workflow Process packages (456 packages)

This commit is contained in:
Ernad Husremovic 2025-08-29 15:43:00 +02:00
commit d366e42934
18799 changed files with 1284507 additions and 0 deletions

View file

@ -0,0 +1,46 @@
# Goods Received Note
Odoo addon: stock_grn
## Installation
```bash
pip install odoo-bringout-oca-stock-logistics-workflow-stock_grn
```
## Dependencies
This addon depends on:
- stock
## Manifest Information
- **Name**: Goods Received Note
- **Version**: 16.0.1.1.0
- **Category**: Delivery
- **License**: AGPL-3
- **Installable**: True
## Source
Based on [OCA/stock-logistics-workflow](https://github.com/OCA/stock-logistics-workflow) branch 16.0, addon `stock_grn`.
## License
This package maintains the original AGPL-3 license from the upstream Odoo project.
## Documentation
- Overview: doc/OVERVIEW.md
- Architecture: doc/ARCHITECTURE.md
- Models: doc/MODELS.md
- Controllers: doc/CONTROLLERS.md
- Wizards: doc/WIZARDS.md
- Reports: doc/REPORTS.md
- Security: doc/SECURITY.md
- Install: doc/INSTALL.md
- Usage: doc/USAGE.md
- Configuration: doc/CONFIGURATION.md
- Dependencies: doc/DEPENDENCIES.md
- Troubleshooting: doc/TROUBLESHOOTING.md
- FAQ: doc/FAQ.md

View file

@ -0,0 +1,32 @@
# Architecture
```mermaid
flowchart TD
U[Users] -->|HTTP| V[Views and QWeb Templates]
V --> C[Controllers]
V --> W[Wizards Transient Models]
C --> M[Models and ORM]
W --> M
M --> R[Reports]
DX[Data XML] --> M
S[Security ACLs and Groups] -. enforces .-> M
subgraph Stock_grn Module - stock_grn
direction LR
M:::layer
W:::layer
C:::layer
V:::layer
R:::layer
S:::layer
DX:::layer
end
classDef layer fill:#eef8ff,stroke:#6ea8fe,stroke-width:1px
```
Notes
- Views include tree/form/kanban templates and report templates.
- Controllers provide website/portal routes when present.
- Wizards are UI flows implemented with `models.TransientModel`.
- Data XML loads data/demo records; Security defines groups and access.

View file

@ -0,0 +1,3 @@
# Configuration
Refer to Odoo settings for stock_grn. Configure related models, access rights, and options as needed.

View file

@ -0,0 +1,3 @@
# Controllers
This module does not define custom HTTP controllers.

View file

@ -0,0 +1,5 @@
# Dependencies
This addon depends on:
- [stock](../../odoo-bringout-oca-ocb-stock)

View file

@ -0,0 +1,4 @@
# FAQ
- Q: Which Odoo version? A: 16.0 (OCA/OCB packaged).
- Q: How to enable? A: Start server with --addon stock_grn or install in UI.

View file

@ -0,0 +1,7 @@
# Install
```bash
pip install odoo-bringout-oca-stock-logistics-workflow-stock_grn"
# or
uv pip install odoo-bringout-oca-stock-logistics-workflow-stock_grn"
```

View file

@ -0,0 +1,16 @@
# Models
Detected core models and extensions in stock_grn.
```mermaid
classDiagram
class stock_grn
class stock_grn_type
class stock_move
class stock_picking
class stock_picking_type
```
Notes
- Classes show model technical names; fields omitted for brevity.
- Items listed under _inherit are extensions of existing models.

View file

@ -0,0 +1,6 @@
# Overview
Packaged Odoo addon: stock_grn. Provides features documented in upstream Odoo 16 under this addon.
- Source: OCA/OCB 16.0, addon stock_grn
- License: LGPL-3

View file

@ -0,0 +1,3 @@
# Reports
This module does not define custom reports.

View file

@ -0,0 +1,42 @@
# Security
Access control and security definitions in stock_grn.
## Access Control Lists (ACLs)
Model access permissions defined in:
- **[ir.model.access.csv](../stock_grn/security/ir.model.access.csv)**
- 4 model access rules
## Record Rules
Row-level security rules defined in:
- **[ir_rule.xml](../stock_grn/security/ir_rule.xml)**
## Security Groups & Configuration
Security groups and permissions defined in:
- **[ir_rule.xml](../stock_grn/security/ir_rule.xml)**
```mermaid
graph TB
subgraph "Security Layers"
A[Users] --> B[Groups]
B --> C[Access Control Lists]
C --> D[Models]
B --> E[Record Rules]
E --> F[Individual Records]
end
```
Security files overview:
- **[ir.model.access.csv](../stock_grn/security/ir.model.access.csv)**
- Model access permissions (CRUD rights)
- **[ir_rule.xml](../stock_grn/security/ir_rule.xml)**
- Security groups, categories, and XML-based rules
Notes
- Access Control Lists define which groups can access which models
- Record Rules provide row-level security (filter records by user/group)
- Security groups organize users and define permission sets
- All security is enforced at the ORM level by Odoo

View file

@ -0,0 +1,5 @@
# Troubleshooting
- Ensure Python and Odoo environment matches repo guidance.
- Check database connectivity and logs if startup fails.
- Validate that dependent addons listed in DEPENDENCIES.md are installed.

View file

@ -0,0 +1,7 @@
# Usage
Start Odoo including this addon (from repo root):
```bash
python3 scripts/nix_odoo_web_server.py --db-name mydb --addon stock_grn
```

View file

@ -0,0 +1,3 @@
# Wizards
This module does not include UI wizards.

View file

@ -0,0 +1,42 @@
[project]
name = "odoo-bringout-oca-stock-logistics-workflow-stock_grn"
version = "16.0.0"
description = "Goods Received Note - Odoo addon"
authors = [
{ name = "Ernad Husremovic", email = "hernad@bring.out.ba" }
]
dependencies = [
"odoo-bringout-oca-ocb-stock>=16.0.0",
"requests>=2.25.1"
]
readme = "README.md"
requires-python = ">= 3.11"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Office/Business",
]
[project.urls]
homepage = "https://github.com/bringout/0"
repository = "https://github.com/bringout/0"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["stock_grn"]
[tool.rye]
managed = true
dev-dependencies = [
"pytest>=8.4.1",
]

View file

@ -0,0 +1,90 @@
===================
Goods Received Note
===================
..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:781424dc2ad8c300073adde3aa2baa540de94a5a7d076c59951e4a288f14bc1f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fstock--logistics--workflow-lightgray.png?logo=github
:target: https://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_grn
:alt: OCA/stock-logistics-workflow
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/stock-logistics-workflow-16-0/stock-logistics-workflow-16-0-stock_grn
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-workflow&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
Document to encode the reception of goods from a transporter.
The Goods Received Note is the step at the reception of goods in the warehouse.
It allows to notify in odoo that goods have been received from a transporter
without performing any stock move. The GRN is linked to existing picking IN to
mark them as ready to process.
**Table of contents**
.. contents::
:local:
Usage
=====
To use this module, you need to :
- Go to *Inventory* - *Products* - *Goods Received Note*
- Create a GRN and add the incoming pickings you want to link
Bug Tracker
===========
Bugs are tracked on `GitHub Issues <https://github.com/OCA/stock-logistics-workflow/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/stock-logistics-workflow/issues/new?body=module:%20stock_grn%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues.
Credits
=======
Authors
~~~~~~~
* BCIM
* ACSONE SA/NV
Contributors
~~~~~~~~~~~~
* Jacques-Etienne Baudoux <je@bcim.be> (BCIM sprl)
* Hughes Damry <hughes.damry@acsone.eu>
Maintainers
~~~~~~~~~~~
This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/stock-logistics-workflow <https://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_grn>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View file

@ -0,0 +1 @@
from . import models

View file

@ -0,0 +1,25 @@
# Copyright 2015 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
# Copyright 2020 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Goods Received Note",
"version": "16.0.1.1.0",
"author": "BCIM, ACSONE SA/NV, Odoo Community Association (OCA)",
"category": "Delivery",
"depends": ["stock"],
"website": "https://github.com/OCA/stock-logistics-workflow",
"data": [
"views/stock_grn_views.xml",
"views/stock_grn_type_views.xml",
"views/stock_picking_views.xml",
"views/stock_picking_type_views.xml",
"views/stock_move_views.xml",
"data/stock_grn.xml",
"security/ir.model.access.csv",
"security/ir_rule.xml",
],
"installable": True,
"auto_install": False,
"license": "AGPL-3",
}

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<!-- Sequences for stock.grn -->
<record id="seq_grn" model="ir.sequence">
<field name="name">Goods Received Note</field>
<field name="code">stock.grn</field>
<field name="prefix">GG</field>
<field name="padding">7</field>
<field name="company_id" eval="False" />
</record>
</odoo>

View file

@ -0,0 +1,257 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_grn
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__active
msgid "Active"
msgstr "Aktivan"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Archived"
msgstr "Arhivirano"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier"
msgstr "Prevoznik"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_ref
msgid "Carrier Id"
msgstr "ID prijevoznika"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier reference"
msgstr "Referenca prijevoznika"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__company_id
msgid "Company"
msgstr "Preduzeće"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking_type__count_picking_grn
msgid "Count Picking Grn"
msgstr "Broj pobranja GRN-a"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_uid
msgid "Created by"
msgstr "Kreirao"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_date
msgid "Created on"
msgstr "Kreirano"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__date
msgid "Date"
msgstr "Datum"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__description
msgid "Description"
msgstr "Opis"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__display_name
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__display_name
msgid "Display Name"
msgstr "Prikazani naziv"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__from_info
msgid "From"
msgstr "Od"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_picking_tree_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_tree_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_tree
msgid "GRN"
msgstr "GRN"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_date
msgid "GRN Date"
msgstr "Datum GRN-a"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
msgid "GRN Type"
msgstr "Tip GRN-a"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "GRN Types"
msgstr "Tipovi GRN-a"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_move__grn_id
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_id
msgid "Goods Received Note"
msgstr "Obavještenje o primljenoj robi"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_type_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn_type
msgid "Goods Received Note Types"
msgstr "Tipovi obavještenja o primljenoj robi"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn
msgid "Goods Received Notes"
msgstr "Obavještenja o primljenoj robi"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__type_id
msgid "Grn Type"
msgstr "Tip GRN-a"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Group By"
msgstr "Grupiši po"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_picking_type_kanban
msgid "Having GRN"
msgstr "Ima GRN"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__id
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__id
msgid "ID"
msgstr "ID"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__picking_ids
msgid "Incoming Shipments"
msgstr "Dolazeće isporuke"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn____last_update
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type____last_update
msgid "Last Modified on"
msgstr "Zadnje mijenjano"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_uid
msgid "Last Updated by"
msgstr "Zadnji ažurirao"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_date
msgid "Last Updated on"
msgstr "Zadnje ažurirano"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__name
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Name"
msgstr "Naziv:"
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "No transfer found. Let's create one!"
msgstr "Nema dokumenata. Kreirajmo jedan!"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Not Received (GRN)"
msgstr "Nije primljeno (GRN)"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking_type
msgid "Picking Type"
msgstr "Vrsta dokumenta"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_box
msgid "Qty Boxes"
msgstr "Količina kutija"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_pallet
msgid "Qty Pallets"
msgstr "Količina paleta"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Received (GRN)"
msgstr "Primljeno (GRN)"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__ref
msgid "Reference"
msgstr "Referenca"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_move
msgid "Stock Move"
msgstr "Skladišno kretanje"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__supplier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Supplier"
msgstr "Dobavljač"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__delivery_note_supplier_number
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__delivery_note_supplier_number
msgid "Supplier delivery note number"
msgstr "Broj dobavljačeve otpremnice"
#. module: stock_grn
#: model:ir.model.constraint,message:stock_grn.constraint_stock_grn_type_name_uniq
msgid "This GRN type name already exists !"
msgstr "Ovaj naziv tipa GRN-a već postoji!"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking
msgid "Transfer"
msgstr "Prijenos"
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "Transfers allow you to move products from one location to another."
msgstr "Transferi omogućavaju da pomjerite artikle sa jedne lokacije na drugu."
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__name
msgid "Type"
msgstr "Tip"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn_type
msgid "Type of goods received note"
msgstr "Tip obavještenja o primljenoj robi"

View file

@ -0,0 +1,260 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_grn
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-11-26 21:34+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__active
msgid "Active"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Archived"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier"
msgstr "Transportista"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_ref
msgid "Carrier Id"
msgstr "Id de transportista"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier reference"
msgstr "Referencia del Transportista"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__company_id
msgid "Company"
msgstr "Compañía"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking_type__count_picking_grn
msgid "Count Picking Grn"
msgstr "Recuento de Recogida Grn"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_uid
msgid "Created by"
msgstr "Creado por"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_date
msgid "Created on"
msgstr "Creado el"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__date
msgid "Date"
msgstr "Fecha"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__description
msgid "Description"
msgstr "Descripción"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__display_name
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__display_name
msgid "Display Name"
msgstr "Mostrar Nombre"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__from_info
msgid "From"
msgstr "Desde"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_picking_tree_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_tree_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_tree
msgid "GRN"
msgstr "GRN"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_date
msgid "GRN Date"
msgstr "Fecha GRN"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
msgid "GRN Type"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "GRN Types"
msgstr ""
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_move__grn_id
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_id
msgid "Goods Received Note"
msgstr "Nota de Recepción de Mercancías"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_type_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn_type
msgid "Goods Received Note Types"
msgstr ""
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn
msgid "Goods Received Notes"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__type_id
msgid "Grn Type"
msgstr "Tipo Grn"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Group By"
msgstr "Agrupado Por"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_picking_type_kanban
msgid "Having GRN"
msgstr "Disponer de GRN"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__id
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__id
msgid "ID"
msgstr "ID"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__picking_ids
msgid "Incoming Shipments"
msgstr "Envíos Entrantes"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn____last_update
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type____last_update
msgid "Last Modified on"
msgstr "Última Modificación el"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_uid
msgid "Last Updated by"
msgstr "Última actualización por"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_date
msgid "Last Updated on"
msgstr "Última actualización el"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__name
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Name"
msgstr "Nombre"
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "No transfer found. Let's create one!"
msgstr "No se ha encontrado ninguna transferencia. ¡Vamos a crear una!"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Not Received (GRN)"
msgstr "No recibido (GRN)"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking_type
msgid "Picking Type"
msgstr "Tipo de Recogida"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_box
msgid "Qty Boxes"
msgstr "Ctd Cajas"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_pallet
msgid "Qty Pallets"
msgstr "Ctd Palets"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Received (GRN)"
msgstr "Recibido (GRN)"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__ref
msgid "Reference"
msgstr "Referencia"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_move
msgid "Stock Move"
msgstr "Movimiento de Existencias"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__supplier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Supplier"
msgstr "Proveedor"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__delivery_note_supplier_number
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__delivery_note_supplier_number
msgid "Supplier delivery note number"
msgstr "Número de albarán de entrega del proveedor"
#. module: stock_grn
#: model:ir.model.constraint,message:stock_grn.constraint_stock_grn_type_name_uniq
msgid "This GRN type name already exists !"
msgstr "¡Este nombre de tipo GRN ya existe !"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking
msgid "Transfer"
msgstr "Transferencia"
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "Transfers allow you to move products from one location to another."
msgstr "Las transferencias le permiten trasladar productos de un lugar a otro."
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__name
msgid "Type"
msgstr "Tipo"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn_type
msgid "Type of goods received note"
msgstr "Tipo de nota de entrada de mercancías"

View file

@ -0,0 +1,261 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_grn
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2024-09-16 10:06+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__active
msgid "Active"
msgstr "Attiva"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Archived"
msgstr "In archivio"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier"
msgstr "Trasportatore"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_ref
msgid "Carrier Id"
msgstr "ID trasportatore"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier reference"
msgstr "Riferimento trasportatore"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__company_id
msgid "Company"
msgstr "Azienda"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking_type__count_picking_grn
msgid "Count Picking Grn"
msgstr "Conteggio prelievo bolla ricezione"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_uid
msgid "Created by"
msgstr "Creato da"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_date
msgid "Created on"
msgstr "Creato il"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__date
msgid "Date"
msgstr "Data"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__description
msgid "Description"
msgstr "Descrizione"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__display_name
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__display_name
msgid "Display Name"
msgstr "Nome visualizzato"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__from_info
msgid "From"
msgstr "Da"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_picking_tree_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_tree_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_tree
msgid "GRN"
msgstr "Bolla ricezione"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_date
msgid "GRN Date"
msgstr "Data bolla ricezione"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
msgid "GRN Type"
msgstr "Tipo BR"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "GRN Types"
msgstr "Tipi BR"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_move__grn_id
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_id
msgid "Goods Received Note"
msgstr "Bolla ricezione merce"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_type_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn_type
msgid "Goods Received Note Types"
msgstr "Tipi bolla ricezione"
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn
msgid "Goods Received Notes"
msgstr "Bolle ricezione"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__type_id
msgid "Grn Type"
msgstr "Tipo bolla ricezione"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Group By"
msgstr "Raggruppa per"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_picking_type_kanban
msgid "Having GRN"
msgstr "Ha bolla ricezione"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__id
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__id
msgid "ID"
msgstr "ID"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__picking_ids
msgid "Incoming Shipments"
msgstr "Spedizioni in arrivo"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn____last_update
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type____last_update
msgid "Last Modified on"
msgstr "Ultima modifica il"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_uid
msgid "Last Updated by"
msgstr "Ultimo aggiornamento di"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_date
msgid "Last Updated on"
msgstr "Ultimo aggiornamento il"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__name
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Name"
msgstr "Nome"
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "No transfer found. Let's create one!"
msgstr "Nessun trasferimento trovato. Crearne uno!"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Not Received (GRN)"
msgstr "Non ricevuto (bolla ricezione)"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking_type
msgid "Picking Type"
msgstr "Tipo prelievo"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_box
msgid "Qty Boxes"
msgstr "Q.tà contenitori"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_pallet
msgid "Qty Pallets"
msgstr "Q.tà pallet"
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Received (GRN)"
msgstr "Ricevuto (bolla ricezione)"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__ref
msgid "Reference"
msgstr "Riferimento"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_move
msgid "Stock Move"
msgstr "Movimento di magazzino"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__supplier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Supplier"
msgstr "Fornitore"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__delivery_note_supplier_number
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__delivery_note_supplier_number
msgid "Supplier delivery note number"
msgstr "Numero DdT fornitore"
#. module: stock_grn
#: model:ir.model.constraint,message:stock_grn.constraint_stock_grn_type_name_uniq
msgid "This GRN type name already exists !"
msgstr "Questo nome tipo bolla ricezione esiste già!"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking
msgid "Transfer"
msgstr "Trasferimento"
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "Transfers allow you to move products from one location to another."
msgstr ""
"I trasferimento consentono di movimentare i prodotti tra le ubicazioni."
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__name
msgid "Type"
msgstr "Tipo"
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn_type
msgid "Type of goods received note"
msgstr "Tipo bolla ricezione"

View file

@ -0,0 +1,257 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * stock_grn
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__active
msgid "Active"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Archived"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__carrier_ref
msgid "Carrier Id"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Carrier reference"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__company_id
msgid "Company"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking_type__count_picking_grn
msgid "Count Picking Grn"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_uid
msgid "Created by"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__create_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__create_date
msgid "Created on"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__date
msgid "Date"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__description
msgid "Description"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__display_name
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__display_name
msgid "Display Name"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__from_info
msgid "From"
msgstr ""
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_picking_tree_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_tree_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_form
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_tree
msgid "GRN"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_date
msgid "GRN Date"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_form
msgid "GRN Type"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "GRN Types"
msgstr ""
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_move__grn_id
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__grn_id
msgid "Goods Received Note"
msgstr ""
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_type_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn_type
msgid "Goods Received Note Types"
msgstr ""
#. module: stock_grn
#: model:ir.actions.act_window,name:stock_grn.action_grn_view
#: model:ir.ui.menu,name:stock_grn.menu_stock_grn
msgid "Goods Received Notes"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__type_id
msgid "Grn Type"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Group By"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_picking_type_kanban
msgid "Having GRN"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__id
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__id
msgid "ID"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__picking_ids
msgid "Incoming Shipments"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn____last_update
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type____last_update
msgid "Last Modified on"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_uid
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_uid
msgid "Last Updated by"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__write_date
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__write_date
msgid "Last Updated on"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__name
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_type_search
msgid "Name"
msgstr ""
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "No transfer found. Let's create one!"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Not Received (GRN)"
msgstr ""
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking_type
msgid "Picking Type"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_box
msgid "Qty Boxes"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__qty_pallet
msgid "Qty Pallets"
msgstr ""
#. module: stock_grn
#: model_terms:ir.ui.view,arch_db:stock_grn.stock_move_search_view
#: model_terms:ir.ui.view,arch_db:stock_grn.view_picking_withgrn_search
msgid "Received (GRN)"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__ref
msgid "Reference"
msgstr ""
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_move
msgid "Stock Move"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__supplier_id
#: model_terms:ir.ui.view,arch_db:stock_grn.view_grn_search
msgid "Supplier"
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn__delivery_note_supplier_number
#: model:ir.model.fields,field_description:stock_grn.field_stock_picking__delivery_note_supplier_number
msgid "Supplier delivery note number"
msgstr ""
#. module: stock_grn
#: model:ir.model.constraint,message:stock_grn.constraint_stock_grn_type_name_uniq
msgid "This GRN type name already exists !"
msgstr ""
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_picking
msgid "Transfer"
msgstr ""
#. module: stock_grn
#: model_terms:ir.actions.act_window,help:stock_grn.action_picking_tree_grn
msgid "Transfers allow you to move products from one location to another."
msgstr ""
#. module: stock_grn
#: model:ir.model.fields,field_description:stock_grn.field_stock_grn_type__name
msgid "Type"
msgstr ""
#. module: stock_grn
#: model:ir.model,name:stock_grn.model_stock_grn_type
msgid "Type of goods received note"
msgstr ""

View file

@ -0,0 +1,5 @@
from . import stock_grn_type
from . import stock_grn
from . import stock_picking_type
from . import stock_picking
from . import stock_move

View file

@ -0,0 +1,55 @@
# Copyright 2015 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
class StockGrn(models.Model):
"""Goods Received Note"""
_name = "stock.grn"
_description = "Goods Received Note"
_order = "id desc"
name = fields.Char(copy=False, index=True, required=True, default="/")
carrier_id = fields.Many2one("res.partner", string="Carrier", required=True)
carrier_ref = fields.Char(string="Carrier Id")
from_info = fields.Char(string="From")
ref = fields.Char(string="Reference")
date = fields.Datetime(required=True, default=lambda self: fields.Datetime.now())
description = fields.Text()
type_id = fields.Many2one("stock.grn.type", string="Grn Type")
qty_pallet = fields.Integer(string="Qty Pallets")
qty_box = fields.Integer(string="Qty Boxes")
delivery_note_supplier_number = fields.Char(
string="Supplier delivery note number", required=True
)
company_id = fields.Many2one(
"res.company",
string="Company",
change_default=True,
default=lambda self: self.env.company,
required=True,
readonly=True,
)
picking_ids = fields.One2many(
"stock.picking",
"grn_id",
string="Incoming Shipments",
domain=[("picking_type_code", "=", "incoming")],
)
supplier_id = fields.Many2one(
"res.partner", string="Supplier", related="picking_ids.partner_id", store=True
)
@api.model_create_multi
def create(self, vals_list):
for vals in vals_list:
if vals.get("name", "/") == "/":
vals["name"] = self.env["ir.sequence"].next_by_code("stock.grn") or "/"
return super().create(vals_list)

View file

@ -0,0 +1,18 @@
# Copyright 2015 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class StockGrnType(models.Model):
"""GRN Type"""
_name = "stock.grn.type"
_description = "Type of goods received note"
name = fields.Char(string="Type", required=True)
active = fields.Boolean(default=True)
_sql_constraints = [
("name_uniq", "unique (name)", "This GRN type name already exists !")
]

View file

@ -0,0 +1,13 @@
# Copyright 2021 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import fields, models
class StockMove(models.Model):
_inherit = "stock.move"
grn_id = fields.Many2one(
related="picking_id.grn_id", readonly=True, ondelete="cascade", store=True
)

View file

@ -0,0 +1,23 @@
# Copyright 2015 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
from odoo import fields, models
class StockPicking(models.Model):
_inherit = "stock.picking"
grn_id = fields.Many2one(
comodel_name="stock.grn",
string="Goods Received Note",
copy=False,
readonly=True,
)
grn_date = fields.Datetime(
related="grn_id.date", string="GRN Date", store=True, index=True, readonly=True
)
delivery_note_supplier_number = fields.Char(
related="grn_id.delivery_note_supplier_number",
string="Supplier delivery note number",
store=True,
readonly=True,
)

View file

@ -0,0 +1,30 @@
# Copyright 2015 Jacques-Etienne Baudoux (BCIM) <je@bcim.be>
from odoo import fields, models
class StockPickingType(models.Model):
_inherit = "stock.picking.type"
count_picking_grn = fields.Integer(compute="_compute_count_picking_grn")
def _compute_count_picking_grn(self):
data = self.env["stock.picking"]._read_group(
[
("grn_id", "!=", False),
("state", "not in", ("done", "cancel")),
("picking_type_id", "in", self.ids),
],
["picking_type_id"],
["picking_type_id"],
)
count = {
x["picking_type_id"][0]: x["picking_type_id_count"]
for x in data
if x["picking_type_id"]
}
for rec in self:
rec.count_picking_grn = count.get(rec.id, 0)
def get_action_picking_tree_grn(self):
return self._get_action("stock_grn.action_picking_tree_grn")

View file

@ -0,0 +1,2 @@
* Jacques-Etienne Baudoux <je@bcim.be> (BCIM sprl)
* Hughes Damry <hughes.damry@acsone.eu>

View file

@ -0,0 +1,5 @@
Document to encode the reception of goods from a transporter.
The Goods Received Note is the step at the reception of goods in the warehouse.
It allows to notify in odoo that goods have been received from a transporter
without performing any stock move. The GRN is linked to existing picking IN to
mark them as ready to process.

View file

@ -0,0 +1,4 @@
To use this module, you need to :
- Go to *Inventory* - *Products* - *Goods Received Note*
- Create a GRN and add the incoming pickings you want to link

View file

@ -0,0 +1,5 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
user_001,user_001,model_stock_grn_type,stock.group_stock_user,1,0,0,0
mngt_001,mngt_001,model_stock_grn_type,stock.group_stock_manager,1,1,1,1
user_002,user_002,model_stock_grn,stock.group_stock_user,1,1,1,1
mngt_002,mngt_002,model_stock_grn,stock.group_stock_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 user_001 user_001 model_stock_grn_type stock.group_stock_user 1 0 0 0
3 mngt_001 mngt_001 model_stock_grn_type stock.group_stock_manager 1 1 1 1
4 user_002 user_002 model_stock_grn stock.group_stock_user 1 1 1 1
5 mngt_002 mngt_002 model_stock_grn stock.group_stock_manager 1 1 1 1

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.rule" id="grn_rule">
<field name="name">grn company rule</field>
<field name="model_id" ref="model_stock_grn" />
<field name="global" eval="True" />
<field
name="domain_force"
>['|',('company_id','=',False),('company_id','in',company_ids)]</field>
</record>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View file

@ -0,0 +1,438 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
<title>Goods Received Note</title>
<style type="text/css">
/*
:Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
.subscript {
vertical-align: sub;
font-size: smaller }
.superscript {
vertical-align: super;
font-size: smaller }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
overflow: hidden;
}
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title, .code .error {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin: 0 0 0.5em 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left, .figure.align-left, object.align-left, table.align-left {
clear: left ;
float: left ;
margin-right: 1em }
img.align-right, .figure.align-right, object.align-right, table.align-right {
clear: right ;
float: right ;
margin-left: 1em }
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
table.align-center {
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left }
.align-center {
clear: both ;
text-align: center }
.align-right {
text-align: right }
/* reset inner alignment in figures */
div.align-right {
text-align: inherit }
/* div.align-center * { */
/* text-align: left } */
.align-top {
vertical-align: top }
.align-middle {
vertical-align: middle }
.align-bottom {
vertical-align: bottom }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font: inherit }
pre.literal-block, pre.doctest-block, pre.math, pre.code {
margin-left: 2em ;
margin-right: 2em }
pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
pre.code .literal.string, code .literal.string { color: #0C5404 }
pre.code .name.builtin, code .name.builtin { color: #352B84 }
pre.code .deleted, code .deleted { background-color: #DEB0A1}
pre.code .inserted, code .inserted { background-color: #A3D289}
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic, pre.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
/* "booktabs" style (no vertical lines) */
table.docutils.booktabs {
border: 0px;
border-top: 2px solid;
border-bottom: 2px solid;
border-collapse: collapse;
}
table.docutils.booktabs * {
border: 0px;
}
table.docutils.booktabs th {
border-bottom: thin solid;
text-align: left;
}
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }
</style>
</head>
<body>
<div class="document" id="goods-received-note">
<h1 class="title">Goods Received Note</h1>
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:781424dc2ad8c300073adde3aa2baa540de94a5a7d076c59951e4a288f14bc1f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_grn"><img alt="OCA/stock-logistics-workflow" src="https://img.shields.io/badge/github-OCA%2Fstock--logistics--workflow-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/stock-logistics-workflow-16-0/stock-logistics-workflow-16-0-stock_grn"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/stock-logistics-workflow&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Document to encode the reception of goods from a transporter.
The Goods Received Note is the step at the reception of goods in the warehouse.
It allows to notify in odoo that goods have been received from a transporter
without performing any stock move. The GRN is linked to existing picking IN to
mark them as ready to process.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#usage" id="toc-entry-1">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-2">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-3">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="toc-entry-4">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="toc-entry-5">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="toc-entry-6">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="usage">
<h1><a class="toc-backref" href="#toc-entry-1">Usage</a></h1>
<p>To use this module, you need to :</p>
<ul class="simple">
<li>Go to <em>Inventory</em> - <em>Products</em> - <em>Goods Received Note</em></li>
<li>Create a GRN and add the incoming pickings you want to link</li>
</ul>
</div>
<div class="section" id="bug-tracker">
<h1><a class="toc-backref" href="#toc-entry-2">Bug Tracker</a></h1>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/stock-logistics-workflow/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/stock-logistics-workflow/issues/new?body=module:%20stock_grn%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
</div>
<div class="section" id="credits">
<h1><a class="toc-backref" href="#toc-entry-3">Credits</a></h1>
<div class="section" id="authors">
<h2><a class="toc-backref" href="#toc-entry-4">Authors</a></h2>
<ul class="simple">
<li>BCIM</li>
<li>ACSONE SA/NV</li>
</ul>
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#toc-entry-5">Contributors</a></h2>
<ul class="simple">
<li>Jacques-Etienne Baudoux &lt;<a class="reference external" href="mailto:je&#64;bcim.be">je&#64;bcim.be</a>&gt; (BCIM sprl)</li>
<li>Hughes Damry &lt;<a class="reference external" href="mailto:hughes.damry&#64;acsone.eu">hughes.damry&#64;acsone.eu</a>&gt;</li>
</ul>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#toc-entry-6">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org">
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
</a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/stock-logistics-workflow/tree/16.0/stock_grn">OCA/stock-logistics-workflow</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1 @@
from . import test_stock_grn

View file

@ -0,0 +1,71 @@
# Copyright 2022 ACSONE SA/NV
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo.tests.common import TransactionCase
class StockGrn(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.stock_location = cls.env.ref("stock.stock_location_stock")
cls.supplier_location = cls.env.ref("stock.stock_location_suppliers")
cls.uom_unit = cls.env.ref("uom.product_uom_unit")
cls.grn_model = cls.env["stock.grn"]
cls.partner = cls.env["res.partner"].create(
{
"name": "My Company",
"email": "my@company.com",
"company_id": False,
}
)
cls.product = cls.env["product.product"].create(
{
"name": "Product",
}
)
def test_grn_1(self):
"""
This tests links a ready receipt to a Goods Received Note.
"""
receipt_type = self.env.ref("stock.picking_type_in")
initial_count_picking_grn = receipt_type.count_picking_grn
picking = self.env["stock.picking"].create(
{
"location_id": self.supplier_location.id,
"location_dest_id": self.stock_location.id,
"picking_type_id": receipt_type.id,
}
)
self.env["stock.move"].create(
{
"name": "test_grn_1",
"location_id": self.supplier_location.id,
"location_dest_id": self.stock_location.id,
"product_id": self.product.id,
"product_uom": self.uom_unit.id,
"product_uom_qty": 1.0,
"picking_id": picking.id,
"picking_type_id": receipt_type.id,
}
)
picking.action_confirm()
delivery_note_supplier_number = "DN TEST"
grn = self.grn_model.create(
{
"carrier_id": self.partner.id,
"delivery_note_supplier_number": delivery_note_supplier_number,
"picking_ids": [
(4, picking.id),
],
}
)
self.assertEqual(picking.grn_id.id, grn.id)
self.assertEqual(
picking.delivery_note_supplier_number, delivery_note_supplier_number
)
# recompute count_picking_grn to check the inventory overview is updated
receipt_type._compute_count_picking_grn()
self.assertEqual(receipt_type.count_picking_grn, initial_count_picking_grn + 1)

View file

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.ui.view" id="view_grn_type_search">
<field name="name">stock.grn.type.search</field>
<field name="model">stock.grn.type</field>
<field name="arch" type="xml">
<search string="GRN Types">
<field name="name" string="Name" />
<filter string="Archived" name="inactive" domain="[('active','=',False)]" />
</search>
</field>
</record>
<record model="ir.ui.view" id="view_grn_type_tree">
<field name="name">stock.grn.type.tree</field>
<field name="model">stock.grn.type</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_grn_type_form">
<field name="name">stock.grn.type.form</field>
<field name="model">stock.grn.type</field>
<field eval="10" name="priority" />
<field name="arch" type="xml">
<form string="GRN Type">
<sheet>
<widget
name="web_ribbon"
title="Archived"
bg_color="bg-danger"
attrs="{'invisible': [('active', '=', True)]}"
/>
<div class="oe_title">
<h1>
<field name="name" />
</h1>
</div>
<group>
<group>
<field name="active" invisible="1" />
</group>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_grn_type_view">
<field name="name">Goods Received Note Types</field>
<field name="res_model">stock.grn.type</field>
</record>
<menuitem
id="menu_stock_grn_type"
parent="stock.menu_warehouse_config"
action="action_grn_type_view"
/>
</odoo>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record model="ir.ui.view" id="view_grn_search">
<field name="name">stock.grn.search</field>
<field name="model">stock.grn</field>
<field name="arch" type="xml">
<search string="GRN">
<field name="name" string="Name" />
<field name="carrier_ref" string="Carrier reference" />
<group expand='0' string='Group By'>
<filter
name="group_carrier"
string="Carrier"
domain="[]"
context="{'group_by': 'carrier_id'}"
/>
<filter
name="group_supplier"
string="Supplier"
domain="[]"
context="{'group_by': 'supplier_id'}"
/>
</group>
</search>
</field>
</record>
<record model="ir.ui.view" id="view_grn_tree">
<field name="name">stock.grn.tree</field>
<field name="model">stock.grn</field>
<field name="arch" type="xml">
<tree>
<field name="name" />
<field name="date" />
<field name="carrier_id" />
<field name="carrier_ref" />
<field name="supplier_id" />
<field name="ref" />
<field name="qty_pallet" />
<field name="qty_box" />
<field name="delivery_note_supplier_number" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_grn_form">
<field name="name">stock.grn.form</field>
<field name="model">stock.grn</field>
<field eval="10" name="priority" />
<field name="arch" type="xml">
<form string="GRN">
<header>
</header>
<sheet>
<div class="oe_title">
<h1>
<field name="name" readonly="1" class="oe_inline" />
</h1>
</div>
<group>
<group>
<field name="date" />
<field
name="carrier_id"
context="{'default_customer': False}"
options="{'no_create': True}"
/>
<field name="carrier_ref" />
<field name="supplier_id" />
<field name="company_id" groups="base.group_multi_company" />
<field name="qty_pallet" />
<field name="qty_box" />
<field name="delivery_note_supplier_number" />
</group>
<group>
<field name="from_info" />
<field name="ref" />
<field name="description" />
</group>
</group>
<label for="picking_ids" />
<field
name="picking_ids"
nolabel="1"
widget="many2many"
options="{'delete':False}"
context="{'search_default_available':1,'search_default_nogrn':1}"
/>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_grn_view">
<field name="name">Goods Received Notes</field>
<field name="res_model">stock.grn</field>
</record>
<menuitem
id="menu_stock_grn"
parent="stock.menu_stock_warehouse_mgmt"
sequence="30"
action="action_grn_view"
/>
</odoo>

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright 2021 ACSONE SA/NV
License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -->
<odoo>
<record model="ir.ui.view" id="stock_move_tree_view">
<field name="name">stock.move.tree (in stock_grn)</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_tree" />
<field name="arch" type="xml">
<field name="state" position="after">
<field name="grn_id" string="GRN" />
</field>
</field>
</record>
<record id="stock_move_search_view" model="ir.ui.view">
<field name="name">stock.move.search (in stock_grn)</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_search" />
<field name="arch" type="xml">
<filter name="done" position="after">
<separator />
<filter name="grn" string="Received (GRN)" domain="[('grn_id', '!=', False)]" />
<filter
name="nogrn"
string="Not Received (GRN)"
domain="[('grn_id', '=', False)]"
/>
</filter>
</field>
</record>
</odoo>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="stock_picking_type_kanban" model="ir.ui.view">
<field name="name">stock.picking.type.kanban (in stock_grn)</field>
<field name="model">stock.picking.type</field>
<field name="inherit_id" ref="stock.stock_picking_type_kanban" />
<field name="arch" type="xml">
<field name="count_picking_backorders" position="after">
<field name="count_picking_grn" />
</field>
<xpath expr="//div[@name='picking_type_backorder_count']" position="after">
<div t-if="record.count_picking_grn.raw_value > 0" class="row">
<div class="col-12">
<a
class="oe_kanban_stock_picking_type_list"
name="get_action_picking_tree_grn"
type="object"
>
<field name="count_picking_grn" />
Having GRN
</a>
</div>
</div>
</xpath>
</field>
</record>
</odoo>

View file

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<record id="view_picking_withgrn_search" model="ir.ui.view">
<field name="name">stock.picking.grn.search</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_internal_search" />
<field name="arch" type="xml">
<filter name="late" position="after">
<filter name="grn" string="Received (GRN)" domain="[('grn_id', '!=', False)]" />
<filter
name="nogrn"
string="Not Received (GRN)"
domain="[('grn_id', '=', False)]"
/>
</filter>
</field>
</record>
<record id="view_picking_withgrn_tree" model="ir.ui.view">
<field name="name">stock.picking.grn.tree</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.vpicktree" />
<field name="arch" type="xml">
<field name="state" position="after">
<field name="grn_id" string="GRN" />
<field name="delivery_note_supplier_number" />
<field name="grn_date" widget="date" />
</field>
</field>
</record>
<record id="view_picking_withgrn_form" model="ir.ui.view">
<field name="name">stock.picking.grn.form</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form" />
<field name="arch" type="xml">
<field name="backorder_id" position="after">
<field name="picking_type_code" invisible="1" />
<field
name="grn_id"
attrs="{'invisible':[('picking_type_code','!=','incoming')]}"
options="{'no_create':True}"
/>
<field
name="grn_date"
attrs="{'invisible':[('picking_type_code','!=','incoming')]}"
/>
<field
name="delivery_note_supplier_number"
attrs="{'invisible':[('picking_type_code','!=','incoming')]}"
/>
</field>
</field>
</record>
<record id="action_picking_tree_grn" model="ir.actions.act_window">
<field name="name">GRN</field>
<field name="res_model">stock.picking</field>
<field name="type">ir.actions.act_window</field>
<field name="view_mode">tree,kanban,form,calendar</field>
<field name="domain">[('state', 'not in', ('done', 'cancel'))]</field>
<field
name="context"
>{'contact_display': 'partner_address', 'search_default_grn': 1}</field>
<field name="search_view_id" ref="stock.view_picking_internal_search" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
No transfer found. Let's create one!
</p>
<p>
Transfers allow you to move products from one location to another.
</p>
</field>
</record>
</odoo>