commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

r170 - in gnue-invoice: . forms schema


From: kilo
Subject: r170 - in gnue-invoice: . forms schema
Date: Fri, 10 Dec 2004 04:13:40 -0600 (CST)

Author: kilo
Date: 2004-12-10 04:13:38 -0600 (Fri, 10 Dec 2004)
New Revision: 170

Modified:
   gnue-invoice/forms/INV_grid.gfd
   gnue-invoice/news
   gnue-invoice/schema/invoice.gcd
Log:
GNUe Invoice.
Realized reverting an invoice.

Modified: gnue-invoice/forms/INV_grid.gfd
===================================================================
--- gnue-invoice/forms/INV_grid.gfd     2004-12-10 08:19:26 UTC (rev 169)
+++ gnue-invoice/forms/INV_grid.gfd     2004-12-10 10:13:38 UTC (rev 170)
@@ -24,75 +24,95 @@
      $Id$ -->
 
 <form title="Invoices">
-  <options/>
-  <datasource name="dtsINV_Head" connection="invoice" requery="True"
-              table="INV_Head"/>
+
   <trigger type="ON-STARTUP" name="Trigger1">
     form.setFeature('GUI:MENUBAR:SUPPRESS', 1)
     #form.setFeature('GUI:TOOLBAR:SUPPRESS', 1)
     #form.setFeature('GUI:STATUSBAR:SUPPRESS', 1)
   </trigger>
+  
+  <datasource name="dts" connection="invoice" requery="True" table="INV_Head"
+      prequery="Y"/>
+  
   <logic>
-    <block name="blkINV_Head" datasource="dtsinv_head" rows="8">
-      <!--<field name="fldInvBuyerName" field="INV_buyer.PARTY_name" 
maxLength="35" readonly="Y"/>-->
-      <field name="fldInvBuyerName" field="INV_buyerName" maxLength="35" 
readonly="Y"/>
-      <field name="fldInvDatedelivery" field="INV_dateDelivery" maxLength="10"
-             readonly="Y" typecast="date"/>
-      <field name="fldInvDateissued" field="INV_dateIssued" maxLength="10"
-             readonly="Y" typecast="date"/>
-      <field name="fldInvNumber" field="INV_number" maxLength="20"
-             readonly="Y"/>
-      <field name="fldInvPaymentmethod" field="INV_paymentMethod"
-             maxLength="32" readonly="Y"/>
-      <field name="fldInvValuetotalgross" field="INV_valueTotalGross"
-             maxLength="10" readonly="Y" typecast="number"/>
-      <field name="fldInvValuetotalnet" field="INV_valueTotalNet"
-             maxLength="10" readonly="Y" typecast="number"/>
-      <field name="fldInvValuetotalvat" field="INV_valueTotalVAT"
-             maxLength="10" readonly="Y" typecast="number"/>
+    <block name="blk"   datasource="dts"    rows="8">
+      <field name="fldGnueid"       field="gnue_id"             maxLength="32"
+          readonly="Y"/>
+      <!--<field name="fldBuyerName"    field="INV_buyer.ORG_shortName"
+          maxLength="35"  readonly="Y"/>-->
+      <field name="fldBuyerName"    field="INV_buyerName"       maxLength="35"
+          readonly="Y"/>
+      <field name="fldDatedelivery" field="INV_dateDelivery"    maxLength="10"
+          readonly="Y"  typecast="date"/>
+      <field name="fldDateissued"   field="INV_dateIssued"      maxLength="10"
+          readonly="Y"  typecast="date"/>
+      <field name="fldNumber"       field="INV_number"          maxLength="20"
+          readonly="Y"/>
+      <field name="fldPaymentmeth"  field="INV_paymentMethod"   maxLength="32"
+          readonly="Y"/>
+      <field name="fldTotalgross"   field="INV_valueTotalGross" maxLength="10"
+          readonly="Y"  typecast="number"/>
+      <field name="fldTotalnet"     field="INV_valueTotalNet"   maxLength="10"
+          readonly="Y"  typecast="number"/>
+      <field name="fldTotalvat"     field="INV_valueTotalVAT"   maxLength="10"
+          readonly="Y"  typecast="number"/>
     </block>
