You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by ms...@apache.org on 2023/01/30 22:48:36 UTC

[openoffice] branch trunk updated: OpenOffice Calc offers functions for converting from old national currencies to EURO.

This is an automated email from the ASF dual-hosted git repository.

mseidel pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git


The following commit(s) were added to refs/heads/trunk by this push:
     new a658d2c3a5 OpenOffice Calc offers functions for converting from old national currencies to EURO.
a658d2c3a5 is described below

commit a658d2c3a558c3c19f1f11cd0c149f02935bb073
Author: mseidel <ms...@apache.org>
AuthorDate: Mon Jan 30 23:46:11 2023 +0100

    OpenOffice Calc offers functions for converting from old national currencies to EURO.
    
    Croatia joined the euro area in 2023, see:
    https://www.ecb.europa.eu/euro/changeover/croatia/html/index.en.html
---
 .../registry/data/org/openoffice/Office/Calc.xcu   | 11 +++++++++++
 main/sc/source/core/tool/interpr2.cxx              | 22 +++++++++++-----------
 2 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/main/officecfg/registry/data/org/openoffice/Office/Calc.xcu b/main/officecfg/registry/data/org/openoffice/Office/Calc.xcu
index 51260af9e2..ee857f4b37 100644
--- a/main/officecfg/registry/data/org/openoffice/Office/Calc.xcu
+++ b/main/officecfg/registry/data/org/openoffice/Office/Calc.xcu
@@ -233,6 +233,17 @@
 				<value>3.45280</value>
 			</prop>
 		</node>
+		<node oor:name="CR20" oor:op="replace">
+			<prop oor:name="FromUnit">
+				<value>EUR</value>
+			</prop>
+			<prop oor:name="ToUnit">
+				<value>HRK</value>
+			</prop>
+			<prop oor:name="Factor">
+				<value>7.53450</value>
+			</prop>
+		</node>
 	</node>
 	<node oor:name="Calculate">
 		<node oor:name="Other">
diff --git a/main/sc/source/core/tool/interpr2.cxx b/main/sc/source/core/tool/interpr2.cxx
index a2d8222457..2d8dfcd2d9 100644
--- a/main/sc/source/core/tool/interpr2.cxx
+++ b/main/sc/source/core/tool/interpr2.cxx
@@ -70,7 +70,7 @@ double ScInterpreter::GetDateSerial( sal_Int16 nYear, sal_Int16 nMonth, sal_Int1
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::GetDateSerial" );
     if ( nYear < 100 && !bStrict )
         nYear = pFormatter->ExpandTwoDigitYear( nYear );
-    // Do not use a default Date ctor here because it asks system time with a 
+    // Do not use a default Date ctor here because it asks system time with a
     // performance penalty.
     sal_Int16 nY, nM, nD;
     if (bStrict)
@@ -1138,10 +1138,10 @@ double ScInterpreter::ScGetRmz(double fRate, double fNper, double fPv,
     else
     {
         if (fPaytype > 0.0) // payment in advance
-            fPayment = (fFv + fPv * exp( fNper * ::boost::math::log1p(fRate) ) ) * fRate / 
+            fPayment = (fFv + fPv * exp( fNper * ::boost::math::log1p(fRate) ) ) * fRate /
                 (::boost::math::expm1( (fNper + 1) * ::boost::math::log1p(fRate) ) - fRate);
         else  // payment in arrear
-            fPayment = (fFv + fPv * exp(fNper * ::boost::math::log1p(fRate) ) ) * fRate / 
+            fPayment = (fFv + fPv * exp(fNper * ::boost::math::log1p(fRate) ) ) * fRate /
                 ::boost::math::expm1( fNper * ::boost::math::log1p(fRate) );
     }
     return -fPayment;
@@ -1803,7 +1803,7 @@ void ScInterpreter::ScIntersect()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScIntersect" );
     formula::FormulaTokenRef p2nd = PopToken();
     formula::FormulaTokenRef p1st = PopToken();
-    
+
     if (nGlobalError || !p2nd || !p1st)
     {
         PushIllegalArgument();
@@ -1951,7 +1951,7 @@ void ScInterpreter::ScRangeFunc()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScRangeFunc" );
     formula::FormulaTokenRef x2 = PopToken();
     formula::FormulaTokenRef x1 = PopToken();
-    
+
     if (nGlobalError || !x2 || !x1)
     {
         PushIllegalArgument();
@@ -1970,7 +1970,7 @@ void ScInterpreter::ScUnionFunc()
     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "er", "ScInterpreter::ScUnionFunc" );
     formula::FormulaTokenRef p2nd = PopToken();
     formula::FormulaTokenRef p1st = PopToken();
-    
+
     if (nGlobalError || !p2nd || !p1st)
     {
         PushIllegalArgument();
@@ -1989,7 +1989,7 @@ void ScInterpreter::ScUnionFunc()
     ScToken* x1 = static_cast<ScToken*>(p1st.get());
     ScToken* x2 = static_cast<ScToken*>(p2nd.get());
 
-    
+
     ScTokenRef xRes;
     // Append to an existing RefList if there is one.
     if (sv1 == svRefList)
@@ -2671,7 +2671,8 @@ sal_Bool lclConvertMoney( const String& aSearchUnit, double& rfRate, int& rnDec
         { "SKK", 30.1260,  2 },
         { "EEK", 15.6466,  2 },
         { "LVL", 0.702804, 2 },
-        { "LTL", 3.45280,  2 }
+        { "LTL", 3.45280,  2 },
+        { "HRK", 7.53450,  2 }
     };
 
     const size_t nConversionCount = sizeof( aConvertTable ) / sizeof( aConvertTable[0] );
@@ -2976,7 +2977,7 @@ void ScInterpreter::ScGetPivotData()
                 //! should allow numeric constraint values
                 aFilters[i].mbValIsStr = sal_True;
                 aFilters[i].maValStr = GetString();
-                
+
                 aFilters[i].maFieldName = GetString();
             }
         }
@@ -3014,7 +3015,7 @@ void ScInterpreter::ScGetPivotData()
                 goto failed;
         }
         else
-            aTarget.maFieldName = GetString();      // new syntax: first parameter is data field name
+            aTarget.maFieldName = GetString(); // new syntax: first parameter is data field name
 
         if( pDPObj->GetPivotData( aTarget, aFilters ) )
         {
@@ -3029,4 +3030,3 @@ void ScInterpreter::ScGetPivotData()
 failed :
     PushError( errNoRef );
 }
-