Cheetah
ChPmtOrders.php
Go to the documentation of this file.
1 <?php
2 
9 {
10  var $_oDb;
11  var $_oConfig;
13 
14  var $_iUserId;
16 
17  /*
18  * Constructor.
19  */
20  function __construct($iUserId, &$oDb, &$oConfig, &$oTemplate)
21  {
22  $this->_oDb = &$oDb;
23  $this->_oConfig = &$oConfig;
24  $this->_oTemplate = &$oTemplate;
25 
26  $this->_iUserId = $iUserId;
27  $this->_sLangsPrefix = $this->_oConfig->getLangsPrefix();
28  }
29  function getExtraJs()
30  {
31  $sJsClass = $this->_oConfig->getJsClass('orders');
32  $sJsObject = $this->_oConfig->getJsObject('orders');
33  ob_start();
34 ?>
35  var <?=$sJsObject; ?> = new <?=$sJsClass; ?>({
36  sActionUrl: '<?=CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri(); ?>',
37  sObjName: '<?=$sJsObject; ?>'
38  });
39 <?php
40  $sJsContent = ob_get_clean();
41 
42  return $this->_oTemplate->parseHtmlByTemplateName('script', array('content' => $sJsContent));
43  }
44  function getOrder($sType, $iId)
45  {
46  return $this->_oTemplate->displayOrder($sType, $iId);
47  }
48  function getOrders($sType, $aParams)
49  {
50  return $this->_oTemplate->displayOrders($sType, $aParams);
51  }
52  function getOrdersBlock($sType, $iUserId = CH_PMT_EMPTY_ID)
53  {
54  $sLangsPrefix = $this->_oConfig->getLangsPrefix();
55 
56  if(!isLogged())
57  return MsgBox(_t($sLangsPrefix . 'err_required_login'));
58 
59  $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri();
60 
61  $sJsObject = $this->_oConfig->getJsObject('orders');
62  $aTopMenu = array(
63  'pmt-orders-processed-lnk' => array('href' => $sBaseUrl . 'orders/processed/', 'title' => _t($sLangsPrefix . 'btn_orders_processed'), 'active' => $sType == CH_PMT_ORDERS_TYPE_PROCESSED ? 1 : 0),
64  'pmt-orders-pending-lnk' => array('href' => $sBaseUrl . 'orders/pending/', 'title' => _t($sLangsPrefix . 'btn_orders_pending'), 'active' => $sType == CH_PMT_ORDERS_TYPE_PENDING ? 1 : 0),
65  'pmt-payment-settings-lnk' => array('href' => $sBaseUrl . 'details/', 'title' => _t($sLangsPrefix . 'btn_settings'))
66  );
67 
68  $sTitle = $this->_sLangsPrefix . ($sType == 'processed' ? 'bcpt_processed_orders' : 'bcpt_pending_orders');
69  $sContent = $this->_oTemplate->displayOrdersBlock($sType, $iUserId != CH_PMT_EMPTY_ID ? $iUserId : $this->_iUserId);
70  return array($sContent, $aTopMenu, array(), _t($sTitle), 'getBlockCaptionMenu');
71  }
72  function report($sType, $aOrders)
73  {
74  $sMethodName = "report" . ucfirst($sType) . "Orders";
75  if(!$this->_oDb->$sMethodName($aOrders))
76  return array('code' => 3, 'message' => $this->_sLangsPrefix . 'err_unknown');
77 
78  return array('code' => 10, 'message' => $this->_sLangsPrefix . 'inf_successfully_reported');
79  }
80  function cancel($sType, $aOrders)
81  {
82  $sMethodName = "cancel" . ucfirst($sType) . "Orders";
83 
85  foreach($aOrders as $iOrderId) {
86  $aOrder = $this->_oDb->getProcessed(array('type' => 'id', 'id' => $iOrderId));
88  (int)$aOrder['module_id'],
89  'unregister_cart_item',
90  array(
91  $aOrder['client_id'],
92  $aOrder['seller_id'],
93  $aOrder['item_id'],
94  $aOrder['item_count'],
95  $aOrder['order_id']
96  )
97  );
98  }
99 
100  if(!$this->_oDb->$sMethodName($aOrders))
101  return array('code' => 3, 'message' => $this->_sLangsPrefix . 'err_unknown');
102 
103  return array('code' => 0, 'message' => '');
104  }
105  function getMoreWindow()
106  {
107  return $this->_oTemplate->displayMoreWindow();
108  }
110  {
111  $sJsObject = $this->_oConfig->getJsObject('orders');
112  $aModulesInfo = $this->_oDb->getModules();
113 
114  $aModules = array(
115  array('key' => '0', 'value' => _t($this->_sLangsPrefix . 'ocpt_select'))
116  );
117  foreach($aModulesInfo as $aModule)
118  $aModules[] = array('key' => $aModule['id'], 'value' => $aModule['title']);
119 
120  $aForm = array(
121  'form_attrs' => array(
122  'id' => 'pmt-manual-order-form',
123  'name' => 'text_data',
124  'action' => CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri() . 'act_manual_order_submit/',
125  'method' => 'post',
126  'enctype' => 'multipart/form-data',
127  'target' => 'pmt-manual-order-iframe'
128  ),
129  'inputs' => array (
130  'vendor' => array(
131  'type' => 'hidden',
132  'name' => 'vendor',
133  'value' => $this->_iUserId
134  ),
135  'client' => array(
136  'type' => 'text',
137  'name' => 'client',
138  'caption' => _t($this->_sLangsPrefix . "fcpt_client"),
139  'value' => ''
140  ),
141  'order' => array(
142  'type' => 'text',
143  'name' => 'order',
144  'caption' => _t($this->_sLangsPrefix . "fcpt_order"),
145  'value' => ''
146  ),
147  'module_id' => array(
148  'type' => 'select',
149  'name' => 'module_id',
150  'caption' => _t($this->_sLangsPrefix . "fcpt_module"),
151  'value' => '',
152  'values' => $aModules,
153  'attrs' => array(
154  'onchange' => 'javascript:' . $sJsObject . '.selectModule(this);'
155  )
156  ),
157  'add' => array(
158  'type' => 'submit',
159  'name' => 'add',
160  'colspan' => true,
161  'value' => _t($this->_sLangsPrefix . "btn_add"),
162  ),
163  )
164  );
165 
166  return $this->_oTemplate->displayManualOrderWindow($aForm);
167  }
168  function addManualOrder($aData)
169  {
170  $iVendorId = isset($aData['vendor']) ? (int)$aData['vendor'] : $this->_iUserId;
171 
172  if(!isset($aData['client']) || empty($aData['client']))
173  return array('code' => 2, 'message' => $this->_sLangsPrefix . 'err_wrong_client');
174 
175  $iClientId = 0;
176  if(($iClientId = $this->_oDb->userExists(process_db_input($aData['client'], CH_TAGS_STRIP))) === false)
177  return array('code' => 2, 'message' => $this->_sLangsPrefix . 'err_wrong_client');
178 
179  if($iVendorId == $iClientId)
180  return array('code' => 3, 'message' => $this->_sLangsPrefix . 'err_purchase_from_yourself');
181 
182  if(!isset($aData['order']) || empty($aData['order']))
183  return array('code' => 4, 'message' => $this->_sLangsPrefix . 'err_wrong_order');
184 
185  $sOrder = trim(process_db_input($aData['order'], CH_TAGS_STRIP));
186  if(empty($sOrder))
187  return array('code' => 4, 'message' => $this->_sLangsPrefix . 'err_wrong_order');
188 
189  $iModuleId = (int)$aData['module_id'];
190  if($iModuleId <= 0)
191  return array('code' => 5, 'message' => $this->_sLangsPrefix . 'err_wrong_module');
192 
193  if(!isset($aData['items']) || !is_array($aData['items']) || empty($aData['items']))
194  return array('code' => 6, 'message' => $this->_sLangsPrefix . 'err_empty_items');
195 
196  $aCartInfo = array('vendor_id' => $iVendorId, 'items_price' => 0, 'items' => array());
197  foreach($aData['items'] as $iItemId) {
198  $iItemId = (int)$iItemId;
199 
200  $sKeyPrice = 'item-price-' . $iItemId;
201  $sKeyQuantity = 'item-quantity-' . $iItemId;
202  if(!isset($aData[$sKeyQuantity]) || (int)$aData[$sKeyQuantity] <= 0)
203  return array('code' => 7, 'message' => $this->_sLangsPrefix . 'err_wrong_quantity');
204 
205  $aCartInfo['items_price'] += (float)$aData[$sKeyPrice] * (int)$aData[$sKeyQuantity];
206  $aCartInfo['items'][] = array(
207  'vendor_id' => $iVendorId,
208  'module_id' => $iModuleId,
209  'id' => $iItemId,
210  'quantity' => (int)$aData[$sKeyQuantity]
211  );
212  }
213  $iPendingId = $this->_oDb->insertPending($iClientId, 'manual', $aCartInfo);
214  $this->_oDb->updatePending($iPendingId, array(
215  'order' => $sOrder,
216  'error_code' => 0,
217  'error_msg' => 'Manually processed'
218  ));
219 
220  return (int)$iPendingId;
221  }
222 }
process_db_input
process_db_input($sText, $iStripTags=0)
Definition: utils.inc.php:256
ChPmtOrders\addManualOrder
addManualOrder($aData)
Definition: ChPmtOrders.php:168
ChPmtOrders
Definition: ChPmtOrders.php:9
ChPmtOrders\$_sLangsPrefix
$_sLangsPrefix
Definition: ChPmtOrders.php:15
CH_PMT_ORDERS_TYPE_PROCESSED
const CH_PMT_ORDERS_TYPE_PROCESSED
Definition: ChPmtModule.php:12
MsgBox
MsgBox($sText, $iTimer=0)
Definition: design.inc.php:175
ChPmtOrders\getManualOrderWindow
getManualOrderWindow()
Definition: ChPmtOrders.php:109
ChPmtOrders\getOrdersBlock
getOrdersBlock($sType, $iUserId=CH_PMT_EMPTY_ID)
Definition: ChPmtOrders.php:52
$aModule
$aModule
Definition: classifieds.php:21
ChPmtOrders\getMoreWindow
getMoreWindow()
Definition: ChPmtOrders.php:105
php
$iId
$iId
Definition: license.php:15
isLogged
isLogged()
Definition: profiles.inc.php:24
ChPmtOrders\report
report($sType, $aOrders)
Definition: ChPmtOrders.php:72
ChPmtOrders\$_iUserId
$_iUserId
Definition: ChPmtOrders.php:14
ChPmtOrders\getExtraJs
getExtraJs()
Definition: ChPmtOrders.php:29
ChPmtOrders\__construct
__construct($iUserId, &$oDb, &$oConfig, &$oTemplate)
Definition: ChPmtOrders.php:20
$sType
$sType
Definition: actions.inc.php:11
CH_PMT_ORDERS_TYPE_PENDING
const CH_PMT_ORDERS_TYPE_PENDING
Definition: ChPmtModule.php:11
$sTitle
$sTitle
Definition: actions.inc.php:13
ChPmtOrders\cancel
cancel($sType, $aOrders)
Definition: ChPmtOrders.php:80
$oDb
global $oDb
Definition: db.inc.php:39
ChPmtOrders\$_oTemplate
$_oTemplate
Definition: ChPmtOrders.php:12
$sContent
$sContent
Definition: bottom_menu_compose.php:169
_t
_t($key, $arg0="", $arg1="", $arg2="")
Definition: languages.inc.php:509
CH_PMT_EMPTY_ID
const CH_PMT_EMPTY_ID
Definition: ChPmtModule.php:16
ChPmtOrders\getOrders
getOrders($sType, $aParams)
Definition: ChPmtOrders.php:48
CH_TAGS_STRIP
const CH_TAGS_STRIP
Definition: utils.inc.php:22
$aModules
$aModules
Definition: constants.inc.php:29
ChPmtOrders\$_oDb
$_oDb
Definition: ChPmtOrders.php:10
$aForm
$aForm
Definition: forgot.php:43
empty
Attr AllowedRel this is empty
Definition: Attr.AllowedRel.txt:7
ChWsbService\call
static call($mixed, $sMethod, $aParams=array(), $sClass='Module')
Definition: ChWsbService.php:32
as
as
Definition: Filter.ExtractStyleBlocks.Escaping.txt:10
ChPmtOrders\getOrder
getOrder($sType, $iId)
Definition: ChPmtOrders.php:44
ChPmtOrders\$_oConfig
$_oConfig
Definition: ChPmtOrders.php:11