]> git.tdb.fi Git - r2c2.git/blobdiff - source/shoppinglist/main.cpp
Convert Catalogue to a Collection
[r2c2.git] / source / shoppinglist / main.cpp
index 4ebd956d824e7a73976fb3000e7c63094d44c7cb..276a4c7877d0f68ec68bc1302291c11995456216 100644 (file)
@@ -4,11 +4,9 @@
 #include <msp/datafile/loader.h>
 #include <msp/datafile/parser.h>
 #include <msp/io/print.h>
-#include "libr2c2/articlenumber.h"
 
 using namespace std;
 using namespace Msp;
-using namespace R2C2;
 
 class ShoppingList: public RegisteredApplication<ShoppingList>
 {
@@ -20,7 +18,7 @@ private:
        private:
                ShoppingList &sl;
 
-               void track(ArticleNumber, int);
+               void track(const string &, int);
        };
 
        class LayoutLoader: public DataFile::Loader
@@ -30,11 +28,11 @@ private:
        private:
                ShoppingList &sl;
 
-               void track(ArticleNumber);
+               void track(const string &);
        };
 
-       map<ArticleNumber, unsigned> inventory;
-       map<ArticleNumber, unsigned> layout;
+       map<string, unsigned> inventory;
+       map<string, unsigned> layout;
 
 public:
        ShoppingList(int, char **);
@@ -59,37 +57,37 @@ ShoppingList::ShoppingList(int argc, char **argv)
 int ShoppingList::main()
 {
        IO::print("// Need to get:\n");
-       for(map<ArticleNumber, unsigned>::iterator i=layout.begin(); i!=layout.end(); ++i)
+       for(map<string, unsigned>::iterator i=layout.begin(); i!=layout.end(); ++i)
        {
-               map<ArticleNumber, unsigned>::iterator j=inventory.find(i->first);
+               map<string, unsigned>::iterator j=inventory.find(i->first);
                if(j!=inventory.end())
                {
                        if(j->second<i->second)
-                               IO::print("track \\%d %d;\n", i->first, i->second-j->second);
+                               IO::print("track \"%s\" %d;\n", i->first, i->second-j->second);
                }
                else
-                       IO::print("track \\%d %d;\n", i->first, i->second);
+                       IO::print("track \"%s\" %d;\n", i->first, i->second);
        }
 
        IO::print("// Pre-existing:\n");
-       for(map<ArticleNumber, unsigned>::iterator i=layout.begin(); i!=layout.end(); ++i)
+       for(map<string, unsigned>::iterator i=layout.begin(); i!=layout.end(); ++i)
        {
-               map<ArticleNumber, unsigned>::iterator j=inventory.find(i->first);
+               map<string, unsigned>::iterator j=inventory.find(i->first);
                if(j!=inventory.end())
-                       IO::print("track \\%d %d;\n", i->first, min(i->second, j->second));
+                       IO::print("track \"%s\" %d;\n", i->first, min(i->second, j->second));
        }
 
        IO::print("// Unused:\n");
-       for(map<ArticleNumber, unsigned>::iterator i=inventory.begin(); i!=inventory.end(); ++i)
+       for(map<string, unsigned>::iterator i=inventory.begin(); i!=inventory.end(); ++i)
        {
-               map<ArticleNumber, unsigned>::iterator j=layout.find(i->first);
+               map<string, unsigned>::iterator j=layout.find(i->first);
                if(j!=layout.end())
                {
                        if(j->second<i->second)
-                               IO::print("track \\%d %d;\n", i->first, i->second-j->second);
+                               IO::print("track \"%s\" %d;\n", i->first, i->second-j->second);
                }
                else
-                       IO::print("track \\%d %d;\n", i->first, i->second);
+                       IO::print("track \"%s\" %d;\n", i->first, i->second);
        }
 
        return 0;
@@ -118,9 +116,9 @@ ShoppingList::InventoryLoader::InventoryLoader(ShoppingList &s):
        add("track", &InventoryLoader::track);
 }
 
-void ShoppingList::InventoryLoader::track(ArticleNumber art_nr, int count)
+void ShoppingList::InventoryLoader::track(const string &n, int count)
 {
-       sl.inventory[art_nr] += count;
+       sl.inventory[n] += count;
 }
 
 
@@ -136,7 +134,7 @@ ShoppingList::LayoutLoader::LayoutLoader(ShoppingList &s):
        add("zone");
 }
 
-void ShoppingList::LayoutLoader::track(ArticleNumber art_nr)
+void ShoppingList::LayoutLoader::track(const string &n)
 {
-       ++sl.layout[art_nr];
+       ++sl.layout[n];
 }