commit-gnue
[Top][All Lists]
Advanced

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

r177 - gnue-invoice/forms


From: kilo
Subject: r177 - gnue-invoice/forms
Date: Mon, 3 Jan 2005 06:52:01 -0600 (CST)

Author: kilo
Date: 2005-01-03 06:52:00 -0600 (Mon, 03 Jan 2005)
New Revision: 177

Modified:
   gnue-invoice/forms/INV_Head.gfd
   gnue-invoice/forms/INV_grid.gfd
Log:
GNUe Invoice.
More consistent and simple naming in forms.
Automatic printing of invoice when appropriate.
Possibility to print invoice any time.

Modified: gnue-invoice/forms/INV_Head.gfd
===================================================================
--- gnue-invoice/forms/INV_Head.gfd     2005-01-03 12:49:14 UTC (rev 176)
+++ gnue-invoice/forms/INV_Head.gfd     2005-01-03 12:52:00 UTC (rev 177)
@@ -37,8 +37,8 @@
   <!--*****************************************************
                         Datasources
   ******************************************************-->
-  <datasource name="dts" connection="invoice" table="INV_Head"/>
-  <datasource name="dts_ORG_OrgBuyer" connection="invoice" prequery="Y"
+  <datasource name="dts"    connection="invoice"    table="INV_Head"/>
+  <datasource name="dts_ORG_OrgBuyer"   connection="invoice" prequery="Y"
               table="ORG_Org"/>
   <datasource name="dts_INV_PaymentMethod" connection="invoice" prequery="Y"
               table="INV_PaymentMethod"/>
@@ -47,73 +47,81 @@
   <datasource name="dts_ITEM_Item" connection="invoice" prequery="Y"
               table="ITEM_Item"/>
   <datasource name="dtsITEM_Item" connection="invoice" table="ITEM_Item"/>
+  <datasource name="dtsSeller" connection="invoice" table="INV_Company"
+      prequery="True"/>
 
 
   <logic>
     <!--***************************************************
                         Invoice head
     ****************************************************-->
-    <block name="blkINV_Head" datasource="dts">
-      <field name="fldInvNumber" field="INV_number" maxLength="20"
-             readonly="Y"/>
-      <field name="fldInvBuyer" field="INV_buyer" 
fk_description="ORG_shortName"
-             fk_key="gnue_id" fk_source="dts_ORG_OrgBuyer" maxLength="32"/>
-      <field name="fldInvPaymentmethod" field="INV_paymentMethod"
-             fk_description="INV_name" fk_key="gnue_id"
-             fk_source="dts_INV_PaymentMethod" maxLength="32">
+    <block name="blkHead"   datasource="dts">
+      <field name="fldNumber"       field="INV_number"          maxLength="20"
+          readonly="Y"/>
+      <field name="fldBuyer"        field="INV_buyer"           maxLength="32"
+          fk_source="dts_ORG_OrgBuyer"  fk_key="gnue_id"
+          fk_description="ORG_shortName"/>
+      <field name="fldPaymentmeth"  field="INV_paymentMethod"   maxLength="32"
+             fk_source="dts_INV_PaymentMethod"  fk_key="gnue_id"
+             fk_description="INV_name">
 <!--
         <trigger type="POST-CHANGE" name="postchange" src="calcDueDate"/>
 -->
       </field>
-      <field name="fldInvDatedelivery" field="INV_dateDelivery" maxLength="10"
-             typecast="date"/>
-      <field name="fldInvDateissued" field="INV_dateIssued" maxLength="10"
-             typecast="date">
+      <field name="fldDatedelivery" field="INV_dateDelivery"    maxLength="10"
+          typecast="date"/>
+      <field name="fldDateissued"   field="INV_dateIssued"      maxLength="10"
+          typecast="date">
 <!--
         <trigger type="POST-CHANGE" name="postchange" src="calcDueDate"/>
 -->
       </field>
