<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="paperformat_euro_landscape"
model="report.paperformat">
<field name="name">delivery_Paper</field>
<field name="default" eval="True" />
<field name="format">custom</field><!--一个预定义的格式如(A0-A9,B0-B10等)或自定义,默认是A4-->
<field name="page_height">140</field>
<field name="page_width">215</field>
<field name="orientation">Landscape</field><!--横向或纵向 Landscape , Portrait-->
<field name="margin_top">40</field>
<field name="margin_bottom">20</field>
<field name="margin_left">5</field>
<field name="margin_right">5</field>
<field name="header_line" eval="False" /><!--是否显示标题行-->
<field name="header_spacing">35</field><!--头部空白-->
<field name="dpi">90</field>
</record>
<template id="custom_report_delivery_document">
<t t-call="web.html_container">
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<div class="header">
<div class="row mt16 mb16">
<div class="col-6" style="border-bottom:1px solid #000">
<img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % to_text(company.logo)" style="max-height: 50px;" />
</div>
<div class="col-6 text-right" style="border-bottom:1px solid #000">
<span t-field="company.partner_id" />
<br/>
<span t-field="company.partner_id.country_id" />
<span t-field="company.partner_id.state_id" />
<span t-field="company.partner_id.city" />
<span t-field="company.partner_id.street" />
<span t-field="company.partner_id.street2" />
<span t-field="company.partner_id.vat" />
<br/>
</div>
</div>
<div class="row mt16 mb32">
<div class="col-6">
出库单号:<span t-field="o.name" />
<br/>
订 单 号:<span t-field="o.origin" />
</div>
<div t-if="o.state" class="col-6 text-right" name="div_sched_date">
<strong>发货日期:</strong>
<t t-if="o.state == 'done'">
<span t-field="o.date_done" t-options='{"widget": "date"}'/>
</t>
<t t-if="o.state != 'done'">
<span t-field="o.scheduled_date" t-options='{"widget": "date"}'/>
</t>
</div>
</div>
</div>
<div class="footer">
<div class="row mt32 mb32">
<div class="col-6" style="border-top:1px solid #000">
测试,左边
</div>
<div class="col-6 text-right" style="border-top:1px solid #000">
客户签收:
</div>
</div>
<div class="row mt16 mb16">
<div class="col-auto" style="border-top:1px solid #000">
制单人:<span t-field="o.write_uid" />
</div>
</div>
</div>
<t t-call="web.internal_layout"><!--external_layout头部和底部 internal_layout基本头部-->
<t t-set="o" t-value="o.with_context(lang=o.partner_id.lang)" />
<div class="page">
<div class="oe_structure"/>
<div class="row mt16 mb32">
<div t-if="o.move_lines and o.move_lines[0].partner_id and o.move_lines[0].partner_id.id != o.partner_id.id">
收货人及电话:<span t-field="o.partner_id"/>
<span>:
<span t-field="o.partner_id.mobile"/>/
<span t-field="o.partner_id.phone"/>
</span>
<br/>
收货地址:<span t-field="o.partner_id.country_id"/>
<span t-field="o.partner_id.state_id" />
<span t-field="o.partner_id.city" />
<span t-field="o.partner_id.street"/>
<span t-field="o.partner_id.street2" />
<span t-field="o.partner_id.zip" />
<br/>
<div t-field="o.partner_id.vat"/>
</div>
<div t-if="(o.move_lines and o.move_lines[0].partner_id and o.move_lines[0].partner_id.id == o.partner_id.id) or o.move_lines and not o.move_lines[0].partner_id">
收货人及电话:<span t-field="o.partner_id"/>
<span>:
<span t-field="o.partner_id.mobile"/>/
<span t-field="o.partner_id.phone"/>
</span>
<br/>
收货地址:<span t-field="o.partner_id.country_id"/>
<span t-field="o.partner_id.state_id" />
<span t-field="o.partner_id.city" />
<span t-field="o.partner_id.street"/>
<span t-field="o.partner_id.street2" />
<span t-field="o.partner_id.zip" />
<br/>
<div t-field="o.partner_id.vat"/>
</div>
</div>
<div class="row mt16 mb32">
<div class="col-auto" name="div_carrier_id">
<strong>承运方:</strong>
<p t-field="o.carrier_id"/>
</div>
<div class="col-auto" name="div_weight">
<strong>重量:</strong>
<p t-field="o.weight"/>
</div>
<div class="col-auto" name="div_volume">
<strong>体积:</strong>
<p t-field="o.volume"/>
</div>
</div>
<!--<table class="table table-sm" t-if="o.state!='done'" name="stock_move_table">-->
<table class="table table-sm" name="stock_move_table">
<thead>
<tr>
<th><strong>产品</strong></th>
<th><strong>数量</strong></th>
</tr>
</thead>
<tbody>
<t t-set="lines" t-value="o.move_lines.filtered(lambda x: x.product_uom_qty)"/>
<tr t-foreach="lines" t-as="move">
<td>
<span t-field="move.product_id"/>
<p t-if="o.picking_type_code == 'outgoing'">
<span t-field="move.product_id.sudo().description_pickingout"/>
</p>
<p t-if="o.picking_type_code == 'incoming'">
<span t-field="move.product_id.sudo().description_pickingin"/>
</p>
</td>
<td>
<span t-field="move.product_uom_qty"/>
<span t-field="move.product_uom"/>
</td>
</tr>
</tbody>
</table>
<p>
<t t-if="o.backorder_ids and o.backorder_ids.filtered(lambda x: x.state not in ('done', 'cancel'))">
All items couldn't be shipped, the remaining ones will be shipped as soon as they become available.
</t>
</p>
</div>
</t>
</t>
</template>
<template id="custom_report_deliveryslip">
<t t-foreach="docs" t-as="o">
<t t-call="mymodule.custom_report_delivery_document" t-lang="o.partner_id.lang"/>
</t>
</template>
<report
string="自定义出库单"
id="action_custom_report_delivery"
model="stock.picking"
report_type="qweb-pdf"
name="mymodule.custom_report_deliveryslip"
file="mymodule.custom_report_deliveryslip"
print_report_name="'delivery - %s - %s' % (object.partner_id.name or '', object.name)"
/>
</odoo>
风飞花
-
页脚显示不出来,是这样有问题吗?但页头却可以显示的 -
电子商务中在哪里设置权限可以让没有登录的用户不能购买产品?当然也是想设置成会员产品吧
-
电子商务中在哪里设置权限可以让没有登录的用户不能购买产品?@digitalsatori
就是想,,这个还真没那么多为什么,,
在官网APP里也找了一段时间,也没发现有这的功能
模块里边倒是找到一些权限可以限制浏览,但比较简单粗暴一点 -
电子商务中在哪里设置权限可以让没有登录的用户不能购买产品?未登录的话,不能在website中购买产品,,但能浏览产品,,
这样的限制要在哪里修改这个权限? -
创建新用户时的邮箱配置问题你不是用管理员账号的邮件测试的阿???这个估计是odoo的关系了,估计是你的账号和对应的邮箱不一致吧,,这个我也不是太清楚
-
创建新用户时的邮箱配置问题如果没有收到账户异常登录活动的邮件,你在你的oDOO的邮箱配置里边点击一下测试链接,,应该就能收到这个邮件了
-
创建新用户时的邮箱配置问题试试hotmail.com,,我用这个是通过了的
用户名和密码就是你的电子邮箱的账号密码
SMTP 服务器:smtp.office365.com
SMTP 端口 587
连接安全 TLS (STARTTLS)
用户名 [email protected]
密码xxx邮箱服务端设置
登录hotmail.com邮箱
点击设置(右上角)
查看全部outlook设置(右下角)
同步电子邮件----打开pop等功能如果你发送和接收邮件的IP没有在邮箱中备案,,你按照上边的设置,设置好后,你的邮箱就会收到Microsoft账户异常登录活动的邮件,点击进去,那里有一个“查看最近的活动”的按钮
点击进去后,查看一下那个IP是你的服务器IP,,然后在其右边点击一下同意就好了 -
创建新用户时的邮箱配置问题看看你邮箱服务端是否限制了,,反正我用微软的邮箱去设置的时候,,是要在微软的邮箱端去通过一下的
-
导入csv问题比如第一行内容如下:
Serial Number,aaaa,bbbb
上边的代码好像也会提示:'Row header name "Serial Number" is not found in CSV file'
是有这个情况,,所以问问,,是代码有问题还是可能是其他问题 -
导入csv问题在apps.odoo.com上边找到inventory_serial_import这个apps,其中inventory_serial_import中,有一个代码如下:
它有一个Serial Number的判断,,但我发现,如果按照表格的形式来看,第一列表头是Serial Number,第二列表头如果是别的名字也会提示Row header name "Serial Number" is not found in CSV file,是什么情况?如果只是判断存在一个Serial Number就行,,一个都没有就提示,,是怎么处理(或者说代码正确,而是别的问题造成这种提示)class stock(models.Model): _inherit = "stock.move" file_import = fields.Binary("Import 'csv' File", help="*Import a list of lot/serial numbers from a csv file \n *Only csv files is allowed" "\n *The csv file must contain a row header namely 'Serial Number'") file_name = fields.Char("file name") # importing "csv" file and appending the datas from file to order lines @api.multi def input_file(self): if self.file_import: file_value = self.file_import.decode("utf-8") filename, FileExtension = os.path.splitext(self.file_name) if FileExtension != '.csv': raise UserError("Invalid File! Please import the 'csv' file") data_list = [] input_file = base64.b64decode(file_value) lst = [] for loop in input_file.decode("utf-8").split("\n"): lst.append(loop) if 'Serial Number' not in lst[0]: raise UserError('Row header name "Serial Number" is not found in CSV file')
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?做个完结吧,odoo-bin.exe好像已经是删除了的(安装好后就是没有的)
sale_my用不了的问题,估计是我用记事本编辑的问题,编码格式不是utf8
用python编辑软件后就好了(编辑软件打开前边sale_my里的文件,,中文都是乱码)# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. { 'name': 'sale_extension', 'version': '12.0.1.0.0', 'category': 'sale_extension', 'description':'sale的from、tree模块显示内容的扩展', 'sequence': 32, 'license': 'AGPL-3', 'depends': [ 'sale', ], 'data': [ 'views/sale_order_extension.xml' ], 'demo': [ ], 'installable': True, 'auto_install': False, 'application': False, }
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?我这么用命令,,发现都是不行的;怎么感觉别人简单的,,我这便都有问题
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?@digitalsatori
老是看到教材中用命令行创建模块,,Windows中怎么用命令行,我输入odoo-bin等,都说不是内部命令什么的是直接打开windows的cmd,输入下边代码就可执行吗?
比如下边代码:
$ odoo-bin scaffold <module name> <where to put it>
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?@digitalsatori
不知道什么问题,第三方APP都刷出来了,,sale_my就是没出来,我就算吧这个文件夹放到程序默认的odoo\addons里边也刷不出来(估计应该是哪里有问题)先不管了,,也就是说要想https://www.cnblogs.com/SamNicole1809/archive/2019/06/03/10968113.html里边说的增加字段,或者是说想在库存的tree中增加收货人姓名、电话、地址等都是要自定义一个模块,然后related字段,并显示的吧?(没办法在视图字段那边直接添加是吧)
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?就是下边这么配置的,,后边那个是添加的,前边那个是默认的
custom-addons文件夹也是放在server文件夹下边
addons_path = d:\Program Files\Odoo12\server\odoo\addons,d:\Program Files\Odoo12\server\custom-addons -
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?@digitalsatori 在 在调拨的tree视图中添加收货人姓名电话和地址,怎么添加? 中说:
你是如何启动Odoo的,在启动参数中有没有用-c xxxxx.conf指向你上面的配置文件?
我就是在windows中下载官网一健安装程序安装,这样启动参数怎么修改
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?__manifest__.py代码修改如下,不过还是看不到效果,在应用里边也没有增加东西
# -*- coding: utf-8 -*- { 'name':'测试', 'description':'sale的form、tree、kanban模块显示内容的扩展', 'version': '1.0', 'license': 'LGPL-3', 'depends': ['base', 'sale',], 'data': [ 'views/sale_order_extension.xml', ], }
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?@风飞花 在 在调拨的tree视图中添加收货人姓名电话和地址,怎么添加? 中说:
文件结构如下:models models/__init__.py models/sale_order_extension.py views views/sale_order_extension.xml __init__.py __manifest__.py
各自代码如下,然后还是按照上贴途中那几个都点击一下,也是没有结果显示:anguished_face: :
models/ __init__.py代码如下:
# -*- coding: utf-8 -*- from . import sale_order_extension
models/ sale_order_extension.py代码如下:
# -*- coding:utf-8 -*- """销售模块扩展""" from odoo import fields, models # 销售模块扩展 class SaleOrderExtension(models.Model): """销售模块扩展""" _inherit = 'sale.order' # 销售员 x_salesman = fields.Many2one( 'res.users', string='销售员', related='partner_id.user_id' )
views/sale_order_extension.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?> <odoo> <record id="view_order_form_modify" model="ir.ui.view"> <field name="name">view.order.form.modify</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <!-- 增加``销售员``字段 --> <xpath expr="//group/group/field[@name='partner_id']" position="after" > <field name="x_salesman" /> </xpath> </field> </record> <record id="view_order_tree_modify" model="ir.ui.view"> <field name="name">view.order.form.modify</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_quotation_tree_with_onboarding"/> <field name="arch" type="xml"> <!-- 增加``创建人``字段 --> <xpath expr="//field[@name='date_order']" position="after" > <field name="create_uid" /> </xpath> </field> </record> </odoo>
__manifest__.py代码如下:
# -*- coding: utf-8 -*- { 'version': '0.1', 'depends': ['base', 'sale',], 'data': [ 'views/sale_order_extension.xml', ], }
__init__.py代码如下
from . import models
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?我在addons_path添加了custom-addons,然后在里边建了sale_my文件夹,这个文件夹包含的文件结构如下:
models ---- __init__.py ----sale_order_extension.py views ----sale_order_extension.xml __manifest__.py
各自代码如下,基本按照https://www.cnblogs.com/SamNicole1809/archive/2019/06/03/10968113.html里边说明填入代码,后边我在对应的位置看不到新加的字段,,**是哪里出问题了吗?:anguished_face: **(下边图片中红圈的都点击过了)
__init__.py代码如下:
# -*- coding: utf-8 -*- from . import sale_order_extension
sale_order_extension.py代码如下
# -*- coding:utf-8 -*- """销售模块扩展""" from odoo import fields, models # 销售模块扩展 class SaleOrderExtension(models.Model): """销售模块扩展""" _inherit = 'sale.order' # 销售员 x_salesman = fields.Many2one( 'res.users', string='销售员', related='partner_id.user_id' )
sale_order_extension.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?> <odoo> <record id="view_order_form_modify" model="ir.ui.view"> <field name="name">view.order.form.modify</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_order_form"/> <field name="arch" type="xml"> <!-- 增加``销售员``字段 --> <xpath expr="//group/group/field[@name='partner_id']" position="after" > <field name="x_salesman" /> </xpath> </field> </record> <record id="view_order_tree_modify" model="ir.ui.view"> <field name="name">view.order.form.modify</field> <field name="model">sale.order</field> <field name="inherit_id" ref="sale.view_quotation_tree_with_onboarding"/> <field name="arch" type="xml"> <!-- 增加``创建人``字段 --> <xpath expr="//field[@name='date_order']" position="after" > <field name="create_uid" /> </xpath> </field> </record> </odoo>
__manifest__.py代码如下:
# -*- coding: utf-8 -*- { 'version': '0.1', # any module necessary for this one to work correctly 'depends': ['base', 'sale',], # always loaded 'data': [ # 'security/ir.model.access.csv', 'sale_order_extension.xml', ], }
-
在调拨的tree视图中添加收货人姓名电话和地址,怎么添加?