@@ -10,6 +10,15 @@ class API_Products_GetProducts extends BaseAction
10
10
{
11
11
12
12
protected $ requestMethod = ['GET ' ];
13
+ private $ moduleName = 'Products ' ;
14
+
15
+ private function getTemplate ()
16
+ {
17
+ $ moduleId = Vtiger_Functions::getModuleId ($ this ->moduleName );
18
+ $ db = PearDatabase::getInstance ();
19
+ $ query = 'SELECT templateid FROM vtiger_trees_templates WHERE module = ? ' ;
20
+ return $ db ->getSingleValue ($ db ->pquery ($ query , [$ moduleId ]));
21
+ }
13
22
14
23
private function getCategoryName ($ categoryId )
15
24
{
@@ -18,43 +27,47 @@ private function getCategoryName($categoryId)
18
27
return $ categoryCache [$ categoryId ];
19
28
}
20
29
$ db = PearDatabase::getInstance ();
21
- $ result = $ db ->pquery ('SELECT name FROM vtiger_trees_templates_data WHERE templateid = ? AND tree = ? ' , [2 , $ categoryId ]);
30
+ $ result = $ db ->pquery ('SELECT name FROM vtiger_trees_templates_data WHERE templateid = ? AND tree = ? ' , [$ this -> getTemplate () , $ categoryId ]);
22
31
$ categoryName = $ db ->getSingleValue ($ result );
23
32
$ categoryCache [$ categoryId ] = $ categoryName ;
24
33
return $ categoryName ;
25
34
}
26
35
27
- private function getInfo ($ recordId )
36
+ private function getInfo ($ recordModel )
28
37
{
29
- $ recordModel = Vtiger_Record_Model::getInstanceById ($ recordId );
30
38
$ image = $ recordModel ->getImageDetails ();
31
- $ data = $ recordModel ->getData ();
32
39
$ imagesUrl = '' ;
33
40
foreach ($ image as $ img ) {
34
41
$ imagesUrl [] = '/Products/GetImage/ ' . $ img ['id ' ];
35
42
}
36
- $ data ['categoryName ' ] = $ this ->getCategoryName ($ data ['pscategory ' ]);
37
- $ data ['imageUrl ' ] = $ imagesUrl ;
38
- return $ data ;
43
+ $ recordModel ->set ('categoryName ' , $ this ->getCategoryName ($ recordModel ->get ('pscategory ' )));
44
+ $ recordModel ->set ('imageUrl ' , $ imagesUrl );
39
45
}
40
46
41
- public function get ($ recordId = false )
47
+ public function get ()
42
48
{
43
49
$ db = PearDatabase::getInstance ();
44
- if ($ recordId ) {
45
- $ records = $ this ->getInfo ($ recordId );
46
- } else {
47
- $ query = 'SELECT vtiger_products.productid, vtiger_products.pos FROM vtiger_products
50
+ $ query = 'SELECT vtiger_products.productname,
51
+ vtiger_crmentity.description,
52
+ vtiger_products.pscategory,
53
+ vtiger_products.productid,
54
+ vtiger_products.pos,
55
+ vtiger_products.unit_price
56
+ FROM vtiger_products
48
57
INNER JOIN vtiger_crmentity ON vtiger_products.productid = vtiger_crmentity.crmid
49
58
WHERE vtiger_crmentity.deleted = ?
50
59
AND vtiger_products.pos LIKE ?
51
60
AND vtiger_products.discontinued = ? ' ;
52
- $ results = $ db ->pquery ($ query , [0 , '% ' . $ this ->api ->app ['id ' ] . '% ' , 1 ]);
53
- while ($ products = $ db ->getRow ($ results )) {
54
- $ poses = explode (', ' , $ products ['pos ' ]);
55
- if (in_array ($ this ->api ->app ['id ' ], $ poses )) {
56
- $ records [$ products ['productid ' ]] = $ this ->getInfo ($ products ['productid ' ]);
57
- }
61
+ $ results = $ db ->pquery ($ query , [0 , '% ' . $ this ->api ->app ['id ' ] . '% ' , 1 ]);
62
+ $ records = [];
63
+ while ($ product = $ db ->getRow ($ results )) {
64
+ $ poses = explode (', ' , $ product ['pos ' ]);
65
+ if (in_array ($ this ->api ->app ['id ' ], $ poses )) {
66
+ unset($ product ['pos ' ]);
67
+ $ recordModel = Vtiger_Record_Model::getCleanInstance ($ this ->moduleName );
68
+ $ recordModel ->setData ($ product )->set ('id ' , $ product ['productid ' ]);
69
+ $ this ->getInfo ($ recordModel );
70
+ $ records [$ product ['productid ' ]] = $ recordModel ->getData ();
58
71
}
59
72
}
60
73
return $ records ;
0 commit comments