Merge branch 'develop' into website
						commit
						ff936cd97b
					
				|  | @ -510,8 +510,8 @@ class SaleOrderLine(models.Model): | ||||||
|                 self.env['stock.production.lot'].browse([lot_id.id]).write({ |                 self.env['stock.production.lot'].browse([lot_id.id]).write({ | ||||||
|                     'intrastat_id': vals.get('intrastat_id') |                     'intrastat_id': vals.get('intrastat_id') | ||||||
|                 }) |                 }) | ||||||
|             elif vals.get('intrastat_id', False) and not lot_id: |             # elif vals.get('intrastat_id', False) and not lot_id: | ||||||
|                 raise UserError(_('Der Intrastrat Code kann nur gesetzt werden wenn ein Lot angegeben wurde.')) |             #     raise UserError(_('Der Intrastrat Code kann nur gesetzt werden wenn ein Lot angegeben wurde.')) | ||||||
| 
 | 
 | ||||||
|             not_allowed_designbox_keys = ['product_uom_qty', 'product_uom', 'price_unit'] |             not_allowed_designbox_keys = ['product_uom_qty', 'product_uom', 'price_unit'] | ||||||
|             if not self.check_allowed_vals_from_designbox(not_allowed_designbox_keys, vals): |             if not self.check_allowed_vals_from_designbox(not_allowed_designbox_keys, vals): | ||||||
|  |  | ||||||
|  | @ -73,6 +73,7 @@ | ||||||
|                 <field name="zip"/> |                 <field name="zip"/> | ||||||
|                 <field name="city"/> |                 <field name="city"/> | ||||||
|                 <field name="ref"/> |                 <field name="ref"/> | ||||||
|  |                 <field name="portal_id" string="PID"/> | ||||||
|             </field> |             </field> | ||||||
|             <field name="email" position="replace"> |             <field name="email" position="replace"> | ||||||
|                 <field name="email" invisible="1"/> |                 <field name="email" invisible="1"/> | ||||||
|  |  | ||||||
|  | @ -43,6 +43,6 @@ | ||||||
|         'delivery.carrier.csv', |         'delivery.carrier.csv', | ||||||
|         'res.users.role.csv', |         'res.users.role.csv', | ||||||
|     ], |     ], | ||||||
|     'installable': True, |     'installable': False, | ||||||
|     'auto_install': False, |     'auto_install': False, | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -20,3 +20,4 @@ | ||||||
| ############################################################################## | ############################################################################## | ||||||
| 
 | 
 | ||||||
| from . import models | from . import models | ||||||
|  | from . import wizards | ||||||
|  |  | ||||||
|  | @ -35,6 +35,7 @@ | ||||||
|     'data': [ |     'data': [ | ||||||
|         'views/account_views.xml', |         'views/account_views.xml', | ||||||
|         'views/res_company_views.xml', |         'views/res_company_views.xml', | ||||||
|  |         'wizards/wizard_tz_ic.xml', | ||||||
|         'security/ir.model.access.csv', |         'security/ir.model.access.csv', | ||||||
|     ], |     ], | ||||||
|     'installable': True, |     'installable': True, | ||||||
|  |  | ||||||
|  | @ -36,6 +36,15 @@ class AccountInvoice(models.Model): | ||||||
|     charge_further = fields.Boolean(string='Weiterverrechnen', compute='_compute_charge_further', store=True, |     charge_further = fields.Boolean(string='Weiterverrechnen', compute='_compute_charge_further', store=True, | ||||||
|                                     help='Ist gesetzt, wenn das WV-Flag von mindestens einer Zeile gesetzt ist') |                                     help='Ist gesetzt, wenn das WV-Flag von mindestens einer Zeile gesetzt ist') | ||||||
| 
 | 
 | ||||||
|  |     pg_ic_num = fields.Char('PG_IC_Nummer') | ||||||
|  |     pg_ic_flag = fields.Boolean(string='IC', help='Rechnung nach PG exportiert') | ||||||
|  |     pg_admin = fields.Boolean(compute='_is_pg_admin', default=False, store=False) | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def _is_pg_admin(self): | ||||||
|  |         for record in self: | ||||||
|  |             record.pg_admin = self.env.user.has_group('base.group_system') | ||||||
|  | 
 | ||||||
|     @api.multi |     @api.multi | ||||||
|     def _compute_inter_company_supplier_isset(self): |     def _compute_inter_company_supplier_isset(self): | ||||||
|         for record in self: |         for record in self: | ||||||
|  |  | ||||||
|  | @ -6,11 +6,12 @@ | ||||||
|         <field name="model">account.invoice</field> |         <field name="model">account.invoice</field> | ||||||
|         <field name="inherit_id" ref="account.invoice_form"/> |         <field name="inherit_id" ref="account.invoice_form"/> | ||||||
|         <field name="arch" type="xml"> |         <field name="arch" type="xml"> | ||||||
|             <xpath expr="//button[@name='action_invoice_cancel']" position="after"> | <!--            <xpath expr="//button[@name='action_invoice_cancel']" position="after"> | ||||||
|                 <button name="reimburse_invoice" type="object" |                 <button name="reimburse_invoice" type="object" | ||||||
|                         attrs="{'invisible': ['|', ('state', '=', 'draft'), '|', ('reimburse_invoice_id', '!=', False), '|', ('type', '!=', 'out_invoice'), ('charge_further', '=', False)]}" |                         attrs="{'invisible': ['|', ('state', '=', 'draft'), '|', ('reimburse_invoice_id', '!=', False), '|', ('type', '!=', 'out_invoice'), ('charge_further', '=', False)]}" | ||||||
|                         string="Weiterverrechnen" groups="account.group_account_invoice"/> |                         string="Weiterverrechnen" groups="account.group_account_invoice"/> | ||||||
|             </xpath> |             </xpath> | ||||||
|  | --> | ||||||
|             <field name="payment_term_id" position="after"> |             <field name="payment_term_id" position="after"> | ||||||
|                 <label for="charge_further"/> |                 <label for="charge_further"/> | ||||||
|                 <div class="o_row" name="charge_further"> |                 <div class="o_row" name="charge_further"> | ||||||
|  | @ -18,7 +19,13 @@ | ||||||
|                     <button class="btn btn-primary" type="object" name="action_set_all_wv_flag" string="Setzen"/> |                     <button class="btn btn-primary" type="object" name="action_set_all_wv_flag" string="Setzen"/> | ||||||
|                     <button class="btn btn-primary" type="object" name="action_unset_all_wv_flag" string="Löschen"/> |                     <button class="btn btn-primary" type="object" name="action_unset_all_wv_flag" string="Löschen"/> | ||||||
|                 </div> |                 </div> | ||||||
|                 <field name="reimburse_invoice_id"/> |                 <field name="reimburse_invoice_id" attrs="{'invisible':True}"/> | ||||||
|  |                 <field name="pg_admin" attrs="{'invisible':True}"/> | ||||||
|  |                 <field name="pg_ic_num" attrs="{'readonly': [('pg_admin','=',False)]}"/> | ||||||
|  |                 <field name="pg_ic_flag" attrs="{'readonly': [('pg_admin','=',False)]}"/> | ||||||
|  | <!-- | ||||||
|  |                 <field name="pg_ic_flag" attrs="{'readonly':[('state','not in',('draft','sent'))]}"/> | ||||||
|  | --> | ||||||
|             </field> |             </field> | ||||||
| 
 | 
 | ||||||
|             <xpath expr="//field[@name='invoice_line_ids']/tree//field[@name='account_id']" position="before"> |             <xpath expr="//field[@name='invoice_line_ids']/tree//field[@name='account_id']" position="before"> | ||||||
|  | @ -42,6 +49,30 @@ | ||||||
|         </field> |         </field> | ||||||
|     </record> |     </record> | ||||||
| 
 | 
 | ||||||
|  |     <record id="view_account_invoice_filter_tz" model="ir.ui.view"> | ||||||
|  |         <field name="name">account.invoice.select</field> | ||||||
|  |         <field name="model">account.invoice</field> | ||||||
|  |         <field name="inherit_id" ref="account.view_account_invoice_filter"/> | ||||||
|  |         <field name="arch" type="xml"> | ||||||
|  |             <field name="journal_id" position="after"> | ||||||
|  |                 <field name="pg_ic_num" string="IC-Nummer"/> | ||||||
|  |             </field> | ||||||
|  |         </field> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|  |     <record id="account_invoice_tree_view_tz" model="ir.ui.view"> | ||||||
|  |         <field name="name">account_invoice_tree_view_tz</field> | ||||||
|  |         <field name="model">account.invoice</field> | ||||||
|  |         <field name="inherit_id" ref="account.invoice_tree"/> | ||||||
|  |         <field name="arch" type="xml"> | ||||||
|  |             <field name="number" position="after"> | ||||||
|  |                 <field name="pg_ic_num" string="IC-Num"/> | ||||||
|  |                 <field name="pg_ic_flag" string="IC"/> | ||||||
|  |             </field> | ||||||
|  |         </field> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|  | <!-- | ||||||
|     <record id="action_reimburse_invoice" model="ir.actions.server"> |     <record id="action_reimburse_invoice" model="ir.actions.server"> | ||||||
|         <field name="name">Intern Weiterverrechnen</field> |         <field name="name">Intern Weiterverrechnen</field> | ||||||
|         <field name="model_id" ref="account.model_account_invoice"/> |         <field name="model_id" ref="account.model_account_invoice"/> | ||||||
|  | @ -50,5 +81,6 @@ | ||||||
|         <field name="state">code</field> |         <field name="state">code</field> | ||||||
|         <field name="code">records.reimburse_invoice()</field> |         <field name="code">records.reimburse_invoice()</field> | ||||||
|     </record> |     </record> | ||||||
|  | --> | ||||||
| 
 | 
 | ||||||
| </odoo> | </odoo> | ||||||
|  |  | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | from . import wizard_tz_ic | ||||||
|  | @ -0,0 +1,42 @@ | ||||||
|  | # Copyright 2018-Today datenpol gmbh (<http://www.datenpol.at>) | ||||||
|  | # License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). | ||||||
|  | 
 | ||||||
|  | from odoo import api, fields, models, _ | ||||||
|  | from odoo.exceptions import ValidationError | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class WizardTzIc(models.TransientModel): | ||||||
|  |     _name = 'wizard.tz.ic' | ||||||
|  |     _description = 'Generiere IC-Rechnung' | ||||||
|  | 
 | ||||||
|  |     new_pg_ic_num = fields.Char() | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def button_tz_ic(self): | ||||||
|  |         if not self.new_pg_ic_num: | ||||||
|  |             raise ValidationError(_("Keine IC-Nummer angegeben")) | ||||||
|  |         inv = self.env['account.invoice'] | ||||||
|  |         ck_ivc = inv.search([('pg_ic_num', '=', self.new_pg_ic_num), ('pg_ic_flag', '=', True)], order='id ASC', | ||||||
|  |                              limit=1) | ||||||
|  |         if ck_ivc: | ||||||
|  |             info = 'IC-Nummer bereits bei folgenden Rechnungen vergegeben!' | ||||||
|  |             for ivc in ck_ivc: | ||||||
|  |                 info += '\n %s' % ivc.number | ||||||
|  |             raise ValidationError(_(info)) | ||||||
|  |         for wizard in self: | ||||||
|  |             error_at_ivc = False | ||||||
|  |             info = 'Bitte prüfen Sie den Status folgender Rechnungen:' | ||||||
|  |             active_ids = self.env.context.get('active_ids', []) | ||||||
|  |             ivcs = self.env['account.invoice'].browse(active_ids) | ||||||
|  |             if ivcs.exists(): | ||||||
|  |                 for ivc in ivcs: | ||||||
|  |                     if not ivc.charge_further or ivc.pg_ic_flag or (ivc.state in ['draft','cancel']): | ||||||
|  |                         info += '\n %s, WV=%s / IC_Flag=%s / Status=%s' % (ivc.number,ivc.charge_further,ivc.pg_ic_flag,ivc.state) | ||||||
|  |                         error_at_ivc = True | ||||||
|  |                     else: | ||||||
|  |                         ivc.pg_ic_num = self.new_pg_ic_num | ||||||
|  |             if error_at_ivc: | ||||||
|  |                 raise ValidationError(_(info)) | ||||||
|  |             action = self.env.ref('account.action_invoice_tree').read()[0] | ||||||
|  |             action['domain'] = [('id', 'in', active_ids)] | ||||||
|  |             return action | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <!-- Copyright 2018-Today datenpol gmbh(<http://www.datenpol.at>) | ||||||
|  |      License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). --> | ||||||
|  | 
 | ||||||
|  | <odoo> | ||||||
|  | 
 | ||||||
|  |     <record id="view_wizard_tz_ic_form" model="ir.ui.view"> | ||||||
|  |         <field name="name">view_wizard_tz_ic_form</field> | ||||||
|  |         <field name="model">wizard.tz.ic</field> | ||||||
|  |         <field name="arch" type="xml"> | ||||||
|  |             <form string="Wizard Import TZBox"> | ||||||
|  |                 <group> | ||||||
|  |                     <p>Wollen Sie für diese Rechnungen eine IC-Rechnung erstellen?</p> | ||||||
|  |                 </group> | ||||||
|  |                 <group> | ||||||
|  |                     <field name="new_pg_ic_num" string="IC-Nummer"/> | ||||||
|  |                 </group> | ||||||
|  |                 <footer> | ||||||
|  |                     <button name="button_tz_ic" | ||||||
|  |                             string="IC-Rechnung vorbereiten" | ||||||
|  |                             class="btn-primary" | ||||||
|  |                             type="object"/> | ||||||
|  |                     <button string="Abbrechen" | ||||||
|  |                             class="btn-default" | ||||||
|  |                             special="cancel"/> | ||||||
|  |                 </footer> | ||||||
|  |             </form> | ||||||
|  |         </field> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|  |     <act_window id="action_wizard_tz_ic" | ||||||
|  |         name="IC-Rechnung vorbereiten" | ||||||
|  |         src_model="account.invoice" | ||||||
|  |         res_model="wizard.tz.ic" | ||||||
|  |         view_type="form" | ||||||
|  |         view_mode="form" | ||||||
|  |         key2="client_action_multi" | ||||||
|  |         target="new"/> | ||||||
|  | 
 | ||||||
|  | </odoo> | ||||||
|  | @ -55,11 +55,11 @@ | ||||||
|                     <span class="col-xs-2" t-field="o.positions"/> |                     <span class="col-xs-2" t-field="o.positions"/> | ||||||
|                 </div> |                 </div> | ||||||
|                 <div class="row height-20"> |                 <div class="row height-20"> | ||||||
|                     <div class="col-xs-3" style="padding-right: 0px;"> |                     <div class="col-xs-3" style="padding: 0px;"> | ||||||
|                         <strong> |                         <strong> | ||||||
|                             <span style="padding-right: 5px">Rechnungsdatum:</span> |                             <span style="padding-right: 2px">Rechnungsdatum:</span> | ||||||
|                         </strong> |                         </strong> | ||||||
|                         <span style="padding: 0px" t-field="o.date_invoice"/> |                         <span style="padding: 0px; word-break: normal;" t-field="o.date_invoice"/> | ||||||
|                     </div> |                     </div> | ||||||
|                     <strong> |                     <strong> | ||||||
|                         <span class="col-xs-2">Email:</span> |                         <span class="col-xs-2">Email:</span> | ||||||
|  |  | ||||||
|  | @ -82,6 +82,12 @@ | ||||||
|                         <span class="col-xs-2">Email:</span> |                         <span class="col-xs-2">Email:</span> | ||||||
|                     </strong> |                     </strong> | ||||||
|                     <span class="col-xs-3" t-field="res_company.email"/> |                     <span class="col-xs-3" t-field="res_company.email"/> | ||||||
|  |                     <p t-if="o.origin"> | ||||||
|  |                         <strong> | ||||||
|  |                             <span class="col-xs-2">Ref:</span> | ||||||
|  |                         </strong> | ||||||
|  |                         <span class="col-xs-2" t-field="o.origin"/> | ||||||
|  |                     </p> | ||||||
|                 </div> |                 </div> | ||||||
|                 <div class="row"> |                 <div class="row"> | ||||||
|                     <div class="col-xs-3" style="padding-right: 4px"> |                     <div class="col-xs-3" style="padding-right: 4px"> | ||||||
|  |  | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | Odoo Proprietary License v1.0 | ||||||
|  | 
 | ||||||
