añadido Warehouse Restrictions

This commit is contained in:
santiky 2021-10-20 21:36:53 +02:00
parent b3a9100333
commit 9736628ac3
Signed by: snt
GPG key ID: A9FD34930EADBE71
40 changed files with 719 additions and 0 deletions

View file

@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
from . import stock

View file

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright © 2016 Techspawn Solutions. (<http://techspawn.in>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': "Warehouse Restrictions",
'summary': """
Warehouse restrictions on users, Stock Location Restrictions. This module will restrict warehouse/stock locations on users.""",
'description': """
This Module Restricts the User from Accessing Warehouse and Process Stock Moves other than allowed to Warehouses and Stock Locations.
""",
'author': "Techspawn Solutions",
'website': "http://www.techspawn.com",
'license':'OPL-1',
'category': 'Warehouse',
'version': '0.2',
'images': ['static/description/WarehouseRestrictions.gif'],
'depends': ['base', 'stock'],
'data': [
'users_view.xml',
'security/security.xml',
# 'security/ir.model.access.csv',
],
}

View file

@ -0,0 +1,15 @@
Warehouse Restriction
========================
- This module will add Warehouse and Stock Location Restriction on Users
Installation
============
- Install the module normally like other modules.
Configuration
=============
- Add Default Warehouse Opertions and Allowed Stock Locations and you are ready to go.
Note
====
- This restrictions are created using rule and access rights, so it will have no effect on the Adminstrator.

View file

@ -0,0 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_stock_picking_type_restricted_user,access_stock_picking_type_restricted_user,stock.model_stock_picking_type,base.group_system,1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_stock_picking_type_restricted_user access_stock_picking_type_restricted_user stock.model_stock_picking_type base.group_system 1 1 1 0

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="group_restrict_warehouse" model="res.groups">
<field name="name">Resrict Stock warehouses</field>
</record>
<record id="filter_user_stock_picking_type_allowed_new" model="ir.rule">
<field name="name">Filter Stock Picking Type Allowed new</field>
<field name="model_id" search="[('model','=','stock.picking.type')]" model="ir.model"/>
<field name="groups" eval="[(4, ref('group_restrict_warehouse'))]"/>
<field name="domain_force">[('id','in', [ p.id for p in user.default_picking_type_ids ])]</field>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
<field name="perm_create" eval="True"/>
<field name="perm_unlink" eval="False"/>
</record>
</data>
</odoo>

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

View file

