~c2c-oerpscenario/oerpscenario/stable-6.0

« back to all changes in this revision

Viewing changes to doc/files/lib/Helpers/AccountInvoice_rb.src/M000001.html

  • Committer: Joël Grand-Guillaume
  • Date: 2010-03-26 11:30:57 UTC
  • mfrom: (30.1.75 OERPScenario)
  • Revision ID: joel.grandguillaume@camptocamp.com-20100326113057-w6jb16avnxkf2ize
[MRG] From trunk branch. This is about releasing the 0.5 version of OERPScenario.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="iso-8859-1"?>
 
2
<!DOCTYPE html 
 
3
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 
4
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
5
 
 
6
<html>
 
7
<head>
 
8
  <title>create_invoice_with_currency (lib/Helpers/AccountInvoice.rb)</title>
 
9
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 
10
  <link rel="stylesheet" href="../../../.././rdoc-style.css" type="text/css" media="screen" />
 
11
</head>
 
12
<body class="standalone-code">
 
13
  <pre><span class="ruby-comment cmt"># File lib/Helpers/AccountInvoice.rb, line 51</span>
 
14
      <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">create_invoice_with_currency</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">partner</span>, <span class="ruby-identifier">options</span>={}, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
 
15
          <span class="ruby-identifier">o</span> = {<span class="ruby-identifier">:type=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'out_invoice'</span>, <span class="ruby-identifier">:currency_code=</span><span class="ruby-operator">&gt;</span><span class="ruby-value str">'EUR'</span>, <span class="ruby-identifier">:date=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:amount=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>, <span class="ruby-identifier">:account=</span><span class="ruby-operator">&gt;</span><span class="ruby-keyword kw">false</span>}.<span class="ruby-identifier">merge</span>(<span class="ruby-identifier">options</span>)
 
16
           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:date</span>] <span class="ruby-operator">:</span>
 
17
                <span class="ruby-identifier">date_invoice</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">parse</span>(<span class="ruby-identifier">str</span>=<span class="ruby-identifier">o</span>[<span class="ruby-identifier">:date</span>]).<span class="ruby-identifier">to_s</span>
 
18
            <span class="ruby-keyword kw">else</span>
 
19
                <span class="ruby-identifier">date_invoice</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">today</span>.<span class="ruby-identifier">to_s</span>
 
20
            <span class="ruby-keyword kw">end</span>
 
21
          
 
22
          <span class="ruby-identifier">toreturn</span> = <span class="ruby-constant">AccountInvoice</span>.<span class="ruby-identifier">new</span>()
 
23
          
 
24
          <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">partner</span>.<span class="ruby-identifier">class</span>  <span class="ruby-operator">==</span> <span class="ruby-constant">ResPartner</span> <span class="ruby-operator">:</span>
 
25
              <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;!!! --- HELPER ERROR :create_cust_invoice_with_currency received a #{partner.class.to_s} instead of ResPartner&quot;</span> 
 
26
          <span class="ruby-keyword kw">end</span> 
 
27
          <span class="ruby-comment cmt"># Set partner</span>
 
28
          <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">partner</span>.<span class="ruby-identifier">address</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span><span class="ruby-value">0</span>) <span class="ruby-operator">:</span>
 
29
              <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">partner_id</span> = <span class="ruby-identifier">partner</span>.<span class="ruby-identifier">id</span>
 
30
          <span class="ruby-keyword kw">else</span>
 
31
              <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;!!! --- HELPER ERROR :create_cust_invoice_with_currency received a partner : #{partner.name} without adresses&quot;</span>
 
32
          <span class="ruby-keyword kw">end</span>
 
33
          <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">on_change</span>(<span class="ruby-value str">'onchange_partner_id'</span>, <span class="ruby-identifier">:partner_id</span> ,<span class="ruby-value">1</span>, <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:type</span>], <span class="ruby-identifier">partner</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">date_invoice</span>, <span class="ruby-keyword kw">false</span>, <span class="ruby-keyword kw">false</span>)
 
34
          
 
35
          <span class="ruby-comment cmt"># Set name &amp; date</span>
 
36
          <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>
 
37
          <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">date_invoice</span>=<span class="ruby-identifier">date_invoice</span>
 
38
 
 
39
          <span class="ruby-comment cmt"># Set type of invoice</span>
 
40
          <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">type</span> = <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:type</span>]
 
41
          <span class="ruby-identifier">curr</span> =  <span class="ruby-constant">ResCurrency</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">:first</span>, <span class="ruby-identifier">:domain=</span><span class="ruby-operator">&gt;</span>[[<span class="ruby-value str">'code'</span>,<span class="ruby-value str">'='</span>,<span class="ruby-identifier">o</span>[<span class="ruby-identifier">:currency_code</span>]]])
 
42
          <span class="ruby-comment cmt"># Set currency</span>
 
43
          <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">curr</span> <span class="ruby-operator">:</span> 
 
44
              <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">currency_id</span> = <span class="ruby-identifier">curr</span>.<span class="ruby-identifier">id</span>
 
45
          <span class="ruby-keyword kw">else</span>
 
46
              <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;!!! --- HELPER ERROR :#{o[:currency_code]} currency not found&quot;</span>
 
47
          <span class="ruby-keyword kw">end</span>
 
48
          
 
49
          <span class="ruby-comment cmt"># Set amount and line if asked for</span>
 
50
          <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">create</span>
 
51
 
 
52
          <span class="ruby-comment cmt"># toreturn.type = o[:type]</span>
 
53
          <span class="ruby-comment cmt"># toreturn.save</span>
 
54
          <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:amount</span>] <span class="ruby-operator">:</span>
 
55
              
 
56
              <span class="ruby-keyword kw">if</span> [<span class="ruby-value str">'in_invoice'</span>, <span class="ruby-value str">'in_refund'</span>].<span class="ruby-identifier">include?</span> <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:type</span>] <span class="ruby-operator">:</span>
 
57
                  <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">check_total</span> = <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:amount</span>]
 
58
              <span class="ruby-keyword kw">end</span>
 
59
              <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:account</span>] <span class="ruby-operator">:</span>
 
60
                  <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">account</span>.<span class="ruby-identifier">class</span>  <span class="ruby-operator">==</span> <span class="ruby-constant">AccountAccount</span> <span class="ruby-operator">:</span>
 
61
                      <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;!!! --- HELPER ERROR :create_cust_invoice_with_currency received a #{o[:account].class.to_s} instead of AccountAccount&quot;</span> 
 
62
                  <span class="ruby-keyword kw">end</span>
 
63
                  <span class="ruby-identifier">account_id</span> = <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:account</span>].<span class="ruby-identifier">id</span>
 
64
              <span class="ruby-keyword kw">else</span>
 
65
                  <span class="ruby-comment cmt"># If no account, take on of type 'other' and a non-reconciliable account</span>
 
66
                  <span class="ruby-identifier">account_id</span> = <span class="ruby-constant">AccountAccount</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">:first</span>, <span class="ruby-identifier">:domain=</span><span class="ruby-operator">&gt;</span>[[<span class="ruby-value str">'type'</span>,<span class="ruby-value str">'='</span>,<span class="ruby-value str">'other'</span>],[<span class="ruby-value str">'reconcile'</span>,<span class="ruby-value str">'='</span>,<span class="ruby-keyword kw">false</span>]]).<span class="ruby-identifier">id</span>
 
67
                  <span class="ruby-comment cmt"># Create a line = amount for the created invoice</span>
 
68
                  <span class="ruby-identifier">line</span>=<span class="ruby-constant">AccountInvoiceLine</span>.<span class="ruby-identifier">new</span>(
 
69
                    <span class="ruby-identifier">:account_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">account_id</span>,
 
70
                    <span class="ruby-identifier">:quantity</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>,
 
71
                    <span class="ruby-identifier">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span><span class="ruby-operator">+</span><span class="ruby-value str">' line'</span>,
 
72
                    <span class="ruby-identifier">:price_unit</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">o</span>[<span class="ruby-identifier">:amount</span>],
 
73
                    <span class="ruby-identifier">:invoice_id</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">id</span>
 
74
                  )
 
75
                  <span class="ruby-identifier">line</span>.<span class="ruby-identifier">create</span>
 
76
              <span class="ruby-keyword kw">end</span>
 
77
          <span class="ruby-keyword kw">end</span>
 
78
          <span class="ruby-identifier">toreturn</span>.<span class="ruby-identifier">save</span> 
 
79
          <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">toreturn</span>
 
80
      <span class="ruby-keyword kw">end</span></pre>
 
81
</body>
 
82
</html>
 
 
b'\\ No newline at end of file'