|  | This software and associated files (the "Software") may only be used (executed, | ||||||
|  | modified, executed after modifications) if you have purchased a valid license | ||||||
|  | from the authors, typically via Odoo Apps, or if you have received a written | ||||||
|  | agreement from the authors of the Software (see the COPYRIGHT file). | ||||||
|  | 
 | ||||||
|  | You may develop Odoo modules that use the Software as a library (typically by | ||||||
|  | depending on it, importing it and using its resources), but without copying any | ||||||
|  | source code or material from the Software. You may distribute those modules | ||||||
|  | under the license of your choice, provided that this license is compatible with | ||||||
|  | the terms of the Odoo Proprietary License (For example: LGPL, MIT, | ||||||
|  | or proprietary licenses similar to this one). | ||||||
|  | 
 | ||||||
|  | It is forbidden to publish, distribute, sublicense, or sell copies of the Software | ||||||
|  | or modified copies of the Software. | ||||||
|  | 
 | ||||||
|  | The above copyright notice and this permission notice must be included | ||||||
|  | in all copies or substantial portions of the Software. | ||||||
|  | 
 | ||||||
|  | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||||||
|  | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | ||||||
|  | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||||||
|  | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||||
|  | DEALINGS IN THE SOFTWARE. | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | 
 | ||||||
|  | from . import models | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | # Copyright 2018-Today TZAustria | ||||||
|  | # License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). | ||||||
|  | 
 | ||||||
|  | # noinspection PyStatementEffect | ||||||
|  | { | ||||||
|  |     'name': 'TZ Carrier Allow Tracking Modification', | ||||||
|  |     'summary' : 'allows modification of tracking number even after confirmation of delivery', | ||||||
|  |     'version': '11.0.1.0.0', | ||||||
|  |     'license': 'OPL-1', | ||||||
|  |     'author': 'TZAustria', | ||||||
|  |     'support': 'andreas.osim@glaser-co.at', | ||||||
|  |     'website': 'https://www.tzaustria.at', | ||||||
|  |     'depends': ['sale_stock',], | ||||||
|  |     'data': ['views/delivery_carrier_track.xml',], | ||||||
|  |     'installable': True, | ||||||
|  |     'auto_install': False, | ||||||
|  | } | ||||||
|  | @ -0,0 +1,74 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Part of Odoo. See LICENSE file for full copyright and licensing details. | ||||||
|  | 
 | ||||||
|  | import logging | ||||||
|  | 
 | ||||||
|  | from odoo import api, fields, models, registry, SUPERUSER_ID, _ | ||||||
|  | from odoo.exceptions import UserError | ||||||
|  | 
 | ||||||
|  | _logger = logging.getLogger(__name__) | ||||||
|  | 
 | ||||||
|  | class TZCarrier(models.Model): | ||||||
|  |     _inherit = 'delivery.carrier' | ||||||
|  | 
 | ||||||
|  |     delivery_type = fields.Selection(selection_add=[('TZCarrier', 'TZCarrier')]) | ||||||
|  | 
 | ||||||
|  |     # ------------------------------------------------ # | ||||||
|  |     # Fixed price shipping, aka a very simple provider # | ||||||
|  |     # ------------------------------------------------ # | ||||||
|  | 
 | ||||||
