-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdfa
More file actions
291 lines (291 loc) · 13.7 KB
/
Copy pathdfa
File metadata and controls
291 lines (291 loc) · 13.7 KB
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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
[1mdiff --cc .env[m
[1mindex 922742d,2bf9b74..0000000[m
mode 100755,100755..100644[m
[1m--- a/.env[m
[1m+++ b/.env[m
[36m@@@ -13,15 -13,15 +13,25 @@@[m [mDB_CONNECTION=mysq[m
DB_HOST=localhost[m
DB_PORT=3306[m
DB_DATABASE=finaldev_zwing[m
[32m++<<<<<<< Updated upstream[m
[32m +DB_USERNAME=sudhanshu[m
[32m +DB_PASSWORD=one2@Three[m
[32m++=======[m
[32m+ DB_USERNAME=root[m
[32m+ DB_PASSWORD=[m
[32m++>>>>>>> Stashed changes[m
[m
DB_CONNECTION1=mysql1[m
DB_HOST1=localhost[m
DB_PORT1=3306[m
DB_DATABASE1=finaldev_zwing[m
[32m++<<<<<<< Updated upstream[m
[32m +DB_USERNAME1=sudhanshu[m
[32m +DB_PASSWORD1=one2@Three[m
[32m++=======[m
[32m+ DB_USERNAME1=root[m
[32m+ DB_PASSWORD1=[m
[32m++>>>>>>> Stashed changes[m
[m
#DB_CONNECTION2=mongodb[m
#DB_HOST2=localhost[m
[1mdiff --cc app/Http/Controllers/Vmart/PromotionController.php[m
[1mindex 2d519a6,962bd80..0000000[m
mode 100755,100644..100644[m
[1m--- a/app/Http/Controllers/Vmart/PromotionController.php[m
[1m+++ b/app/Http/Controllers/Vmart/PromotionController.php[m
[36m@@@ -32,9 -31,11 +32,17 @@@[m [mclass PromotionController extends Contr[m
$qty = $params['qty'];[m
$mapping_store_id = $params['mapping_store_id'];[m
$carts = $params['carts'];[m
[32m++<<<<<<< Updated upstream[m
[32m + $item = $params['item'] = $this->getItemOfferDetails($params);[m
[32m + // dd($params);[m
[32m + $allPromotions = $this->getAllPromotions($params);[m
[32m++=======[m
[32m+ //$item = $params['item'] = $this->getItemOfferDetails($params);[m
[32m+ [m
[32m+ $this->filterAllPromotions($params);[m
[32m+ [m
[32m+ //$allPromotions = $this->getAllPromotions($params);[m
[32m++>>>>>>> Stashed changes[m
[m
}[m
[m
[36m@@@ -63,7 -63,8 +71,12 @@@[m
$item->DEPARTMENT_CODE = $item->GRPCODE;[m
$item->ARTICLE_CODE = $article->CODE;[m
[m
[32m++<<<<<<< Updated upstream[m
[32m + // dd($item);[m
[32m++=======[m
[32m+ [m
[32m+ dd($item);[m
[32m++>>>>>>> Stashed changes[m
return $item;[m
}[m
[m
[36m@@@ -74,183 -75,55 +87,218 @@@[m
* @param Array $params [m
* @return Array|Object All Offer of paticular items[m
*/[m
[31m - public function getAllPromotions($params){[m
[32m + public function getAllPromotions($params)[m
[32m + {[m
[32m + $current_date = date('Y-m-d');[m
[32m + date_default_timezone_set('Asia/Kolkata');[m
[32m + $assortment_code_list_with_promo = array();[m
[32m + $assortment_list_data = array();[m
[32m + $promo_list = array();[m
[32m + $cloumn_list = array('ppa.PROMO_CODE','ppa.STARTDATE','ppa.ENDDATE','ppa.PRIORITY','pb.ASSORTMENT_CODE', 'pb.ASSORTMENT_NAME','pai.DIVISION_GRPCODE as IDIVISION','pai.SECTION_GRPCODE as ISECTION','pai.DEPARTMENT_GRPCODE as IDEPARTMENT','pai.INVARTICLE_CODE as IARTICLE','pai.ICODE as IICODE','pai.CCODE1 as ICCODE1','pai.CCODE2 as ICCODE2','pai.CCODE3 as ICCODE3','pai.CCODE4 as ICCODE4','pai.CCODE5 as ICCODE5','pai.CCODE6 as ICCODE6','pai.PRICE_RANGE_BASIS as IBASIS','pai.PRICE_RANGE_FROM as IPFROM','pai.PRICE_RANGE_TO as IPTO','pai.STOCKINDATE_FROM as IDATEFROM','pai.STOCKINDATE_TO as IDATETO','pai.QTY as IQTY','pai.CODE as ICODE','pai.DESC1 as IDESC1','pai.DESC2 as IDESC2','pai.DESC3 as IDESC3','pai.DESC4 as IDESC4','pai.DESC5 as IDESC5','pai.DESC6 as IDESC6','pae.DIVISION_GRPCODE as EDIVISION','pae.SECTION_GRPCODE as ESECTION','pae.DEPARTMENT_GRPCODE as EDEPARTMENT','pae.INVARTICLE_CODE as EARTICLE','pae.ICODE as EICODE','pae.CCODE1 as ECCODE1','pae.CCODE2 as ECCODE2','pae.CCODE3 as ECCODE3','pae.CCODE4 as ECCODE4','pae.CCODE5 as ECCODE5','pae.CCODE6 as ECCODE6','pae.PRICE_RANGE_BASIS as EBASIS','pae.PRICE_RANGE_FROM as EPFROM','pae.PRICE_RANGE_TO as EPTO','pae.STOCKINDATE_FROM as EDATEFROM','pae.STOCKINDATE_TO as EDATETO','pae.CODE as ECODE','pae.DESC1 as EDESC1','pae.DESC2 as EDESC2','pae.DESC3 as EDESC3','pae.DESC4 as EDESC4','pae.DESC5 as EDESC5','pae.DESC6 as EDESC6');[m
[32m + // Get all promotions of requested store & filter from psite_ptomo_assign table[m
[32m + $store_promo_list = DB::table($this->store_db_name.'.psite_promo_assign as ppa')[m
[32m + ->select($cloumn_list)[m
[32m + ->join($this->store_db_name.'.promo_buy as pb', 'pb.PROMO_CODE', 'ppa.PROMO_CODE')[m
[32m + ->join($this->store_db_name.'.promo_assortment_include as pai', 'pai.ASSORTMENT_CODE', 'pb.ASSORTMENT_CODE')[m
[32m + ->leftJoin($this->store_db_name.'.promo_assortment_exclude as pae', 'pae.ASSORTMENT_CODE', 'pb.ASSORTMENT_CODE')[m
[32m + ->where('ppa.ADMSITE_CODE', $params['mapping_store_id'])[m
[32m + ->where('ppa.STATUS', 'A')->get();[m
[32m +[m
[32m + // dd($store_promo_list);[m
[32m +[m
[32m + // Exclude expire promotion & get all assortment code[m
[32m + foreach ($store_promo_list as $key => $value) {[m
[32m + $startdate = $this->convert_in_indian_date_format($value->STARTDATE);[m
[32m + $enddate = $this->convert_in_indian_date_format($value->ENDDATE);[m
[32m + if (($current_date >= $startdate) && ($current_date <= $enddate)) {[m
[32m + if (!empty($this->promotionDerivation($value, $params['item']))) {[m
[32m + $promo_list[] = $this->promotionDerivation($value, $params['item']);;[m
[32m + }[m
[32m + } else {[m
[32m + unset($store_promo_list[$key]);[m
[32m + }[m
[32m + }[m
[32m + // dd($promo_list);[m
[32m + // Get all promotion condition[m
[32m +[m
[32m + foreach ($promo_list as $key => $value) {[m
[32m + $promo_slab = DB::table($this->store_db_name.'.promo_master as pm')[m
[32m + ->join($this->store_db_name.'.promo_slab as ps', 'ps.promo_code', 'pm.code')[m
[32m + ->where('pm.code', $value->PROMO_CODE)[m
[32m + ->first();[m
[32m + }[m
[32m +[m
[32m + dd($promo_slab);[m
[32m +[m
[32m + }[m
[32m +[m
[32m + public function promotionDerivation($params, $item) {[m
[32m + // dd($params);[m
[32m + $data = array();[m
[32m + $return_data = [];[m
[32m + $data['inc_division'] = $this->includeMatchCheckNullCheck($item->DIVISION_CODE, $params->IDIVISION);[m
[32m + $data['inc_section'] = $this->includeMatchCheckNullCheck($item->SECTION_CODE, $params->ISECTION);[m
[32m + $data['inc_department'] = $this->includeMatchCheckNullCheck($item->DEPARTMENT_CODE, $params->IDEPARTMENT);[m
[32m + $data['inc_article'] = $this->includeMatchCheckNullCheck($item->ARTICLE_CODE, $params->IARTICLE);[m
[32m + $data['inc_icode'] = $this->includeMatchCheckNullCheck($item->ICODE, $params->IICODE);[m
[32m + $data['inc_category_1'] = $this->includeMatchCheckNullCheck($item->CCODE1, $params->ICCODE1);[m
[32m + $data['inc_category_2'] = $this->includeMatchCheckNullCheck($item->CCODE1, $params->ICCODE2);[m
[32m + $data['inc_category_3'] = $this->includeMatchCheckNullCheck($item->CCODE1, $params->ICCODE3);[m
[32m + $data['inc_category_4'] = $this->includeMatchCheckNullCheck($item->CCODE1, $params->ICCODE4);[m
[32m + $data['inc_category_5'] = $this->includeMatchCheckNullCheck($item->CCODE1, $params->ICCODE5);[m
[32m + $data['inc_category_6'] = $this->includeMatchCheckNullCheck($item->CCODE1, $params->ICCODE6);[m
[32m + $data['inc_stock_check'] = $this->includeMatchCheckNullOrDateCheck($item->GENERATED, $params);[m
[32m + $data['inc_price_range'] = $this->includeMatchCheckNullOrRangerCheck($item->LISTED_MRP, $params);[m
[32m + $data['inc_desc_1'] = $this->includeMatchCheckNullCheck($item->DESC1, $params->IDESC1);[m
[32m + $data['inc_desc_2'] = $this->includeMatchCheckNullCheck($item->DESC2, $params->IDESC2);[m
[32m + $data['inc_desc_3'] = $this->includeMatchCheckNullCheck($item->DESC3, $params->IDESC3);[m
[32m + $data['inc_desc_4'] = $this->includeMatchCheckNullCheck($item->DESC4, $params->IDESC4);[m
[32m + $data['inc_desc_5'] = $this->includeMatchCheckNullCheck($item->DESC5, $params->IDESC5);[m
[32m + $data['inc_desc_6'] = $this->includeMatchCheckNullCheck($item->DESC6, $params->IDESC6);[m
[32m + // dd($data);[m
[32m + // $data['code'] = $acode.'-'.$code;[m
[32m + // $acode = array_push($acode, ['CODE' => $code]);[m
[32m + // $return_data = ['ASSORTMENT_CODE' => $acode['ASSORTMENT_CODE'], 'PROMO_CODE' => $acode['PROMO_CODE'], 'CODE' => $code];[m
[32m + if (in_array(2, $data)) {[m
[32m + return 0;[m
[32m + } else {[m
[32m + return $params;[m
[32m + }[m
[32m + }[m
[m
[32m + public function includeMatchCheckNullCheck($ivalue, $pvalue) {[m
[32m + // dd($pvalue);[m
[32m + if (!empty($pvalue)) {[m
[32m + if ($pvalue == $ivalue) {[m
[32m + return 0;[m
[32m + } else {[m
[32m + return 2;[m
[32m + }[m
[32m + } else {[m
[32m + return 0;[m
[32m + }[m
}[m
[m
[32m + public function includeMatchCheckNullOrDateCheck($ivalue, $pvalue) {[m
[32m + // dd($pvalue);[m
[32m + if (!empty($pvalue->IDATEFROM) && !empty($pvalue->IDATETO)) {[m
[32m + $stockindate = date('Y-m-d', strtotime($ivalue));[m
[32m + $stock_from = $this->convert_in_indian_date_format($pvalue->IDATEFROM);[m
[32m + $stock_to = $this->convert_in_indian_date_format($pvalue->IDATETO);[m
[32m + if (($stockindate >= $stock_from) && ($stockindate <= $stock_to)) {[m
[32m + return 1;[m
[32m + } else {[m
[32m + return 2;[m
[32m + }[m
[32m + } else {[m
[32m + return 0;[m
[32m + }[m
[32m + }[m
[32m +[m
[32m + public function includeMatchCheckNullOrRangerCheck($ivalue, $pvalue) {[m
[32m + if (!empty($pvalue->IPFROM) && !empty($pvalue->IPTO)) {[m
[32m + if ($ivalue >= $pvalue->IPFROM && $ivalue <= $pvalue->IPTO) {[m
[32m + return 1;[m
[32m + } else {[m
[32m + return 2;[m
[32m + }[m
[32m + } else {[m
[32m + return 0;[m
[32m + }[m
[32m + }[m
[32m +[m
[32m + [m
[m
/**[m
[31m - * filtering all offer based on validation such date or status [m
[32m + * This function will calculate All Rule / Promotions[m
* [m
[31m - * @param Array $params [m
[31m - * @return Array|Object All Offer of paticular items[m
*/[m
[31m - public function filterAllPromotions($params){[m
[32m + public function calculatingAllPromotions($params){//INcomplete function need to implement[m
[32m +[m
[32m + $promotions = $params['promotions'];[m
[32m + $carts = $params['carts']; [m
[32m + $final_data = [];[m
[32m + $offer =[];[m
[32m + $allOffer= [];[m
[m
[32m+ // $this->store_db_name;[m
[32m+ [m
[32m+ $promo_list = array(1,2,3,4);[m
[32m+ $scode = @$params['scode'];[m
[32m+ [m
[32m+ $promo_m_slab = DB::table($this->store_db_name.'.promo_slab AS pslb')[m
[32m+ ->select('pslb.SIMPLE_FACTOR', 'pslb.SLAB_RANGE_FROM', 'pslb.SLAB_RANGE_TO', 'pslb.GET_BENEFIT_CODE', 'pslb.GET_FACTOR', 'pslb.GET_ASSORTMENT_CODE', 'pslb.DISCOUNT_TYPE', 'pslb.DISCOUNT_PRICE_BASIS', 'pslb.SLAB_CODE', 'pmst.NAME', 'pmst.TYPE', 'pmst.BASIS', 'pmst.BUY_FACTOR_TYPE', 'pslb.PROMO_CODE')[m
[32m+ ->join($this->store_db_name.'.promo_master AS pmst','pmst.CODE','pslb.PROMO_CODE')[m
[32m+ ->whereIn('pslb.PROMO_CODE',$promo_list)[m
[32m+ [m
[32m+ ->orderBy('pslb.SLAB_CODE','DESC')[m
[32m+ ->get();[m
[32m+ [m
[32m+ /*$promotionType = array();[m
[32m+ foreach($promo_m_slab as $fetch){[m
[32m+ [m
[32m+ $promotionType['NAME'] = $fetch->NAME;[m
[32m+ $promotionType['TYPE'] = $fetch->TYPE;[m
[32m+ $promotionType['BASIS'] = $fetch->BASIS;[m
[32m+ $promotionType['GET_BENEFIT_CODE'] = $fetch->GET_BENEFIT_CODE;[m
[32m+ }*/[m
[32m+ [m
[32m+ print_r($promo_m_slab);[m
[32m+ [m
[32m+ //print_r($promo_m_slab);[m
[32m+ [m
[32m+ [m
[32m+ [m
[32m+ /*//->join('vmart.psite_promo_assign', 'promo_slab.PROMO_CODE', '=', 'psite_promo_assign.PROMO_CODE')[m
[32m+ ->join('vmart.promo_master', 'promo_slab.PROMO_CODE', '=', 'promo_master.CODE')[m
[32m+ ->where('psite_promo_assign.ADMSITE_CODE', $scode)[m
[32m+ ->whereIn('promo_slab.PROMO_CODE', $promo_list)[m
[32m+ ->orderBy('psite_promo_assign.PRIORITY', 'desc')[m
[32m+ ->orderBy('promo_slab.SLAB_CODE', 'desc')[m
[32m+ ->get();*/[m
[m
[32m + foreach ($promotions as $key => $promotion) {[m
[32m + $params[''] = $promotion;[m
[32m + $offer = $this->calculatingIndividualPromotions($params);[m
[32m +[m
[32m + $allOffer[] = $offer; [m
[32m + }[m
[32m +[m
[32m + //Getting Best offer from All offer based of client condition[m
[32m + foreach($allOffer as $offer){[m
[32m +[m
[32m + }[m
[32m +[m
[32m + return $offer;[m
[32m +[m
[32m + }[m
[32m +[m
[32m + /**[m
[32m + * This function will calculate Individual Rule / Promotions[m
[32m + * [m
[32m + */[m
[32m + public function calculatingIndividualPromotions($params){//INcomplete function need to implement[m
[32m +[m
[32m + $promotion = $params['promotion'];[m
[32m + $carts = $params['carts']; [m
[32m + $allSources = $params['all_sources'];//Will contain item of same assortment[m
[32m + $cartOfSourceItems = [];//Will contain item of same assortment[m
[32m +[m
[32m +[m
[32m + //Getting only item from cart which is present in all Sources and splittig by qty[m
[32m +[m
[32m + $total_qty = 0;[m
[32m + foreach ($carts as $key => $items) {[m
[32m + if(in_array($items['item_id'] , $allSources) ){[m
[32m + while($items['qty'] > 0){[m
[32m + $cartOfSourceItems[] = ['item_id' =>$items['item_id'] , 'unit_mrp' => $items['unit_mrp'] ,'qty' => 1 ] ;[m
[32m + $items['qty']--;[m
[32m + $total_qty++;[m
[32m + }[m
[32m + }[m
[32m + }[m
[32m +[m
[32m + [m
}[m
[m
[m