0% found this document useful (0 votes)
8 views

Admin News Controller

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Admin News Controller

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 13

AdminNewsController:

1)Thêm News:

/**

* Post create new item in admin

* @return [type] [description]

*/

public function postCreate()

1 $data = request()->all();

1 $langFirst = array_key_first(sc_language_all()->toArray());
//get first code language active

1 $data['alias'] = !empty($data['alias'])?$data['alias']:
$data['descriptions'][$langFirst]['title'];

1 $data['alias'] = sc_word_format_url($data['alias']);

1 $data['alias'] = sc_word_limit($data['alias'], 100);

1 $validator = Validator::make($data, [

1 'alias' => 'required|regex:/(^([0-9A-Za-z\-_]+)$)/|string|


max:100',

1 'descriptions.*.title' => 'required|string|max:200',

1 'descriptions.*.keyword' => 'nullable|string|max:200',

1 'descriptions.*.description' => 'nullable|string|max:300',

], [

1 'alias.regex' => trans('news.alias_validate'),

1 'descriptions.*.title.required' =>
trans('validation.required', ['attribute' => trans('news.title')]),

);

2 if ($validator->fails()) {

3 return redirect()->back()
3 ->withErrors($validator)

3 ->withInput($data);

4 $dataInsert = [

5'image' => $data['image'],

5'sort' => $data['sort'],

5'alias' => $data['alias'],

5 'status' => !empty($data['status']) ? 1 : 0,

5'store_id' => session('adminStoreId'),

];

6 $news = AdminNews::createNewsAdmin($dataInsert);

6 $id = $news->id;

6 $dataDes = [];

6 $languages = $this->languages;

7 foreach ($languages as $code => $value) {

8 $dataDes[] = [

8 'news_id' => $id,

8 'lang' => $code,

8 'title' => $data['descriptions'][$code]['title'],

8 'keyword' => $data['descriptions'][$code]


['keyword'],

8 'description' => $data['descriptions'][$code]


['description'],

8 'content' => $data['descriptions'][$code]


['content'],

];

9 AdminNews::insertDescriptionAdmin($dataDes);

9 sc_clear_cache('cache_news');
10 return redirect()->route('admin_news.index')->with('success',
trans('news.admin.create_success'));

2) Sửa News:
/**

* update status

*/

public function postEdit($id)

$news = AdminNews::getNewsAdmin($id);

if (!$news) {

return redirect()->route('admin.data_not_found')->with(['url'
=> url()->full()]);

$data = request()->all();

$langFirst = array_key_first(sc_language_all()->toArray()); //get


first code language active

$data['alias'] = !empty($data['alias'])?$data['alias']:
$data['descriptions'][$langFirst]['title'];

$data['alias'] = sc_word_format_url($data['alias']);

$data['alias'] = sc_word_limit($data['alias'], 100);

$validator = Validator::make($data, [

'descriptions.*.title' => 'required|string|max:200',

'descriptions.*.keyword' => 'nullable|string|max:200',

'descriptions.*.description' => 'nullable|string|max:300',

'alias' => 'required|regex:/(^([0-9A-Za-z\-_]+)$)/|string|


max:100',

], [

'alias.regex' => trans('news.alias_validate'),


'descriptions.*.title.required' =>
trans('validation.required', ['attribute' => trans('news.title')]),

);

if ($validator->fails()) {

return redirect()->back()

->withErrors($validator)

->withInput($data);

//Edit

$dataUpdate = [

'image' => $data['image'],

'alias' => $data['alias'],

'sort' => $data['sort'],

'status' => !empty($data['status']) ? 1 : 0,

'store_id' => session('adminStoreId'),

];

$news->update($dataUpdate);

$news->descriptions()->delete();

$dataDes = [];

foreach ($data['descriptions'] as $code => $row) {

$dataDes[] = [

'news_id' => $id,

'lang' => $code,

'title' => $row['title'],

'keyword' => $row['keyword'],

'description' => $row['description'],

'content' => $row['content'],

];
}

AdminNews::insertDescriptionAdmin($dataDes);

sc_clear_cache('cache_news');

return redirect()->route('admin_news.index')->with('success',
trans('news.admin.edit_success'));

}
3)Xóa News:

/*

Delete list Item

Need mothod destroy to boot deleting in model

*/

public function deleteList()

if (!request()->ajax()) {

return response()->json(['error' => 1, 'msg' => trans('admin.method_not_allow')]);

} else {

$ids = request('ids');

$arrID = explode(',', $ids);

$arrDontPermission = [];

foreach ($arrID as $key => $id) {

if(!$this->checkPermisisonItem($id)) {

$arrDontPermission[] = $id;

if (count($arrDontPermission)) {

return response()->json(['error' => 1, 'msg' => trans('admin.remove_dont_permisison') . ': ' .


json_encode($arrDontPermission)]);

}
AdminNews::destroy($arrID);

sc_clear_cache('cache_news');

return response()->json(['error' => 0, 'msg' => '']);

AdminOrderController:

1) Thêm Order:
public function postCreate()

$users = AdminCustomer::getListAll();

$data = request()->all();

$validate = [

'first_name' => 'required|max:100',

'address1' => 'required|max:100',

'exchange_rate' => 'required',

'currency' => 'required',

'status' => 'required',

'payment_method' => 'required',

'shipping_method' => 'required',

];

if(sc_config_admin('customer_lastname')) {

$validate['last_name'] = 'required|max:100';

if(sc_config_admin('customer_address2')) {

$validate['address2'] = 'required|max:100';

if(sc_config_admin('customer_address3')) {

$validate['address3'] = 'required|max:100';

}
if(sc_config_admin('customer_phone')) {

$validate['phone'] = 'required|regex:/^0[^0][0-9\-]{7,13}$/';

if(sc_config_admin('customer_country')) {

$validate['country'] = 'required|min:2';

if(sc_config_admin('customer_postcode')) {

$validate['postcode'] = 'required|min:5';

if(sc_config_admin('customer_company')) {

$validate['company'] = 'required|min:3';

$messages = [

'last_name.required' => trans('validation.required',


['attribute'=> trans('cart.last_name')]),

'first_name.required' => trans('validation.required',


['attribute'=> trans('cart.first_name')]),

'email.required' => trans('validation.required',


['attribute'=> trans('cart.email')]),

'address1.required' => trans('validation.required',


['attribute'=> trans('cart.address1')]),

'address2.required' => trans('validation.required',


['attribute'=> trans('cart.address2')]),

'address3.required' => trans('validation.required',


['attribute'=> trans('cart.address3')]),

'phone.required' => trans('validation.required',


['attribute'=> trans('cart.phone')]),

'country.required' => trans('validation.required',


['attribute'=> trans('cart.country')]),

'postcode.required' => trans('validation.required',


['attribute'=> trans('cart.postcode')]),

'company.required' => trans('validation.required',


['attribute'=> trans('cart.company')]),

'sex.required' => trans('validation.required',


['attribute'=> trans('cart.sex')]),
'birthday.required' => trans('validation.required',
['attribute'=> trans('cart.birthday')]),

'email.email' => trans('validation.email',


['attribute'=> trans('cart.email')]),

'phone.regex' => trans('customer.phone_regex'),

'postcode.min' => trans('validation.min',


['attribute'=> trans('cart.postcode')]),

'country.min' => trans('validation.min',


['attribute'=> trans('cart.country')]),

'first_name.max' => trans('validation.max',


['attribute'=> trans('cart.first_name')]),

'email.max' => trans('validation.max',


['attribute'=> trans('cart.email')]),

'address1.max' => trans('validation.max',


['attribute'=> trans('cart.address1')]),

'address2.max' => trans('validation.max',


['attribute'=> trans('cart.address2')]),

'address3.max' => trans('validation.max',


['attribute'=> trans('cart.address3')]),

'last_name.max' => trans('validation.max',


['attribute'=> trans('cart.last_name')]),

'birthday.date' => trans('validation.date',


['attribute'=> trans('cart.birthday')]),

'birthday.date_format' => trans('validation.date_format',


['attribute'=> trans('cart.birthday')]),

'shipping_method.required' =>
trans('cart.validation.shippingMethod_required'),

'payment_method.required' =>
trans('cart.validation.paymentMethod_required'),

];

$validator = Validator::make($data, $validate, $messages);

if ($validator->fails()) {

return redirect()->back()
->withErrors($validator)

->withInput();

//Create new order

$dataInsert = [

'customer_id' => $data['customer_id'],

'first_name' => $data['first_name'],

'last_name' => $data['last_name'] ?? '',

'status' => $data['status'],

'currency' => $data['currency'],

'address1' => $data['address1'],

'address2' => $data['address2'] ?? '',

'address3' => $data['address3'] ?? '',

'country' => $data['country'] ?? '',

'company' => $data['company'] ?? '',

'postcode' => $data['postcode'] ?? '',

'phone' => $data['phone'] ?? '',

'payment_method' => $data['payment_method'],

'shipping_method' => $data['shipping_method'],

'exchange_rate' => $data['exchange_rate'],

'email' => $users[$data['customer_id']]['email'],

'comment' => $data['comment'],

];

$order = AdminOrder::create($dataInsert);

AdminOrder::insertOrderTotal([

['code' => 'subtotal', 'value' => 0, 'title' => 'Subtotal',


'sort' => 1, 'order_id' => $order->id],

['code' => 'tax', 'value' => 0, 'title' => 'Tax', 'sort' =>
2, 'order_id' => $order->id],

['code' => 'shipping', 'value' => 0, 'title' => 'Shipping',


'sort' => 10, 'order_id' => $order->id],
['code' => 'discount', 'value' => 0, 'title' => 'Discount',
'sort' => 20, 'order_id' => $order->id],

['code' => 'total', 'value' => 0, 'title' => 'Total', 'sort'


=> 100, 'order_id' => $order->id],

['code' => 'received', 'value' => 0, 'title' => 'Received',


'sort' => 200, 'order_id' => $order->id],

]);

//

return redirect()->route('admin_order.index')->with('success',
trans('order.admin.create_success'));

}
2) Sửa Order:

/**

* process update order

* @return [json] [description]

*/

public function postOrderUpdate()

$id = request('pk');

$code = request('name');

$value = request('value');

if ($code == 'shipping' || $code == 'discount' || $code == 'received') {

$orderTotalOrigin = AdminOrder::getRowOrderTotal($id);

$orderId = $orderTotalOrigin->orderId;

$oldValue = $orderTotalOrigin->value;

$order = AdminOrder::getOrderAdmin($orderId);

if (!$order) {

return response()->json(['error' => 1, 'msg' => trans('admin.data_not_found_detail', ['msg' =>


'order#'.$orderId]), 'detail' => '']);

}
$dataRowTotal = [

'id' => $id,

'code' => $code,

'value' => $value,

'text' => sc_currency_render_symbol($value, $order->currency),

];

AdminOrder::updateRowOrderTotal($dataRowTotal);

} else {

$orderId = $id;

$order = AdminOrder::getOrderAdmin($orderId);

if (!$order) {

return response()->json(['error' => 1, 'msg' => trans('admin.data_not_found_detail', ['msg' =>


'order#'.$orderId]), 'detail' => '']);

$oldValue = $order->{$code};

$order->update([$code => $value]);

//Add history

$dataHistory = [

'order_id' => $orderId,

'content' => 'Change <b>' . $code . '</b> from <span style="color:blue">\'' . $oldValue . '\'</span>
to <span style="color:red">\'' . $value . '\'</span>',

'admin_id' => Admin::user()->id,

'order_status_id' => $order->status,

];

(new AdminOrder)->addOrderHistory($dataHistory);

$orderUpdated = AdminOrder::getOrderAdmin($orderId);
if ($orderUpdated->balance == 0 && $orderUpdated->total != 0) {

$style = 'style="color:#0e9e33;font-weight:bold;"';

} else

if ($orderUpdated->balance < 0) {

$style = 'style="color:#ff2f00;font-weight:bold;"';

} else {

$style = 'style="font-weight:bold;"';

$blance = '<tr ' . $style . ' class="data-balance"><td>' . trans('order.balance') . ':</td><td


align="right">' . sc_currency_format($orderUpdated->balance) . '</td></tr>';

return response()->json(['error' => 0, 'detail' =>

'total' => sc_currency_format($orderUpdated->total),

'subtotal' => sc_currency_format($orderUpdated->subtotal),

'tax' => sc_currency_format($orderUpdated->tax),

'shipping' => sc_currency_format($orderUpdated->shipping),

'discount' => sc_currency_format($orderUpdated->discount),

'received' => sc_currency_format($orderUpdated->received),

'balance' => $blance,

],

'msg' => trans('order.admin.update_success')

]);

3) Xóa Order:

/*

Delete list order ID

Need mothod destroy to boot deleting in model

*/

public function deleteList()


{

1 if (!request()->ajax()) {

2 return response()->json(['error' => 1, 'msg' => trans('admin.method_not_allow')]);

3 } else {

4 $ids = request('ids');

4 $arrID = explode(',', $ids);

4 $arrDontPermission = [];

5 foreach ($arrID as $key => $id) {

6 if(!$this->checkPermisisonItem($id)) {

7 $arrDontPermission[] = $id;

8 if (count($arrDontPermission)) {

9 return response()->json(['error' => 1, 'msg' => trans('admin.remove_dont_permisison') . ': ' .


json_encode($arrDontPermission)]);

10 } else {

11 AdminOrder::destroy($arrID);

12 return response()->json(['error' => 0, 'msg' => trans('order.admin.update_success')]);

You might also like