diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..75bb2042901930f807a588241612a29dd75e34d5
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+.*
+*.pyc
+!.gitignore
diff --git a/__manifest__.py b/__manifest__.py
index 9cfc54461a70039c8abd82dfb03779b3194d6fd2..cec98137566121f1620c32daa4cca3ebfd49ab1d 100644
--- a/__manifest__.py
+++ b/__manifest__.py
@@ -4,10 +4,11 @@
 	'license': 'AGPL-3',
 	'description': """
 	MODULE LINK SALE ORDER / PROJECT LE FILAMENT
-	
-	Etend l'application Projet :
-   - Créer un projet à partir d'un bon de commande
-   - Créer une tâche par ordre
+
+	This module depends upon *sale_service* and *lefilament_projets* modules.
+
+	- This module provides a new functionality to transform your sale order in projects and tasks (and to update those in case sale order is updated)
+	- Product template has been enhanced, invoicing policy section in order to set how each product should behave when transformed from sale order to project/task.
 	""",
 	'author': 'LE FILAMENT',
 	'category': 'LE FILAMENT',
@@ -23,6 +24,7 @@
 		'views/sale_views.xml',
 		'views/res_config_views.xml',
 		'views/project_views.xml',
+		'views/project_task_views.xml',
 	],
 	'qweb': [
     ],
diff --git a/i18n/fr.po b/i18n/fr.po
index daea595cd7a1cdac10eddfa20e7a240727663e94..386e5798162b25dcd97f3669c71dfcc0376272d4 100644
--- a/i18n/fr.po
+++ b/i18n/fr.po
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Odoo Server 10.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-16 10:38+0000\n"
-"PO-Revision-Date: 2018-01-16 10:38+0000\n"
+"POT-Creation-Date: 2018-01-16 18:19+0000\n"
+"PO-Revision-Date: 2018-01-16 18:19+0000\n"
 "Last-Translator: <>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -46,6 +46,11 @@ msgstr "Créé par"
 msgid "Created on"
 msgstr "Créé le"
 
+#. module: lefilament_link_sale_project
+#: model:ir.model.fields,field_description:lefilament_link_sale_project.field_project_task_currency_id
+msgid "Currency"
+msgstr "Devise"
+
 #. module: lefilament_link_sale_project
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_project_config_settings_lf_tarif_jour
 msgid "Day Price"
@@ -66,11 +71,6 @@ msgstr "Annuler"
 msgid "Display Name"
 msgstr "Nom affiché"
 
-#. module: lefilament_link_sale_project
-#: selection:sale.config.settings,lf_follow_task:0
-msgid "Do not track delivered quantity"
-msgstr "Ne pas mettre à jour les quantités livrées"
-
 #. module: lefilament_link_sale_project
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_lefilament_sale_views_wizard_project_id
 msgid "Existing project"
@@ -101,11 +101,6 @@ msgstr "Dernière mise à jour par"
 msgid "Last Updated on"
 msgstr "Dernière mise à jour le"
 
-#. module: lefilament_link_sale_project
-#: model:ir.model.fields,field_description:lefilament_link_sale_project.field_sale_config_settings_lf_follow_task
-msgid "Manage quantity delivered"
-msgstr "Gestion de la quantité livrée"
-
 #. module: lefilament_link_sale_project
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_lefilament_sale_views_wizard_related_project_name
 msgid "New Analytical Account"
@@ -140,7 +135,7 @@ msgstr "Etapes de projet"
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_product_product_project_task_type_id
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_product_template_project_task_type_id
 msgid "Project task stage"
-msgstr "Étape projet"
+msgstr "Etape projet"
 
 #. module: lefilament_link_sale_project
 #: model:ir.ui.view,arch_db:lefilament_link_sale_project.lefilament_project_view_form_create
@@ -168,11 +163,12 @@ msgid "Sales Order Line"
 msgstr "Ligne de bons de commande"
 
 #. module: lefilament_link_sale_project
-#: selection:sale.config.settings,lf_follow_task:0
-msgid "Standard operation for tracking delivered quantitiy based on time spent on project tasks"
-msgstr "Fonctionnement standard pour le suivi de la quantité livrée en fonction du temps passé sur les tâches du projet"
+#: model:ir.model.fields,field_description:lefilament_link_sale_project.field_project_task_price_subtotal
+msgid "Subtotal initial"
+msgstr "Sous-Total initial"
 
 #. module: lefilament_link_sale_project
+#: model:ir.model,name:lefilament_link_sale_project.model_project_task
 #: model:ir.ui.view,arch_db:lefilament_link_sale_project.lefilament_view_sales_config
 msgid "Task"
 msgstr "Tâche"
diff --git a/i18n/lefilament_link_sale_project.pot b/i18n/lefilament_link_sale_project.pot
index 6d7a9e8cd6b374e1ced6436357484c77ce24af6b..1911134fc6ff27c2b9f5fa263db9a62bb8e05fd2 100644
--- a/i18n/lefilament_link_sale_project.pot
+++ b/i18n/lefilament_link_sale_project.pot
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Odoo Server 10.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-01-16 10:51+0000\n"
-"PO-Revision-Date: 2018-01-16 10:51+0000\n"
+"POT-Creation-Date: 2018-01-16 18:19+0000\n"
+"PO-Revision-Date: 2018-01-16 18:19+0000\n"
 "Last-Translator: <>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -46,6 +46,11 @@ msgstr ""
 msgid "Created on"
 msgstr ""
 
+#. module: lefilament_link_sale_project
+#: model:ir.model.fields,field_description:lefilament_link_sale_project.field_project_task_currency_id
+msgid "Currency"
+msgstr ""
+
 #. module: lefilament_link_sale_project
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_project_config_settings_lf_tarif_jour
 msgid "Day Price"
@@ -66,11 +71,6 @@ msgstr ""
 msgid "Display Name"
 msgstr ""
 
-#. module: lefilament_link_sale_project
-#: selection:sale.config.settings,lf_follow_task:0
-msgid "Do not track delivered quantity"
-msgstr ""
-
 #. module: lefilament_link_sale_project
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_lefilament_sale_views_wizard_project_id
 msgid "Existing project"
@@ -101,11 +101,6 @@ msgstr ""
 msgid "Last Updated on"
 msgstr ""
 
-#. module: lefilament_link_sale_project
-#: model:ir.model.fields,field_description:lefilament_link_sale_project.field_sale_config_settings_lf_follow_task
-msgid "Manage quantity delivered"
-msgstr ""
-
 #. module: lefilament_link_sale_project
 #: model:ir.model.fields,field_description:lefilament_link_sale_project.field_lefilament_sale_views_wizard_related_project_name
 msgid "New Analytical Account"
@@ -168,11 +163,12 @@ msgid "Sales Order Line"
 msgstr ""
 
 #. module: lefilament_link_sale_project
-#: selection:sale.config.settings,lf_follow_task:0
-msgid "Standard operation for tracking delivered quantitiy based on time spent on project tasks"
+#: model:ir.model.fields,field_description:lefilament_link_sale_project.field_project_task_price_subtotal
+msgid "Subtotal initial"
 msgstr ""
 
 #. module: lefilament_link_sale_project
+#: model:ir.model,name:lefilament_link_sale_project.model_project_task
 #: model:ir.ui.view,arch_db:lefilament_link_sale_project.lefilament_view_sales_config
 msgid "Task"
 msgstr ""
diff --git a/models/__init__.py b/models/__init__.py
index 98cee0573784ef6a92d64405c470f98291a881fe..38ce05d0c8b42297c5b12146334e821de00126fb 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -6,4 +6,5 @@ import sale_config_settings
 import res_config
 import project_task_type
 import project
+import project_task
 import sale_order
\ No newline at end of file
diff --git a/models/project_task.py b/models/project_task.py
new file mode 100644
index 0000000000000000000000000000000000000000..565ae6c116a95b27823f43ad4e379bc798a69ae6
--- /dev/null
+++ b/models/project_task.py
@@ -0,0 +1,13 @@
+# -*- coding: utf-8 -*-
+# © 2017 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import models, fields
+from odoo.tools import float_is_zero, float_compare, DEFAULT_SERVER_DATETIME_FORMAT
+import odoo.addons.decimal_precision as dp
+
+class LeFilamentProjectTask(models.Model):
+    _inherit = 'project.task'
+
+    price_subtotal = fields.Monetary(string='Subtotal initial', readonly=True, store='True')
+    currency_id = fields.Many2one(related='sale_line_id.currency_id', store=True, string='Currency', readonly=True)
\ No newline at end of file
diff --git a/models/sale_config_settings.py b/models/sale_config_settings.py
index 4328e0f0091b0a48b29e1ecdb07a3076a450f5bd..b1c4d1798ecb27f597738f66295712889eba227f 100644
--- a/models/sale_config_settings.py
+++ b/models/sale_config_settings.py
@@ -15,17 +15,8 @@ class LeFilamentSaleConfiguration(models.TransientModel):
 
     project_task_type_id = fields.Many2one(
         'project.task.type', 'Initial step')
-    lf_follow_task = fields.Selection([
-        (0, "Standard operation for tracking delivered quantitiy based on time spent on project tasks"),
-        (1, "Do not track delivered quantity")
-        ], "Manage quantity delivered")
 
     @api.multi
     def set_project_task_type(self):
         return self.env['ir.values'].sudo().set_default(
-            'sale.config.settings', 'project_task_type_id', self.project_task_type_id.id)
-
-    @api.multi
-    def set_lf_follow_task(self):
-        return self.env['ir.values'].sudo().set_default(
-            'sale.config.settings', 'lf_follow_task', self.lf_follow_task)
\ No newline at end of file
+            'sale.config.settings', 'project_task_type_id', self.project_task_type_id.id)
\ No newline at end of file
diff --git a/models/sale_order.py b/models/sale_order.py
index ede53cd9fc99313f087b9a9bb09e7abf2487e7fe..4c509fe81cc08354ec05d576708ecab5d4c0e2b6 100644
--- a/models/sale_order.py
+++ b/models/sale_order.py
@@ -29,6 +29,15 @@ class SaleOrder(models.Model):
                         project_total_budget = project_total_budget + line.price_subtotal
                         planned_hours = (line.price_subtotal / lf_tarif_jour) * lf_heures_jour
                         task_id_refer.planned_hours = planned_hours
+                    else:
+                        if line.price_subtotal != task_id_refer.price_subtotal:
+                            project = line.product_id.project_id
+                            project_id_maint = project.id
+                            project_update = self.env['project.project'].browse(project_id_maint)
+                            project_update.lf_total_budget = ( project_update.lf_total_budget - task_id_refer.price_subtotal ) + line.price_subtotal
+                            planned_hours = (line.price_subtotal / lf_tarif_jour) * lf_heures_jour
+                            task_id_refer.planned_hours = planned_hours
+                            task_id_refer.price_subtotal = line.price_subtotal
                 else:
                     if line.product_id.track_service == 'project':
                         if line.product_id.project_id:
@@ -108,8 +117,8 @@ class LeFilamentSaleOrderLine(models.Model):
             lines[line] += qty
 
         for line, qty in lines.items():
-            if not self.env['ir.values'].get_default('sale.config.settings', 'lf_follow_task'):
-                line.qty_delivered = qty
-            else:
+            if line.product_id.track_service == 'project':
                 line.qty_delivered = 0
+            else:
+                line.qty_delivered = qty
         return True    
diff --git a/views/project_task_views.xml b/views/project_task_views.xml
new file mode 100644
index 0000000000000000000000000000000000000000..73c5518387167fbf296dce201e25e9f0bd51dc7f
--- /dev/null
+++ b/views/project_task_views.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+        <record id="lefilament_view_sale_service_inherit_form2" model="ir.ui.view">
+            <field name="name">lefilament.sale.service.form.view.inherit</field>
+            <field name="model">project.task</field>
+            <field name="groups_id" eval="[(4, ref('base.group_user'))]"/>
+            <field name="inherit_id" ref="sale_timesheet.view_sale_service_inherit_form2"/>
+            <field name="arch" type="xml">
+                <field name="sale_line_id" position="after">
+                    <field name="price_subtotal"/>
+                </field>
+            </field>
+        </record>
+</odoo>
diff --git a/views/sale_config_settings_views.xml b/views/sale_config_settings_views.xml
index 64194c01fbf31b209ad77852a86b3f747fe1dcd4..f12e47ab6714ac024196ef1a82c6720d671656f8 100644
--- a/views/sale_config_settings_views.xml
+++ b/views/sale_config_settings_views.xml
@@ -8,7 +8,6 @@
                 <div id="main" position="inside">
                     <group string="Task">
                         <field name="project_task_type_id" class="oe_inline"/>
-                        <field name="lf_follow_task" widget="radio"/>
                     </group>
                 </div>
             </field>
diff --git a/wizard/sale_views_wizard.py b/wizard/sale_views_wizard.py
index cde1147bf11106321e529a3333eb837c9cebef56..b52f9e02178fde63829e5a191ce392314dc743de 100644
--- a/wizard/sale_views_wizard.py
+++ b/wizard/sale_views_wizard.py
@@ -99,8 +99,10 @@ class LeFilamentSaleWizard(models.TransientModel):
                     'description': description_line + '</p><br/>',
                     'project_id': project_id,
                     'company_id': sale_id.company_id.id,
-                    'stage_id': stage.id,
-                    'sale_line_id': line.id
+                    'stage_id': stage.id or '',
+                    'sale_line_id': line.id,
+                    'price_subtotal': line.price_subtotal,
+                    'currency_id': line.currency_id.id
                     })
         sale_id.tasks_ids = self.env['project.task'].search([('sale_line_id', 'in', sale_id.order_line.ids)])
         sale_id.tasks_count = len(sale_id.tasks_ids)