-      <field name="fldInvDatedue" field="INV_dateDue" maxLength="10"
-             typecast="date"/>
-      <field name="fldInvNote" field="INV_note" maxLength="255"/>
-      <field name="fldInvPrinted" field="INV_printed" maxLength="3"
-             readonly="Y" typecast="number"/>
-      <field name="fldInvValuetotalGross" field="INV_valueTotalGross"
-             maxLength="10" typecast="number"/>
+      <field name="fldDatedue"      field="INV_dateDue"         maxLength="10"
+          typecast="date"/>
+      <field name="fldNote"         field="INV_note"           
maxLength="255"/>
+      <field name="fldPrinted"      field="INV_printed"         maxLength="3"
+          readonly="Y"  typecast="number"/>
+      <field name="fldTotalGross"   field="INV_totalGross" maxLength="10"
+          typecast="number"/>
     </block>
 
 
     <!--***************************************************
                       Invoice items (lines)
     ****************************************************-->
-    <block name="blkINV_Item" datasource="dtsinv_item" rows="5"
-             autoCreate="Y" autoNextRecord="Y">
-      <field name="fldInvHead" field="INV_head" maxLength="32" />
-      <field name="fldInvProduct" field="INV_product"
-             fk_description="ITEM_shortName" fk_key="gnue_id"
-             fk_source="dts_ITEM_Item" maxLength="32"/>
-      <field name="fldInvProductPrice" field="INV_product"
-             fk_description="SALES_price" fk_key="gnue_id"
-             fk_source="dts_ITEM_Item" readonly="Y" />
-      <field name="fldInvQuantity" field="INV_quantity" maxLength="10"
-             typecast="number" >
+    <block name="blkItem"   datasource="dtsinv_item"    rows="5"
+        autoCreate="Y"  autoNextRecord="Y">
+      <field name="fldHead"         field="INV_head"            
maxLength="32"/>
+      <field name="fldProduct"      field="INV_product"         maxLength="32"
+          fk_source="dts_ITEM_Item" fk_key="gnue_id"
+          fk_description="ITEM_shortName"/>
+      <field name="fldProductPrice" field="INV_product"
+          fk_source="dts_ITEM_Item" fk_key="gnue_id"
+          fk_description="SALES_price"  readonly="Y" />
+      <field name="fldQuantity"     field="INV_quantity"        maxLength="10"
+          typecast="number" >
         <!--Count invoice total -->
         <trigger type="POST-CHANGE" name="onchange">
           #Calling a calculated property will cause it to refresh
-          blkINV_Item.call("INV_getvalueGross", {})
-          blkINV_Head.call("INV_getvalueTotalGross", {})
-          #blkINV_Item.update()
-          #blkINV_Head.update()
+          blkItem.call("INV_getvalueGross", {})
+          blkHead.call("INV_gettotalGross", {})
+          #blkItem.update()
+          #blkHead.update()
         </trigger>
       </field>
-      <field name="fldInvUnit" field="INV_product"
-             fk_description="ITEM_unit.ITEM_value" fk_key="gnue_id"
-             fk_source="dts_ITEM_Item" readonly="Y" />
-      <field name="fldInvValueGross" field="INV_valueGross"
-             typecast="number" readonly="Y"/>
-      <field name="fldInvNote" field="INV_note" />
+      <field name="fldUnit"         field="INV_product"
+          fk_source="dts_ITEM_Item" fk_key="gnue_id"
+          fk_description="ITEM_unit.ITEM_value" readonly="Y" />
+      <field name="fldValueGross"   field="INV_valueGross"
+          typecast="number" readonly="Y"/>
+      <field name="fldNote"         field="INV_note"           
maxLength="255"/>
     </block>
 
+    <block name="blkSeller" datasource="dtsSeller">
+      <field name="fldNumPrint"     field="INV_numPrint"        maxLength="10"
+          readonly="Y"  typecast="number"/>
+    </block>
+    
     <!--***************************************************
             Block used for displaying wee luvly goat
     ****************************************************-->
@@ -133,91 +141,91 @@
           block="blkFree" field="img" fit="both"/>
       <label name="lblNumber:" c:height="1" c:width="7" c:x="1" c:y="1"
           text="Number:"/>
-      <entry name="entInvNumber" c:height="1" c:width="20" c:x="16" c:y="1"
-          block="blkINV_Head" field="fldInvNumber" style="label"/>
+      <entry name="entNumber" c:height="1" c:width="20" c:x="16" c:y="1"
+          block="blkHead" field="fldNumber" style="label"/>
       <label name="lblBuyer:" c:height="1" c:width="6" c:x="1" c:y="2"
           text="Buyer:"/>
-      <entry name="entInvBuyer" c:height="1" c:width="28" c:x="16" c:y="2"
-          block="blkINV_Head" field="fldInvBuyer" style="dropdown"/>
+      <entry name="entBuyer" c:height="1" c:width="28" c:x="16" c:y="2"
+          block="blkHead" field="fldBuyer" style="dropdown"/>
       <button name="btnEditBuyer" c:height="1" c:width="7" c:x="44" c:y="2"
           label="Edit...">
         <trigger type="ON-ACTION" name="btnEditBuyerTrigger">
-          params = {'id': blkINV_Head.fldInvBuyer.get() or ''}
+          params = {'id': blkHead.fldBuyer.get() or ''}
           form.runForm('ORG_Org.gfd', params)
-          blkINV_Head.fldInvBuyer.resetForeignKey()
+          blkHead.fldBuyer.resetForeignKey()
         </trigger>
       </button>
       <label name="lblPaymentmethod:" c:height="1" c:width="15" c:x="1" c:y="3"
           text="Payment method:"/>
-      <entry name="entInvPaymentmethod" c:height="1" c:width="28" c:x="16" 
c:y="3"
-          block="blkINV_Head" field="fldInvPaymentmethod" style="dropdown"/>
+      <entry name="entPaymentmeth" c:height="1" c:width="28" c:x="16" c:y="3"
+          block="blkHead" field="fldPaymentmeth" style="dropdown"/>
       <button name="btnEditPaymMeth" c:height="1" c:width="7" c:x="44" c:y="3"
           label="Edit...">
         <trigger type="ON-ACTION" name="btnEditPaymentMethodTrigger">
-          params = {'id': blkINV_Head.fldInvPaymentmethod.get() or ''}
+          params = {'id': blkHead.fldPaymentmeth.get() or ''}
           form.runForm('INV_PaymentMethod.gfd', params)
-          blkINV_Head.fldInvPaymentmethod.resetForeignKey()
+          blkHead.fldPaymentmeth.resetForeignKey()
         </trigger>
       </button>
       <label name="lblDateissued:" c:height="1" c:width="12" c:x="1" c:y="4"
           text="Date issued:"/>
-      <entry name="entInvDateIssued" c:height="1" c:width="10" c:x="16" c:y="4"
-          block="blkINV_Head" field="fldInvDateissued" />
+      <entry name="entDateIssued" c:height="1" c:width="10" c:x="16" c:y="4"
+          block="blkHead" field="fldDateissued" />
       <label name="lblDatedue:" c:height="1" c:width="7" c:x="27" c:y="4"
           text="Due by:"/>
-      <entry name="entInvDatedue" c:height="1" c:width="10" c:x="35" c:y="4"
-          block="blkINV_Head" field="fldInvDatedue" />
+      <entry name="entDatedue" c:height="1" c:width="10" c:x="35" c:y="4"
+          block="blkHead" field="fldDatedue" />
       <label name="lblDatedelivery:" c:height="1" c:width="14" c:x="46" c:y="4"
           text="Delivery by:"/>
-      <entry name="entInvDatedelivery" c:height="1" c:width="10" c:x="59" 
c:y="4"
-          block="blkINV_Head" field="fldInvDatedelivery" />
+      <entry name="entDatedelivery" c:height="1" c:width="10" c:x="59" c:y="4"
+          block="blkHead" field="fldDatedelivery" />
       <label name="lblNote:" c:height="1" c:width="5" c:x="1" c:y="5" 
text="Note:"/>
-      <entry name="entInvNote" c:height="1" c:width="53" c:x="16" c:y="5"
-          block="blkINV_Head" field="fldInvNote" />
+      <entry name="entNote" c:height="1" c:width="53" c:x="16" c:y="5"
+          block="blkHead" field="fldNote" />
       <label name="lblPrinted:" c:height="1" c:width="8" c:x="1" c:y="6"
           text="Printed:"/>
-      <entry name="entInvPrinted" c:height="1" c:width="3" c:x="16" c:y="6"
-          block="blkINV_Head" field="fldInvPrinted" style="label"/>
-      <label name="lblValuetotalGross:" c:height="1" c:width="12" c:x="1" 
c:y="7"
+      <entry name="entPrinted" c:height="1" c:width="3" c:x="16" c:y="6"
+          block="blkHead" field="fldPrinted" style="label"/>
+      <label name="lblTotalGross:" c:height="1" c:width="12" c:x="1" c:y="7"
           text="Value total:"/>
