[Erp5-report] r20552 - in /erp5/trunk/bt5/erp5_trade: SkinTemplateItem/portal_skins/erp5_tr...

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Apr 15 19:42:05 CEST 2008


Author: nicolas
Date: Tue Apr 15 19:42:05 2008
New Revision: 20552

URL: http://svn.erp5.org?rev=20552&view=rev
Log:
Enhance Purchase Order PrintOut with new Tax Module

Modified:
    erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_getODTDataDict.xml
    erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_viewAsODT.xml
    erp5/trunk/bt5/erp5_trade/bt/revision

Modified: erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_getODTDataDict.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_getODTDataDict.xml?rev=20552&r1=20551&r2=20552&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_getODTDataDict.xml (original)
+++ erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_getODTDataDict.xml Tue Apr 15 19:42:05 2008
@@ -108,24 +108,16 @@
     s += \'%s: %s\' % (T_(\'VAT ID\'), vat_id)\n
   return s\n
 \n
-def getLineVat(line):\n
-  vat = 0.0\n
-  s_m_list = line.getOrderRelatedValueList()\n
-  for s_m in s_m_list:\n
-    a_r_list = [x for x in s_m.objectValues() if x.getSpecialiseValue().getPortalType() == \'Invoicing Rule\']\n
-    if a_r_list:\n
-      a_r = a_r_list[0]\n
-      inv_s_m_list = a_r.objectValues()\n
-      if inv_s_m_list:\n
-        inv_s_m = inv_s_m_list[0]\n
-        acc_a_r_list = [x for x in inv_s_m.objectValues() if x.getSpecialiseValue().getPortalType() == \'Invoice Transaction Rule\']\n
-        if acc_a_r_list:\n
-          acc_a_r = acc_a_r_list[0]\n
-          acc_s_m_list = [x for x in acc_a_r.objectValues() if \'vat\' in x.getDestinationValue().getAccountType()]\n
-          if acc_s_m_list:\n
-            acc_s_m = acc_s_m_list[0]\n
-            vat += acc_s_m.getQuantity(0.0)\n
-  return vat\n
+preferred_date_order = context.getPortalObject().portal_preferences.getPreferredDateOrder() or \'ymd\'\n
+separator = \'/\'\n
+def getOrderedDate(date):\n
+  if date is None:\n
+    return \'\'\n
+  pattern = separator.join(list(preferred_date_order))\n
+  pattern = pattern.replace(\'y\', \'%Y\')\n
+  pattern = pattern.replace(\'m\', \'%m\')\n
+  pattern = pattern.replace(\'d\', \'%d\')\n
+  return date.strftime(pattern)\n
 \n
 def getSourceReference(line):\n
   category_list = line.getAcquiredCategoryList()\n
@@ -154,6 +146,8 @@
   sub_list = []\n
   for x in obj.searchFolder(portal_type=context.getPortalOrderMovementTypeList(),\n
       sort_on=[(\'int_index\', \'ascending\'), (\'reference\', \'ascending\')]):\n
+    if x.getPortalType() in obj.getPortalTaxMovementTypeList():\n
+      continue\n
     sub_list.append(x)\n
     sub_list.extend(getSubLineList(x))\n
   return sub_list\n
@@ -188,12 +182,11 @@
       \'description\': desc,\n
       \'total_quantity\': line.getTotalQuantity() or \'\',\n
       \'quantity_unit\': line.getQuantityUnitTitle() or (line.getResource() and line.getResourceValue().getQuantityUnitTitle()) or \'\',\n
-      \'stop_date\': line.getStopDate() or \'\',\n
+      \'stop_date\': getOrderedDate(line.getStopDate()) or \'\',\n
       \'base_price\': line.getPrice() or \'\',\n
       \'total_price\': line.getTotalPrice() or \'\',\n
     }\n
     total_price += line.getTotalPrice() or 0.0\n
-    total_vat += getLineVat(line)\n
   line_list.append(line_dict.copy())\n
 \n
 data_dict = {\n
@@ -219,6 +212,7 @@
   \'destination_email\': getEmail(context.getDestination() and context.getDestinationValue().getEmailText() or \'\'),\n
 \n
   \'destination_section_title\': unicode(context.getDestinationSectionTitle() or \'\', \'utf8\'),\n
+  \'destination_section_image_path\': context.getDestinationSectionValue().getDefaultImagePath(),\n
   \'destination_section_address\': unicode(getOneLineAddress(\n
       context.getDestinationSection() and context.getDestinationSectionValue().getDefaultAddressText() or \'\',\n
       context.getDestinationSection() and context.getDestinationSectionValue().getDefaultAddressRegionTitle() or \'\'), \'utf8\'),\n
@@ -234,14 +228,14 @@
   \'destination_decision_email\': getEmail(context.getDestinationDecision() and context.getDestinationDecisionValue().getEmailText() or \'\'),\n
 \n
   \'reference\': context.getReference() or \'\',\n
-  \'start_date\': context.getStartDate() or \'\',\n
+  \'start_date\': getOrderedDate(context.getStartDate()) or \'\',\n
   \'currency\': context.getPriceCurrencyReference() or \'\',\n
   \'payment_condition\': getPaymentConditionText(context),\n
   \'delivery_mode\': context.getDeliveryModeTitle() or \'\',\n
   \'incoterm\': context.getIncoterm() and context.getIncotermValue().getCodification() or \'\',\n
 \n
   \'total_price_novat\': total_price,\n
-  \'total_vat\': total_vat,\n
+  \'vat_list\': context.searchFolder(portal_type=context.getPortalTaxMovementTypeList(), order_by=\'title\'),\n
   \'total_price_vat\': total_price + total_vat,\n
   \'description\': getFieldAsString(context.getDescription()),\n
 \n
@@ -306,7 +300,9 @@
                             <string>getPhoneAndFax</string>
                             <string>getEmail</string>
                             <string>getVatId</string>
-                            <string>getLineVat</string>
+                            <string>preferred_date_order</string>
+                            <string>separator</string>
+                            <string>getOrderedDate</string>
                             <string>getSourceReference</string>
                             <string>getPaymentConditionText</string>
                             <string>line_list</string>

Modified: erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_viewAsODT.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_viewAsODT.xml?rev=20552&r1=20551&r2=20552&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_viewAsODT.xml (original)
+++ erp5/trunk/bt5/erp5_trade/SkinTemplateItem/portal_skins/erp5_trade/PurchaseOrder_viewAsODT.xml Tue Apr 15 19:42:05 2008
@@ -203,6 +203,9 @@
     </style:style>\n
     <style:style style:family=\'table-row\' style:name=\'Tableau3.2\'>\n
       <style:table-row-properties style:row-height=\'0.75cm\'/>\n
+    </style:style>\n
+    <style:style style:family=\'table-row\' style:name=\'Tableau3.3\'>\n
+      <style:table-row-properties style:row-height=\'2cm\'/>\n
     </style:style>\n
     <style:style style:family=\'table-cell\' style:name=\'Tableau3.A2\'>\n
       <style:table-cell-properties style:vertical-align=\'middle\' fo:padding=\'0cm\' fo:border=\'none\'/>\n
@@ -293,7 +296,7 @@
                     <table:table-cell table:style-name=\'Tableau2.A1\' office:value-type=\'string\'>\n
                       <div tal:omit-tag=\'\' tal:define=\'orig_string string:Supplier; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n
                       <text:p text:style-name=\'Table_20_Heading\'>\n
-                        <text:variable-set text:formula=\'ooow:title\' text:name=\'ds_title\' text:display=\'none\' office:string-value=\'title\' office:value-type=\'string\' tal:attributes=\'office:string-value python:data_dict["destination_section_title"]\'/>\n
+                        <text:variable-set text:formula=\'ooow:title\' text:name=\'ds_title\' text:display=\'none\' office:value-type=\'string\' tal:attributes=\'office:string-value python:data_dict["destination_section_title"]\'/>\n
                         <text:variable-set text:formula=\'ooow:address\' text:name=\'ds_address\' text:display=\'none\' office:string-value=\'address\' office:value-type=\'string\' tal:attributes=\'office:string-value python:data_dict["destination_section_address"]\'/>\n
                         <text:variable-set text:formula=\'ooow:telfax\' text:name=\'ds_telfax\' text:display=\'none\' office:string-value=\'telfax\' office:value-type=\'string\' tal:attributes=\'office:string-value python:data_dict["destination_section_telfax"]\'/>\n
                         <text:variable-set text:formula=\'ooow:email\' text:name=\'ds_email\' text:display=\'none\' office:string-value=\'email\' office:value-type=\'string\' tal:attributes=\'office:string-value python:data_dict["destination_section_email"]\'/>\n
@@ -473,33 +476,50 @@
             <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["index"]\' tal:attributes=\'text:style-name left_style_name\'>1</text:p>\n
           </table:table-cell>\n
           <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["source_reference"]\' tal:attributes=\'text:style-name style_name\'>source_ref</text:p>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["source_reference"]\'\n
+                    tal:attributes=\'text:style-name style_name\'>source_ref</text:p>\n
           </table:table-cell>\n
           <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["reference"]\' tal:attributes=\'text:style-name style_name\'>ref</text:p>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["reference"]\'\n
+                    tal:attributes=\'text:style-name style_name\'>ref</text:p>\n
           </table:table-cell>\n
           <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["description"]\' tal:attributes=\'text:style-name left_style_name\'>desc</text:p>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["description"]\'\n
+                    tal:attributes=\'text:style-name left_style_name\'>desc</text:p>\n
+          </table:table-cell>\n
+          <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'float\'>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["total_quantity"]\'\n
+                    tal:attributes=\'text:style-name right_style_name\'>qty</text:p>\n
           </table:table-cell>\n
           <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["total_quantity"]\' tal:attributes=\'text:style-name right_style_name\'>qty</text:p>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["quantity_unit"]\'\n
+                    tal:attributes=\'text:style-name style_name\'>qty_u</text:p>\n
           </table:table-cell>\n
           <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["quantity_unit"]\' tal:attributes=\'text:style-name style_name\'>qty_u</text:p>\n
-          </table:table-cell>\n
-          <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["stop_date"]\' tal:attributes=\'text:style-name style_name\'>stop_date</text:p>\n
-          </table:table-cell>\n
-          <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["base_price"]\' tal:attributes=\'text:style-name right_style_name\'>base_price</text:p>\n
-          </table:table-cell>\n
-          <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'string\'>\n
-            <text:p text:style-name=\'Table_20_Contents\' tal:content=\'python:line_dict["total_price"]\' tal:attributes=\'text:style-name right_style_name\'>total_price</text:p>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["stop_date"]\'\n
+                    tal:attributes=\'text:style-name style_name\'>stop_date</text:p>\n
+          </table:table-cell>\n
+          <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'float\'>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["base_price"]\'\n
+                    tal:attributes=\'text:style-name right_style_name\'>base_price</text:p>\n
+          </table:table-cell>\n
+          <table:table-cell table:style-name=\'Tableau1.A3\' office:value-type=\'float\'>\n
+            <text:p text:style-name=\'Table_20_Contents\'\n
+                    tal:content=\'python:line_dict["total_price"]\'\n
+                    tal:attributes=\'text:style-name right_style_name\'>total_price</text:p>\n
           </table:table-cell>\n
           </div>\n
         </table:table-row>\n
         <table:table-row table:style-name=\'Tableau1.5\'>\n
-          <table:table-cell table:style-name=\'Tableau1.A5\' table:number-columns-spanned=\'9\' office:value-type=\'string\'>\n
+          <table:table-cell table:style-name=\'Tableau1.A5\'\n
+                            table:number-columns-spanned=\'9\' office:value-type=\'string\'>\n
             <table:table table:style-name=\'Tableau3\' table:name=\'Tableau3\'>\n
               <table:table-column table:style-name=\'Tableau3.A\'/>\n
               <table:table-column table:style-name=\'Tableau3.B\'/>\n
@@ -537,9 +557,45 @@
                   <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n
                   <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n
                 </table:table-cell>\n
-                <table:table-cell table:style-name=\'Tableau3.E2\' office:value-type=\'string\'>\n
+                <table:table-cell table:style-name=\'Tableau3.E2\' office:value-type=\'float\'>\n
                   <text:p text:style-name=\'Table_20_Contents_20_Right\' tal:content=\'python:data_dict["total_price_novat"]\'>800.000,00</text:p>\n
                 </table:table-cell>\n
+              </table:table-row>\n
+              <table:table-row table:style-name=\'Tableau3.3\'>\n
+                <table:table-cell table:style-name=\'Tableau3.A2\' office:value-type=\'string\'>\n
+                  <text:p text:style-name=\'Table_20_Contents\'/>\n
+                </table:table-cell>\n
+                <table:table-cell table:style-name=\'Tableau3.A2\' office:value-type=\'string\'>\n
+                  <text:p text:style-name=\'Table_20_Contents\'/>\n
+                </table:table-cell>\n
+                <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n
+                  <text:p text:style-name=\'Table_20_Contents\'/>\n
+                </table:table-cell>\n
+                <tal:block tal:define="global total_vat_list python: []">\n
+                  <table:table-cell table:style-name=\'Tableau3.D3\'\n
+                                    office:value-type=\'string\'>\n
+                    <tal:block tal:repeat="vat python: data_dict[\'vat_list\']">\n
+                      <tal:block tal:define="orig_string python:vat.getResourceTitle(); en_string python:here.Base_translateString(orig_string, lang=\'en\'); my_string python:here.Base_translateString(orig_string)">\n
+                        <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n
+                        <text:p text:style-name=\'Table_20_Heading\'\n
+                                tal:condition=\'python:my_string != en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n
+                      </tal:block>\n
+                    </tal:block>\n
+                    <text:p text:style-name=\'Table_20_Heading\'\n
+                            tal:define="orig_string string:TAX; en_string python:here.Base_translateString(orig_string, lang=\'en\'); my_string python:here.Base_translateString(orig_string)"><span tal:replace="python: \'Total %s\' % (my_string)"/>:</text:p>\n
+                  </table:table-cell>\n
+                  <table:table-cell table:style-name=\'Tableau3.E3\'\n
+                                    office:value-type=\'float\'\n
+                                    tal:attributes="office:value python: sum(total_vat_list)">\n
+                    <tal:block tal:repeat="vat python: data_dict[\'vat_list\']">\n
+                      <text:p tal:define="vat_price python: vat.getPrice() * vat.getQuantity(); any python: total_vat_list.append(vat_price)"\n
+                              text:style-name=\'Table_20_Contents_20_Right\'\n
+                              tal:content="vat_price">2000</text:p>\n
+                    </tal:block>\n
+                      <text:p text:style-name=\'Table_20_Contents_20_Right\'\n
+                              tal:content="python: sum(total_vat_list)">2000</text:p>\n
+                  </table:table-cell>\n
+                </tal:block>\n
               </table:table-row>\n
               <table:table-row table:style-name=\'Tableau3.2\'>\n
                 <table:table-cell table:style-name=\'Tableau3.A2\' office:value-type=\'string\'>\n
@@ -551,30 +607,13 @@
                 <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n
                   <text:p text:style-name=\'Table_20_Contents\'/>\n
                 </table:table-cell>\n
-                <table:table-cell table:style-name=\'Tableau3.D3\' office:value-type=\'string\' tal:define=\'orig_string string:VAT; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n
-                  <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n
-                  <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n
-                </table:table-cell>\n
-                <table:table-cell table:style-name=\'Tableau3.E3\' office:value-type=\'string\'>\n
-                  <text:p text:style-name=\'Table_20_Contents_20_Right\' tal:content=\'python:data_dict["total_vat"]\'>2000</text:p>\n
-                </table:table-cell>\n
-              </table:table-row>\n
-              <table:table-row table:style-name=\'Tableau3.2\'>\n
-                <table:table-cell table:style-name=\'Tableau3.A2\' office:value-type=\'string\'>\n
-                  <text:p text:style-name=\'Table_20_Contents\'/>\n
-                </table:table-cell>\n
-                <table:table-cell table:style-name=\'Tableau3.A2\' office:value-type=\'string\'>\n
-                  <text:p text:style-name=\'Table_20_Contents\'/>\n
-                </table:table-cell>\n
-                <table:table-cell table:style-name=\'Tableau3.A1\' office:value-type=\'string\'>\n
-                  <text:p text:style-name=\'Table_20_Contents\'/>\n
-                </table:table-cell>\n
                 <table:table-cell table:style-name=\'Tableau3.D3\' office:value-type=\'string\' tal:define=\'orig_string string:Total Including VAT; en_string python:here.Base_translateString(orig_string, lang="en"); my_string python:here.Base_translateString(orig_string)\'>\n
                   <text:p text:style-name=\'Table_20_Heading\'><span tal:replace=\'en_string\'/>:</text:p>\n
                   <text:p text:style-name=\'Table_20_Heading\' tal:condition=\'python:my_string!=en_string\'><span tal:replace=\'my_string\'/>:</text:p>\n
                 </table:table-cell>\n
-                <table:table-cell table:style-name=\'Tableau3.E3\' office:value-type=\'string\'>\n
-                  <text:p text:style-name=\'Table_20_Contents_20_Right\' tal:content=\'python:data_dict["total_price_vat"]\'>12345</text:p>\n
+                <table:table-cell table:style-name=\'Tableau3.E3\' office:value-type=\'float\' tal:attributes="office:value python:data_dict[\'total_price_novat\'] + sum(total_vat_list)">\n
+                  <text:p text:style-name=\'Table_20_Contents_20_Right\'\n
+                          tal:content=\'python:data_dict["total_price_novat"] + sum(total_vat_list)\'>12345</text:p>\n
                 </table:table-cell>\n
               </table:table-row>\n
               <table:table-row table:style-name=\'Tableau3.1\'>\n

Modified: erp5/trunk/bt5/erp5_trade/bt/revision
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_trade/bt/revision?rev=20552&r1=20551&r2=20552&view=diff
==============================================================================
--- erp5/trunk/bt5/erp5_trade/bt/revision (original)
+++ erp5/trunk/bt5/erp5_trade/bt/revision Tue Apr 15 19:42:05 2008
@@ -1,1 +1,1 @@
-275
+279




More information about the Erp5-report mailing list