/
Presta.h
157 lines (133 loc) · 3.76 KB
/
Presta.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
#ifndef PRESTA_H
#define PRESTA_H
#include <QObject>
#include "PSWebService.h"
#include <QVector>
#include <QMap>
#include "Kategoria.h"
#include "Produkt.h"
#include "Zamowienie.h"
#include "PrestaStructs.h"
#include <QSettings>
/*!
\brief
\class Presta Presta.h "Presta.h"
*/
namespace Presta {
class Prestashop : public QObject
{
Q_OBJECT
public:
Prestashop(const QSettings& settings, PSWebService* pswebService, QObject *parent = 0);
QNetworkReply *add(const Product& product);
QNetworkReply *add(const Category& kategoria);
QNetworkReply *add(const SpecificPrice& specificPrice);
QNetworkReply *deleteProduct(uint id);
QNetworkReply *deleteCategory(uint id);
QNetworkReply *deleteSpecificPrice(uint id);
QNetworkReply *edit(const Product& product);
QNetworkReply *edit(const Category& kategoria);
QNetworkReply *edit(const SpecificPrice& specificPrice);
/*!
\brief Przeksztalca XML do zamowienia.
\param doc
\return Zamowienie
*/
Order getOrder(QDomDocument& doc) const;
/*!
\brief Pobiera z Presta zamowienie o podanym ID.
\param id
\return Zamowienie
*/
Order getOrder(uint id);
/*!
\brief Pobiera z presta zamowienia o podanym stanie.
\param status
\return QList<OrderHeader>
*/
QList<OrderHeader> getOrderHeader(const QMap<QString, QString> &filter);
/*!
\brief Pobiera identyfikatory cen specjalnych dla danego id produktu.
\param productId
\return QList<uint>
*/
QList<uint> getSpecificPrice(uint productId);
/*!
\brief Zwraca webservice.
\return PSWebService
*/
PSWebService *getWebService() const { return mPSWebService; }
/*!
\brief Synchroniczne dodawanie produktu w Presta.
\param produkt
\return unsigned
*/
unsigned syncAdd(const Product &product);
/*!
\brief Synchroniczne dodawanie kategorii.
\param kategoria
\return unsigned
*/
unsigned syncAdd(const Category& kategoria);
/*!
\brief Synchroniczne dodawanie ceny specjalnej
\param specificPrice
\return unsigned
*/
void syncAdd(const SpecificPrice& specificPrice);
void syncDeleteProduct(uint id);
void syncDeleteCategory(uint id);
void syncDeleteSpecificPrice(uint id);
/*!
\brief Synchroniczna edycja produktu w Presta
\param produkt
*/
void syncEdit(const Product& product);
/*!
\brief Synchroniczna edycja kategorii.
\param kategoria
*/
void syncEdit(const Category& kategoria);
/*!
\brief Synchroniczna edycja zamowienia.
\param zamowienie
*/
void syncEdit(const Order& zamowienie);
/*!
\brief Synchroniczna edycja ceny specjalnej.
\param specificPrice
*/
void syncEdit(const SpecificPrice& specificPrice);
/*!
\brief Zamienia produkt na postac XML
\param produkt
\return QDomDocument
*/
QDomDocument toXML(const Product& product);
/*!
\brief Zamienia kategorie na postac XML
\param kategoria
\return QDomDocument
*/
QDomDocument toXML(const Category& category);
/*!
\brief Zamienia zamowienie na postac XML
\param zamowienie
\return QDomDocument
*/
QDomDocument toXML(const Order& order);
/*!
\brief Zamienia cene specjalna na postac XML
\param specificPrice
\return QDomDocument
*/
QDomDocument toXML(const SpecificPrice& specificPrice);
protected:
static QDomElement buildXMLElement(QDomDocument &doc, const QString &name, const QString &value);
static QDomElement buildXMLElement(QDomDocument &doc, const QString &name, const QString &value, int lang);
static QDomDocument getPrestaXML();
PSWebService *mPSWebService;
unsigned mLangId;
};
}
#endif // PRESTA_H