@@ -482,7 +482,6 @@ class account_move_line(osv.osv):
|
||||
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = \'account_move_line_journal_id_period_id_index\'')
|
||||
if not cr.fetchone():
|
||||
cr.execute('CREATE INDEX account_move_line_journal_id_period_id_index ON account_move_line (journal_id, period_id)')
|
||||
cr.commit()
|
||||
|
||||
def _check_no_view(self, cr, uid, ids):
|
||||
lines = self.browse(cr, uid, ids)
|
||||
@@ -797,7 +796,7 @@ class account_move_line(osv.osv):
|
||||
title = self.view_header_get(cr, uid, view_id, view_type, context)
|
||||
xml = '''<?xml version="1.0"?>\n<tree string="%s" editable="top" refresh="5" on_write="on_create_write">\n\t''' % (title)
|
||||
journal_pool = self.pool.get('account.journal')
|
||||
|
||||
|
||||
ids = journal_pool.search(cr, uid, [])
|
||||
journals = journal_pool.browse(cr, uid, ids)
|
||||
all_journal = [None]
|
||||
@@ -814,14 +813,14 @@ class account_move_line(osv.osv):
|
||||
else:
|
||||
fields.get(field.field).append(journal.id)
|
||||
common_fields[field.field] = common_fields[field.field] + 1
|
||||
|
||||
|
||||
fld.append(('period_id', 3))
|
||||
fld.append(('journal_id', 10))
|
||||
flds.append('period_id')
|
||||
flds.append('journal_id')
|
||||
fields['period_id'] = all_journal
|
||||
fields['journal_id'] = all_journal
|
||||
|
||||
|
||||
from operator import itemgetter
|
||||
fld = sorted(fld, key=itemgetter(1))
|
||||
|
||||
@@ -835,13 +834,13 @@ class account_move_line(osv.osv):
|
||||
|
||||
for field_it in fld:
|
||||
field = field_it[0]
|
||||
|
||||
|
||||
if common_fields.get(field) == total:
|
||||
fields.get(field).append(None)
|
||||
|
||||
|
||||
if field=='state':
|
||||
state = 'colors="red:state==\'draft\'"'
|
||||
|
||||
|
||||
attrs = []
|
||||
if field == 'debit':
|
||||
attrs.append('sum="Total debit"')
|
||||
@@ -864,7 +863,7 @@ class account_move_line(osv.osv):
|
||||
|
||||
if field in widths:
|
||||
attrs.append('width="'+str(widths[field])+'"')
|
||||
|
||||
|
||||
attrs.append("invisible=\"context.get('visible_id') not in %s\"" % (fields.get(field)))
|
||||
xml += '''<field name="%s" %s/>\n''' % (field,' '.join(attrs))
|
||||
|
||||
@@ -914,7 +913,7 @@ class account_move_line(osv.osv):
|
||||
journal = self.pool.get('account.journal').browse(cr, uid, [journal_id])[0]
|
||||
if journal.allow_date and period_id:
|
||||
period = self.pool.get('account.period').browse(cr, uid, [period_id])[0]
|
||||
if not time.strptime(vals['date'],'%Y-%m-%d')>=time.strptime(period.date_start,'%Y-%m-%d') or not time.strptime(vals['date'],'%Y-%m-%d')<=time.strptime(period.date_stop,'%Y-%m-%d'):
|
||||
if not time.strptime(vals['date'][:10],'%Y-%m-%d')>=time.strptime(period.date_start,'%Y-%m-%d') or not time.strptime(vals['date'][:10],'%Y-%m-%d')<=time.strptime(period.date_stop,'%Y-%m-%d'):
|
||||
raise osv.except_osv(_('Error'),_('The date of your Ledger Posting is not in the defined period !'))
|
||||
else:
|
||||
return True
|
||||
|
||||
+359
-219
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,6 @@ class journal_print(report_sxw.rml_parse):
|
||||
ids_journal_period = obj_jperiod.search(self.cr, self.uid, [('journal_id','=',journal), ('period_id','=',period)])
|
||||
if ids_journal_period:
|
||||
self.cr.execute('update account_journal_period set state=%s where journal_id=%s and period_id=%s and state=%s', ('printed',journal,period,'draft'))
|
||||
self.cr.commit()
|
||||
self.cr.execute('select id from account_move_line where period_id=%s and journal_id=%s and state<>\'draft\' order by ('+ sort_selection +'),id', (period, journal))
|
||||
ids = map(lambda x: x[0], self.cr.fetchall())
|
||||
ids_final.append(ids)
|
||||
@@ -56,7 +55,6 @@ class journal_print(report_sxw.rml_parse):
|
||||
line_ids.append(a)
|
||||
return line_ids
|
||||
self.cr.execute('update account_journal_period set state=%s where journal_id=%s and period_id=%s and state=%s', ('printed',journal_id,period_id,'draft'))
|
||||
self.cr.commit()
|
||||
self.cr.execute('select id from account_move_line where period_id=%s and journal_id=%s and state<>\'draft\' order by date,id', (period_id, journal_id))
|
||||
ids = map(lambda x: x[0], self.cr.fetchall())
|
||||
return obj_mline.browse(self.cr, self.uid, ids)
|
||||
|
||||
+241
-138
@@ -127,10 +127,10 @@
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="1,0" stop="1,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#000000" start="2,0" stop="2,0"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Main_Table">
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,0" stop="0,-1"/>
|
||||
<!--lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#ffffff" start="0,0" stop="0,-1"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
|
||||
@@ -149,65 +149,51 @@
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="3,-1" stop="3,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
|
||||
<lineStyle kind="LINEBEFORE" colorName="#ffffff" start="0,4" stop="0,-1"/>
|
||||
<lineStyle kind="LINEAFTER" colorName="#ffffff" start="0,4" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/-->
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Tax_Header">
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Tax_Content">
|
||||
<blockTableStyle id="Table5">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Table_Border_White">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#ffffff" start="2,-1" stop="2,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Final_Border">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="0,0" stop="0,0"/>
|
||||
<lineStyle kind="LINEABOVE" colorName="#ffffff" start="1,0" stop="1,0"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Coment_Payment_Term">
|
||||
<blockTableStyle id="Table3">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_Payment_Terms">
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table1">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Contents" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Times-Roman"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="15.0" leading="19" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Footer" fontName="Times-Roman"/>
|
||||
<paraStyle name="P8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
@@ -227,25 +213,32 @@
|
||||
<paraStyle name="terp_default_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_Right_9" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_White_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_White_2" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0" textColor="#ffffff"/>
|
||||
<paraStyle name="terp_default_Note" rightIndent="0.0" leftIndent="9.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Table" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<para style="terp_default_8">[[ repeatIn(objects,'o') ]]</para>
|
||||
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]] </para>
|
||||
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
|
||||
<blockTable colWidths="297.0,233.0" style="Table_Partner_Address">
|
||||
<tr>
|
||||
<td><para style="P8"><font color="white"> </font></para></td>
|
||||
<td>
|
||||
<para style="terp_default_8">[[ o.partner_id.name ]] [[ o.partner_id.title or '' ]]</para>
|
||||
<para style="terp_default_8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_8">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
|
||||
<para style="terp_default_8">[[ o.address_invoice_id.title or '' ]] [[ o.address_invoice_id.name ]]</para>
|
||||
<para style="terp_default_8">[[ o.address_invoice_id.street ]]</para>
|
||||
<para style="terp_default_8">[[ o.address_invoice_id.street2 or '' ]]</para>
|
||||
<para style="terp_default_8">[[ o.address_invoice_id.zip or '' ]] [[ o.address_invoice_id.city or '' ]]</para>
|
||||
<para style="terp_default_8">[[ o.address_invoice_id.state_id and o.address_invoice_id.state_id.name or '' ]]</para>
|
||||
<para style="terp_default_8">[[ o.address_invoice_id.country_id and o.address_invoice_id.country_id.name or '' ]]</para>
|
||||
<para style="P8"><font color="white"> </font></para>
|
||||
<para style="terp_default_8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="terp_default_8">Tel. : [[ o.address_invoice_id.phone or removeParentNode('para') ]]</para>
|
||||
<para style="terp_default_8">Fax : [[ o.address_invoice_id.fax or removeParentNode('para') ]]</para>
|
||||
<para style="terp_default_8">VAT : [[ o.partner_id.vat or removeParentNode('para') ]]</para>
|
||||
@@ -255,168 +248,278 @@
|
||||
<para style="terp_header">Invoice [[ ((o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')) or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
||||
<para style="terp_header">PRO-FORMA [[ ((o.type == 'out_invoice' and o.state == 'proforma2') or removeParentNode('para')) and '' ]]</para>
|
||||
<para style="terp_header">Draft Invoice [[ ((o.type == 'out_invoice' and o.state == 'draft') or removeParentNode('para')) and '' ]]</para>
|
||||
<para style="terp_header">Canceled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]]</para>
|
||||
<para style="terp_header">Cancelled Invoice [[ ((o.type == 'out_invoice' and o.state == 'cancel') or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
||||
<para style="terp_header">Refund [[ (o.type=='out_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
||||
<para style="terp_header">Supplier Refund [[ (o.type=='in_refund' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
||||
<para style="terp_header">Supplier Invoice [[ (o.type=='in_invoice' or removeParentNode('para')) and '' ]] [[ o.number ]]</para>
|
||||
<para style="P8"><font color="white"> </font></para>
|
||||
<para style="terp_default_8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="177.0,177.0,177.0" style="Table_Invoice_General_Header">
|
||||
<tr>
|
||||
<td><para style="terp_tblheader_General_Centre">Document</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre">Invoice Date</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre">Partner Ref.</para></td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Document</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Invoice Date</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_General_Centre">Partner Ref.</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="177.0,177.0,177.0" style="Table_General_Detail_Content">
|
||||
<tr>
|
||||
<td><para style="terp_default_Centre_9">[[ o.name ]]</para></td>
|
||||
<td><para style="terp_default_Centre_9">[[ formatLang(o.date_invoice,date=True) ]]</para></td>
|
||||
<td><para style="terp_default_Centre_9">[[ o.address_invoice_id.partner_id.ref or '' ]]</para></td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_9">[[ o.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_9">[[ formatLang(o.date_invoice,date=True) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_9">[[ o.address_invoice_id.partner_id.ref or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="P8"><font color="white"></font></para>
|
||||
<para style="P8"><font color="white"> </font></para>
|
||||
<blockTable colWidths="211.0,62.0,63.0,63.0,40.0,84.0" style="Table_Header_Invoice_Line">
|
||||
<para style="terp_default_8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="211.0,62.0,63.0,63.0,43.0,83.0" style="Table_Header_Invoice_Line">
|
||||
<tr>
|
||||
<td><para style="terp_tblheader_Details">Description</para></td>
|
||||
<td><para style="terp_tblheader_Details">Taxes</para></td>
|
||||
<td><para style="terp_tblheader_Details">Quantity</para></td>
|
||||
<td><para style="terp_tblheader_Details_Centre">Unit Price</para></td>
|
||||
<td><para style="terp_tblheader_Details">Disc.(%)</para></td>
|
||||
<td><para style="terp_tblheader_Details_Centre">Price</para></td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Description</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Taxes</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Quantity</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Unit Price</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Disc.(%)</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Price</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_8">[[ repeatIn(o.invoice_line,'l') ]]</para>
|
||||
<blockTable colWidths="211.0,62.0,36.0,27.0,63.0,36.0,62.0,26.0" style="Table_Invoice_Line_Content">
|
||||
<blockTable colWidths="211.0,62.0,41.0,22.0,63.0,42.0,59.0,23.0" style="Table_Invoice_Line_Content">
|
||||
<tr>
|
||||
<td><para style="terp_default_9">[[ l.name ]]</para></td>
|
||||
<td><para style="terp_default_9">[[ ', '.join([ lt.description or '' for lt in l.invoice_line_tax_id ]) ]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ formatLang(l.quantity)]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ (l.uos_id and l.uos_id.name) or '' ]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ formatLang(l.price_unit) ]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ formatLang(l.discount) ]] </para></td>
|
||||
<td><para style="terp_default_Right_9">[[ formatLang(l.price_subtotal) ]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ l.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ ', '.join([ lt.name or '' for lt in l.invoice_line_tax_id ]) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.quantity)]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ (l.uos_id and l.uos_id.name) or '' ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.price_unit) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.discount) ]] </para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(l.price_subtotal) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><para style="terp_default_Note">[[ format(l.note) or removeParentNode('tr') ]]</para></td>
|
||||
<td><para style="terp_default_Note"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_Note"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_Note"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_Note"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_Note"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_Note"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_Note"><font color="white"> </font></para></td>
|
||||
<td>
|
||||
<para style="terp_default_Note">[[ format(l.note or '') or removeParentNode('tr') ]]</para>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Note">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<blockTable colWidths="371.0,153.0" style="Table_Format_2">
|
||||
<blockTable colWidths="370.0,153.0" style="Table_Format_2">
|
||||
<tr>
|
||||
<td>
|
||||
<blockTable colWidths="176.0,258.0" style="Table_format_Table_Line_total">
|
||||
<tr>
|
||||
<td><para style="terp_default_2"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_2"><font color="white"> </font></para></td>
|
||||
<td>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
<td>
|
||||
<blockTable colWidths="62.0,59.0,25.0" style="Table_eclu_Taxes_Total">
|
||||
<blockTable colWidths="62.0,62.0,22.0" style="Table_eclu_Taxes_Total">
|
||||
<tr>
|
||||
<td><para style="terp_default_Bold_9">Net Total:</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed) ]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
|
||||
<td>
|
||||
<para style="terp_default_9">Net Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_untaxed) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="63.0,58.0,26.0" style="Table_Taxes_Total">
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="63.0,61.0,23.0" style="Table_Taxes_Total">
|
||||
<tr>
|
||||
<td><para style="terp_default_Bold_9">Taxes:</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
|
||||
<td>
|
||||
<para style="terp_default_9">Taxes:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_tax) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="63.0,58.0,26.0" style="Table_Total_Include_Taxes">
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="63.0,61.0,23.0" style="Table_Total_Include_Taxes">
|
||||
<tr>
|
||||
<td><para style="terp_default_Bold_9">Total:</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ formatLang(o.amount_total) ]]</para></td>
|
||||
<td><para style="terp_default_Right_9">[[ o.currency_id.code ]]</para></td>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Total:</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(o.amount_total) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ o.currency_id.code ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="530.0" style="Table_Main_Table">
|
||||
<blockTable colWidths="530.0" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<blockTable colWidths="54.0,80.0,67.0" style="Table_Tax_Header">
|
||||
<blockTable colWidths="149.0,55.0,52.0" style="Table6">
|
||||
<tr>
|
||||
<td><para style="terp_tblheader_Details_Centre">Tax</para></td>
|
||||
<td><para style="terp_tblheader_Details_Right">Base</para></td>
|
||||
<td><para style="terp_tblheader_Details_Right">Amount</para></td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Tax</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Base</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Amount</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_2">[[ repeatIn(o.tax_line,'t') ]]</para>
|
||||
<blockTable colWidths="149.0,55.0,52.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_8">[[ t.name ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ formatLang(t.base) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]] [[ formatLang(t.amount) ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_8">[[ repeatIn(o.tax_line,'t') ]]</para>
|
||||
<blockTable colWidths="53.0,80.0,65.0" style="Table_Tax_Content">
|
||||
<tr>
|
||||
<td><para style="terp_default_Centre_8">[[ t.name ]] </para></td>
|
||||
<td><para style="terp_default_Right_8">[[ formatLang(t.base) ]]</para></td>
|
||||
<td><para style="terp_default_Right_8">[[ (t.tax_code_id and t.tax_code_id.notprintable) and removeParentNode('blockTable') or '' ]][[ formatLang(t.amount) ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="530.0" style="Table3">
|
||||
<tr>
|
||||
<td>
|
||||
<blockTable colWidths="53.0,60.0,65.0" style="Table_Table_Border_White">
|
||||
<tr>
|
||||
<td><para style="terp_default_2"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_2"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_2"><font color="white"> </font></para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_9">[[ format(o.comment or '') or removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="180.0,350.0" style="Table_Final_Border">
|
||||
<blockTable colWidths="530.0" style="Table2">
|
||||
<tr>
|
||||
<td><para style="terp_default_2"><font color="white"> </font></para></td>
|
||||
<td><para style="terp_default_2"><font color="white"> </font></para></td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ format((o.payment_term and o.payment_term.note) or '') or removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<blockTable colWidths="530.0" style="Table_Coment_Payment_Term">
|
||||
<tr>
|
||||
<td><para style="terp_default_9">[[ format(o.comment or removeParentNode('blockTable')) ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="530.0" style="Table_Payment_Terms">
|
||||
<tr>
|
||||
<td><para style="terp_default_9">[[ format((o.payment_term and o.payment_term.note) or removeParentNode('blockTable')) ]]</para></td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="128.0,402.0" style="Standard_Outline">
|
||||
<blockTable colWidths="128.0,402.0" style="Table1">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_Bold_9">Fiscal Position Remark :</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ format(o.fiscal_position and o.fiscal_position.note or removeParentNode('blockTable')) ]]</para>
|
||||
<para style="terp_default_9">[[ format((o.fiscal_position and o.fiscal_position.note) or '') or removeParentNode('blockTable') ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
|
||||
</tr>
|
||||
</blockTable>
|
||||
<para style="terp_default_2">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.6\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-04-10 04:39+0000\n"
|
||||
"Last-Translator: digitalsatori <Unknown>\n"
|
||||
"PO-Revision-Date: 2010-07-13 03:49+0000\n"
|
||||
"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:10+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-07-13 03:49+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
@@ -21,7 +21,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"Number of hours that can be invoiced plus those that already have been "
|
||||
"invoiced."
|
||||
msgstr "小时数能加在已开的发票上"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.model,name:account_analytic_analysis.model_account_analytic_analysis_summary_user
|
||||
@@ -31,12 +31,12 @@ msgstr "用户的小时数合计"
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,last_invoice_date:0
|
||||
msgid "Last Invoice Date"
|
||||
msgstr "最近开票日期"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,remaining_ca:0
|
||||
msgid "Computed using the formula: Max Invoice Price - Invoiced Amount."
|
||||
msgstr "计算公式为:最高发票价格 - 发票金额"
|
||||
msgstr "计算公式为:最高发票价格 - 已开票金额"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,remaining_hours:0
|
||||
@@ -44,25 +44,26 @@ msgid "Computed using the formula: Maximum Quantity - Hours Tot."
|
||||
msgstr "计算公式为:最大数量 - 小时合计"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_all
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_all
|
||||
msgid "All Analytic Accounts"
|
||||
msgstr "所有辅助核算项目"
|
||||
msgstr "所有辅助核算项"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_managed_open
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_analytic_account_to_valid_open
|
||||
msgid "My Current Accounts"
|
||||
msgstr "我的当前科目"
|
||||
msgstr "我的当前项"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "描述视图结构的XML文件无效"
|
||||
msgstr "无效XML视图结构!"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,last_invoice_date:0
|
||||
msgid "Date of the last invoice created for this analytic account."
|
||||
msgstr "这辅助核算项目的最近开票日期"
|
||||
msgstr "这辅助核算项的最近开票日期"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,ca_theorical:0
|
||||
@@ -83,13 +84,13 @@ msgstr "计算公式:理论收入 - 总费用"
|
||||
#: constraint:ir.model:0
|
||||
msgid ""
|
||||
"The Object name must start with x_ and not contain any special character !"
|
||||
msgstr "对象名必须要以X_开头并且不能含有特殊字符!"
|
||||
msgstr "对象名称必须以“x_”开头且不能包含任何特殊字符!"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_new
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_new
|
||||
msgid "New Analytic Account"
|
||||
msgstr "新的分析科目"
|
||||
msgstr "新辅助核算项"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,theorical_margin:0
|
||||
@@ -105,29 +106,29 @@ msgstr "实际利润(%)"
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_all_open
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_all_open
|
||||
msgid "Current Analytic Accounts"
|
||||
msgstr "当前分析科目"
|
||||
msgstr "当前辅助核算项"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,last_worked_date:0
|
||||
msgid "Date of the latest work done on this account."
|
||||
msgstr "这科目的最近的工作完成日期"
|
||||
msgstr "这项的最近的工作完成日期"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: help:account.analytic.account,last_worked_invoiced_date:0
|
||||
msgid ""
|
||||
"If invoice from the costs, this is the date of the latest work or cost that "
|
||||
"have been invoiced."
|
||||
msgstr "如果是成本发票,最近工作或成本的时间已开出的发票"
|
||||
msgstr "如果发票来自费用, 这是最近工作日期或已开票的费用"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_invoicing
|
||||
msgid "Invoicing"
|
||||
msgstr "计价折扣"
|
||||
msgstr "开发票"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,last_worked_date:0
|
||||
msgid "Date of Last Cost/Work"
|
||||
msgstr "最近的成本/工作 日期"
|
||||
msgstr "费用或工作的最近日期"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,total_cost:0
|
||||
@@ -139,7 +140,7 @@ msgstr "总成本"
|
||||
msgid ""
|
||||
"Number of hours you spent on the analytic account (from timesheet). It "
|
||||
"computes on all journal of type 'general'."
|
||||
msgstr "你的小时数在辅助核算项目(根据时间表).它计算所有普通分类帐."
|
||||
msgstr "在辅助核算项你花费的小时数(根据时间表). 它在所有类型为普通的记录集合里计算."
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,remaining_hours:0
|
||||
@@ -190,8 +191,8 @@ msgid ""
|
||||
"important data for project manager of services companies.\n"
|
||||
"Add menu to show relevant information for each manager."
|
||||
msgstr ""
|
||||
"修改核算到显示服务公司的项目管理主要时间\n"
|
||||
"添加菜单显示每个管理的有关信息"
|
||||
"修改辅助核算项到显示视图, 服务公司项目经理的重要数据\n"
|
||||
"添加菜单显示每个管理者的相关信息"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,hours_qtt_non_invoiced:0
|
||||
@@ -206,12 +207,12 @@ msgstr "总小时"
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_account
|
||||
msgid "Analytic Accounts"
|
||||
msgstr "核算项目"
|
||||
msgstr "辅助核算项"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: model:ir.module.module,shortdesc:account_analytic_analysis.module_meta_information
|
||||
msgid "report_account_analytic"
|
||||
msgstr "核算项目报表"
|
||||
msgstr "辅助核算项报表"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,ca_invoiced:0
|
||||
@@ -226,7 +227,7 @@ msgstr "财务项目管理"
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,last_worked_invoiced_date:0
|
||||
msgid "Date of Last Invoiced Cost"
|
||||
msgstr "最近的发票成本日期"
|
||||
msgstr "最近的已发票日期"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,ca_to_invoice:0
|
||||
@@ -237,7 +238,7 @@ msgstr "未开票金额"
|
||||
#: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_all_pending
|
||||
#: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_all_pending
|
||||
msgid "Pending Analytic Accounts"
|
||||
msgstr "未决的辅助核算项目"
|
||||
msgstr "未决的辅助核算项"
|
||||
|
||||
#. module: account_analytic_analysis
|
||||
#: field:account.analytic.account,hours_qtt_invoiced:0
|
||||
|
||||
@@ -53,6 +53,7 @@
|
||||
'account_followup_data.xml'
|
||||
],
|
||||
'demo_xml': ['account_followup_demo.xml'],
|
||||
'test': ['test/account_followup.yml'],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'certificate': '0072481076453',
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
-
|
||||
In order to test account_payment in OpenERP I create a new record Type
|
||||
-
|
||||
-
|
||||
Creating a payment.type record
|
||||
In order to test account_payment in OpenERP I create a new record Type.
|
||||
-
|
||||
!record {model: payment.type, id: payment_type_t0}:
|
||||
code: T0
|
||||
@@ -127,19 +124,3 @@
|
||||
- state == 'done'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -90,7 +90,6 @@ class wiz_auc_lots_buyer_map(osv.osv_memory):
|
||||
for rec in recs:
|
||||
if rec.ach_login==datas['ach_login']:
|
||||
lots_obj.write(cr, uid, [rec.id], {'ach_uid': datas['ach_uid']}, context=context)
|
||||
cr.commit()
|
||||
return {}
|
||||
|
||||
def fields_view_get(self, cr, uid, view_id=None, view_type='form',
|
||||
|
||||
@@ -73,7 +73,6 @@ class auction_lots_make_invoice(osv.osv_memory):
|
||||
result = mod_obj._get_id(cr, uid, 'account', 'view_account_invoice_filter')
|
||||
id = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
lots_ids = order_obj.seller_trans_create(cr, uid, context['active_ids'], context)
|
||||
cr.commit()
|
||||
return {
|
||||
'domain': "[('id','in', ["+','.join(map(str, lots_ids))+"])]",
|
||||
'name': 'Seller invoices',
|
||||
|
||||
@@ -73,7 +73,6 @@ class auction_lots_make_invoice_buyer(osv.osv_memory):
|
||||
for lot in lots:
|
||||
up_auction = order_obj.write(cr, uid, [lot.id], {'ach_uid': data['buyer_id']})
|
||||
lots_ids = order_obj.lots_invoice(cr, uid, context['active_ids'], context, data['number'])
|
||||
cr.commit()
|
||||
return {
|
||||
'domain': "[('id','in', ["+','.join(map(str, lots_ids))+"])]",
|
||||
'name': 'Buyer invoices',
|
||||
|
||||
@@ -105,8 +105,8 @@ the rule to mark CC(mail to any other person defined in actions)."),
|
||||
'act_mail_to_email': fields.char('Mail to these Emails', size=128, \
|
||||
help="Email-id of the persons whom mail is to be sent"),
|
||||
'act_mail_body': fields.text('Mail body', help="Content of mail"),
|
||||
'regex_name': fields.char('Regex on Resource Name', size=128, help="Regular expression for mathching name of the resource\
|
||||
\ne.g.: urgent.* will search for records having name starting with urgent\
|
||||
'regex_name': fields.char('Regex on Resource Name', size=128, help="Regular expression for matching name of the resource\
|
||||
\ne.g.: 'urgent.*' will search for records having name starting with the string 'urgent'\
|
||||
\nNote: This is case sensitive search."),
|
||||
'server_action_id': fields.many2one('ir.actions.server', 'Server Action', help="Describes the action name.\neg:on which object which action to be taken on basis of which condition"),
|
||||
'filter_id':fields.many2one('ir.filters', 'Filter', required=False),
|
||||
|
||||
@@ -690,7 +690,6 @@ true, it will allow you to hide the event alarm information without removing it.
|
||||
cr.execute('Update %s set base_calendar_alarm_id=%s, alarm_id=%s \
|
||||
where id=%s' % (model_obj._table, \
|
||||
alarm_id, basic_alarm.id, data.id))
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
def do_alarm_unlink(self, cr, uid, ids, model, context=None):
|
||||
@@ -714,7 +713,6 @@ true, it will allow you to hide the event alarm information without removing it.
|
||||
alarm_obj.unlink(cr, uid, alarm_ids)
|
||||
cr.execute('Update %s set base_calendar_alarm_id=NULL, alarm_id=NULL\
|
||||
where id=%s' % (model_obj._table, datas.id))
|
||||
cr.commit()
|
||||
return True
|
||||
|
||||
res_alarm()
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
Now I will check that the new job is assigned properly to contact or not
|
||||
-
|
||||
!assert {model: res.partner.contact, id: res_partner_contact_williams0}:
|
||||
- len(job_ids) > 2
|
||||
- len(job_ids) >= 2
|
||||
- |
|
||||
In order to check contacts working at several addresses for different partners
|
||||
I will create contact with 2 different addresses
|
||||
|
||||
@@ -48,7 +48,7 @@ class base_setup_config_choice(osv.osv_memory):
|
||||
user_ids = user_obj.search(cr, uid, [])
|
||||
users = user_obj.browse(cr, uid, user_ids)
|
||||
user_str = '\n'.join(map(lambda x: ' - %s: %s / %s' % (x.name, x.login, x.password), users))
|
||||
return _('The following users have been installed on your database: \n')+ user_str
|
||||
return _('The following users have been installed : \n')+ user_str
|
||||
|
||||
_columns = {
|
||||
'installed_users':fields.text('Installed Users', readonly=True),
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<separator string="" position="vertical" colspan="1" rowspan="8"/>
|
||||
<group colspan="4" width="400">
|
||||
<separator string="Installation Done" colspan="4"/>
|
||||
<label align="0.0" string="Your new database is now fully installed." colspan="4"/>
|
||||
<label align="0.0" string="Your database is now created." colspan="4"/>
|
||||
<field name="installed_users" nolabel= "1" colspan="4"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<attribute name="string">Main Company Setup</attribute>
|
||||
</form>
|
||||
<xpath expr="//label[@string='description']" position="attributes">
|
||||
<attribute name="string">Information of your company will be used to custiomise your documents like Invoices, Sale Orders,...</attribute>
|
||||
<attribute name="string">Information of your company will be used to custiomise your documents like Invoices, Sale Orders and many more.</attribute>
|
||||
</xpath>
|
||||
<xpath expr='//separator[@string="title"]' position='attributes'>
|
||||
<attribute name='string'>Configure Your Company</attribute>
|
||||
@@ -24,16 +24,16 @@
|
||||
<group colspan="5">
|
||||
<group colspan="2">
|
||||
<field name="company_id" invisible="1"/>
|
||||
<field name="name" required="True"/><field name="account_no"/>
|
||||
<field name="currency" widget="selection"/><field name="street"/>
|
||||
<field name="street2"/>
|
||||
<field name="country_id"/>
|
||||
<field name="name" required="True"/><field name="website"/>
|
||||
<field name="street"/><field name="street2"/>
|
||||
<field name="zip"/>
|
||||
<field name="state_id"/>
|
||||
<field name="city"/>
|
||||
<field name="email"/>
|
||||
<field name="country_id"/>
|
||||
<field name="state_id"/>
|
||||
<field name="phone"/>
|
||||
<field name="website"/>
|
||||
<field name="email"/>
|
||||
<field name="account_no"/>
|
||||
<field name="currency" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<!-- <group colspan="2" groups="base.group_extended">-->
|
||||
|
||||
@@ -4,9 +4,28 @@
|
||||
<menuitem icon="terp-graph" id="base.reporting_menu"
|
||||
name="Reporting" sequence="30" />
|
||||
<menuitem icon="terp-graph" id="menu_dasboard"
|
||||
name="Dashboard" sequence="30" />
|
||||
|
||||
<!--Board Note Tree View -->
|
||||
name="Dashboard" sequence="30" />
|
||||
<!--Board Note Search View -->
|
||||
<record id="view_board_note_search" model="ir.ui.view">
|
||||
<field name="name">board.note.search</field>
|
||||
<field name="model">board.note</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Notes">
|
||||
<group col="10" colspan="4">
|
||||
<field name="name" string="Subject"/>
|
||||
<field name="type" string="Note Type"/>
|
||||
<field name="date" string="Date"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" colspan="4" string="Group By...">
|
||||
<filter string="Author" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!--Board Note Tree View -->
|
||||
|
||||
<record id="view_board_note_tree" model="ir.ui.view">
|
||||
<field name="name">board.note.tree</field>
|
||||
@@ -15,10 +34,11 @@
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Notes">
|
||||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--Board Note Form View -->
|
||||
|
||||
<record id="view_board_note_form" model="ir.ui.view">
|
||||
@@ -31,7 +51,8 @@
|
||||
<field name="type" select="1" required="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
<field colspan="4" name="note"/>
|
||||
<separator string="Notes" colspan="4"/>
|
||||
<field colspan="4" name="note" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -43,6 +64,7 @@
|
||||
<field name="res_model">board.note</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form,tree</field>
|
||||
<field name="search_view_id" ref="view_board_note_search"/>
|
||||
</record>
|
||||
|
||||
<!-- Board Tree View -->
|
||||
@@ -72,7 +94,7 @@
|
||||
name="%(action_board_menu_create)d"
|
||||
string="Create Menu" type="action"
|
||||
icon="gtk-justify-fill" />
|
||||
<field colspan="4" name="line_ids">
|
||||
<field colspan="4" name="line_ids" nolabel="1">
|
||||
<tree string="Dashboard View">
|
||||
<field name="name"/>
|
||||
<field name="sequence"/>
|
||||
|
||||
+9
-5
@@ -124,7 +124,7 @@ class crm_case(object):
|
||||
stage_pool = self.pool.get('crm.case.stage')
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
if section in s:
|
||||
st = case.stage_id.id or False
|
||||
st = not context.get('force_domain', False) and case.stage_id.id or False
|
||||
if st in s[section]:
|
||||
data = {'stage_id': s[section][st]}
|
||||
stage = s[section][st]
|
||||
@@ -141,8 +141,12 @@ class crm_case(object):
|
||||
if not context:
|
||||
context = {}
|
||||
stage_obj = self.pool.get('crm.case.stage')
|
||||
sid = stage_obj.search(cr, uid, \
|
||||
[('object_id.model', '=', self._name)], context=context)
|
||||
tmp = self.read(cr, uid, ids, ['section_id'], context)[0]['section_id']
|
||||
section_id = tmp and tmp[0] or False
|
||||
domain = [('object_id.model', '=', self._name), ('section_id', '=', section_id)]
|
||||
if 'force_domain' in context and context['force_domain']:
|
||||
domain += context['force_domain']
|
||||
sid = stage_obj.search(cr, uid, domain, context=context)
|
||||
s = {}
|
||||
previous = {}
|
||||
section = self._name
|
||||
@@ -168,7 +172,7 @@ class crm_case(object):
|
||||
stage_pool = self.pool.get('crm.case.stage')
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
if section in s:
|
||||
st = case.stage_id.id or False
|
||||
st = not context.get('force_domain', False) and case.stage_id.id or False
|
||||
s[section] = dict([(v, k) for (k, v) in s[section].iteritems()])
|
||||
if st in s[section]:
|
||||
data = {'stage_id': s[section][st]}
|
||||
@@ -440,7 +444,7 @@ class crm_case_section(osv.osv):
|
||||
'active': fields.boolean('Active', help="If the active field is set to \
|
||||
true, it will allow you to hide the sales team without removing it."),
|
||||
'allow_unlink': fields.boolean('Allow Delete', help="Allows to delete non draft cases"),
|
||||
'change_responsible': fields.boolean('Change Responsible', help="Set responsible of this Sales team on escalation to this team"),
|
||||
'change_responsible': fields.boolean('Change Responsible', help="Thick this box if you want that on escalation, the responsible of this sale team automatically becomes responsible of the lead/opportunity escaladed"),
|
||||
'user_id': fields.many2one('res.users', 'Responsible User'),
|
||||
'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
|
||||
'reply_to': fields.char('Reply-To', size=64, help="The email address put \
|
||||
|
||||
+11
-3
@@ -177,10 +177,18 @@ and users"),
|
||||
@param ids: List of case's Ids
|
||||
@param *args: Give Tuple Value
|
||||
"""
|
||||
old_state = self.read(cr, uid, ids, ['state'])[0]['state']
|
||||
res = super(crm_lead, self).case_open(cr, uid, ids, *args)
|
||||
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
if old_state == 'draft':
|
||||
stage_id = super(crm_lead, self).stage_next(cr, uid, ids, *args)
|
||||
if not stage_id:
|
||||
raise osv.except_osv(_('Warning !'), _('There is no stage defined for this Sale Team.'))
|
||||
value = self.onchange_stage_id(cr, uid, ids, stage_id, context={})['value']
|
||||
value.update({'date_open': time.strftime('%Y-%m-%d %H:%M:%S'), 'stage_id': stage_id})
|
||||
self.write(cr, uid, ids, value)
|
||||
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _('Lead ') + " '" + name + "' "+ _("is Open.")
|
||||
message = _('The Lead') + " '" + name + "' "+ _("has been written as Open.")
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
@@ -195,7 +203,7 @@ and users"),
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, args)
|
||||
self.write(cr, uid, ids, {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _('Lead ') + " '" + name + "' "+ _("is Closed.")
|
||||
message = _('The Lead') + " '" + name + "' "+ _("has been written as Closed.")
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
|
||||
@@ -309,7 +309,7 @@
|
||||
context="{'invisible_section': False}">
|
||||
<filter icon="terp-personal+"
|
||||
context="{'invisible_section': False}"
|
||||
domain="[('section_id.user_id','=',uid)]"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
help="My Sales Team"/>
|
||||
<filter icon="terp-personal+"
|
||||
context="{'invisible_section': False}"
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
<field name="partner_id" select="1" />
|
||||
<field name="section_id" select="1" widget="selection">
|
||||
<filter icon="terp-personal+"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
help="My Sale Team" />
|
||||
</field>
|
||||
<field name="user_id" select="1"/>
|
||||
|
||||
@@ -64,9 +64,36 @@ class crm_opportunity(osv.osv):
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
res = super(crm_opportunity, self).case_close(cr, uid, ids, args)
|
||||
self.write(cr, uid, ids, {'probability' : 100.0, 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
stage_id = super(crm_opportunity, self).stage_next(cr, uid, ids, context={'force_domain': [('probability', '=', 100)]})
|
||||
if not stage_id:
|
||||
raise osv.except_osv(_('Warning !'), _('There is no stage for won oppportunities defined for this Sale Team.'))
|
||||
value = self.onchange_stage_id(cr, uid, ids, stage_id, context={})['value']
|
||||
value.update({'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), 'stage_id': stage_id})
|
||||
|
||||
self.write(cr, uid, ids, value)
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _('Opportunity ') + " '" + name + "' "+ _("is Won.")
|
||||
message = _('The Opportunity') + " '" + name + "' "+ _("has been written as Won.")
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
def case_mark_lost(self, cr, uid, ids, *args):
|
||||
"""Mark the case as lost: state = done and probability = 0%
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
res = super(crm_opportunity, self).case_close(cr, uid, ids, args)
|
||||
stage_id = super(crm_opportunity, self).stage_next(cr, uid, ids, context={'force_domain': [('probability', '=', 0)]})
|
||||
if not stage_id:
|
||||
raise osv.except_osv(_('Warning !'), _('There is no stage for lost oppportunities defined for this Sale Team.'))
|
||||
value = self.onchange_stage_id(cr, uid, ids, stage_id, context={})['value']
|
||||
value.update({'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), 'stage_id': stage_id})
|
||||
|
||||
res = self.write(cr, uid, ids, value)
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _('The Opportunity') + " '" + name + "' "+ _("has been written as Lost.")
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
@@ -80,13 +107,23 @@ class crm_opportunity(osv.osv):
|
||||
"""
|
||||
res = super(crm_opportunity, self).case_cancel(cr, uid, ids, args)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0})
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _('Opportunity ') + " '" + name + "' "+ _("is Lost.")
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
"""Overrides reset as draft in order to set the stage field as empty
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
res = super(crm_opportunity, self).case_reset(cr, uid, ids, *args)
|
||||
self.write(cr, uid, ids, {'stage_id': False})
|
||||
return True
|
||||
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
"""Overrides cancel for crm_case for setting Open Date
|
||||
"""Overrides open for crm_case for setting Open Date
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
|
||||
@@ -65,8 +65,11 @@
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
<group col="10" colspan="4">
|
||||
<field name="state"/>
|
||||
<button name="case_reset" string="Reset to New"
|
||||
states="done,cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
@@ -74,18 +77,18 @@
|
||||
states="draft,open" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_escalate" string="Escalate"
|
||||
states="open,draft,pending" type="object"
|
||||
states="open,pending" type="object"
|
||||
groups="base.group_extended"
|
||||
icon="gtk-go-up" />
|
||||
<button name="case_cancel" string="Mark Lost"
|
||||
<button name="case_cancel" string="Cancel"
|
||||
states="draft,open,pending" type="object"
|
||||
icon="gtk-close" />
|
||||
<button name="case_mark_lost" string="Mark Lost"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_close" string="Mark Won"
|
||||
states="open,draft,pending" type="object"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-apply" />
|
||||
<button name="case_reset" string="Reset to New"
|
||||
states="done,cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="Lead">
|
||||
@@ -224,15 +227,15 @@
|
||||
<button name="case_open" string="Open"
|
||||
states="draft,pending" type="object"
|
||||
icon="gtk-go-forward" />
|
||||
<button name="case_close" string="Won"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-apply" />
|
||||
<button name="case_pending" string="Pending"
|
||||
states="open,draft" type="object"
|
||||
icon="gtk-media-pause" />
|
||||
<button name="case_cancel" string="Lost"
|
||||
states="draft,open,pending" type="object"
|
||||
<button name="case_mark_lost" string="Lost"
|
||||
states="open,pending" type="object"
|
||||
icon="gtk-cancel" />
|
||||
<button name="case_close" string="Won"
|
||||
states="open,draft,pending" type="object"
|
||||
icon="gtk-apply" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -291,7 +294,7 @@
|
||||
context="{'invisible_section': False}"
|
||||
widget="selection">
|
||||
<filter icon="terp-personal+"
|
||||
domain="[('section_id.user_id','=',uid)]"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
context="{'invisible_section': False}"
|
||||
help="My Sales Team" />
|
||||
<filter icon="terp-personal+"
|
||||
|
||||
@@ -273,7 +273,7 @@
|
||||
<field name="section_id"
|
||||
select="1" widget="selection" string="Sales Team">
|
||||
<filter icon="terp-personal+"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
help="My Sale Team" />
|
||||
</field>
|
||||
<newline/>
|
||||
|
||||
@@ -11,9 +11,7 @@
|
||||
<field name="name"/>
|
||||
<field name="menu_parent_id"/>
|
||||
<field name="section_id"/>
|
||||
<label string="This wizard will create all sub-menus, within the selected menu." align="0.0" colspan="4"/>
|
||||
<label string="You may want to create a new parent menu to put all the created menus in." align="0.0" colspan="4"/>
|
||||
<separator string="Select Views (Empty for default)" colspan="4"/>
|
||||
<separator string="Select Views (Empty for Default)" colspan="4"/>
|
||||
<field name="view_form"/>
|
||||
<field name="view_tree"/>
|
||||
<field name="view_calendar"/>
|
||||
|
||||
@@ -45,42 +45,6 @@ class crm_claim_report(osv.osv):
|
||||
_name = "crm.claim.report"
|
||||
_auto = False
|
||||
_description = "CRM Claim Report"
|
||||
|
||||
def _get_data(self, cr, uid, ids, field_name, arg, context={}):
|
||||
|
||||
""" @param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case and section Data’s IDs
|
||||
@param context: A standard dictionary for contextual values """
|
||||
|
||||
res = {}
|
||||
state_perc = 0.0
|
||||
avg_ans = 0.0
|
||||
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
if field_name != 'avg_answers':
|
||||
state = field_name[5:]
|
||||
cr.execute("select count(*) from crm_opportunity where \
|
||||
section_id =%s and state='%s'"%(case.section_id.id, state))
|
||||
state_cases = cr.fetchone()[0]
|
||||
perc_state = (state_cases / float(case.nbr)) * 100
|
||||
|
||||
res[case.id] = perc_state
|
||||
else:
|
||||
model_name = self._name.split('report.')
|
||||
if len(model_name) < 2:
|
||||
res[case.id] = 0.0
|
||||
else:
|
||||
model_name = model_name[1]
|
||||
|
||||
cr.execute("select count(*) from crm_case_log l, ir_model m \
|
||||
where l.model_id=m.id and m.model = '%s'" , model_name)
|
||||
logs = cr.fetchone()[0]
|
||||
|
||||
avg_ans = logs / case.nbr
|
||||
res[case.id] = avg_ans
|
||||
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Year', size=64, required=False, readonly=True),
|
||||
@@ -88,9 +52,6 @@ class crm_claim_report(osv.osv):
|
||||
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
|
||||
'nbr': fields.integer('# of Cases', readonly=True),
|
||||
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
|
||||
'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
|
||||
'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
|
||||
'perc_cancel': fields.function(_get_data, string='%Cancel', method=True, type="float"),
|
||||
'month':fields.selection([('01', 'January'), ('02', 'February'), \
|
||||
('03', 'March'), ('04', 'April'),\
|
||||
('05', 'May'), ('06', 'June'), \
|
||||
@@ -137,9 +98,6 @@ class crm_claim_report(osv.osv):
|
||||
c.company_id,
|
||||
c.categ_id,
|
||||
count(*) as nbr,
|
||||
0 as avg_answers,
|
||||
0.0 as perc_done,
|
||||
0.0 as perc_cancel,
|
||||
c.priority as priority,
|
||||
c.type_id as type_id,
|
||||
date_trunc('day',c.create_date) as create_date,
|
||||
|
||||
@@ -291,7 +291,7 @@
|
||||
</field>
|
||||
<field name="section_id" select="1" widget="selection" string="Sales Team">
|
||||
<filter icon="terp-personal+"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
help="My section" />
|
||||
</field>
|
||||
</group>
|
||||
|
||||
@@ -36,42 +36,6 @@ class crm_fundraising_report(osv.osv):
|
||||
_name = "crm.fundraising.report"
|
||||
_auto = False
|
||||
_description = "CRM Fundraising Report"
|
||||
|
||||
def _get_data(self, cr, uid, ids, field_name, arg, context={}):
|
||||
|
||||
""" @param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case and section Data’s IDs
|
||||
@param context: A standard dictionary for contextual values """
|
||||
|
||||
res = {}
|
||||
state_perc = 0.0
|
||||
avg_ans = 0.0
|
||||
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
if field_name != 'avg_answers':
|
||||
state = field_name[5:]
|
||||
cr.execute("select count(*) from crm_opportunity where \
|
||||
section_id =%s and state='%s'"%(case.section_id.id, state))
|
||||
state_cases = cr.fetchone()[0]
|
||||
perc_state = (state_cases / float(case.nbr)) * 100
|
||||
|
||||
res[case.id] = perc_state
|
||||
else:
|
||||
model_name = self._name.split('report.')
|
||||
if len(model_name) < 2:
|
||||
res[case.id] = 0.0
|
||||
else:
|
||||
model_name = model_name[1]
|
||||
|
||||
cr.execute("select count(*) from crm_case_log l, ir_model m \
|
||||
where l.model_id=m.id and m.model = '%s'" , model_name)
|
||||
logs = cr.fetchone()[0]
|
||||
|
||||
avg_ans = logs / case.nbr
|
||||
res[case.id] = avg_ans
|
||||
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Year', size=64, required=False, readonly=True),
|
||||
@@ -79,9 +43,6 @@ class crm_fundraising_report(osv.osv):
|
||||
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
|
||||
'nbr': fields.integer('# of Cases', readonly=True),
|
||||
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
|
||||
'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
|
||||
'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
|
||||
'perc_cancel': fields.function(_get_data, string='%Cancel', method=True, type="float"),
|
||||
'month':fields.selection([('01', 'January'), ('02', 'February'), \
|
||||
('03', 'March'), ('04', 'April'),\
|
||||
('05', 'May'), ('06', 'June'), \
|
||||
@@ -123,9 +84,6 @@ class crm_fundraising_report(osv.osv):
|
||||
c.company_id,
|
||||
c.partner_id,
|
||||
count(*) as nbr,
|
||||
0 as avg_answers,
|
||||
0.0 as perc_done,
|
||||
0.0 as perc_cancel,
|
||||
date_trunc('day',c.create_date) as create_date,
|
||||
sum(planned_revenue) as amount_revenue,
|
||||
sum(planned_revenue*probability)::decimal(16,2) as amount_revenue_prob,
|
||||
|
||||
@@ -1,6 +1,61 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<data noupdate="1">
|
||||
<record id="crm_helpdesk_wheretodownloadopenerp0" model="crm.helpdesk">
|
||||
<field model="res.partner.canal" name="canal_id" search="[('name', '=', u'E-mail')]"/>
|
||||
<field name="som" ref="base.som_normal"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="date">2010-07-04 11:10:36</field>
|
||||
<field name="name">Download old version of OpenERP? </field>
|
||||
<field eval=""Is there any link to download old versions of OpenERP?"" name="description"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
<record id="crm_helpdesk_cannotabletoconnecttoserver0" model="crm.helpdesk">
|
||||
<field model="res.partner.canal" name="canal_id" search="[('name', '=', u'website')]"/>
|
||||
<field name="som" ref="base.som_fury"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="date">2010-07-12 11:12:09</field>
|
||||
<field name="name">Can not able to connect to Server</field>
|
||||
<field eval=""I am not able to connect Server, Can anyone help?"" name="description"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_helpdesk_documentationforcrm0" model="crm.helpdesk">
|
||||
<field model="res.partner.canal" name="canal_id" search="[('name', '=', u'phone')]"/>
|
||||
<field name="som" ref="base.som_happy"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="date">2010-07-12 11:13:10</field>
|
||||
<field name="name">Documentation for CRM?</field>
|
||||
<field eval=""Can anyone give link of document for CRM"" name="description"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_helpdesk_howtocreateanewmodule0" model="crm.helpdesk">
|
||||
<field model="res.partner.canal" name="canal_id" search="[('name', '=', u'E-mail')]"/>
|
||||
<field name="partner_address_id" ref="base.res_partner_address_9"/>
|
||||
<field name="som" ref="base.som_normal"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="partner_id" ref="base.res_partner_2"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="state">draft</field>
|
||||
<field name="date">2010-07-12 11:15:17</field>
|
||||
<field name="name">How to create a new module</field>
|
||||
<field eval=""How can I create new module in OpenERP?"" name="description"/>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -66,8 +66,7 @@
|
||||
</group>
|
||||
|
||||
<separator colspan="4" string="Notes"/>
|
||||
<field name="description" colspan="4"
|
||||
nolabel="1" widget="text_tag" readonly="1" />
|
||||
<field name="description" colspan="4" nolabel="1" />
|
||||
<separator colspan="4"/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1"/>
|
||||
@@ -250,7 +249,7 @@
|
||||
<field name="user_id" select="1" widget="selection"/>
|
||||
<field name="section_id" select="1" widget="selection" string="Sales Team">
|
||||
<filter icon="terp-personal+"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
|
||||
help="My section" />
|
||||
</field>
|
||||
<newline/>
|
||||
|
||||
@@ -38,51 +38,12 @@ class crm_helpdesk_report(osv.osv):
|
||||
_description = "Helpdesk report after Sales Services"
|
||||
_auto = False
|
||||
|
||||
def _get_data(self, cr, uid, ids, field_name, arg, context={}):
|
||||
|
||||
""" @param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case and section Data’s IDs
|
||||
@param context: A standard dictionary for contextual values """
|
||||
|
||||
res = {}
|
||||
state_perc = 0.0
|
||||
avg_ans = 0.0
|
||||
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
if field_name != 'avg_answers':
|
||||
state = field_name[5:]
|
||||
cr.execute("select count(*) from crm_opportunity where \
|
||||
section_id =%s and state='%s'"%(case.section_id.id, state))
|
||||
state_cases = cr.fetchone()[0]
|
||||
perc_state = (state_cases / float(case.nbr)) * 100
|
||||
|
||||
res[case.id] = perc_state
|
||||
else:
|
||||
model_name = self._name.split('report.')
|
||||
if len(model_name) < 2:
|
||||
res[case.id] = 0.0
|
||||
else:
|
||||
model_name = model_name[1]
|
||||
|
||||
cr.execute("select count(*) from crm_case_log l, ir_model m \
|
||||
where l.model_id=m.id and m.model = '%s'" , model_name)
|
||||
logs = cr.fetchone()[0]
|
||||
|
||||
avg_ans = logs / case.nbr
|
||||
res[case.id] = avg_ans
|
||||
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Year', size=64, required=False, readonly=True),
|
||||
'user_id':fields.many2one('res.users', 'User', readonly=True),
|
||||
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
|
||||
'nbr': fields.integer('# of Cases', readonly=True),
|
||||
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
|
||||
'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
|
||||
'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
|
||||
'perc_cancel': fields.function(_get_data, string='%Cancel', method=True, type="float"),
|
||||
'month':fields.selection([('01', 'January'), ('02', 'February'), \
|
||||
('03', 'March'), ('04', 'April'),\
|
||||
('05', 'May'), ('06', 'June'), \
|
||||
@@ -122,9 +83,6 @@ class crm_helpdesk_report(osv.osv):
|
||||
c.priority,
|
||||
c.date_deadline,
|
||||
count(*) as nbr,
|
||||
0 as avg_answers,
|
||||
0.0 as perc_done,
|
||||
0.0 as perc_cancel,
|
||||
to_char(avg(date_closed-c.create_date), 'DD"d" HH24:MI:SS') as delay_close
|
||||
from
|
||||
crm_helpdesk c
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
import delivery
|
||||
import partner
|
||||
import wizard
|
||||
import report
|
||||
import sale
|
||||
import stock
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
'update_xml': [
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/delivery_sale_order_view.xml',
|
||||
'delivery_report.xml',
|
||||
'delivery_view.xml',
|
||||
'partner_view.xml'
|
||||
],
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
id="report_shipping"
|
||||
model="stock.picking"
|
||||
name="sale.shipping"
|
||||
rml="sale_delivery_report/report/shipping.rml"
|
||||
rml="delivery/report/shipping.rml"
|
||||
string="Delivery order"/>
|
||||
|
||||
</data>
|
||||
@@ -118,8 +118,8 @@ class email_template_send_wizard(osv.osv_memory):
|
||||
'full_success': lambda *a: False
|
||||
}
|
||||
|
||||
def fields_get(self, cr, uid, fields=None, context=None, read_access=True):
|
||||
result = super(email_template_send_wizard, self).fields_get(cr, uid, fields, context, read_access)
|
||||
def fields_get(self, cr, uid, fields=None, context=None, write_access=True):
|
||||
result = super(email_template_send_wizard, self).fields_get(cr, uid, fields, context, write_access)
|
||||
if 'attachment_ids' in result and 'src_model' in context:
|
||||
result['attachment_ids']['domain'] = [('res_model','=',context['src_model']),('res_id','=',context['active_id'])]
|
||||
return result
|
||||
|
||||
+105
-39
@@ -53,7 +53,7 @@ class event_event(osv.osv):
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
""" Copy record of Given id
|
||||
@param id: Id of Event Registration type record.
|
||||
@param id: Id of Event record.
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
if not default:
|
||||
@@ -65,7 +65,13 @@ class event_event(osv.osv):
|
||||
return super(event_event, self).copy(cr, uid, id, default=default, context=context)
|
||||
|
||||
def onchange_product(self, cr, uid, ids, product_id):
|
||||
|
||||
"""This function returns value of product's unit price based on product id.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Event IDs
|
||||
@param product_id: Product's id
|
||||
"""
|
||||
if not product_id:
|
||||
return {'value': {'unit_price': False}}
|
||||
else:
|
||||
@@ -82,6 +88,13 @@ class event_event(osv.osv):
|
||||
return self.write(cr, uid, ids, {'state': 'done'}, context=context)
|
||||
|
||||
def button_confirm(self, cr, uid, ids, context=None):
|
||||
"""This Funtion send reminder who had already confirmed their event registration.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Event IDs
|
||||
@param return: True
|
||||
"""
|
||||
register_pool = self.pool.get('event.registration')
|
||||
for event in self.browse(cr, uid, ids, context=context):
|
||||
if event.mail_auto_confirm:
|
||||
@@ -95,14 +108,12 @@ class event_event(osv.osv):
|
||||
|
||||
|
||||
def _get_register(self, cr, uid, ids, fields, args, context=None):
|
||||
"""
|
||||
Get Confirm or uncofirm register value.
|
||||
"""Get Confirm or uncofirm register value.
|
||||
@param ids: List of Event registration type's id
|
||||
@param fields: List of function fields(register_current and register_prospect).
|
||||
@param context: A standard dictionary for contextual values
|
||||
@return: Dictionary of function fields value.
|
||||
"""
|
||||
|
||||
register_pool = self.pool.get('event.registration')
|
||||
res = {}
|
||||
for event in self.browse(cr, uid, ids, context):
|
||||
@@ -116,7 +127,7 @@ class event_event(osv.osv):
|
||||
state.append('draft')
|
||||
|
||||
reg_ids = register_pool.search(cr, uid, [
|
||||
('event_id', '=', event.id),
|
||||
('event_id', '=', event.id),
|
||||
('state', 'in', state)])
|
||||
|
||||
if 'register_current' in fields:
|
||||
@@ -157,7 +168,6 @@ class event_event(osv.osv):
|
||||
register_pool.write(cr, uid, reg_ids, register_values)
|
||||
return res
|
||||
|
||||
|
||||
_columns = {
|
||||
'type': fields.many2one('event.type', 'Type', help="Type of Event like Seminar, Exhibition, Conference, Training."),
|
||||
'register_max': fields.integer('Maximum Registrations', help="Provide Maximun Number of Registrations"),
|
||||
@@ -183,7 +193,6 @@ class event_event(osv.osv):
|
||||
'country_id': fields.related('address_id', 'country_id',
|
||||
type='many2one', relation='res.country', string='Country'),
|
||||
'language': fields.char('Language',size=64),
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -218,7 +227,7 @@ and users by email"),
|
||||
"badge_partner": fields.char('Badge Partner', size=128),
|
||||
"event_product": fields.char("Product Name", size=128, required=True),
|
||||
"tobe_invoiced": fields.boolean("To be Invoiced"),
|
||||
"invoice_id": fields.many2one("account.invoice", "Invoice"),
|
||||
"invoice_id": fields.many2one("account.invoice", "Invoice", readonly=True),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'ref': fields.reference('Reference', selection=crm._links_get, size=128),
|
||||
'ref2': fields.reference('Reference 2', selection=crm._links_get, size=128),
|
||||
@@ -235,8 +244,8 @@ and users by email"),
|
||||
|
||||
def _make_invoice(self, cr, uid, reg, lines, context=None):
|
||||
""" Create Invoice from Invoice lines
|
||||
@param reg : Object of event.registration
|
||||
@param lines: ids of Invoice lines
|
||||
@param reg : Model of Event Registration
|
||||
@param lines: Ids of Invoice lines
|
||||
"""
|
||||
if context is None:
|
||||
context = {}
|
||||
@@ -325,11 +334,10 @@ and users by email"),
|
||||
return new_invoice_ids
|
||||
|
||||
def check_confirm(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
Check confirm event register on given id.
|
||||
"""This Function Open Event Registration and send email to user.
|
||||
@param ids: List of Event registration's IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
@return: Dictionary value which open Confirm registration form.
|
||||
@return: True
|
||||
"""
|
||||
data_pool = self.pool.get('ir.model.data')
|
||||
unconfirmed_ids = []
|
||||
@@ -360,13 +368,17 @@ and users by email"),
|
||||
}
|
||||
return True
|
||||
|
||||
def button_reg_close(self, cr, uid, ids, *args):
|
||||
def button_reg_close(self, cr, uid, ids, *args):
|
||||
"""This Function Close Event Registration.
|
||||
"""
|
||||
registrations = self.browse(cr, uid, ids)
|
||||
self._history(cr, uid, registrations, _('Done'))
|
||||
self.write(cr, uid, ids, {'state': 'done', 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
return True
|
||||
|
||||
def button_reg_cancel(self, cr, uid, ids, *args):
|
||||
def button_reg_cancel(self, cr, uid, ids, *args):
|
||||
"""This Function Cancel Event Registration.
|
||||
"""
|
||||
registrations = self.browse(cr, uid, ids)
|
||||
self._history(cr, uid, registrations, _('Cancel'))
|
||||
self.write(cr, uid, ids, {'state': 'cancel'})
|
||||
@@ -375,8 +387,8 @@ and users by email"),
|
||||
def create(self, cr, uid, values, context=None):
|
||||
""" Overrides orm create method.
|
||||
"""
|
||||
event = self.pool.get('event.event').browse(cr, uid, values['event_id'], context=context)
|
||||
|
||||
event_obj = self.pool.get('event.event')
|
||||
event = event_obj.browse(cr, uid, values['event_id'], context=context)
|
||||
values['date_deadline']= event.date_begin
|
||||
values['description']= event.mail_confirm
|
||||
values['currency_id'] = event.currency_id.id
|
||||
@@ -385,9 +397,12 @@ and users by email"),
|
||||
self._history(cr, uid, registrations, _('Created'))
|
||||
return res
|
||||
|
||||
def write(self, cr, uid, ids, values, context=None):
|
||||
def write(self, cr, uid, ids, values, context=None):
|
||||
""" Overrides orm write method.
|
||||
"""
|
||||
event_obj = self.pool.get('event.event')
|
||||
if 'event_id' in values:
|
||||
event = self.pool.get('event.event').browse(cr, uid, values['event_id'], context=context)
|
||||
event = event_obj.browse(cr, uid, values['event_id'], context=context)
|
||||
values['date_deadline']= event.date_begin
|
||||
values['description']= event.mail_confirm
|
||||
return super(event_registration, self).write(cr, uid, ids, values, context=context)
|
||||
@@ -439,6 +454,13 @@ and users by email"),
|
||||
return self.pool.get('account.invoice.line').create(cr, uid, vals)
|
||||
|
||||
def onchange_badge_name(self, cr, uid, ids, badge_name):
|
||||
"""This function returns value of Registration Name based on Partner Badge Name.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Registration IDs
|
||||
@param badge_name: Badge Name
|
||||
"""
|
||||
|
||||
data ={}
|
||||
if not badge_name:
|
||||
@@ -448,44 +470,77 @@ and users by email"),
|
||||
|
||||
def onchange_contact_id(self, cr, uid, ids, contact, partner):
|
||||
|
||||
"""This function returns value of Badge Name , Badge Title based on Partner contact.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Registration IDs
|
||||
@param contact: Patner Contact IDS
|
||||
@param partner: Partner IDS
|
||||
"""
|
||||
data ={}
|
||||
if not contact:
|
||||
return data
|
||||
|
||||
contact_id = self.pool.get('res.partner.contact').browse(cr, uid, contact)
|
||||
contact_obj = self.pool.get('res.partner.contact')
|
||||
addr_obj = self.pool.get('res.partner.address')
|
||||
job_obj = self.pool.get('res.partner.job')
|
||||
|
||||
contact_id = contact_obj.browse(cr, uid, contact)
|
||||
data['badge_name'] = contact_id.name
|
||||
data['badge_title'] = contact_id.title.name
|
||||
if partner:
|
||||
partner_addresses = self.pool.get('res.partner.address').search(cr, uid, [('partner_id', '=', partner)])
|
||||
job_ids = self.pool.get('res.partner.job').search(cr, uid, [('contact_id', '=', contact), ('address_id', 'in', partner_addresses)])
|
||||
partner_addresses = addr_obj.search(cr, uid, [('partner_id', '=', partner)])
|
||||
job_ids = job_obj.search(cr, uid, [('contact_id', '=', contact), ('address_id', 'in', partner_addresses)])
|
||||
if job_ids:
|
||||
data['email_from'] = self.pool.get('res.partner.job').browse(cr, uid, job_ids[0]).email
|
||||
data['email_from'] = job_obj.browse(cr, uid, job_ids[0]).email
|
||||
d = self.onchange_badge_name(cr, uid, ids, data['badge_name'])
|
||||
data.update(d['value'])
|
||||
return {'value': data}
|
||||
|
||||
def onchange_event(self, cr, uid, ids, event_id, partner_invoice_id):
|
||||
"""This function returns value of Product Name, Unit Price based on Event.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Registration IDs
|
||||
@param event_id: Event ID
|
||||
@param partner_invoice_id: Partner Invoice ID
|
||||
"""
|
||||
context={}
|
||||
if not event_id:
|
||||
return {'value': {'unit_price': False, 'event_product': False}}
|
||||
data_event = self.pool.get('event.event').browse(cr, uid, event_id)
|
||||
|
||||
event_obj = self.pool.get('event.event')
|
||||
prod_obj = self.pool.get('product.product')
|
||||
res_obj = self.pool.get('res.partner')
|
||||
|
||||
data_event = event_obj.browse(cr, uid, event_id)
|
||||
context['currency_id'] = data_event.currency_id.id
|
||||
if data_event.user_id.id:
|
||||
return {'value': {'user_id':data_event.user_id.id}}
|
||||
|
||||
if data_event.product_id:
|
||||
if not partner_invoice_id:
|
||||
unit_price=self.pool.get('product.product').price_get(cr, uid, [data_event.product_id.id], context=context)[data_event.product_id.id]
|
||||
unit_price=prod_obj.price_get(cr, uid, [data_event.product_id.id], context=context)[data_event.product_id.id]
|
||||
return {'value': {'unit_price': unit_price, 'event_product': data_event.product_id.name, 'currency_id': data_event.currency_id.id}}
|
||||
data_partner = self.pool.get('res.partner').browse(cr, uid, partner_invoice_id)
|
||||
data_partner = res_obj.browse(cr, uid, partner_invoice_id)
|
||||
context.update({'partner_id': data_partner})
|
||||
unit_price = self.pool.get('product.product')._product_price(cr, uid, [data_event.product_id.id], False, False, {'pricelist': data_partner.property_product_pricelist.id})[data_event.product_id.id]
|
||||
unit_price = prod_obj._product_price(cr, uid, [data_event.product_id.id], False, False, {'pricelist': data_partner.property_product_pricelist.id})[data_event.product_id.id]
|
||||
return {'value': {'unit_price': unit_price, 'event_product': data_event.product_id.name, 'currency_id': data_event.currency_id.id}}
|
||||
|
||||
return {'value': {'unit_price': False, 'event_product': False}}
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, event_id, email=False):
|
||||
"""This function returns value of Patner Invoice id, Unit Price, badget title based on partner and Event.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Registration IDs
|
||||
@param event_id: Event ID
|
||||
@param partner_invoice_id: Partner Invoice ID
|
||||
"""
|
||||
job_obj = self.pool.get('res.partner.job')
|
||||
res_obj = self.pool.get('res.partner')
|
||||
|
||||
data={}
|
||||
data['badge_partner'] = data['contact_id'] = data['partner_invoice_id'] = data['email_from'] = data['badge_title'] = data['badge_name'] = False
|
||||
@@ -496,35 +551,46 @@ and users by email"),
|
||||
d = self.onchange_partner_invoice_id(cr, uid, ids, event_id, part)
|
||||
# this updates the dictionary
|
||||
data.update(d['value'])
|
||||
addr = self.pool.get('res.partner').address_get(cr, uid, [part])
|
||||
addr = res_obj.address_get(cr, uid, [part])
|
||||
if addr:
|
||||
if addr.has_key('default'):
|
||||
job_ids = self.pool.get('res.partner.job').search(cr, uid, [('address_id', '=', addr['default'])])
|
||||
job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])])
|
||||
if job_ids:
|
||||
data['contact_id'] = self.pool.get('res.partner.job').browse(cr, uid, job_ids[0]).contact_id.id
|
||||
data['contact_id'] = job_obj.browse(cr, uid, job_ids[0]).contact_id.id
|
||||
d = self.onchange_contact_id(cr, uid, ids, data['contact_id'], part)
|
||||
data.update(d['value'])
|
||||
partner_data = self.pool.get('res.partner').browse(cr, uid, part)
|
||||
partner_data = res_obj.browse(cr, uid, part)
|
||||
data['badge_partner'] = partner_data.name
|
||||
|
||||
return {'value': data}
|
||||
|
||||
def onchange_partner_invoice_id(self, cr, uid, ids, event_id, partner_invoice_id):
|
||||
|
||||
"""This function returns value of Product unit Price based on Invoiced partner.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Registration IDs
|
||||
@param event_id: Event ID
|
||||
@param partner_invoice_id: Partner Invoice ID
|
||||
"""
|
||||
data={}
|
||||
context={}
|
||||
event_obj = self.pool.get('event.event')
|
||||
prod_obj = self.pool.get('product.product')
|
||||
res_obj = self.pool.get('res.partner')
|
||||
|
||||
data['unit_price']=False
|
||||
if not event_id:
|
||||
return {'value': data}
|
||||
data_event = self.pool.get('event.event').browse(cr, uid, event_id)
|
||||
|
||||
data_event = event_obj.browse(cr, uid, event_id)
|
||||
if data_event.product_id:
|
||||
data['event_product']=data_event.product_id.name
|
||||
if not partner_invoice_id:
|
||||
data['unit_price']=self.pool.get('product.product').price_get(cr, uid, [data_event.product_id.id], context=context)[data_event.product_id.id]
|
||||
data['unit_price']=prod_obj.price_get(cr, uid, [data_event.product_id.id], context=context)[data_event.product_id.id]
|
||||
return {'value': data}
|
||||
data_partner = self.pool.get('res.partner').browse(cr, uid, partner_invoice_id)
|
||||
data_partner = res_obj.browse(cr, uid, partner_invoice_id)
|
||||
context.update({'partner_id': data_partner})
|
||||
data['unit_price'] = self.pool.get('product.product')._product_price(cr, uid, [data_event.product_id.id], False, False, {'pricelist': data_partner.property_product_pricelist.id})[data_event.product_id.id]
|
||||
data['unit_price'] = prod_obj._product_price(cr, uid, [data_event.product_id.id], False, False, {'pricelist': data_partner.property_product_pricelist.id})[data_event.product_id.id]
|
||||
return {'value': data}
|
||||
return {'value': data}
|
||||
|
||||
|
||||
+18
-14
@@ -3,8 +3,8 @@
|
||||
<data>
|
||||
<menuitem name="Marketing" id="menu_marketing_event_main" icon="terp-calendar" sequence="9"/>
|
||||
<menuitem name="Events Organisation" id="menu_event_main" parent="menu_marketing_event_main" />
|
||||
|
||||
<!-- EVENTS -->
|
||||
<!--<menuitem name="Events Organisation" id="menu_event_main" icon="terp-calendar" />-->
|
||||
|
||||
<!-- EVENTS/CONFIGURATION/TYPE OF EVENTS -->
|
||||
<record model="ir.ui.view" id="view_event_type_form">
|
||||
@@ -36,7 +36,6 @@
|
||||
<menuitem name="Configuration" id="menu_event_config" parent="menu_marketing_event_main" sequence="30" groups="base.group_extended"/>
|
||||
<menuitem name="Types of Events" id="menu_event_type" action="action_event_type" parent="menu_event_config" groups="base.group_extended,crm.group_crm_manager"/>
|
||||
|
||||
|
||||
<!-- Events Organisation/CONFIGURATION/EVENTS -->
|
||||
|
||||
<record model="ir.ui.view" id="view_event_form">
|
||||
@@ -69,8 +68,7 @@
|
||||
<field name="active"/>
|
||||
<field name="register_min"/>
|
||||
<field name="register_max"/>
|
||||
<separator string="Notes" colspan="4"/>
|
||||
<!--field name="note" colspan="4" nolabel="1"/-->
|
||||
<newline/>
|
||||
<field name="state" select="1"/>
|
||||
<group col="4" colspan="2">
|
||||
<button string="Confirm Event" name="button_confirm" states="draft" type="object" icon="gtk-apply"/>
|
||||
@@ -113,7 +111,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- event.event tree view -->
|
||||
<!-- Event tree view -->
|
||||
|
||||
<record model="ir.ui.view" id="view_event_tree">
|
||||
<field name="name">event.event.tree</field>
|
||||
@@ -134,6 +132,8 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Events Calendar View -->
|
||||
|
||||
<record id="view_event_calendar" model="ir.ui.view">
|
||||
<field name="name">event.event.calendar</field>
|
||||
<field name="model">event.event</field>
|
||||
@@ -142,12 +142,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<calendar color="user_id" date_start="date_begin" string="Event Organization">
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="type" widget="selection"/>
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Event Graph view -->
|
||||
|
||||
<record model="ir.ui.view" id="view_event_graph">
|
||||
<field name="name">Event Graph</field>
|
||||
@@ -162,6 +162,8 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Event Search View -->
|
||||
|
||||
<record model="ir.ui.view" id="view_event_search">
|
||||
<field name="name">Events</field>
|
||||
<field name="model">event.event</field>
|
||||
@@ -169,8 +171,8 @@
|
||||
<field name="arch" type="xml">
|
||||
<search string="Events">
|
||||
<group col="10" colspan="4">
|
||||
<filter icon="terp-document-new" string="Draft" name="draft" domain="[('state','=','draft')]" help="Draft Events"/>
|
||||
<filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','confirm')]" help="Confirmed Events"/>
|
||||
<filter icon="terp-check" string="Current" name="draft" domain="[('state','in',('draft', 'confirm'))]" help="Current Events"/>
|
||||
<filter icon="terp-camera_test" string="Open" domain="[('state','=','confirm')]" help="Open Events"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" string="Event" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
@@ -294,15 +296,17 @@
|
||||
</page>
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
<field colspan="4" name="email_cc" string="CC" widget="char" size="512"/>
|
||||
</group>
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="form,tree">
|
||||
<form string="Communication history">
|
||||
<group col="6" colspan="4">
|
||||
<field name="date"/>
|
||||
<field name="email_to"/>
|
||||
<field name="email_from"/>
|
||||
</group>
|
||||
<group col="4" colspan="4">
|
||||
<field name="email_from"/>
|
||||
<field name="date"/>
|
||||
<field name="email_to" widget="char" size="512"/>
|
||||
<field name="email_cc" widget="char" size="512"/>
|
||||
<field name="name" colspan="4" widget="char" size="512"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Details">
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
property_account_receivable: account.a_recv
|
||||
|
||||
- |
|
||||
we create it with a "Conference on OpenERP Offshore Business" event and provide "Beginning date", "Ending Date", "Product" as Concert Ticket.
|
||||
we create it with a "Conference on OpenERP Offshore Business" event and provide "Beginning date", "Ending Date" and "Product" as Concert Ticket.
|
||||
-
|
||||
!record {model: event.event, id: event_event_conference0}:
|
||||
code: C/004
|
||||
@@ -64,9 +64,9 @@
|
||||
state: draft
|
||||
type: 'event_type_conference0'
|
||||
reply_to: 'info@customer.com'
|
||||
|
||||
|
||||
- |
|
||||
we set the limit of registrations to this event using "Minimum Registrations" 2 and "Maximum Registrations" 10
|
||||
we set the limit of registrations to this event using "Minimum Registrations" 2 and "Maximum Registrations" 10.
|
||||
-
|
||||
!python {model: event.event}: |
|
||||
self.write(cr, uid, [ref('event_event_conference0')], {'register_max': 10, 'register_min': 2})
|
||||
@@ -96,7 +96,6 @@
|
||||
!record {model: event.registration, id: event_registration_registrationjacot0}:
|
||||
badge_name: Jacot
|
||||
badge_partner: Mark Johnson
|
||||
badge_title: M.
|
||||
contact_id: base_contact.res_partner_contact_jacot0
|
||||
date_deadline: '2010-06-07 13:39:00'
|
||||
event_id: event.event_event_conference0
|
||||
@@ -110,11 +109,13 @@
|
||||
if not then confirmation will fail because its greater then the Maximum registration.
|
||||
-
|
||||
!python {model: event.event}: |
|
||||
from tools.translate import _
|
||||
obj_register = self.pool.get('event.registration')
|
||||
event_id1 = self.browse(cr, uid, [ref('event_event_conference0')])[0]
|
||||
event_id1 = self.browse(cr, uid, ref('event_event_conference0'))
|
||||
register_ids = obj_register.search(cr, uid, [('event_id', '=', event_id1.id)])
|
||||
register_id = obj_register.browse(cr, uid, register_ids)[0]
|
||||
assert register_id.nb_register <= event_id1.register_max
|
||||
assert register_id.nb_register <= event_id1.register_max, _('NO. of Registration for this event is More than Maximum Registration Defined !')
|
||||
|
||||
|
||||
- |
|
||||
And Confirm that Registration by click on "Confirm Registration" button of Registraion form.
|
||||
@@ -150,7 +151,6 @@
|
||||
!record {model: event.registration, id: event_registration_registrationpassot0}:
|
||||
badge_name: Passot
|
||||
badge_partner: Mediapole SPRL
|
||||
badge_title: M.
|
||||
contact_id: base_contact.res_partner_contact_passot0
|
||||
date_deadline: '2010-06-07 13:39:00'
|
||||
email_from: info@mediapole.net
|
||||
@@ -170,10 +170,10 @@
|
||||
I Check that the total number of confirmed is 2 and unconfirmed registrations 1.
|
||||
-
|
||||
!python {model: event.event}: |
|
||||
obj_event = self.browse(cr, uid, [ref('event_event_conference0')])[0]
|
||||
assert obj_event.register_current == '2'
|
||||
assert obj_event.register_prospect == '1'
|
||||
|
||||
from tools.translate import _
|
||||
obj_event = self.browse(cr, uid, ref('event_event_conference0'))
|
||||
assert obj_event.register_current == 2, "Number of Confirmed Registration for this event is %s"%(obj_event.register_current)
|
||||
assert obj_event.register_prospect == 1, "Number of Unconfirmed Registration for this event is %s" %(obj_event.register_prospect)
|
||||
- |
|
||||
This event is finished by click on "Event Done" button of this event form.
|
||||
-
|
||||
@@ -186,8 +186,7 @@
|
||||
!assert {model: event.registration, id: event_registration_registrationjacot0}:
|
||||
- state == 'open'
|
||||
- |
|
||||
Now, I will invoice the participant who have address using "Make Invoices". This wizard will also give the number of invoices are created and rejected.
|
||||
Create invoice will be linked to Invoice Field available on Payments tab of registrations
|
||||
Now, I will invoice the participant who have address using "Make Invoices".Create invoice will be linked to Invoice Field available on Payments tab of registrations.
|
||||
|
||||
-
|
||||
!record {model: event.make.invoice, id: event_make_invoice_0}:
|
||||
@@ -198,19 +197,9 @@
|
||||
!python {model: event.make.invoice}: |
|
||||
self.make_invoice(cr, uid, [ref("event_make_invoice_0")], {"active_ids": [ref("event_registration_registrationzen0")]})
|
||||
- |
|
||||
I check that Invoice for this partner is create or not.
|
||||
I check that Invoice for this partner is created or not.
|
||||
-
|
||||
!python {model: event.registration}: |
|
||||
obj_event_reg = self.pool.get('event.registration')
|
||||
obj_lines = self.pool.get('account.invoice.line')
|
||||
inv_obj = self.pool.get('account.invoice')
|
||||
data_event_reg = obj_event_reg.browse(cr, uid, [ref('event_registration_registrationzen0')], context=context)[0]
|
||||
invoice_ids = inv_obj.search(cr, uid, [('partner_id', '=', data_event_reg.partner_invoice_id.id)])
|
||||
|
||||
if invoice_ids:
|
||||
invoice_id = inv_obj.browse(cr, uid, invoice_ids)[0]
|
||||
line_ids = obj_lines.search(cr, uid, [('product_id', '=', data_event_reg.event_id.product_id.id), ('invoice_id', '=', invoice_id.id), ('price_unit', '=', data_event_reg.unit_price)])
|
||||
line_id = obj_lines.browse(cr, uid, line_ids)[0]
|
||||
assert line_id.product_id == data_event_reg.event_id.product_id
|
||||
assert data_event_reg.partner_id == invoice_id.partner_id
|
||||
assert invoice_id.address_invoice_id == data_event_reg.partner_address_id
|
||||
from tools.translate import _
|
||||
data_event_reg = self.browse(cr, uid, ref('event_registration_registrationzen0'), context=context)
|
||||
assert data_event_reg.invoice_id, _("Invoices has not been generated for this partner")
|
||||
|
||||
@@ -47,23 +47,29 @@ class partner_event_registration(osv.osv_memory):
|
||||
}
|
||||
|
||||
def open_registration(self, cr, uid, ids, context=None):
|
||||
"""This Function Open Registration For Given Event id and Partner.
|
||||
|
||||
"""
|
||||
|
||||
value = {}
|
||||
res_obj = self.pool.get('res.partner')
|
||||
job_obj = self.pool.get('res.partner.job')
|
||||
event_obj = self.pool.get('event.event')
|
||||
reg_obj = self.pool.get('event.registration')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
|
||||
record_ids = context and context.get('active_ids', []) or []
|
||||
addr = res_obj.address_get(cr, uid, record_ids)
|
||||
contact_id = False
|
||||
email = False
|
||||
if addr.has_key('default'):
|
||||
job_ids = self.pool.get('res.partner.job').search(cr, uid, [('address_id', '=', addr['default'])])
|
||||
job_ids = job_obj.search(cr, uid, [('address_id', '=', addr['default'])])
|
||||
if job_ids:
|
||||
contact = self.pool.get('res.partner.job').browse(cr, uid, job_ids[0])
|
||||
contact = job_obj.browse(cr, uid, job_ids[0])
|
||||
if contact:
|
||||
contact_id = contact.contact_id.id
|
||||
email = contact.email
|
||||
|
||||
event_obj = self.pool.get('event.event')
|
||||
reg_obj = self.pool.get('event.registration')
|
||||
mod_obj = self.pool.get('ir.model.data')
|
||||
|
||||
result = mod_obj._get_id(cr, uid, 'event', 'view_registration_search')
|
||||
res = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
|
||||
@@ -123,10 +129,11 @@ class partner_event_registration(osv.osv_memory):
|
||||
return res
|
||||
|
||||
def onchange_event_id(self, cr, uid, ids, event_id, context={}):
|
||||
res = {}
|
||||
res = {}
|
||||
event_obj = self.pool.get('event.event')
|
||||
|
||||
if event_id:
|
||||
obj_event = self.pool.get('event.event')
|
||||
event = obj_event.browse(cr, uid, event_id)
|
||||
event = event_obj.browse(cr, uid, event_id)
|
||||
res['value'] = {
|
||||
'event_type': event.type and event.type.id or False,
|
||||
'start_date': event.date_begin,
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-05-10 13:18+0000\n"
|
||||
"Last-Translator: Angel Spy <melissadilara@yahoo.com>\n"
|
||||
"PO-Revision-Date: 2010-07-12 11:46+0000\n"
|
||||
"Last-Translator: adsiz_1029@hotmail.com <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:15+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-07-13 03:49+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: hr
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
'depends': ['base', 'hr'],
|
||||
'update_xml': [
|
||||
'security/hr_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'hr_attendance_view.xml',
|
||||
'hr_attendance_wizard.xml',
|
||||
'hr_attendance_report.xml',
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr_attendance.group_hr_attendance",1,0,0,0
|
||||
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr.group_hr_manager",1,1,1,1
|
||||
"access_hr_attendance_employee","hr attendance employee","model_hr_attendance","hr_attendance.group_hr_attendance",1,1,1,1
|
||||
"access_hr_attendance_employee","hr employee attendance sign in out","hr.model_hr_employee","hr_attendance.group_hr_attendance",1,0,0,0
|
||||
"access_hr_employee_attendance","hr employee attendance sign in out","hr.model_hr_employee","hr_attendance.group_hr_attendance",1,0,0,0
|
||||
"access_hr_attendance_resource","hr resource attendance sign in out","resource.model_resource_resource","hr_attendance.group_hr_attendance",1,0,0,0
|
||||
|
||||
|
@@ -50,7 +50,7 @@ class hr_recruitment_report(osv.osv):
|
||||
for case in self.browse(cr, uid, ids, context):
|
||||
if field_name != 'avg_answers':
|
||||
state = field_name[5:]
|
||||
cr.execute("select count(*) from crm_opportunity where \
|
||||
cr.execute("select count(*) from crm_lead where \
|
||||
section_id =%s and state='%s'"%(case.section_id.id, state))
|
||||
state_cases = cr.fetchone()[0]
|
||||
perc_state = (state_cases / float(case.nbr)) * 100
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
"access_hr_analytic_timesheet","hr.analytic.timesheet","model_hr_analytic_timesheet","hr.group_hr_user",1,1,1,1
|
||||
"access_hr_account_analytic_line","account.account.analytic.line","account.model_account_analytic_line","hr.group_hr_user",1,1,1,0
|
||||
"access_account_analytic_journal","account.account.analytic.journal","account.model_account_analytic_journal","hr.group_hr_user",1,0,0,0
|
||||
"access_product_product_user","product.product user","product.model_product_product","hr.group_hr_user",1,0,0,0
|
||||
|
||||
|
@@ -99,25 +99,11 @@
|
||||
self.check_state(cr, uid, [ref("hr_employee_fracline1")], {"active_ids": [ref("hr_timesheet.menu_hr_timesheet_sign_in")]})
|
||||
- |
|
||||
I select start date and Perform start work on project.
|
||||
-
|
||||
!record {model: hr.sign.in.project, id: hr_sign_in_project_francline0}:
|
||||
emp_id: 'hr_employee_fracline1'
|
||||
name: Francline
|
||||
server_date: '2010-06-08 19:50:54'
|
||||
state: absent
|
||||
|
||||
|
||||
- |
|
||||
I click on "Start Working" button of this wizard to start work on Project.
|
||||
-
|
||||
!python {model: hr.sign.in.project}: |
|
||||
uid = ref('res_users_user0')
|
||||
obj_attendance = self.pool.get('hr.employee')
|
||||
emp_id = obj_attendance.search(cr, uid, [('user_id', '=', uid), ('name', '=', "Francline")])
|
||||
if emp_id:
|
||||
employee = obj_attendance.read(cr, uid, emp_id)[0]
|
||||
self.write(cr, uid, [ref('hr_sign_in_project_francline0')], {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_id[0]})
|
||||
#self.sign_in_result(cr, uid, [ref("hr_sign_in_project_francline0")], context)
|
||||
new_id = self.create(cr, uid, {'emp_id': 'hr_employee_fracline1', 'name': 'Francline', 'server_date': '2010-06-08 19:50:54', 'state': 'absent'})
|
||||
self.sign_in_result(cr, uid, [new_id], context)
|
||||
|
||||
- |
|
||||
My work is done and I want to stop work.for that I click on "Sign In/Sign Out" button of "Sign In/Sign Out by Project" wizard.
|
||||
@@ -125,33 +111,31 @@
|
||||
-
|
||||
!python {model: hr.sign.in.project}: |
|
||||
uid = ref('res_users_user0')
|
||||
self.check_state(cr, uid, [ref("hr_sign_in_project_francline0")], {"active_ids": [ref("hr_timesheet.menu_hr_timesheet_sign_in")]
|
||||
ids = self.search(cr, uid, [('emp_id', '=', ref('hr_employee_fracline1')),('name', '=', 'Francline')])
|
||||
self.check_state(cr, uid, ids, {"active_ids": [ref("hr_timesheet.menu_hr_timesheet_sign_in")]
|
||||
})
|
||||
|
||||
- |
|
||||
This will Open "hr sign out project" form. I select analytical project2 development account.
|
||||
-
|
||||
!record {model: hr.sign.out.project, id: hr_sign_out_project_francline0}:
|
||||
account_id: account.analytic_project_2_development
|
||||
analytic_amount: 7.0
|
||||
date: '2010-05-25 16:40:00'
|
||||
date_start: '2010-06-05 16:37:00'
|
||||
info: Create Yaml for hr module
|
||||
name: Francline
|
||||
server_date: '2010-06-09 16:40:15'
|
||||
state: present
|
||||
-
|
||||
For that I Creating a analytic account.
|
||||
-
|
||||
!record {model: account.analytic.account, id: account_analytic_account_project0}:
|
||||
company_id: base.main_company
|
||||
name: Project2
|
||||
parent_id: account.analytic_root
|
||||
quantity_max: 0.0
|
||||
state: open
|
||||
|
||||
- |
|
||||
My work for this project is over and I stop work by click on "Stop Work" button of this wizard.
|
||||
-
|
||||
!python {model: hr.sign.out.project}: |
|
||||
import time
|
||||
from datetime import datetime, date, timedelta
|
||||
uid = ref('res_users_user0')
|
||||
obj_attendance = self.pool.get('hr.employee')
|
||||
emp_id = obj_attendance.search(cr, uid, [('user_id', '=', uid), ('name', '=', "Francline")])
|
||||
if emp_id:
|
||||
employee = obj_attendance.read(cr, uid, emp_id)[0]
|
||||
self.write(cr, uid, [ref('hr_sign_out_project_francline0')], {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_id[0]})
|
||||
#self.sign_out_result_end(cr, uid, [ref('hr_sign_out_project_francline0')])
|
||||
new_id = self.create(cr, uid, {'account_id': ref('account_analytic_account_project0'), 'analytic_amount': 7.0, 'date': (datetime.now()+timedelta(1)).strftime('%Y-%m-%d %H:%M:%S'), 'date_start': '2010-06-05 16:37:00', 'info': 'Create Yaml for hr module', 'name': 'Francline', 'server_date': '2010-06-09 16:40:15', 'state': 'absent'})
|
||||
self.sign_out_result_end(cr, uid, [new_id], context)
|
||||
|
||||
- |
|
||||
I can see employee timesheet for particular month using "Employee Timesheet" report.
|
||||
|
||||
@@ -1,6 +1,26 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- Idea Categories Search View-->
|
||||
<record model="ir.ui.view" id="view_idea_category_search">
|
||||
<field name="name">idea.category.search</field>
|
||||
<field name="model">idea.category</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Ideas Categories">
|
||||
<group col="10" colspan="4">
|
||||
<field name="name" string="Category"/>
|
||||
<field name="parent_id" widget="selection"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="14">
|
||||
<filter string="Parent Category" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'parent_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
<!-- Idea Category Form View -->
|
||||
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="28"/>
|
||||
@@ -41,6 +61,7 @@
|
||||
<field name="res_model">idea.category</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_idea_category_search"/>
|
||||
</record>
|
||||
|
||||
<menuitem name="Configuration" parent="base.menu_tools"
|
||||
|
||||
@@ -6,3 +6,4 @@
|
||||
"access_idea_category_system","idea.category system","model_idea_category","base.group_system",1,1,1,1
|
||||
"access_idea_comment","idea.comment","model_idea_comment","base.group_system",1,1,1,1
|
||||
"access_idea_comment_user","idea.comment","model_idea_comment","base.group_user",1,1,1,0
|
||||
"access_report_vote","report.vote","model_report_vote","base.group_user",1,1,1,1
|
||||
|
||||
|
@@ -140,7 +140,13 @@ class membership_line(osv.osv):
|
||||
'''Member line'''
|
||||
|
||||
def _check_membership_date(self, cr, uid, ids, context=None):
|
||||
'''Check if membership product is not in the past'''
|
||||
"""Check if membership product is not in the past
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Membership Line IDs
|
||||
@param context: A standard dictionary for contextual values
|
||||
"""
|
||||
|
||||
cr.execute('''
|
||||
SELECT MIN(ml.date_to - ai.date_invoice)
|
||||
@@ -158,7 +164,15 @@ class membership_line(osv.osv):
|
||||
return True
|
||||
|
||||
def _state(self, cr, uid, ids, name, args, context=None):
|
||||
'''Compute the state lines'''
|
||||
"""Compute the state lines
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Membership Line IDs
|
||||
@param name: Field Name
|
||||
@param context: A standard dictionary for contextual values
|
||||
@param return: Dictionary of state Value
|
||||
"""
|
||||
res = {}
|
||||
for line in self.browse(cr, uid, ids):
|
||||
cr.execute('''
|
||||
@@ -221,35 +235,47 @@ class Partner(osv.osv):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
def _get_partner_id(self, cr, uid, ids, context=None):
|
||||
|
||||
data_inv = self.pool.get('membership.membership_line').browse(cr, uid, ids, context)
|
||||
member_line_obj = self.pool.get('membership.membership_line')
|
||||
res_obj = self.pool.get('res.partner')
|
||||
data_inv = member_line_obj.browse(cr, uid, ids, context)
|
||||
list_partner = []
|
||||
for data in data_inv:
|
||||
list_partner.append(data.partner.id)
|
||||
ids2 = list_partner
|
||||
while ids2:
|
||||
ids2 = self.pool.get('res.partner').search(cr, uid, [('associate_member','in',ids2)], context=context)
|
||||
ids2 = res_obj.search(cr, uid, [('associate_member','in',ids2)], context=context)
|
||||
list_partner += ids2
|
||||
return list_partner
|
||||
|
||||
def _get_invoice_partner(self, cr, uid, ids, context=None):
|
||||
data_inv = self.pool.get('account.invoice').browse(cr, uid, ids, context)
|
||||
inv_obj = self.pool.get('account.invoice')
|
||||
res_obj = self.pool.get('res.partner')
|
||||
data_inv = inv_obj.browse(cr, uid, ids, context)
|
||||
list_partner = []
|
||||
for data in data_inv:
|
||||
list_partner.append(data.partner_id.id)
|
||||
ids2 = list_partner
|
||||
while ids2:
|
||||
ids2 = self.pool.get('res.partner').search(cr, uid, [('associate_member','in',ids2)], context=context)
|
||||
ids2 = res_obj.search(cr, uid, [('associate_member','in',ids2)], context=context)
|
||||
list_partner += ids2
|
||||
return list_partner
|
||||
|
||||
def _membership_state(self, cr, uid, ids, name, args, context=None):
|
||||
"""This Function return Membership State For Given Partner.
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of Partner IDs
|
||||
@param name: Field Name
|
||||
@param context: A standard dictionary for contextual values
|
||||
@param return: Dictionary of Membership state Value
|
||||
"""
|
||||
res = {}
|
||||
for id in ids:
|
||||
res[id] = 'none'
|
||||
today = time.strftime('%Y-%m-%d')
|
||||
for id in ids:
|
||||
partner_data = self.browse(cr,uid,id)
|
||||
partner_data = self.browse(cr, uid, id)
|
||||
if partner_data.membership_cancel and today > partner_data.membership_cancel:
|
||||
res[id] = 'canceled'
|
||||
continue
|
||||
@@ -302,7 +328,7 @@ class Partner(osv.osv):
|
||||
|
||||
def _membership_date(self, cr, uid, ids, name, args, context=None):
|
||||
|
||||
'''Return date of membership'''
|
||||
"""Return date of membership"""
|
||||
|
||||
name = name[0]
|
||||
res = {}
|
||||
@@ -404,6 +430,8 @@ class Partner(osv.osv):
|
||||
}
|
||||
|
||||
def _check_recursion(self, cr, uid, ids):
|
||||
"""Check Recursive for Associated Members.
|
||||
"""
|
||||
level = 100
|
||||
while len(ids):
|
||||
cr.execute('select distinct associate_member from res_partner where id IN %s',(tuple(ids),))
|
||||
@@ -438,9 +466,11 @@ product_template()
|
||||
class Product(osv.osv):
|
||||
|
||||
def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
|
||||
model_obj = self.pool.get('ir.model.data')
|
||||
|
||||
if ('product' in context) and (context['product']=='membership_product'):
|
||||
model_data_ids_form = self.pool.get('ir.model.data').search(cr,user,[('model','=','ir.ui.view'),('name','in',['membership_products_form','membership_products_tree'])])
|
||||
resource_id_form = self.pool.get('ir.model.data').read(cr, user, model_data_ids_form, fields=['res_id','name'])
|
||||
model_data_ids_form = model_obj.search(cr,user,[('model','=','ir.ui.view'),('name','in',['membership_products_form','membership_products_tree'])])
|
||||
resource_id_form = model_obj.read(cr, user, model_data_ids_form, fields=['res_id','name'])
|
||||
dict_model={}
|
||||
for i in resource_id_form:
|
||||
dict_model[i['name']]=i['res_id']
|
||||
@@ -488,6 +518,8 @@ class account_invoice_line(osv.osv):
|
||||
_inherit='account.invoice.line'
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
"""Overrides orm write method
|
||||
"""
|
||||
if not context:
|
||||
context={}
|
||||
res = super(account_invoice_line, self).write(cr, uid, ids, vals, context=context)
|
||||
@@ -513,6 +545,8 @@ class account_invoice_line(osv.osv):
|
||||
return res
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
"""Remove Membership Line Record for Account Invoice Line
|
||||
"""
|
||||
if not context:
|
||||
context={}
|
||||
member_line_obj = self.pool.get('membership.membership_line')
|
||||
@@ -522,10 +556,13 @@ class account_invoice_line(osv.osv):
|
||||
return super(account_invoice_line, self).unlink(cr, uid, ids, context=context)
|
||||
|
||||
def create(self, cr, uid, vals, context={}):
|
||||
"""Overrides orm create method
|
||||
"""
|
||||
result = super(account_invoice_line, self).create(cr, uid, vals, context)
|
||||
line = self.browse(cr, uid, result)
|
||||
member_line_obj = self.pool.get('membership.membership_line')
|
||||
if line.invoice_id.type == 'out_invoice':
|
||||
member_line_obj = self.pool.get('membership.membership_line')
|
||||
|
||||
ml_ids = member_line_obj.search(cr, uid, [('account_invoice_line','=',line.id)])
|
||||
if line.product_id and line.product_id.membership and not ml_ids:
|
||||
# Product line is a membership product
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<field name="membership_start" position="after">
|
||||
<newline/>
|
||||
<group expand="1" string="Group By" colspan="10" col="8">
|
||||
<group expand="0" string="Group By" colspan="10" col="8">
|
||||
<filter string="Associate Member" name = "associate" icon="terp-personal" domain="[]" context="{'group_by':'associate_member'}"/>
|
||||
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
@@ -169,7 +169,7 @@
|
||||
<field name="view_mode">form</field>
|
||||
<field name="act_window_id" ref="action_membership_members"/>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="Members" parent="menu_member" id="menu_members" sequence="2" action="action_membership_members"/>
|
||||
|
||||
<!-- PARTNERS -->
|
||||
|
||||
@@ -46,21 +46,9 @@
|
||||
-
|
||||
!record {model: membership.invoice, id: membership_invoice_0}:
|
||||
product_id: membership.product_product_membershipproduct0
|
||||
- |
|
||||
I check that address is defined or not for this Member.
|
||||
-
|
||||
!python {model: membership.invoice}: |
|
||||
partner_ids = [ref('res_partner_markjohnson0')]
|
||||
addre_obj = self.pool.get('res.partner.address')
|
||||
ids = addre_obj.search(cr, uid, [('partner_id', '=', partner_ids)])
|
||||
|
||||
addre_id = addre_obj.browse(cr, uid, ids)[0]
|
||||
assert addre_id.partner_id
|
||||
assert addre_id.id
|
||||
assert addre_id.type
|
||||
|
||||
- |
|
||||
I click on "Confirm" button of this wizard.
|
||||
I click on "Confirm" button of this wizard. and also check that address is defined or not for this partner in this function.
|
||||
-
|
||||
!python {model: membership.invoice}: |
|
||||
self.membership_invoice(cr, uid, [ref("membership_invoice_0")], {"active_ids": [ref("membership.res_partner_markjohnson0")]})
|
||||
@@ -69,21 +57,20 @@
|
||||
I check that Invoice is created for this members.
|
||||
-
|
||||
!python {model: res.partner}: |
|
||||
|
||||
from tools.translate import _
|
||||
invoice_obj = self.pool.get('account.invoice')
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
product_obj = self.pool.get('product.product')
|
||||
invoice_line_obj = self.pool.get(('account.invoice.line'))
|
||||
invoice_line_obj = self.pool.get('account.invoice.line')
|
||||
|
||||
partner_id = self.browse(cr, uid, [ref('res_partner_markjohnson0')])[0]
|
||||
ids = invoice_obj.search(cr, uid, [('partner_id', '=', partner_id.id), ('account_id', '=', partner_id.property_account_receivable.id)])
|
||||
invoice_id = invoice_obj.browse(cr, uid, ids)[0]
|
||||
|
||||
product = product_obj.browse(cr, uid, [ref('product_product_membershipproduct0')], context=context)[0]
|
||||
partner_id = self.browse(cr, uid, ref('res_partner_markjohnson0'))
|
||||
inv_ids = invoice_obj.search(cr, uid, [('partner_id', '=', partner_id.id), ('account_id', '=', partner_id.property_account_receivable.id)])
|
||||
invoice_id = invoice_obj.browse(cr, uid, inv_ids)[0]
|
||||
product = product_obj.browse(cr, uid, ref('product_product_membershipproduct0'), context=context)
|
||||
line_ids = invoice_line_obj.search(cr, uid, [('product_id', '=', product.id), ('invoice_id', '=', invoice_id.id)])
|
||||
line_id = invoice_line_obj.browse(cr, uid, line_ids)[0]
|
||||
|
||||
assert line_id.product_id.id == product.id
|
||||
assert invoice_id.partner_id.id == partner_id.id
|
||||
|
||||
assert line_ids, _('Invoices has not been generated for this Member!')
|
||||
|
||||
- |
|
||||
I check that the "Current membership state" will remain same untill opening the invoice.
|
||||
@@ -96,17 +83,17 @@
|
||||
So, I check that invoice is in draft state then the "membership state" of a member is "Waiting member".
|
||||
-
|
||||
!python {model: membership.membership_line}: |
|
||||
partner_id = self.pool.get('res.partner').browse(cr, uid, [ref('res_partner_markjohnson0')])[0]
|
||||
ids = self.search(cr, uid, [('partner', '=', partner_id.id)])
|
||||
current_id = self.browse(cr, uid, ids)[0]
|
||||
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
inv_obj = self.pool.get('account.invoice')
|
||||
|
||||
ids = inv_obj.search(cr, uid, [('partner_id', '=', partner_id.id), ('account_id', '=', partner_id.property_account_receivable.id)])
|
||||
inv_id = inv_obj.browse(cr, uid, ids)[0]
|
||||
partner_id = partner_obj.browse(cr, uid, ref('res_partner_markjohnson0'))
|
||||
member_ids = self.search(cr, uid, [('partner', '=', partner_id.id)])
|
||||
current_id = self.browse(cr, uid, member_ids)[0]
|
||||
|
||||
inv_ids = inv_obj.search(cr, uid, [('partner_id', '=', partner_id.id), ('account_id', '=', partner_id.property_account_receivable.id)])
|
||||
inv_id = inv_obj.browse(cr, uid, inv_ids)[0]
|
||||
if inv_id.state == 'draft':
|
||||
assert current_id == 'waiting'
|
||||
assert current_id.state == 'waiting'
|
||||
- |
|
||||
When the invoice is in open state it become Invoiced Member, When the invoice is in paid state the same "Current membership state" changed to Paid Member.
|
||||
Now, If we cancel the invoice "Current membership state" changed to Cancel Member.
|
||||
|
||||
@@ -25,56 +25,48 @@ from tools.translate import _
|
||||
import tools
|
||||
|
||||
class membership_invoice(osv.osv_memory):
|
||||
"""Membership Invoice"""
|
||||
|
||||
_name = "membership.invoice"
|
||||
_description = "Membership Invoice From Partner"
|
||||
_columns ={
|
||||
_description = "Membership Invoice"
|
||||
_columns = {
|
||||
'product_id': fields.many2one('product.product','Membership Product', required=True),
|
||||
}
|
||||
}
|
||||
|
||||
def membership_invoice(self, cr, uid, ids, context={}):
|
||||
def membership_invoice(self, cr, uid, ids, context=None):
|
||||
invoice_obj = self.pool.get('account.invoice')
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
product_obj = self.pool.get('product.product')
|
||||
invoice_line_obj = self.pool.get(('account.invoice.line'))
|
||||
invoice_tax_obj = self.pool.get(('account.invoice.tax'))
|
||||
partner_ids = context['active_ids']
|
||||
for data in self.read(cr, uid, ids, context=context):
|
||||
product_id = data['product_id']
|
||||
cr.execute('''
|
||||
SELECT partner_id, id, type
|
||||
FROM res_partner_address
|
||||
WHERE partner_id IN %s''',(tuple(partner_ids),))
|
||||
fetchal = cr.fetchall()
|
||||
if not fetchal:
|
||||
raise osv.except_osv(_('Error !'), _('No Address defined for this partner'))
|
||||
partner_address_ids = {}
|
||||
for x in range(len(fetchal)):
|
||||
pid = fetchal[x][0]
|
||||
id = fetchal[x][1]
|
||||
type = fetchal[x][2]
|
||||
if partner_address_ids.has_key(pid) and partner_address_ids[pid]['type'] == 'invoice':
|
||||
continue
|
||||
partner_address_ids[pid] = {'id': id, 'type': type}
|
||||
|
||||
invoice_list= []
|
||||
product = product_obj.read(cr, uid, product_id, ['uom_id'], context=context)
|
||||
|
||||
for partner_id in partner_ids:
|
||||
account_id = partner_obj.read(cr, uid, partner_id, ['property_account_receivable'], context=context)['property_account_receivable'][0]
|
||||
read_fpos = partner_obj.read(cr, uid, partner_id, ['property_account_position'], context=context)
|
||||
fpos_id = read_fpos['property_account_position'] and read_fpos['property_account_position'][0]
|
||||
invoice_line_obj = self.pool.get('account.invoice.line')
|
||||
invoice_tax_obj = self.pool.get('account.invoice.tax')
|
||||
if not context:
|
||||
context={}
|
||||
partner_ids = context.get('active_ids', [])
|
||||
invoice_list = []
|
||||
for partner in partner_obj.browse(cr, uid, partner_ids, context=context):
|
||||
account_id = partner.property_account_receivable and partner.property_account_receivable.id or False
|
||||
fpos_id = partner.property_account_position and partner.property_account_position.id or False
|
||||
addr = partner_obj.address_get(cr, uid, [partner.id], ['invoice'])
|
||||
if not addr.get('invoice', False):
|
||||
continue
|
||||
for data in self.browse(cr, uid, ids, context=context):
|
||||
product_id = data.product_id and data.product_id.id or False
|
||||
product_uom_id = data.product_id and data.product_id.uom_id.id
|
||||
quantity = 1
|
||||
line_value = {
|
||||
'product_id' : product_id,
|
||||
}
|
||||
quantity = 1
|
||||
line_dict = invoice_line_obj.product_id_change(cr, uid, {}, product_id, product['uom_id'][0], quantity, '', 'out_invoice', partner_id, fpos_id, context=context)
|
||||
}
|
||||
|
||||
line_dict = invoice_line_obj.product_id_change(cr, uid, {},
|
||||
product_id, product_uom_id, quantity, '', 'out_invoice', partner.id, fpos_id, context=context)
|
||||
line_value.update(line_dict['value'])
|
||||
if line_value['invoice_line_tax_id']:
|
||||
if line_value.get('invoice_line_tax_id', False):
|
||||
tax_tab = [(6, 0, line_value['invoice_line_tax_id'])]
|
||||
line_value['invoice_line_tax_id'] = tax_tab
|
||||
|
||||
invoice_id = invoice_obj.create(cr, uid, {
|
||||
'partner_id' : partner_id,
|
||||
'address_invoice_id': partner_address_ids[partner_id]['id'],
|
||||
'partner_id' : partner.id,
|
||||
'address_invoice_id': addr.get('invoice', False),
|
||||
'account_id': account_id,
|
||||
'fiscal_position': fpos_id or False
|
||||
}
|
||||
@@ -86,16 +78,17 @@ class membership_invoice(osv.osv_memory):
|
||||
if line_value['invoice_line_tax_id']:
|
||||
tax_value = invoice_tax_obj.compute(cr, uid, invoice_id).values()
|
||||
for tax in tax_value:
|
||||
invoice_tax_obj.create(cr, uid, tax, context=context)
|
||||
invoice_tax_obj.create(cr, uid, tax, context=context)
|
||||
|
||||
|
||||
return {
|
||||
'domain': [('id', 'in', invoice_list)],
|
||||
'name': 'Membership Invoice',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account.invoice',
|
||||
'type': 'ir.actions.act_window',
|
||||
}
|
||||
return {
|
||||
'domain': [('id', 'in', invoice_list)],
|
||||
'name': 'Membership Invoice',
|
||||
'view_type': 'form',
|
||||
'view_mode': 'tree,form',
|
||||
'res_model': 'account.invoice',
|
||||
'type': 'ir.actions.act_window',
|
||||
}
|
||||
|
||||
membership_invoice()
|
||||
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Membership Invoice">
|
||||
<group colspan="4" >
|
||||
<field name="product_id" context="{'product':membership_product}" domain="[('membership','=',True)]"/>
|
||||
<field name="product_id" context="{'product':membership_product}" domain="[('membership','=',True)]" widget="selection"/>
|
||||
</group>
|
||||
<group colspan="4" col="6">
|
||||
<button icon="gtk-close" special="cancel" string="Close"/>
|
||||
<button icon="gtk-ok" string="Confirm" name="membership_invoice" type="object"/>
|
||||
<button icon="gtk-apply" string="Confirm" name="membership_invoice" type="object"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
@@ -39,4 +39,4 @@
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
'wizard/change_production_qty_view.xml',
|
||||
'wizard/mrp_price_view.xml',
|
||||
'wizard/mrp_workcenter_load_view.xml',
|
||||
'wizard/mrp_change_standard_price_view.xml',
|
||||
# 'wizard/mrp_track_prod_view.xml',
|
||||
'mrp_view.xml',
|
||||
'mrp_wizard.xml',
|
||||
|
||||
@@ -63,11 +63,12 @@ class product_product(osv.osv):
|
||||
"""
|
||||
res = super(product_product, self).do_change_standard_price(cr, uid, ids, datas, context=context)
|
||||
bom_obj = self.pool.get('mrp.bom')
|
||||
change = context.get('change_parent_price', False)
|
||||
def _compute_price(bom):
|
||||
price = 0.0
|
||||
if bom.bom_id :
|
||||
if bom.bom_id.bom_lines :
|
||||
for bom_line in bom.bom_id.bom_lines :
|
||||
if bom.bom_id and change:
|
||||
if bom.bom_id.bom_lines:
|
||||
for bom_line in bom.bom_id.bom_lines:
|
||||
prod_price = self.read(cr, uid, bom_line.product_id.id, ['standard_price'])['standard_price']
|
||||
price += bom_line.product_qty * prod_price
|
||||
|
||||
|
||||
@@ -265,10 +265,10 @@
|
||||
<para style="terp_default_Centre_8">[[ formatLang(o.date_planned, date_time = True) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_8">[[ o.sale_ref or removeParentNode('para')]]</para>
|
||||
<para style="terp_default_Centre_8">[[ 'sale_ref' in o._columns.keys() and o.sale_ref or removeParentNode('para') ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Centre_8">[[ o.sale_name or removeParentNode('para') ]]</para>
|
||||
<para style="terp_default_Centre_8">[[ 'sale_name' in o._columns.keys() and o.sale_name or removeParentNode('para') ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
|
||||
@@ -24,6 +24,7 @@ import mrp_price
|
||||
import mrp_workcenter_load
|
||||
#import mrp_track_prod
|
||||
import change_production_qty
|
||||
import mrp_change_standard_price
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
|
||||
class change_standard_price(osv.osv_memory):
|
||||
_inherit = "stock.change.standard.price"
|
||||
_description = "Change Standard Price"
|
||||
|
||||
_columns = {
|
||||
'change_parent_price': fields.boolean('Change Parent Price'),
|
||||
}
|
||||
|
||||
|
||||
def change_price(self, cr, uid, ids, context):
|
||||
""" Changes the Standard Price of Parent Product according to BoM
|
||||
only when the field 'change_parent_price' is True.
|
||||
And creates an account move accordingly.
|
||||
@param self: The object pointer.
|
||||
@param cr: A database cursor
|
||||
@param uid: ID of the user currently logged in
|
||||
@param ids: List of IDs selected
|
||||
@param context: A standard dictionary
|
||||
@return:
|
||||
"""
|
||||
res = self.browse(cr, uid, ids)
|
||||
context.update({'change_parent_price': res[0].change_parent_price})
|
||||
return super(change_standard_price, self).change_price(cr, uid, ids, context=context)
|
||||
|
||||
change_standard_price()
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_change_standard_price_inherit" model="ir.ui.view">
|
||||
<field name="name">Change Standard Price (Inherit)</field>
|
||||
<field name="model">stock.change.standard.price</field>
|
||||
<field name="inherit_id" ref="stock.view_change_standard_price"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="new_price" position="after">
|
||||
<field name="change_parent_price"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -224,6 +224,8 @@ class mrp_production(osv.osv):
|
||||
obj = self.browse(cr, uid, ids)[0]
|
||||
for workcenter_line in obj.workcenter_lines:
|
||||
tmp = self.pool.get('mrp.production.workcenter.line').action_done(cr, uid, [workcenter_line.id])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_done', cr)
|
||||
return super(mrp_production,self).action_production_end(cr, uid, ids)
|
||||
|
||||
def action_in_production(self, cr, uid, ids):
|
||||
@@ -234,6 +236,8 @@ class mrp_production(osv.osv):
|
||||
workcenter_line_obj = self.pool.get('mrp.production.workcenter.line')
|
||||
for workcenter_line in obj.workcenter_lines:
|
||||
workcenter_line_obj.action_start_working(cr, uid, [workcenter_line.id])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr)
|
||||
return super(mrp_production,self).action_in_production(cr, uid, ids)
|
||||
|
||||
def action_cancel(self, cr, uid, ids):
|
||||
@@ -243,6 +247,8 @@ class mrp_production(osv.osv):
|
||||
obj = self.browse(cr, uid, ids)[0]
|
||||
for workcenter_line in obj.workcenter_lines:
|
||||
tmp = self.pool.get('mrp.production.workcenter.line').action_cancel(cr, uid, [workcenter_line.id])
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_cancel', cr)
|
||||
return super(mrp_production,self).action_cancel(cr,uid,ids)
|
||||
|
||||
def _compute_planned_workcenter(self, cr, uid, ids, context={}, mini=False):
|
||||
|
||||
@@ -4,6 +4,41 @@
|
||||
<menuitem id="menu_mrp_planning" name="Planning"
|
||||
parent="base.menu_mrp_root" sequence="2"
|
||||
groups="base.group_extended"/>
|
||||
|
||||
<record id="mrp_production_form_inherit_view" model="ir.ui.view">
|
||||
<field name="name">mrp.production.form.inherit</field>
|
||||
<field name="model">mrp.production</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="mrp.mrp_production_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<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"/>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mrp_production_form_inherit_view2" model="ir.ui.view">
|
||||
<field name="name">mrp.production.form.inherit2</field>
|
||||
<field name="model">mrp.production</field>
|
||||
<field name="type">form</field>
|
||||
<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">
|
||||
<field name="state"/>
|
||||
<button name="button_start_working" string="Start working" states="draft,pause" icon="gtk-go-forward"/>
|
||||
<button name="button_done" string="Finished" states="startworking" icon="gtk-jump-to"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="mrp_production_workcenter_tree_view_inherit">
|
||||
<field name="name">mrp.production.workcenter.line.tree</field>
|
||||
<field name="model">mrp.production.workcenter.line</field>
|
||||
@@ -150,7 +185,7 @@
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Action for tree view of workcenter line -->
|
||||
<!-- Action for All Operations -->
|
||||
|
||||
<record model="ir.actions.act_window" id="mrp_production_wc_action_form">
|
||||
<field name="name">Work Orders</field>
|
||||
@@ -158,21 +193,9 @@
|
||||
<field name="res_model">mrp.production.workcenter.line</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,gantt,calendar,graph</field>
|
||||
<field name="domain">[('id','=',active_id)]</field>
|
||||
<field name="search_view_id" ref="view_mrp_production_workcenter_form_view_filter"/>
|
||||
</record>
|
||||
|
||||
<!-- Action for All Operations -->
|
||||
|
||||
<record model="ir.actions.act_window" id="mrp_production_wc_action">
|
||||
<field name="name">All Work Orders</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.production.workcenter.line</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,graph,calendar,gantt</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window" id="mrp_production_wc_action_planning">
|
||||
<field name="name">Work Orders Planning</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
|
||||
+93
-93
@@ -42,9 +42,9 @@ class pos_config_journal(osv.osv):
|
||||
|
||||
pos_config_journal()
|
||||
class pos_company_discount(osv.osv):
|
||||
|
||||
""" Company Discount and Cashboxes """
|
||||
|
||||
|
||||
""" Company Discount and Cashboxes """
|
||||
|
||||
_inherit = 'res.company'
|
||||
_columns = {
|
||||
'company_discount': fields.float('Max Discount(%)', digits_compute= dp.get_precision('Point Of Sale')),
|
||||
@@ -55,10 +55,10 @@ pos_company_discount()
|
||||
|
||||
|
||||
class pos_order(osv.osv):
|
||||
|
||||
|
||||
""" Point of sale gives business owners a convenient way of checking out customers
|
||||
and of recording sales """
|
||||
|
||||
and of recording sales """
|
||||
|
||||
_name = "pos.order"
|
||||
_description = "Point of Sale"
|
||||
_order = "date_order, create_date desc"
|
||||
@@ -66,7 +66,7 @@ class pos_order(osv.osv):
|
||||
|
||||
|
||||
def unlink(self, cr, uid, ids, context={}):
|
||||
|
||||
|
||||
for rec in self.browse(cr, uid, ids, context=context):
|
||||
for rec_statement in rec.statement_ids:
|
||||
if (rec_statement.statement_id and rec_statement.statement_id.state=='confirm') or rec.state=='done':
|
||||
@@ -76,7 +76,7 @@ class pos_order(osv.osv):
|
||||
def onchange_partner_pricelist(self, cr, uid, ids, part, context={}):
|
||||
|
||||
""" Changed price list on_change of partner_id"""
|
||||
|
||||
|
||||
if not part:
|
||||
return {}
|
||||
pricelist = self.pool.get('res.partner').browse(cr, uid, part).property_product_pricelist.id
|
||||
@@ -108,13 +108,13 @@ class pos_order(osv.osv):
|
||||
return res
|
||||
|
||||
def _get_date_payment2(self, cr, uid, ids, context, *a):
|
||||
|
||||
# Todo need to check this function
|
||||
|
||||
# Todo need to check this function
|
||||
""" Find payment Date
|
||||
|
||||
|
||||
@param field_names: Names of fields.
|
||||
@return: Dictionary of values """
|
||||
|
||||
|
||||
res = {}
|
||||
pay_obj = self.pool.get('account.bank.statement')
|
||||
stat_obj_line = self.pool.get('account.bank.statement.line')
|
||||
@@ -137,12 +137,12 @@ class pos_order(osv.osv):
|
||||
if val:
|
||||
res[order.id]=val
|
||||
return res
|
||||
|
||||
|
||||
def _get_date_payment(self, cr, uid, ids, context, *a):
|
||||
|
||||
|
||||
""" Find Validation Date
|
||||
@return: Dictionary of values """
|
||||
|
||||
@return: Dictionary of values """
|
||||
|
||||
res = {}
|
||||
pay_obj = self.pool.get('pos.payment')
|
||||
tot =0.0
|
||||
@@ -172,22 +172,22 @@ class pos_order(osv.osv):
|
||||
return res
|
||||
|
||||
def _amount_all(self, cr, uid, ids, name, args, context=None):
|
||||
tax_obj = self.pool.get('account.tax')
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
tax_obj = self.pool.get('account.tax')
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
res={}
|
||||
for order in self.browse(cr, uid, ids):
|
||||
res[order.id] = {
|
||||
'amount_paid': 0.0,
|
||||
'amount_return':0.0,
|
||||
'amount_tax':0.0,
|
||||
}
|
||||
val=0.0
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
cur = order.pricelist_id.currency_id
|
||||
}
|
||||
val=0.0
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
cur = order.pricelist_id.currency_id
|
||||
for payment in order.statement_ids:
|
||||
res[order.id]['amount_paid'] += payment.amount
|
||||
res[order.id]['amount_paid'] += payment.amount
|
||||
for payment in order.payments:
|
||||
res[order.id]['amount_return'] += (payment.amount < 0 and payment.amount or 0)
|
||||
res[order.id]['amount_return'] += (payment.amount < 0 and payment.amount or 0)
|
||||
for line in order.lines:
|
||||
if order.price_type!='tax_excluded':
|
||||
res[order.id]['amount_tax'] = reduce(lambda x, y: x+round(y['amount'], 2),
|
||||
@@ -197,16 +197,16 @@ class pos_order(osv.osv):
|
||||
res[order.id]['amount_tax'])
|
||||
elif line.qty != 0.0:
|
||||
for c in tax_obj.compute_all(cr, uid, line.product_id.taxes_id, line.price_unit * (1-(line.discount or 0.0)/100.0), line.qty, line.product_id, line.order_id.partner_id)['taxes']:
|
||||
val += c['amount']
|
||||
val += c['amount']
|
||||
res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val)
|
||||
return res
|
||||
|
||||
|
||||
|
||||
|
||||
def _sale_journal_get(self, cr, uid, context):
|
||||
|
||||
""" To get sale journal for this order"
|
||||
@return: journal """
|
||||
|
||||
""" To get sale journal for this order"
|
||||
@return: journal """
|
||||
|
||||
journal_obj = self.pool.get('account.journal')
|
||||
res = journal_obj.search(cr, uid,
|
||||
@@ -217,10 +217,10 @@ class pos_order(osv.osv):
|
||||
return False
|
||||
|
||||
def _shop_get(self, cr, uid, context):
|
||||
|
||||
""" To get Shop for this order"
|
||||
@return: Shop id """
|
||||
|
||||
|
||||
""" To get Shop for this order"
|
||||
@return: Shop id """
|
||||
|
||||
company = self.pool.get('res.users').browse(cr, uid, uid, context).company_id
|
||||
res = self.pool.get('sale.shop').search(cr, uid, [])
|
||||
if res:
|
||||
@@ -228,7 +228,7 @@ class pos_order(osv.osv):
|
||||
else:
|
||||
return False
|
||||
def copy(self, cr, uid, id, default=None, context={}):
|
||||
|
||||
|
||||
if not default:
|
||||
default = {}
|
||||
default.update({
|
||||
@@ -245,7 +245,7 @@ class pos_order(osv.osv):
|
||||
return super(pos_order, self).copy(cr, uid, id, default, context)
|
||||
|
||||
def _get_v( self, cr, uid, ids,*a):
|
||||
|
||||
|
||||
""" Changed the Validation state of order
|
||||
@return: State """
|
||||
|
||||
@@ -326,11 +326,11 @@ class pos_order(osv.osv):
|
||||
|
||||
|
||||
def _select_pricelist(self, cr, uid, context):
|
||||
|
||||
""" To get default pricelist for the order"
|
||||
|
||||
""" To get default pricelist for the order"
|
||||
@param name: Names of fields.
|
||||
@return: pricelist ID
|
||||
"""
|
||||
"""
|
||||
pricelist = self.pool.get('product.pricelist').search(cr, uid, [('name', '=', 'Public Pricelist')])
|
||||
if pricelist:
|
||||
return pricelist[0]
|
||||
@@ -338,11 +338,11 @@ class pos_order(osv.osv):
|
||||
return False
|
||||
|
||||
def _journal_default(self, cr, uid, context={}):
|
||||
|
||||
""" To get default pricelist for the order"
|
||||
|
||||
""" To get default pricelist for the order"
|
||||
@param name: Names of fields.
|
||||
@return: journal ID
|
||||
"""
|
||||
"""
|
||||
journal_list = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'cash')])
|
||||
if journal_list:
|
||||
return journal_list[0]
|
||||
@@ -350,7 +350,7 @@ class pos_order(osv.osv):
|
||||
return False
|
||||
|
||||
_defaults = {
|
||||
'user_salesman_id':lambda self, cr, uid, context: uid,
|
||||
'user_salesman_id':lambda self, cr, uid, context: uid,
|
||||
'user_id': lambda self, cr, uid, context: uid,
|
||||
'sale_manager': lambda self, cr, uid, context: uid,
|
||||
'state': lambda *a: 'draft',
|
||||
@@ -369,11 +369,11 @@ class pos_order(osv.osv):
|
||||
|
||||
|
||||
def test_order_lines(self, cr, uid, order, context={}):
|
||||
|
||||
""" 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
|
||||
"""
|
||||
"""
|
||||
if not order.lines:
|
||||
raise osv.except_osv(_('Error'), _('No order lines defined for this sale.'))
|
||||
|
||||
@@ -385,10 +385,10 @@ class pos_order(osv.osv):
|
||||
return True
|
||||
|
||||
def test_paid(self, cr, uid, ids, context=None):
|
||||
|
||||
""" Test all amount is paid for this order
|
||||
|
||||
""" Test all amount is paid for this order
|
||||
@return: True
|
||||
"""
|
||||
"""
|
||||
for order in self.browse(cr, uid, ids, context):
|
||||
if order.lines and not order.amount_total:
|
||||
return True
|
||||
@@ -398,9 +398,9 @@ class pos_order(osv.osv):
|
||||
return True
|
||||
|
||||
def _get_qty_differences(self, orders, old_picking):
|
||||
|
||||
|
||||
"""check if the customer changed the product quantity """
|
||||
|
||||
|
||||
order_dict = {}
|
||||
for order in orders:
|
||||
for line in order.lines:
|
||||
@@ -422,9 +422,9 @@ class pos_order(osv.osv):
|
||||
return diff_dict
|
||||
|
||||
def _split_picking(self, cr, uid, ids, context, old_picking, diff_dict):
|
||||
|
||||
|
||||
"""if the customer changes the product quantity, split the picking in two"""
|
||||
|
||||
|
||||
# create a copy of the original picking and adjust the product qty:
|
||||
picking_model = self.pool.get('stock.picking')
|
||||
defaults = {
|
||||
@@ -462,9 +462,9 @@ class pos_order(osv.osv):
|
||||
line.unlink(context=context)
|
||||
|
||||
def create_picking(self, cr, uid, ids, context={}):
|
||||
|
||||
|
||||
"""Create a picking for each order and validate it."""
|
||||
|
||||
|
||||
picking_obj = self.pool.get('stock.picking')
|
||||
pick_name=self.pool.get('ir.sequence').get(cr, uid, 'stock.picking.out')
|
||||
orders = self.browse(cr, uid, ids, context)
|
||||
@@ -472,7 +472,7 @@ class pos_order(osv.osv):
|
||||
if not order.picking_id:
|
||||
new = True
|
||||
picking_id = picking_obj.create(cr, uid, {
|
||||
'name':pick_name,
|
||||
'name':pick_name,
|
||||
'origin': order.name,
|
||||
'type': 'out',
|
||||
'state': 'draft',
|
||||
@@ -530,8 +530,8 @@ class pos_order(osv.osv):
|
||||
return True
|
||||
|
||||
def set_to_draft(self, cr, uid, ids, *args):
|
||||
|
||||
""" Changes order state to draft
|
||||
|
||||
""" Changes order state to draft
|
||||
@return: True
|
||||
"""
|
||||
if not len(ids):
|
||||
@@ -545,10 +545,10 @@ class pos_order(osv.osv):
|
||||
return True
|
||||
|
||||
def button_invalidate(self, cr, uid, ids, *args):
|
||||
|
||||
""" Check the access for the sale order
|
||||
|
||||
""" Check the access for the sale order
|
||||
@return: True
|
||||
"""
|
||||
"""
|
||||
res_obj = self.pool.get('res.company')
|
||||
try:
|
||||
part_company=res_obj.browse(cr,uid,uid) and res_obj.browse(cr,uid,uid).parent_id and res_obj.browse(cr,uid,uid).parent_id.id or None
|
||||
@@ -559,10 +559,10 @@ class pos_order(osv.osv):
|
||||
return True
|
||||
|
||||
# def button_validate(self, cr, uid, ids, *args):
|
||||
#
|
||||
#
|
||||
# """ Check the access for the sale order and update the date_validation
|
||||
# @return: True
|
||||
# """
|
||||
# """
|
||||
# res_obj = self.pool.get('res.company')
|
||||
# try:
|
||||
# part_company=res_obj.browse(cr,uid,uid) and res_obj.browse(cr,uid,uid).parent_id and res_obj.browse(cr,uid,uid).parent_id.id or None
|
||||
@@ -581,18 +581,18 @@ class pos_order(osv.osv):
|
||||
|
||||
|
||||
def cancel_order(self, cr, uid, ids, context=None):
|
||||
|
||||
""" Changes order state to cancel
|
||||
|
||||
""" Changes order state to cancel
|
||||
@return: True
|
||||
"""
|
||||
"""
|
||||
self.write(cr, uid, ids, {'state': 'cancel'})
|
||||
self.cancel_picking(cr, uid, ids, context={})
|
||||
return True
|
||||
|
||||
def add_payment(self, cr, uid, order_id, data, context=None):
|
||||
|
||||
|
||||
"""Create a new payment for the order"""
|
||||
|
||||
|
||||
res_obj = self.pool.get('res.company')
|
||||
statementl_obj = self.pool.get('account.bank.statement.line')
|
||||
prod_obj = self.pool.get('product.product')
|
||||
@@ -645,9 +645,9 @@ class pos_order(osv.osv):
|
||||
return statement_id
|
||||
|
||||
def add_product(self, cr, uid, order_id, product_id, qty, context=None):
|
||||
|
||||
|
||||
"""Create a new order line the order"""
|
||||
|
||||
|
||||
line_obj = self.pool.get('pos.order.line')
|
||||
values = self.read(cr, uid, order_id, ['partner_id', 'pricelist_id'])
|
||||
|
||||
@@ -669,9 +669,9 @@ class pos_order(osv.osv):
|
||||
return order_line_id
|
||||
|
||||
def refund(self, cr, uid, ids, context={}):
|
||||
|
||||
"""Create a copy of order for refund order"""
|
||||
|
||||
|
||||
"""Create a copy of order for refund order"""
|
||||
|
||||
clone_list = []
|
||||
line_obj = self.pool.get('pos.order.line')
|
||||
|
||||
@@ -696,7 +696,7 @@ class pos_order(osv.osv):
|
||||
return clone_list
|
||||
|
||||
def action_invoice(self, cr, uid, ids, context={}):
|
||||
|
||||
|
||||
"""Create a invoice of order """
|
||||
|
||||
res_obj = self.pool.get('res.company')
|
||||
@@ -740,7 +740,7 @@ class pos_order(osv.osv):
|
||||
'quantity': line.qty,
|
||||
}
|
||||
inv_name = product_obj.name_get(cr, uid, [line.product_id.id], context=context)[0][1]
|
||||
|
||||
|
||||
inv_line.update(inv_line_ref.product_id_change(cr, uid, [],
|
||||
line.product_id.id,
|
||||
line.product_id.uom_id.id,
|
||||
@@ -760,9 +760,9 @@ class pos_order(osv.osv):
|
||||
return inv_ids
|
||||
|
||||
def create_account_move(self, cr, uid, ids, context=None):
|
||||
|
||||
"""Create a account move line of order """
|
||||
|
||||
|
||||
"""Create a account move line of order """
|
||||
|
||||
account_move_obj = self.pool.get('account.move')
|
||||
account_move_line_obj = self.pool.get('account.move.line')
|
||||
account_period_obj = self.pool.get('account.period')
|
||||
@@ -778,7 +778,7 @@ class pos_order(osv.osv):
|
||||
to_reconcile = []
|
||||
group_tax = {}
|
||||
account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context).id
|
||||
|
||||
|
||||
order_account = order.partner_id and order.partner_id.property_account_receivable and order.partner_id.property_account_receivable.id or account_def or curr_c.account_receivable.id
|
||||
|
||||
# Create an entry for the sale
|
||||
@@ -846,7 +846,7 @@ class pos_order(osv.osv):
|
||||
# Create a move for the line
|
||||
account_move_line_obj.create(cr, uid, {
|
||||
'name': "aa"+order.name,
|
||||
'date': order.date_order,
|
||||
'date': order.date_order[:10],
|
||||
'ref': order.contract_number or order.name,
|
||||
'quantity': line.qty,
|
||||
'product_id':line.product_id.id,
|
||||
@@ -874,7 +874,7 @@ class pos_order(osv.osv):
|
||||
|
||||
account_move_line_obj.create(cr, uid, {
|
||||
'name': "bb"+order.name,
|
||||
'date': order.date_order,
|
||||
'date': order.date_order[:10],
|
||||
'ref': order.contract_number or order.name,
|
||||
'product_id':line.product_id.id,
|
||||
'quantity': line.qty,
|
||||
@@ -895,7 +895,7 @@ class pos_order(osv.osv):
|
||||
for key, amount in group_tax.items():
|
||||
account_move_line_obj.create(cr, uid, {
|
||||
'name':"cc"+order.name,
|
||||
'date': order.date_order,
|
||||
'date': order.date_order[:10],
|
||||
'ref': order.contract_number or order.name,
|
||||
'move_id': move_id,
|
||||
'company_id': comp_id,
|
||||
@@ -913,7 +913,7 @@ class pos_order(osv.osv):
|
||||
# counterpart
|
||||
to_reconcile.append(account_move_line_obj.create(cr, uid, {
|
||||
'name': "dd"+order.name,
|
||||
'date': order.date_order,
|
||||
'date': order.date_order[:10],
|
||||
'ref': order.contract_number or order.name,
|
||||
'move_id': move_id,
|
||||
'company_id': comp_id,
|
||||
@@ -964,7 +964,7 @@ class pos_order(osv.osv):
|
||||
'statement_id': False,
|
||||
'account_id':order_account
|
||||
})
|
||||
|
||||
|
||||
self.write(cr,uid,order.id,{'state':'done'})
|
||||
return True
|
||||
|
||||
@@ -1073,7 +1073,7 @@ class pos_order_line(osv.osv):
|
||||
else:
|
||||
res[line.id]=line.price_unit*line.qty
|
||||
res[line.id] = res[line.id] + tax_amount
|
||||
|
||||
|
||||
return res
|
||||
def _amount_line(self, cr, uid, ids, field_name, arg, context):
|
||||
res = {}
|
||||
@@ -1094,7 +1094,7 @@ class pos_order_line(osv.osv):
|
||||
_('You have to select a pricelist in the sale form !\n' \
|
||||
'Please set one before choosing a product.'))
|
||||
p_obj = self.pool.get('product.product').browse(cr,uid,[product_id])[0]
|
||||
uom_id=p_obj.uom_po_id.id
|
||||
uom_id=p_obj.uom_po_id.id
|
||||
price = self.pool.get('product.pricelist').price_get(cr, uid,
|
||||
[pricelist], product_id, qty or 1.0, partner_id,{'uom': uom_id})[pricelist]
|
||||
unit_price=price or p_obj.list_price
|
||||
@@ -1103,8 +1103,8 @@ class pos_order_line(osv.osv):
|
||||
_("Couldn't find a pricelist line matching this product" \
|
||||
" and quantity.\nYou have to change either the product," \
|
||||
" the quantity or the pricelist."))
|
||||
return unit_price
|
||||
|
||||
return unit_price
|
||||
|
||||
def onchange_product_id(self, cr, uid, ids, pricelist, product_id, qty=0, partner_id=False):
|
||||
price = self.price_by_product(cr, uid, ids, pricelist, product_id, qty, partner_id)
|
||||
self.write(cr,uid,ids,{'price_unit':price})
|
||||
@@ -1176,18 +1176,18 @@ class pos_order_line(osv.osv):
|
||||
'notice': lambda *a: 'No Discount',
|
||||
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
|
||||
}
|
||||
|
||||
|
||||
# def _check_qty(self, cr, uid, ids):
|
||||
# lines = self.browse(cr, uid, ids)
|
||||
# for line in lines:
|
||||
# if line.qty <= 0:
|
||||
# return False
|
||||
# return True
|
||||
|
||||
|
||||
# _constraints = [
|
||||
# (_check_qty, 'Order quantity cannot be negative or zero !', ['qty']),
|
||||
# ]
|
||||
|
||||
|
||||
def create(self, cr, user, vals, context={}):
|
||||
if vals.get('product_id'):
|
||||
return super(pos_order_line, self).create(cr, user, vals, context)
|
||||
@@ -1296,7 +1296,7 @@ class pos_payment(osv.osv):
|
||||
pos_payment()
|
||||
|
||||
class account_move_line(osv.osv):
|
||||
|
||||
|
||||
_inherit = 'account.move.line'
|
||||
def create(self, cr, user, vals, context={}):
|
||||
pos_obj = self.pool.get('pos.order')
|
||||
@@ -1316,9 +1316,9 @@ account_move_line()
|
||||
|
||||
|
||||
class account_move(osv.osv):
|
||||
|
||||
|
||||
_inherit = 'account.move'
|
||||
|
||||
|
||||
def create(self, cr, user, vals, context={}):
|
||||
pos_obj = self.pool.get('pos.order')
|
||||
val_name = vals.get('name', '')
|
||||
|
||||
@@ -48,7 +48,6 @@ class pos_invoice(report_sxw.rml_parse):
|
||||
raise osv.except_osv(_('Error !'), _('Please create an invoice for this sale.'))
|
||||
iids.append(order.invoice_id)
|
||||
nids.append(order.invoice_id.id)
|
||||
self.cr.commit()
|
||||
data['ids'] = nids
|
||||
self.datas = data
|
||||
self.ids = nids
|
||||
|
||||
@@ -71,7 +71,6 @@ class pos_open_statement(osv.osv_memory):
|
||||
number = sequence_obj.get(cr, uid,
|
||||
'account.bank.statement')
|
||||
|
||||
|
||||
statement_id=statement_obj.create(cr,uid,{'journal_id':journal.id,
|
||||
'company_id':company_id,
|
||||
'user_id':uid,
|
||||
|
||||
@@ -128,11 +128,30 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_process_filter" model="ir.ui.view">
|
||||
<field name="name">process.process.filter</field>
|
||||
<field name="model">process.process</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Process">
|
||||
<group col="10" colspan="4">
|
||||
<field name="name"/>
|
||||
<field name="model_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="4" col="4">
|
||||
<filter string="Object" icon="terp-personal" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_process_form">
|
||||
<field name="name">Process</field>
|
||||
<field name="res_model">process.process</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_process_filter" />
|
||||
</record>
|
||||
<menuitem
|
||||
id="menu_process_form"
|
||||
@@ -239,11 +258,32 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_process_node_filter" model="ir.ui.view">
|
||||
<field name="name">process.node.filter</field>
|
||||
<field name="model">process.node</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search ProcessNode">
|
||||
<group col="10" colspan="4">
|
||||
<field name="name"/>
|
||||
<field name="model_id"/>
|
||||
<field name="kind" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="4" col="4">
|
||||
<filter string="Object" icon="terp-personal" domain="[]" context="{'group_by':'model_id'}"/>
|
||||
<filter string="Kind Of Node" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'kind'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_process_node_form">
|
||||
<field name="name">Process Nodes</field>
|
||||
<field name="res_model">process.node</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_process_node_filter" />
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
@@ -272,7 +312,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Process Transition">
|
||||
<group string="Details">
|
||||
<group>
|
||||
<field name="name" select="1"/>
|
||||
<newline/>
|
||||
<field name="source_node_id" select="1"/>
|
||||
@@ -308,11 +348,32 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_process_transition_filter" model="ir.ui.view">
|
||||
<field name="name">process.transition.filter</field>
|
||||
<field name="model">process.transition</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Process Transition">
|
||||
<group col="10" colspan="4">
|
||||
<field name="name"/>
|
||||
<field name="source_node_id"/>
|
||||
<field name="target_node_id" />
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By..." colspan="4" col="4">
|
||||
<filter string="Source Node" icon="terp-personal" domain="[]" context="{'group_by':'source_node_id'}"/>
|
||||
<filter string="Target Node" icon="terp-personal" domain="[]" context="{'group_by':'target_node_id'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_process_transition_form">
|
||||
<field name="name">Process Transitions</field>
|
||||
<field name="res_model">process.transition</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_process_transition_filter" />
|
||||
</record>
|
||||
<menuitem
|
||||
id="menu_process_transition_form"
|
||||
|
||||
@@ -372,6 +372,9 @@ class procurement_order(osv.osv):
|
||||
cr.execute('update procurement_order set message=%s where id=%s', (_('Not enough stock and no minimum orderpoint rule defined.'), procurement.id))
|
||||
message = _('Procurement ') + " '" + procurement.name + "' "+ _("has an exception.") + _('Not enough stock and no minimum orderpoint rule defined.')
|
||||
self.log(cr, uid, procurement.id, message)
|
||||
if procurement.state=='exception' and procurement.message=='':
|
||||
cr.execute('update procurement_order set message=%s where id=%s', (_('Not enough stock '), procurement.id))
|
||||
|
||||
return ok
|
||||
|
||||
def action_produce_assign_service(self, cr, uid, ids, context={}):
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<field name="name" >Tasks According to User and Project</field>
|
||||
<field name="model_id" ref="model_project_task"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|','|','|',('user_id','=',False),('user_id','=',user.id),('project_id.members','=',user.id),('project_id.user_id','=',user.id)]</field>
|
||||
<field name="domain_force">['|','|','|',('user_id','=',False),('user_id','=',user.id),('project_id.members','in', [user.id]),('project_id.user_id','=',user.id)]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||
@@ -79,6 +80,7 @@
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table_All_Total_Detail">
|
||||
<blockAlignment value="LEFT"/>
|
||||
@@ -98,18 +100,16 @@
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="P1" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Contents" fontName="Times-Roman"/>
|
||||
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Times-Roman"/>
|
||||
<paraStyle name="Footer" fontName="Times-Roman"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
@@ -132,8 +132,8 @@
|
||||
<paraStyle name="terp_default_Bold_9_Right" 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"/>
|
||||
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
|
||||
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
|
||||
@@ -155,13 +155,13 @@
|
||||
<td>
|
||||
<para style="terp_default_9">[[ repeatIn(o.dest_address_id and [o.dest_address_id] or [],'addr') ]]</para>
|
||||
<para style="terp_default_Bold_9">Shipping address :</para>
|
||||
<para style="P1">[[ o.partner_id.name ]] [[ o.partner_id.title or '' ]]</para>
|
||||
<para style="P1">[[ addr.title or '' ]] [[ addr.name ]]</para>
|
||||
<para style="P1">[[ addr.street ]]</para>
|
||||
<para style="P1">[[ addr.street2 or '' ]]</para>
|
||||
<para style="P1">[[ addr.zip or '' ]] [[ addr.city or '' ]]</para>
|
||||
<para style="P1">[[ addr.state_id and addr.state_id.name or '' ]]</para>
|
||||
<para style="P2">[[ addr.country_id and addr.country_id.name or '' ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
|
||||
<para style="terp_default_9">[[ addr.title or '' ]] [[ addr.name ]]</para>
|
||||
<para style="terp_default_9">[[ addr.street ]]</para>
|
||||
<para style="terp_default_9">[[ addr.street2 or '' ]]</para>
|
||||
<para style="terp_default_9">[[ addr.zip or '' ]] [[ addr.city or '' ]]</para>
|
||||
<para style="terp_default_9">[[ addr.state_id and addr.state_id.name or '' ]]</para>
|
||||
<para style="terp_default_9">[[ addr.country_id and addr.country_id.name or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -175,19 +175,19 @@
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ o.partner_id.name ]] [[ o.partner_id.title or '' ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_id.title or '' ]] [[ o.partner_id.name ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_address_id.title or '' ]] [[ o.partner_address_id.name ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_address_id.street ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_address_id.street2 or '' ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_address_id.zip or '' ]] [[ o.partner_address_id.city or '' ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_address_id.state_id and o.partner_address_id.state_id.name or '' ]]</para>
|
||||
<para style="terp_default_9">[[ o.partner_address_id.country_id and o.partner_address_id.country_id.name or '' ]]</para>
|
||||
<para style="P1">
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<para style="P1">Tél. : [[ o.partner_address_id.phone or '' ]]</para>
|
||||
<para style="P1">Fax : [[ o.partner_address_id.fax or '' ]]</para>
|
||||
<para style="P1">TVA : [[ o.partner_id.vat or '' ]]</para>
|
||||
<para style="terp_default_9">Tél. : [[ o.partner_address_id.phone or '' ]]</para>
|
||||
<para style="terp_default_9">Fax : [[ o.partner_address_id.fax or '' ]]</para>
|
||||
<para style="terp_default_9">TVA : [[ o.partner_id.vat or '' ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
@@ -240,7 +240,7 @@
|
||||
<para style="terp_default_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="202.0,57.0,106.0,46.0,59.0,62.0" repeatRows="1" style="Table_Header_Pur_ord_Line">
|
||||
<blockTable colWidths="179.0,82.0,73.0,64.0,56.0,79.0" repeatRows="1" style="Table_Header_Pur_ord_Line">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Description</para>
|
||||
@@ -258,13 +258,13 @@
|
||||
<para style="terp_tblheader_Details_Right">Unit Price</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Net Price</para>
|
||||
<para style="terp_tblheader_Details_Centre">Net Price</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_8">[[repeatIn(o.order_line,'line')]]</para>
|
||||
<blockTable colWidths="200.0,58.0,106.0,28.0,20.0,59.0,63.0" style="Table_Order_Pur_line_Content">
|
||||
<blockTable colWidths="179.0,82.0,73.0,44.0,20.0,58.0,56.0,23.0" style="Table_Order_Pur_line_Content">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ line.name ]]</para>
|
||||
@@ -287,6 +287,9 @@
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(line.price_subtotal ) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ o.pricelist_id.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
@@ -322,10 +325,15 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<blockTable colWidths="413.0,59.0,42.0,20.0" style="Table_All_Total_Detail">
|
||||
<blockTable colWidths="391.0,55.0,66.0,23.0" style="Table_All_Total_Detail">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
-
|
||||
!workflow {model: sale.order, action: order_confirm, ref: sale_order_testtender1}
|
||||
-
|
||||
I launch he scheduler to compute all procurements, and planify all requisitions orders.
|
||||
I launch the scheduler to compute all procurements, and planify all requisitions orders.
|
||||
-
|
||||
!python {model: procurement.order.compute.all}: |
|
||||
proc_obj = self.pool.get('procurement.order')
|
||||
@@ -109,4 +109,4 @@
|
||||
ids =req_obj.search(cr, uid, [('origin','=','Laptop ACER1')])
|
||||
purchase_id= self.search(cr, uid, [('partner_id','=',partner_id),('requisition_id','in',ids)])[0]
|
||||
state=self.browse(cr,uid,purchase_id).state
|
||||
assert (state=='cancel')
|
||||
assert (state=='cancel')
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table6">
|
||||
<blockAlignment value="LEFT"/>
|
||||
@@ -91,14 +92,14 @@
|
||||
<initialize>
|
||||
<paraStyle name="all" alignment="justify"/>
|
||||
</initialize>
|
||||
<paraStyle name="Standard" fontName="Times-Roman"/>
|
||||
<paraStyle name="Text body" fontName="Times-Roman" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Heading" fontName="Helvetica" fontSize="8.0" leading="10" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Table Contents" fontName="Times-Roman"/>
|
||||
<paraStyle name="Table Heading" fontName="Times-Roman" alignment="CENTER"/>
|
||||
<paraStyle name="Caption" fontName="Times-Roman" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Times-Roman"/>
|
||||
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||
<paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Index" fontName="Helvetica"/>
|
||||
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
@@ -108,8 +109,8 @@
|
||||
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="Footer" fontName="Times-Roman"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Times-Roman" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||
@@ -123,10 +124,10 @@
|
||||
<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_Italic" rightIndent="0.0" leftIndent="20.0" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Preformatted Text" fontName="Times-Roman" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="Preformatted Text" fontName="Helvetica" fontSize="10.0" leading="13" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<paraStyle name="terp_default_Centre_9_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||
<images/>
|
||||
</stylesheet>
|
||||
<images/>
|
||||
<story>
|
||||
<para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
|
||||
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
|
||||
@@ -217,7 +218,7 @@
|
||||
<para style="terp_default_8">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
<blockTable colWidths="208.0,99.0,64.0,59.0,43.0,65.0" repeatRows="1" style="Table4">
|
||||
<blockTable colWidths="203.0,94.0,68.0,59.0,43.0,70.0" repeatRows="1" style="Table4">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details">Description</para>
|
||||
@@ -226,7 +227,7 @@
|
||||
<para style="terp_tblheader_Details_Centre">VAT</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Centre">Quantity</para>
|
||||
<para style="terp_tblheader_Details_Right">Quantity</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Unit Price</para>
|
||||
@@ -235,13 +236,13 @@
|
||||
<para style="terp_tblheader_Details_Right">Disc.(%)</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_tblheader_Details_Right">Price</para>
|
||||
<para style="terp_tblheader_Details_Centre">Price</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
<section>
|
||||
<para style="terp_default_1">[[repeatIn(o.order_line,'line')]]</para>
|
||||
<blockTable colWidths="207.0,99.0,43.0,21.0,59.0,43.0,65.0" style="Table5">
|
||||
<blockTable colWidths="203.0,94.0,47.0,22.0,59.0,42.0,49.0,21.0" style="Table5">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">[[ line.name ]]</para>
|
||||
@@ -264,6 +265,9 @@
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ formatLang(line.price_subtotal ) ]]</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">[[ o.pricelist_id.currency_id.name ]]</para>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
@@ -299,10 +303,15 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
<td>
|
||||
<para style="terp_default_Right_9">
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</td>
|
||||
</tr>
|
||||
</blockTable>
|
||||
</section>
|
||||
<blockTable colWidths="384.0,67.0,64.0,22.0" style="Table6">
|
||||
<blockTable colWidths="387.0,56.0,73.0,21.0" style="Table6">
|
||||
<tr>
|
||||
<td>
|
||||
<para style="terp_default_9">
|
||||
@@ -371,4 +380,4 @@
|
||||
<font color="white"> </font>
|
||||
</para>
|
||||
</story>
|
||||
</document>
|
||||
</document>
|
||||
|
||||
+18
-7
@@ -233,7 +233,7 @@ class sale_order(osv.osv):
|
||||
|
||||
'incoterm': fields.selection(_incoterm_get, 'Incoterm', size=3, help="Incoterm which stands for 'International Commercial terms' implies its a series of sales terms which are used in the commercial transaction"),
|
||||
'picking_policy': fields.selection([('direct', 'Partial Delivery'), ('one', 'Complete Delivery')],
|
||||
'Picking Policy', required=True, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""),
|
||||
'Picking Policy', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""),
|
||||
'order_policy': fields.selection([
|
||||
('prepaid', 'Payment Before Delivery'),
|
||||
('manual', 'Shipping & Manual Invoice'),
|
||||
@@ -251,7 +251,7 @@ class sale_order(osv.osv):
|
||||
'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'invoice_ids': fields.many2many('account.invoice', 'sale_order_invoice_rel', 'order_id', 'invoice_id', 'Invoices', help="This is the list of invoices that have been generated for this sale order. The same sale order may have been invoiced in several times (by line for example)."),
|
||||
'picking_ids': fields.one2many('stock.picking', 'sale_id', 'Related Picking', readonly=True, help="This is the list of picking list that have been generated for this invoice"),
|
||||
'shipped': fields.boolean('Picked', readonly=True, help="It indicates that a picking has been done.It will set to True if the ordered quantities are available and the picking is done.If the ordered quantities are not available it generates a Purchase/Manufacturing order.Unless its Picking and Purchase/Manufacturing order are not in the done state it wont be set to True"),
|
||||
'shipped': fields.boolean('Picked', readonly=True, help="It indicates that a picking has been done. It will be set to True if the ordered quantities are available and the picking is done. If the ordered quantities are not available it generates a Purchase/Manufacturing order. Unless its Picking and Purchase/Manufacturing order are not in the done state it wont be set to True"),
|
||||
'picked_rate': fields.function(_picked_rate, method=True, string='Picked', type='float'),
|
||||
'invoiced_rate': fields.function(_invoiced_rate, method=True, string='Invoiced', type='float'),
|
||||
'invoiced': fields.function(_invoiced, method=True, string='Paid',
|
||||
@@ -786,7 +786,7 @@ class sale_order_line(osv.osv):
|
||||
context = context or {}
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
price = line.price_unit * line.product_uom_qty * (1 - (line.discount or 0.0) / 100.0)
|
||||
taxes = tax_obj.compute_all(cr, uid, line.tax_id, price, line.product_uom_qty)
|
||||
taxes = tax_obj.compute_all(cr, uid, line.tax_id, line.price_unit, line.product_uom_qty)
|
||||
cur = line.order_id.pricelist_id.currency_id
|
||||
res[line.id] = cur_obj.round(cr, uid, cur, taxes['total'])
|
||||
return res
|
||||
@@ -828,7 +828,7 @@ class sale_order_line(osv.osv):
|
||||
'discount': fields.float('Discount (%)', digits=(16, 2), readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'number_packages': fields.function(_number_packages, method=True, type='integer', string='Number Packages'),
|
||||
'notes': fields.text('Notes'),
|
||||
'th_weight': fields.float('Weight'),
|
||||
'th_weight': fields.float('Weight', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'state': fields.selection([('draft', 'Draft'),('confirmed', 'Confirmed'),('done', 'Done'),('cancel', 'Cancelled'),('exception', 'Exception')], 'State', required=True, readonly=True,
|
||||
help=' * The \'Draft\' state is set automatically when sale order in draft state. \
|
||||
\n* The \'Confirmed\' state is set automatically when sale order in confirm state. \
|
||||
@@ -837,7 +837,7 @@ class sale_order_line(osv.osv):
|
||||
\n* The \'Cancelled\' state is set automatically when user cancel sale order.'),
|
||||
'order_partner_id': fields.related('order_id', 'partner_id', type='many2one', relation='res.partner', string='Customer'),
|
||||
'salesman_id':fields.related('order_id', 'user_id', type='many2one', relation='res.users', string='Salesman'),
|
||||
'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True),
|
||||
'company_id': fields.related('order_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True, states={'draft':[('readonly',False)]}),
|
||||
}
|
||||
_order = 'sequence, id'
|
||||
_defaults = {
|
||||
@@ -852,9 +852,17 @@ class sale_order_line(osv.osv):
|
||||
'product_packaging': False
|
||||
}
|
||||
|
||||
def create_sale_order_line_invoice(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
context.update({'active_ids' : ids,'active_id' : ids})
|
||||
self.pool.get('sale.order.line.make.invoice').make_invoices(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def invoice_line_create(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
def _get_line_qty(line):
|
||||
if (line.order_id.invoice_quantity=='order') or not line.procurement_id:
|
||||
if line.product_uos:
|
||||
@@ -919,7 +927,6 @@ class sale_order_line(osv.osv):
|
||||
|
||||
sales[line.order_id.id] = True
|
||||
create_ids.append(inv_id)
|
||||
|
||||
# Trigger workflow events
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
for sid in sales.keys():
|
||||
@@ -932,6 +939,10 @@ class sale_order_line(osv.osv):
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
if line.invoiced:
|
||||
raise osv.except_osv(_('Invalid action !'), _('You cannot cancel a sale order line that has already been invoiced !'))
|
||||
# if line.order_id.picking_ids:
|
||||
# raise osv.except_osv(
|
||||
# _('Could not cancel sale order line!'),
|
||||
# _('You must first cancel stock move attached to this sale order line.'))
|
||||
message = _('Sale order line') + " '" + line.name + "' "+_("is cancelled")
|
||||
self.log(cr, uid, id, message)
|
||||
return self.write(cr, uid, ids, {'state': 'cancel'})
|
||||
@@ -1198,4 +1209,4 @@ class sale_config_picking_policy(osv.osv_memory):
|
||||
self.pool.get('stock.location').write(cr, uid, [location_id], {'chained_auto_packing': 'transparent'})
|
||||
sale_config_picking_policy()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
+19
-14
@@ -165,10 +165,10 @@
|
||||
<field name="state"/>
|
||||
<field name="invoiced"/>
|
||||
<button colspan="1"
|
||||
name="%(action_view_sale_order_line_make_invoice)d"
|
||||
name="create_sale_order_line_invoice"
|
||||
states="confirmed"
|
||||
string="Make Invoice"
|
||||
type="action"
|
||||
string="Create Invoice"
|
||||
type="object"
|
||||
icon="terp-document-new" />
|
||||
</group>
|
||||
</page>
|
||||
@@ -396,20 +396,24 @@
|
||||
<field colspan="4" name="tax_id" domain="[('parent_id','=',False),('type_tax_use','<>','purchase')]" nolabel="1"/>
|
||||
<separator colspan="4" string="States"/>
|
||||
<field name="state"/>
|
||||
<button colspan="1"
|
||||
name="%(action_view_sale_order_line_make_invoice)d"
|
||||
string="Make Invoice"
|
||||
type="action"
|
||||
icon="terp-document-new" />
|
||||
<group col="2" colspan="2">
|
||||
<group col="3" colspan="2">
|
||||
<button colspan="1"
|
||||
name="create_sale_order_line_invoice"
|
||||
states="confirmed"
|
||||
string="Create Invoice"
|
||||
type="object"
|
||||
icon="terp-document-new"
|
||||
attrs="{'invisible': [('invoiced', '=', 1)]}"/>
|
||||
<button name="button_cancel"
|
||||
states="confirmed,exception"
|
||||
string="Cancel" type="object"
|
||||
icon="gtk-cancel"
|
||||
attrs="{'invisible': [('invoiced', '=', 1)]}" />
|
||||
<button name="button_done"
|
||||
states="confirmed,exception"
|
||||
string="Done" type="object"
|
||||
icon="gtk-jump-to" />
|
||||
<button name="button_cancel"
|
||||
states="confirmed,exception"
|
||||
string="Cancel" type="object"
|
||||
icon="gtk-cancel" />
|
||||
icon="gtk-jump-to"
|
||||
attrs="{'invisible': [('invoiced', '=', 0)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
<!-- <page string="Properties" groups="base.group_extended">-->
|
||||
@@ -492,6 +496,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,graph</field>
|
||||
<field name="search_view_id" ref="view_sales_order_uninvoiced_line_filter" />
|
||||
<field name="context">{"search_default_uninvoiced":1}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -87,4 +87,4 @@
|
||||
!python {model: procurement.order}: |
|
||||
from tools.translate import _
|
||||
proc_ids = self.search(cr, uid, [('state','=','exception'),('product_id','=',ref('sale.product_product_table0'))])
|
||||
assert proc_ids, _('No Procurements are in exception state for the table!')
|
||||
assert not proc_ids, _('There is no procurement in exception state!')
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
<hpaned>
|
||||
<child1>
|
||||
<action
|
||||
string="My Opportunities"
|
||||
name="%(crm.act_my_leads)d"
|
||||
string="My Open Opportunities"
|
||||
name="%(crm.act_my_oppor)d"
|
||||
colspan="4"
|
||||
height="150"
|
||||
width="510"/>
|
||||
@@ -74,8 +74,8 @@
|
||||
</child1>
|
||||
<child2>
|
||||
<action
|
||||
string="Revenues by stage"
|
||||
name="%(crm.act_my_leads_stage)d"
|
||||
string="Revenue by stage"
|
||||
name="%(crm.act_my_oppor_stage)d"
|
||||
colspan="4"/>
|
||||
<action
|
||||
string="My Sales Pipeline"
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -1,39 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
{
|
||||
'name': 'Print Delivery Order',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/Sales & Purchases',
|
||||
'description': """Allows to print a delivery order.""",
|
||||
'author': 'Tiny',
|
||||
'depends': ['sale', 'delivery'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
'sale_delivery_report.xml'
|
||||
],
|
||||
'demo_xml': [],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'certificate': '00803459507494914221',
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-02-03 06:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-02-16 21:00+0000\n"
|
||||
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Дата на поръчка"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Отпратка към поръчка"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Тегло"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Предназначение"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Поръчка за доставка :"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Поръчка за доставка"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Отпечатай поръчката за доставка"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Превозвач"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Фактурирано към"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Партида"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Дата на доставка"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Количество"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-02-03 06:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-30 08:24+0000\n"
|
||||
"Last-Translator: Raimon Esteve (Zikzakmedia) <resteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Data comanda"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Ref. comanda"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Pes"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Destinatari"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Ordre d'enviament :"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Ordre de lliurament"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Imprimeix ordre de lliurament"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Transportista"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Facturat a"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Data d'enviament"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Quantitat"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-02-03 06:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Datum objednávky"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Hmotnost"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Označení"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Stav dodávky:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Stav dodávky"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Vytisknout stav dodávky"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Nosič"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Fakturovány"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Nmožství"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Datum odeslání"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Množství"
|
||||
@@ -1,78 +0,0 @@
|
||||
# Danish translation for openobject-addons
|
||||
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-17 10:38+0000\n"
|
||||
"Last-Translator: SmartWi <kurt@smartwi.net>\n"
|
||||
"Language-Team: Danish <da@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Order dato"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Order"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Vægt"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Betegnelse"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Leverings order:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Leverings order"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Udskriv leverings order"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Transportør"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Faktura til"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Forsendelses dato"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Antal"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-17 10:38+0000\n"
|
||||
"Last-Translator: Ferdinand-chricar <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Bestelldatum"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Referenz Auftrag"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Gewicht"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Ausschreiben"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Lieferschein:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Lieferschein"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Druck Lieferauftrag"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Frachtführer"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Verrechnet an"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Fertigungslos"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Versanddatum"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Menge"
|
||||
@@ -1,80 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-12-16 20:08+0000\n"
|
||||
"Last-Translator: Andreas Porevopoulos <Unknown>\n"
|
||||
"Language-Team: nls@hellug.gr <nls@hellug.gr>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Country: GREECE\n"
|
||||
"X-Poedit-Language: Greek\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Ημερ/νία Παραγελίας"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Παρ. Παραγγελίας"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Βάρος"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Χαρακτηρισμός"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Εντολή παράδοσης:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Εντολή παράδοσης"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Εκτύπωση εντολής παράδοσης"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Μεταφορέας"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Τιμολογημένο σε"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Παρτίδα"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Ημερ/νία Αποστολής"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Ποσότητα"
|
||||
@@ -1,78 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-28 07:59+0000\n"
|
||||
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
|
||||
"<jesteve@zikzakmedia.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Fecha pedido"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Ref. pedido"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Peso"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Destinatario"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Orden de entrega :"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Orden de entrega"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Imprimir orden de entrega"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Transportista"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Facturado a"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Lote"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Fecha de envío"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Cantidad"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-22 19:56+0000\n"
|
||||
"Last-Translator: Julieta Catalano <jcatalano@thymbra.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Fecha pedido"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Ref. pedido"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Peso"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Destinatario"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Orden de entrega :"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Orden de entrega"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Imprimir orden de entrega"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Transportista"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Facturar a"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Lote"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Fecha de embarque"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Cantidad"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-09 19:56+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Tellimuse kuupäev"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Tellimuse viide"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Kaal"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Sihtkoht"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Tarnetellimus :"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Tarnetellimus"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Prindi kättetoimetamise aruanne"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Tarnija"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Kellele arveldatud:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Partii"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Tarnimise kuupäev"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Kogus"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-09 19:56+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Date de commande"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Réf. Commande"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Poids brut"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Désignation"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Ordre de livraison :"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Bordereau de livraison"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Imprimer le bordereau de livraison"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Transporteur"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Facturé à"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Date de Livraison"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Quantité"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-17 10:38+0000\n"
|
||||
"Last-Translator: Miro Glavić <glavicmiro@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Datum Narudžbe"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Narudžba Ref."
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Težina"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Naznaka"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Otpremna Narudžba"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Otpremna narudžba"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Ispiši Otpremnu Narudžbu"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Nosač"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Fakturirano na"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Lot"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Datum Otpreme"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Količina"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-02-03 06:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-09 13:57+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2010-01-09 13:20+0000\n"
|
||||
"Last-Translator: Carlo - didotech.com <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Data Ordine"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Rif. Ordine"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Peso"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Nomina"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Ordine di consegna:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Ordine di Consegna"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Stampa ordine consegna"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Trasportatore"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Fatturato a"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Lotto"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Data Spedizione"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Quantità"
|
||||
@@ -1,78 +0,0 @@
|
||||
# Korean translation for openobject-addons
|
||||
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 12:31+0000\n"
|
||||
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
|
||||
"Language-Team: Korean <ko@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "주문 날짜"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "주문 참조"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "무게"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "목적지"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "배송 주문:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "배송 주문"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "배송 주문 인쇄"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "운송자"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "인보이스 대상"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "로트"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "선적 날짜"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "수량"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-02-03 06:25+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-08 16:41+0000\n"
|
||||
"Last-Translator: Freerk Kalsbeek (Mindswitch BV) <f.kalsbeek@mindswitch.nl>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Orderdatum"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Order ref."
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Gewicht"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Term"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Leveringsopdracht:"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Leveringsopdracht"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Afdrukken leveringsbon"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Transporteur"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Gefactureerd aan"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Overdoos"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Verzenddatum"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Aantal"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-04-24 15:11+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr ""
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-11-17 10:38+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr "Data zamówienia"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr "Odn. zamówienia"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Waga"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr "Zamówienie dostawy :"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr "Zamówienie dostawy"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr "Drukuj zamówienie dostawy"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr "Przewoźnik"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr "Zafakturowany na"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr "Partia"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr "Data wysyłki"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Ilość"
|
||||
@@ -1,77 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * sale_delivery_report
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
|
||||
"PO-Revision-Date: 2009-09-15 17:20+0000\n"
|
||||
"Last-Translator: Madalena_prime <madalena.barreto@prime.cv>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-06-22 04:19+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Order Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Weight"
|
||||
msgstr "Peso"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Designation"
|
||||
msgstr "Designação"
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Delivery Order :"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.actions.report.xml,name:sale_delivery_report.report_shipping
|
||||
msgid "Delivery order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: model:ir.module.module,shortdesc:sale_delivery_report.module_meta_information
|
||||
msgid "Print Delivery Order"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Carrier"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Invoiced to"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Lot"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Shipping Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: sale_delivery_report
|
||||
#: rml:sale.shipping:0
|
||||
msgid "Quantity"
|
||||
msgstr "Quantidade"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user