<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

use App\Http\Controllers\MainController;
use App\Http\Controllers\UserController;
use App\Http\Controllers\OrderController;
use App\Http\Controllers\PurchaseController;
use App\Http\Controllers\InvoiceController;
use App\Http\Controllers\BasePaperController;
use App\Http\Controllers\DailyPrintController;
use App\Http\Controllers\DeliveryController;
use App\Http\Controllers\DepositController;
use App\Http\Controllers\ClosingController;
use App\Http\Controllers\MonthlyController;
use App\Http\Controllers\MonthlyPurchaseController;
use App\Http\Controllers\ScheduledCollectionController;
use App\Http\Controllers\SupplyTotallingController;
use App\Http\Controllers\PaymentController;
use App\Http\Controllers\SupplyController;
use App\Http\Controllers\SupplierController;
use App\Http\Controllers\ProcessController;
use App\Http\Controllers\CylinderController;
use App\Http\Controllers\EquipmentController;
use App\Http\Controllers\CustomerController;
use App\Http\Controllers\StaffController;
use App\Http\Controllers\HolidayController;
use App\Http\Controllers\PostController;
use App\Http\Controllers\BankController;
use App\Http\Controllers\CarryOverController;
use App\Http\Controllers\SalesStatisticsController;
use App\Http\Controllers\ProductTypeController;
use App\Http\Controllers\DepositKindController;
use App\Http\Controllers\PaymentKindController;
use App\Http\Controllers\SupplyKindController;
use App\Http\Controllers\ExpenseKindController;
use App\Http\Controllers\SalesKindController;
use App\Http\Controllers\UnitController;
use App\Http\Controllers\ProductController;
use App\Http\Controllers\SystemController;
use App\Http\Controllers\LogController;
use App\Http\Controllers\BackupController;

use App\User;

// ログイン
Route:: get('login',[UserController::class,  'getLogin'])->name('login');
Route::post('login',[UserController::class, 'postLogin'])->name('login');

Route:: get('post',[PostController::class, 'index' ])->name('post');
Route::post('post',[PostController::class, 'addPost'])->name('post');



Route::group(['prefix' => 'user'],function()
{
	Route:: get('signup',[UserController::class,  'getSignup'])->name('user.signup');
	Route::post('signup',[UserController::class, 'postSignup'])->name('user.signup');

	$count = User::count();
	if ($count == 0)
	{
		Route:: get('first',[UserController::class,  'getSignup'])->name('user.first');
		Route::post('first',[UserController::class, 'postSignup'])->name('user.first');
	}
});