-      <entry name="entInvValuetotalGross" c:height="1" c:width="10" c:x="16" 
c:y="7"
-          block="blkINV_Head" field="fldInvValuetotalGross" style="label"/>
+      <entry name="entTotalGross" c:height="1" c:width="10" c:x="16" c:y="7"
+          block="blkHead" field="fldTotalGross" style="label"/>
           
       <box name="BoxItem" c:height="8" c:width="69" c:x="1" c:y="8"
           label="Items"/>
       <button name="btnEditItem" c:height="1" c:width="7" c:x="14" c:y="9"
           label="Edit...">
         <trigger type="ON-ACTION" name="btnEditItemTrigger">
-          params = {'id': blkINV_Item.fldInvProduct.get() or ''}
+          params = {'id': blkItem.fldProduct.get() or ''}
           form.runForm('ITEM_Item.gfd', params)
-          blkINV_Item.fldInvProduct.resetForeignKey()
+          blkItem.fldProduct.resetForeignKey()
         </trigger>
       </button>
 
-      <label name="lblInvProduct:" c:height="1" c:width="20" c:x="2" c:y="9"
+      <label name="lblProduct:" c:height="1" c:width="20" c:x="2" c:y="9"
           text="Product"/>
       <label name="lblItemPrice:" c:height="1" c:width="6" c:x="23" c:y="9"
           text="Price"/>
-      <label name="lblInvQuantity:" c:height="1" c:width="5" c:x="30" c:y="9"
+      <label name="lblQuantity:" c:height="1" c:width="5" c:x="30" c:y="9"
           text="Qty."/>
       <label name="lblItemUnit:" c:height="1" c:width="5" c:x="36" c:y="9"
           text="Unit"/>
       <label name="lblItemPriceTotal:" c:height="1" c:width="10" c:x="44" 
c:y="9"
           text="Value"/>
-      <label name="lblItemPriceTotal:" c:height="1" c:width="10" c:x="55" 
c:y="9"
+      <label name="lblItemNote:" c:height="1" c:width="10" c:x="55" c:y="9"
           text="Note"/>
-      <entry name="entInvProduct" c:height="1" c:width="20" c:x="2" c:y="10"
-          block="blkINV_Item" field="fldInvProduct" style="dropdown" />
+      <entry name="entProduct" c:height="1" c:width="20" c:x="2" c:y="10"
+          block="blkItem" field="fldProduct" style="dropdown" />
       <entry name="entItemPrice" c:height="1" c:width="6" c:x="23" c:y="10"
-          block="blkINV_Item" field="fldInvProductPrice" style="label" />
-      <entry name="entInvQuantity" c:height="1" c:width="5" c:x="30" c:y="10"
-          block="blkINV_Item" field="fldInvQuantity"/>
+          block="blkItem" field="fldProductPrice" style="label" />
+      <entry name="entQuantity" c:height="1" c:width="5" c:x="30" c:y="10"
+          block="blkItem" field="fldQuantity"/>
       <entry name="entItemUnit" c:height="1" c:width="5" c:x="36" c:y="10"
-          block="blkINV_Item" field="fldInvUnit" style="label" />
+          block="blkItem" field="fldUnit" style="label" />
       <entry name="entItemPriceTotal" c:height="1" c:width="10" c:x="44" 
c:y="10"
-          block="blkINV_Item" field="fldInvValueGross" style="label" />
+          block="blkItem" field="fldValueGross" style="label" />
       <entry name="entItemNote" c:height="1" c:width="14" c:x="55" c:y="10"
-          block="blkINV_Item" field="fldInvNote" />
+          block="blkItem" field="fldNote" />
           
       <button c:x="1" c:y="17" c:width="10" c:height="1" label="Ok">
         <trigger type="ON-ACTION" src="saveAll" />
@@ -234,22 +242,29 @@
                       Named triggers
   ******************************************************-->
   <trigger name="calcDueDate" type="NAMED">
-    blkINV_Head.call("INV_calcDateDue", {})
+    blkHead.call("INV_calcDateDue", {})
   </trigger>
 
   <trigger name="saveAll" type="NAMED">
-    if not blkINV_Item.isSaved():
+    if not blkItem.isSaved():
       print "Item not saved, saving..."
-      blkINV_Item.commit()
-    if not blkINV_Head.isSaved():
+      blkItem.commit()
+    if not blkHead.isSaved():
       print "Head not saved, saving..."
