Viewing file: CustomerController.php (5.17 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use App\Models\Product;
use App\Models\ProductTranslation;
use App\Models\Sale;
use App\Models\SaleItem;
use App\Models\Customer;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Carbon\Carbon;
use DateTime;
class CustomerController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
//
}
// get product
function index($vendor_id,Request $req)
{
if (count($req->query())===0) {
$customers= Customer::where("vendor_id",$vendor_id)->get();
return response()->json(["data"=>$customers]);
}else{
$pr= new Customer;
$table = $pr->getTable();
$columns = \Schema::getColumnListing($table);
$customers = Customer::query();
$params = $req->query();
foreach ($params as $key => $value) {
if (in_array($key,$columns,true)) {
if (!empty($value) || $value==0){
$customers->where($key,$value);
}
}else{
return response()->json(['error' => 'true', 'message' =>"invalid parameter ".$key]);
}
}
$customers=$customers->where("vendor_id",$vendor_id)->get();
return response()->json(["data"=>$customers]);
}
}
public function create($vendor_id,Request $req)
{
$pr= new Customer;
$pr_table = $pr->getTable();
$columns = \Schema::getColumnListing($pr_table);
$params = collect($req->all())->keys();
foreach ($params as $key) {
if (in_array($key,$columns,true)) {
continue;
}else{
return response()->json(['error' => 'true', 'message' =>"invalid field ".$key]);
}
}
DB::beginTransaction();
try {
$customer = Customer::create([
'page_id' =>$req->input("page_id"),
'psid' =>$req->input("psid"),
'phone' => $req->input('phone'),
'name' => $req->input('name'),
'gender' => $req->input('gender'),
'district' => $req->input('district'),
'upazila' => $req->input('upazila'),
'address' => $req->input('address'),
'timezone' => $req->input('timezone'),
'customer_type' => $req->input('customer_type'),
'vendor_id' => $vendor_id,
]);
} catch (\Exception $exception) {
DB::rollback();
return response()->json(['error' => 'true', 'message' =>$exception->errorInfo[2]]);
}
if ($customer) {
DB::commit();
$d = new DateTime();
$t=$d->format("ymdHisv");
$data=["customer_id"=>$customer->id,"_id"=>$t];
return response()->json(['message' => "Customer Added Successfully","data"=>$data]);
} else {
DB::rollback();
return response()->json(['error' => 'true','message' => "Something is wrong please try again"]);
}
}
public function updatePhone(Request $req)
{
// $customer = Customer::where('page_id',$req->input('page_id'))->where('psid',$req->input('psid'))->update([
// 'phone' => $req->input('phone')
// ]);
try {
$customer = Customer::where('page_id',$req->input('page_id'))->where('psid',$req->input('psid'))->update([
'phone' => $req->input('phone')
]);
} catch (\Exception $exception) {
return response()->json(['error' => 'true']);
}
return response()->json(['error' => 'false']);
}
public function updatePosCustomer($customer_id,Request $req)
{
// $customer = Customer::where('page_id',$req->input('page_id'))->where('psid',$req->input('psid'))->update([
// 'phone' => $req->input('phone')
// ]);
DB::beginTransaction();
try {
$customer = Customer::where('id',$customer_id)->update([
'name' => $req->input('name'),
'phone' => $req->input('phone'),
"email" => $req->input('email'),
'district' => $req->input('district'),
'upazila' => $req->input('upazila'),
'address' => $req->input('address')
]);
} catch (\Exception $exception) {
DB::rollback();
return response()->json(['error' => 'true', 'message' =>$exception->errorInfo[2]]);
}
// return $customer;
// if ($customer) {
DB::commit();
return response()->json(['message' => "Customer Update Successfully"]);
// } else {
// DB::rollback();
// return response()->json(['error' => 'true','message' => "Something is wrong please try again"]);
// }
}
}
|