@ -0,0 +1,551 @@
<section class="oe_container custom_main_box" style="margin-top: -24px !important;">
<div class="row mt92 o_equal_col_sm" style="max-width:1540px;margin:0 auto;background-color:#ebf2f8;padding-bottom:92px;border-radius:15px;">
<div class="" style="display:block;margin:0 auto;width: 500px;">
<!-- <div style="display: inline-block;width: 240px;">
<a href="https://www.emiprotechnologies.com" target="_blank" style="width: 100%;display: inline-block;">
<img class="img img-responsive mt16" src="emipro_logo.png" style="display: block;margin: 0 auto;" />
</a>
</div> -->
<!-- <div style="width: 2px;height: 105px;background-image: -webkit-linear-gradient(transparent, #dce2e6, transparent);display: inline-block;vertical-align: top;"></div> -->
<div style="display: inline-block;width: 240px; margin-left: 120px;">
<a href="https://techspawn.com/connect-with-techspawn" target="_blank" style="width: 100%;display: inline-block;">
<img class="img img-responsive mt16" src="logo.png" style="margin: 0 auto;display: block;"/>
</a>
</div>
</div>
</div>
</section>
<section class="oe_container bg-transparent fixed-top position-relative" style="margin:-5rem 0">
<div class="row o_equal_col_sm" style="margin: 0 300px;">
<div class="shadow bg-white px-5 pb24 pt24" style="border-radius:15px">
<section class="oe_container custom_space" style="margin-bottom:px;">
<div class="mt64 mb64 pt32 custom_gst_text" style="padding-top: 0px !important;">
<h2 class="oe_slogan custom_gst_design" style="color: #ff8950;font-family: Roboto;font-weight: 500;text-align:center;text-transform: uppercase; margin-top: -50px !important; margin-bottom: 10px !important;">
Warehouse Restriction
</h2>
<p class="mb16 text-center text-black-dark" style="font-family: Roboto;font-weight: initial;color: #091E42;text-align:center;"> By Techspawn Solutions
</p>
<p class="mb16 text-center text-black-dark" style="font-family: Roboto;font-weight: initial;color: #091E42;text-align:center;">Warehouse and Stock Location Restriction on Users
</p>
</div>
</section>
</div>
</div>
</section>
<section class="oe_container">
<section id="loempia_tabs" class="" style="padding:64px 20px;margin: 100px 0px;background-color:rgba(0, 56, 195, 0.12); border-radius: 22px;">
<ul role="tablist" class="nav nav-tabs justify-content-center"
data-tabs="tabs" style="border:none; background-color:unset">
<li class="nav-item" style="border-top-right-radius: 6px;border-top-left-radius: 6px;background-color:#087dda;margin-right: 1px;padding-bottom: 2px;">
<a href="#ept_features" class=""
style="font-family: Roboto;text-transform: uppercase;font-weight: 600;font-size: 15px;letter-spacing: 1px;padding: 10px 20px;border-top-left-radius: 5px;border-top-right-radius: 5px;color: #2b2b2b;">Features
</a>
</li>
<li class="nav-item"
style="border-top-right-radius: 6px;border-top-left-radius: 6px;background-color:#087dda;margin-right: 1px;padding-bottom: 2px;">
<a href="#ept_screenshots" class=""
style="font-family: Roboto;text-transform: uppercase;font-weight: 600;font-size: 15px;letter-spacing: 1px;padding: 10px 20px;border-top-left-radius: 5px;border-top-right-radius: 5px;color: #2b2b2b;">Screenshots
</a>
</li>
<li class="nav-item" style="border-top-right-radius: 6px;border-top-left-radius: 6px;background-color:#087dda;margin-right: 1px;padding-bottom: 2px;">
<a href="#ept_userguid" class="" style="font-family: Roboto;text-transform: uppercase;font-weight: 600;font-size: 15px;letter-spacing: 1px;padding: 10px 20px;border-top-left-radius: 5px;border-top-right-radius: 5px;color: #2b2b2b;">User Guide</a>
</li>
<!--
<li class="nav-item" style="border-top-right-radius: 6px;border-top-left-radius: 6px;background-color:#087dda;margin-right: 1px;padding-bottom: 2px;">
<a href="#ept_faqs" class="" style="font-family: Roboto;text-transform: uppercase;font-weight: 600;font-size: 15px;letter-spacing: 1px;padding: 10px 20px;border-top-left-radius: 5px;border-top-right-radius: 5px;color: #2b2b2b;">FAQs</a>
</li>
-->
</ul>
<section id="ept_features" style="padding: 20px 10px;margin: 20px 0px;background-color:#fff;border-radius: 22px;" class="ept_features d-flex align-items-center">
<div class="container">
<div class="row">
<div class="col" style="margin: 10px;">
<div class="row" style="background-color:#edfcfb; border-radius: 13px;">
<div class="col-md-3 text-center">
<img class="img img-responsive" style="max-width:20%; margin-top: 11px;" src="features/check.png"/>
</div>
<div class="col-md-9">
<p style="margin-top:10px; color: rgba(0, 0, 17, 1);font-size: 16px;"><b>Restrict Warehouse operations for User </b></p>
</div>
</div>
</div>
<div class="col" style="margin: 10px;">
<div class="row" style="background-color:#edfcfb; border-radius: 13px;" >
<div class="col-md-3 text-center">
<img class="img img-responsive" style="max-width:20%; margin-top: 11px;" src="features/check.png"/>
</div>
<div class="col-md-9">
<p style="margin-top:10px; color: rgba(0, 0, 17, 1);font-size: 16px;"><b> Restrict User to use specific Locations</b></p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col" style="margin: 10px;">
<div class="row" style="background-color:#edfcfb; border-radius: 13px;">
<div class="col-md-3 text-center">
<img class="img img-responsive" style="max-width:20%; margin-top: 11px;" src="features/check.png"/>
</div>
<div class="col-md-9">
<p style="margin-top:10px; color: rgba(0, 0, 17, 1);font-size: 16px;"><b>Restrict the user to other warehouses </b></p>
</div>
</div>
</div>
<div class="col" style="margin: 10px;">
<div class="row" style="background-color:#edfcfb; border-radius: 13px;" >
<div class="col-md-3 text-center">
<img class="img img-responsive" style="max-width:20%; margin-top: 11px;" src="features/check.png"/>
</div>
<div class="col-md-9">
<p style="margin-top:10px; color: rgba(0, 0, 17, 1); font-size: 16px;"><b> On selecting Restrict Location optionadmin can add allowed Stock Location for the User</b></p>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="ept_screenshots"style="padding: 20px 10px;margin: 20px 0px;background-color:#fff;border-radius: 22px;" class="ept_screenshots">
<div class="container" data-aos="fade-up">
<div class="s_faq mt32 mb32" style="background-color: transparent !important;">
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<!--1-->
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);background-color:#F0F4F7;padding: 15px 15px;margin: 0;">
<h2 class="panel-title mb0">
<i style="font-family: Roboto;font-weight:700;color: rgba(0, 0, 200, 1);font-size:30px;">
<span class="panelcontent" style="padding: 0% 2%;">SCREENSHOTS
</i>
</h2>
</div>
<div class="panel-group" style="margin-bottom:2%; margin-top: 2%;">
<div class="panel panel-default" style="box-shadow: unset;">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);padding: 12px 12px;margin: 0;">
<h3 class="panel-title mb0">
<a class="collapsed" style="font-family: Roboto;font-weight:500;color: #091E42;font-size:20px;" data-toggle="collapse" href="#collapse_4">
<span class="panelcontent" style="padding: 0% 2%;">Select User you want to add restriction:
</span>
</a>
</h3>
</div>
<div id="collapse_4" class="panel-collapse collapse mt16 mb16">
<div class="mb16">
<img src="user3.png" class="img img-responsive center-block"/>
</div>
</div>
</div>
</div>
<!-- 2 -->
<div class="panel-group" style="margin-bottom:2%;">
<div class="panel panel-default" style="box-shadow: unset;">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);padding: 15px 15px;margin: 0;">
<h3 class="panel-title mb0">
<a class="collapsed"
style="font-family: Roboto;font-weight:500;color: #091E42;font-size:20px;" data-toggle="collapse" href="#collapse_9">
<span class="panelcontent" style="padding: 0% 2%;">Select 'Restrict stock warehouse' option: </span>
</a>
</h3>
</div>
<div id="collapse_9" class="panel-collapse collapse mt16 mb16">
<div class="mb16">
<img src="set_group.png" class="img img-responsive center-block"/>
</div>
</div>
</div>
</div>
<!-- 3 -->
<div class="panel-group" style="margin-bottom:2%;">
<div class="panel panel-default" style="box-shadow: unset;">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);padding: 15px 15px;margin: 0;">
<h3 class="panel-title mb0">
<a class="collapsed"
style="font-family: Roboto;font-weight:500;color: #091E42;font-size:20px;"
data-toggle="collapse" href="#collapse_14">
<span class="panelcontent" style="padding: 0% 2%;">Default Warehouse Operations:
</span>
</a>
</h3>
</div>
<div id="collapse_14" class="panel-collapse collapse mt16 mb16">
<div class="mb16">
<img src="user4.png" class="img img-responsive center-block"/>
</div>
</div>
</div>
</div>
<!-- 4 -->
<div class="panel-group" style="margin-bottom:2%;">
<div class="panel panel-default" style="box-shadow: unset;">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);padding: 15px 15px;margin: 0;">
<h3 class="panel-title mb0">
<a class="collapsed"
style="font-family: Roboto;font-weight:500;color: #091E42;font-size:20px;"
data-toggle="collapse" href="#collapse_155">
<span class="panelcontent" style="padding: 0% 2%;">Restrict the user to limited warehouses:
</span>
</a>
</h3>
</div>
<div id="collapse_155" class="panel-collapse collapse mt16 mb16">
<div class="mb16">
<img src="user5.png" class="img img-responsive center-block"/>
</div>
</div>
</div>
</div>
<!-- 5 -->
<div class="panel-group" style="margin-bottom:2%;">
<div class="panel panel-default" style="box-shadow: unset;">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);padding: 15px 15px;margin: 0;">
<h3 class="panel-title mb0">
<a class="collapsed"
style="font-family: Roboto;font-weight:500;color: #091E42;font-size:20px;"
data-toggle="collapse" href="#collapse_166">
<span class="panelcontent" style="padding: 0% 2%;"> Select Restrict Location option:
</span>
</a>
</h3>
</div>
<div id="collapse_166" class="panel-collapse collapse mt16 mb16">
<div class="mb16">
<img src="user6.png" class="img img-responsive center-block"/>
</div>
</div>
</div>
</div>
<div class="panel-group" style="margin-bottom:2%;">
<div class="panel panel-default" style="box-shadow: unset;">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);padding: 15px 15px;margin: 0;">
<h3 class="panel-title mb0">
<a class="collapsed"
style="font-family: Roboto;font-weight:500;color: #091E42;font-size:20px;"
data-toggle="collapse" href="#collapse_17">
<span class="panelcontent" style="padding: 0% 2%;">This restrictions are created using rule and access rights, so it will have no effect on the Adminstrator:
</span>
</a>
</h3>
</div>
<div id="collapse_17" class="panel-collapse collapse mt16 mb16">
<div class="mb16">
<img src="warehouse2.png" class="img img-responsive center-block"/>
</div>
</div>
</div>
</div>
<!-- 6 -->
</div>
</div>
</div>
</section>
<!-- End About Section -->
<section id="ept_userguid" style="padding: 20px 10px;margin: 20px 0px;background-color:#fff;border-radius: 22px;" class="ept_userguid">
<div class="container" data-aos="fade-up">
<div class="s_faq mt32 mb32" style="background-color: transparent !important;">
<div class="panel-group" id="accordion1" role="tablist" aria-multiselectable="true">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);background-color:#F0F4F7;padding: 15px 15px;margin: 0;">
<h2 class="panel-title mb0">
<i style="font-family: Roboto;font-weight:700;color: rgba(0, 0, 200, 1);font-size:30px;">
<span class="panelcontent" style="padding: 0% 2%;">USER GUIDE
</i>
</h2>
</div>
<div class="panel-group" style="margin-bottom:2%;margin-top: 2%;">
<div class="panel panel-default" style="box-shadow: unset;">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);padding: 12px 12px;margin: 0;">
<h3 class="panel-title mb0">
<a class="collapsed"
style="font-family: Roboto;font-weight:500;color: #091E42;font-size:20px;"
data-toggle="collapse" href="#col_1">
<span class="panelcontent" style="padding: 0% 2%;">Warehouse Restriction & Configuration Guide
</h3>
</div>
<div id="col_1" class="panel-collapse collapse mt16 mb16">
<div class="mb16">
<div class="panel panel-default">
<div class="panel-heading">Step 1 : Go to Settings/
</div>
<div class="panel-body">
<img src="user2.png" class="img img-responsive center-block"/>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Step 2 : Go to Users & Companies/</div>
<div class="panel-body">
<img src="user1.png" class="img img-responsive center-block"/>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">Step 3 : Select the User and see screenshot Tab</div>
<div class="panel-body">
<img src="user3.png" class="img img-responsive center-block"/>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!--
<section id="ept_faqs" style="padding: 20px 10px;margin: 20px 0px;background-color:#fff;border-radius: 22px;"class="ept_faqs">
<div class="container" data-aos="fade-up">
<div class="s_faq mt32 mb32" style="background-color: transparent !important;">
<div class="panel-group" id="accordion2" role="tablist" aria-multiselectable="true">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important;border-radius: 10px;box-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07);background-color:#F0F4F7;padding: 15px 15px;margin: 0;">
<h2 class="panel-title mb0">
<i style="font-family: Roboto;font-weight:700;color: rgba(0, 0, 200, 1);font-size:30px;">
<span class="panelcontent" style="padding: 0% 2%;">FAQS SECTION
</i>
</h2>
</div>
<div class="panel-group" style="margin-bottom:2%; margin-top: 2%;">
<div class="panel panel-default">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important; border-radius:10px; padding:12px 12px; margin:0">
<h3 class="panel-title mb0">
<a class="collapsed" style="font-family:Roboto; font-weight:500; color:#091E42; font-size:20px" data-toggle="collapse" href="#co1" aria-expanded="false">
<span class="panelcontent" style="padding:0% 2%">Does your module supports Odoo Community & Enterprise edition?
</span>
</a>
</h3>
</div>
<div id="co1" class="panel-collapse mt16 mb16 collapse" style="">
<div class="mb16">
<span><p class="mb0" style="height:auto; padding-left:2%; margin-left:2%; font-family:Roboto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Our module is compatible with both Odoo Community & Enterprise edition. Configuration is same for both editions.</p></span>
</div>
</div>
</div>
</div>
<div class="panel-group" style="margin-bottom:2%">
<div class="panel panel-default">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important; border-radius:10px; padding:15px 15px; margin:0">
<h3 class="panel-title mb0">
<a class="collapsed" style="font-family:Roboto; font-weight:500; color:#091E42; font-size:20px" data-toggle="collapse" href="#co2" aria-expanded="false">
<span class="panelcontent" style="padding:0% 2%">Can we do customization in the this module?
</span>
</a>
</h3>
</div>
<div id="co2" class="panel-collapse mt16 mb16 collapse" style="">
<div class="mb16">
<span><p class="mb0" style="height:auto; padding-left:2%; margin-left:2%; font-family:Roboto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes, you can do any type of customization with this module. If you want us to customize the module as per your requirement, please contact us at support@techspawn.com. Our team will be happy to help you with customization.</p></span>
</div>
</div>
</div>
</div>
<div class="panel-group" style="margin-bottom:2%">
<div class="panel panel-default">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important; border-radius:10px; padding:15px 15px; margin:0">
<h3 class="panel-title mb0">
<a class="collapsed" style="font-family:Roboto; font-weight:500; color:#091E42; font-size:20px" data-toggle="collapse" href="#co3" aria-expanded="false">
<span class="panelcontent" style="padding:0% 2%">Do we get installation support on the purchase of the app?
</span>
</a>
</h3>
</div>
<div id="co3" class="panel-collapse mt16 mb16 collapse" style="">
<div class="mb16">
<span><p class="mb0" style="height:auto; padding-left:2%; margin-left:2%; font-family:Roboto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes, we provide complete support for installation as well as post installation support also.</p></span>
</div>
</div>
</div>
</div>
<div class="panel-group" style="margin-bottom:2%">
<div class="panel panel-default">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important; border-radius:10px; padding:15px 15px; margin:0">
<h3 class="panel-title mb0">
<a class="collapsed" style="font-family:Roboto; font-weight:500; color:#091E42; font-size:20px" data-toggle="collapse" href="#co4" aria-expanded="false">
<span class="panelcontent" style="padding:0% 2%">Do I recieve upgrades if I purchase the app?
</span>
</a>
</h3>
</div>
<div id="co4" class="panel-collapse mt16 mb16 collapse" style="">
<div class="mb16">
<span><p class="mb0" style="height:auto; padding-left:2%; margin-left:2%; font-family:Roboto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes, you do recieve the updated app for the version you have purchased.</p></span>
</div>
</div>
</div>
</div>
<div class="panel-group" style="margin-bottom:2%">
<div class="panel panel-default">
<div class="panel-heading mt0 alert" style="border:1px solid transparent !important; border-radius:10px; padding:15px 15px; margin:0">
<h3 class="panel-title mb0">
<a class="collapsed" style="font-family:Roboto; font-weight:500; color:#091E42; font-size:20px" data-toggle="collapse" href="#co5" aria-expanded="false">
<span class="panelcontent" style="padding:0% 2%">Does the app allow two-way syncronization?
</span>
</a>
</h3>
</div>
<div id="co5" class="panel-collapse mt16 mb16 collapse" style="">
<div class="mb16">
<span><p class="mb0" style="height:auto; padding-left:2%; margin-left:2%; font-family:Roboto">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Yes, you can Import & Export both from WooCommerce to Odoo and Odoo to WooCommerce. If you want to customize it as one-way syncronization, you can reach us at support@techspawn.com for customization.</p></span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
-->
</div>
</section>
<div class="carsection">
<h2 style='color:#091E42; font-family:"Montserrat"; font-size:45px;text-align:center; margin:25px auto; text-transform:uppercase' class="oe_slogan">
<b>Related Products</b>
</h2>
<div id="imageCarousel" class="carousel slide mt60" data-ride="carousel">
<!--
<ol class="carousel-indicators">
<li data-target="#imageCarousel" data-slide-to="0" class="active"></li>
<li data-target="#imageCarousel" data-slide-to="1"></li>
<li data-target="#imageCarousel" data-slide-to="2"></li>
-->
<div class="carousel-inner">
<div class="carousel-item active">
<div class="row">
<div class="col-md-4">
<a href="https://apps.odoo.com/apps/modules/14.0/odoo_shopify_connector/" target="_blank">
<div style="border-radius:10px" class="shadow-sm">
<img src="productimage/shopify.gif" class="img-responsive" />
<h4 class="mt0 text-truncate" style="padding:6% 4%; text-align:center; width:100%; font-weight:bold">
Odoo Shopify Connector
</h4>
</div>
</a>
</div>
<div class="col-md-4">
<a href="https://apps.odoo.com/apps/modules/14.0/quickbooks_odoo_connector/" target="_blank">
<div style="border-radius:10px" class="shadow-sm">
<img src="productimage/quickb.gif" class="img-responsive" />
<h4 class="mt0 text-truncate" style="padding:6% 4%; text-align:center; width:100%; font-weight:bold">
Quickbooks Odoo Connector
</h4>
</div>
</a>
</div>
<div class="col-md-4">
<a href="https://apps.odoo.com/apps/modules/14.0/odoo_office_tech/" target="_blank">
<div style="border-radius:10px" class="shadow-sm">
<img src="productimage/office365.gif" class="img-responsive" />
<h4 class="mt0 text-truncate" style="padding:6% 4%; text-align:center; width:100%; font-weight:bold">
All in One Office365 Connector
</h4>
</div>
</a>
</div>
</div>
</div>
<div class="carousel-item">
<div class="row">
<div class="col-md-4">
<a href="https://apps.odoo.com/apps/modules/14.0/warehouse_stock_restrictions/" target="_blank">
<div style="border-radius:10px" class="shadow-sm">
<img src="productimage/WearhouseRestrictions.gif" class="img-responsive" />
<h4 class="mt0 text-truncate" style="padding:6% 4%; text-align:center; width:100%; font-weight:bold">
Warehouse Restrictions
</h4>
</div>
</a>
</div>
<div class="col-md-4">
<a href="https://apps.odoo.com/apps/modules/14.0/user_product_restriction/" target="_blank">
<div style="border-radius:10px" class="shadow-sm">
<img src="productimage/productr.gif" class="img-responsive" />
<h4 class="mt0 text-truncate" style="padding:6% 4%; text-align:center; width:100%; font-weight:bold">
Product Restriction on Users
</h4>
</div>
</a>
</div>
<div class="col-md-4">
<a href="https://apps.odoo.com/apps/modules/14.0/sales_reward/" target="_blank">
<div style="border-radius:10px" class="shadow-sm">
<img src="productimage/sale.gif" class="img-responsive" />
<h4 class="mt0 text-truncate" style="padding:6% 4%; text-align:center; width:100%; font-weight:bold">
Rewards or Loyalty Points for POS and Website
</h4>
</div>
</a>
</div>
</div>
</div>
</div>
<a class="carousel-control-prev" href="#imageCarousel" data-slide="prev" style="width:35px; color:#000; margin-left:-30px">
<span class="carousel-control-prev-icon"><i class="fa fa-chevron-left" style="font-size:24px"></i></span>
</a>
<a class="carousel-control-next" href="#imageCarousel" data-slide="next" style="width:35px; color:#000; margin-right:-30px">
<span class="carousel-control-next-icon"><i class="fa fa-chevron-right" style="font-size:24px"></i></span>
</a>
</div>
</div>
<div class="contact_us_section" style="margin-top:30px;">
<h3 style="text-align: center;margin-bottom: 20px; font-size: 20px;">Contact & Support</h3>
<h2 style="text-align: center;margin-bottom: 40px;">Expert Ideas and ERP Solution To Help You Grow</h2>
<p class="oe_slogan" style="font-size:18px">
Get expert help and assistance related to the new Odoo features and all ERP Related solutions at one place.
We offer solutions regardless the size of a business, contact us through e-mail at <a href="mailto:sales@techspawn.com">sales@techspawn.com</a>
and get professional help that you want to build your business better.
In case of any question regarding please reach out to us on<a href="mailto:Support@techspawn.com"> support@techspawn.com </a>
</p>
<div class="col-md-12" style=" display: inline-flex;">
<div class="col-md-4"></div>
<div class="col-md-4">
<center><img src="logo.png" style=""></center>
</div>
<div class="col-md-4"></div>
</div>
<!-- ContactUs And Support -->
<section class="oe_container">
<div class="row mb64" style="display:block; margin:0 auto; width:100%; text-align:center">
<div class="mt32" style="display:inline-block; margin:0px 10px">
<a href="mailto:mailto:sales@techspawn.com" style="font-family:&quot;Montserrat&quot;">
<h4 class="mt16 mb0" style="padding:16px 30px; font-family:&quot;Montserrat&quot; text-transform:uppercase; text-align:center; border-radius:10px; color:#fff; font-weight:700; background-color:#087dda">Email Us</h4>
</a>
</div>
<!--
<div class="mt32" style="display:none; margin:0px 10px">
<a href="https://techspawn.com/connect-with-techspawn" style="font-family:&quot;Montserrat&quot;">
<h4 class="mt16 mb0" style="padding:16px 17px; font-family:&quot;Montserrat&quot; text-transform:uppercase; text-align:center; border-radius:10px; color:#fff; font-weight:700; background-color:#ffae1f">Contact Us</h4>
</a>
</div>
-->
</div>
</section>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,002 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 140 KiB

View file

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
from openerp import models, fields, api, _
from openerp.exceptions import Warning
class ResUsers(models.Model):
_inherit = 'res.users'
restrict_locations = fields.Boolean('Restrict Location')
stock_location_ids = fields.Many2many(
'stock.location',
'location_security_stock_location_users',
'user_id',
'location_id',
'Stock Locations')
default_picking_type_ids = fields.Many2many(
'stock.picking.type', 'stock_picking_type_users_rel',
'user_id', 'picking_type_id', string='Default Warehouse Operations')
class stock_move(models.Model):
_inherit = 'stock.move'
@api.one
@api.constrains('state', 'location_id', 'location_dest_id')
def check_user_location_rights(self):
if self.state == 'draft':
return True
user_locations = self.env.user.stock_location_ids
print(user_locations)
print("Checking access %s" %self.env.user.default_picking_type_ids)
if self.env.user.restrict_locations:
message = _(
'Invalid Location. You cannot process this move since you do '
'not control the location "%s". '
'Please contact your Adminstrator.')
if self.location_id not in user_locations:
raise Warning(message % self.location_id.name)
elif self.location_dest_id not in user_locations:
raise Warning(message % self.location_dest_id.name)

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_users_form" model="ir.ui.view">
<field name="name">usability.default_warehouse.res.users.form</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch" type="xml">
<group name="messaging" position="before">
<group string="Warehouse Restrictions" attrs="{'invisible': [('login','=', 'admin')]}">
<field name="default_picking_type_ids" widget="many2many_tags" attrs="{'invisible': [('login','=', 'admin')]}"/>
</group>
</group>
</field>
</record>
<record id="view_location_security_users_form" model="ir.ui.view">
<field name="name">location_security.users.form</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch" type="xml">
<group name="messaging" position="before">
<group string="Locations" attrs="{'invisible': [('login','=', 'admin')]}">
<field name="restrict_locations" attrs="{'invisible': [('login','=', 'admin')]}"/>
</group>
</group>
<notebook>
<page string="Allowed Stock Locations" attrs="{'invisible': [('restrict_locations','!=', True)]}">
<field name="stock_location_ids" nolabel="1" colspan="2"/>
</page>
</notebook>
</field>
</record>
</data>
</openerp>