[MERGE] Merge from trunk addons
bzr revid: mra@mra-laptop-20100927065529-v8bppjpzkslcqyhl
This commit is contained in:
commit
017937cea5
|
@ -56,6 +56,17 @@
|
|||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="currency_id" widget="selection"/>
|
||||
<field name="general_account_id" widget="selection"/>
|
||||
<field name="product_uom_id" widget="selection"/>
|
||||
<field name="journal_id" widget="selection"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="account_id"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" name="User" icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}"/>
|
||||
|
|
|
@ -74,6 +74,19 @@
|
|||
<field name="journal_id" widget="selection"/>
|
||||
<field name="period_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="fiscalyear_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="product_id"/>
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical" groups="base.group_multi_company"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="date_created"/>
|
||||
<field name="date"/>
|
||||
<field name="date_maturity"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}"/>
|
||||
|
@ -93,19 +106,6 @@
|
|||
<filter string="Period" icon="terp-go-month" name="group_period" context="{'group_by':'period_id'}"/>
|
||||
<filter string="Fiscal Year" icon="terp-go-year" context="{'group_by':'fiscalyear_id'}"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="fiscalyear_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="product_id"/>
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical" groups="base.group_multi_company"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="date_created"/>
|
||||
<field name="date"/>
|
||||
<field name="date_maturity"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -98,6 +98,17 @@
|
|||
<field name="categ_id" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="product_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="journal_id" widget="selection"/>
|
||||
<field name="account_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date_due"/>
|
||||
<separator orientation="vertical" groups="base.group_multi_company"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id','residual_visible':True}"/>
|
||||
<filter string="Salesman" name='user' icon="terp-personal" context="{'group_by':'user_id'}"/>
|
||||
|
@ -119,17 +130,6 @@
|
|||
<filter string="Month" name="month" icon="terp-go-month" context="{'group_by':'month'}" help="Group by month of Invoice Date"/>
|
||||
<filter string="Year" name="year" icon="terp-go-year" context="{'group_by':'year'}" help="Group by year of Invoice Date"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="product_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="journal_id" widget="selection"/>
|
||||
<field name="account_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="date_due"/>
|
||||
<separator orientation="vertical" groups="base.group_multi_company"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -126,8 +126,8 @@ class account_analytic_account(osv.osv):
|
|||
where account_analytic_line.account_id IN %s \
|
||||
and account_analytic_line.invoice_id is not null \
|
||||
GROUP BY account_analytic_line.account_id",(parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
res[account_id] = sum
|
||||
for account_id, lid in cr.fetchall():
|
||||
res[account_id][f] = lid
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
if res[account.id][f] < res.get(child.id, {}).get(f, ''):
|
||||
|
@ -141,8 +141,8 @@ class account_analytic_account(osv.osv):
|
|||
where account_id IN %s \
|
||||
and invoice_id is null \
|
||||
GROUP BY account_analytic_line.account_id" ,(parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
res[account_id][f] = sum
|
||||
for account_id, lwd in cr.fetchall():
|
||||
res[account_id][f] = lwd
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
if res[account.id][f] < res.get(child.id, {}).get(f, ''):
|
||||
|
@ -160,8 +160,8 @@ class account_analytic_account(osv.osv):
|
|||
and invoice_id is null \
|
||||
AND to_invoice IS NOT NULL \
|
||||
GROUP BY account_analytic_line.account_id;",(parent_ids,))
|
||||
for account_id, sum in cr.fetchall():
|
||||
res[account_id][f] = round(sum, dp)
|
||||
for account_id, sua in cr.fetchall():
|
||||
res[account_id][f] = round(sua, dp)
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
if account.id != child.id:
|
||||
|
@ -180,8 +180,8 @@ class account_analytic_account(osv.osv):
|
|||
and account_analytic_journal.type='general' \
|
||||
GROUP BY account_analytic_line.account_id",(parent_ids,))
|
||||
ff = cr.fetchall()
|
||||
for account_id, sum in ff:
|
||||
res[account_id][f] = round(sum, dp)
|
||||
for account_id, hq in ff:
|
||||
res[account_id][f] = round(hq, dp)
|
||||
for account in accounts:
|
||||
for child in account.child_ids:
|
||||
if account.id != child.id:
|
||||
|
|
|
@ -37,7 +37,7 @@ class auction_artists(osv.osv):
|
|||
_columns = {
|
||||
'name': fields.char('Artist/Author Name', size=64, required=True),
|
||||
'pseudo': fields.char('Pseudo', size=64),
|
||||
'birth_death_dates':fields.char('Birth / Death dates', size=64),
|
||||
'birth_death_dates':fields.char('Lifespan', size=64),
|
||||
'biography': fields.text('Biography'),
|
||||
}
|
||||
auction_artists()
|
||||
|
@ -69,23 +69,50 @@ class auction_dates(osv.osv):
|
|||
reads = self.read(cr, uid, ids, ['name', 'auction1'], context)
|
||||
name = [(r['id'], '['+r['auction1']+'] '+ r['name']) for r in reads]
|
||||
return name
|
||||
|
||||
def _get_buyer_invoice(self, cr, uid, ids, name, arg, context={}):
|
||||
lots_obj = self.pool.get('auction.lots')
|
||||
result = {}
|
||||
for data in self.browse(cr, uid, ids):
|
||||
inv_ids = []
|
||||
lots_ids = lots_obj.search(cr, uid, [('auction_id','=',data.id),('ach_inv_id','!=',False)])
|
||||
for lot in lots_obj.browse(cr, uid, lots_ids):
|
||||
if lot.ach_inv_id:
|
||||
inv_ids.append(lot.ach_inv_id.id)
|
||||
result[data.id] = inv_ids
|
||||
return result
|
||||
|
||||
def _get_seller_invoice(self, cr, uid, ids, name, arg, context={}):
|
||||
lots_obj = self.pool.get('auction.lots')
|
||||
lots_ids = lots_obj.search(cr, uid, [('auction_id','in',ids)])
|
||||
result = {}
|
||||
for data in self.browse(cr, uid, ids):
|
||||
inv_ids = []
|
||||
lots_ids = lots_obj.search(cr, uid, [('auction_id','=',data.id),('sel_inv_id','!=',False)])
|
||||
for lot in lots_obj.browse(cr, uid, lots_ids):
|
||||
if lot.sel_inv_id:
|
||||
inv_ids.append(lot.sel_inv_id.id)
|
||||
result[data.id] = inv_ids
|
||||
return result
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Auction Name', size=64, required=True),
|
||||
'expo1': fields.date('First Exposition Day', required=True, help="Beginning Exposition Date For Auction"),
|
||||
'expo2': fields.date('Last Exposition Day', required=True, help="Last Exposition Date For Auction"),
|
||||
'auction1': fields.date('First Auction Day', required=True, help="Start Date Of Auction"),
|
||||
'auction2': fields.date('Last Auction Day', required=True, help="End Date Of Auction"),
|
||||
'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True, help="Account Journal For Buyer"),
|
||||
'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True, help="Account Journal For Seller"),
|
||||
'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs', help="Account Tax For Buyer"),
|
||||
'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs', help="Account Tax For Seller"),
|
||||
'expo1': fields.date('First Exposition Day', required=True, help="Beginning exposition date for auction"),
|
||||
'expo2': fields.date('Last Exposition Day', required=True, help="Last exposition date for auction"),
|
||||
'auction1': fields.date('First Auction Day', required=True, help="Start date of auction"),
|
||||
'auction2': fields.date('Last Auction Day', required=True, help="End date of auction"),
|
||||
'journal_id': fields.many2one('account.journal', 'Buyer Journal', required=True, help="Account journal for buyer"),
|
||||
'journal_seller_id': fields.many2one('account.journal', 'Seller Journal', required=True, help="Account journal for seller"),
|
||||
'buyer_costs': fields.many2many('account.tax', 'auction_buyer_taxes_rel', 'auction_id', 'tax_id', 'Buyer Costs', help="Account tax for buyer"),
|
||||
'seller_costs': fields.many2many('account.tax', 'auction_seller_taxes_rel', 'auction_id', 'tax_id', 'Seller Costs', help="Account tax for seller"),
|
||||
'acc_income': fields.many2one('account.account', 'Income Account', required=True),
|
||||
'acc_expense': fields.many2one('account.account', 'Expense Account', required=True),
|
||||
'adj_total': fields.function(_adjudication_get, method=True, string='Total Adjudication', store=True),
|
||||
'state': fields.selection((('draft', 'Draft'), ('closed', 'Closed')), 'State', select=1, readonly=True,
|
||||
help='When auction starts the state is \'Draft\'.\n At the end of auction, the state becomes \'Closed\'.'),
|
||||
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', required=True),
|
||||
'buyer_invoice_history': fields.function(_get_buyer_invoice, relation='account.invoice', method=True, string="Buyer Invoice", type='many2many'),
|
||||
'seller_invoice_history': fields.function(_get_seller_invoice, relation='account.invoice', method=True, string="Seller Invoice", type='many2many'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
@ -355,15 +382,15 @@ class auction_lots(osv.osv):
|
|||
|
||||
_columns = {
|
||||
'bid_lines':fields.one2many('auction.bid_line', 'lot_id', 'Bids'),
|
||||
'auction_id': fields.many2one('auction.dates', 'Auction', select=1, help="Auction For Object"),
|
||||
'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True, help="Provide Deposit Information: seller, Withdrawned Method, Object, Deposit Costs"),
|
||||
'name': fields.char('Title', size=64, required=True, help='Auction Object Name'),
|
||||
'auction_id': fields.many2one('auction.dates', 'Auction', select=1, help="Auction for object"),
|
||||
'bord_vnd_id': fields.many2one('auction.deposit', 'Depositer Inventory', required=True, help="Provide deposit information: seller, Withdrawned Method, Object, Deposit Costs"),
|
||||
'name': fields.char('Title', size=64, required=True, help='Auction object name'),
|
||||
'name2': fields.char('Short Description (2)', size=64),
|
||||
'lot_type': fields.selection(_type_get, 'Object category', size=64),
|
||||
'author_right': fields.many2one('account.tax', 'Author rights', help="Account Tax For Author Commission"),
|
||||
'author_right': fields.many2one('account.tax', 'Author rights', help="Account tax for author commission"),
|
||||
'lot_est1': fields.float('Minimum Estimation', help="Minimum Estimate Price"),
|
||||
'lot_est2': fields.float('Maximum Estimation', help="Maximum Estimate Price"),
|
||||
'lot_num': fields.integer('List Number', required=True, select=1, help="List Number In Depositer Inventory"),
|
||||
'lot_num': fields.integer('List Number', required=True, select=1, help="List number in depositer inventory"),
|
||||
'create_uid': fields.many2one('res.users', 'Created by', readonly=True),
|
||||
'history_ids':fields.one2many('auction.lot.history', 'lot_id', 'Auction history'),
|
||||
'lot_local':fields.char('Location', size=64, help="Auction Location"),
|
||||
|
@ -380,15 +407,15 @@ class auction_lots(osv.osv):
|
|||
'ach_login': fields.char('Buyer Username', size=64),
|
||||
'ach_uid': fields.many2one('res.partner', 'Buyer'),
|
||||
'seller_id': fields.related('bord_vnd_id','partner_id', type='many2one', relation='res.partner', string='Seller', readonly=True),
|
||||
'ach_emp': fields.boolean('Taken Away', readonly=True, help="When state is Taken Away, This field is Marked as True"),
|
||||
'is_ok': fields.boolean('Buyer\'s payment', help="When Buyer Pay For Bank statement', This field is Marked"),
|
||||
'ach_emp': fields.boolean('Taken Away', readonly=True, help="When state is Taken Away, this field is marked as True"),
|
||||
'is_ok': fields.boolean('Buyer\'s payment', help="When buyer pay for bank statement', this field is marked"),
|
||||
'ach_inv_id': fields.many2one('account.invoice', 'Buyer Invoice', readonly=True, states={'draft':[('readonly', False)]}),
|
||||
'sel_inv_id': fields.many2one('account.invoice', 'Seller Invoice', readonly=True, states={'draft':[('readonly', False)]}),
|
||||
'vnd_lim': fields.float('Seller limit'),
|
||||
'vnd_lim_net': fields.boolean('Net limit ?', readonly=True),
|
||||
'image': fields.binary('Image', help="Object Image"),
|
||||
'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', This field is selected as True."),
|
||||
'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', This field is selected as True."),
|
||||
'paid_vnd':fields.function(_getprice, string='Seller Paid', method=True, type='boolean', store=True, multi="paid_vnd", help="When state of Seller Invoice is 'Paid', this field is selected as True."),
|
||||
'paid_ach':fields.function(_getprice, string='Buyer Invoice Reconciled', method=True, type='boolean', store=True, multi="paid_ach", help="When state of Buyer Invoice is 'Paid', this field is selected as True."),
|
||||
'state': fields.selection((
|
||||
('draft', 'Draft'),
|
||||
('unsold', 'Unsold'),
|
||||
|
@ -404,7 +431,7 @@ class auction_lots(osv.osv):
|
|||
'gross_revenue':fields.function(_getprice, method=True, string='Gross revenue', store=True, multi="gross_revenue", help="Buyer Price - Seller Price"),
|
||||
'gross_margin':fields.function(_getprice, method=True, string='Gross Margin (%)', store=True, multi="gross_margin", help="(Gross Revenue*100.0)/ Object Price"),
|
||||
'costs':fields.function(_getprice, method=True, string='Indirect costs', store=True, multi="costs", help="Deposit cost"),
|
||||
'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Bank statement Line For Given Buyer"),
|
||||
'statement_id': fields.many2many('account.bank.statement.line', 'auction_statement_line_rel', 'auction_id', 'statement', 'Payment', help="Bank statement line for given buyer"),
|
||||
'net_revenue':fields.function(_getprice, method=True, string='Net revenue', store=True, multi="net_revenue", help="Buyer Price - Seller Price - Indirect Cost"),
|
||||
'net_margin':fields.function(_getprice, method=True, string='Net Margin (%)', store=True, multi="net_margin", help="(Net Revenue * 100)/ Object Price"),
|
||||
}
|
||||
|
@ -761,7 +788,7 @@ class auction_bid(osv.osv):
|
|||
_order = 'id desc'
|
||||
_columns = {
|
||||
'partner_id': fields.many2one('res.partner', 'Buyer Name', required=True),
|
||||
'contact_tel':fields.char('Contact', size=64),
|
||||
'contact_tel':fields.char('Contact Number', size=64),
|
||||
'name': fields.char('Bid ID', size=64, required=True),
|
||||
'auction_id': fields.many2one('auction.dates', 'Auction Date', required=True),
|
||||
'bid_lines': fields.one2many('auction.bid_line', 'bid_id', 'Bid'),
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem name="Auction Management" id="auction_menu_root" icon="terp-purchase" sequence="26" groups="base.group_system"/>
|
||||
<menuitem name="Auction" id="auction_menu_root" icon="terp-purchase" sequence="26" groups="base.group_system"/>
|
||||
<menuitem name="Configuration" parent="auction_menu_root" id="auction_config_menu" sequence="7"/>
|
||||
<menuitem name="Tools Bar Codes" id="auction_outils_menu" parent="auction_menu_root" sequence="5" />
|
||||
<menuitem name="Deliveries Management" action="action_auction_taken" id="menu_wizard_emporte" parent="auction_outils_menu"/>
|
||||
|
@ -14,9 +14,8 @@
|
|||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Artists">
|
||||
<field name="name"/>
|
||||
<field name="birth_death_dates"/>
|
||||
<field name="biography"/>
|
||||
<field name="name"/>
|
||||
<field name="birth_death_dates"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -26,12 +25,15 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Artists">
|
||||
<field colspan="4" name="name" select="1"/>
|
||||
<field colspan="4" name="pseudo" select="1"/>
|
||||
<newline/>
|
||||
<field colspan="4" name="birth_death_dates"/>
|
||||
<newline/>
|
||||
<field colspan="4" name="biography"/>
|
||||
<separator string="Author/Artist" colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" colspan="4" string="Name"/>
|
||||
<newline/>
|
||||
<field name="pseudo"/>
|
||||
<field name="birth_death_dates"/>
|
||||
</group>
|
||||
<separator string="Biography" colspan="4"/>
|
||||
<field name="biography" nolabel="1" colspan="4"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -105,27 +107,39 @@
|
|||
<field name="name" colspan="2" select="1"/>
|
||||
<notebook colspan="4">
|
||||
<page string="Auction Dates">
|
||||
<separator string="Exposition Dates" colspan="4"/>
|
||||
<field name="expo1"/>
|
||||
<field name="expo2"/>
|
||||
<separator string="Auction Dates" colspan="4"/>
|
||||
<field name="auction1" select="1"/>
|
||||
<field name="auction2" select="1"/>
|
||||
<group colspan="4" col="4">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Exposition Dates" colspan="4"/>
|
||||
<field name="expo1"/>
|
||||
<field name="expo2"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Auction Dates" colspan="4"/>
|
||||
<field name="auction1" select="1"/>
|
||||
<field name="auction2" select="1"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="" colspan="4"/>
|
||||
<field name="state"/>
|
||||
<button name="close" states="draft" string="Create Invoices" type="object" colspan="2" icon="gtk-yes"/>
|
||||
</page>
|
||||
<page string="Accounting" >
|
||||
<separator string="Accounting" colspan="4"/>
|
||||
<field name="acc_expense" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="acc_income" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<separator string="Analytic" colspan="4"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="journal_seller_id"/>
|
||||
<field name="account_analytic_id" groups="base.group_extended"/>
|
||||
<group colspan="4" col="4">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Accounting" colspan="4"/>
|
||||
<field name="acc_expense" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
<field name="acc_income" domain="[('type','<>','view'),('type','<>','consolidation')]"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Analytic" colspan="4"/>
|
||||
<field name="journal_id"/>
|
||||
<field name="journal_seller_id"/>
|
||||
<field name="account_analytic_id" groups="base.group_extended"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Commissions">
|
||||
<group col="4" colspan="4">
|
||||
<group col="4" colspan="4" expand="1">
|
||||
<group col="2" colspan="4">
|
||||
<separator string="Buyer Commissions" colspan="4"/>
|
||||
<field name="buyer_costs" domain="[('parent_id','=',False),('domain','=','auction'),('type_tax_use','<>','sale')]" nolabel="1" colspan="4"/>
|
||||
|
@ -136,6 +150,44 @@
|
|||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="History">
|
||||
<group colspan="4" col="4">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Buyer Invoices" colspan="2"/>
|
||||
<field name="buyer_invoice_history" nolabel="1" widget="one2many_list"
|
||||
height="400">
|
||||
<tree colors="blue:state in ('draft');black:state in ('proforma','proforma2','open');gray:state in ('cancel')" string="Invoice">
|
||||
<field name="date_invoice"/>
|
||||
<field name="number"/>
|
||||
<field name="partner_id" groups="base.group_user"/>
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date_due"/>
|
||||
<field name="origin"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Seller Invoices" colspan="2"/>
|
||||
<field name="seller_invoice_history" nolabel="1" widget="one2many_list"
|
||||
height="400">
|
||||
<tree colors="blue:state in ('draft');black:state in ('proforma','proforma2','open');gray:state in ('cancel')" string="Invoice">
|
||||
<field name="date_invoice"/>
|
||||
<field name="number"/>
|
||||
<field name="partner_id" groups="base.group_user"/>
|
||||
<field name="name"/>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date_due"/>
|
||||
<field name="origin"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
|
@ -332,13 +384,10 @@
|
|||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Note">
|
||||
<field name="obj_desc" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
<page string="History" groups="base.group_extended">
|
||||
<group colspan="2" col="2">
|
||||
<field name="statement_id" domain="[('state','=','draft')]" colspan="4" nolabel="1"
|
||||
widget="one2many_list">
|
||||
height="575" width="285" widget="one2many_list">
|
||||
<tree string="Buyer's Payment History">
|
||||
<field name="statement_id"/>
|
||||
<field name="amount"/>
|
||||
|
@ -352,14 +401,12 @@
|
|||
<field name="account_id"/>
|
||||
<field name="type"/>
|
||||
<field name="statement_id"/>
|
||||
<field name="reconcile_id"/>
|
||||
<field name="amount"/>
|
||||
<field name="reconcile_amount"/>
|
||||
</form>
|
||||
</field>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<field name="history_ids" colspan="4" readonly="1" nolabel="1">
|
||||
<field name="history_ids" colspan="4" readonly="1" nolabel="1" height="575">
|
||||
<tree string="History">
|
||||
<field name="name"/>
|
||||
<field name="lot_id"/>
|
||||
|
@ -369,6 +416,9 @@
|
|||
</field>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field name="obj_desc" colspan="4" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
|
@ -450,8 +500,7 @@
|
|||
src_model="auction.lots"
|
||||
id="act_auction_lot_open_bid"/>
|
||||
|
||||
<menuitem name="Objects" parent="auction_menu_root" id="auction_objects_menu" sequence="2"/>
|
||||
<menuitem name="Objects" action="action_all_objects" parent="auction_objects_menu" id="auction_all_objects_menu"/>
|
||||
<menuitem name="Objects" action="action_all_objects" parent="auction_date_menu" id="auction_all_objects_menu"/>
|
||||
|
||||
<record model="ir.ui.view" id="view_deposit_border_form">
|
||||
<field name="name">auction.deposit.form</field>
|
||||
|
@ -459,14 +508,15 @@
|
|||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Deposit Border Form">
|
||||
<field name="name" select="1"/>
|
||||
<field name="date_dep" select="1"/>
|
||||
<field name="partner_id" select="1"/>
|
||||
<field name="method"/>
|
||||
<newline/>
|
||||
<field name="tax_id" domain="[('domain','=','auction'),('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
|
||||
<field name="transfer"/>
|
||||
<newline/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="name" string="Reference"/>
|
||||
<field name="date_dep"/>
|
||||
<field name="partner_id"/>
|
||||
<newline/>
|
||||
<field name="method"/>
|
||||
<field name="tax_id" domain="[('domain','=','auction'),('parent_id','=',False),('type_tax_use','<>','purchase')]"/>
|
||||
<field name="transfer"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General Information">
|
||||
<field name="lot_id" colspan="4" mode="tree,graph" nolabel="1">
|
||||
|
@ -640,11 +690,13 @@
|
|||
<field name="model">auction.bid</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Bids">
|
||||
<field name="name" select="1"/>
|
||||
<field name="auction_id" select="1"/>
|
||||
<newline/>
|
||||
<field name="partner_id" select="1" on_change="onchange_contact(partner_id)"/>
|
||||
<field name="contact_tel"/>
|
||||
<group colspan="4" col="6">
|
||||
<field name="name"/>
|
||||
<field name="auction_id"/>
|
||||
<field name="contact_tel"/>
|
||||
<newline/>
|
||||
<field name="partner_id" on_change="onchange_contact(partner_id)" colspan="4"/>
|
||||
</group>
|
||||
<field name="bid_lines" colspan="4" nolabel="1">
|
||||
<tree string="Bids Lines" editable="bottom">
|
||||
<field name="lot_id" domain="[('auction_id','=',parent.auction_id)]"/>
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
sequence="1"
|
||||
id="menu_board_auction_open" icon="terp-graph" parent="menu_board_auction"/>
|
||||
|
||||
<menuitem name="Auction Management" id="auction.auction_menu_root" icon="terp-purchase" sequence="26" groups="base.group_system" action="open_board_auction"/>
|
||||
<menuitem name="Auction" id="auction.auction_menu_root" icon="terp-purchase" sequence="26" groups="base.group_system" action="open_board_auction"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -74,10 +74,10 @@
|
|||
<para style="P4">[[ o.ach_uid and o.ach_uid.name or False]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P5"><font>[[o.bid_lines[0] and o.bid_lines[0].bid_id.name or removeParentNode('font')]]</font></para>
|
||||
<para style="P5"><font>[[ o.bid_lines and o.bid_lines[0] and o.bid_lines[0].bid_id.name or removeParentNode('font')]]</font></para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P6"><font>[[o.bid_lines[0] and o.bid_lines[0].bid_id.contact_tel or removeParentNode('font')]]</font></para>
|
||||
<para style="P6"><font>[[o.bid_lines and o.bid_lines[0] and o.bid_lines[0].bid_id.contact_tel or removeParentNode('font')]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
|
|
@ -88,7 +88,7 @@
|
|||
<para style="P8">[[o.lot_est1]]-[[o.lot_est2]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P7"><font>[[o.bid_lines[0] and o.bid_lines[0].bid_id.contact_tel or removeParentNode('font')]]</font></para>
|
||||
<para style="P7"><font>[[o.bid_lines and o.bid_lines[0] and o.bid_lines[0].bid_id.contact_tel or removeParentNode('font')]]</font></para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
|
|
@ -15,7 +15,8 @@
|
|||
<label string="(Keep empty for automatic number)" colspan="2"/>
|
||||
</group>
|
||||
<separator string="" colspan="4"/>
|
||||
<group colspan="4" col="6">
|
||||
<group colspan="2" col="2"/>
|
||||
<group colspan="2" col="2">
|
||||
<button icon="gtk-close" special="cancel" string="Close"/>
|
||||
<button icon="gtk-yes" string="Create invoices" name="makeInvoices" type="object"/>
|
||||
</group>
|
||||
|
|
|
@ -30,7 +30,8 @@
|
|||
<field name="statement_id3" domain="[('state','=','draft')]"/>
|
||||
</group>
|
||||
<separator string="" colspan="4" />
|
||||
<group colspan="4" col="6">
|
||||
<group colspan="2" col="2"/>
|
||||
<group colspan="2" col="2">
|
||||
<button icon="gtk-close" special="cancel" string="Close"/>
|
||||
<button icon="gtk-yes" string="Pay" name="pay_and_reconcile" type="object"/>
|
||||
</group>
|
||||
|
|
|
@ -53,7 +53,7 @@ class auction_taken(osv.osv_memory):
|
|||
lot_obj = self.pool.get('auction.lots')
|
||||
for current in self.browse(cr, uid, ids, context):
|
||||
for lot in current.lot_ids:
|
||||
lot_obj.write(cr, uid, lot.id, {'state':'taken_away'})
|
||||
lot_obj.write(cr, uid, lot.id, {'state':'taken_away', 'ach_emp': True})
|
||||
return {'lot_ids': []}
|
||||
|
||||
auction_taken()
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<menuitem action="crm_lead_categ_action"
|
||||
id="menu_crm_lead_categ" name="Categories"
|
||||
parent="base.menu_crm_config_lead" sequence="1"/>
|
||||
|
||||
|
||||
<!-- Resource Type Form View -->
|
||||
<record id="crm_lead_resource_act" model="ir.actions.act_window">
|
||||
<field name="name">Lead Sources</field>
|
||||
|
@ -337,6 +337,20 @@
|
|||
help="Show Sales Team"/>
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="country_id" context="{'invisible_country': False}">
|
||||
<filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/>
|
||||
</field>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="create_date" string="Creation Date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
|
||||
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
@ -354,20 +368,6 @@
|
|||
<filter string="Creation" icon="terp-go-month"
|
||||
domain="[]" context="{'group_by':'create_date'}" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="country_id" context="{'invisible_country': False}">
|
||||
<filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/>
|
||||
</field>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="create_date" string="Creation Date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -311,6 +311,20 @@
|
|||
help="Show Sales Team"/>
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="country_id" context="{'invisible_country': False}">
|
||||
<filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/>
|
||||
</field>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="create_date" string="Creation Date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="16">
|
||||
<filter string="Stage" icon="terp-stage" domain="[]"
|
||||
context="{'group_by':'stage_id'}" />
|
||||
|
@ -335,20 +349,6 @@
|
|||
help="Expected Closing" domain="[]"
|
||||
context="{'group_by':'date_deadline'}" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="country_id" context="{'invisible_country': False}">
|
||||
<filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/>
|
||||
</field>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="create_date" string="Creation Date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -110,7 +110,22 @@
|
|||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
<field name="categ_id" widget="selection"/>
|
||||
<field name="type_id" widget="selection"/>
|
||||
<field name="channel_id" widget="selection"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="creation_date"/>
|
||||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" name="user" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}" />
|
||||
|
@ -144,21 +159,6 @@
|
|||
<filter string="Year" icon="terp-go-year"
|
||||
domain="[]" context="{'group_by':'name'}" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
<field name="categ_id" widget="selection"/>
|
||||
<field name="type_id" widget="selection"/>
|
||||
<field name="channel_id" widget="selection"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="creation_date"/>
|
||||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -110,7 +110,20 @@
|
|||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="creation_date"/>
|
||||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" name="User" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
<filter string="Partner" icon="terp-personal" context="{'group_by':'partner_id'}" />
|
||||
|
@ -139,20 +152,6 @@
|
|||
<filter string="Year" icon="terp-go-year"
|
||||
domain="[]" context="{'group_by':'name'}" />
|
||||
</group>
|
||||
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.phonecall')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="creation_date"/>
|
||||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -119,7 +119,24 @@
|
|||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<filter icon="terp-dialog-close"
|
||||
string="Done"
|
||||
domain="[('state','=','done')]"/>
|
||||
<filter icon="gtk-cancel"
|
||||
string="Cancel"
|
||||
domain="[('state','=','cancel')]"/>
|
||||
<group>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="priority" />
|
||||
<field name="type_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
</group>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" name="User" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
|
||||
|
@ -157,25 +174,7 @@
|
|||
<filter string="Year" icon="terp-go-year"
|
||||
domain="[]" context="{'group_by':'name'}" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<filter icon="terp-dialog-close"
|
||||
string="Done"
|
||||
domain="[('state','=','done')]"/>
|
||||
|
||||
<filter icon="gtk-cancel"
|
||||
string="Cancel"
|
||||
domain="[('state','=','cancel')]"/>
|
||||
|
||||
<group>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="priority" />
|
||||
<field name="type_id" widget="selection" domain="[('object_id.model', '=', 'crm.claim')]"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -118,7 +118,22 @@
|
|||
</field>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<filter icon="terp-dialog-close"
|
||||
string="Done"
|
||||
domain="[('state','=','done')]"/>
|
||||
|
||||
<filter icon="gtk-cancel"
|
||||
string="Cancel"
|
||||
domain="[('state','=','cancel')]"/>
|
||||
|
||||
<group>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.fundraising')]"/>
|
||||
</group>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" name="User" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
|
||||
|
@ -146,23 +161,7 @@
|
|||
|
||||
<filter string="Year" icon="terp-go-year"
|
||||
domain="[]" context="{'group_by':'name'}" />
|
||||
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<filter icon="terp-dialog-close"
|
||||
string="Done"
|
||||
domain="[('state','=','done')]"/>
|
||||
|
||||
<filter icon="gtk-cancel"
|
||||
string="Cancel"
|
||||
domain="[('state','=','cancel')]"/>
|
||||
|
||||
<group>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.fundraising')]"/>
|
||||
</group>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -114,7 +114,12 @@
|
|||
<field name="user_id" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<filter string="Priority" icon="terp-rating-rated"
|
||||
domain="[]" context="{'group_by':'priority'}" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}"
|
||||
default="1" />
|
||||
|
@ -141,15 +146,7 @@
|
|||
|
||||
<filter string="Year" icon="terp-go-year"
|
||||
domain="[]" context="{'group_by':'name'}" />
|
||||
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<filter string="Priority" icon="terp-rating-rated"
|
||||
domain="[]" context="{'group_by':'priority'}" />
|
||||
</group>
|
||||
|
||||
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -31,6 +31,19 @@
|
|||
<field name="partner_assigned_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="creation_date"/>
|
||||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="User" name="user" icon="terp-personal"
|
||||
domain="[]" context="{'group_by':'user_id'}" />
|
||||
|
@ -69,19 +82,7 @@
|
|||
<filter string="Year" icon="terp-go-year"
|
||||
domain="[]" context="{'group_by':'name'}" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Extended Filters..." groups="base.group_extended">
|
||||
<field name="partner_id"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]" />
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
|
||||
<newline/>
|
||||
<field name="creation_date"/>
|
||||
<field name="opening_date"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -361,11 +361,12 @@ class many2many_domain(fields.many2many):
|
|||
for i in ids:
|
||||
res[i] = []
|
||||
valid_move_ids = move_obj.search(cr, user, self._domain) # move ids relative to domain argument
|
||||
cr.execute("SELECT production_id, move_id from mrp_production_move_ids where production_id in %s and move_id in %s",
|
||||
[tuple(ids), tuple(valid_move_ids)])
|
||||
related_move_map = cr.fetchall()
|
||||
related_move_dict = dict((k, list(set([v[1] for v in itr]))) for k, itr in groupby(related_move_map, itemgetter(0)))
|
||||
res.update(related_move_dict)
|
||||
if valid_move_ids:
|
||||
cr.execute("SELECT production_id, move_id from mrp_production_move_ids where production_id in %s and move_id in %s",
|
||||
[tuple(ids), tuple(valid_move_ids)])
|
||||
related_move_map = cr.fetchall()
|
||||
related_move_dict = dict((k, list(set([v[1] for v in itr]))) for k, itr in groupby(related_move_map, itemgetter(0)))
|
||||
res.update(related_move_dict)
|
||||
|
||||
return res
|
||||
|
||||
|
|
|
@ -19,12 +19,10 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
from osv import fields,osv
|
||||
import netsvc
|
||||
import mx.DateTime
|
||||
from mx.DateTime import RelativeDateTime, today, DateTime, localtime
|
||||
from tools import config
|
||||
from mx.DateTime import RelativeDateTime, today
|
||||
from tools.translate import _
|
||||
import decimal_precision as dp
|
||||
|
||||
|
@ -95,6 +93,16 @@ class mrp_repair(osv.osv):
|
|||
cur = repair.pricelist_id.currency_id
|
||||
res[id] = cur_obj.round(cr, uid, cur, untax.get(id, 0.0) + tax.get(id, 0.0))
|
||||
return res
|
||||
|
||||
def _get_default_address(self, cr, uid, ids, field_name, arg, context):
|
||||
res = {}
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
for data in self.browse(cr, uid, ids):
|
||||
adr_id = False
|
||||
if data.partner_id:
|
||||
adr_id = partner_obj.address_get(cr, uid, [data.partner_id.id], ['default'])['default']
|
||||
res[data.id] = adr_id
|
||||
return res
|
||||
|
||||
def _get_lines(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
|
@ -109,6 +117,7 @@ class mrp_repair(osv.osv):
|
|||
'product_id': fields.many2one('product.product', string='Product to Repair', required=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'partner_id' : fields.many2one('res.partner', 'Partner', select=True, help='This field allow you to choose the parner that will be invoiced and delivered'),
|
||||
'address_id': fields.many2one('res.partner.address', 'Delivery Address', domain="[('partner_id','=',partner_id)]"),
|
||||
'default_address_id': fields.function(_get_default_address, method=True, type="many2one", relation="res.partner.address"),
|
||||
'prodlot_id': fields.many2one('stock.production.lot', 'Lot Number', select=True, domain="[('product_id','=',product_id)]"),
|
||||
'state': fields.selection([
|
||||
('draft','Quotation'),
|
||||
|
@ -275,7 +284,6 @@ class mrp_repair(osv.osv):
|
|||
|
||||
if not lot:
|
||||
return data
|
||||
lot_info = prodlot_obj.browse(cr, uid, lot)
|
||||
move_ids = move_obj.search(cr, uid, [('prodlot_id', '=', lot)])
|
||||
|
||||
if not len(move_ids):
|
||||
|
@ -328,7 +336,6 @@ class mrp_repair(osv.osv):
|
|||
""" Cancels repair order.
|
||||
@return: True
|
||||
"""
|
||||
ok=True
|
||||
mrp_line_obj = self.pool.get('mrp.repair.line')
|
||||
for repair in self.browse(cr, uid, ids):
|
||||
mrp_line_obj.write(cr, uid, [l.id for l in repair.operations], {'state': 'cancel'})
|
||||
|
@ -509,7 +516,6 @@ class mrp_repair(osv.osv):
|
|||
repair_line_obj = self.pool.get('mrp.repair.line')
|
||||
seq_obj = self.pool.get('ir.sequence')
|
||||
pick_obj = self.pool.get('stock.picking')
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid).company_id
|
||||
for repair in self.browse(cr, uid, ids, context=context):
|
||||
for move in repair.operations:
|
||||
move_id = move_obj.create(cr, uid, {
|
||||
|
|
|
@ -30,10 +30,8 @@ class order(report_sxw.rml_parse):
|
|||
self.localcontext.update({
|
||||
'time': time,
|
||||
'total': self.total,
|
||||
'adr_get' : self._adr_get
|
||||
})
|
||||
|
||||
|
||||
def total(self, repair):
|
||||
total = 0.0
|
||||
for operation in repair.operations:
|
||||
|
@ -43,13 +41,6 @@ class order(report_sxw.rml_parse):
|
|||
total = total + repair.amount_tax
|
||||
return total
|
||||
|
||||
def _adr_get(self, partner, type):
|
||||
res_partner = pooler.get_pool(self.cr.dbname).get('res.partner')
|
||||
res_partner_address = pooler.get_pool(self.cr.dbname).get('res.partner.address')
|
||||
addresses = res_partner.address_get(self.cr, self.uid, [partner.id], [type])
|
||||
adr_id = addresses and addresses[type] or False
|
||||
return adr_id and res_partner_address.read(self.cr, self.uid, [adr_id])[0] or False
|
||||
|
||||
report_sxw.report_sxw('report.repair.order','mrp.repair','addons/mrp_repair/report/order.rml',parser=order)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -175,7 +175,7 @@
|
|||
<para style="P3">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P13">Invoice address</para>
|
||||
<para style="P13">Invoice address :</para>
|
||||
<para style="P3">[[ o.partner_id and o.partner_id.property_payment_term.name ]]</para>
|
||||
<para style="P3">[[ o.partner_invoice_id.street ]]</para>
|
||||
<para style="P3">[[ o.partner_invoice_id.street2 or removeParentNode('para') ]]</para>
|
||||
|
@ -189,12 +189,12 @@
|
|||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="P3">[[ o.partner_id.name ]]</para>
|
||||
<para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default')['street'] ]]</para>
|
||||
<para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default')['street2'] or removeParentNode('para') ]]</para>
|
||||
<para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default')['zip'] ]][[ o.partner_id and adr_get(o.partner_id, 'default')['city'] ]]</para>
|
||||
<para style="P3">[[ (o.partner_id and adr_get(o.partner_id, 'default')['state_id'] and adr_get(o.partner_id, 'default')['state_id'][1]) or removeParentNode('para') ]]</para>
|
||||
<para style="P3">[[ o.partner_id and adr_get(o.partner_id, 'default')['country_id'] and adr_get(o.partner_id, 'default')['country_id'][1] ]]</para>
|
||||
<para style="P3">[[ o.partner_id.name or removeParentNode('para') ]]</para>
|
||||
<para style="P3">[[ o.default_address_id and o.default_address_id.street or removeParentNode('para') ]]</para>
|
||||
<para style="P3">[[ o.default_address_id and o.default_address_id.street2 or removeParentNode('para') ]]</para>
|
||||
<para style="P3">[[ o.default_address_id and o.default_address_id.zip or removeParentNode('para') ]][[ o.default_address_id and o.default_address_id.city or removeParentNode('para') ]]</para>
|
||||
<para style="P3">[[ o.default_address_id and o.default_address_id.state_id and o.default_address_id.state_id.name or removeParentNode('para') ]]</para>
|
||||
<para style="P3">[[ o.default_address_id and o.default_address_id.country_id and o.default_address_id.country_id.name or removeParentNode('para') ]]</para>
|
||||
<para style="P3">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
<newline/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon="gtk-stop" special="cancel"
|
||||
string="_No" />
|
||||
<button name="cancel_repair" string="_Yes"
|
||||
string="No" />
|
||||
<button name="cancel_repair" string="Yes"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
</form>
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
<newline/>
|
||||
<group col="2" colspan="4">
|
||||
<button icon="gtk-stop" special="cancel"
|
||||
string="_Cancel" />
|
||||
<button name="make_invoices" string="Create _Invoice"
|
||||
string="Cancel" />
|
||||
<button name="make_invoices" string="Create Invoice"
|
||||
colspan="1" type="object" icon="terp-dolar" />
|
||||
</group>
|
||||
</form>
|
||||
|
|
|
@ -67,7 +67,7 @@ class all_closed_cashbox_of_the_day(report_sxw.rml_parse):
|
|||
|
||||
def _get_bal(self,data):
|
||||
res = {}
|
||||
sql =""" select sum(pieces*number) as bal from singer_statement where starting_id = %d """%(data['id'])
|
||||
sql =""" select sum(pieces*number) as bal from account_cashbox_line where starting_id = %d """%(data['id'])
|
||||
self.cr.execute(sql)
|
||||
res = self.cr.dictfetchall()
|
||||
if res :
|
||||
|
@ -115,7 +115,7 @@ class all_closed_cashbox_of_the_day(report_sxw.rml_parse):
|
|||
res = self.cr.dictfetchall()
|
||||
for r in res :
|
||||
total_ending_bal += (r['net_total'] or 0.0)
|
||||
sql1 =""" select sum(pieces*number) as bal from singer_statement where starting_id = %d"""%(r['id'])
|
||||
sql1 =""" select sum(pieces*number) as bal from account_cashbox_line where starting_id = %d"""%(r['id'])
|
||||
self.cr.execute(sql1)
|
||||
data = self.cr.dictfetchall()
|
||||
if data[0]['bal']:
|
||||
|
|
|
@ -53,7 +53,7 @@ class pos_payment_report_user(report_sxw.rml_parse):
|
|||
"and po.state='paid' and to_char(date_trunc('day',po.date_order),'YYYY-MM-DD')::date = current_date " \
|
||||
"and po.user_id IN %s",(tuple(ids),))
|
||||
res=self.cr.fetchone()
|
||||
res = res and res[0] or None
|
||||
res = res and res[0] or 0.0
|
||||
|
||||
return res
|
||||
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
<para style="terp_default_Centre_9">E-mail : [[ address and address.email ]]</para>
|
||||
<para style="terp_default_Centre_9">Shop : [[ o.shop_id.name ]]</para>
|
||||
<para style="terp_default_Centre_9">Vendeur : [[ o.user_salesman_id.name ]]</para>
|
||||
<para style="terp_default_Centre_9">Date : [[ formatLang(o.date_order,date = True) ]]</para>
|
||||
<para style="terp_default_Centre_9">Date : [[ formatLang(o.date_order,date_time = True) ]]</para>
|
||||
<para style="P4">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
|
|
|
@ -29,7 +29,7 @@ class add_product(osv.osv_memory):
|
|||
|
||||
_columns = {
|
||||
'product_id': fields.many2one('product.product', 'Product', required=True),
|
||||
'quantity': fields.float('Quantity ', required=True),
|
||||
'quantity': fields.float('Quantity', required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'quantity': lambda *a: 1,
|
||||
|
@ -73,7 +73,6 @@ class add_product(osv.osv_memory):
|
|||
|
||||
record_id = context and context.get('active_id', False)
|
||||
order_obj= self.pool.get('pos.order')
|
||||
order_line_obj= self.pool.get('pos.order.line')
|
||||
obj=order_obj.browse(cr, uid, record_id)
|
||||
order_obj.write(cr, uid, [record_id], {'state':'done'})
|
||||
if obj.amount_total != obj.amount_paid:
|
||||
|
|
|
@ -4,25 +4,32 @@
|
|||
<!-- Add Product -->
|
||||
|
||||
<record id="view_add_product" model="ir.ui.view">
|
||||
<field name="name">Add Product</field>
|
||||
<field name="name">Add Product</field>
|
||||
<field name="model">pos.add.product</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Add product :">
|
||||
<group col="2" colspan="4">
|
||||
<group col="6" colspan="4">
|
||||
<field name="product_id"/>
|
||||
<field name="quantity"/>
|
||||
<button icon='gtk-cancel' name="close_action"
|
||||
string="Close" type="object" />
|
||||
<button name="select_product" string="Continue"
|
||||
colspan="1" type="object" icon="gtk-ok" />
|
||||
<separator string="" colspan="4"/>
|
||||
<newline/>
|
||||
<group colspan="4" col="4">
|
||||
<label string="" colspan="1"/>
|
||||
<button icon="gtk-stop" special="cancel"
|
||||
string="Cancel"/>
|
||||
<button icon="gtk-ok" name="close_action"
|
||||
string="Save & Close" type="object"/>
|
||||
<button name="select_product" string="Save & New"
|
||||
colspan="1" type="object" icon="gtk-add"/>
|
||||
</group>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_add_product" model="ir.actions.act_window">
|
||||
<field name="name">Add Product</field>
|
||||
<field name="name">Add Product</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">pos.add.product</field>
|
||||
<field name="view_type">form</field>
|
||||
|
|
|
@ -22,11 +22,7 @@
|
|||
import netsvc
|
||||
from osv import osv,fields
|
||||
from tools.translate import _
|
||||
from mx import DateTime
|
||||
import time
|
||||
import pos_box_entries
|
||||
import pos_add_product
|
||||
import pos_payment
|
||||
|
||||
class pos_return(osv.osv_memory):
|
||||
_name = 'pos.return'
|
||||
|
@ -169,9 +165,7 @@ class pos_return(osv.osv_memory):
|
|||
wf_service = netsvc.LocalService("workflow")
|
||||
#Todo :Need to clean the code
|
||||
if active_id:
|
||||
picking_ids = picking_obj.search(cr, uid, [('pos_order', 'in',[active_id]), ('state', '=', 'done')])
|
||||
data = self.read(cr, uid, ids)[0]
|
||||
clone_list = []
|
||||
date_cur = time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
|
||||
for order_id in order_obj.browse(cr, uid, [active_id], context=context):
|
||||
|
@ -197,7 +191,7 @@ class pos_return(osv.osv_memory):
|
|||
qty = data['return%s' %line.id]
|
||||
except :
|
||||
qty = line.qty
|
||||
new_move = stock_move_obj.create(cr, uid, {
|
||||
stock_move_obj.create(cr, uid, {
|
||||
'product_qty': qty ,
|
||||
'product_uos_qty': uom_obj._compute_qty(cr, uid, qty ,line.product_id.uom_id.id),
|
||||
'picking_id': new_picking,
|
||||
|
@ -249,16 +243,11 @@ class add_product(osv.osv_memory):
|
|||
lines_obj = self.pool.get('pos.order.line')
|
||||
picking_obj = self.pool.get('stock.picking')
|
||||
stock_move_obj = self.pool.get('stock.move')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
property_obj= self.pool.get("ir.property")
|
||||
invoice_obj= self.pool.get('account.invoice')
|
||||
picking_ids = picking_obj.search(cr, uid, [('pos_order', 'in',[active_id]), ('state', '=', 'done')])
|
||||
clone_list = []
|
||||
date_cur=time.strftime('%Y-%m-%d')
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
prod_obj=self.pool.get('product.product')
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
return_boj=self.pool.get('pos.return')
|
||||
order_obj.add_product(cr, uid, active_id, data['product_id'], data['quantity'], context=context)
|
||||
|
||||
for order_id in order_obj.browse(cr, uid, [active_id], context=context):
|
||||
|
@ -279,7 +268,7 @@ class add_product(osv.osv_memory):
|
|||
'type':'out',
|
||||
'date':date_cur
|
||||
})
|
||||
new_move=stock_move_obj.create(cr, uid, {
|
||||
stock_move_obj.create(cr, uid, {
|
||||
'product_qty': qty,
|
||||
'product_uos_qty': uom_obj._compute_qty(cr, uid, prod_id.uom_id.id, qty, prod_id.uom_id.id),
|
||||
'picking_id':new_picking,
|
||||
|
@ -296,7 +285,6 @@ class add_product(osv.osv_memory):
|
|||
picking_obj.force_assign(cr, uid, [new_picking], context)
|
||||
order_obj.write(cr,uid,active_id,{'picking_id':new_picking})
|
||||
|
||||
|
||||
return {
|
||||
'name': _('Add Product'),
|
||||
'view_type': 'form',
|
||||
|
@ -315,17 +303,17 @@ class add_product(osv.osv_memory):
|
|||
lines_obj = self.pool.get('pos.order.line')
|
||||
picking_obj = self.pool.get('stock.picking')
|
||||
stock_move_obj = self.pool.get('stock.move')
|
||||
move_obj = self.pool.get('stock.move')
|
||||
property_obj= self.pool.get("ir.property")
|
||||
invoice_obj=self.pool.get('account.invoice')
|
||||
picking_ids = picking_obj.search(cr, uid, [('pos_order', 'in', active_ids), ('state', '=', 'done')])
|
||||
clone_list = []
|
||||
date_cur=time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
uom_obj = self.pool.get('product.uom')
|
||||
return_boj=self.pool.get('pos.return')
|
||||
return_id=return_boj.search(cr,uid,[])
|
||||
data=return_boj.read(cr,uid,return_id,[])[0]
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
self_data = self.read(cr, uid, ids)[0]
|
||||
order_obj.add_product(cr, uid, active_ids[0], self_data['product_id'], self_data['quantity'], context=context)
|
||||
|
||||
for order_id in order_obj.browse(cr, uid, active_ids, context=context):
|
||||
prop_ids =property_obj.search(cr, uid, [('name', '=', 'property_stock_customer')])
|
||||
val = property_obj.browse(cr, uid, prop_ids[0]).value_reference
|
||||
|
@ -345,10 +333,18 @@ class add_product(osv.osv_memory):
|
|||
})
|
||||
for line in order_id.lines:
|
||||
key=('return%s') %line.id
|
||||
if line.id and data.has_key(key):
|
||||
new_move=stock_move_obj.create(cr, uid, {
|
||||
'product_qty': data['return%s' %line.id ],
|
||||
'product_uos_qty': uom_obj._compute_qty(cr, uid, data['return%s' %line.id], line.product_id.uom_id.id),
|
||||
if line.id:
|
||||
if data.has_key(key):
|
||||
qty = data['return%s' %line.id]
|
||||
lines_obj.write(cr,uid,[line.id], {
|
||||
'qty_rfd':(line.qty or 0.0) + data['return%s' %line.id],
|
||||
'qty':line.qty-(data['return%s' %line.id] or 0.0)
|
||||
})
|
||||
else:
|
||||
qty = line.qty
|
||||
stock_move_obj.create(cr, uid, {
|
||||
'product_qty': qty,
|
||||
'product_uos_qty': uom_obj._compute_qty(cr, uid, qty, line.product_id.uom_id.id),
|
||||
'picking_id':new_picking,
|
||||
'product_uom':line.product_id.uom_id.id,
|
||||
'location_id':location_id,
|
||||
|
@ -358,10 +354,6 @@ class add_product(osv.osv_memory):
|
|||
'date':date_cur,
|
||||
'date_planned':date_cur
|
||||
})
|
||||
lines_obj.write(cr,uid,[line.id], {
|
||||
'qty_rfd':(line.qty or 0.0) + data['return%s' %line.id],
|
||||
'qty':line.qty-(data['return%s' %line.id] or 0.0)
|
||||
})
|
||||
wf_service.trg_validate(uid, 'stock.picking',new_picking,'button_confirm', cr)
|
||||
picking_obj.force_assign(cr, uid, [new_picking], context)
|
||||
obj=order_obj.browse(cr,uid, active_ids[0])
|
||||
|
|
Loading…
Reference in New Issue