-</logic>
-  <layout xmlns:Char="GNUe:Layout:Char" Char:height="11" Char:width="100">
-    <page name="Page1">
-      <label name="lblInv Number:" Char:height="1" Char:width="10" Char:x="1"
-             Char:y="1" alignment="center" text="Number:"/>
-      <entry name="entInvNumber" Char:height="1" Char:width="10" Char:x="1"
-             Char:y="2" block="blkINV_Head" field="fldInvNumber" label=""/>
-      <label name="lblInv BuyerName:" Char:height="1" Char:width="32" 
Char:x="12"
-             Char:y="1" alignment="center" text="Buyer:"/>
-      <entry name="entInvBuyerName" Char:height="1" Char:width="32" Char:x="12"
-             Char:y="2" block="blkINV_Head" field="fldInvBuyerName" label=""/>
-      <label name="lblInv Dateissued:" Char:height="1" Char:width="10"
-             Char:x="45" Char:y="1" alignment="center" text="Issued:"/>
-      <entry name="entInvDateissued" Char:height="1" Char:width="10"
-             Char:x="45" Char:y="2" block="blkINV_Head" 
field="fldInvDateissued" label=""/>
-      <label name="lblInv Datedelivery:" Char:height="1" Char:width="10"
-             Char:x="56" Char:y="1" alignment="center" text="Delivery:"/>
-      <entry name="entInvDatedelivery" Char:height="1" Char:width="10"
-             Char:x="56" Char:y="2" block="blkINV_Head" 
field="fldInvDatedelivery"
-             label=""/>
-      <label name="lblInv Valuetotalgross:" Char:height="1" Char:width="10"
-             Char:x="67" Char:y="1" alignment="center" text="Gross:"/>
-      <entry name="entInvValuetotalgross" Char:height="1" Char:width="10"
-             Char:x="67" Char:y="2" block="blkINV_Head" 
field="fldInvValuetotalgross"
-             label=""/>
-      <label name="lblInv Valuetotalnet:" Char:height="1" Char:width="10"
-             Char:x="78" Char:y="1" alignment="center" text="Net:"/>
-      <entry name="entInvValuetotalnet" Char:height="1" Char:width="10"
-             Char:x="78" Char:y="2" block="blkINV_Head" 
field="fldInvValuetotalnet"
-             label=""/>
-      <label name="lblInv Valuetotalvat:" Char:height="1" Char:width="10"
-             Char:x="89" Char:y="1" alignment="center" text="Vat:"/>
-      <entry name="entInvValuetotalvat" Char:height="1" Char:width="10"
-             Char:x="89" Char:y="2" block="blkINV_Head" 
field="fldInvValuetotalvat"
-             label=""/>
-      <button name="btnAdd" Char:height="1" Char:width="6" Char:x="3"
-              Char:y="10" label="Add...">
-        <trigger type="ON-ACTION" name="btnAddTrigger"><![CDATA[
+  </logic>
+
+  <layout xmlns:c="GNUe:Layout:Char" c:height="11" c:width="100">
+    <page>
+      <label name="lblNumber"        c:height="1" c:width="10" c:x="1"  c:y="1"
+          alignment="center" text="Number:"/>
+      <label name="lblBuyerName"     c:height="1" c:width="32" c:x="12" c:y="1"
+          alignment="center" text="Buyer:"/>
+      <label name="lblDateissued"    c:height="1" c:width="10" c:x="45" c:y="1"
+          alignment="center" text="Issued:"/>
+      <label name="lblDatedelivery"  c:height="1" c:width="10" c:x="56" c:y="1"
+          alignment="center" text="Delivery:"/>
+      <label name="lblTotalgross:"   c:height="1" c:width="10" c:x="67" c:y="1"
+          alignment="center" text="Gross:"/>
+      <label name="lblTotalnet:"     c:height="1" c:width="10" c:x="78" c:y="1"
+          alignment="center" text="Net:"/>
+      <label name="lblTotalvat:"     c:height="1" c:width="10" c:x="89" c:y="1"
+          alignment="center" text="Vat:"/>
+          
+      <entry name="entNumber"        c:height="1" c:width="10" c:x="1"  c:y="2"
+          block="blk" field="fldNumber"/>
+      <entry name="entBuyerName"     c:height="1" c:width="32" c:x="12" c:y="2"
+          block="blk" field="fldBuyerName"/>
+      <entry name="entDateissued"    c:height="1" c:width="10" c:x="45" c:y="2"
+          block="blk" field="fldDateissued"/>
+      <entry name="entDatedelivery"  c:height="1" c:width="10" c:x="56" c:y="2"
+          block="blk" field="fldDatedelivery"/>
+      <entry name="entTotalgross"    c:height="1" c:width="10" c:x="67" c:y="2"
+          block="blk" field="fldTotalgross"/>
+      <entry name="entTotalnet"      c:height="1" c:width="10" c:x="78" c:y="2"
+          block="blk" field="fldTotalnet"/>
+      <entry name="entTotalvat"      c:height="1" c:width="10" c:x="89" c:y="2"
+          block="blk" field="fldTotalvat"/>
+             
+      <button name="btnNew"          c:height="1" c:width="6"  c:x="3"  
c:y="10"
+          label="New...">
+        <trigger type="ON-ACTION" name="btnNewTrigger">
           location = "INV_Head.gfd"
-          form.runForm(location)
-        ]]></trigger>
+          runForm(location)
+        </trigger>
       </button>