// メイン
Route::group(['middleware' => 'auth'], function(){
	Route:: get('/', [MainController::class, 'index']);
	//Route::Post('/', [MainController::class, 'addPost']);

	Route:: get('logout',[UserController::class, 'getLogout'])->name('logout');

	// 読み込み時のバージョン取得
	Route:: get('/version',[MainController::class, 'version'])->name('version');
	Route::Post('/version',[MainController::class, 'version'])->name('version');

	// 受注機能（API for Ajax）
	Route::Post('/order/search'  ,   [OrderController::class, 'search']  )->name('searchOrder'  );
	Route::Post('/order/update'  ,   [OrderController::class, 'update']  )->name('updateOrder'  );
	Route::Post('/order/delete'  ,   [OrderController::class, 'delete']  )->name('deleteOrder'  );
	Route::Post('/order/image'   ,   [OrderController::class, 'image']   )->name('imageOrder'   );
	Route::Post('/order/lock'    ,   [OrderController::class, 'lock']    )->name('lockOrder'    );
	Route::Post('/order/lock_maintenance'    ,   [OrderController::class, 'lock_maintenance']    )->name('lockMaintenanceOrder'    );

	// 発注機能（API for Ajax）
	Route::Post('/base_paper/search'   , [BasePaperController::class, 'search']  )->name('searchBasePaper'  );
	Route::Post('/base_paper/purchase' , [BasePaperController::class, 'purchase']  )->name('purchaseBasePaper'  );
	Route::Post('/base_paper/cancel' , [BasePaperController::class, 'cancel']  )->name('cancelBasePaper'  );
	Route:: get('/base_paper/report' , [BasePaperController::class, 'report']  )->name('reportBasePaper'  );

	// 納品機能（API for Ajax）
	Route::Post('/delivery/search'   , [DeliveryController::class, 'search']  )->name('searchDelivery'  );
	Route::Post('/delivery/update'  ,   [DeliveryController::class, 'update']  )->name('updateDelivery'  );
	Route::Post('/delivery/delete'   ,   [DeliveryController::class, 'delete']  )->name('deleteDelivery'  );
	Route::Post('/delivery/payed'    ,   [DeliveryController::class, 'payed']  )->name('payedDelivery'  );
	Route:: get('/delivery/report' , [DeliveryController::class, 'report']  )->name('reportDelivery'  );

	Route::Post('/delivery/updatePrintWhenDirect'  ,   [DeliveryController::class, 'updatePrintWhenDirect']  )->name('updatePrintWhenDirectDelivery'  );
	Route::Post('/delivery/phantom_save'  ,   [DeliveryController::class, 'phantom_save']  )->name('phantomSaveDelivery'  );
	Route:: get('/delivery/phantom_report' , [DeliveryController::class, 'phantom_report']  )->name('phantomReportDelivery'  );

	// 締め処理
	Route::Post('/closing/summary'   , [ClosingController::class, 'summary']  )->name('summaryClosing'  );
	Route::Post('/closing/search'   , [ClosingController::class, 'search']  )->name('searchClosing'  );
	Route::Post('/closing/lock'    ,   [ClosingController::class, 'lock']  )->name('lockClosing'  );
	Route::Post('/closing/close'    ,   [ClosingController::class, 'close']  )->name('closeClosing'  );
	Route::Post('/carryover/search'    ,   [CarryOverController::class, 'search']  )->name('carryoverSearch'  );
	Route::Post('/carryover/calculate'    ,   [CarryOverController::class, 'calculate']  )->name('carryoverCalculate'  );
	Route:: get('/closing/report' , [ClosingController::class, 'report']  )->name('reportClosing'  );
	
	
	// 月次処理（帳票）
	Route::Post('/monthly/summary'   , [MonthlyController::class, 'summary']  )->name('summaryMonthly'  );
	Route:: get('/monthly/bill00' , [MonthlyController::class, 'bill00']  )->name('bill00Monthly'  );
	Route:: get('/monthly/bill01' , [MonthlyController::class, 'bill01']  )->name('bill01Monthly'  );
	Route:: get('/monthly/bill02' , [MonthlyController::class, 'bill02']  )->name('bill02Monthly'  );
	Route:: get('/monthly/receivable01' , [MonthlyController::class, 'receivable01']  )->name('receivable01Monthly'  );
	Route:: get('/monthly/receivable02' , [MonthlyController::class, 'receivable02']  )->name('receivable02Monthly'  );
	Route:: get('/monthly/sales01' , [MonthlyController::class, 'sales01']  )->name('sales01Monthly'  );
	Route:: get('/monthly/sales02' , [MonthlyController::class, 'sales02']  )->name('sales02Monthly'  );
	Route:: get('/monthly/sales03' , [MonthlyController::class, 'sales03']  )->name('sales03Monthly'  );
	Route:: get('/monthly/deposit01' , [MonthlyController::class, 'deposit01']  )->name('deposit01Monthly'  );
	Route:: get('/monthly/customer01' , [MonthlyController::class, 'customer01']  )->name('customer01Monthly'  );
	Route:: get('/monthly/equipment01' , [MonthlyController::class, 'equipment01']  )->name('equipment01Monthly'  );

	// 仕入れ月次処理（帳票）
	Route::Post('/monthlypurchase/summary'   , [MonthlyPurchaseController::class, 'summary']  )->name('summaryMonthlyPurchase'  );
	Route:: get('/monthlypurchase/payableList01' , [MonthlyPurchaseController::class, 'PayableList01']  )->name('PayableList01MonthlyPurchase'  );
	Route:: get('/monthlypurchase/payableList02' , [MonthlyPurchaseController::class, 'PayableList02']  )->name('PayableList02MonthlyPurchase'  );
	Route:: get('/monthlypurchase/billList00' , [MonthlyPurchaseController::class, 'BillList00']  )->name('BillList00MonthlyPurchase'  );
	Route:: get('/monthlypurchase/billList01' , [MonthlyPurchaseController::class, 'BillList01']  )->name('BillList01MonthlyPurchase'  );
	Route:: get('/monthlypurchase/monthlyList01' , [MonthlyPurchaseController::class, 'MonthlyList01']  )->name('MonthlyList01MonthlyPurchase'  );
	Route:: get('/monthlypurchase/productList01' , [MonthlyPurchaseController::class, 'ProductList01']  )->name('ProductList01MonthlyPurchase'  );
	Route:: get('/monthlypurchase/ledgerist01' , [MonthlyPurchaseController::class, 'Ledgerist01']  )->name('Ledgerist01MonthlyPurchase'  );

	// 集金予定表
	Route::Post('/scheduledcollection/search' , [ScheduledCollectionController::class, 'search']  )->name('searchScheduledCollection'  );
	Route:: get('/accounting/scheduledcollectionlist' , [ScheduledCollectionController::class, 'ScheduledCollectionList']  )->name('ScheduledCollectionListScheduledCollection'  );

	// 仕入区分明細
	Route::Post('/SupplyTotalling/search' , [SupplyTotallingController::class, 'search']  )->name('searchSupplyTotalling'  );
	Route::Post('/SupplyTotalling/searchdetails' , [SupplyTotallingController::class, 'searchDetails']  )->name('searchDetailsSupplyTotalling'  );
	Route:: get('/accounting/supplytotallinglist' , [SupplyTotallingController::class, 'SupplyTotallingList']  )->name('SupplyTotallingListDetailsSupplyTotalling'  );

	// 帳票
	Route:: get('/order/report'  ,   [OrderController::class, 'report']  )->name('reportOrder'  );

	// 生産計画機能（API for Ajax）
	Route::Post('/process/search',   [ProcessController::class, 'search']  )->name('searchProcess');
	Route::Post('/process/update'  , [ProcessController::class, 'update']  )->name('updateProcess'  );

	// 工程モニタ機能（API for Ajax）
	Route::Post('/process/search2',   [ProcessController::class, 'search2']  )->name('searchProcess2');
	Route::Post('/process/progress',   [ProcessController::class, 'progress']  )->name('progressProcess');

    // 入金伝票機能（API for Ajax）
	Route::Post('/deposit/search'   , [DepositController::class, 'search']  )->name('searchDeposit'  );
	Route::Post('/deposit/update'  ,   [DepositController::class, 'update']  )->name('updateDeposit'  );
	Route::Post('/deposit/transactionstatus'  ,   [DepositController::class, 'transactionStatus']  )->name('transactionStatusDeposit'  );

    // 支払伝票機能（API for Ajax）
	Route::Post('/payment/search'   , [PaymentController::class, 'search']  )->name('searchPayment'  );
	Route::Post('/payment/update'  ,   [PaymentController::class, 'update']  )->name('updatePayment'  );
	Route::Post('/payment/transactionstatus'  ,   [PaymentController::class, 'transactionStatus']  )->name('transactionStatusPayment'  );

    // 仕入伝票機能（API for Ajax）
	Route::Post('/supply/search'   , [SupplyController::class, 'search']  )->name('searchSupply'  );
	Route::Post('/supply/update'  ,   [SupplyController::class, 'update']  )->name('updateSupply'  );

    // 請求伝票機能（API for Ajax）
	Route::Post('/invoice/search'   , [InvoiceController::class, 'search']  )->name('searchInvoice'  );
	Route::Post('/invoice/update'  ,  [InvoiceController::class, 'update']  )->name('updateInvoice'  );
	Route:: get('/invoice/report01'  ,  [InvoiceController::class, 'report01']  )->name('report01Invoice'  );
	Route:: get('/invoice/report02'  ,  [InvoiceController::class, 'report02']  )->name('report02Invoice'  );

	// 日次処理
	Route::Post('/daily/search'  ,  [DailyPrintController::class, 'search']  )->name('searchDaily'  );
	Route:: get('/daily/report01'  ,  [DailyPrintController::class, 'report01']  )->name('report01Daily'  );
	Route:: get('/daily/report02'  ,  [DailyPrintController::class, 'report02']  )->name('report02Daily'  );
	Route:: get('/daily/report03'  ,  [DailyPrintController::class, 'report03']  )->name('report03Daily'  );
	Route:: get('/daily/report04'  ,  [DailyPrintController::class, 'report04']  )->name('report04Daily'  );
	Route:: get('/daily/report05'  ,  [DailyPrintController::class, 'report05']  )->name('report04Daily'  );

	// マスタデータ管理（API for Ajax）
	Route::Post('/customer/search',   [CustomerController::class, 'search']  )->name('searchCustomer');
	Route::Post('/customer/update'  , [CustomerController::class, 'update']  )->name('updateCustomer'  );
	Route::Post('/supplier/search',   [SupplierController::class, 'search']  )->name('searchSupplier');
	Route::Post('/supplier/update'  , [SupplierController::class, 'update']  )->name('updateSupplier'  );
	Route::Post('/staff/search',   [StaffController::class, 'search']  )->name('searchStaff');
	Route::Post('/staff/update'  , [StaffController::class, 'update']  )->name('updateStaff'  );
	Route::Post('/staff/datalist'  , [StaffController::class, 'datalist']  )->name('datalistStaff'  );
	Route::Post('/cylinder/search'   ,   [CylinderController::class, 'search']   )->name('searchCylinder'   );
	Route::Post('/cylinder/update'   ,   [CylinderController::class, 'update']   )->name('updateCylinder'   );
	Route::Post('/equipment/search'   ,   [EquipmentController::class, 'search']   )->name('searchEquipment'   );
	Route::Post('/equipment/update'   ,   [EquipmentController::class, 'update']   )->name('updateEquipment'   );
	Route::Post('/equipment/datalist'   ,   [EquipmentController::class, 'datalist']   )->name('datalistEquipment'   );
	Route::Post('/holiday/search'   ,   [HolidayController::class, 'search']   )->name('searchHoliday'   );
	Route::Post('/holiday/update'   ,   [HolidayController::class, 'update']   )->name('updateHoliday'   );
	Route::Post('/expense_kind/datalist'  , [ExpenseKindController::class, 'datalist']  )->name('datalistExpenseKind'  );
	Route::Post('/sales_kind/datalist'  , [SalesKindController::class, 'datalist']  )->name('datalistSalesKind'  );
	Route::Post('/sales_kind/search',   [SalesKindController::class, 'search']  )->name('searchSalesKind');
	Route::Post('/sales_kind/update'  , [SalesKindController::class, 'update']  )->name('updateSalesKind'  );
	Route::Post('/sales/statistics'  , [SalesStatisticsController::class, 'search']  )->name('searchSalesStatistice'  );
	Route::Post('/unit/datalist'  , [UnitController::class, 'datalist']  )->name('datalistUnit'  );
	Route::Post('/unit/search',   [UnitController::class, 'search']  )->name('searchUnit');
	Route::Post('/unit/update'  , [UnitController::class, 'update']  )->name('updateUnit'  );
	Route::Post('/bank/datalist'  , [BankController::class, 'datalist']  )->name('datalistBank'  );
	Route::Post('/bank/search',   [BankController::class, 'search']  )->name('searchBank');
	Route::Post('/bank/update'  , [BankController::class, 'update']  )->name('updateBank'  );
	Route::Post('/product_type/datalist',   [ProductTypeController::class, 'datalist']  )->name('datalistProductType');
	Route::Post('/product_type/search',   [ProductTypeController::class, 'search']  )->name('searchProductType');
	Route::Post('/product_type/update'  , [ProductTypeController::class, 'update']  )->name('updateProductType'  );
	Route::Post('/supply_kind/datalist'  , [SupplyKindController::class, 'datalist']  )->name('datalistSupplyKind'  );
	Route::Post('/supply_kind/search',   [SupplyKindController::class, 'search']  )->name('searchSupplyKind');
	Route::Post('/supply_kind/update'  , [SupplyKindController::class, 'update']  )->name('updateSupplyKind'  );
	Route::Post('/payment_kind/datalist'  , [PaymentKindController::class, 'datalist']  )->name('datalistPaymentKind'  );
	Route::Post('/payment_kind/search',   [PaymentKindController::class, 'search']  )->name('searchPaymentKind');
	Route::Post('/payment_kind/update'  , [PaymentKindController::class, 'update']  )->name('updatePaymentKind'  );
	Route::Post('/deposit_kind/datalist'  , [DepositKindController::class, 'datalist']  )->name('datalistDepositKind'  );
	Route::Post('/deposit_kind/search',   [DepositKindController::class, 'search']  )->name('searchDepositKind');
	Route::Post('/deposit_kind/update'  , [DepositKindController::class, 'update']  )->name('updateDepositKind'  );
	Route::Post('/product/datalist'  , [ProductController::class, 'datalist']  )->name('datalistProductKind'  );
	Route::Post('/product/search',   [ProductController::class, 'search']  )->name('searchProductKind');
	Route::Post('/product/update'  , [ProductController::class, 'update']  )->name('updateProductKind'  );
	Route::Post('/system_control/search',   [SystemController::class, 'search']  )->name('searchSystem');
	Route::Post('/system_control/update'  , [SystemController::class, 'update']  )->name('updateSystem'  );


	// メンテナンス（ログ表示）
	Route::Post('/log/list'  , [LogController::class, 'list']  )->name('listLog'  );
	Route::Post('/log/view'  , [LogController::class, 'view']  )->name('viewLog'  );
	
	// メンテナンス（バックアップファイルリスト表示）
	Route::Post('/backup/list'    , [BackupController::class, 'list']  )->name('listBackup'  );
	Route::Post('/backup/request' , [BackupController::class, 'request']  )->name('requestBackup'  );
	
	Route::post('/user/password',[UserController::class, 'password'])->name('userPassword');
	Route::post('/user/add',[UserController::class, 'add'])->name('userAdd');

    // 印刷テスト用
//	Route::get("/invoice/invoiceprint", function() {
//		return view("invoice.report01");
//	});
	Route::get("/invoice/invoicelist", function() {
		return view("invoice.report02");
	});
	Route::get("/dailyuri/urilist", function() {
		return view("dailyuri.report01");
	});
	
});