|  |     # fixed_price = fields.Float(compute='_compute_fixed_price', inverse='_set_product_fixed_price', store=True, | ||||||
|  |     #                            string='Fixed Price') | ||||||
|  |     # | ||||||
|  |     # | ||||||
|  |     # @api.depends('product_id.list_price', 'product_id.product_tmpl_id.list_price') | ||||||
|  |     # def _compute_fixed_price(self): | ||||||
|  |     #     for carrier in self: | ||||||
|  |     #         carrier.fixed_price = carrier.product_id.list_price | ||||||
|  |     # | ||||||
|  |     # | ||||||
|  |     # def _set_product_fixed_price(self): | ||||||
|  |     #     for carrier in self: | ||||||
|  |     #         carrier.product_id.list_price = carrier.fixed_price | ||||||
|  |     # | ||||||
|  |     # | ||||||
|  |     def TZCarrier_rate_shipment(self, order): | ||||||
|  |         price = 0 | ||||||
|  |         # price = self.fixed_price | ||||||
|  |         # if self.company_id.currency_id.id != order.currency_id.id: | ||||||
|  |         #     price = self.env['res.currency']._compute(self.company_id.currency_id, order.currency_id, price) | ||||||
|  |         # return {'success': True, | ||||||
|  |         #         'price': price, | ||||||
|  |         #         'error_message': False, | ||||||
|  |         #         'warning_message': False} | ||||||
|  |         return False | ||||||
|  | 
 | ||||||
|  |     def TZCarrier_send_shipping(self, pickings): | ||||||
|  |         res = [] | ||||||
|  |         # for p in pickings: | ||||||
|  |         #     res = res + [{'exact_price': p.carrier_id.fixed_price, | ||||||
|  |         #                   'tracking_number': False}] | ||||||
|  |         return res | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     def TZCarrier_get_tracking_link(self, picking): | ||||||
|  | 
 | ||||||
|  |         lSearch = picking.carrier_tracking_ref | ||||||
|  | 
 | ||||||
|  |         if self.name == 'Weiss': | ||||||
|  |             if picking.carrier_tracking_ref == '?': | ||||||
|  |                 lSearch = picking.origin | ||||||
|  |             TZLink = r'http://isis.gw-world.com/siprod/sixWeb.pStartApp?i_vcAction=SearchConLight&i_vcSearchKey=%s&i_vcAdd=Glaser&i_vclangid=DE' % lSearch | ||||||
|  |         elif self.name == 'DHL': | ||||||
|  |             TZLink = r'https://www.dhl.at/en/express/tracking.html?AWB=%s&brand=DHL' % lSearch | ||||||
|  |         elif self.name == 'Dachser': | ||||||
|  |             TZLink = r'http://partner.dachser.com/shp2/?wicket:interface=:5:pnlHead:frmHead:btnSearch::IActivePageBehaviorListener:0:-1&wicket:ignoreIfNotActive=true&random=0.35369399622175934&tfiSearch=%s' % lSearch | ||||||
|  |         elif self.name == 'DPD': | ||||||
|  |             TZLink = r'https://tracking.dpd.de/status/de_AT/parcel/%s' % lSearch | ||||||
|  |         else: | ||||||
|  |             TZLink = False | ||||||
|  |         return TZLink | ||||||
|  | 
 | ||||||
|  |     def TZCarrier_cancel_shipment(self, pickings): | ||||||
|  |     #    return True | ||||||
|  |          raise UserError('Derzeit nicht möglich!') | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | 
 | ||||||
|  | from . import delivery_carrier_pack | ||||||
|  | from . import TZCarrier | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | # Copyright 2018-Today Tischlerzentrum gmbh (<http://www.tzaustria.at>) | ||||||
|  | # License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). | ||||||
|  | 
 | ||||||
|  | from odoo import api, fields, models | ||||||
|  | 
 | ||||||
|  | class DeliveryCarrierTrack(models.Model): | ||||||
|  |     _inherit = 'stock.picking' | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def write(self,vals): | ||||||
|  |         #Check whether the carrier_tracking_ref field has being modified | ||||||
|  |         if 'carrier_tracking_ref' in vals: | ||||||
|  |             self.message_post('Tracking_number geändert auf: %s' % vals.get('carrier_tracking_ref')) | ||||||
|  | 
 | ||||||
