23 $this->_oConfig = &$oConfig;
24 $this->_oTemplate = &$oTemplate;
26 $this->_iUserId = $iUserId;
27 $this->_sLangsPrefix = $this->_oConfig->getLangsPrefix();
31 $sJsClass = $this->_oConfig->getJsClass(
'orders');
32 $sJsObject = $this->_oConfig->getJsObject(
'orders');
35 var <?=$sJsObject; ?> = new <?=$sJsClass; ?>({
36 sActionUrl:
'<?=CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri(); ?>',
37 sObjName:
'<?=$sJsObject; ?>'
40 $sJsContent = ob_get_clean();
42 return $this->_oTemplate->parseHtmlByTemplateName(
'script', array(
'content' => $sJsContent));
46 return $this->_oTemplate->displayOrder(
$sType,
$iId);
50 return $this->_oTemplate->displayOrders(
$sType, $aParams);
54 $sLangsPrefix = $this->_oConfig->getLangsPrefix();
57 return MsgBox(
_t($sLangsPrefix .
'err_required_login'));
59 $sBaseUrl = CH_WSB_URL_ROOT . $this->_oConfig->getBaseUri();
61 $sJsObject = $this->_oConfig->getJsObject(
'orders');
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'))
68 $sTitle = $this->_sLangsPrefix . (
$sType ==
'processed' ?
'bcpt_processed_orders' :
'bcpt_pending_orders');
74 $sMethodName =
"report" . ucfirst(
$sType) .
"Orders";
75 if(!$this->_oDb->$sMethodName($aOrders))
76 return array(
'code' => 3,
'message' => $this->_sLangsPrefix .
'err_unknown');
78 return array(
'code' => 10,
'message' => $this->_sLangsPrefix .
'inf_successfully_reported');
82 $sMethodName =
"cancel" . ucfirst(
$sType) .
"Orders";
85 foreach($aOrders
as $iOrderId) {
86 $aOrder = $this->_oDb->getProcessed(array(
'type' =>
'id',
'id' => $iOrderId));
88 (
int)$aOrder[
'module_id'],
89 'unregister_cart_item',
94 $aOrder[
'item_count'],
100 if(!$this->_oDb->$sMethodName($aOrders))
101 return array(
'code' => 3,
'message' => $this->_sLangsPrefix .
'err_unknown');
103 return array(
'code' => 0,
'message' =>
'');
107 return $this->_oTemplate->displayMoreWindow();
111 $sJsObject = $this->_oConfig->getJsObject(
'orders');
112 $aModulesInfo = $this->_oDb->getModules();
115 array(
'key' =>
'0',
'value' =>
_t($this->_sLangsPrefix .
'ocpt_select'))
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/',
126 'enctype' =>
'multipart/form-data',
127 'target' =>
'pmt-manual-order-iframe'
133 'value' => $this->_iUserId
138 'caption' =>
_t($this->_sLangsPrefix .
"fcpt_client"),
144 'caption' =>
_t($this->_sLangsPrefix .
"fcpt_order"),
147 'module_id' => array(
149 'name' =>
'module_id',
150 'caption' =>
_t($this->_sLangsPrefix .
"fcpt_module"),
154 'onchange' =>
'javascript:' . $sJsObject .
'.selectModule(this);'
161 'value' =>
_t($this->_sLangsPrefix .
"btn_add"),
166 return $this->_oTemplate->displayManualOrderWindow(
$aForm);
170 $iVendorId = isset($aData[
'vendor']) ? (int)$aData[
'vendor'] : $this->_iUserId;
172 if(!isset($aData[
'client']) ||
empty($aData[
'client']))
173 return array(
'code' => 2,
'message' => $this->_sLangsPrefix .
'err_wrong_client');
177 return array(
'code' => 2,
'message' => $this->_sLangsPrefix .
'err_wrong_client');
179 if($iVendorId == $iClientId)
180 return array(
'code' => 3,
'message' => $this->_sLangsPrefix .
'err_purchase_from_yourself');
182 if(!isset($aData[
'order']) ||
empty($aData[
'order']))
183 return array(
'code' => 4,
'message' => $this->_sLangsPrefix .
'err_wrong_order');
187 return array(
'code' => 4,
'message' => $this->_sLangsPrefix .
'err_wrong_order');
189 $iModuleId = (int)$aData[
'module_id'];
191 return array(
'code' => 5,
'message' => $this->_sLangsPrefix .
'err_wrong_module');
193 if(!isset($aData[
'items']) || !is_array($aData[
'items']) ||
empty($aData[
'items']))
194 return array(
'code' => 6,
'message' => $this->_sLangsPrefix .
'err_empty_items');
196 $aCartInfo = array(
'vendor_id' => $iVendorId,
'items_price' => 0,
'items' => array());
197 foreach($aData[
'items']
as $iItemId) {
198 $iItemId = (int)$iItemId;
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');
205 $aCartInfo[
'items_price'] += (float)$aData[$sKeyPrice] * (
int)$aData[$sKeyQuantity];
206 $aCartInfo[
'items'][] = array(
207 'vendor_id' => $iVendorId,
208 'module_id' => $iModuleId,
210 'quantity' => (
int)$aData[$sKeyQuantity]
213 $iPendingId = $this->_oDb->insertPending($iClientId,
'manual', $aCartInfo);
214 $this->_oDb->updatePending($iPendingId, array(
217 'error_msg' =>
'Manually processed'
220 return (
int)$iPendingId;