bzr revid: hmo@tinyerp.com-20100920073724-onfcwk7821tzhfbv
This commit is contained in:
Harry (OpenERP)
2010-09-20 13:07:24 +05:30
64 changed files with 500 additions and 463 deletions
-3
View File
@@ -2508,8 +2508,6 @@
<field domain="[('journal_id','=',parent.journal_id)]" name="account_id"/>
<field name="analytic_account_id" groups="base.group_extended" />
<field name="amount"/>
<field context="{'partner_id': partner_id, 'amount': amount, 'account_id': account_id, 'currency_id': parent.currency, 'journal_id': parent.journal_id, 'date':date}" name="reconcile_id"/>
<field invisible="1" name="reconcile_amount"/>
</tree>
<form string="Statement lines">
<field name="date"/>
@@ -2519,7 +2517,6 @@
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="analytic_account_id" groups="base.group_extended" />
<field name="amount"/>
<field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id,'currency_id': parent.currency,'journal_id':parent.journal_id, 'date':date}" name="reconcile_id"/>
<field name="ref"/>
<field name="sequence"/>
<separator colspan="4" string="Notes"/>
+4 -4
View File
@@ -2668,10 +2668,10 @@ msgid ""
"partners accounts (for debit/credit computations), closed for deprecated "
"accounts."
msgstr ""
"Pogled: Sintetički zbrojni konto, ne sadrži knjiženja\r\n"
"Konsolidacija: Zbrojni konto za više poduzeća i paralelne kontne planove\r\n"
"Obveze: Salda konta partnera - dobavljači\r\n"
"Potraživanja: Salda konta partnera - kupci\r\n"
"Pogled: Sintetički zbrojni konto, ne sadrži knjiženja\n"
"Konsolidacija: Zbrojni konto za više poduzeća i paralelne kontne planove\n"
"Obveze: Salda konta partnera - dobavljači\n"
"Potraživanja: Salda konta partnera - kupci\n"
"Zatvoren: Za konta koja se više ne koriste"
#. module: account
+3 -2
View File
@@ -388,8 +388,9 @@
string="Sold" help="Buy object"
domain="[('state','=','sold')]"/>
<separator orientation="vertical"/>
<field name="name" string="Object Name"/>
<field name="lot_type"/>
<field name="name"/>
<field name="ach_uid"/>
<field name="bord_vnd_id"/>
<field name="state"/>
<newline/>
<group expand="0" string="Group By..." colspan="16">
@@ -54,9 +54,8 @@ class quality_test(base_module_quality.abstract_quality_check):
flag = True
file_path = os.path.join(module_path, file_py)
try:
import pylint
res = os.popen('pylint --rcfile=' + config_file_path + ' ' + file_path).read()
except Exception, e:
except Exception:
self.error = True
self.log.exception("Cannot run pylint test for %s", file_path)
self.result += _("Error. Is pylint correctly installed? (http://pypi.python.org/pypi/pylint)")+"\n"
-1
View File
@@ -19,7 +19,6 @@
#
##############################################################################
from osv import fields, osv
import netsvc
class base_setup_installer(osv.osv_memory):
_name = 'base.setup.installer'
@@ -21,7 +21,6 @@
from osv import fields,osv
import time
import tools
class report_document_user(osv.osv):
+2
View File
@@ -65,12 +65,14 @@
<record id="employee2" model="hr.employee">
<field name="name">Quentin Paolino</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="user_id" ref="base.user_demo"/>
<field name="category_ids" eval="[(6, 0, [ref('category_jr_exec'),ref('category_managers')])]"/>
</record>
<record id="employee3" model="hr.employee">
<field name="name">Antoine Philippe</field>
<field name="calendar_id" ref="resource.timesheet_group1"/>
<field name="user_id" ref="base.user_root"/>
<field name="category_ids" eval="[(6, 0, [ref('category_trainee')])]"/>
</record>
+2 -2
View File
@@ -220,8 +220,8 @@ msgid ""
"managers can obtain an easy view on best ideas from all the users. Once "
"installed, check the menu 'Ideas' in the 'Tools' main menu."
msgstr ""
"这模块允许你在企业创新里简单和有效地使用.\r\n"
"它允许每个人对不同注意表达构想, 其它用户能评价这些构想和对具体的构想进行投票. 每个构想根据不同投票决定得分.\r\n"
"这模块允许你在企业创新里简单和有效地使用.\n"
"它允许每个人对不同注意表达构想, 其它用户能评价这些构想和对具体的构想进行投票. 每个构想根据不同投票决定得分.\n"
"管理人员可以很容易得到所有用户对构想的评价."
#. module: idea
+4 -9
View File
@@ -19,11 +19,9 @@
#
##############################################################################
from mx import DateTime
from datetime import datetime, timedelta
from datetime import datetime
from osv import osv, fields
from tools.translate import _
import ir
import netsvc
import time
@@ -178,8 +176,8 @@ class mrp_bom(osv.osv):
'code': fields.char('Reference', size=16),
'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the bills of material without removing it."),
'type': fields.selection([('normal','Normal BoM'),('phantom','Sets / Phantom')], 'BoM Type', required=True,
help= "If a sub-product is used in several products, it can be useful to create its own BoM."\
"Though if you don't want separated production orders for this sub-product, select Set/Phantom as BoM type."\
help= "If a sub-product is used in several products, it can be useful to create its own BoM. "\
"Though if you don't want separated production orders for this sub-product, select Set/Phantom as BoM type. "\
"If a Phantom BoM is used for a root product, it will be sold and shipped as a set of components, instead of being produced."),
'method': fields.function(_compute_type, string='Method', method=True, type='selection', selection=[('',''),('stock','On Stock'),('order','On Order'),('set','Set / Pack')]),
'date_start': fields.date('Valid From', help="Validity of this BoM or component. Keep empty if it's always valid."),
@@ -250,7 +248,6 @@ class mrp_bom(osv.osv):
@param properties: List of related properties.
@return: False or BoM id.
"""
bom_result = False
cr.execute('select id from mrp_bom where product_id=%s and bom_id is null order by sequence', (product_id,))
ids = map(lambda x: x[0], cr.fetchall())
max_prop = 0
@@ -479,7 +476,7 @@ class mrp_production(osv.osv):
'name': lambda x, y, z, c: x.pool.get('ir.sequence').get(y, z, 'mrp.production') or '/',
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.production', context=c),
}
_order = 'date_planned asc, priority desc';
_order = 'priority desc, date_planned asc';
def _check_qty(self, cr, uid, ids):
orders = self.browse(cr, uid, ids)
@@ -681,7 +678,6 @@ class mrp_production(osv.osv):
stock_mov_obj = self.pool.get('stock.move')
production = self.browse(cr, uid, production_id)
raw_product_todo = []
final_product_todo = []
produced_qty = 0
@@ -800,7 +796,6 @@ class mrp_production(osv.osv):
""" Changes state to In Production and writes starting date.
@return: True
"""
move_ids = []
self.write(cr, uid, ids, {'state': 'in_production', 'date_start': time.strftime('%Y-%m-%d %H:%M:%S')})
return True
+47 -31
View File
@@ -33,7 +33,7 @@
</field>
</record>
<record id="mrp_property_group_action" model="ir.actions.act_window">
<field name="name">Property Categories</field>
<field name="name">Property Groups</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.property.group</field>
<field name="view_type">form</field>
@@ -64,7 +64,6 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Properties">
<separator colspan="4" string="General Information"/>
<field colspan="4" name="name" select="1"/>
<field name="group_id" select="1"/>
<field name="composition" select="1"/>
@@ -82,8 +81,8 @@
<search string="Search">
<group col='15' colspan='4'>
<field name="name"/>
<field name="group_id" widget="selection" />
<field name="composition"/>
<field name="group_id" widget="selection" />
</group>
<newline/>
<group expand="0" string="Group By..." colspan="4" col="20">
@@ -132,7 +131,7 @@
<field name="name"/>
<field name="resource_id"/>
<field name="resource_type"/>
<field name="company_id"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
@@ -192,9 +191,11 @@
</group>
<newline/>
<group expand="0" string="Group By..." colspan="4" col="20" groups="base.group_extended">
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'resource_type'}"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"/>
<filter string="Resource" icon="terp-personal" domain="[]" context="{'group_by':'resource_id'}"/>
<separator orientation="vertical"/>
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'resource_type'}"/>
<separator orientation="vertical" groups="base.group_multi_company"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
</group>
</search>
</field>
@@ -252,15 +253,18 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Routing">
<separator colspan="4" string="General Information"/>
<field name="name" select="1"/>
<field name="active" select="1" groups="base.group_extended"/>
<field name="code" select="1"/>
<field name="name"/>
<field name="code"/>
<field name="location_id"/>
<separator colspan="4" string="Description"/>
<field colspan="4" name="note" nolabel="1"/>
<separator colspan="4" string="Work Center Operations"/>
<field colspan="4" name="workcenter_lines" nolabel="1" widget="one2many_list"/>
<field name="active" groups="base.group_extended"/>
<notebook colspan="4">
<page string="Work Center Operations">
<field colspan="4" name="workcenter_lines" nolabel="1" widget="one2many_list"/>
</page>
<page string="Notes">
<field colspan="4" name="note" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</record>
@@ -276,12 +280,25 @@
</tree>
</field>
</record>
<record id="mrp_routing_search_view" model="ir.ui.view">
<field name="name">mrp.routing.search</field>
<field name="model">mrp.routing</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<search string="Routing">
<field name="code"/>
<field name="name"/>
<field name="location_id"/>
</search>
</field>
</record>
<record id="mrp_routing_action" model="ir.actions.act_window">
<field name="name">Routings</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.routing</field>
<field name="view_type">form</field>
<field name="view_id" ref="mrp_routing_tree_view"/>
<field name="search_view_id" ref="mrp_routing_search_view"/>
<field name="help">Routings define the assembly operations to be done in work centers for manufacturing a certain product. They are usually attached to bills of materials which will define the assembly of products required for manufacture or for finished products.</field>
</record>
<menuitem action="mrp_workcenter_action" id="menu_mrp_workcenter_action" parent="mrp.menu_mrp_property" groups="base.group_extended" sequence="40" />
@@ -358,16 +375,14 @@
<field name="company_id" groups="base.group_multi_company"/>
</group>
<newline/>
<group expand="0" string="Group By" colspan="4" col="8" groups="base.group_extended">
<group expand="0" string="Group By..." colspan="4" col="8" groups="base.group_extended">
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Routing" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'routing_id'}"/>
<separator orientation="vertical"/>
<filter string='Default UOM' icon="terp-mrp" domain="[]" context="{'group_by' : 'product_uom'}" />
<separator orientation="vertical"/>
<filter string="Routing" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'routing_id'}"/>
<filter string='Type' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'type'}" />
<separator orientation="vertical"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_start'}" help="Starting Date"/>
</group>
</search>
</field>
@@ -497,10 +512,10 @@
<field name="arch" type="xml">
<tree colors="blue:state in ('draft','confirmed');red:date_planned&lt;current_date and state not in ('done','cancel');black:date_planned&gt;=current_date;gray:state in ('done','cancel') " string="Manufacturing Orders">
<field name="name"/>
<field name="date_planned"/>
<field name="product_id"/>
<field name="product_qty" sum="Total Qty"/>
<field name="product_uom"/>
<field name="date_planned"/>
<field name="routing_id" groups="base.group_extended"/>
<field name="hour_total" sum="Total Hours" groups="base.group_extended"/>
<field name="cycle_total" sum="Total Cycles" groups="base.group_extended"/>
@@ -625,16 +640,16 @@
states="done,cancel"/>
</tree>
</field>
<separator colspan="4"/>
<group col="9" colspan="4">
<field name="state"/>
<button name="action_compute" states="draft" string="Compute Data" type="object" icon="gtk-execute"/>
<button name="action_compute" states="draft" string="Compute Data" type="object" icon="terp-stock_format-scientific"/>
<button name="button_confirm" states="draft" string="Confirm Production" icon="gtk-apply"/>
<button name="button_produce" states="ready" string="Start Production" icon="gtk-execute"/>
<button name="button_produce" states="ready" string="Start Production" icon="terp-gtk-jump-to-ltr"/>
<button name="%(act_mrp_product_produce)d" states="in_production" string="Produce" icon="gtk-ok" type="action"/>
<button name="force_production" states="confirmed,picking_except" string="Force Reservation" type="object" icon="gtk-jump-to"/>
<button name="button_cancel" states="draft,ready,confirmed,in_production,picking_except" string="Cancel" icon="gtk-cancel"/>
<button name="button_recreate" states="picking_except" string="Recreate Picking" icon="gtk-convert"/>
<button name="button_cancel" states="draft,ready,confirmed,in_production,picking_except" string="Cancel" icon="gtk-stop"/>
<button name="button_recreate" states="picking_except" string="Recreate Picking" icon="terp-document-new"/>
</group>
</page>
<page string="Finished Products">
@@ -736,12 +751,13 @@
<field name="origin"/>
</group>
<newline/>
<group expand="0" string="Group By" colspan="10" col="8">
<group expand="0" string="Group By..." colspan="10" col="8">
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<filter string="Routing" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'routing_id'}" groups="base.group_extended"/>
<separator orientation="vertical"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_planned'}"/>
<filter string="Routing" icon="terp-stock_align_left_24" domain="[]" context="{'group_by':'routing_id'}" groups="base.group_extended"/>
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_planned'}" help="Scheduled Date"/>
</group>
</search>
</field>
@@ -761,12 +777,12 @@
</record>
<menuitem action="mrp_production_action" id="menu_mrp_production_action" parent="menu_mrp_manufacturing" groups="base.group_system,mrp.group_mrp_user,mrp.group_mrp_manager" sequence="1"/>
<record id="mrp_production_action2_gantt" model="ir.actions.act_window">
<record id="mrp_production_action_planning" model="ir.actions.act_window">
<field name="name">Manufacturing Orders Planning</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">mrp.production</field>
<field name="view_type">form</field>
<field name="view_mode">gantt,tree,form,calendar,graph</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="domain">[('state','in',('ready','confirmed','in_production'))]</field>
<field name="help">Manufacturing Orders describe the operations that need to be carried out and the raw materials usage for each stage of production. You use specifications (bills of materials or BoM) to work out the raw material requirements and the manufacturing orders needed for the finished products. Once the bills of materials have been defined, OpenERP becomes capable of automatically deciding on the manufacturing route depending on the needs of the company.</field>
</record>
+1
View File
@@ -40,6 +40,7 @@ class bom_structure(report_sxw.rml_parse):
res = {}
res['name'] = l.name
res['pname'] = l.product_id.name
res['pcode'] = l.product_id.default_code
res['pqty'] = l.product_qty
res['uname'] = l.product_uom.name
res['code'] = l.code
+10 -8
View File
@@ -67,7 +67,9 @@
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_Centre_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Bold_Right_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_Right_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_default_8_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
@@ -82,7 +84,7 @@
<blockTable colWidths="166.0,208.0,79.0,55.0" style="Table3">
<tr>
<td>
<para style="terp_tblheader_General">BOM</para>
<para style="terp_tblheader_General">BOM Name</para>
</td>
<td>
<para style="terp_tblheader_General">Product Name</para>
@@ -91,23 +93,23 @@
<para style="terp_tblheader_General_Right">Quantity</para>
</td>
<td>
<para style="terp_tblheader_General_Centre">Code</para>
<para style="terp_tblheader_General_Centre">BOM Ref</para>
</td>
</tr>
</blockTable>
<blockTable colWidths="166.0,208.0,79.0,55.0" style="Table4">
<tr>
<td>
<para style="terp_default_9">[[ o.name ]]</para>
<para style="terp_default_Bold_9">[[ o.name ]]</para>
</td>
<td>
<para style="terp_default_9">[[ o.product_id.name ]]</para>
<para style="terp_default_Bold_9"><font> [ [[ (o.product_id.default_code) or removeParentNode('font') ]] ] </font> <font> [[ o.product_id.name ]] </font> </para>
</td>
<td>
<para style="terp_default_Right_9">[[ o.product_qty ]] [[ o.product_uom.name ]]</para>
<para style="terp_default_Bold_Right_9">[[ o.product_qty ]] [[ o.product_uom.name ]]</para>
</td>
<td>
<para style="terp_default_Centre_9">[[ o.code ]]</para>
<para style="terp_default_Bold_Centre_9">[[ o.code ]]</para>
</td>
</tr>
</blockTable>
@@ -116,10 +118,10 @@
<blockTable colWidths="166.0,208.0,79.0,55.0" style="Table1">
<tr>
<td>
<para style="P1"><font color="white">[[ '... '*(l['level']) ]]</font>-[[ l['name'] ]]</para>
<para style="P1"><font color="white">[[ '... '*2*(l['level']) ]]</font>-[[ l['name'] ]]</para>
</td>
<td>
<para style="P1">[[ l['pname'] ]]</para>
<para style="P1"><font> [ [[ (l['pcode']) or removeParentNode('font') ]] ] </font> <font> [[ l['pname'] ]] </font> </para>
</td>
<td>
<para style="P2">[[ l['pqty'] ]] [[ l['uname'] ]]</para>
+13 -11
View File
@@ -48,18 +48,18 @@
<field name="arch" type="xml">
<search string="Search">
<group col="16" colspan="6">
<filter icon="terp-go-year" string=" 365 Days "
domain="[('date_start','&lt;=', time.strftime('%%Y-%%m-%%d')),('date_start','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="Production performed in last 365 Days"/>
<filter icon="terp-go-month" string=" 30 Days "
<filter icon="terp-go-year" string="Year"
domain="[('year','=',time.strftime('%%Y'))]"
help="Production performed during current year"/>
<filter icon="terp-go-month" string="Month"
name="month"
domain="[('date_start','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date_start','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Production performed in last 30 days"/>
domain="[('month','=',time.strftime('%%m'))]"
help="Production performed during current month"/>
<filter icon="terp-go-week"
string=" 7 Days "
string="Month -1"
separator="1"
domain="[('date_start','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date_start','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Production during last 7 days"/>
domain="[('date_start','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date_start','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Production during last month"/>
<separator orientation="vertical"/>
<filter string="Current" icon="terp-check" domain="[('state','in',('open','draft'))]"/>
<filter icon="terp-check" string="In Production" domain="[('state','=','in_production')]"/>
@@ -79,10 +79,12 @@
<separator orientation="vertical"/>
<filter string="State" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<separator orientation="vertical" groups="base.group_multi_company"/>
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/>
<separator orientation="vertical"/>
<filter string="Month" name="terp-go-month" icon="terp-go-month" context="{'group_by':'month'}"/>
<separator orientation="vertical"/>
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/>
</group>
<newline/>
+13 -15
View File
@@ -7,9 +7,9 @@
<field name="model">report.workcenter.load</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Work Ccenters load">
<field name="name" select="1"/>
<field name="workcenter_id" select="1"/>
<tree string="Work Centers load">
<field name="name"/>
<field name="workcenter_id"/>
<field name="cycle"/>
<field name="hour"/>
</tree>
@@ -22,26 +22,23 @@
<field name="type">graph</field>
<field name="arch" type="xml">
<graph string="Work Center load" type="bar">
<field name="name"/>
<field group="True" name="name"/>
<field name="cycle" operator="+"/>
<field name="hour" operator="+"/>
<field group="True" name="workcenter_id"/>
</graph>
</field>
</record>
<record id="view_workcenter_load_form" model="ir.ui.view">
<field name="name">report.workcenter.load.form</field>
<record id="view_workcenter_load_search" model="ir.ui.view">
<field name="name">report.workcenter.load.search</field>
<field name="model">report.workcenter.load</field>
<field name="type">form</field>
<field name="type">search</field>
<field name="arch" type="xml">
<form string="Work Center load" type="bar">
<field name="name" select="1"/>
<field name="workcenter_id" select="1"/>
<field name="cycle"/>
<field name="hour"/>
</form>
<search string="Work Center load">
<field name="name"/>
<field name="workcenter_id" widget="selection"/>
</search>
</field>
</record>
<record id="action_report_workcenter_load_tree" model="ir.actions.act_window">
@@ -49,6 +46,7 @@
<field name="res_model">report.workcenter.load</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree</field>
<field name="search_view_id" ref="view_workcenter_load_search"/>
<field name="help">Work Center Load is a projection of load in a work center given a period. The load is express in hour and cycle (for machines).</field>
</record>
<menuitem id="next_id_77" name="Reporting"
+1
View File
@@ -147,6 +147,7 @@ class report_custom(report_int):
FROM mrp_production_workcenter_line, mrp_production, mrp_workcenter, resource_resource \
WHERE (mrp_production_workcenter_line.production_id=mrp_production.id) \
AND (mrp_production_workcenter_line.workcenter_id=mrp_workcenter.id) \
AND (mrp_workcenter.resource_id=resource_resource.id) \
AND (mrp_workcenter.id=%s) \
AND (mrp_production.date_planned BETWEEN %s AND %s) \
GROUP BY mrp_production_workcenter_line.workcenter_id, resource_resource.name, mrp_workcenter.id \
+1 -1
View File
@@ -27,7 +27,7 @@
-
!workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo1}
-
I am checking Procurement orders.
I am checking Procurement orders for components of PC1.
-
!python {model: procurement.order}: |
from tools.translate import _
@@ -16,8 +16,8 @@
<newline/>
<separator colspan="4"/>
<group col="2" colspan="4">
<button icon='gtk-close' special="cancel"
string="Close" />
<button icon='gtk-stop' special="cancel"
string="Cancel" />
<button name="change_prod_qty" string="Approve"
colspan="1" type="object" icon="gtk-ok" />
</group>
+2 -2
View File
@@ -15,8 +15,8 @@
<newline/>
<separator string="" colspan="4"/>
<group col="2" colspan="4">
<button icon='gtk-close' special="cancel"
string="Close" />
<button icon='gtk-stop' special="cancel"
string="Cancel" />
<button name="print_report" string="Print"
colspan="1" type="object" icon="gtk-print" />
</group>
@@ -18,8 +18,8 @@
<separator string="" colspan="4" />
<label string="" colspan="2" />
<group col="2" colspan="1">
<button icon='gtk-close' special="cancel"
string="Close" />
<button icon='gtk-stop' special="cancel"
string="Cancel" />
<button name="do_produce" string="Confirm"
colspan="1" type="object" icon="gtk-ok" />
</group>
@@ -15,10 +15,10 @@
<field name="measure_unit"/>
<newline/>
<group col="2" colspan="4">
<button icon='gtk-close' special="cancel"
string="Close" />
<button icon='gtk-stop' special="cancel"
string="Cancel" />
<button name="print_report" string="Print"
colspan="1" type="object" icon="gtk-ok" />
colspan="1" type="object" icon="gtk-print" />
</group>
</form>
</field>
+5 -8
View File
@@ -21,7 +21,6 @@
from osv import fields
from osv import osv
import ir
import datetime
import netsvc
import time
@@ -135,8 +134,6 @@ class mrp_production_workcenter_line(osv.osv):
result = super(mrp_production_workcenter_line, self).write(cr, uid, ids, vals, context=context)
prod_obj = self.pool.get('mrp.production')
if vals.get('date_planned', False) and update:
pids = {}
pids2 = {}
for prod in self.browse(cr, uid, ids, context=context):
if prod.production_id.workcenter_lines:
dstart = min(vals['date_planned'], prod.production_id.workcenter_lines[0]['date_planned'])
@@ -496,25 +493,25 @@ class mrp_operations_operation(osv.osv):
production_obj=self.pool.get('mrp.production').browse(cr,uid,vals['production_id'])
wc_op_id.append(self.pool.get('mrp.production.workcenter.line').create(cr,uid,{'production_id':vals['production_id'],'name':production_obj.product_id.name,'workcenter_id':vals['workcenter_id']}))
if code.start_stop=='start':
tmp=self.pool.get('mrp.production.workcenter.line').action_start_working(cr,uid,wc_op_id)
self.pool.get('mrp.production.workcenter.line').action_start_working(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_start_working', cr)
if code.start_stop=='done':
tmp=self.pool.get('mrp.production.workcenter.line').action_done(cr,uid,wc_op_id)
self.pool.get('mrp.production.workcenter.line').action_done(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_done', cr)
self.pool.get('mrp.production').write(cr,uid,vals['production_id'],{'date_finnished':DateTime.now().strftime('%Y-%m-%d %H:%M:%S')})
if code.start_stop=='pause':
tmp=self.pool.get('mrp.production.workcenter.line').action_pause(cr,uid,wc_op_id)
self.pool.get('mrp.production.workcenter.line').action_pause(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_pause', cr)
if code.start_stop=='resume':
tmp=self.pool.get('mrp.production.workcenter.line').action_resume(cr,uid,wc_op_id)
self.pool.get('mrp.production.workcenter.line').action_resume(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_resume', cr)
if code.start_stop=='cancel':
tmp=self.pool.get('mrp.production.workcenter.line').action_cancel(cr,uid,wc_op_id)
self.pool.get('mrp.production.workcenter.line').action_cancel(cr,uid,wc_op_id)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', wc_op_id[0], 'button_cancel', cr)
if not self.check_operation(cr, uid, vals):
+23 -23
View File
@@ -14,12 +14,12 @@
<xpath expr="/form/notebook/page/field[@name='workcenter_lines']/form/field[@name='hour']" position="after">
<group colspan="8" col="8">
<field name="state"/>
<button name="button_draft" string="Set Draft" states="cancel" icon="gtk-convert"/>
<button name="button_start_working" string="Start" states="draft" icon="gtk-go-forward"/>
<button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-cancel"/>
<button name="button_pause" string="Pause" states="startworking" icon="gtk-media-pause"/>
<button name="button_done" string="Finished" states="startworking" icon="gtk-ok"/>
<button name="button_draft" string="Set Draft" states="cancel" icon="gtk-convert" help="Set to Draft"/>
<button name="button_start_working" string="Start" states="draft" icon="terp-gtk-jump-to-ltr" help="Start Working"/>
<button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause" help="Resume Work Order"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-stop" help="Cancel Order"/>
<button name="button_pause" string="Pause" states="startworking" icon="gtk-media-pause" help="Pause Work Order"/>
<button name="button_done" string="Finished" states="startworking" icon="terp-dialog-close" help="Finish Order"/>
</group>
</xpath>
</field>
@@ -32,12 +32,12 @@
<field name="inherit_id" ref="mrp.mrp_production_form_view"/>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='workcenter_lines']/tree/field[@name='hour']" position="after">
<button name="button_done" string="Finished" states="startworking" icon="gtk-ok"/>
<button name="button_pause" string="Pause" states="startworking" icon="gtk-media-pause"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-cancel"/>
<button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause"/>
<button name="button_start_working" string="Start" states="draft" icon="gtk-go-forward"/>
<button name="button_draft" string="Set Draft" states="cancel" icon="gtk-convert"/>
<button name="button_start_working" string="Start" states="draft" icon="terp-gtk-jump-to-ltr"/>
<button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-stop"/>
<button name="button_pause" string="Pause" states="startworking" icon="gtk-media-pause"/>
<button name="button_done" string="Finished" states="startworking" icon="terp-dialog-close"/>
<field name="state"/>
</xpath>
</field>
@@ -49,7 +49,7 @@
<field name="type">tree</field>
<field name="inherit_id" eval="False"/>
<field name="arch" type="xml">
<tree string="Work Orders" colors="gray:state in ('done','cancel');black:state in ('draft','startworking');red: state=='pause'">
<tree string="Work Orders" colors="gray:state in ('done','cancel');black:state in ('draft','startworking') and date_planned&gt;=current_date;red:date_planned&lt;current_date and state not in ('done','cancel')">
<field name="production_id"/>
<field name="date_planned"/>
<field name="product"/>
@@ -61,11 +61,11 @@
<field name="hour"/>
<field name="state" />
<button name="button_draft" string="Set Draft" states="cancel" icon="gtk-convert" help="Set to Draft"/>
<button name="button_start_working" string="Start" states="draft" icon="gtk-go-forward" help="Start Working"/>
<button name="button_start_working" string="Start" states="draft" icon="terp-gtk-jump-to-ltr" help="Start Working"/>
<button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause" help="Resume Work Order"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-cancel" help="Cancel Order"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-stop" help="Cancel Order"/>
<button name="button_pause" string="Pause" states="startworking" icon="gtk-media-pause" help="Pause Work Order"/>
<button name="button_done" string="Finished" states="startworking" icon="gtk-ok" help="Finish Order"/>
<button name="button_done" string="Finished" states="startworking" icon="terp-dialog-close" help="Finish Order"/>
</tree>
</field>
</record>
@@ -111,15 +111,15 @@
<field name="uom"/>
</group>
<separator string="State" colspan="4"/>
<separator string="" colspan="4"/>
<group colspan="8" col="8">
<field name="state"/>
<button name="button_draft" string="Set Draft" states="cancel" icon="gtk-convert"/>
<button name="button_start_working" string="Start" states="draft" icon="gtk-go-forward"/>
<button name="button_start_working" string="Start" states="draft" icon="terp-gtk-jump-to-ltr"/>
<button name="button_resume" string="Resume" states="pause" icon="gtk-media-pause"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-cancel"/>
<button name="button_cancel" string="Cancel" states="draft,startworking" icon="gtk-stop"/>
<button name="button_pause" string="Pause" states="startworking" icon="gtk-media-pause"/>
<button name="button_done" string="Finished" states="startworking" icon="gtk-ok"/>
<button name="button_done" string="Finished" states="startworking" icon="terp-dialog-close"/>
</group>
</page>
</notebook>
@@ -153,9 +153,9 @@
<field name="date_planned" widget="date"/>
</group>
<newline/>
<group expand="0" string="Group By" colspan="10" col="8" groups="base.group_extended">
<filter string="Workcenter" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'workcenter_id'}"/>
<filter string="Production" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'production_id'}"/>
<group expand="0" string="Group By..." colspan="10" col="8" groups="base.group_extended">
<filter string="Workcenter" icon="terp-go-home" domain="[]" context="{'group_by':'workcenter_id'}"/>
<filter string="Production" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'production_id'}"/>
<separator orientation="vertical"/>
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
@@ -249,7 +249,7 @@
</record>
<menuitem action="mrp.mrp_production_action"
<menuitem action="mrp.mrp_production_action_planning"
id="menu_mrp_production_order_action"
parent="menu_mrp_planning" sequence="1"
groups="base.group_extended"/>
+1 -1
View File
@@ -109,7 +109,7 @@ class mrp_repair(osv.osv):
('invoice_except','Invoice Exception'),
('done','Done'),
('cancel','Cancel')
], 'Repair State', readonly=True,
], 'State', readonly=True,
help=' * The \'Draft\' state is used when a user is encoding a new and unconfirmed repair order. \
\n* The \'Confirmed\' state is used when a user confirms the repair order. \
\n* The \'Ready to Repair\' state is used to start to repairing, user can start repairing only after repair order is confirmed. \
+24 -24
View File
@@ -7,14 +7,13 @@
<field name="model">mrp.repair</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Repairs order">
<field name="name" select="1" />
<tree string="Repairs order" colors="gray:state in ('done','cancel');black:state not in ('done','cancel');blue:state=='draft'">
<field name="name" select="1" />
<field name="product_id" select="1" />
<field name="prodlot_id"/>
<field name="move_id"/>
<field name="partner_id"/>
<field name="address_id"/>
<field name="location_id"/>
<field name="move_id"/>
<field name="location_dest_id"/>
<field name="guarantee_limit"/>
<field name="state"/>
@@ -94,22 +93,22 @@
<field name="amount_untaxed" sum="Untaxed amount"/>
<field name="amount_tax"/>
<field name="amount_total" sum="Total amount"/>
<button name="button_dummy" states="draft" string="Compute" type="object"/>
<button name="button_dummy" states="draft" string="Compute" type="object" icon="terp-stock_format-scientific"/>
</group>
<newline/>
<separator string="" colspan="4"/>
<group col="13" colspan="4">
<field name="state"/>
<button name="repair_confirm" states="draft" string="Confirm Repair" icon="gtk-apply"/>
<button name="repair_ready" states="confirmed" string="Start Repair" icon="gtk-go-forward"/>
<button name="action_repair_start" states="ready" string="Start Repair" icon="gtk-go-forward"/>
<button name="action_repair_end" states="under_repair" string="End Repair" icon="gtk-ok"/>
<button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-convert"/>
<button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="gtk-apply"/>
<button name="action_invoice_create" states="2binvoiced" string="Make Invoice" icon="gtk-ok"/>
<button name="%(action_cancel_repair)d" states="invoice_except" string="Cancel Repair" type="action" icon="gtk-cancel"/>
<button name="repair_confirm" states="draft" string="Confirm Repair" icon="terp-camera_test"/>
<button name="repair_ready" states="confirmed" string="Start Repair" icon="terp-gtk-jump-to-ltr"/>
<button name="action_repair_start" states="ready" string="Start Repair" icon="terp-gtk-jump-to-ltr"/>
<button name="action_repair_end" states="under_repair" string="End Repair" icon="terp-dialog-close"/>
<button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="terp-dolar"/>
<button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="terp-emblem-important"/>
<button name="action_invoice_create" states="2binvoiced" string="Make Invoice" icon="terp-dolar"/>
<button name="%(action_cancel_repair)d" states="invoice_except" string="Cancel Repair" type="action" icon="gtk-stop"/>
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-convert"/>
<button name="cancel" states="draft" string="Cancel Repair" icon="gtk-cancel"/>
<button name="%(action_cancel_repair)d" states="confirmed,2binvoiced,ready,under_repair" string="Cancel Repair" type="action" icon="gtk-cancel"/>
<button name="cancel" states="draft" string="Cancel Repair" icon="gtk-stop"/>
<button name="%(action_cancel_repair)d" states="confirmed,2binvoiced,ready,under_repair" string="Cancel Repair" type="action" icon="gtk-stop"/>
</group>
</page>
<page string="Invoicing">
@@ -153,18 +152,18 @@
</tree>
</field>
</page>
<page string="Quality">
<separator colspan="4" string="Internal Notes"/>
<field colspan="4" name="internal_notes" nolabel="1"/>
<separator colspan="4" string="Quotation Notes"/>
<field colspan="4" name="quotation_notes" nolabel="1"/>
</page>
<page string="Extra Info" groups="base.group_extended">
<field name="invoice_id"/>
<field name="picking_id"/>
<field name="location_id"/>
<field name="location_dest_id" attrs="{'readonly':[('deliver_bool','=', False)], 'required':[('deliver_bool','=', True)]}"/>
</page>
<page string="Notes">
<separator colspan="4" string="Internal Notes"/>
<field colspan="4" name="internal_notes" nolabel="1"/>
<separator colspan="4" string="Quotation Notes"/>
<field colspan="4" name="quotation_notes" nolabel="1"/>
</page>
</notebook>
</form>
</field>
@@ -183,7 +182,7 @@
<filter icon="terp-check" string="Confirmed" domain="[('state','=','confirmed')]" name="current" />
<filter icon="terp-emblem-important" string="Ready To Repair" domain="[('state','=','ready')]"/>
<separator orientation="vertical"/>
<filter icon="terp-dolar" string="invoiced" domain="[('state','=','2binvoiced')]"/>
<filter icon="terp-dolar" string="invoiced" domain="[('invoiced','=',True)]"/>
<separator orientation="vertical"/>
<field name="name"/>
<field name="product_id"/>
@@ -192,10 +191,11 @@
</group>
<newline/>
<group expand="0" string="Group By..." colspan="10" col="8" groups="base.group_extended">
<filter string="Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<separator orientation="vertical"/>
<filter string="Product" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'guarantee_limit'}"/>
</group>
</search>
+2 -2
View File
@@ -69,8 +69,8 @@ class repair_cancel(osv.osv_memory):
<group col="2" colspan="2">
<label string="Do you want to continue?" colspan="4"/>
<separator colspan="4"/>
<button icon="gtk-cancel" special="cancel" string="No" readonly="0"/>
<button name="cancel_repair" string="Yes" type="object" icon="gtk-ok"/>
<button icon="gtk-stop" special="cancel" string="_No" readonly="0"/>
<button name="cancel_repair" string="_Yes" type="object" icon="gtk-ok"/>
</group>
</form>
"""
@@ -13,9 +13,9 @@
<label string="This operation will cancel the Repair process, but will not cancel it's Invoice. Do you want to continue?" colspan="4"/>
<newline/>
<group col="2" colspan="4">
<button icon='gtk-cancel' special="cancel"
string="No" />
<button name="cancel_repair" string="Yes"
<button icon="gtk-stop" special="cancel"
string="_No" />
<button name="cancel_repair" string="_Yes"
colspan="1" type="object" icon="gtk-ok" />
</group>
</form>
@@ -14,10 +14,10 @@
<field name="group"/>
<newline/>
<group col="2" colspan="4">
<button icon='gtk-close' special="cancel"
string="Close" />
<button name="make_invoices" string="Create Invoice"
colspan="1" type="object" icon="gtk-ok" />
<button icon="gtk-stop" special="cancel"
string="_Cancel" />
<button name="make_invoices" string="Create _Invoice"
colspan="1" type="object" icon="terp-dolar" />
</group>
</form>
</field>
+8 -8
View File
@@ -280,8 +280,8 @@ class pos_order(osv.osv):
'date_validation': fields.function(_get_date_payment, method=True, string='Validation Date', type='date', store=True),
'date_payment': fields.function(_get_date_payment2, method=True, string='Payment Date', type='date', store=True),
'date_validity': fields.date('Validity Date', required=True),
'user_id': fields.many2one('res.users', 'Connected Salesman'),
'user_salesman_id': fields.many2one('res.users', 'Cashier', required=True),
'user_id': fields.many2one('res.users', 'Connected Salesman', help="Person who uses the the register. It could be a reliever, a student or an interim employee."),
'user_salesman_id': fields.many2one('res.users', 'Cashier', required=True, help="User who is logged into the system."),
'sale_manager': fields.many2one('res.users', 'Salesman Manager'),
'amount_tax': fields.function(_amount_all, method=True, string='Taxes', digits_compute=dp.get_precision('Point Of Sale'), multi='all'),
'amount_total': fields.function(_amount_total, method=True, string='Total'),
@@ -295,7 +295,7 @@ class pos_order(osv.osv):
'payments': fields.one2many('pos.payment', 'order_id', 'Order Payments', states={'draft': [('readonly', False)]}, readonly=True),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, states={'draft': [('readonly', False)]}, readonly=True),
'partner_id': fields.many2one( 'res.partner', 'Customer', change_default=True, select=1, states={'draft': [('readonly', False)], 'paid': [('readonly', False)]}),
'state': fields.selection([('draft', 'Draft'), ('payment', 'Payment'),
'state': fields.selection([('draft', 'Quotation'), ('payment', 'Payment'),
('advance','Advance'),
('paid', 'Paid'), ('done', 'Done'), ('invoiced', 'Invoiced'), ('cancel', 'Cancel')],
'State', readonly=True, ),
@@ -358,7 +358,7 @@ class pos_order(osv.osv):
def test_order_lines(self, cr, uid, order, context=None):
""" Test order line is created or not for the order "
""" Test order line is created or not for the order "
@param name: Names of fields.
@return: True
"""
@@ -581,7 +581,7 @@ class pos_order(osv.osv):
account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context)
args['account_id'] = order.partner_id and order.partner_id.property_account_receivable and order.partner_id.property_account_receivable.id or account_def.id or curr_c.account_receivable.id
if data.get('is_acc',False):
args['is_acc']=data['is_acc']
args['is_acc'] = data['is_acc']
args['account_id']= prod_obj.browse(cr,uid, data['product_id']).property_account_income and prod_obj.browse(cr,uid, data['product_id']).property_account_income.id
if not args['account_id']:
raise osv.except_osv(_('Error'), _('Please provide an account for the product: %s')%(prod_obj.browse(cr,uid, data['product_id']).name))
@@ -631,7 +631,7 @@ class pos_order(osv.osv):
wf_service = netsvc.LocalService("workflow")
wf_service.trg_write(uid, 'pos.order', order_id, cr)
return order_line_id
return order_line_id, price
def refund(self, cr, uid, ids, context=None):
"""Create a copy of order for refund order"""
@@ -1270,9 +1270,9 @@ pos_payment()
class product_product(osv.osv):
_inherit = 'product.product'
_columns = {
'income_pdt': fields.boolean('Product for Incoming'),
'income_pdt': fields.boolean('Product for Input'),
'expense_pdt': fields.boolean('Product for expenses'),
'am_out': fields.boolean('Controle for Outgoing Operations'),
'am_out': fields.boolean('Controle for Output Operations'),
'disc_controle': fields.boolean('Discount Controle '),
}
_defaults = {
+39 -68
View File
@@ -12,12 +12,14 @@
<field name="arch" type="xml">
<form string="Sales Order POS">
<group col="6" colspan="4">
<field name="name"/>
<field name="date_order"/>
<field name="shop_id" widget="selection"/>
<field name="partner_id" on_change="onchange_partner_pricelist(partner_id)"/>
<field name="contract_number" groups="base.group_extended"/>
</group>
<notebook colspan="4">
<page string="Sale Order ">
<notebook colspan="4">
<page string="Sale Order">
<field name="lines" colspan="4" nolabel="1">
<tree string="Order lines" editable="bottom">
<field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)" width="275" />
@@ -29,7 +31,7 @@
<field name="price_subtotal" />
<field name="price_subtotal_incl" sum="Subtotal"/>
</tree>
<form string="Order lines" >
<form string="Order lines">
<field name="product_id" on_change="onchange_product_id(parent.pricelist_id,product_id,qty,parent.partner_id)" width="275"/>
<field name="qty"/>
<field name="qty_rfd" groups="base.group_extended"/>
@@ -39,46 +41,23 @@
<field name="notice"/>
<field name="serial_number"/>
</form>
</field>
<group colspan="4" col="7">
<field name="amount_tax"/>
<field name="amount_total"/>
</group>
<separator colspan="4" string="Actions"/>
<separator colspan="4"/>
<group colspan="4" col="6">
<field name="state" />
<button name="%(action_pos_payment)d" string="Ma_ke Payment" icon="gtk-ok" type="action" states="draft,advance" />
<button name="%(action_report_pos_receipt)d" string="_Reprint" icon="gtk-print" type="action" states="paid,done,invoiced"/>
<button name="%(action_pos_payment)d" string="Make Payment" icon="terp-dolar" type="action" states="draft,advance" />
<button name="%(action_report_pos_receipt)d" string="Reprint" icon="gtk-print" type="action" states="paid,done,invoiced"/>
<button name="set_to_draft" string="Set to draft" states="paid" icon="gtk-execute" type="object" />
<button name="%(action_view_pos_return)d" string="Return Picking" type="action" icon="gtk-ok" states="paid"
attrs="{'invisible':[('state','!=','paid'),('state','!=','invoiced')]}" context="{'return':'return'}" />
</group>
</page>
<page string="Order and Payment">
<group colspan="2" col="2" name="Type">
<separator string="Order Information" colspan="4"/>
<field name="name"/>
<field name="shop_id" widget="selection"/>
<field name="user_salesman_id" />
<field name="company_id" groups="base.group_multi_company"/>
<field name="price_type" />
<field name="user_id" string="Salesman" groups="base.group_extended"/>
</group>
<group colspan="2" col="2" name="Type">
<separator string="Dates" colspan="4"/>
<field name="date_order"/>
<field name="date_validation" />
<field name="date_payment" groups="base.group_extended"/>
</group>
<group colspan="4">
<field name="partner_id" on_change="onchange_partner_pricelist(partner_id)" invisible="1"/>
<field name="sale_journal" domain="[('type','=','sale')]" widget="selection" invisible="1"/>
<field name="pricelist_id" domain="[('type','=','sale')]" widget="selection" invisible="1"/>
</group>
<page string="Payment">
<field name="statement_ids" colspan="4" nolabel="1">
<tree editable="bottom" string="Statement lines">
<field name="amount"/>
@@ -92,12 +71,28 @@
</form>
</field>
</page>
<page string="Extra Info">
<group colspan="2" col="2" name="Type">
<separator string="Other Information" colspan="4"/>
<field name="user_salesman_id" />
<field name="company_id" groups="base.group_multi_company"/>
<field name="price_type" />
<field name="user_id" string="Salesman" groups="base.group_extended"/>
</group>
<group colspan="2" col="2" name="Type">
<separator string="Dates" colspan="4"/>
<field name="date_validation" />
<field name="date_payment" groups="base.group_extended"/>
</group>
<group colspan="4">
<field name="sale_journal" domain="[('type','=','sale')]" widget="selection" invisible="1"/>
<field name="pricelist_id" domain="[('type','=','sale')]" widget="selection" invisible="1"/>
</group>
</page>
<page string="Notes" >
<field colspan="4" name="note" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</record>
@@ -114,16 +109,17 @@
<field name="model">pos.order</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="POS Orders">
<tree string="POS Orders" colors="blue:state == 'draft';gray:state in ('done','cancel');black:state not in('done','cancel')">
<field name="name"/>
<field name="partner_id"/>
<field name="date_order"/>
<field name="date_validation"/>
<field name="date_payment"/>
<field name="user_id"/>
<field name="invoice_id"/>
<field name="state" />
<field name="amount_total" sum="Amount total"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="state"/>
</tree>
</field>
</record>
@@ -136,16 +132,18 @@
<filter icon="terp-document-new" string="Quotations" domain="[('state','=','draft')]"/>
<filter icon="terp-check" string="Running" domain="[('state','in',('payment','advance'))]"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="partner_id" select="1"/>
<field name="user_id" select="1"/>
<field name="date_order" select="1" string="Order date" />
<field name="name"/>
<field name="partner_id"/>
<field name="user_id"/>
<field name="date_order" string="Order date"/>
<newline/>
<group expand="0" string="Group By..." colspan="11" col="11" groups="base.group_extended">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
<filter string="Salesman" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<separator string="" orientation="vertical"/>
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
<separator string="" orientation="vertical"/>
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
</group>
</search>
</field>
@@ -788,33 +786,6 @@
action="action_box_out"
id="menu_wizard_enter_jrnl2" sequence="3" />
<record model="ir.ui.view" id="view_pos_order_tree_all_sales">
<field name="name">POS Sales</field>
<field name="model">pos.order</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="POS Orders">
<field name="name"/>
<field name="date_order" select="1"/>
<field name="partner_id" />
<field name="date_validation"/>
<field name="date_payment"/>
<field name="user_id"/>
<field name="invoice_id"/>
<field name="note" select="1" />
<field name="state" select="1"/>
<field name="amount_total" sum="Amount total"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record model="ir.actions.act_window" id="action_pos_all_sales">
<field name="name">All sales</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">pos.order</field>
<field name="view_type">form</field>
<field name="view_id" ref="view_pos_order_tree_all_sales" />
</record>
<record model="ir.ui.view" id="view_pos_order_tree_all_sales_lines">
<field name="name">POS Sales Lines</field>
<field name="model">pos.order.line</field>
@@ -37,12 +37,20 @@ class pos_payment_report_date(report_sxw.rml_parse):
dt1 = form['date_start'] + ' 00:00:00'
dt2 = form['date_end'] + ' 23:59:59'
data={}
self.cr.execute ("select pt.name,pol.qty,pol.discount,pol.price_unit, " \
"(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) as total " \
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s and po.user_id IN %s " \
,(dt1,dt2,tuple(form['user_id'])))
if form['user_id']:
self.cr.execute ("select pt.name,pol.qty,pol.discount,pol.price_unit, " \
"(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) as total " \
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s and po.user_id IN %s " \
,(dt1,dt2,tuple(form['user_id'])))
else:
self.cr.execute ("select pt.name,pol.qty,pol.discount,pol.price_unit, " \
"(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) as total " \
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s" \
,(dt1,dt2))
data=self.cr.dictfetchall()
return data
@@ -50,11 +58,18 @@ class pos_payment_report_date(report_sxw.rml_parse):
dt1 = form['date_start'] + ' 00:00:00'
dt2 = form['date_end'] + ' 23:59:59'
res=[]
self.cr.execute ("select sum(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) " \
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s and po.user_id IN %s " \
,(dt1,dt2,tuple(form['user_id'])))
if form['user_id']:
self.cr.execute ("select sum(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) " \
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s and po.user_id IN %s " \
,(dt1,dt2,tuple(form['user_id'])))
else:
self.cr.execute ("select sum(pol.price_unit * pol.qty * (1 - (pol.discount) / 100.0)) " \
"from pos_order as po,pos_order_line as pol,product_product as pp,product_template as pt " \
"where pt.id=pp.product_tmpl_id and pp.id=pol.product_id and po.id = pol.order_id " \
"and po.state IN ('paid','invoiced') and po.date_order >= %s and po.date_order <= %s" \
,(dt1,dt2))
res=self.cr.fetchone()[0] or 0.0
return res
@@ -33,7 +33,7 @@ class report_cash_register(osv.osv):
('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
'day': fields.char('Day', size=128, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
'state':fields.selection([('draft', 'Draft'),('confirm', 'Confirmed')],'State'),
'state': fields.selection([('draft', 'Quotation'),('open','Open'),('confirm', 'Confirmed')],'State'),
'journal_id': fields.many2one('account.journal', 'Journal'),
'balance_start': fields.float('Opening Balance'),
'balance_end_real': fields.float('Closing Balance'),
@@ -27,17 +27,17 @@
<field name="arch" type="xml">
<search string="Point of Sale Cash Register Analysis">
<group>
<filter icon="terp-go-year" string=" 365 Days "
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="Cash Analysis created last 365 days"/>
<filter icon="terp-go-month" string=" 30 Days "
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Cash Analysis created in last 30 days"/>
<filter icon="terp-go-week"
string=" 7 Days "
<filter icon="terp-go-year" string="Year"
domain="[('year','=',time.strftime('%%Y'))]"
help="Cash Analysis created during this year"/>
<filter icon="terp-go-month" string="Month"
domain="[('month','=',time.strftime('%%m'))]"
help="Cash Analysis created in current month"/>
<filter icon="terp-go-month"
string="Month -1"
separator="1"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Cash Analysis created last 7 days"/>
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Cash Analysis created in last month"/>
<separator orientation="vertical"/>
<filter icon="terp-go-today"
string=" Today "
@@ -67,16 +67,16 @@
<separator orientation="vertical"/>
<filter string="state" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
<separator orientation="vertical"/>
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/>
<filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/>
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}" help="Day from Creation date of register"/>
<filter string="Month" icon="terp-go-month" context="{'group_by':'month'}" help="Month from Creation date of register"/>
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Year from Creation date of register"/>
</group>
</search>
</field>
</record>
<record id="action_report_cash_register_all" model="ir.actions.act_window">
<field name="name">Cash Register Analysis</field>
<field name="name">Register Analysis</field>
<field name="res_model">report.cash.register</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@@ -88,6 +88,8 @@ class report_pos_order(osv.osv):
to_char(s.date_order, 'dd-MM-YYYY'),to_char(s.date_order, 'YYYY'),to_char(s.date_order, 'MM'),
to_char(s.date_order, 'YYYY-MM-DD'), s.partner_id,s.state,
s.user_id,s.shop_id,s.company_id,s.sale_journal,l.product_id,s.date_validation,
s.date_payment)""")
s.date_payment
having
sum(l.qty * u.factor) != 0)""")
report_pos_order()
@@ -38,20 +38,20 @@
<field name="arch" type="xml">
<search string="Point of Sale Analysis">
<group>
<filter icon="terp-go-year" string=" 365 Days "
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="POS ordered created last 365 days"/>
<filter icon="terp-go-month" string=" 30 Days "
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="POS ordered created in last 30 days"/>
<filter icon="terp-go-week"
string=" 7 Days "
<filter icon="terp-go-year" string="Year"
domain="[('year','=',time.strftime('%%Y'))]"
help="POS ordered created during current year"/>
<filter icon="terp-go-month" string="Month"
domain="[('month','=',time.strftime('%%m'))]"
help="POS ordered created during current month"/>
<filter icon="terp-go-month"
string="Month -1"
separator="1"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="POS ordered created last 7 days"/>
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="POS ordered created last month"/>
<separator orientation="vertical"/>
<filter icon="terp-go-today"
string=" Today "
string="Today"
name="today"
separator="1"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d'))]"
@@ -79,9 +79,9 @@
<separator orientation="vertical"/>
<filter string="Product" icon="terp-accessories-archiver" context="{'group_by':'product_id'}"/>
<separator orientation="vertical"/>
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}"/>
<filter string="Month" icon="terp-go-month" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}"/>
<filter string="Day" icon="terp-go-today" context="{'group_by':'day'}" help="Day of order date"/>
<filter string="Month" icon="terp-go-month" context="{'group_by':'month'}" help="Month of order date"/>
<filter string="Year" icon="terp-go-year" context="{'group_by':'year'}" help="Year of order date"/>
</group>
<newline/>
<group expand="0" string="Extended Filters..." groups="base.group_extended">
@@ -25,7 +25,7 @@
"access_report_pos_order_system","report.pos.order.system","model_report_pos_order","base.group_system",1,1,1,1
"access_report_pos_order","report.pos.order","model_report_pos_order","group_pos_manager",1,1,1,1
"access_account_bank_statement","account.bank.statement","account.model_account_bank_statement","group_pos_user",1,1,1,0
"access_account_bank_statement_manager","account.bank.statement manager","account.model_account_bank_statement","group_pos_manager",1,0,0,0
"access_account_bank_statement_manager","account.bank.statement manager","account.model_account_bank_statement","group_pos_manager",1,1,1,1
"access_account_bank_statement_system","account.bank.statement system","account.model_account_bank_statement","base.group_system",1,0,0,0
"access_account_bank_statement_line","account.bank.statement.line","account.model_account_bank_statement_line","group_pos_user",1,1,1,0
"access_account_period_pos","account.period pos user","account.model_account_period","group_pos_user",1,1,1,0
@@ -35,11 +35,13 @@
"access_account_fiscalyear_pos_manager","account.fiscalyear manager","account.model_account_fiscalyear","group_pos_manager",1,0,0,0
"access_account_fiscalyear_pos_system","account.fiscalyear user","account.model_account_fiscalyear","base.group_system",1,0,0,0
"access_account_cashbox_line","account.cashbox.line","account.model_account_cashbox_line","group_pos_user",1,1,1,0
"access_account_cashbox_line_manager","account.cashbox.line manager","account.model_account_cashbox_line","group_pos_manager",1,1,1,1
"access_product_product","product.product","product.model_product_product","group_pos_user",1,0,0,0
"access_product_template_pos_user","product.template pos user","product.model_product_template","group_pos_user",1,0,0,0
"access_product_product_pos_manager","product.product.pos manager","product.model_product_product","group_pos_manager",1,0,0,0
"access_product_template_pos_manager","product.template pos manager","product.model_product_template","group_pos_manager",1,0,0,0
"access_account_move_line","account.move.line","account.model_account_move_line","group_pos_user",1,1,1,0
"access_account_move_line_manager","account.move.line manager","account.model_account_move_line","group_pos_manager",1,1,1,1
"access_account_move","account.move","account.model_account_move","group_pos_user",1,1,1,0
"access_account_journal","account.journal","account.model_account_journal","group_pos_user",1,1,1,0
"access_account_journal_manager","account.journal manager","account.model_account_journal","group_pos_manager",1,0,0,0
@@ -57,7 +59,7 @@
"access_product_template_pos","product.template pos","product.model_product_template","base.group_system",1,1,1,1
"access_pos_order_system","pos.order system","model_pos_order","base.group_system",1,0,0,0
"access_pos_order_line_system","pos.order.line system","model_pos_order_line","base.group_system",1,0,0,0
"access_account_bank_statement_line_manager","account.bank.statement.line manager","account.model_account_bank_statement_line","group_pos_manager",1,0,0,0
"access_account_bank_statement_line_manager","account.bank.statement.line manager","account.model_account_bank_statement_line","group_pos_manager",1,1,1,1
"access_account_invoice_manager","account.invoice manager","account.model_account_invoice","group_pos_manager",1,1,1,1
"access_pos_payment_manager","pos.payment manager","model_pos_payment","group_pos_manager",1,0,0,0
"access_report_transaction_pos_system","report.transaction.pos system","model_report_transaction_pos","base.group_system",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
25 access_report_pos_order_system report.pos.order.system model_report_pos_order base.group_system 1 1 1 1
26 access_report_pos_order report.pos.order model_report_pos_order group_pos_manager 1 1 1 1
27 access_account_bank_statement account.bank.statement account.model_account_bank_statement group_pos_user 1 1 1 0
28 access_account_bank_statement_manager account.bank.statement manager account.model_account_bank_statement group_pos_manager 1 0 1 0 1 0 1
29 access_account_bank_statement_system account.bank.statement system account.model_account_bank_statement base.group_system 1 0 0 0
30 access_account_bank_statement_line account.bank.statement.line account.model_account_bank_statement_line group_pos_user 1 1 1 0
31 access_account_period_pos account.period pos user account.model_account_period group_pos_user 1 1 1 0
35 access_account_fiscalyear_pos_manager account.fiscalyear manager account.model_account_fiscalyear group_pos_manager 1 0 0 0
36 access_account_fiscalyear_pos_system account.fiscalyear user account.model_account_fiscalyear base.group_system 1 0 0 0
37 access_account_cashbox_line account.cashbox.line account.model_account_cashbox_line group_pos_user 1 1 1 0
38 access_account_cashbox_line_manager account.cashbox.line manager account.model_account_cashbox_line group_pos_manager 1 1 1 1
39 access_product_product product.product product.model_product_product group_pos_user 1 0 0 0
40 access_product_template_pos_user product.template pos user product.model_product_template group_pos_user 1 0 0 0
41 access_product_product_pos_manager product.product.pos manager product.model_product_product group_pos_manager 1 0 0 0
42 access_product_template_pos_manager product.template pos manager product.model_product_template group_pos_manager 1 0 0 0
43 access_account_move_line account.move.line account.model_account_move_line group_pos_user 1 1 1 0
44 access_account_move_line_manager account.move.line manager account.model_account_move_line group_pos_manager 1 1 1 1
45 access_account_move account.move account.model_account_move group_pos_user 1 1 1 0
46 access_account_journal account.journal account.model_account_journal group_pos_user 1 1 1 0
47 access_account_journal_manager account.journal manager account.model_account_journal group_pos_manager 1 0 0 0
59 access_product_template_pos product.template pos product.model_product_template base.group_system 1 1 1 1
60 access_pos_order_system pos.order system model_pos_order base.group_system 1 0 0 0
61 access_pos_order_line_system pos.order.line system model_pos_order_line base.group_system 1 0 0 0
62 access_account_bank_statement_line_manager account.bank.statement.line manager account.model_account_bank_statement_line group_pos_manager 1 0 1 0 1 0 1
63 access_account_invoice_manager account.invoice manager account.model_account_invoice group_pos_manager 1 1 1 1
64 access_pos_payment_manager pos.payment manager model_pos_payment group_pos_manager 1 0 0 0
65 access_report_transaction_pos_system report.transaction.pos system model_report_transaction_pos base.group_system 1 1 1 1
+70 -7
View File
@@ -32,6 +32,57 @@
id="menu_all_menu_cash_register"
sequence="4"
/>-->
<record id="view_pos_open_cash_statement_filter" model="ir.ui.view">
<field name="name">account.bank.statement.inherit</field>
<field name="model">account.bank.statement</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Cash Statements">
<group col="8" colspan="4">
<filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
<separator orientation="vertical"/>
<field name="date"/>
<field name="name"/>
<field name="journal_id"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<separator orientation="vertical"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
<separator orientation="vertical"/>
<filter string="State" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
</group>
</search>
</field>
</record>
<record id="view_pos_confirm_cash_statement_filter" model="ir.ui.view">
<field name="name">account.bank.statement.inherit2</field>
<field name="model">account.bank.statement</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Cash Statements">
<group col="8" colspan="4">
<filter string="Open" domain="[('state','=','open')]" icon="terp-document-new" name="open"/>
<filter string="Confirm" domain="[('state','=','confirm')]" icon="terp-camera_test"/>
<separator orientation="vertical"/>
<field name="date"/>
<field name="name"/>
<field name="journal_id"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<separator orientation="vertical"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
<separator orientation="vertical"/>
<filter string="State" context="{'group_by': 'state'}" icon="terp-stock_effects-object-colorize"/>
</group>
</search>
</field>
</record>
<record id="action_new_bank_statement_tree" model="ir.actions.act_window">
<field name="name">Cash Register</field>
@@ -56,8 +107,20 @@
<field name="act_window_id" ref="action_new_bank_statement_tree"/>
</record>
<record id="view_cash_statement_pos_tree" model="ir.ui.view">
<field name="name">account.bank.statement.tree</field>
<field name="model">account.bank.statement</field>
<field name="type">tree</field>
<field name="inherit_id" ref="account.view_cash_statement_tree"/>
<field name="arch" type="xml">
<field name="journal_id" position="after">
<field name="user_id"/>
</field>
</field>
</record>
<record id="action_new_bank_statement_all_tree" model="ir.actions.act_window">
<field name="name">All Register</field>
<field name="name">Registers</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.bank.statement</field>
<field name="view_type">form</field>
@@ -68,7 +131,7 @@
<record model="ir.actions.act_window.view" id="act_cash_statement_all_register1">
<field name="sequence" eval="0"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="account.view_bank_statement_tree"/>
<field name="view_id" ref="view_cash_statement_pos_tree"/>
<field name="act_window_id" ref="action_new_bank_statement_all_tree"/>
</record>
<record model="ir.actions.act_window.view" id="act_cash_statement_all_register">
@@ -79,7 +142,7 @@
</record>
<menuitem
name="All Registers"
name="Registers"
parent="menu_cash_register"
action="action_new_bank_statement_all_tree"
id="menu_all_menu_all_register"
@@ -89,14 +152,14 @@
<menuitem name="Register management" parent="point_of_sale.menu_point_root"
id="menu_point_open_config" sequence="1"/>
<menuitem
name="Open my Cash Registers" parent="menu_point_open_config"
string="Open my Cash Register"
name="Open Registers" parent="menu_point_open_config"
string="Open Registers"
action="action_pos_open_statement"
id="menu_open_statement" sequence="1" />
<menuitem
name="Close my Cash Register" parent="menu_point_open_config"
string="Close my Cash Register"
name="Close Registers" parent="menu_point_open_config"
string="Close Registers"
action="action_pos_close_statement"
id="menu_close_statement" sequence="2" />
+13 -56
View File
@@ -1,48 +1,40 @@
-
In order to test the POS in module, To gives business owners a convenient way of checking out customers and of recording sales.
In order to test the POS in module, To give business owners a convenient way of checking out customers and of recording sales.
-
I configure all details for the customer,Salesman and Product ,Account.
I configure all details for the Customer, Salesman and Product, Account.
-
I create View Account Type.
I create View Account Type.
-
!record {model: account.account.type, id: account_account_type_view0}:
close_method: none
code: View
name: View
sign: 1
-
I create Income Account Type.
I create Income Account Type.
-
!record {model: account.account.type, id: account_account_type_income0}:
close_method: unreconciled
code: Income
name: Income
sign: 1
-
I create Expense Account Type.
I create Expense Account Type.
-
!record {model: account.account.type, id: account_account_type_expense0}:
close_method: unreconciled
code: Expense
name: Expense
sign: 1
-
I create Cash Account Type.
I create Cash Account Type.
-
!record {model: account.account.type, id: account_account_type_cash0}:
close_method: balance
code: Cash
name: Cash
sign: 1
-
I create Minimal Chart Account.
-
@@ -69,8 +61,6 @@
reconcile: true
type: payable
user_type: account_account_type_expense0
-
I create Receivable Account.
-
@@ -85,8 +75,6 @@
reconcile: true
type: receivable
user_type: account_account_type_income0
-
I create Cash Account.
-
@@ -100,8 +88,6 @@
parent_right: 7
type: other
user_type: account_account_type_cash0
-
I create Purchases Account.
-
@@ -116,7 +102,7 @@
type: other
user_type: account_account_type_expense0
-
I create Sales Account.
I create Sales Account.
-
!record {model: account.account, id: account_account_sales0}:
code: Sale
@@ -128,7 +114,6 @@
parent_right: 11
type: other
user_type: account_account_type_income0
-
I create Purchase Journal.
-
@@ -141,10 +126,8 @@
sequence_id: account.sequence_purchase_journal
type: purchase
view_id: account.account_journal_view
-
I create Sale Journal.
I create Sale Journal.
-
!record {model: account.journal, id: account_journal_salejournal0}:
code: SAJ
@@ -155,10 +138,8 @@
sequence_id: account.sequence_sale_journal
type: sale
view_id: account.account_journal_view
-
I create Bank Journal.
I create Bank Journal.
-
!record {model: account.journal, id: account_journal_bankjournal0}:
code: BNK
@@ -169,7 +150,6 @@
sequence_id: account.sequence_journal
type: cash
view_id: account.account_journal_bank_view
-
I create property for account payable.
-
@@ -178,10 +158,8 @@
fields_id: account.field_res_partner_property_account_payable
name: property_account_expense_categ
value_reference: account.account,5
-
I create property for account receivable.
I create property for account receivable.
-
!record {model: ir.property, id: ir_property_propertyaccountincomecateg0}:
company_id: base.main_company
@@ -200,25 +178,19 @@
category_id:
- res_partner_category_customers0
name: Cleartrail
-
I create partner address.
I create partner address.
-
!record {model: res.partner.address, id: res_partner_address_1}:
partner_id: res_partner_cleartrail0
street: onam plaza, 14 B palasia A B Road
type: contact
-
I create partner invoice address.
-
!record {model: res.partner.address, id: res_partner_address_2}:
partner_id: res_partner_cleartrail0
type: invoice
-
I create partner delivery address.
-
@@ -241,7 +213,6 @@
property_account_payable: account_account_payable1
property_account_receivable: account_account_receivable0
supplier: true
-
I create partner address .
-
@@ -270,7 +241,6 @@
type: product
uom_id: product.product_uom_unit
uom_po_id: product.product_uom_unit
-
I create product LG Viewty Smart.
-
@@ -294,7 +264,6 @@
-
!record {model: product.category, id: product_category_computer0}:
name: Computer
-
I create product HP Pavilion Desktop PCs
-
@@ -315,11 +284,9 @@
uom_po_id: product.product_uom_unit
property_account_expense: account_account_payable1
property_account_income: account_account_receivable0
-
I create New Order by adding the details of Salesman and "Product" as LG Viewty Smart Quantity as 10.
-
!record {model: pos.order, id: pos_order_pos0}:
company_id: base.main_company
date_order: '2010-05-13 15:02:48'
@@ -351,13 +318,11 @@
self.apply_discount(cr, uid, [ref("pos_discount_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz": False, "active_id":
ref("pos_order_pos0"), })
-
I open the register.
-
!record {model: pos.open.statement, id: pos_open_statement_0}:
{}
-
I open the statement.
-
@@ -365,19 +330,17 @@
self.open_statement(cr, uid, [ref("pos_open_statement_0")], {"lang": "en_US", "active_model":
"ir.ui.menu", "active_ids": [ref("point_of_sale.menu_open_statement")], "tz":
False, "active_id": ref("point_of_sale.menu_open_statement"), })
-
I click on the "Make Payment" wizard.
-
!record {model: pos.make.payment, id: pos_make_payment_0}:
amount: 1615.0
journal: 7
payment_date: 2010-05-13
payment_date: "2010-05-13"
payment_name: Payment
product_id: product_product_hppaviliondesktoppcs0
pricelist_id: product.list0
partner_id: base.res_partner_agrolait
-
I make the payment.
-
@@ -391,7 +354,6 @@
!python {model: pos.order}: |
order=self.browse(cr,uid,ref("pos_order_pos0"))
assert(order.statement_ids!=[]), "Statement lines not created"
-
When I click on Return picking button , I get three option.
-
@@ -412,8 +374,6 @@
self.create_returns(cr, uid, [ref("pos_return_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("point_of_sale.pos_order_pos0")], "tz":
False, "active_id": ref("point_of_sale.pos_order_pos0"), })
-
Then it allows me to define the quantity of products, which will return to the stock.
-
@@ -432,19 +392,17 @@
self.close_action(cr, uid, [ref("pos_add_product_0")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz": False, "active_id": ref("pos_order_pos0"),
})
-
I create payment.
-
!record {model: pos.make.payment, id: pos_make_payment_1}:
amount: 680.0
journal: 7
payment_date: 2010-05-13
payment_date: "2010-05-13"
payment_name: Payment
product_id: product_product_hppaviliondesktoppcs0
pricelist_id: product.list0
partner_id: base.res_partner_agrolait
-
For payment, I click on Make Payment.
-
@@ -452,7 +410,6 @@
self.check(cr, uid, [ref("pos_make_payment_1")], {"lang": "en_US", "active_model":
"pos.order", "active_ids": [ref("pos_order_pos0")], "tz":
False, "active_id": ref("pos_order_pos0"), })
-
To check the Return without Refund . I click button "Return without Refund ".
-
@@ -36,8 +36,9 @@ def get_journal(self, cr, uid, context):
obj = self.pool.get('account.journal')
statement_obj = self.pool.get('account.bank.statement')
user = self.pool.get('res.users').browse(cr, uid, uid)
ids = obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', user.company_id.id)])
cr.execute("""select DISTINCT journal_id from pos_journal_users where user_id=%d order by journal_id"""%(uid))
j_ids = map(lambda x1: x1[0], cr.fetchall())
ids = obj.search(cr, uid, [('type', '=', 'cash'), ('id', 'in', j_ids)])
obj_ids= statement_obj.search(cr, uid, [('state', '!=', 'confirm'), ('user_id', '=', uid), ('journal_id', 'in', ids)])
res_obj = obj.read(cr, uid, ids, ['journal_id'], context)
res_obj = [(r1['id'])for r1 in res_obj]
@@ -14,11 +14,13 @@
<field name="journal_id"/>
<field name="product_id"/>
<field name="amount"/>
<group colspan="4" col="2">
<button icon='gtk-cancel' special="cancel"
string="Close" />
<button name="get_in" string="Take Money"
colspan="1" type="object" icon="gtk-ok" />
<separator colspan="4"/>
<group colspan="4" col="4">
<group col="2" colspan="2"/>
<button icon="gtk-stop" special="cancel"
string="Cancel" />
<button name="get_in" string="Put Money"
colspan="1" type="object" icon="terp-dolar_ok!" />
</group>
</form>
</field>
+8 -6
View File
@@ -14,12 +14,14 @@
<field name="journal_id"/>
<field name="product_id"/>
<field name="amount"/>
<group colspan="4" col="2">
<button icon='gtk-cancel' special="cancel"
string="Close" />
<button name="get_out" string="Put Money"
colspan="1" type="object" icon="gtk-ok" />
</group>
<separator colspan="4"/>
<group colspan="4" col="4">
<group col="2" colspan="2"/>
<button icon="gtk-stop" special="cancel"
string="Cancel" />
<button name="get_out" string="Take Money"
colspan="1" type="object" icon="terp-dolar" />
</group>
</form>
</field>
</record>
@@ -43,28 +43,29 @@ class pos_close_statement(osv.osv_memory):
cr.execute("""select DISTINCT journal_id from pos_journal_users where user_id=%d order by journal_id"""%(uid))
j_ids = map(lambda x1: x1[0], cr.fetchall())
journal_ids = journal_obj.search(cr, uid, [('auto_cash', '=', True), ('type', '=', 'cash'), ('id', 'in', j_ids)])
ids = statement_obj.search(cr, uid, [('state', '!=', 'confirm'), ('user_id', '=', uid), ('journal_id', 'in', journal_ids)])
for journal in journal_obj.browse(cr, uid, journal_ids):
ids = statement_obj.search(cr, uid, [('state', '!=', 'confirm'), ('user_id', '=', uid), ('journal_id', '=', journal.id)])
if not ids:
raise osv.except_osv(_('Message'), _('Journals are already closed'))
raise osv.except_osv(_('Message'), _('Registers are already closed.'))
else:
list_statement.append(ids[0])
if not journal.check_dtls:
statement_obj.button_confirm_cash(cr, uid, ids, context)
data_obj = self.pool.get('ir.model.data')
id2 = data_obj._get_id(cr, uid, 'account', 'view_bank_statement_tree')
id3 = data_obj._get_id(cr, uid, 'account', 'view_bank_statement_form2')
result = data_obj._get_id(cr, uid, 'point_of_sale', 'view_pos_confirm_cash_statement_filter')
search_id = mod_obj.read(cr, uid, result, ['res_id'], context=context)
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
if id3:
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
return {
'domain': "[('id','in'," + str(list_statement) + ")]",
'domain': "[('id','in'," + str(ids) + ")]",
'name': 'Close Statements',
'view_type': 'form',
'view_mode': 'tree,form',
'search_view_id': search_id['res_id'],
'res_model': 'account.bank.statement',
'views': [(id2, 'tree'),(id3, 'form')],
'type': 'ir.actions.act_window'
@@ -9,11 +9,15 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Close Statements">
<separator string="Are you sure you want to close the statements ?" colspan="4"/>
<button icon='gtk-cancel' special="cancel"
string="No" colspan="1" />
<button name="close_statement" string="Yes"
colspan="1" type="object" icon="gtk-ok"/>
<label string="Are you sure you want to close the statements ?"/>
<separator colspan="4"/>
<group col="4" colspan="4">
<group col="2" colspan="2"/>
<button icon='gtk-stop' special="cancel"
string="No" />
<button name="close_statement" string="Yes"
type="object" icon="gtk-ok"/>
</group>
</form>
</field>
</record>
@@ -12,6 +12,7 @@
<group col="2" colspan="4">
<field name="date_start"/>
<field name="date_end"/>
<separator colspan="4"/>
<button icon='gtk-cancel' special="cancel"
string="Close" />
<button name="print_report" string="Print Report"
@@ -49,7 +49,7 @@ class pos_open_statement(osv.osv_memory):
for journal in journal_obj.browse(cr, uid, journal_ids):
ids = statement_obj.search(cr, uid, [('state', '!=', 'confirm'), ('user_id', '=', uid), ('journal_id', '=', journal.id)])
if len(ids):
raise osv.except_osv(_('Message'), _('You can not open a Cashbox for "%s". \n Please close the cashbox related to. ' %(journal.name)))
raise osv.except_osv(_('Message'), _('You can not open a Cashbox for "%s".\nPlease close its related Register.' %(journal.name)))
statement_ids = sorted(statement_obj.search(cr, uid, [('state', '=', 'confirm'), ('user_id', '=', uid), ('journal_id', '=', journal.id)]))
if statement_ids:
@@ -83,18 +83,22 @@ class pos_open_statement(osv.osv_memory):
data_obj = self.pool.get('ir.model.data')
id2 = data_obj._get_id(cr, uid, 'account', 'view_bank_statement_tree')
id3 = data_obj._get_id(cr, uid, 'account', 'view_bank_statement_form2')
result = data_obj._get_id(cr, uid, 'point_of_sale', 'view_pos_open_cash_statement_filter')
search_id = mod_obj.read(cr, uid, result, ['res_id'], context=context)
if id2:
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
if id3:
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
return {
'domain': "[('state','=','open')]",
'domain': "[('state','=','open'),('user_id','=',"+ str(uid) +")]",
'name': 'Open Statement',
'view_type': 'form',
'view_mode': 'tree,form',
'search_view_id': search_id['res_id'],
'res_model': 'account.bank.statement',
'views': [(id2, 'tree'),(id3, 'form')],
'context': {'search_default_open': 1},
'type': 'ir.actions.act_window'
}
pos_open_statement()
@@ -9,11 +9,15 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Open Statements">
<separator string="Are you sure you want to open the statements ?" colspan="4"/>
<button icon='gtk-cancel' special="cancel"
string="No" />
<button name="open_statement" string="Yes"
type="object" icon="gtk-ok"/>
<label string="Are you sure you want to open the statements ?"/>
<separator colspan="4"/>
<group col="4" colspan="4">
<group col="2" colspan="2"/>
<button icon='gtk-stop' special="cancel"
string="No" />
<button name="open_statement" string="Yes"
type="object" icon="gtk-ok"/>
</group>
</form>
</field>
</record>
+26 -5
View File
@@ -47,8 +47,9 @@ class pos_make_payment(osv.osv_memory):
active_id = context and context.get('active_id',False)
if active_id:
j_obj = self.pool.get('account.journal')
company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id
journal = j_obj.search(cr, uid, [('type', '=', 'cash'), ('company_id', '=', company_id)])
cr.execute("""select DISTINCT journal_id from pos_journal_users where user_id=%d order by journal_id"""%(uid))
j_ids = map(lambda x1: x1[0], cr.fetchall())
journal = j_obj.search(cr, uid, [('type', '=', 'cash'), ('id', 'in', j_ids)])
if journal:
journal = journal[0]
@@ -79,6 +80,10 @@ class pos_make_payment(osv.osv_memory):
res.update({'payment_date':current_date})
if 'payment_name' in fields:
res.update({'payment_name':'Payment'})
if 'partner_id' in fields:
res.update({'partner_id': order.partner_id.id or False})
if 'pricelist_id' in fields:
res.update({'pricelist_id': order.pricelist_id.id or False})
return res
def view_init(self, cr, uid, fields_list, context=None):
@@ -123,6 +128,18 @@ class pos_make_payment(osv.osv_memory):
"""
return result
def onchange_product_id(self, cr, uid, ids, product_id, amount):
""" Changes amount if product_id changes.
@param product_id: Changed product_id
@param amount: Amount to be paid
@return: Dictionary of changed values
"""
prod_obj = self.pool.get('product.product')
if product_id:
product = prod_obj.browse(cr, uid, product_id)
amount = amount - product.list_price
return {'value': {'amount': amount}}
def check(self, cr, uid, ids, context):
"""Check the order:
@@ -135,8 +152,12 @@ class pos_make_payment(osv.osv_memory):
amount = order.amount_total - order.amount_paid
data = self.read(cr, uid, ids)[0]
invoice_wanted = data['invoice_wanted']
is_accompte = data['is_acc']
# Todo need to check ...
if is_accompte:
line_id, price = order_obj.add_product(cr, uid, order.id, data['product_id'], -1.0, context)
amount = order.amount_total - order.amount_paid - price
if amount != 0.0:
order_obj.write(cr, uid, [active_id], {'invoice_wanted': invoice_wanted, 'partner_id': data['partner_id']})
order_obj.add_payment(cr, uid, active_id, data, context=context)
@@ -205,11 +226,11 @@ class pos_make_payment(osv.osv_memory):
_columns = {
'journal':fields.selection(pos_box_entries.get_journal, "Cash Register",required=True),
'product_id': fields.many2one('product.product', "Acompte"),
'product_id': fields.many2one('product.product', "Advance"),
'amount':fields.float('Amount', digits=(16,2) ,required= True),
'payment_name': fields.char('Payment name', size=32, required=True),
'payment_date': fields.date('Payment date', required=True),
'is_acc': fields.boolean('Accompte'),
'is_acc': fields.boolean('Advance'),
'invoice_wanted': fields.boolean('Invoice'),
'num_sale':fields.char('Num.File', size=32),
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist'),
+9 -7
View File
@@ -12,26 +12,28 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Add payment :">
<group colspan="4" width="600" height="200">
<group colspan="4" width="600" height="220">
<field name="journal"/>
<field name="amount" />
<field name="payment_date" />
<!--field name="payment_name" /-->
<field name="invoice_wanted" />
<field name="num_sale" />
<field name="is_acc" />
<field name="is_acc"/>
<group attrs="{'invisible':[('is_acc','=',False)]}" colspan="4" col="2">
<field name="product_id" attrs="{'required':[('is_acc', '=', True)]}" domain="[('type','=','service')]"/>
<field name="product_id" attrs="{'required':[('is_acc', '=', True)]}" domain="[('type','=','service')]"
on_change="onchange_product_id(product_id, amount)"/>
</group>
<newline/>
<group attrs="{'invisible':[('invoice_wanted','=',False)]}" colspan="4">
<field name="partner_id" attrs="{'required':[('invoice_wanted', '=', True)]}" colspan="2"/>
<field name="pricelist_id" attrs="{'required':[('invoice_wanted', '=', True)]}" colspan="2"/>
</group>
<newline/>
<group col="2" colspan="4">
<button icon='gtk-cancel' special="cancel" string="Cancel" />
<button name="check" string="Make Payment" colspan="1" type="object" icon="gtk-ok"/>
<separator colspan="4"/>
<group col="4" colspan="4">
<group col="2" colspan="2"/>
<button icon='gtk-stop' special="cancel" string="Cancel" />
<button name="check" string="Make Payment" colspan="1" type="object" icon="terp-dolar"/>
</group>
</group>
</form>
@@ -7,15 +7,21 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Sale by Date and User">
<group col="2" colspan="4">
<group col="4" colspan="4">
<separator string="Dates" colspan="4"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="user_id"/>
<button icon='gtk-cancel' special="cancel"
string="Close" />
<button name="print_report" string="Print Report"
colspan="1" type="object" icon="gtk-print" />
</group>
<separator string="User" colspan="4"/>
<field name="user_id" nolabel="1" colspan="4"/>
<separator string="" colspan="4"/>
<label string="" colspan="2"/>
<group colspan="2" col="2">
<button icon='gtk-cancel' special="cancel"
string="Close" />
<button name="print_report" string="Print Report"
colspan="1" type="object" icon="gtk-print" />
</group>
</group>
</form>
</field>
</record>
@@ -12,8 +12,8 @@
<form string="Receipt :">
<separator string="Print the receipt of the sale" colspan="4"/>
<button icon='gtk-cancel' special="cancel"
string="Close" />
<button name="print_report" string="Print Report"
string="Cancel" />
<button name="print_report" string="Print Receipt"
colspan="1" type="object" icon="gtk-print" />
</form>
</field>
-1
View File
@@ -19,7 +19,6 @@
#
##############################################################################
from mx import DateTime
from osv import osv, fields
from tools.translate import _
import netsvc
-1
View File
@@ -91,7 +91,6 @@
help="Procurement started late" />
<filter icon="terp-gtk-go-back-rtl" string="To Fix" domain="[('state', '=', 'exception'),('message','=','')]" help="Procurement Orders with exceptions and without message"/>
<separator orientation="vertical"/>
<field name="name"/>
<field name="origin"/>
<field name="product_id" />
<field name="date_planned" widget="date"/>
+1 -1
View File
@@ -421,7 +421,7 @@ msgid ""
"reception of products."
msgstr ""
"Preço Padrão: o preço é fixo e recalculado periodicamente (geralmente no "
"final do ano).\r\n"
"final do ano).\n"
"Preço Médio: o preço de custo é recalculado a cada recepção de produtos."
#. module: product
+6 -6
View File
@@ -399,7 +399,7 @@ msgid ""
"at the end of the year), Average Price: the cost price is recomputed at each "
"reception of products."
msgstr ""
"标准价格: 成本价格是定期重新计算(通常在年底).\r\n"
"标准价格: 成本价格是定期重新计算(通常在年底).\n"
"平均价格: 成本价格是在每次接收产品时重新计算."
#. module: product
@@ -557,7 +557,7 @@ msgid ""
"and the reception of goods for this product and for the default supplier. It "
"is used by the scheduler to order requests based on reordering delays."
msgstr ""
"产品供应在确认采购订单到接收产品之间的默认平均延迟. \r\n"
"产品供应在确认采购订单到接收产品之间的默认平均延迟. \n"
"用于在调度订单请求时要考虑的重订货延迟."
#. module: product
@@ -671,7 +671,7 @@ msgid ""
"supplying. 'Make to Order': When needed, purchase or produce for the "
"procurement request."
msgstr ""
"按库存生产: 在仓库或等待重新供应时得到需求.\r\n"
"按库存生产: 在仓库或等待重新供应时得到需求.\n"
" 按订单生产: 在采购或产品获得请求时得到需求."
#. module: product
@@ -1214,7 +1214,7 @@ msgid ""
"The computed quantity will be a multiple of this value. Use 1.0 for products "
"that can not be split."
msgstr ""
"这数量计算将乘于一个数值.\r\n"
"这数量计算将乘于一个数值.\n"
"产品使用1.0表示不能拆分."
#. module: product
@@ -1444,7 +1444,7 @@ msgid ""
"the delivery of the finished products. It's the time you promise to your "
"customers."
msgstr ""
"这是确认客户订单和交付的平均时间.\r\n"
"这是确认客户订单和交付的平均时间.\n"
"是承诺客户的时间."
#. module: product
@@ -1668,7 +1668,7 @@ msgid ""
"reception of the products in your warehouse. Used by the scheduler for "
"automatic computation of the purchase order planning."
msgstr ""
"延迟天数是确认采购订单到仓库接收产品之间的延迟天数.\r\n"
"延迟天数是确认采购订单到仓库接收产品之间的延迟天数.\n"
"用于制定采购订单计划时调度程序自动计算."
#. module: product
-3
View File
@@ -21,13 +21,10 @@
from osv import osv, fields
import decimal_precision as dp
import pooler
import math
import logging
from _common import rounding
from tools import config
from tools.translate import _
def is_pair(x):
+1 -1
View File
@@ -19,7 +19,7 @@
<field name="type">form</field>
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="arch" type="xml">
<field name="company_id" position="after">
<field name="active" position="after">
<field name="project_id" attrs="{'readonly':[('type','!=','service')]}" />
</field>
</field>
+19 -12
View File
@@ -18,9 +18,13 @@
</group>
<newline/>
<group expand="0" string="Group By..." colspan="4" col="20" groups="base.group_extended">
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'resource_type'}"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}"/>
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'resource_type'}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<separator orientation="vertical" groups="base.group_multi_company"/>
<filter string="Working Time" icon="terp-go-today" domain="[]" context="{'group_by':'calendar_id'}"/>
</group>
</search>
</field>
@@ -53,16 +57,17 @@
<search string="Search Working Period Leaves">
<group col='15' colspan='4'>
<field name="name" string="Name"/>
<field name="company_id" string="Company" widget="selection" />
<field name="calendar_id" string="Working Time" widget="selection"/>
<field name="resource_id" string="Resource"/>
<field name="company_id" string="Company" widget="selection" groups="base.group_multi_company"/>
<field name="calendar_id" string="Working Time" widget="selection"/>
</group>
<newline/>
<group expand="0" string="Group By..." colspan="4" col="20">
<filter string="Resource" icon="terp-personal" domain="[]" context="{'group_by':'resource_id'}"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<separator orientation="vertical"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_from'}"/>
<filter string="Company" icon="terp-go-home" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<separator orientation="vertical" groups="base.group_multi_company"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_from'}" help="Starting Date of Leave"/>
</group>
</search>
</field>
@@ -74,9 +79,11 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Working Period">
<field name="name" select="1"/>
<field name="manager" select="1"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
<field name="name"/>
<field name="manager"/>
<field name="company_id" groups="base.group_multi_company"/>
<separator string="" colspan="4"/>
<field name="attendance_ids" colspan="4" nolabel="1"/>
</form>
</field>
</record>
@@ -196,7 +203,7 @@
<field name="name">Resources</field>
<field name="res_model">resource.resource</field>
<field name="view_mode">tree,form</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="context">{}</field>
<field name="search_view_id" ref="view_resource_resource_search"/>
<field name="help">There you can find clusters of your resources type involved in a specific project phase as well as their workload.</field>
</record>
@@ -210,7 +217,7 @@
<field name="name"/>
<field name="resource_id" on_change="onchange_resource(resource_id)"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="calendar_id"/>
<field name="calendar_id" widget="selection"/>
<newline/>
<field name="date_from"/>
<field name="date_to"/>
@@ -224,11 +231,11 @@
<field name="arch" type="xml">
<tree string="Leave Detail">
<field name="name" />
<field name="resource_id" />
<field name="company_id" groups="base.group_multi_company"/>
<field name="calendar_id" />
<field name="date_from" />
<field name="date_to" />
<field name="resource_id" />
</tree>
</field>
</record>
-1
View File
@@ -81,7 +81,6 @@ class crm_make_sale(osv.osv_memory):
sale_line_obj = self.pool.get('sale.order.line')
result = mod_obj._get_id(cr, uid, 'sale', 'view_sales_order_filter')
id = mod_obj.read(cr, uid, result, ['res_id'])
data = context and context.get('active_ids', []) or []
+4 -4
View File
@@ -2013,7 +2013,7 @@ msgid ""
"This stock location will be used, instead of the default one, as the "
"destination location for goods you send to this partner"
msgstr ""
"Koristiće se ova lokacija zaliha, umjesto podrazumjevane, kao \r\n"
"Koristiće se ova lokacija zaliha, umjesto podrazumjevane, kao \n"
"odredišna lokacija za robu koju šaljete ovom partneru"
#. module: stock
@@ -2151,8 +2151,8 @@ msgid ""
"instead of the default one, as the source location for stock moves generated "
"by production orders"
msgstr ""
"Za ovaj proizvod (šablon) biće korištena ova lokacija zaliha, \r\n"
"umjesto podrazumjevane, kao izvorna lokacija za premještanja zaliha \r\n"
"Za ovaj proizvod (šablon) biće korištena ova lokacija zaliha, \n"
"umjesto podrazumjevane, kao izvorna lokacija za premještanja zaliha \n"
"kada ga inicira nalog za proizvodnju"
#. module: stock
@@ -2238,7 +2238,7 @@ msgid ""
"by procurements"
msgstr ""
"Za ovaj proizvod (šablon) biće korištena ova lokacija zaliha, umjesto "
"podrazumjevane, kao izvorna lokacija za premještanja zaliha \r\n"
"podrazumjevane, kao izvorna lokacija za premještanja zaliha \n"
"kada ga inicira nabavka"
#. module: stock
-1
View File
@@ -67,7 +67,6 @@ class product_product(osv.osv):
stock_output_acc = datas.get('stock_output_account', False)
stock_input_acc = datas.get('stock_input_account', False)
journal_id = datas.get('stock_journal', False)
property_obj=self.pool.get('ir.property')
product_obj=self.browse(cr,uid,ids)[0]
account_variation = product_obj.categ_id.property_stock_variation
account_variation_id = account_variation and account_variation.id or False
+1 -22
View File
@@ -23,7 +23,6 @@ from dateutil.relativedelta import relativedelta
import time
from osv import fields, osv
from tools import config
from tools.translate import _
import netsvc
import tools
@@ -856,7 +855,6 @@ class stock_picking(osv.osv):
""" Gets payment term from partner.
@return: Payment term
"""
partner_obj = self.pool.get('res.partner')
partner = picking.address_id.partner_id
return partner.property_payment_term and partner.property_payment_term.id or False
@@ -1132,12 +1130,8 @@ class stock_picking(osv.osv):
price_type_obj = self.pool.get('product.price.type')
sequence_obj = self.pool.get('ir.sequence')
wf_service = netsvc.LocalService("workflow")
partner_id = partial_datas.get('partner_id', False)
address_id = partial_datas.get('address_id', False)
delivery_date = partial_datas.get('delivery_date', False)
for pick in self.browse(cr, uid, ids, context=context):
new_picking = None
new_moves = []
complete, too_many, too_few = [], [], []
move_product_qty = {}
for move in pick.move_lines:
@@ -1197,7 +1191,7 @@ class stock_picking(osv.osv):
})
if product_qty != 0:
new_obj = move_obj.copy(cr, uid, move.id,
move_obj.copy(cr, uid, move.id,
{
'product_qty' : product_qty,
'product_uos_qty': product_qty, #TODO: put correct uos_qty
@@ -1682,7 +1676,6 @@ class stock_move(osv.osv):
"""
moves = self.browse(cr, uid, ids)
self.write(cr, uid, ids, {'state': 'confirmed'})
i = 0
def create_chained_picking(self, cr, uid, moves, context=None):
new_moves = []
@@ -1815,7 +1808,6 @@ class stock_move(osv.osv):
def setlast_tracking(self, cr, uid, ids, context=None):
tracking_obj = self.pool.get('stock.tracking')
tracking = context.get('tracking', False)
picking = self.browse(cr, uid, ids)[0].picking_id
if picking:
last_track = [line.tracking_id.id for line in picking.move_lines if line.tracking_id]
@@ -1895,7 +1887,6 @@ class stock_move(osv.osv):
amount = q * move.price_unit
# Base computation on valuation price type
else:
company_id = move.company_id.id
context['currency_id'] = move.company_id.currency_id.id
pricetype = price_type_obj.browse(cr,uid,move.company_id.property_valuation_price_type.id)
amount_unit = move.product_id.price_get(pricetype.field, context)[move.product_id.id]
@@ -1906,11 +1897,7 @@ class stock_move(osv.osv):
""" Makes the move done and if all moves are done, it will finish the picking.
@return:
"""
track_flag = False
picking_ids = []
product_uom_obj = self.pool.get('product.uom')
price_type_obj = self.pool.get('product.price.type')
product_obj = self.pool.get('product.product')
move_obj = self.pool.get('account.move')
if context is None:
context = {}
@@ -2205,12 +2192,7 @@ class stock_move(osv.osv):
users_obj = self.pool.get('res.users')
uom_obj = self.pool.get('product.uom')
price_type_obj = self.pool.get('product.price.type')
sequence_obj = self.pool.get('ir.sequence')
wf_service = netsvc.LocalService("workflow")
partner_id = partial_datas.get('partner_id', False)
address_id = partial_datas.get('address_id', False)
delivery_date = partial_datas.get('delivery_date', False)
new_moves = []
if context is None:
context = {}
@@ -2303,7 +2285,6 @@ class stock_move(osv.osv):
picking_obj.action_move(cr, uid, [move.picking_id.id])
wf_service.trg_validate(uid, 'stock.picking', move.picking_id.id, 'button_done', cr)
ref = {}
done_move_ids = []
for move in complete:
done_move_ids.append(move.id)
@@ -2345,7 +2326,6 @@ class stock_inventory(osv.osv):
context = {}
for inv in self.browse(cr, uid, ids):
move_ids = []
move_line = []
for line in inv.inventory_line_id:
pid = line.product_id.id
@@ -2495,7 +2475,6 @@ class stock_picking_move_wizard(osv.osv_memory):
def action_move(self, cr, uid, ids, context=None):
move_obj = self.pool.get('stock.move')
picking_obj = self.pool.get('stock.picking')
account_move_obj = self.pool.get('account.move')
for act in self.read(cr, uid, ids):
move_lines = move_obj.browse(cr, uid, act['move_ids'])
for line in move_lines:
-2
View File
@@ -20,7 +20,6 @@
##############################################################################
from osv import fields, osv
from tools.translate import _
class stock_move_track(osv.osv_memory):
_name = "stock.move.track"
@@ -220,7 +219,6 @@ class split_in_production_lot(osv.osv_memory):
@return:
"""
prodlot_obj = self.pool.get('stock.production.lot')
ir_sequence_obj = self.pool.get('ir.sequence')
move_obj = self.pool.get('stock.move')
new_move = []
for data in self.browse(cr, uid, ids):
+2 -5
View File
@@ -36,7 +36,6 @@ class stock_partial_move(osv.osv_memory):
move_obj = self.pool.get('stock.move')
if not context:
context={}
moveids = []
for m in move_obj.browse(cr, uid, context.get('active_ids', [])):
if m.state in ('done', 'cancel'):
raise osv.except_osv(_('Invalid action !'), _('Cannot delivery products which are already delivered !'))
@@ -63,7 +62,7 @@ class stock_partial_move(osv.osv_memory):
move_ids = move_obj.search(cr, uid, [('id','in',move_ids)])
_moves_arch_lst = """<form string="Deliver Products">
<separator colspan="4" string="Delivery Information"/>
<field name="date" colspan="2"/>
<field name="date" colspan="2"/>
<separator colspan="4" string="Move Detail"/>
"""
_moves_fields = result['fields']
@@ -147,7 +146,6 @@ class stock_partial_move(osv.osv_memory):
move_obj = self.pool.get('stock.move')
if not context:
context={}
moveids = address_delivery = address_default = []
if 'date' in fields:
res.update({'date': time.strftime('%Y-%m-%d %H:%M:%S')})
move_ids = context.get('active_ids', [])
@@ -203,7 +201,6 @@ class stock_partial_move(osv.osv_memory):
@return: A dictionary which of fields with values.
"""
rec_id = context and context.get('active_id', False)
move_obj = self.pool.get('stock.move')
move_ids = context.get('active_ids', False)
partial = self.browse(cr, uid, ids[0], context)
@@ -224,7 +221,7 @@ class stock_partial_move(osv.osv_memory):
'product_price' : getattr(partial, 'move%s_product_price'%(m.id)),
'product_currency': getattr(partial, 'move%s_product_currency'%(m.id)).id
})
res = move_obj.do_partial(cr, uid, move_ids, partial_datas, context=context)
move_obj.do_partial(cr, uid, move_ids, partial_datas, context=context)
return {}
stock_partial_move()
+1 -5
View File
@@ -75,7 +75,7 @@ class stock_return_picking(osv.osv_memory):
self._columns['return%s'%(m.id)] = fields.float(string=m.name, required=True)
if 'invoice_state' not in self._columns:
self._columns['invoice_state'] = fields.selection([('2binvoiced', 'To be Invoiced'), ('none', 'None')], string='Invoice State', required=True)
except Exception, e:
except Exception:
return res
return res
@@ -117,10 +117,6 @@ class stock_return_picking(osv.osv_memory):
raise osv.except_osv(_('Warning!'),_('There is no product to return!'))
arch_lst.append('<field name="invoice_state"/>\n<newline/>')
if pick.invoice_state=='invoiced':
new_invoice_state='2binvoiced'
else:
new_invoice_state=pick.invoice_state
res['fields']['invoice_state']={'string':_('Invoice state'), 'type':'selection','required':True, 'selection':[('2binvoiced', _('To Be Invoiced')), ('none', _('None'))]}
arch_lst.append('<group col="2" colspan="4">')
arch_lst.append('<button icon="gtk-cancel" special="cancel" string="Cancel" />')
+1 -1
View File
@@ -69,7 +69,7 @@ class stock_split_into(osv.osv_memory):
'state': move.state,
'product_uos': move.product_uom.id
}
current_move = move_obj.copy(cr, uid, move.id, default_val)
move_obj.copy(cr, uid, move.id, default_val)
return {}
stock_split_into()