-      blkINV_Head.commit()
+      blkHead.commit()
+    
+    invNumber = blkHead.fldNumber.get()
+    for i in range(blkSeller.fldNumPrint.get()):
+      print "Printing invoice #%i" % (i + 1)
+      blkHead.fldPrinted.set(i + 1)
+      runReport('../reports/invoice.grd', {'INV_number': invNumber})
+    blkHead.commit()
     close()
   </trigger>
 
   <trigger name="revertAll" type="NAMED">
-    blkINV_Item.rollback()
-    blkINV_Head.rollback()
+    blkItem.rollback()
+    blkHead.rollback()
     close()
   </trigger>
 

Modified: gnue-invoice/forms/INV_grid.gfd
===================================================================
--- gnue-invoice/forms/INV_grid.gfd     2005-01-03 12:49:14 UTC (rev 176)
+++ gnue-invoice/forms/INV_grid.gfd     2005-01-03 12:52:00 UTC (rev 177)
@@ -33,6 +33,9 @@
   
   <datasource name="dts" connection="invoice" requery="True" table="INV_Head"
       prequery="Y"/>
+  <datasource name="dtsSeller" connection="invoice" table="INV_Company"
+      prequery="True"/>
+
   
   <logic>
     <block name="blk"   datasource="dts"    rows="8">
@@ -50,13 +53,20 @@
           readonly="Y"/>
       <field name="fldPaymentmeth"  field="INV_paymentMethod"   maxLength="32"
           readonly="Y"/>
-      <field name="fldTotalgross"   field="INV_valueTotalGross" maxLength="10"
+      <field name="fldTotalgross"   field="INV_totalGross"      maxLength="10"
           readonly="Y"  typecast="number"/>
-      <field name="fldTotalnet"     field="INV_valueTotalNet"   maxLength="10"
+      <field name="fldTotalnet"     field="INV_totalNet"        maxLength="10"
           readonly="Y"  typecast="number"/>
-      <field name="fldTotalvat"     field="INV_valueTotalVAT"   maxLength="10"
+      <field name="fldTotalvat"     field="INV_totalVAT"        maxLength="10"
           readonly="Y"  typecast="number"/>
+      <field name="fldPrinted"      field="INV_printed"         maxLength="10"
+          typecast="number"/>
     </block>
+    
+    <block name="blkSeller" datasource="dtsSeller">
+      <field name="fldNumPrint"     field="INV_numPrint"        maxLength="10"
+          readonly="Y"  typecast="number"/>
+    </block>
   </logic>
 
   <layout xmlns:c="GNUe:Layout:Char" c:height="11" c:width="100">
@@ -77,7 +87,7 @@
           alignment="center" text="Vat:"/>
           
       <entry name="entNumber"        c:height="1" c:width="10" c:x="1"  c:y="2"
-          block="blk" field="fldNumber"/>
+          block="blk" field="fldPrinted"/>
       <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"
@@ -94,24 +104,43 @@
       <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"
-          runForm(location)
+          runForm("INV_Head.gfd")
+          dts.createResultSet()
         </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">
+          toPrint = blkSeller.fldNumPrint.get()
+          print toPrint
           ret = blk.call('INV_revert', {'invId': blk.fldGnueid.get()})
-          if ret == True and not blk.isSaved():
+          if ret is not None:
             print "Saving reverted invoice..."
-            blk.commit()
+            #blk.commit()
+            a = blk.fldNumber.get()
+            for i in range(toPrint):
+              blk.fldPrinted.set(i + 1)
+              blk.commit()
+              runReport('../reports/invoice.grd', {'INV_number':ret})
           else:
             print "Cannot revert reverted invoice!"
             blk.rollback()
           dts.createResultSet()
         </trigger>
       </button>
+      
+      <button name="btnPrint"       c:height="1" c:width="5"  c:x="23" c:y="10"
+          label="Print">
+        <trigger type="ON-ACTION" name="btnPrintTrigger">
+          prevPrint = blk.fldPrinted.get()
+          blk.fldPrinted.set(prevPrint + 1)
+          blk.commit()
+          runReport('../reports/invoice.grd', 
{'INV_number':blk.fldNumber.get()})
+          dts.createResultSet()
+        </trigger>
+      </button>
+      
     </page>
   </layout>
   





reply via email to

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