|  |         return super(DeliveryCarrierTrack, self).write(vals) | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 17 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 361 KiB | 
|  | @ -0,0 +1,19 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <!-- Copyright 2018-Today Tischlerzentrum gmbh(<http://www.tzaustria.at>) | ||||||
|  |      License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). --> | ||||||
|  | 
 | ||||||
|  | <odoo> | ||||||
|  | 
 | ||||||
|  |     <record id="view_delivery_carrier_track_tz" model="ir.ui.view"> | ||||||
|  |         <field name="name">view_delivery_carrier_track_tz</field> | ||||||
|  |         <field name="model">stock.picking</field> | ||||||
|  |         <field name="inherit_id" ref="stock.view_picking_form"/> | ||||||
|  |         <field name="arch" type="xml"> | ||||||
|  |             <field name="carrier_tracking_ref" position="replace"> | ||||||
|  | <!--                <field name="carrier_tracking_ref" class="oe_inline" attrs="{'readonly': [('state', '=', 'done')]}"/> --> | ||||||
|  |                 <field name="carrier_tracking_ref" class="oe_inline"/> | ||||||
|  |             </field> | ||||||
|  |         </field> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|  | </odoo> | ||||||
|  | @ -0,0 +1,27 @@ | ||||||
|  | Odoo Proprietary License v1.0 | ||||||
|  | 
 | ||||||
|  | This software and associated files (the "Software") may only be used (executed, | ||||||
|  | modified, executed after modifications) if you have purchased a valid license | ||||||
|  | from the authors, typically via Odoo Apps, or if you have received a written | ||||||
|  | agreement from the authors of the Software (see the COPYRIGHT file). | ||||||
|  | 
 | ||||||
|  | You may develop Odoo modules that use the Software as a library (typically by | ||||||
|  | depending on it, importing it and using its resources), but without copying any | ||||||
|  | source code or material from the Software. You may distribute those modules | ||||||
|  | under the license of your choice, provided that this license is compatible with | ||||||
|  | the terms of the Odoo Proprietary License (For example: LGPL, MIT, | ||||||
|  | or proprietary licenses similar to this one). | ||||||
|  | 
 | ||||||
|  | It is forbidden to publish, distribute, sublicense, or sell copies of the Software | ||||||
|  | or modified copies of the Software. | ||||||
|  | 
 | ||||||
|  | The above copyright notice and this permission notice must be included | ||||||
|  | in all copies or substantial portions of the Software. | ||||||
|  | 
 | ||||||
|  | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||||
|  | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||||
|  | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||||||
|  | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, | ||||||
|  | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||||||
|  | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | ||||||
|  | DEALINGS IN THE SOFTWARE. | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | 
 | ||||||
|  | from . import models | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | # Copyright 2018-Today TZAustria | ||||||
|  | # License OPL-1 or later (https://www.odoo.com/documentation/user/11.0/legal/licenses/licenses.html#licenses). | ||||||
|  | 
 | ||||||
|  | # noinspection PyStatementEffect | ||||||
|  | { | ||||||
|  |     'name': 'TZ goMaps', | ||||||
|  |     'summary' : 'very simple google maps integration', | ||||||
|  |     'version': '11.0.1.0.0', | ||||||
|  |     'license': 'OPL-1', | ||||||
|  |     'author': 'TZAustria', | ||||||
|  |     'support': 'andreas.osim@glaser-co.at', | ||||||
|  |     'website': 'https://www.tzaustria.at', | ||||||
|  |     'depends': ['base','account'], | ||||||
|  |     'data': ['views/res_partner_views.xml'], | ||||||
|  |     'installable': True, | ||||||
|  |     'auto_install': False, | ||||||
|  | } | ||||||
|  | @ -0,0 +1,23 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | # Part of Odoo. See LICENSE file for full copyright and licensing details. | ||||||
|  | 
 | ||||||
