Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

14.0 mig l10n it delivery note base #1962

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
210 changes: 210 additions & 0 deletions l10n_it_delivery_note/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
============================
ITA - Documento di trasporto
============================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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%2Fl10n--italy-lightgray.png?logo=github
:target: https://github.com/OCA/l10n-italy/tree/14.0/l10n_it_delivery_note
:alt: OCA/l10n-italy
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/l10n-italy-14-0/l10n-italy-14-0-l10n_it_delivery_note
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/122/14.0
:alt: Try me on Runbot

|badge1| |badge2| |badge3| |badge4| |badge5|

**English**

This module manage the Italian DDT (Delivery note).

From a picking is possible to generate a Delivery Note and group more picking in one delivery note. It's also possible to invoice from the delivery note form.

This module is alternative to :code:`l10n_it_ddt`, it follows the Odoo way to process sale orders, pickings and invoices.

You can't have both :code:`l10n_it_ddt` and :code:`l10n_it_delivery_note` installed together.

There are two available settings:

- Base (default): one picking, one DN.
- Advanced: more picking in one DN.


**Italiano**

Questo modulo consente di gestire i DDT.

Da un prelievo è possibile generare un DDT e raggruppare più prelievi in un DDT. È anche possibile fatturare dalla scheda del DDT.

Questo modulo è un alternativa al modulo :code:`l10n_it_ddt`, segue la modalità Odoo di gestire ordini di vendita, prelievi e fatture.

Non è possibile avere installati contemporaneamente :code:`l10n_it_ddt` e :code:`l10n_it_delivery_note`.

Ci sono due impostazioni possibili.

- Base (predefinita): un prelievo, un DDT.
- Avanzata: più prelievi in un DDT.

**Table of contents**

.. contents::
:local:

Configuration
=============

To configure this module, go to:

1. *Inventory → Configuration → Settings - Delivery Notes*

Checking 'Use Advanced DN Features' allows you to manage more picking on one delivery note.

2. *Inventory → Configuration → Warehouse Management → Delivery Note Types*

In delivery note type you can specify if the product price have to be printed in the delivery note report/slip.

- *Inventory → Configuration → Delivery Notes → Conditions of Transport*
- *Inventory → Configuration → Delivery Notes → Appearances of Goods*
- *Inventory → Configuration → Delivery Notes → Reasons of Transport*
- *Inventory → Configuration → Delivery Notes → Methods of Transport*

3. *Settings → User & Companies → Users*

In the user profile settings, "Show product information in DN lines" allows showing prices in the form.

Usage
=====

Funzionalità base
~~~~~~~~~~~~~~~~~

Quando un prelievo viene validato compare una scheda DDT.

Nella scheda fare clic su "Crea nuovo", si apre un procedura guidata dove scegliere il tipo di DDT, quindi confermare. Immettere i dati richiesti e poi fare clic su "Valida" per numerare il DDT.

Una volta validato, è possibile emettere fattura direttamente dal DDT se il DDT stesso è di tipo consegna a cliente (In uscita) e si hanno i permessi sull'utente.

È possibile annullare il DDT, reimpostarlo a bozza e poi modificarlo. Se il DDT è fatturato il numero e la data non sono modificabili.

Per i trasferimenti tra magazzini creare un prelievo di tipo interno con le relative ubicazioni. Validare il prelievo visualizza la scheda DDT.

È possibile anche avere DDT in ingresso, ovvero dopo la validazione del prelievo selezionare la scheda per indicare il numero del DDT fornitore e la data.

Funzionalità avanzata
~~~~~~~~~~~~~~~~~~~~~

Vengono attivate varie funzionalità aggiuntive:

- più prelievi per un DDT
- selezione multipla di prelievi e generazione dei DDT
- aggiunta righe nota e righe sezione descrittive.
- lista dei DDT.

Il report DDT stampa in righe aggiuntive i lotti/seriali e le scadenze del prodotto.

Il prezzo può essere indicato anche nel report DDT se nel tipo DDT è indicata la stampa prezzi.
La visibilità dei prezzi si trova nei permessi dell'utente.

Le fatture generate dai DDT contengono i riferimenti al DDT stesso nelle righe nota.


Migrazione dei dati da *l10n_it_ddt*
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Il modulo presenta una funzione di migrazione dei dati dal modulo OCA *l10n_it_ddt* da eseguire manualmente.
Al momento, non è ancora presente un menù oppure una voce da interfaccia che permetta di eseguire questa operazione; bensì, è stato definito un comando da CLI da eseguire all’avvio di Odoo.
Di seguito, una piccola lista di passi da seguire per portare a termine la migrazione:

1. Eseguire un back-up del database.

Questa procedura di migrazione dei dati è stata sì sviluppata e testata, MA solamente per un numero limitato di casi.
NON è consigliata in alcun modo come funzionalità production-ready.

2. Installare il modulo *l10n_it_delivery_note* SENZA prima disinstallare il modulo OCA *l10n_it_ddt*.

N.B.: NON iniziare ad usare il modulo *l10n_it_delivery_note* senza aver prima migrato i dati.
Potrebbero verificarsi, in prima battuta, problemi legati alla numerazione dei documenti creati.
Inoltre, la procedura di migrazione stessa è progettata affinché verifichi che non siano presenti documenti di *l10n_it_delivery_note*; qualora ne rilevi alcuni, si interromperà non eseguendo alcuna migrazione.

3. Terminata l’installazione del modulo, terminare in sicurezza il processo di Odoo.

4. Lanciare Odoo, nella maniera in cui si è soliti fare, aggiungendo alcuni parametri al comando d’avvio:

`./odoo-bin migrate_ddt_data --database <nome_database> [...]`

5. Una volta terminata l’esecuzione della procedura, verificare che tutti i documenti siano stati migrati con successo e nel modo atteso.

6. Verificata l’esattezza dei dati migrati, disinstallare il modulo *l10n_it_ddt*.

È possibile iniziare ad utilizzare *l10n_it_delivery_note*.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-italy/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_delivery_note%0Aversion:%2014.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
~~~~~~~

* Marco Calcagni
* Gianmarco Conte
* Link IT Europe Srl

Contributors
~~~~~~~~~~~~

* Riccardo Bellanova <r.bellanova@apuliasoftware.it>
* Matteo Bilotta <mbilotta@linkeurope.it>
* Giuseppe Borruso <gconte@dinamicheaziendali.it>
* Marco Calcagni <mcalcagni@dinamicheaziendali.it>
* Marco Colombo <marco.colombo@gmail.com>
* Gianmarco Conte <gconte@dinamicheaziendali.it>
* Letizia Freda <letizia.freda@netfarm.it>
* Andrea Piovesana <andrea.m.piovesana@gmail.com>

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.

.. |maintainer-As400it| image:: https://github.com/As400it.png?size=40px
:target: https://github.com/As400it
:alt: As400it
.. |maintainer-Byloth| image:: https://github.com/Byloth.png?size=40px
:target: https://github.com/Byloth
:alt: Byloth

Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-As400it| |maintainer-Byloth|

This module is part of the `OCA/l10n-italy <https://github.com/OCA/l10n-italy/tree/14.0/l10n_it_delivery_note>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
4 changes: 4 additions & 0 deletions l10n_it_delivery_note/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from . import cli
from . import mixins
from . import models
from . import wizard
46 changes: 46 additions & 0 deletions l10n_it_delivery_note/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Copyright 2014-2019 Dinamiche Aziendali srl
# (http://www.dinamicheaziendali.it/)
# @author: Marco Calcagni <mcalcagni@dinamicheaziendali.it>
# @author: Gianmarco Conte <gconte@dinamicheaziendali.it>
# Copyright (c) 2019, Link IT Europe Srl
# @author: Matteo Bilotta <mbilotta@linkeurope.it>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

# noinspection PyStatementEffect
{
"name": "ITA - Documento di trasporto",
"summary": "Crea, gestisce e fattura i DDT partendo dalle consegne",
"author": "Marco Calcagni, Gianmarco Conte, Link IT Europe Srl, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/l10n-italy",
"version": "14.0.1.0.0",
"category": "Localization/Italy",
"license": "AGPL-3",
"maintainers": ["As400it", "Byloth"],
"depends": [
"delivery",
"l10n_it_delivery_note_base",
"mail",
"sale_stock",
"stock_account",
"product",
],
"data": [
"security/ir.model.access.csv",
"security/ir_rule.xml",
"security/res_groups.xml",
"security/res_users.xml",
"report/report_delivery_note.xml",
"views/account_move.xml",
"views/assets.xml",
"views/res_config_settings.xml",
"views/res_partner.xml",
"views/sale_order.xml",
"views/stock_delivery_note.xml",
"views/stock_picking.xml",
"wizard/delivery_note_create.xml",
"wizard/delivery_note_select.xml",
"wizard/delivery_note_template.xml",
"wizard/sale_advance_payment_inv.xml",
],
}
3 changes: 3 additions & 0 deletions l10n_it_delivery_note/cli/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import core

from . import migrate_l10n_it_ddt
99 changes: 99 additions & 0 deletions l10n_it_delivery_note/cli/core.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
# Copyright (c) 2020, Link IT Europe Srl
# @author: Matteo Bilotta <mbilotta@linkeurope.it>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

import argparse
import functools
import logging

import odoo
from odoo import SUPERUSER_ID
from odoo.cli import Command

_logger = logging.getLogger(__name__)


def environment(funct=None, parser_args_method=None):
if not funct:
return functools.partial(environment, parser_args_method=parser_args_method)

@functools.wraps(funct)
def env_enabler(self, args):
command_args = unknown_args = args

if parser_args_method:
command_args, unknown_args = parser_args_method(self, args)

odoo.tools.config._parse_config(unknown_args)
odoo.netsvc.init_logger()

config = odoo.tools.config

with odoo.api.Environment.manage():
cr = odoo.registry(config["db_name"]).cursor()
env = odoo.api.Environment(cr, SUPERUSER_ID, {})

funct(self, command_args, env)

return env_enabler


class EasyCommand(Command):
args = None
env = None

is_debugging = None

def __init__(self):
self.is_debugging = False

def _commit(self):
self.env.cr.commit() # pylint: disable=invalid-commit

def _rollback(self):
self.env.cr.rollback()

def _close(self):
self.env.cr.close()

def initialize(self, args, env):
self.args = args
self.env = env

if args:
self.is_debugging = args.debug

def execute(self):
raise NotImplementedError("This method hasn't yet been implemented.")

# noinspection PyMethodMayBeStatic
def get_args_parser(self):
args_parser = argparse.ArgumentParser()
args_parser.add_argument("--debug", action="store_true", default=False)

return args_parser

def parse_args(self, args):
arg_parser = self.get_args_parser()

return arg_parser.parse_known_args(args)

@environment(parser_args_method=parse_args)
def run(self, args, env):
try:
self.initialize(args, env)
self.execute()

_logger.info("Execution completed successfully! Committing...")

self._commit()

except BaseException:
_logger.exception(
"Something went wrong during command execution. " "Rolling back..."
)

self._rollback()

finally:
self._close()
Loading