Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
contactless-ionic
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
creditcard
contactless-ionic
Commits
488e1932
You need to sign in or sign up before continuing.
Commit
488e1932
authored
Aug 28, 2024
by
伊藤雄大
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
2024/08/28
新しい仕様案に合わせる
parent
3d4f8be7
Show whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
469 additions
and
244 deletions
+469
-244
app-routing.module.ts
src/app/app-routing.module.ts
+2
-2
card-info.component.html
src/app/card-select/card-info/card-info.component.html
+12
-2
card-info.component.ts
src/app/card-select/card-info/card-info.component.ts
+17
-4
card-select.page.html
src/app/card-select/card-select.page.html
+1
-1
card-select.page.ts
src/app/card-select/card-select.page.ts
+9
-3
claim-info.component.html
src/app/claim-list/claim-info/claim-info.component.html
+88
-0
claim-info.component.scss
src/app/claim-list/claim-info/claim-info.component.scss
+0
-0
claim-info.component.spec.ts
src/app/claim-list/claim-info/claim-info.component.spec.ts
+6
-6
claim-info.component.ts
src/app/claim-list/claim-info/claim-info.component.ts
+108
-0
claim-list-routing.module.ts
src/app/claim-list/claim-list-routing.module.ts
+3
-3
claim-list.module.ts
src/app/claim-list/claim-list.module.ts
+7
-7
claim-list.page.html
src/app/claim-list/claim-list.page.html
+3
-8
claim-list.page.scss
src/app/claim-list/claim-list.page.scss
+0
-0
claim-list.page.spec.ts
src/app/claim-list/claim-list.page.spec.ts
+5
-5
claim-list.page.ts
src/app/claim-list/claim-list.page.ts
+37
-28
deny-info.component.html
src/app/deny-list/deny-info/deny-info.component.html
+0
-44
deny-info.component.ts
src/app/deny-list/deny-info/deny-info.component.ts
+0
-48
menu.page.html
src/app/menu/menu.page.html
+1
-1
menu.page.ts
src/app/menu/menu.page.ts
+3
-3
claim-list.model.ts
src/app/model/claim-list.model.ts
+28
-0
credit-card.model.ts
src/app/model/credit-card.model.ts
+7
-0
deny-list.model.ts
src/app/model/deny-list.model.ts
+0
-22
custom-date.pipe.spec.ts
src/app/pipe/custom-date.pipe.spec.ts
+8
-0
custom-date.pipe.ts
src/app/pipe/custom-date.pipe.ts
+24
-0
custom-datetime.pipe.spec.ts
src/app/pipe/custom-datetime.pipe.spec.ts
+8
-0
custom-datetime.pipe.ts
src/app/pipe/custom-datetime.pipe.ts
+26
-0
card.service.ts
src/app/services/card.service.ts
+4
-0
claimlist.service.spec.ts
src/app/services/claimlist.service.spec.ts
+4
-4
claimlist.service.ts
src/app/services/claimlist.service.ts
+55
-0
denylist.service.ts
src/app/services/denylist.service.ts
+0
-50
route.service.ts
src/app/services/route.service.ts
+3
-3
No files found.
src/app/app-routing.module.ts
View file @
488e1932
...
...
@@ -44,8 +44,8 @@ const routes: Routes = [
loadChildren
:
()
=>
import
(
'./history/history.module'
).
then
(
m
=>
m
.
HistoryPageModule
)
},
{
path
:
'
deny
-list'
,
loadChildren
:
()
=>
import
(
'./
deny-list/deny-list.module'
).
then
(
m
=>
m
.
Deny
ListPageModule
)
path
:
'
claim
-list'
,
loadChildren
:
()
=>
import
(
'./
claim-list/claim-list.module'
).
then
(
m
=>
m
.
Claim
ListPageModule
)
},
];
...
...
src/app/card-select/card-info/card-info.component.html
View file @
488e1932
...
...
@@ -7,8 +7,18 @@
<ion-col
style=
"width:75%;padding-top:8px;padding-left:10px;"
>
<ion-label>
クレジットカード
</ion-label>
</ion-col>
<ion-col
size=
"auto"
style=
"padding-top:8px;"
>
<div
class=
"common-link"
(
click
)="
onClickPass
()"
>
定期券
</div>
<ion-col
style=
"padding-top:8px;"
>
@if (creditCardModel?.denyStatus == 1
&&
creditCardModel?.deleteDeny == 0) {
<div
id=
"denyStatus"
role=
"button"
class=
"text-decoration-underline"
style=
"color:red;"
>
拒否リスト登録
</div>
<ion-alert
trigger=
"denyStatus"
header=
"拒否リスト削除しますか?"
[
buttons
]="
confirmButtons
"
(
didDismiss
)="
onClickDenyStatus
($
event
)"
></ion-alert>
} @else if (creditCardModel?.denyStatus == 1
&&
creditCardModel?.deleteDeny == 1) {
<div
id=
"deleteDeny"
role=
"button"
class=
"text-decoration-underline"
style=
"color:red;"
>
拒否リスト削除依頼
</div>
<ion-alert
trigger=
"deleteDeny"
header=
"拒否リスト削除依頼を取消しますか?"
[
buttons
]="
confirmButtons
"
(
didDismiss
)="
onClickDenyStatus
($
event
)"
></ion-alert>
}
</ion-col>
<ion-col
size=
"auto"
align=
"right"
style=
"padding-top:10px;padding-right:10px;"
>
<ion-icon
name=
"trash-outline"
></ion-icon>
...
...
src/app/card-select/card-info/card-info.component.ts
View file @
488e1932
...
...
@@ -17,19 +17,32 @@ import { CreditCardModel } from 'src/app/model/credit-card.model';
export
class
CardInfoComponent
{
//クレジットカード情報
@
Input
()
creditCardModel
?:
CreditCardModel
;
@
Output
()
click
Pas
s
:
EventEmitter
<
void
>
=
new
EventEmitter
();
@
Output
()
click
DenyStatu
s
:
EventEmitter
<
void
>
=
new
EventEmitter
();
@
Output
()
clickTrash
:
EventEmitter
<
void
>
=
new
EventEmitter
();
public
confirmButtons
=
[
{
text
:
'いいえ'
,
role
:
'cancel'
},
{
text
:
'はい'
,
role
:
'confirm'
},
];
/**
* コンストラクタ
*/
constructor
()
{
}
/**
*
定期券
*
拒否リスト状態
*/
onClickPass
():
void
{
this
.
clickPass
.
emit
();
onClickDenyStatus
(
event
:
any
):
void
{
if
(
event
.
detail
.
role
===
'confirm'
)
{
this
.
clickDenyStatus
.
emit
();
}
}
/**
...
...
src/app/card-select/card-select.page.html
View file @
488e1932
...
...
@@ -6,7 +6,7 @@
<div
style=
"margin-top:10px;margin-left:10px;margin-right:10px;"
>
@for (model of cardList;track model.cardNumber) {
<div
style=
"margin-top:10px;"
>
<app-card-info
[
creditCardModel
]="
model
"
(
click
Pass
)="
onClickPas
s
(
model
)"
<app-card-info
[
creditCardModel
]="
model
"
(
click
DenyStatus
)="
onClickDenyStatu
s
(
model
)"
(
clickTrash
)="
onClickTrash
(
model
)"
></app-card-info>
</div>
}
...
...
src/app/card-select/card-select.page.ts
View file @
488e1932
...
...
@@ -48,11 +48,17 @@ export class CardSelectPage implements OnInit {
}
/**
*
定期券
*
拒否リスト状態
* @param model クレジットカード情報
*/
onClickPass
(
model
:
CreditCardModel
):
void
{
this
.
routeService
.
navigatePassSelect
(
model
.
tokenId
,
model
.
cardNumber
);
onClickDenyStatus
(
model
:
CreditCardModel
):
void
{
if
(
this
.
cardList
)
{
for
(
let
i
=
0
;
i
<
this
.
cardList
?.
length
;
i
++
)
{
if
(
this
.
cardList
[
i
].
tokenId
===
model
.
tokenId
&&
this
.
cardList
[
i
].
denyStatus
==
1
)
{
this
.
cardList
[
i
].
deleteDeny
=
this
.
cardList
[
i
].
deleteDeny
==
0
?
1
:
0
;
}
}
}
}
/**
...
...
src/app/claim-list/claim-info/claim-info.component.html
0 → 100644
View file @
488e1932
<div
class=
"border rounded"
>
<ion-grid>
<ion-row>
<ion-col>
<ion-grid>
<ion-row>
<ion-col
style=
"padding-top:5px;"
>
<ion-label>
{{model.agencyName}}
</ion-label>
</ion-col>
<ion-col
size=
"auto"
>
@if (model.ngFlag == 1) {
<ion-label
class=
""
style=
"color:red;"
>
前回NG
</ion-label>
}
</ion-col>
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:5px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
乗車日時
</div>
</ion-col>
<ion-col
style=
"padding-top:5px;"
>
<ion-label>
{{model.getonDt | customDatetime}}
</ion-label>
</ion-col>
<ion-col
size=
"auto"
>
@if (model.cancelRequest == 0) {
<div
role=
"button"
id=
"cancelReq"
class=
"text-decoration-underline"
(
click
)="
onClickBefCancelReq
()"
>
取消依頼
</div>
<ion-alert
[
isOpen
]="
isCancelOpen
"
header=
"取消依頼しますか?"
[
buttons
]="
confirmButtons
"
(
didDismiss
)="
onClickCancelReq
($
event
)"
></ion-alert>
} @else {
<div
role=
"button"
id=
"cancelReqDone"
class=
"text-decoration-underline"
(
click
)="
onClickBefCancelReq
()"
>
取消依頼済
</div>
<ion-alert
[
isOpen
]="
isCancelOpen
"
header=
"取消依頼を解除しますか?"
[
buttons
]="
confirmButtons
"
(
didDismiss
)="
onClickCancelReq
($
event
)"
></ion-alert>
}
</ion-col>
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:5px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
降車日時
</div>
</ion-col>
<ion-col
style=
"padding-top:5px;"
>
<ion-label>
{{model.getoffDt | customDatetime}}
</ion-label>
</ion-col>
@if (model.ngFlag == 1) {
<ion-col
size=
"auto"
>
@if (model.payRequest == 0) {
<div
role=
"button"
id=
"payReq"
class=
"text-decoration-underline"
(
click
)="
onClickBefPayReq
()"
>
支払要求
</div>
<ion-alert
[
isOpen
]="
isPayOpen
"
header=
"支払要求しますか?"
[
buttons
]="
confirmButtons
"
(
didDismiss
)="
onClickPayReq
($
event
)"
></ion-alert>
} @else {
<div
role=
"button"
id=
"payReqDone"
class=
"text-decoration-underline"
(
click
)="
onClickBefPayReq
()"
>
支払要求済
</div>
<ion-alert
[
isOpen
]="
isPayOpen
"
header=
"支払要求を解除しますか?"
[
buttons
]="
confirmButtons
"
(
didDismiss
)="
onClickPayReq
($
event
)"
></ion-alert>
}
</ion-col>
}
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:5px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
処理日時
</div>
</ion-col>
<ion-col
style=
"padding-top:5px;"
>
<ion-label>
{{model.processDt | customDatetime}}
</ion-label>
</ion-col>
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:5px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
売上日
</div>
</ion-col>
<ion-col
style=
"padding-top:5px;"
>
<ion-label>
{{model.earningDate | customDate}}
</ion-label>
</ion-col>
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:5px;padding-bottom:5px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
請求金額
</div>
</ion-col>
<ion-col
style=
"padding-top:5px;padding-bottom:5px;"
>
<ion-label>
{{model.amount | number}}円
</ion-label>
</ion-col>
</ion-row>
</ion-grid>
</ion-col>
</ion-row>
</ion-grid>
</div>
\ No newline at end of file
src/app/
deny-list/deny-info/deny
-info.component.scss
→
src/app/
claim-list/claim-info/claim
-info.component.scss
View file @
488e1932
File moved
src/app/
deny-list/deny-info/deny
-info.component.spec.ts
→
src/app/
claim-list/claim-info/claim
-info.component.spec.ts
View file @
488e1932
import
{
ComponentFixture
,
TestBed
,
waitForAsync
}
from
'@angular/core/testing'
;
import
{
IonicModule
}
from
'@ionic/angular'
;
import
{
DenyInfoComponent
}
from
'./deny
-info.component'
;
import
{
ClaimInfoComponent
}
from
'./claim
-info.component'
;
describe
(
'
Deny
InfoComponent'
,
()
=>
{
let
component
:
Deny
InfoComponent
;
let
fixture
:
ComponentFixture
<
Deny
InfoComponent
>
;
describe
(
'
Claim
InfoComponent'
,
()
=>
{
let
component
:
Claim
InfoComponent
;
let
fixture
:
ComponentFixture
<
Claim
InfoComponent
>
;
beforeEach
(
waitForAsync
(()
=>
{
TestBed
.
configureTestingModule
({
declarations
:
[
Deny
InfoComponent
],
declarations
:
[
Claim
InfoComponent
],
imports
:
[
IonicModule
.
forRoot
()]
}).
compileComponents
();
fixture
=
TestBed
.
createComponent
(
Deny
InfoComponent
);
fixture
=
TestBed
.
createComponent
(
Claim
InfoComponent
);
component
=
fixture
.
componentInstance
;
fixture
.
detectChanges
();
}));
...
...
src/app/claim-list/claim-info/claim-info.component.ts
0 → 100644
View file @
488e1932
import
{
Component
,
EventEmitter
,
Input
,
OnInit
,
Output
}
from
'@angular/core'
;
import
{
IonicModule
}
from
'@ionic/angular'
;
import
{
ClaimListModel
}
from
'src/app/model/claim-list.model'
;
import
{
CustomDatePipe
}
from
'src/app/pipe/custom-date.pipe'
;
import
{
CustomDatetimePipe
}
from
'src/app/pipe/custom-datetime.pipe'
;
import
{
DecimalPipe
}
from
'@angular/common'
;
/**
* 請求一覧情報
*/
@
Component
({
standalone
:
true
,
selector
:
'app-claim-info'
,
templateUrl
:
'./claim-info.component.html'
,
styleUrls
:
[
'./claim-info.component.scss'
],
imports
:
[
IonicModule
,
CustomDatePipe
,
CustomDatetimePipe
,
DecimalPipe
]
})
export
class
ClaimInfoComponent
implements
OnInit
{
@
Input
()
model
:
ClaimListModel
=
new
ClaimListModel
();
@
Output
()
clickPayReq
:
EventEmitter
<
ClaimListModel
>
=
new
EventEmitter
<
ClaimListModel
>
();
@
Output
()
clickCancelReq
:
EventEmitter
<
ClaimListModel
>
=
new
EventEmitter
<
ClaimListModel
>
();
public
confirmButtons
=
[
{
text
:
'いいえ'
,
role
:
'cancel'
},
{
text
:
'はい'
,
role
:
'confirm'
},
];
//取消依頼メッセージダイアログ表示有無
isCancelOpen
:
boolean
=
false
;
//支払要求メッセージダイアログ表示有無
isPayOpen
:
boolean
=
false
;
/**
* コンストラクタ
*/
constructor
()
{
}
/**
* 初期化
*/
ngOnInit
():
void
{
}
/**
* 拒否リスト情報取得
* @returns 拒否リスト情報
*/
getModel
():
ClaimListModel
{
return
this
.
model
;
}
/**
* 取消依頼ダイアログを表示する前の処理
*/
onClickBefCancelReq
():
void
{
if
(
this
.
model
.
payRequest
===
1
)
{
//既に支払要求済の場合は取消させない
alert
(
"既に支払要求済となっています。"
)
return
;
}
this
.
isCancelOpen
=
true
;
}
/**
* 取消依頼ダイアログ
* @param event
*/
onClickCancelReq
(
event
:
any
):
void
{
if
(
event
.
detail
.
role
===
'confirm'
)
{
this
.
clickCancelReq
.
emit
(
this
.
model
);
}
this
.
isCancelOpen
=
false
;
}
/**
* 支払要求ダイアログを表示する前の処理
*/
onClickBefPayReq
():
void
{
if
(
this
.
model
.
cancelRequest
===
1
)
{
//既に取消依頼済の場合は支払要求させない
alert
(
"既に取消依頼済となっています。"
);
return
;
}
this
.
isPayOpen
=
true
;
}
/**
* 支払要求ダイアログ
* @param event
*/
onClickPayReq
(
event
:
any
):
void
{
if
(
event
.
detail
.
role
===
'confirm'
)
{
this
.
clickPayReq
.
emit
(
this
.
model
);
}
this
.
isPayOpen
=
false
;
}
}
src/app/
deny-list/deny
-list-routing.module.ts
→
src/app/
claim-list/claim
-list-routing.module.ts
View file @
488e1932
import
{
NgModule
}
from
'@angular/core'
;
import
{
Routes
,
RouterModule
}
from
'@angular/router'
;
import
{
DenyListPage
}
from
'./deny
-list.page'
;
import
{
ClaimListPage
}
from
'./claim
-list.page'
;
const
routes
:
Routes
=
[
{
path
:
''
,
component
:
Deny
ListPage
component
:
Claim
ListPage
}
];
...
...
@@ -14,4 +14,4 @@ const routes: Routes = [
imports
:
[
RouterModule
.
forChild
(
routes
)],
exports
:
[
RouterModule
],
})
export
class
Deny
ListPageRoutingModule
{}
export
class
Claim
ListPageRoutingModule
{}
src/app/
deny-list/deny
-list.module.ts
→
src/app/
claim-list/claim
-list.module.ts
View file @
488e1932
...
...
@@ -4,22 +4,22 @@ import { FormsModule } from '@angular/forms';
import
{
IonicModule
}
from
'@ionic/angular'
;
import
{
DenyListPageRoutingModule
}
from
'./deny
-list-routing.module'
;
import
{
ClaimListPageRoutingModule
}
from
'./claim
-list-routing.module'
;
import
{
DenyListPage
}
from
'./deny
-list.page'
;
import
{
ClaimListPage
}
from
'./claim
-list.page'
;
import
{
HeaderComponent
}
from
'../common/header/header.component'
;
import
{
DenyInfoComponent
}
from
'./deny-info/deny
-info.component'
;
import
{
ClaimInfoComponent
}
from
'./claim-info/claim
-info.component'
;
@
NgModule
({
imports
:
[
CommonModule
,
FormsModule
,
IonicModule
,
Deny
ListPageRoutingModule
,
Deny
InfoComponent
,
Claim
ListPageRoutingModule
,
Claim
InfoComponent
,
HeaderComponent
],
declarations
:
[
Deny
ListPage
]
declarations
:
[
Claim
ListPage
]
})
export
class
Deny
ListPageModule
{
}
export
class
Claim
ListPageModule
{
}
src/app/
deny-list/deny
-list.page.html
→
src/app/
claim-list/claim
-list.page.html
View file @
488e1932
...
...
@@ -3,14 +3,10 @@
</ion-header>
<ion-content
[
fullscreen
]="
true
"
>
@for(model of
denyList;track model.getonStop
Id) {
@for(model of
claimList;track model.agency
Id) {
<div
style=
"margin-top:10px;margin-left:10px;margin-right:10px;"
>
<app-deny-info
[
model
]="
model
"
></app-deny-info>
<app-claim-info
[
model
]="
model
"
(
clickPayReq
)="
onClickPayReq
($
event
)"
(
clickCancelReq
)="
onClickCancelReq
($
event
)"
></app-claim-info>
</div>
}
<div
style=
"margin-top:20px;text-align:center;"
>
<ion-button
id=
"delreq"
class=
"common-button rounded"
style=
"margin-top:20px;"
>
削除依頼
</ion-button>
<ion-alert
trigger=
"delreq"
header=
"拒否リストからの削除を依頼しますか?"
[
buttons
]="
confirmButtons
"
(
didDismiss
)="
onClickDelreq
($
event
)"
></ion-alert>
</div>
</ion-content>
\ No newline at end of file
src/app/
deny-list/deny
-list.page.scss
→
src/app/
claim-list/claim
-list.page.scss
View file @
488e1932
File moved
src/app/
deny-list/deny
-list.page.spec.ts
→
src/app/
claim-list/claim
-list.page.spec.ts
View file @
488e1932
import
{
ComponentFixture
,
TestBed
}
from
'@angular/core/testing'
;
import
{
DenyListPage
}
from
'./deny
-list.page'
;
import
{
ClaimListPage
}
from
'./claim
-list.page'
;
describe
(
'
Deny
ListPage'
,
()
=>
{
let
component
:
Deny
ListPage
;
let
fixture
:
ComponentFixture
<
Deny
ListPage
>
;
describe
(
'
Claim
ListPage'
,
()
=>
{
let
component
:
Claim
ListPage
;
let
fixture
:
ComponentFixture
<
Claim
ListPage
>
;
beforeEach
(()
=>
{
fixture
=
TestBed
.
createComponent
(
Deny
ListPage
);
fixture
=
TestBed
.
createComponent
(
Claim
ListPage
);
component
=
fixture
.
componentInstance
;
fixture
.
detectChanges
();
});
...
...
src/app/
deny-list/deny
-list.page.ts
→
src/app/
claim-list/claim
-list.page.ts
View file @
488e1932
import
{
Component
,
OnInit
,
QueryList
,
ViewChildren
}
from
'@angular/core'
;
import
{
DenyListModel
}
from
'../model/deny
-list.model'
;
import
{
ClaimListModel
}
from
'../model/claim
-list.model'
;
import
{
RouteService
}
from
'../services/route.service'
;
import
{
DenyInfoComponent
}
from
'./deny-info/deny
-info.component'
;
import
{
DenylistService
}
from
'../services/deny
list.service'
;
import
{
ClaimInfoComponent
}
from
'./claim-info/claim
-info.component'
;
import
{
ClaimlistService
}
from
'../services/claim
list.service'
;
/**
* 拒否リスト
*/
@
Component
({
selector
:
'app-
deny
-list'
,
templateUrl
:
'./
deny
-list.page.html'
,
styleUrls
:
[
'./
deny
-list.page.scss'
],
selector
:
'app-
claim
-list'
,
templateUrl
:
'./
claim
-list.page.html'
,
styleUrls
:
[
'./
claim
-list.page.scss'
],
})
export
class
Deny
ListPage
implements
OnInit
{
export
class
Claim
ListPage
implements
OnInit
{
public
confirmButtons
=
[
{
text
:
'いいえ'
,
...
...
@@ -24,26 +24,26 @@ export class DenyListPage implements OnInit {
},
];
//
拒否リスト
denyList
?:
Deny
ListModel
[];
//
請求一覧
claimList
?:
Claim
ListModel
[];
@
ViewChildren
(
DenyInfoComponent
)
denyInfoList
?:
QueryList
<
Deny
InfoComponent
>
;
@
ViewChildren
(
ClaimInfoComponent
)
claimInfoList
?:
QueryList
<
Claim
InfoComponent
>
;
/**
* コンストラクタ
* @param routeService 画面遷移サービス
* @param
denyListService 拒否リスト
サービス
* @param
claimListService 請求一覧
サービス
*/
constructor
(
private
routeService
:
RouteService
,
private
denyListService
:
Deny
listService
)
{
}
constructor
(
private
routeService
:
RouteService
,
private
claimListService
:
Claim
listService
)
{
}
/**
* 初期化
*/
ngOnInit
()
{
if
(
this
.
routeService
.
customerId
)
{
//this.
denyList = this.deny
ListService.getList(this.routeService.customerId);
this
.
denyListService
.
getList
(
this
.
routeService
.
customerId
).
subscribe
((
ret
:
Deny
ListModel
[])
=>
{
this
.
deny
List
=
ret
;
//this.
claimList = this.claim
ListService.getList(this.routeService.customerId);
this
.
claimListService
.
getList
(
this
.
routeService
.
customerId
).
subscribe
((
ret
:
Claim
ListModel
[])
=>
{
this
.
claim
List
=
ret
;
});
}
}
...
...
@@ -58,23 +58,32 @@ export class DenyListPage implements OnInit {
}
/**
* 削除依頼
* 支払要求
* @param model 請求情報
*/
onClickDelreq
(
event
:
any
):
void
{
if
(
event
.
detail
.
role
===
'confirm'
)
{
let
req
:
DenyListModel
[]
=
[];
this
.
denyInfoList
?.
forEach
(
child
=>
{
let
model
=
child
.
getModel
();
if
(
model
.
select
)
{
//拒否リスト削除依頼
req
.
push
(
model
);
onClickPayReq
(
model
:
ClaimListModel
):
void
{
if
(
this
.
claimList
)
{
for
(
let
i
=
0
;
i
<
this
.
claimList
.
length
;
i
++
)
{
if
(
this
.
claimList
[
i
].
tokenId
===
model
.
tokenId
&&
this
.
claimList
[
i
].
getonDt
===
model
.
getonDt
)
{
this
.
claimList
[
i
].
payRequest
=
this
.
claimList
[
i
].
payRequest
===
0
?
1
:
0
;
break
;
}
});
this
.
denyListService
.
reqDelete
(
req
);
}
if
(
this
.
routeService
.
customerId
)
{
this
.
routeService
.
navigateMenu
(
this
.
routeService
.
customerId
);
}
}
/**
* 取消依頼
* @param model 請求情報
*/
onClickCancelReq
(
model
:
ClaimListModel
):
void
{
if
(
this
.
claimList
)
{
for
(
let
i
=
0
;
i
<
this
.
claimList
.
length
;
i
++
)
{
if
(
this
.
claimList
[
i
].
tokenId
===
model
.
tokenId
&&
this
.
claimList
[
i
].
getonDt
===
model
.
getonDt
)
{
this
.
claimList
[
i
].
cancelRequest
=
this
.
claimList
[
i
].
cancelRequest
===
0
?
1
:
0
;
break
;
}
}
}
}
}
src/app/deny-list/deny-info/deny-info.component.html
deleted
100644 → 0
View file @
3d4f8be7
<div
class=
"border rounded"
>
<ion-grid
class=
"</ion-label>"
>
<ion-row>
<ion-col
style=
"padding-left:10px;"
size=
"auto"
>
<ion-checkbox
class=
"form-check-input"
style=
"margin-top:80px;"
(
change
)="
onChangeSelect
($
event
)"
></ion-checkbox>
</ion-col>
<ion-col>
<ion-grid
class=
"</ion-label>"
>
<ion-row>
<ion-col
style=
"padding-top:10px;"
>
<ion-label>
{{model.getonStopName}}→{{model.getoffStopName}}
</ion-label>
</ion-col>
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:10px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
乗車
</div>
</ion-col>
<ion-col
style=
"padding-top:10px;"
>
<ion-label>
{{model.getonDt}}
</ion-label>
</ion-col>
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:10px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
降車
</div>
</ion-col>
<ion-col
style=
"padding-top:10px;"
>
<ion-label>
{{model.getoffDt}}
</ion-label>
</ion-col>
</ion-row>
<ion-row>
<ion-col
style=
"padding-top:10px;padding-bottom:10px;"
size=
"auto"
>
<div
style=
"width:80px;"
>
請求金額
</div>
</ion-col>
<ion-col
style=
"padding-top:10px;padding-bottom:10px;"
>
<ion-label>
{{amountStr}}円
</ion-label>
</ion-col>
</ion-row>
</ion-grid>
</ion-col>
</ion-row>
</ion-grid>
</div>
\ No newline at end of file
src/app/deny-list/deny-info/deny-info.component.ts
deleted
100644 → 0
View file @
3d4f8be7
import
{
Component
,
Input
,
OnInit
}
from
'@angular/core'
;
import
{
IonicModule
}
from
'@ionic/angular'
;
import
{
DenyListModel
}
from
'src/app/model/deny-list.model'
;
/**
* 拒否リスト情報
*/
@
Component
({
standalone
:
true
,
selector
:
'app-deny-info'
,
templateUrl
:
'./deny-info.component.html'
,
styleUrls
:
[
'./deny-info.component.scss'
],
imports
:
[
IonicModule
]
})
export
class
DenyInfoComponent
implements
OnInit
{
@
Input
()
model
:
DenyListModel
=
new
DenyListModel
();
amountStr
?:
string
;
/**
* コンストラクタ
*/
constructor
()
{
}
/**
* 初期化
*/
ngOnInit
():
void
{
this
.
amountStr
=
this
.
model
.
amount
.
toLocaleString
();
}
/**
* 選択イベント
* @param event イベント情報
*/
onChangeSelect
(
event
:
any
):
void
{
this
.
model
.
select
=
event
.
target
.
checked
;
}
/**
* 拒否リスト情報取得
* @returns 拒否リスト情報
*/
getModel
():
DenyListModel
{
return
this
.
model
;
}
}
src/app/menu/menu.page.html
View file @
488e1932
...
...
@@ -18,7 +18,7 @@
<ion-row>
<ion-col>
<ion-button
class=
"rounded menu-button"
style=
"margin-top:10px;"
value=
""
(
click
)="
onClick
DenyList
()"
>
拒否リスト
</ion-button>
(
click
)="
onClick
ClaimList
()"
>
請求一覧
</ion-button>
</ion-col>
</ion-row>
</ion-grid>
...
...
src/app/menu/menu.page.ts
View file @
488e1932
...
...
@@ -40,9 +40,9 @@ export class MenuPage {
}
/**
*
拒否リスト
*
請求一覧
*/
onClick
Deny
List
():
void
{
this
.
routeServive
.
navigate
Deny
List
();
onClick
Claim
List
():
void
{
this
.
routeServive
.
navigate
Claim
List
();
}
}
src/app/model/claim-list.model.ts
0 → 100644
View file @
488e1932
/**
* 請求情報
*/
export
class
ClaimListModel
{
//トークンID
tokenId
?:
string
;
//事業者ID
agencyId
?:
string
;
//事業者名
agencyName
?:
string
;
//処理日時
processDt
?:
string
;
//売上日
earningDate
?:
string
;
//乗車日時
getonDt
?:
string
;
//降車日時
getoffDt
?:
string
;
//請求金額
amount
:
number
=
0
;
//NGフラグ
ngFlag
:
number
=
0
;
//支払要求
payRequest
:
number
=
0
;
//取消依頼
cancelRequest
:
number
=
0
;
}
\ No newline at end of file
src/app/model/credit-card.model.ts
View file @
488e1932
...
...
@@ -22,4 +22,10 @@ export class CreditCardModel {
//CVC
cvc
:
string
=
""
;
//拒否リスト状態
denyStatus
:
number
=
0
;
//拒否リスト削除依頼
deleteDeny
:
number
=
1
;
}
\ No newline at end of file
src/app/model/deny-list.model.ts
deleted
100644 → 0
View file @
3d4f8be7
/**
* 拒否リスト情報
*/
export
class
DenyListModel
{
//選択状態
select
:
boolean
=
false
;
//乗車停留所ID
getonStopId
?:
string
;
//乗車停留所名
getonStopName
?:
string
;
//降車停留所ID
getoffStopId
?:
string
;
//降車停留所名
getoffStopName
?:
string
;
//乗車日時
getonDt
?:
string
;
//降車日時
getoffDt
?:
string
;
//請求金額
amount
:
number
=
0
;
}
\ No newline at end of file
src/app/pipe/custom-date.pipe.spec.ts
0 → 100644
View file @
488e1932
import
{
CustomDatePipe
}
from
'./custom-date.pipe'
;
describe
(
'CustomDatePipe'
,
()
=>
{
it
(
'create an instance'
,
()
=>
{
const
pipe
=
new
CustomDatePipe
();
expect
(
pipe
).
toBeTruthy
();
});
});
src/app/pipe/custom-date.pipe.ts
0 → 100644
View file @
488e1932
import
{
Pipe
,
PipeTransform
}
from
'@angular/core'
;
@
Pipe
({
name
:
'customDate'
,
standalone
:
true
})
export
class
CustomDatePipe
implements
PipeTransform
{
/**
* YYYYMMDD→YYYY/MM/DD変換
* @param value YYYYMMDD
* @returns YYYY/MM/DD
*/
transform
(
value
?:
string
):
string
{
if
(
!
value
)
{
return
""
;
}
const
year
=
value
.
substring
(
0
,
4
);
const
month
=
value
.
substring
(
4
,
6
);
const
day
=
value
.
substring
(
6
);
return
year
+
"/"
+
month
+
"/"
+
day
;
}
}
src/app/pipe/custom-datetime.pipe.spec.ts
0 → 100644
View file @
488e1932
import
{
CustomDatetimePipe
}
from
'./custom-datetime.pipe'
;
describe
(
'CustomDatetimePipe'
,
()
=>
{
it
(
'create an instance'
,
()
=>
{
const
pipe
=
new
CustomDatetimePipe
();
expect
(
pipe
).
toBeTruthy
();
});
});
src/app/pipe/custom-datetime.pipe.ts
0 → 100644
View file @
488e1932
import
{
Pipe
,
PipeTransform
}
from
'@angular/core'
;
@
Pipe
({
name
:
'customDatetime'
,
standalone
:
true
})
export
class
CustomDatetimePipe
implements
PipeTransform
{
/**
* YYYYMMDDHHMISS→YYYY/MM/DD HH:MI:SS変換
* @param value YYYYMMDDHHMISS→YYYY
* @returns YYYY/MM/DD HH:MI:SS
*/
transform
(
value
?:
string
):
string
{
if
(
!
value
)
{
return
""
;
}
const
year
=
value
.
substring
(
0
,
4
);
const
month
=
value
.
substring
(
4
,
6
);
const
day
=
value
.
substring
(
6
,
8
);
const
hour
=
value
.
substring
(
8
,
10
);
const
min
=
value
.
substring
(
10
,
12
);
const
sec
=
value
.
substring
(
12
);
return
year
+
"/"
+
month
+
"/"
+
day
+
" "
+
hour
+
":"
+
min
+
":"
+
sec
;
}
}
src/app/services/card.service.ts
View file @
488e1932
...
...
@@ -30,6 +30,10 @@ export class CardService {
model
.
cardOwner
=
"TARO YAMADA"
;
model
.
cardYear
=
"2023"
;
model
.
cardMonth
=
"02"
;
if
(
i
==
1
)
{
model
.
denyStatus
=
1
;
}
model
.
deleteDeny
=
0
;
cardList
.
push
(
model
);
}
//return cardList;
...
...
src/app/services/
deny
list.service.spec.ts
→
src/app/services/
claim
list.service.spec.ts
View file @
488e1932
import
{
TestBed
}
from
'@angular/core/testing'
;
import
{
DenylistService
}
from
'./deny
list.service'
;
import
{
ClaimlistService
}
from
'./claim
list.service'
;
describe
(
'
Deny
listService'
,
()
=>
{
let
service
:
Deny
listService
;
describe
(
'
Claim
listService'
,
()
=>
{
let
service
:
Claim
listService
;
beforeEach
(()
=>
{
TestBed
.
configureTestingModule
({});
service
=
TestBed
.
inject
(
Deny
listService
);
service
=
TestBed
.
inject
(
Claim
listService
);
});
it
(
'should be created'
,
()
=>
{
...
...
src/app/services/claimlist.service.ts
0 → 100644
View file @
488e1932
import
{
Injectable
}
from
'@angular/core'
;
import
{
ClaimListModel
}
from
'../model/claim-list.model'
;
import
{
Observable
}
from
'rxjs'
;
/**
* 請求一覧サービス
*/
@
Injectable
({
providedIn
:
'root'
})
export
class
ClaimlistService
{
/**
* コンストラクタ
*/
constructor
()
{
}
/**
* 請求一覧取得
* @param customerId 利用者ID
* @return 請求一覧
*/
getList
(
customerId
:
string
):
Observable
<
ClaimListModel
[]
>
{
//TODO
let
claimList
=
new
Array
();
for
(
let
i
=
0
;
i
<
2
;
i
++
)
{
let
claimListModel
=
new
ClaimListModel
();
let
str
=
String
(
i
);
claimListModel
.
tokenId
=
"token001"
;
claimListModel
.
agencyId
=
str
;
claimListModel
.
agencyName
=
"XXXXバス"
;
claimListModel
.
processDt
=
"20240620103002"
;
claimListModel
.
earningDate
=
"20240620"
;
claimListModel
.
getonDt
=
"2024062010000"
+
str
;
claimListModel
.
getoffDt
=
"20240620103004"
;
claimListModel
.
amount
=
1000
;
if
(
i
==
1
)
{
claimListModel
.
ngFlag
=
1
;
}
claimList
.
push
(
claimListModel
);
}
//return claimList;
return
new
Observable
<
ClaimListModel
[]
>
(
o
=>
{
o
.
next
(
claimList
);
});
}
/**
* 拒否リスト削除依頼
* @param list 依頼対象
*/
reqDelete
(
list
:
ClaimListModel
[]):
void
{
//TODO
}
}
src/app/services/denylist.service.ts
deleted
100644 → 0
View file @
3d4f8be7
import
{
Injectable
}
from
'@angular/core'
;
import
{
DenyListModel
}
from
'../model/deny-list.model'
;
import
{
Observable
}
from
'rxjs'
;
/**
* 拒否リストサービス
*/
@
Injectable
({
providedIn
:
'root'
})
export
class
DenylistService
{
/**
* コンストラクタ
*/
constructor
()
{
}
/**
* 拒否リスト取得
* @param customerId 利用者ID
* @return 拒否リスト
*/
getList
(
customerId
:
string
):
Observable
<
DenyListModel
[]
>
{
//TODO
let
denyList
=
new
Array
();
for
(
let
i
=
0
;
i
<
4
;
i
++
)
{
let
denyListModel
=
new
DenyListModel
();
let
str
=
String
(
i
);
denyListModel
.
getonStopId
=
str
;
denyListModel
.
getonStopName
=
"XXXX停留所"
;
denyListModel
.
getoffStopName
=
"YYYYY停留所"
;
denyListModel
.
getonDt
=
"2024/06/20 10:00:01"
;
denyListModel
.
getoffDt
=
"2024/06/20 10:30:02"
;
denyListModel
.
amount
=
1000
;
denyList
.
push
(
denyListModel
);
}
//return denyList;
return
new
Observable
<
DenyListModel
[]
>
(
o
=>
{
o
.
next
(
denyList
);
});
}
/**
* 拒否リスト削除依頼
* @param list 依頼対象
*/
reqDelete
(
list
:
DenyListModel
[]):
void
{
//TODO
}
}
src/app/services/route.service.ts
View file @
488e1932
...
...
@@ -128,9 +128,9 @@ export class RouteService {
}
/**
*
拒否リスト管理
画面へ遷移
*
請求一覧
画面へ遷移
*/
navigate
Deny
List
()
{
this
.
router
.
navigate
([
'
deny
-list'
]);
navigate
Claim
List
()
{
this
.
router
.
navigate
([
'
claim
-list'
]);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment