diff --git a/app/Http/Controllers/PackageController.php b/app/Http/Controllers/PackageController.php index 65266a08..5637e327 100644 --- a/app/Http/Controllers/PackageController.php +++ b/app/Http/Controllers/PackageController.php @@ -3,13 +3,17 @@ namespace App\Http\Controllers; use App\Http\Requests\StorePackageRequest; +use App\Item; use App\Package; use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; class PackageController extends Controller { public function index( Request $request ) { + DB::table("item_package")->delete(); + dd(1); $user = auth( 'api' )->user(); $Packages = Package::when( $user->cant( 'showAll' , Package::class ) , function ( $query ) use ( $user ) { @@ -73,20 +77,13 @@ class PackageController extends Controller 'verified' => 'NotVerified' , ]; $PackageObj = Package::create( $PackageData ); - $Items = []; - $count = 1; - foreach ( $request->items as $key => $item ) { - if ( array_key_exists( $item[ 'id' ] , $Items ) ) { - $preCount = $Items[ $item[ 'id' ] ]; - $Items[ $item[ 'id' ] ] = $preCount + 1; - } else { - $Items[ $item[ 'id' ] ] = $count; + foreach ( $request->items as $itemId ) { + $item = Item::where( "id" , $itemId )->first(); + if ( $item ) { + $item->packages()->detach(); + $PackageObj->items()->attach( $item->id , [ 'count' => 1 ] ); } } - - foreach ( $Items as $Item => $Count ) { - $PackageObj->items()->attach( array( $Item ) , [ 'count' => $Count ] ); - } return \MessageResponse::success( trans( 'messages.success' ) ); } @@ -107,21 +104,24 @@ class PackageController extends Controller public function update( StorePackageRequest $request , Package $Package ) { $Package->update( $request->except( [ 'items' ] ) ); + $Items = []; $count = 1; foreach ( $request->items as $key => $item ) { - if ( array_key_exists( $item[ 'id' ] , $Items ) ) { - $preCount = $Items[ $item[ 'id' ] ]; - $Items[ $item[ 'id' ] ] = $preCount + 1; + $itemOld = $Package->items()->where("item_id",$item[ 'id' ])->first(); + if ( $itemOld ) { + $Items[ $item[ 'id' ] ] = $itemOld->pivot->count + 1; } else { $Items[ $item[ 'id' ] ] = $count; } } - $Package->items()->detach(); - foreach ( $Items as $Item => $Count ) { - $Package->items()->attach( array( $Item ) , [ 'count' => $Count ] ); + $item = Item::where( "id" , array( $Item ) )->first(); + if ( $item ) { + $item->packages()->detach(); + $Package->items()->attach( array( $item->id ) , [ 'count' => $Count ] ); + } } return \MessageResponse::success( trans( 'messages.success' ) );