partial update create page opnames
This commit is contained in:
@@ -82,6 +82,7 @@ class ProductsController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function store(Request $request)
|
public function store(Request $request)
|
||||||
{
|
{
|
||||||
|
try{
|
||||||
$request->validate([
|
$request->validate([
|
||||||
'code' => [
|
'code' => [
|
||||||
'required',
|
'required',
|
||||||
@@ -103,10 +104,13 @@ class ProductsController extends Controller
|
|||||||
'code' => $request->code,
|
'code' => $request->code,
|
||||||
'name' => $request->name,
|
'name' => $request->name,
|
||||||
'unit' => $request->unit,
|
'unit' => $request->unit,
|
||||||
|
'active' => $request->active,
|
||||||
'description' => $request->description,
|
'description' => $request->description,
|
||||||
'product_category_id' => $request->product_category_id,
|
'product_category_id' => $request->product_category_id,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Prepare dealer stock for pivot and create mutation records
|
// Prepare dealer stock for pivot and create mutation records
|
||||||
$pivotData = [];
|
$pivotData = [];
|
||||||
if ($request->has('dealer_stock')) {
|
if ($request->has('dealer_stock')) {
|
||||||
@@ -134,6 +138,9 @@ class ProductsController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
return redirect()->route('products.index')->with('success', 'Produk berhasil ditambahkan.');
|
return redirect()->route('products.index')->with('success', 'Produk berhasil ditambahkan.');
|
||||||
|
}catch(\Exception $ex){
|
||||||
|
throw $ex;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\WarehouseManagement;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\StockOpname;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
use Yajra\DataTables\Facades\DataTables;
|
||||||
|
|
||||||
|
class StockOpnamesController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request){
|
||||||
|
try{
|
||||||
|
if ($request->ajax()) {
|
||||||
|
$query = StockOpname::with(['product', 'dealer', 'user']);
|
||||||
|
|
||||||
|
return DataTables::of($query)
|
||||||
|
->addIndexColumn()
|
||||||
|
->addColumn('product_name', function ($row) {
|
||||||
|
return $row->product ? $row->product->name : '-';
|
||||||
|
})
|
||||||
|
->addColumn('dealer_name', function ($row) {
|
||||||
|
return $row->dealer ? $row->dealer->name : '-';
|
||||||
|
})
|
||||||
|
->addColumn('user_name', function ($row) {
|
||||||
|
return $row->user ? $row->user->name : '-';
|
||||||
|
})
|
||||||
|
->editColumn('opname_date', function ($row) {
|
||||||
|
return $row->opname_date->format('d M Y');
|
||||||
|
})
|
||||||
|
->make(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('warehouse_management.stock_opnames.index');
|
||||||
|
}catch(\Exception $ex){
|
||||||
|
Log::error($ex->getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,10 @@
|
|||||||
"name": "laravel/laravel",
|
"name": "laravel/laravel",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"description": "The Laravel Framework.",
|
"description": "The Laravel Framework.",
|
||||||
"keywords": ["framework", "laravel"],
|
"keywords": [
|
||||||
|
"framework",
|
||||||
|
"laravel"
|
||||||
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"require": {
|
"require": {
|
||||||
"php": "^7.3|^8.0",
|
"php": "^7.3|^8.0",
|
||||||
@@ -51,9 +54,10 @@
|
|||||||
"post-create-project-cmd": [
|
"post-create-project-cmd": [
|
||||||
"@php artisan key:generate --ansi"
|
"@php artisan key:generate --ansi"
|
||||||
],
|
],
|
||||||
"dev": "npm run development",
|
"dev": "npx concurrently \"php artisan serve\" \"npm run hot\"",
|
||||||
"development": "npx mix",
|
"development": "npx mix",
|
||||||
"watch": "npx mix watch",
|
"watch": "npx mix watch",
|
||||||
|
"hot": "npx mix watch --hot",
|
||||||
"production": "npx mix --production"
|
"production": "npx mix --production"
|
||||||
},
|
},
|
||||||
"extra": {
|
"extra": {
|
||||||
|
|||||||
@@ -26,6 +26,10 @@ class MenuSeeder extends Seeder
|
|||||||
[
|
[
|
||||||
'name' => 'Mutasi Produk',
|
'name' => 'Mutasi Produk',
|
||||||
'link' => 'mutations.index'
|
'link' => 'mutations.index'
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'Stock Opname',
|
||||||
|
'link' => 'opnames.index'
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
5148
package-lock.json
generated
5148
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
11
package.json
11
package.json
@@ -13,11 +13,18 @@
|
|||||||
"@popperjs/core": "^2.10.2",
|
"@popperjs/core": "^2.10.2",
|
||||||
"axios": "^0.21",
|
"axios": "^0.21",
|
||||||
"bootstrap": "^5.1.3",
|
"bootstrap": "^5.1.3",
|
||||||
"laravel-mix": "^6.0.6",
|
"browser-sync": "^2.29.3",
|
||||||
|
"browser-sync-webpack-plugin": "^2.3.0",
|
||||||
|
"concurrently": "^9.1.2",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
|
"laravel-mix": "^6.0.49",
|
||||||
"lodash": "^4.17.19",
|
"lodash": "^4.17.19",
|
||||||
"postcss": "^8.1.14",
|
"postcss": "^8.1.14",
|
||||||
"resolve-url-loader": "^5.0.0",
|
"resolve-url-loader": "^5.0.0",
|
||||||
"sass": "^1.32.11",
|
"sass": "^1.32.11",
|
||||||
"sass-loader": "^11.0.1"
|
"sass-loader": "^11.0.1",
|
||||||
|
"webpack": "^5.99.9",
|
||||||
|
"webpack-cli": "^6.0.1",
|
||||||
|
"webpack-dev-server": "^4.15.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -449,10 +449,6 @@ legend + * {
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-file-upload-button {
|
|
||||||
font: inherit;
|
|
||||||
}
|
|
||||||
|
|
||||||
::file-selector-button {
|
::file-selector-button {
|
||||||
font: inherit;
|
font: inherit;
|
||||||
}
|
}
|
||||||
@@ -2223,10 +2219,6 @@ progress {
|
|||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
.form-control:-ms-input-placeholder {
|
|
||||||
color: #6c757d;
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
.form-control::placeholder {
|
.form-control::placeholder {
|
||||||
color: #6c757d;
|
color: #6c757d;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
@@ -2235,26 +2227,9 @@ progress {
|
|||||||
background-color: #e9ecef;
|
background-color: #e9ecef;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
.form-control::-webkit-file-upload-button {
|
|
||||||
padding: 0.375rem 0.75rem;
|
|
||||||
margin: -0.375rem -0.75rem;
|
|
||||||
-webkit-margin-end: 0.75rem;
|
|
||||||
margin-inline-end: 0.75rem;
|
|
||||||
color: #212529;
|
|
||||||
background-color: #e9ecef;
|
|
||||||
pointer-events: none;
|
|
||||||
border-color: inherit;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 0;
|
|
||||||
border-inline-end-width: 1px;
|
|
||||||
border-radius: 0;
|
|
||||||
-webkit-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
||||||
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
||||||
}
|
|
||||||
.form-control::file-selector-button {
|
.form-control::file-selector-button {
|
||||||
padding: 0.375rem 0.75rem;
|
padding: 0.375rem 0.75rem;
|
||||||
margin: -0.375rem -0.75rem;
|
margin: -0.375rem -0.75rem;
|
||||||
-webkit-margin-end: 0.75rem;
|
|
||||||
margin-inline-end: 0.75rem;
|
margin-inline-end: 0.75rem;
|
||||||
color: #212529;
|
color: #212529;
|
||||||
background-color: #e9ecef;
|
background-color: #e9ecef;
|
||||||
@@ -2267,24 +2242,16 @@ progress {
|
|||||||
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||||
}
|
}
|
||||||
@media (prefers-reduced-motion: reduce) {
|
@media (prefers-reduced-motion: reduce) {
|
||||||
.form-control::-webkit-file-upload-button {
|
|
||||||
-webkit-transition: none;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
.form-control::file-selector-button {
|
.form-control::file-selector-button {
|
||||||
transition: none;
|
transition: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button {
|
|
||||||
background-color: #dde0e3;
|
|
||||||
}
|
|
||||||
.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
|
.form-control:hover:not(:disabled):not([readonly])::file-selector-button {
|
||||||
background-color: #dde0e3;
|
background-color: #dde0e3;
|
||||||
}
|
}
|
||||||
.form-control::-webkit-file-upload-button {
|
.form-control::-webkit-file-upload-button {
|
||||||
padding: 0.375rem 0.75rem;
|
padding: 0.375rem 0.75rem;
|
||||||
margin: -0.375rem -0.75rem;
|
margin: -0.375rem -0.75rem;
|
||||||
-webkit-margin-end: 0.75rem;
|
|
||||||
margin-inline-end: 0.75rem;
|
margin-inline-end: 0.75rem;
|
||||||
color: #212529;
|
color: #212529;
|
||||||
background-color: #e9ecef;
|
background-color: #e9ecef;
|
||||||
@@ -2329,22 +2296,14 @@ progress {
|
|||||||
font-size: 0.7875rem;
|
font-size: 0.7875rem;
|
||||||
border-radius: 0.2rem;
|
border-radius: 0.2rem;
|
||||||
}
|
}
|
||||||
.form-control-sm::-webkit-file-upload-button {
|
|
||||||
padding: 0.25rem 0.5rem;
|
|
||||||
margin: -0.25rem -0.5rem;
|
|
||||||
-webkit-margin-end: 0.5rem;
|
|
||||||
margin-inline-end: 0.5rem;
|
|
||||||
}
|
|
||||||
.form-control-sm::file-selector-button {
|
.form-control-sm::file-selector-button {
|
||||||
padding: 0.25rem 0.5rem;
|
padding: 0.25rem 0.5rem;
|
||||||
margin: -0.25rem -0.5rem;
|
margin: -0.25rem -0.5rem;
|
||||||
-webkit-margin-end: 0.5rem;
|
|
||||||
margin-inline-end: 0.5rem;
|
margin-inline-end: 0.5rem;
|
||||||
}
|
}
|
||||||
.form-control-sm::-webkit-file-upload-button {
|
.form-control-sm::-webkit-file-upload-button {
|
||||||
padding: 0.25rem 0.5rem;
|
padding: 0.25rem 0.5rem;
|
||||||
margin: -0.25rem -0.5rem;
|
margin: -0.25rem -0.5rem;
|
||||||
-webkit-margin-end: 0.5rem;
|
|
||||||
margin-inline-end: 0.5rem;
|
margin-inline-end: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2354,22 +2313,14 @@ progress {
|
|||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
border-radius: 0.3rem;
|
border-radius: 0.3rem;
|
||||||
}
|
}
|
||||||
.form-control-lg::-webkit-file-upload-button {
|
|
||||||
padding: 0.5rem 1rem;
|
|
||||||
margin: -0.5rem -1rem;
|
|
||||||
-webkit-margin-end: 1rem;
|
|
||||||
margin-inline-end: 1rem;
|
|
||||||
}
|
|
||||||
.form-control-lg::file-selector-button {
|
.form-control-lg::file-selector-button {
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
margin: -0.5rem -1rem;
|
margin: -0.5rem -1rem;
|
||||||
-webkit-margin-end: 1rem;
|
|
||||||
margin-inline-end: 1rem;
|
margin-inline-end: 1rem;
|
||||||
}
|
}
|
||||||
.form-control-lg::-webkit-file-upload-button {
|
.form-control-lg::-webkit-file-upload-button {
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
margin: -0.5rem -1rem;
|
margin: -0.5rem -1rem;
|
||||||
-webkit-margin-end: 1rem;
|
|
||||||
margin-inline-end: 1rem;
|
margin-inline-end: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2684,9 +2635,6 @@ textarea.form-control-lg {
|
|||||||
.form-floating > .form-control::-moz-placeholder {
|
.form-floating > .form-control::-moz-placeholder {
|
||||||
color: transparent;
|
color: transparent;
|
||||||
}
|
}
|
||||||
.form-floating > .form-control:-ms-input-placeholder {
|
|
||||||
color: transparent;
|
|
||||||
}
|
|
||||||
.form-floating > .form-control::placeholder {
|
.form-floating > .form-control::placeholder {
|
||||||
color: transparent;
|
color: transparent;
|
||||||
}
|
}
|
||||||
@@ -2694,10 +2642,6 @@ textarea.form-control-lg {
|
|||||||
padding-top: 1.625rem;
|
padding-top: 1.625rem;
|
||||||
padding-bottom: 0.625rem;
|
padding-bottom: 0.625rem;
|
||||||
}
|
}
|
||||||
.form-floating > .form-control:not(:-ms-input-placeholder) {
|
|
||||||
padding-top: 1.625rem;
|
|
||||||
padding-bottom: 0.625rem;
|
|
||||||
}
|
|
||||||
.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) {
|
.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown) {
|
||||||
padding-top: 1.625rem;
|
padding-top: 1.625rem;
|
||||||
padding-bottom: 0.625rem;
|
padding-bottom: 0.625rem;
|
||||||
@@ -2714,10 +2658,6 @@ textarea.form-control-lg {
|
|||||||
opacity: 0.65;
|
opacity: 0.65;
|
||||||
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
|
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
|
||||||
}
|
}
|
||||||
.form-floating > .form-control:not(:-ms-input-placeholder) ~ label {
|
|
||||||
opacity: 0.65;
|
|
||||||
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
|
|
||||||
}
|
|
||||||
.form-floating > .form-control:focus ~ label,
|
.form-floating > .form-control:focus ~ label,
|
||||||
.form-floating > .form-control:not(:placeholder-shown) ~ label,
|
.form-floating > .form-control:not(:placeholder-shown) ~ label,
|
||||||
.form-floating > .form-select ~ label {
|
.form-floating > .form-select ~ label {
|
||||||
@@ -2998,7 +2938,6 @@ textarea.form-control-lg {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
@@ -5003,12 +4942,6 @@ textarea.form-control-lg {
|
|||||||
color: #101214;
|
color: #101214;
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes progress-bar-stripes {
|
|
||||||
0% {
|
|
||||||
background-position-x: 1rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes progress-bar-stripes {
|
@keyframes progress-bar-stripes {
|
||||||
0% {
|
0% {
|
||||||
background-position-x: 1rem;
|
background-position-x: 1rem;
|
||||||
@@ -5046,12 +4979,10 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.progress-bar-animated {
|
.progress-bar-animated {
|
||||||
-webkit-animation: 1s linear infinite progress-bar-stripes;
|
|
||||||
animation: 1s linear infinite progress-bar-stripes;
|
animation: 1s linear infinite progress-bar-stripes;
|
||||||
}
|
}
|
||||||
@media (prefers-reduced-motion: reduce) {
|
@media (prefers-reduced-motion: reduce) {
|
||||||
.progress-bar-animated {
|
.progress-bar-animated {
|
||||||
-webkit-animation: none;
|
|
||||||
animation: none;
|
animation: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5415,7 +5346,6 @@ textarea.form-control-lg {
|
|||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
-webkit-user-select: none;
|
-webkit-user-select: none;
|
||||||
-moz-user-select: none;
|
-moz-user-select: none;
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
opacity: 0.25;
|
opacity: 0.25;
|
||||||
}
|
}
|
||||||
@@ -5443,7 +5373,6 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.toast-container {
|
.toast-container {
|
||||||
width: -webkit-max-content;
|
|
||||||
width: -moz-max-content;
|
width: -moz-max-content;
|
||||||
width: max-content;
|
width: max-content;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
@@ -6011,7 +5940,6 @@ textarea.form-control-lg {
|
|||||||
float: left;
|
float: left;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-right: -100%;
|
margin-right: -100%;
|
||||||
-webkit-backface-visibility: hidden;
|
|
||||||
backface-visibility: hidden;
|
backface-visibility: hidden;
|
||||||
transition: transform 0.6s ease-in-out;
|
transition: transform 0.6s ease-in-out;
|
||||||
}
|
}
|
||||||
@@ -6193,12 +6121,6 @@ textarea.form-control-lg {
|
|||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes spinner-border {
|
|
||||||
to {
|
|
||||||
transform: rotate(360deg) /* rtl:ignore */;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes spinner-border {
|
@keyframes spinner-border {
|
||||||
to {
|
to {
|
||||||
transform: rotate(360deg) /* rtl:ignore */;
|
transform: rotate(360deg) /* rtl:ignore */;
|
||||||
@@ -6212,7 +6134,6 @@ textarea.form-control-lg {
|
|||||||
border: 0.25em solid currentColor;
|
border: 0.25em solid currentColor;
|
||||||
border-right-color: transparent;
|
border-right-color: transparent;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
-webkit-animation: 0.75s linear infinite spinner-border;
|
|
||||||
animation: 0.75s linear infinite spinner-border;
|
animation: 0.75s linear infinite spinner-border;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6222,16 +6143,6 @@ textarea.form-control-lg {
|
|||||||
border-width: 0.2em;
|
border-width: 0.2em;
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes spinner-grow {
|
|
||||||
0% {
|
|
||||||
transform: scale(0);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
opacity: 1;
|
|
||||||
transform: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes spinner-grow {
|
@keyframes spinner-grow {
|
||||||
0% {
|
0% {
|
||||||
transform: scale(0);
|
transform: scale(0);
|
||||||
@@ -6249,7 +6160,6 @@ textarea.form-control-lg {
|
|||||||
background-color: currentColor;
|
background-color: currentColor;
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
-webkit-animation: 0.75s linear infinite spinner-grow;
|
|
||||||
animation: 0.75s linear infinite spinner-grow;
|
animation: 0.75s linear infinite spinner-grow;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -6261,7 +6171,6 @@ textarea.form-control-lg {
|
|||||||
@media (prefers-reduced-motion: reduce) {
|
@media (prefers-reduced-motion: reduce) {
|
||||||
.spinner-border,
|
.spinner-border,
|
||||||
.spinner-grow {
|
.spinner-grow {
|
||||||
-webkit-animation-duration: 1.5s;
|
|
||||||
animation-duration: 1.5s;
|
animation-duration: 1.5s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -6389,16 +6298,9 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.placeholder-glow .placeholder {
|
.placeholder-glow .placeholder {
|
||||||
-webkit-animation: placeholder-glow 2s ease-in-out infinite;
|
|
||||||
animation: placeholder-glow 2s ease-in-out infinite;
|
animation: placeholder-glow 2s ease-in-out infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes placeholder-glow {
|
|
||||||
50% {
|
|
||||||
opacity: 0.2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes placeholder-glow {
|
@keyframes placeholder-glow {
|
||||||
50% {
|
50% {
|
||||||
opacity: 0.2;
|
opacity: 0.2;
|
||||||
@@ -6409,17 +6311,9 @@ textarea.form-control-lg {
|
|||||||
mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
|
mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
|
||||||
-webkit-mask-size: 200% 100%;
|
-webkit-mask-size: 200% 100%;
|
||||||
mask-size: 200% 100%;
|
mask-size: 200% 100%;
|
||||||
-webkit-animation: placeholder-wave 2s linear infinite;
|
|
||||||
animation: placeholder-wave 2s linear infinite;
|
animation: placeholder-wave 2s linear infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes placeholder-wave {
|
|
||||||
100% {
|
|
||||||
-webkit-mask-position: -200% 0%;
|
|
||||||
mask-position: -200% 0%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes placeholder-wave {
|
@keyframes placeholder-wave {
|
||||||
100% {
|
100% {
|
||||||
-webkit-mask-position: -200% 0%;
|
-webkit-mask-position: -200% 0%;
|
||||||
@@ -6538,7 +6432,6 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sticky-top {
|
.sticky-top {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 1020;
|
z-index: 1020;
|
||||||
@@ -6546,7 +6439,6 @@ textarea.form-control-lg {
|
|||||||
|
|
||||||
@media (min-width: 576px) {
|
@media (min-width: 576px) {
|
||||||
.sticky-sm-top {
|
.sticky-sm-top {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 1020;
|
z-index: 1020;
|
||||||
@@ -6554,7 +6446,6 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
.sticky-md-top {
|
.sticky-md-top {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 1020;
|
z-index: 1020;
|
||||||
@@ -6562,7 +6453,6 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
@media (min-width: 992px) {
|
@media (min-width: 992px) {
|
||||||
.sticky-lg-top {
|
.sticky-lg-top {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 1020;
|
z-index: 1020;
|
||||||
@@ -6570,7 +6460,6 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
@media (min-width: 1200px) {
|
@media (min-width: 1200px) {
|
||||||
.sticky-xl-top {
|
.sticky-xl-top {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 1020;
|
z-index: 1020;
|
||||||
@@ -6578,7 +6467,6 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
@media (min-width: 1400px) {
|
@media (min-width: 1400px) {
|
||||||
.sticky-xxl-top {
|
.sticky-xxl-top {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 1020;
|
z-index: 1020;
|
||||||
@@ -6781,7 +6669,6 @@ textarea.form-control-lg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.position-sticky {
|
.position-sticky {
|
||||||
position: -webkit-sticky !important;
|
|
||||||
position: sticky !important;
|
position: sticky !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7898,14 +7785,12 @@ textarea.form-control-lg {
|
|||||||
.user-select-auto {
|
.user-select-auto {
|
||||||
-webkit-user-select: auto !important;
|
-webkit-user-select: auto !important;
|
||||||
-moz-user-select: auto !important;
|
-moz-user-select: auto !important;
|
||||||
-ms-user-select: auto !important;
|
|
||||||
user-select: auto !important;
|
user-select: auto !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.user-select-none {
|
.user-select-none {
|
||||||
-webkit-user-select: none !important;
|
-webkit-user-select: none !important;
|
||||||
-moz-user-select: none !important;
|
-moz-user-select: none !important;
|
||||||
-ms-user-select: none !important;
|
|
||||||
user-select: none !important;
|
user-select: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
298
public/js/app.js
298
public/js/app.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -15,7 +15,7 @@
|
|||||||
\********************************************************************/
|
\********************************************************************/
|
||||||
/***/ (() => {
|
/***/ (() => {
|
||||||
|
|
||||||
eval("//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy93YXJlaG91c2VfbWFuYWdlbWVudC9zdG9ja19tdXRhdGlvbnMvaW5kZXguanM/OGNlZiJdLCJzb3VyY2VzQ29udGVudCI6WyIiXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvd2FyZWhvdXNlX21hbmFnZW1lbnQvc3RvY2tfbXV0YXRpb25zL2luZGV4LmpzLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./resources/js/warehouse_management/stock_mutations/index.js\n");
|
eval("$.ajaxSetup({\n headers: {\n \"X-CSRF-TOKEN\": $('meta[name=\"csrf-token\"]').attr(\"content\")\n }\n});\nvar tableContainer = $(\"#stock-mutations-table\");\nvar url = tableContainer.data(\"url\");\nvar table = $(\"#stock-mutations-table\").DataTable({\n processing: true,\n serverSide: true,\n ajax: url,\n columns: [{\n data: \"product_name\",\n name: \"product_name\"\n }, {\n data: \"dealer_name\",\n name: \"dealer_name\"\n }, {\n data: \"user_name\",\n name: \"user_name\"\n }, {\n data: \"mutation_type_label\",\n name: \"mutation_type_label\"\n }, {\n data: \"quantity\",\n name: \"quantity\"\n }, {\n data: \"created_at\",\n name: \"created_at\"\n }]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyIkIiwiYWpheFNldHVwIiwiaGVhZGVycyIsImF0dHIiLCJ0YWJsZUNvbnRhaW5lciIsInVybCIsImRhdGEiLCJ0YWJsZSIsIkRhdGFUYWJsZSIsInByb2Nlc3NpbmciLCJzZXJ2ZXJTaWRlIiwiYWpheCIsImNvbHVtbnMiLCJuYW1lIl0sInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy93YXJlaG91c2VfbWFuYWdlbWVudC9zdG9ja19tdXRhdGlvbnMvaW5kZXguanM/OGNlZiJdLCJzb3VyY2VzQ29udGVudCI6WyIkLmFqYXhTZXR1cCh7XG4gICAgaGVhZGVyczoge1xuICAgICAgICBcIlgtQ1NSRi1UT0tFTlwiOiAkKCdtZXRhW25hbWU9XCJjc3JmLXRva2VuXCJdJykuYXR0cihcImNvbnRlbnRcIiksXG4gICAgfSxcbn0pO1xubGV0IHRhYmxlQ29udGFpbmVyID0gJChcIiNzdG9jay1tdXRhdGlvbnMtdGFibGVcIik7XG5sZXQgdXJsID0gdGFibGVDb250YWluZXIuZGF0YShcInVybFwiKTtcbmxldCB0YWJsZSA9ICQoXCIjc3RvY2stbXV0YXRpb25zLXRhYmxlXCIpLkRhdGFUYWJsZSh7XG4gICAgcHJvY2Vzc2luZzogdHJ1ZSxcbiAgICBzZXJ2ZXJTaWRlOiB0cnVlLFxuICAgIGFqYXg6IHVybCxcbiAgICBjb2x1bW5zOiBbXG4gICAgICAgIHsgZGF0YTogXCJwcm9kdWN0X25hbWVcIiwgbmFtZTogXCJwcm9kdWN0X25hbWVcIiB9LFxuICAgICAgICB7IGRhdGE6IFwiZGVhbGVyX25hbWVcIiwgbmFtZTogXCJkZWFsZXJfbmFtZVwiIH0sXG4gICAgICAgIHsgZGF0YTogXCJ1c2VyX25hbWVcIiwgbmFtZTogXCJ1c2VyX25hbWVcIiB9LFxuICAgICAgICB7IGRhdGE6IFwibXV0YXRpb25fdHlwZV9sYWJlbFwiLCBuYW1lOiBcIm11dGF0aW9uX3R5cGVfbGFiZWxcIiB9LFxuICAgICAgICB7IGRhdGE6IFwicXVhbnRpdHlcIiwgbmFtZTogXCJxdWFudGl0eVwiIH0sXG4gICAgICAgIHsgZGF0YTogXCJjcmVhdGVkX2F0XCIsIG5hbWU6IFwiY3JlYXRlZF9hdFwiIH0sXG4gICAgXSxcbn0pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsQ0FBQyxDQUFDQyxTQUFGLENBQVk7RUFDUkMsT0FBTyxFQUFFO0lBQ0wsZ0JBQWdCRixDQUFDLENBQUMseUJBQUQsQ0FBRCxDQUE2QkcsSUFBN0IsQ0FBa0MsU0FBbEM7RUFEWDtBQURELENBQVo7QUFLQSxJQUFJQyxjQUFjLEdBQUdKLENBQUMsQ0FBQyx3QkFBRCxDQUF0QjtBQUNBLElBQUlLLEdBQUcsR0FBR0QsY0FBYyxDQUFDRSxJQUFmLENBQW9CLEtBQXBCLENBQVY7QUFDQSxJQUFJQyxLQUFLLEdBQUdQLENBQUMsQ0FBQyx3QkFBRCxDQUFELENBQTRCUSxTQUE1QixDQUFzQztFQUM5Q0MsVUFBVSxFQUFFLElBRGtDO0VBRTlDQyxVQUFVLEVBQUUsSUFGa0M7RUFHOUNDLElBQUksRUFBRU4sR0FId0M7RUFJOUNPLE9BQU8sRUFBRSxDQUNMO0lBQUVOLElBQUksRUFBRSxjQUFSO0lBQXdCTyxJQUFJLEVBQUU7RUFBOUIsQ0FESyxFQUVMO0lBQUVQLElBQUksRUFBRSxhQUFSO0lBQXVCTyxJQUFJLEVBQUU7RUFBN0IsQ0FGSyxFQUdMO0lBQUVQLElBQUksRUFBRSxXQUFSO0lBQXFCTyxJQUFJLEVBQUU7RUFBM0IsQ0FISyxFQUlMO0lBQUVQLElBQUksRUFBRSxxQkFBUjtJQUErQk8sSUFBSSxFQUFFO0VBQXJDLENBSkssRUFLTDtJQUFFUCxJQUFJLEVBQUUsVUFBUjtJQUFvQk8sSUFBSSxFQUFFO0VBQTFCLENBTEssRUFNTDtJQUFFUCxJQUFJLEVBQUUsWUFBUjtJQUFzQk8sSUFBSSxFQUFFO0VBQTVCLENBTks7QUFKcUMsQ0FBdEMsQ0FBWiIsImZpbGUiOiIuL3Jlc291cmNlcy9qcy93YXJlaG91c2VfbWFuYWdlbWVudC9zdG9ja19tdXRhdGlvbnMvaW5kZXguanMiLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./resources/js/warehouse_management/stock_mutations/index.js\n");
|
||||||
|
|
||||||
/***/ })
|
/***/ })
|
||||||
|
|
||||||
|
|||||||
32
public/js/warehouse_management/stock_opnames/index.js
Normal file
32
public/js/warehouse_management/stock_opnames/index.js
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
||||||
|
* This devtool is neither made for production nor for readable output files.
|
||||||
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
||||||
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
||||||
|
* or disable the default devtool with "devtool: false".
|
||||||
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
||||||
|
*/
|
||||||
|
/******/ (() => { // webpackBootstrap
|
||||||
|
/******/ var __webpack_modules__ = ({
|
||||||
|
|
||||||
|
/***/ "./resources/js/warehouse_management/stock_opnames/index.js":
|
||||||
|
/*!******************************************************************!*\
|
||||||
|
!*** ./resources/js/warehouse_management/stock_opnames/index.js ***!
|
||||||
|
\******************************************************************/
|
||||||
|
/***/ (() => {
|
||||||
|
|
||||||
|
eval("$.ajaxSetup({\n headers: {\n \"X-CSRF-TOKEN\": $('meta[name=\"csrf-token\"]').attr(\"content\")\n }\n});\nvar tableContainer = $(\"#stock-opnames-table\");\nvar url = tableContainer.data(\"url\");\nvar table = $(\"#stock-opnames-table\").DataTable({\n processing: true,\n serverSide: true,\n ajax: url,\n columns: [{\n data: \"product_name\",\n name: \"product_name\"\n }, {\n data: \"dealer_name\",\n name: \"dealer_name\"\n }, {\n data: \"user_name\",\n name: \"user_name\"\n }, {\n data: \"system_quantity\",\n name: \"system_quantity\"\n }, {\n data: \"physical_quantity\",\n name: \"physical_quantity\"\n }, {\n data: \"difference\",\n name: \"difference\"\n }, {\n data: \"opname_date\",\n name: \"opname_date\"\n }]\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyIkIiwiYWpheFNldHVwIiwiaGVhZGVycyIsImF0dHIiLCJ0YWJsZUNvbnRhaW5lciIsInVybCIsImRhdGEiLCJ0YWJsZSIsIkRhdGFUYWJsZSIsInByb2Nlc3NpbmciLCJzZXJ2ZXJTaWRlIiwiYWpheCIsImNvbHVtbnMiLCJuYW1lIl0sInNvdXJjZXMiOlsid2VicGFjazovLy8uL3Jlc291cmNlcy9qcy93YXJlaG91c2VfbWFuYWdlbWVudC9zdG9ja19vcG5hbWVzL2luZGV4LmpzPzI3YTQiXSwic291cmNlc0NvbnRlbnQiOlsiJC5hamF4U2V0dXAoe1xuICAgIGhlYWRlcnM6IHtcbiAgICAgICAgXCJYLUNTUkYtVE9LRU5cIjogJCgnbWV0YVtuYW1lPVwiY3NyZi10b2tlblwiXScpLmF0dHIoXCJjb250ZW50XCIpLFxuICAgIH0sXG59KTtcbmxldCB0YWJsZUNvbnRhaW5lciA9ICQoXCIjc3RvY2stb3BuYW1lcy10YWJsZVwiKTtcbmxldCB1cmwgPSB0YWJsZUNvbnRhaW5lci5kYXRhKFwidXJsXCIpO1xubGV0IHRhYmxlID0gJChcIiNzdG9jay1vcG5hbWVzLXRhYmxlXCIpLkRhdGFUYWJsZSh7XG4gICAgcHJvY2Vzc2luZzogdHJ1ZSxcbiAgICBzZXJ2ZXJTaWRlOiB0cnVlLFxuICAgIGFqYXg6IHVybCxcbiAgICBjb2x1bW5zOiBbXG4gICAgICAgIHsgZGF0YTogXCJwcm9kdWN0X25hbWVcIiwgbmFtZTogXCJwcm9kdWN0X25hbWVcIiB9LFxuICAgICAgICB7IGRhdGE6IFwiZGVhbGVyX25hbWVcIiwgbmFtZTogXCJkZWFsZXJfbmFtZVwiIH0sXG4gICAgICAgIHsgZGF0YTogXCJ1c2VyX25hbWVcIiwgbmFtZTogXCJ1c2VyX25hbWVcIiB9LFxuICAgICAgICB7IGRhdGE6IFwic3lzdGVtX3F1YW50aXR5XCIsIG5hbWU6IFwic3lzdGVtX3F1YW50aXR5XCIgfSxcbiAgICAgICAgeyBkYXRhOiBcInBoeXNpY2FsX3F1YW50aXR5XCIsIG5hbWU6IFwicGh5c2ljYWxfcXVhbnRpdHlcIiB9LFxuICAgICAgICB7IGRhdGE6IFwiZGlmZmVyZW5jZVwiLCBuYW1lOiBcImRpZmZlcmVuY2VcIiB9LFxuICAgICAgICB7IGRhdGE6IFwib3BuYW1lX2RhdGVcIiwgbmFtZTogXCJvcG5hbWVfZGF0ZVwiIH0sXG4gICAgXSxcbn0pO1xuIl0sIm1hcHBpbmdzIjoiQUFBQUEsQ0FBQyxDQUFDQyxTQUFGLENBQVk7RUFDUkMsT0FBTyxFQUFFO0lBQ0wsZ0JBQWdCRixDQUFDLENBQUMseUJBQUQsQ0FBRCxDQUE2QkcsSUFBN0IsQ0FBa0MsU0FBbEM7RUFEWDtBQURELENBQVo7QUFLQSxJQUFJQyxjQUFjLEdBQUdKLENBQUMsQ0FBQyxzQkFBRCxDQUF0QjtBQUNBLElBQUlLLEdBQUcsR0FBR0QsY0FBYyxDQUFDRSxJQUFmLENBQW9CLEtBQXBCLENBQVY7QUFDQSxJQUFJQyxLQUFLLEdBQUdQLENBQUMsQ0FBQyxzQkFBRCxDQUFELENBQTBCUSxTQUExQixDQUFvQztFQUM1Q0MsVUFBVSxFQUFFLElBRGdDO0VBRTVDQyxVQUFVLEVBQUUsSUFGZ0M7RUFHNUNDLElBQUksRUFBRU4sR0FIc0M7RUFJNUNPLE9BQU8sRUFBRSxDQUNMO0lBQUVOLElBQUksRUFBRSxjQUFSO0lBQXdCTyxJQUFJLEVBQUU7RUFBOUIsQ0FESyxFQUVMO0lBQUVQLElBQUksRUFBRSxhQUFSO0lBQXVCTyxJQUFJLEVBQUU7RUFBN0IsQ0FGSyxFQUdMO0lBQUVQLElBQUksRUFBRSxXQUFSO0lBQXFCTyxJQUFJLEVBQUU7RUFBM0IsQ0FISyxFQUlMO0lBQUVQLElBQUksRUFBRSxpQkFBUjtJQUEyQk8sSUFBSSxFQUFFO0VBQWpDLENBSkssRUFLTDtJQUFFUCxJQUFJLEVBQUUsbUJBQVI7SUFBNkJPLElBQUksRUFBRTtFQUFuQyxDQUxLLEVBTUw7SUFBRVAsSUFBSSxFQUFFLFlBQVI7SUFBc0JPLElBQUksRUFBRTtFQUE1QixDQU5LLEVBT0w7SUFBRVAsSUFBSSxFQUFFLGFBQVI7SUFBdUJPLElBQUksRUFBRTtFQUE3QixDQVBLO0FBSm1DLENBQXBDLENBQVoiLCJmaWxlIjoiLi9yZXNvdXJjZXMvanMvd2FyZWhvdXNlX21hbmFnZW1lbnQvc3RvY2tfb3BuYW1lcy9pbmRleC5qcyIsInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./resources/js/warehouse_management/stock_opnames/index.js\n");
|
||||||
|
|
||||||
|
/***/ })
|
||||||
|
|
||||||
|
/******/ });
|
||||||
|
/************************************************************************/
|
||||||
|
/******/
|
||||||
|
/******/ // startup
|
||||||
|
/******/ // Load entry module and return exports
|
||||||
|
/******/ // This entry module can't be inlined because the eval-source-map devtool is used.
|
||||||
|
/******/ var __webpack_exports__ = {};
|
||||||
|
/******/ __webpack_modules__["./resources/js/warehouse_management/stock_opnames/index.js"]();
|
||||||
|
/******/
|
||||||
|
/******/ })()
|
||||||
|
;
|
||||||
@@ -5,5 +5,6 @@
|
|||||||
"/js/warehouse_management/products/create.js": "/js/warehouse_management/products/create.js",
|
"/js/warehouse_management/products/create.js": "/js/warehouse_management/products/create.js",
|
||||||
"/js/warehouse_management/products/edit.js": "/js/warehouse_management/products/edit.js",
|
"/js/warehouse_management/products/edit.js": "/js/warehouse_management/products/edit.js",
|
||||||
"/js/warehouse_management/stock_mutations/index.js": "/js/warehouse_management/stock_mutations/index.js",
|
"/js/warehouse_management/stock_mutations/index.js": "/js/warehouse_management/stock_mutations/index.js",
|
||||||
|
"/js/warehouse_management/stock_opnames/index.js": "/js/warehouse_management/stock_opnames/index.js",
|
||||||
"/css/app.css": "/css/app.css"
|
"/css/app.css": "/css/app.css"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
$.ajaxSetup({
|
||||||
|
headers: {
|
||||||
|
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
let tableContainer = $("#stock-mutations-table");
|
||||||
|
let url = tableContainer.data("url");
|
||||||
|
let table = $("#stock-mutations-table").DataTable({
|
||||||
|
processing: true,
|
||||||
|
serverSide: true,
|
||||||
|
ajax: url,
|
||||||
|
columns: [
|
||||||
|
{ data: "product_name", name: "product_name" },
|
||||||
|
{ data: "dealer_name", name: "dealer_name" },
|
||||||
|
{ data: "user_name", name: "user_name" },
|
||||||
|
{ data: "mutation_type_label", name: "mutation_type_label" },
|
||||||
|
{ data: "quantity", name: "quantity" },
|
||||||
|
{ data: "created_at", name: "created_at" },
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|||||||
21
resources/js/warehouse_management/stock_opnames/index.js
Normal file
21
resources/js/warehouse_management/stock_opnames/index.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
$.ajaxSetup({
|
||||||
|
headers: {
|
||||||
|
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
let tableContainer = $("#stock-opnames-table");
|
||||||
|
let url = tableContainer.data("url");
|
||||||
|
let table = $("#stock-opnames-table").DataTable({
|
||||||
|
processing: true,
|
||||||
|
serverSide: true,
|
||||||
|
ajax: url,
|
||||||
|
columns: [
|
||||||
|
{ data: "product_name", name: "product_name" },
|
||||||
|
{ data: "dealer_name", name: "dealer_name" },
|
||||||
|
{ data: "user_name", name: "user_name" },
|
||||||
|
{ data: "system_quantity", name: "system_quantity" },
|
||||||
|
{ data: "physical_quantity", name: "physical_quantity" },
|
||||||
|
{ data: "difference", name: "difference" },
|
||||||
|
{ data: "opname_date", name: "opname_date" },
|
||||||
|
],
|
||||||
|
});
|
||||||
@@ -215,9 +215,9 @@
|
|||||||
</li>
|
</li>
|
||||||
@endcan
|
@endcan
|
||||||
|
|
||||||
@can('view', $menus['work.index'])
|
@can('view', $menus['mutations.index'])
|
||||||
<li class="kt-menu__item" aria-haspopup="true">
|
<li class="kt-menu__item" aria-haspopup="true">
|
||||||
<a href="{{ route('work.index') }}" class="kt-menu__link">
|
<a href="{{ route('mutations.index') }}" class="kt-menu__link">
|
||||||
<i class="fa fa-list" style="display: flex; align-items: center; margin-right: 10px;"></i>
|
<i class="fa fa-list" style="display: flex; align-items: center; margin-right: 10px;"></i>
|
||||||
<span class="kt-menu__link-text">Mutasi Produk</span>
|
<span class="kt-menu__link-text">Mutasi Produk</span>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -31,6 +31,14 @@
|
|||||||
<input type="text" name="unit" id="unit" class="form-control" required>
|
<input type="text" name="unit" id="unit" class="form-control" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="active"><strong>Status Produk</strong></label>
|
||||||
|
<select name="active" class="form-control" required>
|
||||||
|
<option value="1">Aktif</option>
|
||||||
|
<option value="0">Tidak Aktif</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="description"><strong>Deskripsi</strong></label>
|
<label for="description"><strong>Deskripsi</strong></label>
|
||||||
<textarea name="description" id="description" class="form-control" rows="3"></textarea>
|
<textarea name="description" id="description" class="form-control" rows="3"></textarea>
|
||||||
|
|||||||
@@ -25,13 +25,14 @@
|
|||||||
<div class="kt-portlet__body">
|
<div class="kt-portlet__body">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<!--begin: Datatable -->
|
<!--begin: Datatable -->
|
||||||
<table class="table table-striped table-bordered table-hover" id="mutations-table" data-url="{{ route("mutations.index") }}">
|
<table class="table table-striped table-bordered table-hover" id="stock-mutations-table" data-url="{{ route("mutations.index") }}">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>Produk</th>
|
<th>Produk</th>
|
||||||
<th>Dealer</th>
|
<th>Dealer</th>
|
||||||
<th>User</th>
|
<th>Pengguna</th>
|
||||||
<th>Tipe Mutasi</th>
|
<th>Tipe Mutasi</th>
|
||||||
|
<th>Jumlah</th>
|
||||||
<th>Dibuat</th>
|
<th>Dibuat</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
@extends('layouts.backapp')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
<div class="kt-portlet kt-portlet--mobile" id="kt_blockui_datatable">
|
||||||
|
<div class="kt-portlet__head kt-portlet__head--lg">
|
||||||
|
<div class="kt-portlet__head-label">
|
||||||
|
<span class="kt-portlet__head-icon">
|
||||||
|
<i class="kt-font-brand flaticon2-line-chart"></i>
|
||||||
|
</span>
|
||||||
|
<h3 class="kt-portlet__head-title">
|
||||||
|
Tabel Mutasi Stock Produk
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
@can('create', $menus['mutations.index'])
|
||||||
|
<div class="kt-portlet__head-toolbar">
|
||||||
|
<div class="kt-portlet__head-wrapper">
|
||||||
|
<div class="kt-portlet__head-actions">
|
||||||
|
<a href="{{ route('opnames.create') }}" class="btn btn-bold btn-label-brand btn--sm">Tambah</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endcan
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="kt-portlet__body">
|
||||||
|
<div class="table-responsive">
|
||||||
|
<!--begin: Datatable -->
|
||||||
|
<table class="table table-striped table-bordered table-hover" id="stock-opnames-table" data-url="{{ route("opnames.index") }}">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Produk</th>
|
||||||
|
<th>Dealer</th>
|
||||||
|
<th>Pengguna</th>
|
||||||
|
<th>Total Sistem</th>
|
||||||
|
<th>Total Fisik</th>
|
||||||
|
<th>Perbedaan</th>
|
||||||
|
<th>Tanggal Opname</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
<!--end: Datatable -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('javascripts')
|
||||||
|
<script src="{{mix('js/warehouse_management/stock_opnames/index.js')}}"></script>
|
||||||
|
@endsection
|
||||||
@@ -10,6 +10,7 @@ use App\Http\Controllers\UserController;
|
|||||||
use App\Http\Controllers\WarehouseManagement\ProductCategoriesController;
|
use App\Http\Controllers\WarehouseManagement\ProductCategoriesController;
|
||||||
use App\Http\Controllers\WarehouseManagement\ProductsController;
|
use App\Http\Controllers\WarehouseManagement\ProductsController;
|
||||||
use App\Http\Controllers\WarehouseManagement\StockMutationsController;
|
use App\Http\Controllers\WarehouseManagement\StockMutationsController;
|
||||||
|
use App\Http\Controllers\WarehouseManagement\StockOpnamesController;
|
||||||
use App\Http\Controllers\WorkController;
|
use App\Http\Controllers\WorkController;
|
||||||
use App\Models\Menu;
|
use App\Models\Menu;
|
||||||
use App\Models\Privilege;
|
use App\Models\Privilege;
|
||||||
@@ -210,6 +211,7 @@ Route::group(['middleware' => 'auth'], function() {
|
|||||||
Route::get('categories/parents', [ProductCategoriesController::class, 'getParents'])->name('products.parents');
|
Route::get('categories/parents', [ProductCategoriesController::class, 'getParents'])->name('products.parents');
|
||||||
Route::post('products/{product}/toggle-active', [ProductsController::class, 'toggleActive'])->name('products.toggleActive');
|
Route::post('products/{product}/toggle-active', [ProductsController::class, 'toggleActive'])->name('products.toggleActive');
|
||||||
Route::get('mutations/index',[StockMutationsController::class, 'index'])->name('mutations.index');
|
Route::get('mutations/index',[StockMutationsController::class, 'index'])->name('mutations.index');
|
||||||
|
Route::get('opnames/index',[StockOpnamesController::class, 'index'])->name('opnames.index');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -33,4 +33,42 @@ mix.js("resources/js/app.js", "public/js")
|
|||||||
"resources/js/warehouse_management/stock_mutations/index.js",
|
"resources/js/warehouse_management/stock_mutations/index.js",
|
||||||
"public/js/warehouse_management/stock_mutations"
|
"public/js/warehouse_management/stock_mutations"
|
||||||
)
|
)
|
||||||
|
.js(
|
||||||
|
"resources/js/warehouse_management/stock_opnames/index.js",
|
||||||
|
"public/js/warehouse_management/stock_opnames"
|
||||||
|
)
|
||||||
.sourceMaps();
|
.sourceMaps();
|
||||||
|
|
||||||
|
mix.browserSync({
|
||||||
|
proxy: "127.0.0.1:8000",
|
||||||
|
open: false,
|
||||||
|
files: [
|
||||||
|
"app/**/*.php",
|
||||||
|
"resources/views/**/*.php",
|
||||||
|
"resources/js/**/*.js",
|
||||||
|
"resources/sass/**/*.scss",
|
||||||
|
"public/js/**/*.js",
|
||||||
|
"public/css/**/*.css",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
mix.setPublicPath("public");
|
||||||
|
mix.setResourceRoot("/");
|
||||||
|
const devServerPort = process.env.MIX_DEV_SERVER_PORT || 8080;
|
||||||
|
|
||||||
|
mix.webpackConfig({
|
||||||
|
devServer: {
|
||||||
|
host: process.env.MIX_DEV_SERVER_HOST || "localhost",
|
||||||
|
port: devServerPort,
|
||||||
|
hot: true,
|
||||||
|
headers: {
|
||||||
|
"Access-Control-Allow-Origin": "*",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
mix.options({
|
||||||
|
hmrOptions: {
|
||||||
|
host: process.env.MIX_DEV_SERVER_HOST || "localhost",
|
||||||
|
port: devServerPort,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user