+      
+      <button name="btnRevert"       c:height="1" c:width="6"  c:x="13" 
c:y="10"
+          label="Revert">
+        <trigger type="ON-ACTION" name="btnRevertTrigger">
+          ret = blk.call('INV_revert', {'invId': blk.fldGnueid.get()})
+          if ret == True and not blk.isSaved():
+            print "Saving reverted invoice..."
+            blk.commit()
+          else:
+            print "Cannot revert reverted invoice!"
+            blk.rollback()
+          dts.createResultSet()
+        </trigger>
+      </button>
     </page>
   </layout>
+  
 </form>

Modified: gnue-invoice/news
===================================================================
--- gnue-invoice/news   2004-12-10 08:19:26 UTC (rev 169)
+++ gnue-invoice/news   2004-12-10 10:13:38 UTC (rev 170)
@@ -2,6 +2,9 @@
 *************************
 GNUe Invoice - Project CV
 *************************
+New features / changes by 2004.12.10
+* Can revert an invoice now.
+
 New features / changes by 2004.12.09
 * Merged GCD files back to main GNUe Packages.
 

Modified: gnue-invoice/schema/invoice.gcd
===================================================================
--- gnue-invoice/schema/invoice.gcd     2004-12-10 08:19:26 UTC (rev 169)
+++ gnue-invoice/schema/invoice.gcd     2004-12-10 10:13:38 UTC (rev 170)
@@ -74,6 +74,7 @@
     <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="valueTotalNet"  type="number(10,2)" >
       items = find('INV_Item', {'INV_head':self.gnue_id}, [], ['INV_valueNet'])
@@ -131,6 +132,44 @@
         return 0
     </procedure>
     
+    <!--*******************
+    Reverts a given invoice
+    ********************-->
+    <procedure name="revert"    type="boolean">
+      <parameter name="invId"   type="id"/>
+      invList = find('INV_Head', {'gnue_id': invId}, [], [])
+      try:
+        invOrig = invList[0]
+        if invOrig.INV_reverted == False:
+          invOrig.INV_reverted = True   #cannot make >1 reverted invoices
+
+          invNew = new('INV_Head')
+          invNew.INV_seller         = invOrig.INV_seller
+          invNew.INV_buyer          = invOrig.INV_buyer
+          invNew.INV_paymentMethod  = invOrig.INV_paymentMethod
+          invNew.INV_dateDelivery   = invOrig.INV_dateDelivery
+          invNew.INV_dateIssued     = invOrig.INV_dateIssued
+          invNew.INV_dateDue        = invOrig.INV_dateDue
+          invNew.INV_note           = invOrig.INV_note
+          invNew.INV_printed        = 0
+          invNew.INV_reverted       = True  #cannot revert a reverted 
invoice...
+
+          invItems = find('INV_Item', {'INV_head': invOrig.gnue_id}, [], [])
+          for item in invItems:
+            itemNew                 = new('INV_Item')
+            itemNew.INV_head        = invNew.gnue_id
+            itemNew.INV_product     = item.INV_product
+            itemNew.INV_quantity    = -1 * item.INV_quantity
+            itemNew.INV_note        = item.INV_note
+
+          session.commit()
+          return True
+        else:
+          return False
+      except:
+        return False
+    </procedure>
+
     <!--******************************************************
     Calculates date due based on payment method's day property
     and the current dateIssued property of the invoice.
@@ -208,6 +247,8 @@
       if len(sellerList):
         self.seller = sellerList[0]
         print 'INV_Head::OnInit - Seller is %s' % self.seller.ORG_shortName
+        
+      self.reverted = False
     </procedure>
 
   </class>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]