|  | from odoo import api, fields, models | ||||||
|  | 
 | ||||||
|  | class TZgoMaps(models.Model): | ||||||
|  |     _inherit = 'res.partner' | ||||||
|  | 
 | ||||||
|  |     @api.multi | ||||||
|  |     def goMaps(self): | ||||||
|  |         for record in self: | ||||||
|  |             street = record.street+',' if record.street else '' | ||||||
|  |             zip = ' '+record.zip+',' if record.zip else '' | ||||||
|  |             city = ' '+record.city+',' if record.city else '' | ||||||
|  |             country_code = ' '+record.country_id.code+',' if record.country_id.code else '' | ||||||
|  | #            gomaps_link = 'https://www.google.com/maps/place/'+street.replace('/','.')+zip+city+country_code | ||||||
|  |             gomaps_link = 'https://www.google.com/maps/place/' + street + zip + city + country_code | ||||||
|  |         return { | ||||||
|  |             'type': 'ir.actions.act_url', | ||||||
|  |             'url': '%s' % gomaps_link, | ||||||
|  |             'view_mode':'form' | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | 
 | ||||||
|  | from . import TZgMaps | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 17 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 361 KiB | 
|  | @ -0,0 +1,15 @@ | ||||||
|  | <?xml version="1.0" encoding="utf-8"?> | ||||||
|  | <odoo> | ||||||
|  | 
 | ||||||
|  |     <record id="view_partner_form" model="ir.ui.view"> | ||||||
|  |         <field name="name">view_partner_form</field> | ||||||
|  |         <field name="model">res.partner</field> | ||||||
|  |         <field name="inherit_id" ref="base.view_partner_form"/> | ||||||
|  |         <field name="arch" type="xml"> | ||||||
|  |             <div name="button_box" position="inside"> | ||||||
|  |                 <button type="object" name="goMaps" class="oe_stat_button" icon='fa-globe' string="goMaps"/> | ||||||
|  |             </div> | ||||||
|  |         </field> | ||||||
|  |     </record> | ||||||
|  | 
 | ||||||
|  | </odoo> | ||||||
|  | @ -228,6 +228,12 @@ def main(): | ||||||
|             'invalidate_email', |             'invalidate_email', | ||||||
|         ] |         ] | ||||||
| 
 | 
 | ||||||
|  |     if cmd == 'decouple_dmi_module': | ||||||
|  |         methods = [ | ||||||
|  |             'login', | ||||||
|  |             'decouple_dmi_module', | ||||||
|  |         ] | ||||||
|  | 
 | ||||||
|     if not methods: |     if not methods: | ||||||
|         print('Unbekanntes Kommando') |         print('Unbekanntes Kommando') | ||||||
|         _usage() |         _usage() | ||||||
|  |  | ||||||
|  | @ -677,13 +677,13 @@ class DatenpolFunctions(object): | ||||||
|         else: |         else: | ||||||
|             return True |             return True | ||||||
| 
 | 
 | ||||||
|     def set_dmi_noupdate(self): |     def decouple_dmi_module(self): | ||||||
|         """DMI: Einträge auf 'no update' setzen""" |         """DMI: Einträge auf 'no update' setzen""" | ||||||
| 
 | 
 | ||||||
|         domain = [('module', '=', 'dp_dmi'), ('noupdate', '=', False)] |         domain = [('module', '=', 'dp_dmi')] | ||||||
|         data_ids = self.odoo.env['ir.model.data'].search(domain) |         data_ids = self.odoo.env['ir.model.data'].search(domain) | ||||||
| 
 | 
 | ||||||
|         vals = {'noupdate': True} |         vals = {'noupdate': True, 'module':'dp_dmi_decoupled'} | ||||||
|         return self.odoo.env['ir.model.data'].write(data_ids, vals) |         return self.odoo.env['ir.model.data'].write(data_ids, vals) | ||||||
| 
 | 
 | ||||||
|     def dmi_confirm_inventory(self): |     def dmi_confirm_inventory(self): | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue