[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r6903 - in trunk/gnue-packages: finance supply-chain supply-chain
From: |
kilo |
Subject: |
[gnue] r6903 - in trunk/gnue-packages: finance supply-chain supply-chain/billing supply-chain/doc |
Date: |
Sat, 15 Jan 2005 17:26:02 -0600 (CST) |
Author: kilo
Date: 2005-01-15 17:26:01 -0600 (Sat, 15 Jan 2005)
New Revision: 6903
Added:
trunk/gnue-packages/supply-chain/billing/
trunk/gnue-packages/supply-chain/billing/billing.dia
trunk/gnue-packages/supply-chain/billing/billing.gcd
trunk/gnue-packages/supply-chain/billing/billing.png
trunk/gnue-packages/supply-chain/billing/rules.txt
trunk/gnue-packages/supply-chain/inventory.gcd
trunk/gnue-packages/supply-chain/inventory/
Removed:
trunk/gnue-packages/finance/invoice/
trunk/gnue-packages/supply-chain/inventory/
Modified:
trunk/gnue-packages/supply-chain/doc/inventory.txt
Log:
Moved around packages to correspond better
to our own documentation on ERP.
Copied: trunk/gnue-packages/supply-chain/billing/billing.dia (from rev 6902,
trunk/gnue-packages/finance/invoice/invoice.dia)
===================================================================
--- trunk/gnue-packages/finance/invoice/invoice.dia 2005-01-14 08:37:55 UTC
(rev 6902)
+++ trunk/gnue-packages/supply-chain/billing/billing.dia 2005-01-15
23:26:01 UTC (rev 6903)
@@ -0,0 +1,1895 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+ <dia:diagramdata>
+ <dia:attribute name="background">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="pagebreak">
+ <dia:color val="#000099"/>
+ </dia:attribute>
+ <dia:attribute name="paper">
+ <dia:composite type="paper">
+ <dia:attribute name="name">
+ <dia:string>#A4#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="tmargin">
+ <dia:real val="2.8222000598907471"/>
+ </dia:attribute>
+ <dia:attribute name="bmargin">
+ <dia:real val="2.8222000598907471"/>
+ </dia:attribute>
+ <dia:attribute name="lmargin">
+ <dia:real val="2.8222000598907471"/>
+ </dia:attribute>
+ <dia:attribute name="rmargin">
+ <dia:real val="2.8222000598907471"/>
+ </dia:attribute>
+ <dia:attribute name="is_portrait">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="scaling">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="fitto">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="grid">
+ <dia:composite type="grid">
+ <dia:attribute name="width_x">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="width_y">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="visible_x">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:attribute name="visible_y">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:composite type="color"/>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#d8e5e5"/>
+ </dia:attribute>
+ <dia:attribute name="guides">
+ <dia:composite type="guides">
+ <dia:attribute name="hguides"/>
+ <dia:attribute name="vguides"/>
+ </dia:composite>
+ </dia:attribute>
+ </dia:diagramdata>
+ <dia:layer name="CĂșlra" visible="true">
+ <dia:object type="UML - LargePackage" version="0" id="O0">
+ <dia:attribute name="obj_pos">
+ <dia:point val="7,-22"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="6.95,-23.05;47.05,-0.95"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="7,-22"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="40"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="21"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#BILLING#</dia:string>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="UML - Class" version="0" id="O1">
+ <dia:attribute name="obj_pos">
+ <dia:point val="8,-21"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="7.95,-21.05;26.05,-2.35"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="8,-21"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="18"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="18.600000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#Head#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Invoice head#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_attributes">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="visible_attributes">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_operations">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_comments">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_after_char">
+ <dia:int val="40"/>
+ </dia:attribute>
+ <dia:attribute name="line_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_color">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="text_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font">
+ <dia:font family="monospace" style="88" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font">
+ <dia:font family="monospace" style="8" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font">
+ <dia:font family="sans" style="80" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font">
+ <dia:font family="sans" style="88" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#number#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(20)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#invoice number#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#seller#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#BILLING_Company#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#buyer#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#ORG_Org#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#who pays...#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#paymentMethod#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#BILLING_PaymentMethod#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#dateDelivery#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#date#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#dateIssued#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#date#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Date when invoice was generated#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#dateDue#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#date#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#note#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#printed#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(3)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>## of printed copies#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#reverted#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#boolean#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#If true, no more reverted copies can be
made#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#totalNet#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated: sum of all items' net value#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#totalVAT#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated: sum of all items' VAT value#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#totalGross#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated: sum of all items' gross
value#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#buyerName#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated: returns the buyer's name or emptry
string#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#revertedString#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#'REVERTED' or empty#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="operations">
+ <dia:composite type="umloperation">
+ <dia:attribute name="name">
+ <dia:string>#sumByRate#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Return summed Net, VAT or Gross values, filtered by
VAT rate#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="inheritance_type">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:attribute name="query">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="parameters">
+ <dia:composite type="umlparameter">
+ <dia:attribute name="name">
+ <dia:string>#type#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(5)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Net, Vat or Gross#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="kind">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlparameter">
+ <dia:attribute name="name">
+ <dia:string>#rate#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#VAT rate#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="kind">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umloperation">
+ <dia:attribute name="name">
+ <dia:string>#revert#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(20)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Reverts a given invoice#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="inheritance_type">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:attribute name="query">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="parameters">
+ <dia:composite type="umlparameter">
+ <dia:attribute name="name">
+ <dia:string>#invId#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#id#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#id of invoice to be reverted#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="kind">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umloperation">
+ <dia:attribute name="name">
+ <dia:string>#calcDateDue#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#date#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated: give the date the invoice is due based on
date of issue and the payment method#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="inheritance_type">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:attribute name="query">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="parameters"/>
+ </dia:composite>
+ <dia:composite type="umloperation">
+ <dia:attribute name="name">
+ <dia:string>#newNumber#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(20)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Generate a new invoice number#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="inheritance_type">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:attribute name="query">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="parameters"/>
+ </dia:composite>
+ <dia:composite type="umloperation">
+ <dia:attribute name="name">
+ <dia:string>#onValidate#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="inheritance_type">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:attribute name="query">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="parameters"/>
+ </dia:composite>
+ <dia:composite type="umloperation">
+ <dia:attribute name="name">
+ <dia:string>#onInit#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="1"/>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="inheritance_type">
+ <dia:enum val="2"/>
+ </dia:attribute>
+ <dia:attribute name="query">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="parameters"/>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="template">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="templates"/>
+ </dia:object>
+ <dia:object type="UML - Class" version="0" id="O2">
+ <dia:attribute name="obj_pos">
+ <dia:point val="36,-21"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="35.95,-21.05;44.15,-14.15"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="36,-21"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="8.0999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="6.8000000000000007"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#Item#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#One item (line) of an invoice#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_attributes">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="visible_attributes">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_operations">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_comments">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_after_char">
+ <dia:int val="40"/>
+ </dia:attribute>
+ <dia:attribute name="line_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_color">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="text_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font">
+ <dia:font family="monospace" style="88" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font">
+ <dia:font family="monospace" style="8" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font">
+ <dia:font family="sans" style="80" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font">
+ <dia:font family="sans" style="88" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#product#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#ITEM_Item#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#quantity#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#note#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#valueNet#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated:#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#valueVAT#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated:#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#valueGross#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(10,2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Calculated:#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="3"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="operations"/>
+ <dia:attribute name="template">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="templates"/>
+ </dia:object>
+ <dia:object type="UML - Class" version="0" id="O3">
+ <dia:attribute name="obj_pos">
+ <dia:point val="28,-7"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="27.95,-7.05;34.65,-2.55"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="28,-7"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="6.5999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="4.4000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#PaymentMethod#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#terms of payment#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_attributes">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="visible_attributes">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_operations">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_comments">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_after_char">
+ <dia:int val="40"/>
+ </dia:attribute>
+ <dia:attribute name="line_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_color">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="text_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font">
+ <dia:font family="monospace" style="88" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font">
+ <dia:font family="monospace" style="8" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font">
+ <dia:font family="sans" style="80" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font">
+ <dia:font family="sans" style="88" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#name#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#channel#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#cash, transfer, etc.#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#dueDays#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#number(3)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#number of days before payment is due#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="operations"/>
+ <dia:attribute name="template">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="templates"/>
+ </dia:object>
+ <dia:object type="UML - Class" version="0" id="O4">
+ <dia:attribute name="obj_pos">
+ <dia:point val="36,-13"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="35.95,-13.05;44.15,-2.15"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="36,-13"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="8.0999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="10.800000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#Company#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Seller company's data#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_attributes">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="suppress_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="visible_attributes">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_operations">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="visible_comments">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_operations">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="wrap_after_char">
+ <dia:int val="40"/>
+ </dia:attribute>
+ <dia:attribute name="line_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_color">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="text_color">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font">
+ <dia:font family="monospace" style="88" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font">
+ <dia:font family="monospace" style="8" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font">
+ <dia:font family="sans" style="80" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font">
+ <dia:font family="sans" style="88" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="polymorphic_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="abstract_classname_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#code#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(8)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#name#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#addr1#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#addr2#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#addr3#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#phone#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#taxID#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#currency#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(3)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#base currency#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#Name of bank#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#accNum#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(35)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="umlattribute">
+ <dia:attribute name="name">
+ <dia:string>#numPrint#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>#string(2)#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="value">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#number of invoices printed by default#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visibility">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="abstract">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="class_scope">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="operations"/>
+ <dia:attribute name="template">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="templates"/>
+ </dia:object>
+ <dia:object type="UML - Association" version="0" id="O5">
+ <dia:attribute name="obj_pos">
+ <dia:point val="26,-19.1"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="25.95,-19.8;36.3,-11.4"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="26,-19.1"/>
+ <dia:point val="31,-19.1"/>
+ <dia:point val="31,-12.3"/>
+ <dia:point val="36,-12.3"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#seller#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="direction">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="ends">
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#0..*#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#1#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O1" connection="9"/>
+ <dia:connection handle="1" to="O4" connection="3"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="UML - Association" version="0" id="O6">
+ <dia:attribute name="obj_pos">
+ <dia:point val="36,-20.3"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="25.9293,-21;37.2,-19.4"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="36,-20.3"/>
+ <dia:point val="36,-20.3"/>
+ <dia:point val="26,-20.3"/>
+ <dia:point val="26,-20.3"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="direction">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="ends">
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>#head#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#1..*#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#1..*#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O2" connection="3"/>
+ <dia:connection handle="1" to="O1" connection="4"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="UML - Association" version="0" id="O7">
+ <dia:attribute name="obj_pos">
+ <dia:point val="26,-16.7"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="25.95,-17.4;31,-5.4"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="26,-16.7"/>
+ <dia:point val="27,-16.7"/>
+ <dia:point val="27,-6.3"/>
+ <dia:point val="28,-6.3"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#paymentMethod#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="direction">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="ends">
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#0..*#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#1#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O1" connection="15"/>
+ <dia:connection handle="1" to="O3" connection="3"/>
+ </dia:connections>
+ <dia:childnode parent="O0"/>
+ </dia:object>
+ <dia:object type="UML - Association" version="0" id="O8">
+ <dia:attribute name="obj_pos">
+ <dia:point val="8,-17.5"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="3.95,-18.2;9.2,-13.4"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="8,-17.5"/>
+ <dia:point val="4,-17.5"/>
+ <dia:point val="4,-15"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#buyer#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="direction">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="ends">
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#0..*#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#1#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O1" connection="12"/>
+ <dia:connection handle="1" to="O10" connection="1"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="UML - Association" version="0" id="O9">
+ <dia:attribute name="obj_pos">
+ <dia:point val="44.1,-19.1"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="44.05,-19.8;48.3,-17.1"/>
+ </dia:attribute>
+ <dia:attribute name="orth_points">
+ <dia:point val="44.1,-19.1"/>
+ <dia:point val="46.05,-19.1"/>
+ <dia:point val="46.05,-18"/>
+ <dia:point val="48,-18"/>
+ </dia:attribute>
+ <dia:attribute name="orth_orient">
+ <dia:enum val="0"/>
+ <dia:enum val="1"/>
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="direction">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ <dia:attribute name="ends">
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>#product#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#1#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite>
+ <dia:attribute name="role">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="multiplicity">
+ <dia:string>#1#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="arrow">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="aggregate">
+ <dia:enum val="0"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:connections>
+ <dia:connection handle="0" to="O2" connection="9"/>
+ <dia:connection handle="1" to="O11" connection="0"/>
+ </dia:connections>
+ </dia:object>
+ <dia:object type="UML - LargePackage" version="0" id="O10">
+ <dia:attribute name="obj_pos">
+ <dia:point val="2,-15"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="1.95,-16.05;6.05,-10.95"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="2,-15"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="4"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="4"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#ORG#</dia:string>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="UML - LargePackage" version="0" id="O11">
+ <dia:attribute name="obj_pos">
+ <dia:point val="48,-18"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="47.95,-19.05;52.05,-13.95"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="48,-18"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="4"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="4"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="stereotype">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#ITEM#</dia:string>
+ </dia:attribute>
+ </dia:object>
+ </dia:layer>
+</dia:diagram>
Copied: trunk/gnue-packages/supply-chain/billing/billing.gcd (from rev 6902,
trunk/gnue-packages/finance/invoice/invoice.gcd)
===================================================================
--- trunk/gnue-packages/finance/invoice/invoice.gcd 2005-01-14 08:37:55 UTC
(rev 6902)
+++ trunk/gnue-packages/supply-chain/billing/billing.gcd 2005-01-15
23:26:01 UTC (rev 6903)
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- BILLING Module
+
+ Copyright 2004 Free Software Foundation
+
+ This file is part of GNU Enterprise.
+
+ GNU Enterprise is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License as
+ published by the Free Software Foundation; either version 2 of
+ the License, or (at your option) any later version.
+
+ GNU Enterprise 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 General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Enterprise; see the file COPYING. If not, write to
+ the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ $Id$ -->
+
+<module name="BILLING">
+
+ <class name="Company" comment="Seller company's data">
+ <property name="code" type="string(8)" nullable="False"
comment=""/>
+ <property name="name" type="string(35)"
comment=""/>
+ <property name="addr1" type="string(35)"
comment=""/>
+ <property name="addr2" type="string(35)"
comment=""/>
+ <property name="addr3" type="string(35)"
comment=""/>
+ <property name="phone" type="string(35)"
comment=""/>
+ <property name="taxID" type="string(35)"
comment=""/>
+ <property name="currency" type="string(3)"
comment="base currency"/>
+ <property name="accBank" type="string(35)"
comment="Name of bank"/>
+ <property name="accNum" type="string(35)"
comment=""/>
+ <property name="numPrint" type="number(2)"
comment="number of invoices printed by default"/>
+ </class>
+
+ <!--**************************************************
+ Stores information about methods and terms of payment.
+ Also used for calculating the invoice's due date.
+ ***************************************************-->
+ <class name="PaymentMethod" comment="Payment methods and terms">
+ <property name="name" type="string(35)"
comment="" />
+ <property name="channel" type="string(35)" nullable="False"
comment="cash, transfer, etc." />
+ <property name="dueDays" type="number(3)" nullable="False"
comment="number of days before payment is due" />
+ </class>
+
+
+ <!--***********************************************
+ Represents an invoice item, ie a line on an invoice
+ ************************************************-->
+ <class name="Item" comment="One item (line) on an invoice">
+ <property name="head" type="BILLING_Head" nullable="False"
comment="link with invoice head" />
+ <property name="product" type="ITEM_Item" nullable="False"
comment="" />
+ <property name="quantity" type="number(10,2)" nullable="False"
comment="" />
+ <property name="note" type="string"
comment="" />
+
+ <property name="valueNet" type="number(10,2)" >
+ return self.product and (self.quantity * self.product.SALES_price) or 0
+ </property>
+
+ <property name="valueVAT" type="number(10,2)" >
+ return self.product and
self.product.SALES_vat.TAX_vatFromNet(inNet=self.valueNet) or 0
+ </property>
+
+ <property name="valueGross" type="number(10,2)" >
+ return self.product and
self.product.SALES_vat.TAX_grossFromNet(inNet=self.valueNet) or 0
+ </property>
+ </class>
+
+
+ <!--**********************
+ Represents an invoice head
+ ***********************-->
+ <!--
+ <class name="Head" filter="FILTER_Seller" comment="Invoice head">
+ -->
+ <class name="Head" comment="Invoice head">
+ <property name="number" type="string(20)"
nullable="False" comment="invoice number" />
+ <property name="seller" type="BILLING_Company"
nullable="False" comment="who wants money..." />
+ <property name="buyer" type="ORG_Org"
nullable="False" comment="who pays..." />
+ <property name="paymentMethod" type="BILLING_PaymentMethod"
nullable="False" comment="" />
+ <property name="dateDelivery" type="date"
nullable="False" comment="" />
+ <property name="dateIssued" type="date"
nullable="False" comment="Date when invoice was generated" />
+ <property name="dateDue" type="date"
nullable="False" comment="Date the payment is due" />
+ <property name="note" type="string"
comment="" />
+ <property name="printed" type="number(3)"
comment="# of printed copies" />
+ <property name="reverted" type="boolean"
comment="If true, no more reverted copies can be made" />
+
+ <property name="totalNet" type="number(10,2)" >
+ items = find('BILLING_Item', {'BILLING_head':self.gnue_id}, [],
['BILLING_valueNet'])
+ return sum([i.BILLING_valueNet for i in items])
+ </property>
+
+ <property name="totalVAT" type="number(10,2)" >
+ items = find('BILLING_Item', {'BILLING_head':self.gnue_id}, [],
['BILLING_valueVAT'])
+ return sum([i.BILLING_valueVAT for i in items])
+ </property>
+
+ <property name="totalGross" type="number(10,2)" >
+ items = find('BILLING_Item', {'BILLING_head':self.gnue_id}, [],
['BILLING_valueGross'])
+ return sum([i.BILLING_valueGross for i in items])
+ </property>
+
+ <!--******************************************************
+ Return a string (holding the name or only an empty string)
+ each time so that grid form works OK.
+ *******************************************************-->
+ <property name="buyerName" type="string(35)" >
+ return self.buyer and self.buyer.ORG_shortName or ''
+ </property>
+
+ <!--******************************************************************
+ Return a string ('REVERTED' or empty) for the invoice report to print.
+ This way the same report can print both normal and reverted invoices.
+ *******************************************************************-->
+ <property name="revertedString" type="string">
+ return self.reverted and "REVERTED" or ''
+ </property>
+
+ <!--************************************
+ Returns summed Net, VAT or Gross values,
+ filtered by VAT rate
+ *************************************-->
+ <procedure name="sumByRate" type="number(10,2)">
+ <parameter name="type" type="string(5)" comment="Net, VAT or Gross"/>
+ <parameter name="rate" type="number(10,2)"/>
+ SumTypes = {
+ 'Net':'BILLING_valueNet', \
+ 'VAT':'BILLING_valueVAT', \
+ 'Gross':'BILLING_valueGross'
+ }
+
+ try:
+ items = find('BILLING_Item', \
+ {'BILLING_head':self.gnue_id,
'BILLING_product.SALES_vat.TAX_rate':rate}, \
+ [], \
+ [SumTypes[type]])
+
+ return sum([eval('i.' + SumTypes[type]) for i in items])
+ except KeyError:
+ return 0
+ </procedure>
+
+ <!--*******************
+ Reverts a given invoice
+ ********************-->
+ <procedure name="revert" type="string(20)">
+ <parameter name="invId" type="id"/>
+ invList = find('BILLING_Head', {'gnue_id': invId}, [], [])
+ try:
+ invOrig = invList[0]
+ if invOrig.BILLING_reverted == False:
+ invOrig.BILLING_reverted = True #cannot make >1 reverted invoices
+
+ invNew = new('BILLING_Head')
+ invNew.BILLING_seller = invOrig.BILLING_seller
+ invNew.BILLING_buyer = invOrig.BILLING_buyer
+ invNew.BILLING_paymentMethod = invOrig.BILLING_paymentMethod
+ invNew.BILLING_dateDelivery = invOrig.BILLING_dateDelivery
+ invNew.BILLING_dateIssued = invOrig.BILLING_dateIssued
+ invNew.BILLING_dateDue = invOrig.BILLING_dateDue
+ invNew.BILLING_note = invOrig.BILLING_note
+ invNew.BILLING_printed = 0
+ invNew.BILLING_reverted = True #cannot revert a reverted
invoice...
+
+ invItems = find('BILLING_Item', {'BILLING_head': invOrig.gnue_id},
[], [])
+ for item in invItems:
+ itemNew = new('BILLING_Item')
+ itemNew.BILLING_head = invNew.gnue_id
+ itemNew.BILLING_product = item.BILLING_product
+ itemNew.BILLING_quantity = -1 * item.BILLING_quantity
+ itemNew.BILLING_note = item.BILLING_note
+
+ session.commit()
+ return invNew.BILLING_number
+ else:
+ return None
+ except:
+ return None
+ </procedure>
+
+ <!--******************************************************
+ Calculates date due based on payment method's day property
+ and the current dateIssued property of the invoice.
+ *******************************************************-->
+ <procedure name="calcDateDue" type="date" >
+ import mx.DateTime
+ method = self.paymentMethod
+ issued = self.dateIssued
+ if (method is not None) and (issued is not None):
+ dateDue = issued +
mx.DateTime.RelativeDate(days=method.BILLING_dueDays)
+ self.dateDue = dateDue.date
+ return dateDue.date
+ else:
+ self.dateDue = mx.DateTime.today().date
+ return None
+ </procedure>
+
+ <!--***********************************************
+ Generates a new invoice number.
+ Very basic approach, everyone should make this work
+ according to her/his needs.
+ ************************************************-->
+ <procedure name="newNumber" type="string(20)" >
+ invoices = find('BILLING_Head', {}, ['BILLING_number'],
['BILLING_number'])
+
+ if len(invoices):
+ newNum = str(int(invoices[-1].BILLING_number) + 1).zfill(5)
+ else:
+ newNum = '00001' #First invoice...
+
+ return newNum
+ </procedure>
+
+ <!--*********
+ Sanity checks
+ **********-->
+ <procedure name="OnValidate">
+ import mx.DateTime
+
+ if self.number is None:
+ self.number = self.newNumber()
+ print 'BILLING_Head::OnValidate - number set to %s' % self.number
+
+ if self.paymentMethod is None:
+ #TODO: fill paymentMethod with some reasonable value
+ pass
+
+ if self.dateIssued is None:
+ self.dateIssued = mx.DateTime.today().date
+ print 'BILLING_Head::OnValidate - dateIssued set to %s' %
self.dateIssued
+
+ if self.dateDue is None:
+ self.dateDue = self.calcDateDue()
+ print 'BILLING_Head::OnValidate - dateDue set to %s' % self.dateDue
+
+ if self.dateDelivery is None:
+ self.dateDelivery = mx.DateTime.today().date
+ print 'BILLING_Head::OnValidate - dateDelivery set to %s' %
self.dateDelivery
+ </procedure>
+
+ <!--******************
+ Setting default values
+ *******************-->
+ <procedure name="OnInit">
+ import mx.DateTime
+ self.dateIssued = mx.DateTime.today().date
+ print 'BILLING_Head::OnInit - dateIssued set to %s' % self.dateIssued
+
+ #NULL does not behave well on the form, so better set it to '0'.
+ self.printed = 0
+
+ self.reverted = False
+
+ sellerList = find('BILLING_Company', {'BILLING_code': '1'}, [], [])
+ if len(sellerList):
+ self.seller = sellerList[0]
+ print 'BILLING_Head::OnInit - Seller is %s' % self.seller.BILLING_name
+ </procedure>
+
+ </class>
+</module>
Copied: trunk/gnue-packages/supply-chain/billing/billing.png (from rev 6902,
trunk/gnue-packages/finance/invoice/invoice.png)
Copied: trunk/gnue-packages/supply-chain/billing/rules.txt (from rev 6902,
trunk/gnue-packages/finance/invoice/rules.txt)
===================================================================
--- trunk/gnue-packages/finance/invoice/rules.txt 2005-01-14 08:37:55 UTC
(rev 6902)
+++ trunk/gnue-packages/supply-chain/billing/rules.txt 2005-01-15 23:26:01 UTC
(rev 6903)
@@ -0,0 +1,24 @@
+An invoice should contain the following data to be considered valid by tax
authorities:
+
+-invoice number [BILLING_Head.number]
+-the name, address and tax ID of the issuer of the invoice
[BILLING_Head.BILLING_seller.BILLING_name],
[BILLING_Head.BILLING_seller.BILLING_addr1-3],
[BILLING_Head.BILLING_seller.BILLING_taxID]
+-the name and address of the buyer [BILLING_Head.buyer.PARTY_name],
[BILLING_Head.buyer.PARTY_address]
+-delivery date [BILLING_Head.dateDelivery]
+-date when the invoice was issued [BILLING_Head.dateIssued]
+-payment method and due date [BILLING_Head.paymentMethod]
+-product (service) name, identification number that is of good quality and
provides enough reference defined by law [BILLING_Item.product.ITEM_name]
+-product (service) quantity unit and quantity [BILLING_Item.product]
+-product (service) unit price without taxes [BILLING_Item.product]
+-product (service) price by entry and summed, both without taxes
[BILLING_Item.valueNet]
+-percent value of tax charged [BILLING_Item.product]
+-the sum of taxes charged by entry and summed [BILLING_Item.valueVAT]
+-product (service) price containing taxes, by entry and summed
[BILLING_Item.valueGross]
+-total invoice amount [BILLING_Head.valueTotal]
+
+
+Additional rules:
+
+-The computer should provide invoice numbers strictly continously, without
missing or repeating/reusing an invoice number.
+-Each page of each copy of a computer-generated invoice should contain page
numbers, and the number of copies should also be stated on the invoice.
+-In each date or date-like data on an invoice the year section of a date
should be stored and displayed in full lenght, ie 4 numeric characters.
+-If an invoice is too long to fit on one page, then it should continue on a
spare page. A spare page should contain the typographic thread-mark of the
invoice, the actual page number, and all spare pages should be exemplified.
Modified: trunk/gnue-packages/supply-chain/doc/inventory.txt
===================================================================
--- trunk/gnue-packages/supply-chain/doc/inventory.txt 2005-01-14 08:37:55 UTC
(rev 6902)
+++ trunk/gnue-packages/supply-chain/doc/inventory.txt 2005-01-15 23:26:01 UTC
(rev 6903)
@@ -25,3 +25,8 @@
like floors, isles, stands, columns, bins, etc.
+Relations:
+ input items from Receiving
+ output items for Manufacturing
+ Shipping
+ output replenish signal to Purchase Order
Copied: trunk/gnue-packages/supply-chain/inventory.gcd (from rev 6889,
trunk/gnue-packages/supply-chain/inventory/inventory.gcd)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r6903 - in trunk/gnue-packages: finance supply-chain supply-chain/billing supply-chain/doc,
kilo <=