Sales.Order: implementation of delivery_date_warning (desired_delivery_date) & vat check warning
							parent
							
								
									4e0e3cb80d
								
							
						
					
					
						commit
						76971bd57b
					
				|  | @ -54,6 +54,7 @@ | |||
|         'data/product_data.xml', | ||||
|         'data/tz_tax_data.xml', | ||||
|         'data/cron_job.xml', | ||||
|         'views/dp_template.xml', | ||||
|         'views/dp_custom_views.xml', | ||||
|         'views/res_line_views.xml', | ||||
|         'views/res_partner_views.xml', | ||||
|  |  | |||
|  | @ -27,6 +27,8 @@ from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT | |||
| from odoo.tools import float_compare | ||||
| from odoo.tools import float_is_zero | ||||
| 
 | ||||
| from dateutil.relativedelta import relativedelta | ||||
| import dateutil.parser | ||||
| 
 | ||||
| class SaleOrder(models.Model): | ||||
|     _name = 'sale.order' | ||||
|  | @ -71,6 +73,10 @@ class SaleOrder(models.Model): | |||
|     order_type = fields.Selection(ORDER_TYPES, string='Auftragsart', default='M') | ||||
|     clerk_id = fields.Many2one('res.users', string='Sachbearbeiter', domain=[('clerk_name', '!=', '')]) | ||||
|     desired_delivery_date = fields.Date(string='Wunschlieferdatum') | ||||
|     delivery_date_warning = fields.Boolean(compute='_compute_dlv_date_warn', store=False) | ||||
|     warn_vat_date = fields.Boolean(compute='_get_vat_warn_date', store=False, default=False) | ||||
|     date_vat_check = fields.Date(related='partner_invoice_id.date_vat_check') | ||||
|     vat = fields.Char(related='partner_invoice_id.vat') | ||||
| 
 | ||||
| #    pg9_call = fields.Char(string='PG9-Auftrag', compute='_pg9_call', store=False) | ||||
|     pg9_call_D = fields.Char(string='PG9-Auftrag_D', compute='_pg9_call', store=False) | ||||
|  | @ -79,6 +85,30 @@ class SaleOrder(models.Model): | |||
|     pg9_complete = fields.Boolean(string='PG9-Komplett', compute='_compute_positions', store=False, default=False) | ||||
| #    partner_flash = fields.Char(store=False) | ||||
| 
 | ||||
|     @api.multi | ||||
|     def _get_vat_warn_date(self): | ||||
|         for record in self: | ||||
|             if record.partner_invoice_id.date_vat_check: | ||||
|                 date_today = fields.Date.from_string(fields.Date.context_today(self)) | ||||
|                 warn_date = date_today - relativedelta(months=+3) | ||||
|                 try: | ||||
|                     check_date = dateutil.parser.parse(record.date_vat_check).date() | ||||
|                 except: | ||||
|                     check_date = date_today - relativedelta(months=+36) | ||||
|                 if check_date < warn_date: | ||||
|                     record.warn_vat_date = True | ||||
|                 else: | ||||
|                     record.warn_vat_date = False | ||||
|             else: | ||||
|                 record.warn_vat_date = True | ||||
| 
 | ||||
|     @api.multi | ||||
|     def _compute_dlv_date_warn(self): | ||||
|         for record in self: | ||||
|             record.delivery_date_warning = False | ||||
|             if record.desired_delivery_date > record.delivery_date: | ||||
|                 record.delivery_date_warning = True | ||||
| 
 | ||||
|     @api.multi | ||||
|     def _reset_sequence(self): | ||||
|         for rec in self: | ||||
|  |  | |||
|  | @ -0,0 +1,17 @@ | |||
| .oe_highlight_blink { | ||||
|     .animation-blink(blink, rgb(0,0,255) + 200, rgb(0,0,255), ); | ||||
|     &.urgent { | ||||
|         .animation-blink(urgent, rgb(0,255,0), rgb(0,255,0) + 200); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| .animation-blink(@name_, @color1, @color2, @color3: red, @time: .5s) { | ||||
| 
 | ||||
|     @name: ~"animation-blink-@{name_}"; | ||||
|     animation: @name @time ease-in-out infinite alternate; | ||||
| 
 | ||||
|     @keyframes @name { | ||||
|         0% {color: @color1 ; background-color: transparent} | ||||
|         to {color: @color2 ; background-color: @color3} | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,8 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <odoo> | ||||
|     <template id="assets_backend" name="dp assets" inherit_id="web.assets_backend"> | ||||
|         <xpath expr="." position="inside"> | ||||
|             <link rel="stylesheet" type="text/less" href="/dp_custom/static/src/less/special_effects.less"/> | ||||
|         </xpath> | ||||
|     </template> | ||||
| </odoo> | ||||
|  | @ -18,10 +18,16 @@ | |||
|             </xpath> | ||||
|             <field name="partner_id" position="before"> | ||||
|                 <field name="partner_flash" string="Flash: " class="oe_highlight" attrs="{'invisible':[('partner_flash','=',False)]}"/> | ||||
|                 <field name="warn_vat_date" attrs="{'invisible':True}"/> | ||||
|                 <field name="vat" attrs="{'invisible':True}"/> | ||||
|                 <field name="date_vat_check" attrs="{'readonly':True,'invisible':['|','|',('warn_vat_date','=',False),('vat','=',False),('vat','=','')]}" | ||||
|                        style="padding-left:30px;padding-right:30px;background-color:red;"/> | ||||
|                 <div class="oe_clear"/> | ||||
|             </field> | ||||
|             <field name="delivery_date" position="before"> | ||||
|                 <field name="desired_delivery_date" position="before" class="oe_highlight" attrs="{'readonly':True, 'invisible':[('desired_delivery_date','=',False)]}"/> | ||||
|                 <field name="delivery_date_warning" position="before" attrs="{'readonly':True, 'invisible':True}"/> | ||||
|                 <field name="desired_delivery_date" position="before" class="oe_highlight_blink urgent" attrs="{'readonly':True, 'invisible':['|',('desired_delivery_date','=',False),('delivery_date_warning','=',False)]}"/> | ||||
|                 <field name="desired_delivery_date" position="before" attrs="{'readonly':True, 'invisible':['|',('desired_delivery_date','=',False),('delivery_date_warning','!=',False)]}"/> | ||||
|             </field> | ||||
|             <field name="client_order_ref" position="replace"/> | ||||
|             <field name="origin" position="replace"/> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue