]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/parser_tariff.cpp
Implemented daily fee charge with backward compatibility.
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / parser_tariff.cpp
index e3b265206405c2e8a63942c9366d70bd3eed3703..bb855fafc07ba679c057b7bfbda772ae8424f0c6 100644 (file)
@@ -1,6 +1,7 @@
 #include <cstdio> // snprintf
 #include <cstring>
 
 #include <cstdio> // snprintf
 #include <cstring>
 
+#include "stg/tariffs.h"
 #include "parser.h"
 
 const int pt_mega = 1024 * 1024;
 #include "parser.h"
 
 const int pt_mega = 1024 * 1024;
@@ -144,6 +145,8 @@ for (; it != dataList.end(); ++it)
             break;
         }
 
             break;
         }
 
+    answerList->push_back("<Period value=\"" + TARIFF::PeriodToString(it->tariffConf.period) + "\"/>");
+
     answerList->push_back("</tariff>");
     }
 answerList->push_back("</Tariffs>");
     answerList->push_back("</tariff>");
     }
 answerList->push_back("</Tariffs>");
@@ -387,7 +390,10 @@ else
         snprintf(st, 50, "Time%d", j);
         if (strcasecmp(el, st) == 0)
             {
         snprintf(st, 50, "Time%d", j);
         if (strcasecmp(el, st) == 0)
             {
-            int h1, m1, h2, m2;
+            int h1 = 0;
+            int m1 = 0;
+            int h2 = 0;
+            int m2 = 0;
             if (ParseTariffTimeStr(attr[1], h1, m1, h2, m2) == 0)
                 {
                 td.dirPrice[j].hDay = h1;
             if (ParseTariffTimeStr(attr[1], h1, m1, h2, m2) == 0)
                 {
                 td.dirPrice[j].hDay = h1;
@@ -447,6 +453,12 @@ else
             }
         return 0;
         }
             }
         return 0;
         }
+
+    if (strcasecmp(el, "Period") == 0)
+        {
+        td.tariffConf.period = TARIFF::StringToPeriod(attr[1]);
+        return 0;
+        }
     }
 return -1;
 }
     }
 return -1;
 }