edit
This commit is contained in:
@ -0,0 +1,82 @@
|
||||
<page-header-wrapper [title]="'收票信息'" [logo]="logo">
|
||||
<ng-template #logo>
|
||||
<button nz-button nz-tooltip nzTooltipTitle="返回上一页" (click)="goBack()">
|
||||
<i nz-icon nzType="left" nzTheme="outline"></i>
|
||||
</button>
|
||||
</ng-template>
|
||||
</page-header-wrapper>
|
||||
|
||||
<nz-card class="statistics-box">
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="150" col="1">
|
||||
<se label="网络货运人" required>
|
||||
{{headerInfo?.ltdid}}
|
||||
</se>
|
||||
<se label="收款人" required>
|
||||
{{headerInfo?.invdate}}
|
||||
</se>
|
||||
<se label="付款账户" required>
|
||||
{{headerInfo?.invdate}}
|
||||
</se>
|
||||
<se label="应付已核销" required>
|
||||
{{headerInfo?.invdate}}
|
||||
</se>
|
||||
</div>
|
||||
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1">
|
||||
<se label="要求付款日期" required>
|
||||
{{headerInfo?.hrtoName}}
|
||||
</se>
|
||||
<se label="收款账户" required>
|
||||
{{headerInfo?.invoiceno}}
|
||||
</se>
|
||||
<se label="确认日期" required>
|
||||
{{headerInfo?.invoiceno}}
|
||||
</se>
|
||||
<se label="付款备注" >
|
||||
{{headerInfo?.invoiceno}}
|
||||
</se>
|
||||
</div>
|
||||
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1">
|
||||
<se label="付款方式" required>
|
||||
{{headerInfo?.invtype}}
|
||||
</se>
|
||||
<se label="付款类型" required>
|
||||
{{headerInfo?.remarks}}
|
||||
</se>
|
||||
<se label="付款金额" required>
|
||||
{{headerInfo?.remarks}}
|
||||
</se>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="search-box" nzBordered>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||
<sf #sf [schema]="searchSchema"
|
||||
[ui]="{ '*': { spanLabelFixed: 90,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" [class.expend-options]="_$expand"
|
||||
class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box" nzBordered>
|
||||
<st #st [data]="service.$api_get_payment_detail" [columns]="columns" size="small"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }">
|
||||
<ng-template st-row="billHCode" let-item let-index="index" let-column="column">
|
||||
{{index+1}}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
@ -0,0 +1,158 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
import { FreightAccountService } from '../../../services/freight-account.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-payment-order-detail',
|
||||
templateUrl: './payment-order-detail.component.html',
|
||||
styleUrls: ['./payment-order-detail.component.less']
|
||||
})
|
||||
export class PaymentOrderDetailComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
sf!: SFComponent;
|
||||
columns: STColumn[] = this.initST();
|
||||
searchSchema: SFSchema = this.initSF();
|
||||
|
||||
_$expand = false;
|
||||
|
||||
id = null;
|
||||
headerInfo: any = {};
|
||||
constructor(public service: FreightAccountService, private route: ActivatedRoute) {
|
||||
this.id = route.snapshot.params.id;
|
||||
this.loadHeadInfo();
|
||||
}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
loadHeadInfo() {
|
||||
// this.service.request(this.service.$api_get_input_invoice_header, { id: this.id }).subscribe(res => {
|
||||
// console.log(res);
|
||||
// if (res) {
|
||||
// this.headerInfo = res;
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf.value,
|
||||
billTime: {
|
||||
start: this.sf.value.billTime?.[0] || null,
|
||||
end: this.sf.value.billTime?.[1] || null
|
||||
},
|
||||
feedate: {
|
||||
start: this.sf.value.feedate?.[0] || null,
|
||||
end: this.sf.value.feedate?.[1] || null
|
||||
}
|
||||
});
|
||||
}
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
goBack() {
|
||||
history.go(-1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
}
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle() {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/expand', this._$expand);
|
||||
}
|
||||
|
||||
private initSF(): SFSchema {
|
||||
return {
|
||||
properties: {
|
||||
expand: {
|
||||
type: 'boolean',
|
||||
ui: {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
feeHCode: {
|
||||
type: 'string',
|
||||
title: '费用单号',
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
billHCode: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
waybillHCode: {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
feedate: {
|
||||
title: '费用日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
billTime: {
|
||||
title: '订单日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
cno: {
|
||||
type: 'string',
|
||||
title: '结算客户',
|
||||
enum: [{ label: '全部', value: '' }],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
},
|
||||
default: ''
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '序号', render: 'billHCode', width: 80 },
|
||||
{ title: '费用号', index: 'feeHCode', width: 100 },
|
||||
{ title: '费用日期', index: 'feedate', type: 'date', width: 150 },
|
||||
{ title: '订单号', index: 'billHCode', width: 100 },
|
||||
{ title: '订单日期', index: 'billTime', width: 150 },
|
||||
{ title: '结算客户', index: 'cnoName', width: 90 },
|
||||
{ title: '费用科目', index: 'feeSubId', width: 100 },
|
||||
{ title: '收票金额', index: 'paymoney', width: 140 },
|
||||
{ title: '收票税额', index: 'invtax', width: 100 }
|
||||
];
|
||||
}
|
||||
}
|
||||
@ -3,12 +3,12 @@
|
||||
|
||||
<nz-card class="search-box" nzBordered>
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 18" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 17" [nzLg]="24" [nzSm]="24" [nzXs]="24">
|
||||
<sf #sf [schema]="searchSchema"
|
||||
[ui]="{ '*': { spanLabelFixed: 110,grid: { lg: 8, md: 12, sm: 12, xs: 24 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 6" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"
|
||||
<div nz-col [nzXl]="_$expand ? 24 : 7" [nzLg]="24" [nzSm]="24" [nzXs]="24" class="text-right"
|
||||
[class.expend-options]="_$expand">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
@ -34,7 +34,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #st [data]="service.$mock_url" [columns]="columns"
|
||||
<st #st [data]="service.$api_get_payment_page" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
|
||||
@ -5,6 +5,7 @@ import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { AddCollectionInvoiceModalComponent } from 'src/app/routes/ticket-management/components/input-invoice/add-collection-invoice-modal/add-collection-invoice-modal.component';
|
||||
import { TicketService } from 'src/app/routes/ticket-management/services/ticket.service';
|
||||
import { FreightAccountService } from '../../services/freight-account.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-payment-order',
|
||||
@ -22,7 +23,7 @@ export class PaymentOrderComponent implements OnInit {
|
||||
_$expand = false;
|
||||
|
||||
selectedRows: any[] = [];
|
||||
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
|
||||
constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
@ -81,15 +82,15 @@ export class PaymentOrderComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
orderSn: {
|
||||
paycodes: {
|
||||
type: 'string',
|
||||
title: '付款单号',
|
||||
ui: {
|
||||
autocomplete: 'off',
|
||||
placeholder: '请输入'
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
ltdId: {
|
||||
ltdid: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
ui: {
|
||||
@ -98,7 +99,7 @@ export class PaymentOrderComponent implements OnInit {
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getNetworkFreightForwarder()
|
||||
},
|
||||
default: ''
|
||||
default: null
|
||||
},
|
||||
orderS2n: {
|
||||
type: 'string',
|
||||
@ -109,53 +110,51 @@ export class PaymentOrderComponent implements OnInit {
|
||||
placeholder: '请选择'
|
||||
}
|
||||
},
|
||||
order2S2n: {
|
||||
paytype: {
|
||||
type: 'string',
|
||||
title: '付款类型',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'refund:apply:status' },
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
order22S2n: {
|
||||
paymode: {
|
||||
type: 'string',
|
||||
title: '付款方式',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'refund:apply:status' },
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
order221S2n: {
|
||||
arto: {
|
||||
type: 'string',
|
||||
title: '收款人',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'refund:apply:status' },
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
orderS12n: {
|
||||
billHCodes: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
createTime: {
|
||||
paydate: {
|
||||
title: '要求付款日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
@ -177,27 +176,29 @@ export class PaymentOrderComponent implements OnInit {
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
orderS1n2: {
|
||||
waybillHCodes: {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
orderS3: {
|
||||
feeHCodes: {
|
||||
type: 'string',
|
||||
title: '费用号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
createT1i1me: {
|
||||
createTime: {
|
||||
title: '创建时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
@ -208,11 +209,10 @@ export class PaymentOrderComponent implements OnInit {
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
orderSn4: {
|
||||
remarks: {
|
||||
type: 'string',
|
||||
title: '付款备注',
|
||||
ui: {
|
||||
autocomplete: 'off',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
@ -226,26 +226,26 @@ export class PaymentOrderComponent implements OnInit {
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '付款单号', index: 'no', type: 'link' },
|
||||
{ title: '网络货运人', index: 'no' },
|
||||
{ title: '要求付款日期', index: 'no', type: 'date', width: 140 },
|
||||
{ title: '付款金额', index: 'callNo' },
|
||||
{ title: '付款类型', index: 'callNo' },
|
||||
{ title: '付款方式', index: 'call1No' },
|
||||
{ title: '付款单号', index: 'paycode', type: 'link' },
|
||||
{ title: '网络货运人', index: 'ltdId' },
|
||||
{ title: '要求付款日期', index: 'paydate', type: 'date', width: 140 },
|
||||
{ title: '付款金额', index: 'paymoney' },
|
||||
{ title: '付款类型', index: 'paytype' },
|
||||
{ title: '付款方式', index: 'paymode' },
|
||||
{ title: '结算客户', index: 'call1N2o' },
|
||||
{ title: '收款人', index: 'callNo' },
|
||||
{ title: '收款人', index: 'hrto' },
|
||||
{ title: '应付已核销', index: 'callNo' },
|
||||
{ title: '确认日期', index: 'updatedAt', type: 'date' },
|
||||
{ title: '创建时间', index: 'updatedAt', type: 'date' },
|
||||
{ title: '创建人', index: 'callNo' },
|
||||
{ title: '付款备注', index: 'callNo' },
|
||||
{ title: '确认日期', index: 'paydate2', type: 'date' },
|
||||
{ title: '创建时间', index: 'createTime', type: 'date' },
|
||||
{ title: '创建人', index: 'createUserId' },
|
||||
{ title: '付款备注', index: 'payremarks' },
|
||||
{
|
||||
title: '操作',
|
||||
width: '90px',
|
||||
buttons: [
|
||||
{
|
||||
text: '浏览',
|
||||
click: item => this.router.navigate(['/ticket/input-invoice/detail/1'])
|
||||
click: item => this.router.navigate(['/ticket/input-invoice/detail/' + item.id])
|
||||
},
|
||||
{
|
||||
text: '修改',
|
||||
|
||||
@ -6,8 +6,7 @@ import { FreightAccountService } from '../../../services/freight-account.service
|
||||
|
||||
@Component({
|
||||
selector: 'app-voucher-detail',
|
||||
templateUrl: './voucher-detail.component.html',
|
||||
providers: [CurrencyPipe]
|
||||
templateUrl: './voucher-detail.component.html'
|
||||
})
|
||||
export class VoucherDetailComponent implements OnInit {
|
||||
columns: STColumn[] = [
|
||||
@ -19,22 +18,24 @@ export class VoucherDetailComponent implements OnInit {
|
||||
title: '借方金额',
|
||||
index: 'drlocalmoney',
|
||||
width: 150,
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.drlocalmoney)}`
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.drlocalmoney }) }
|
||||
},
|
||||
{
|
||||
title: '贷方金额',
|
||||
index: 'crlocalmoney',
|
||||
width: 150,
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.crlocalmoney)}`
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.crlocalmoney }) }
|
||||
}
|
||||
];
|
||||
id!: string;
|
||||
|
||||
info: any = { faShowVOList: [] };
|
||||
|
||||
constructor(public service: FreightAccountService, private currencyPipe: CurrencyPipe, private route: ActivatedRoute) {
|
||||
constructor(public service: FreightAccountService, private route: ActivatedRoute) {
|
||||
this.id = route.snapshot.params.id;
|
||||
}
|
||||
|
||||
|
||||
@ -11,8 +11,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
|
||||
@Component({
|
||||
selector: 'app-voucher-management',
|
||||
templateUrl: './voucher-management.component.html',
|
||||
styleUrls: ['../../../commom/less/box.less'],
|
||||
providers: [CurrencyPipe]
|
||||
styleUrls: ['../../../commom/less/box.less']
|
||||
})
|
||||
export class VoucherManagementComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
@ -27,12 +26,7 @@ export class VoucherManagementComponent implements OnInit {
|
||||
_$expand = false;
|
||||
|
||||
selectedRows: any[] = [];
|
||||
constructor(
|
||||
public service: FreightAccountService,
|
||||
private nzModalService: NzModalService,
|
||||
private router: Router,
|
||||
private currencyPipe: CurrencyPipe
|
||||
) {}
|
||||
constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
@ -292,7 +286,7 @@ export class VoucherManagementComponent implements OnInit {
|
||||
{ title: '凭证号', index: 'id', type: 'link', width: 150 },
|
||||
{ title: '帐套', index: 'vcltdid', width: 150 },
|
||||
{ title: '凭证时间', index: 'vctime', type: 'date', width: 150 },
|
||||
{ title: '凭证类型', index: 'vctype', enum: { WLW: 'WLW', CH: 'CH', YHY: 'YHY', KP: 'KP' }, width: 150 },
|
||||
{ title: '凭证类型', index: 'vctypeLabel', width: 150 },
|
||||
{ title: '序号', index: 'invmoney', width: 150, format: _ => '1' },
|
||||
{ title: '摘要', index: 'remarks', width: 300 },
|
||||
{ title: '币种', index: 'currency', width: 100 },
|
||||
@ -300,19 +294,21 @@ export class VoucherManagementComponent implements OnInit {
|
||||
title: '借方金额',
|
||||
index: 'drmoney',
|
||||
width: 120,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
format: item => `${this.currencyPipe.transform(item.armoney || 0)}`
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.drmoney }) }
|
||||
},
|
||||
{
|
||||
title: '贷方金额',
|
||||
index: 'crmoney',
|
||||
width: 120,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
format: item => `${this.currencyPipe.transform(item.armoney || 0)}`
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.crmoney }) }
|
||||
},
|
||||
{ title: 'NC凭证', index: 'importncnotes', width: 150 },
|
||||
{ title: '汇总凭证号', index: 'vc2id', width: 150 },
|
||||
{ title: '凭证状态', index: 'sts', enum: { 0: '新建', 1: '待审核', 2: '已通过' }, width: 120 },
|
||||
{ title: '凭证状态', index: 'stsLabel', width: 120 },
|
||||
{ title: '创建时间', index: 'createTime', width: 140 },
|
||||
{ title: '创建人', index: 'createUserId', width: 150 },
|
||||
{
|
||||
|
||||
@ -12,37 +12,41 @@
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" style="float: right;">打印</button>
|
||||
</se-title>
|
||||
<se label="帐套" required>
|
||||
天津怡亚通物流科技有限公司
|
||||
{{info?.vcltdcode}}
|
||||
</se>
|
||||
<se label="凭证类型" required>
|
||||
WL
|
||||
{{info?.vctype}}
|
||||
</se>
|
||||
<se label="凭证日期" required>
|
||||
2021-12-12
|
||||
{{info?.vctime}}
|
||||
</se>
|
||||
</div>
|
||||
|
||||
<st #st [data]="data" [columns]="columns" [footer]="bodyTpl" bordered [scroll]="{ x:'1200px',y: '420px' }"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [page]="{ show: false }"
|
||||
[loading]="service.http.loading">
|
||||
<ng-template #bodyTpl let-s>
|
||||
<st #st [data]="info?.faShowVOList" [columns]="columns" [footer]="footerTpl" bordered
|
||||
[scroll]="{ x:'1200px',y: '420px' }" [page]="{ show: false }" [loading]="service.http.loading">
|
||||
<ng-template #footerTpl let-s>
|
||||
<ng-container *ngIf="st.count > 0">
|
||||
<div style="display: flex;justify-content: flex-end;">
|
||||
<div style="flex: 1;" class="text-left">合计:</div>
|
||||
<div style="width: 150px;" class="text-right">{{111 | currency}}</div>
|
||||
<div style="width: 150px;" class="text-right">{{111 | currency}}</div>
|
||||
<div style="flex: 1;" class="text-right font-weight-bold text-md">合计:</div>
|
||||
<div style="width: 150px;" class="text-right">{{info?.drmoney | currency}}</div>
|
||||
<div style="width: 150px;" class="text-right">{{info?.crmoney | currency}}</div>
|
||||
</div>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
|
||||
<ng-template st-row="auxVOList" let-item let-index="index" let-column="column">
|
||||
<ng-container *ngFor="let auxVO of item.auxVOList">
|
||||
{{ auxVO.auxLabel }}: {{ auxVO.auxValue }} <br>
|
||||
</ng-container>
|
||||
</ng-template>
|
||||
</st>
|
||||
|
||||
<sv-container labelWidth="150" gutter="32" col="2" class="mt-md">
|
||||
<sv label="摘要">
|
||||
收取服务费XXXX
|
||||
{{info?.remarks}}
|
||||
</sv>
|
||||
<sv label="凭证流水号">
|
||||
VC202112120001
|
||||
{{info?.createUserId}}
|
||||
</sv>
|
||||
</sv-container>
|
||||
|
||||
|
||||
@ -1,33 +1,54 @@
|
||||
import { CurrencyPipe } from '@angular/common';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { STData, STColumn, STRequestOptions } from '@delon/abc/st';
|
||||
import { FreightAccountService } from '../../../services/freight-account.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-summary-detail',
|
||||
templateUrl: './summary-detail.component.html',
|
||||
providers: [CurrencyPipe]
|
||||
templateUrl: './summary-detail.component.html'
|
||||
})
|
||||
export class SummaryDetailComponent implements OnInit {
|
||||
data: STData[] = Array(100)
|
||||
.fill({})
|
||||
.map((_, idx) => ({
|
||||
id: idx + 1,
|
||||
price: ~~(Math.random() * 100),
|
||||
age: ~~(Math.random() * 100) > 50 ? '女' : '男'
|
||||
}));
|
||||
columns: STColumn[] = [
|
||||
{ title: '摘要', type: 'no' },
|
||||
{ title: '会计科目', index: 'id' },
|
||||
{ title: '辅助核算', index: 'age' },
|
||||
{ title: '币种', index: 'price', className: 'text-center' },
|
||||
{ title: '借方金额', index: 'price', width: 150, type: 'currency', format: item => `${this.currencyPipe.transform(item.price)}` },
|
||||
{ title: '贷方金额', index: 'price', width: 150, type: 'currency', format: item => `${this.currencyPipe.transform(item.price)}` }
|
||||
{ title: '摘要', index: 'remarks' },
|
||||
{ title: '会计科目', index: 'subname' },
|
||||
{ title: '辅助核算', render: 'auxVOList' },
|
||||
{ title: '币种', index: 'currency', className: 'text-center' },
|
||||
{
|
||||
title: '借方金额',
|
||||
index: 'drlocalmoney',
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.drlocalmoney }) }
|
||||
},
|
||||
{
|
||||
title: '贷方金额',
|
||||
index: 'crlocalmoney',
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.crlocalmoney }) }
|
||||
}
|
||||
];
|
||||
id!: string;
|
||||
|
||||
constructor(public service: FreightAccountService, private currencyPipe: CurrencyPipe) {}
|
||||
info: any = { faShowVOList: [] };
|
||||
constructor(public service: FreightAccountService, private route: ActivatedRoute) {
|
||||
this.id = route.snapshot.params.id;
|
||||
}
|
||||
|
||||
ngOnInit(): void {}
|
||||
ngOnInit(): void {
|
||||
this.loadDetail(this.id);
|
||||
}
|
||||
|
||||
loadDetail(id: string) {
|
||||
this.service.request(this.service.$api_get_fico_vch__detail, { id }).subscribe(res => {
|
||||
if (res) {
|
||||
this.info = res;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
return requestOptions;
|
||||
|
||||
@ -23,7 +23,7 @@
|
||||
</nz-card>
|
||||
|
||||
<nz-card nzBordered>
|
||||
<st #st [data]="service.$mock_url" [columns]="columns"
|
||||
<st #st [data]="service.$api_get_fico_vch_page" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
|
||||
@ -10,8 +10,7 @@ import { FreightAccountService } from '../../services/freight-account.service';
|
||||
@Component({
|
||||
selector: 'app-voucher-summary',
|
||||
templateUrl: './voucher-summary.component.html',
|
||||
styleUrls: ['../../../commom/less/box.less'],
|
||||
providers: [CurrencyPipe]
|
||||
styleUrls: ['../../../commom/less/box.less']
|
||||
})
|
||||
export class VoucherSummaryComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
@ -24,16 +23,12 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
_$expand = false;
|
||||
|
||||
selectedRows: any[] = [];
|
||||
constructor(
|
||||
public service: FreightAccountService,
|
||||
private nzModalService: NzModalService,
|
||||
private router: Router,
|
||||
private currencyPipe: CurrencyPipe
|
||||
) {}
|
||||
constructor(public service: FreightAccountService, private nzModalService: NzModalService, private router: Router) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
Object.assign(requestOptions.body, { isvc2: 1 });
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf.value,
|
||||
@ -41,9 +36,9 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
start: this.sf.value.createtime?.[0] || null,
|
||||
end: this.sf.value.createtime?.[1] || null
|
||||
},
|
||||
invdate: {
|
||||
start: this.sf.value.invdate?.[0] || null,
|
||||
end: this.sf.value.invdate?.[1] || null
|
||||
vctime: {
|
||||
start: this.sf.value.vctime?.[0] || null,
|
||||
end: this.sf.value.vctime?.[1] || null
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -96,7 +91,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
inpinvcode: {
|
||||
vc2code: {
|
||||
type: 'string',
|
||||
title: '汇总凭证号',
|
||||
ui: {
|
||||
@ -104,7 +99,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
placeholder: '请输入'
|
||||
}
|
||||
},
|
||||
ltdid: {
|
||||
cno: {
|
||||
type: 'string',
|
||||
title: '客户',
|
||||
ui: {
|
||||
@ -115,7 +110,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
createtime: {
|
||||
vctime: {
|
||||
title: '凭证时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
@ -123,7 +118,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
inpinvc2ode: {
|
||||
sourceCode: {
|
||||
type: 'string',
|
||||
title: '原始单号',
|
||||
ui: {
|
||||
@ -134,7 +129,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
invtype: {
|
||||
sourceType: {
|
||||
type: 'string',
|
||||
title: '原始单类型',
|
||||
ui: {
|
||||
@ -145,7 +140,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
createtim2e: {
|
||||
createTime: {
|
||||
title: '创建时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
@ -156,7 +151,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
inpinvcosde: {
|
||||
remarks: {
|
||||
type: 'string',
|
||||
title: '凭证摘要',
|
||||
ui: {
|
||||
@ -166,17 +161,18 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
sts: {
|
||||
vctype: {
|
||||
type: 'string',
|
||||
title: '凭证类型',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'refund:apply:status' },
|
||||
params: { dictKey: 'credential:type' },
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
s2ts: {
|
||||
type: 'string',
|
||||
@ -190,7 +186,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
remarks: {
|
||||
drmoney: {
|
||||
type: 'string',
|
||||
title: '借方金额',
|
||||
ui: {
|
||||
@ -200,7 +196,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
billCode: {
|
||||
crmoney: {
|
||||
type: 'string',
|
||||
title: '贷方金额',
|
||||
ui: {
|
||||
@ -210,7 +206,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
s2t2s: {
|
||||
vcltdid: {
|
||||
type: 'string',
|
||||
title: '帐套',
|
||||
ui: {
|
||||
@ -222,12 +218,12 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
s22t2s: {
|
||||
sts: {
|
||||
type: 'string',
|
||||
title: '凭证状态',
|
||||
ui: {
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'refund:apply:status' },
|
||||
params: { dictKey: 'credential:status' },
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
@ -244,7 +240,7 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
feecsode: {
|
||||
vccode: {
|
||||
type: 'string',
|
||||
title: '凭证号',
|
||||
ui: {
|
||||
@ -284,33 +280,34 @@ export class VoucherSummaryComponent implements OnInit {
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox', width: 60, className: 'text-center', fixed: 'left' },
|
||||
{ title: '汇总凭证号', index: 'inpinvcode', type: 'link', width: 140 },
|
||||
{ title: '帐套', index: 'ltdid', width: 120 },
|
||||
{ title: '凭证时间', index: 'invdate', type: 'date', width: 150 },
|
||||
{ title: '汇总凭证号', index: 'vc2code', type: 'link', width: 140 },
|
||||
{ title: '帐套', index: 'vcltdcode', width: 120 },
|
||||
{ title: '凭证时间', index: 'vctime', type: 'date', width: 150 },
|
||||
{ title: '统计时间', index: 'invdate', type: 'date', width: 150 },
|
||||
{ title: '凭证类型', index: 'invoiceno', width: 120 },
|
||||
{ title: '序号', index: 'invmoney', width: 100 },
|
||||
{ title: '摘要', index: 'invtax', width: 120 },
|
||||
{ title: '币种', index: 'invtype', width: 100 },
|
||||
{ title: '凭证类型', index: 'vctypeLabel', width: 120 },
|
||||
{ title: '序号', index: 'invmoney', width: 100, format: _ => '1' },
|
||||
{ title: '摘要', index: 'remarks', width: 120 },
|
||||
{ title: '币种', index: 'currency', width: 100 },
|
||||
{
|
||||
title: '借方金额',
|
||||
index: 'hrto',
|
||||
index: 'drmoney',
|
||||
width: 120,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
format: item => `${this.currencyPipe.transform(item.armoney || 0)}`
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.drmoney }) }
|
||||
},
|
||||
{
|
||||
title: '贷方金额',
|
||||
index: 'createtime',
|
||||
type: 'date',
|
||||
index: 'crmoney',
|
||||
width: 120,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
format: item => `${this.currencyPipe.transform(item.armoney || 0)}`
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.crmoney }) }
|
||||
},
|
||||
{ title: 'NC凭证', index: 'createbyname', width: 120 },
|
||||
{ title: '凭证状态', index: 'sts', width: 120 },
|
||||
{ title: '创建时间', index: 'sts', width: 150 },
|
||||
{ title: '创建人', index: 'sts', width: 120 },
|
||||
{ title: 'NC凭证', index: 'importncnotes', width: 120 },
|
||||
{ title: '凭证状态', index: 'stsLabel', width: 120 },
|
||||
{ title: '创建时间', index: 'createTime', width: 150 },
|
||||
{ title: '创建人', index: 'createUserId', width: 120 },
|
||||
{
|
||||
title: '操作',
|
||||
width: '130px',
|
||||
|
||||
@ -28,6 +28,7 @@ import { ReceivableOrderDetailComponent } from './components/receivable-order/re
|
||||
import { PayableOrderDetailComponent } from './components/payable-order/payable-order-detail/payable-order-detail.component';
|
||||
import { VoucherDetailComponent } from './components/voucher-management/voucher-detail/voucher-detail.component';
|
||||
import { SummaryDetailComponent } from './components/voucher-summary/summary-detail/summary-detail.component';
|
||||
import { PaymentOrderDetailComponent } from './components/payment-order/payment-order-detail/payment-order-detail.component';
|
||||
|
||||
const ROUTESCOMPONENTS = [
|
||||
FreightAccountComponent,
|
||||
@ -57,7 +58,7 @@ const ROUTESCOMPONENTS = [
|
||||
const NOTROUTECOMPONENTS = [DriverAccountDetailComponent, FreightAccountDetailComponent, SettingFinancialComponent, ClearingModalComponent];
|
||||
|
||||
@NgModule({
|
||||
declarations: [...ROUTESCOMPONENTS, ...NOTROUTECOMPONENTS],
|
||||
declarations: [...ROUTESCOMPONENTS, ...NOTROUTECOMPONENTS, PaymentOrderDetailComponent],
|
||||
imports: [CommonModule, FinancialManagementRoutingModule, SharedModule]
|
||||
})
|
||||
export class FinancialManagementModule {}
|
||||
|
||||
@ -76,6 +76,10 @@ export class FreightAccountService extends ShipperBaseService {
|
||||
// 获取总账凭证表详情信息
|
||||
$api_get_fico_vch__detail = '/api/fcc/ficoVcH/getDetail';
|
||||
|
||||
// 查询付款单抬头
|
||||
$api_get_payment_page = '/api/fcc/ficoPayH/list/page';
|
||||
// 查询付款单明细
|
||||
$api_get_payment_detail = '/api/fcc/ficoPayL/list/page';
|
||||
|
||||
constructor(public injector: Injector,public eaCacheSrv: EACacheService) {
|
||||
super(injector, eaCacheSrv);
|
||||
|
||||
@ -71,10 +71,11 @@
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="24" se-container [labelWidth]="100">
|
||||
<se [col]="1" label="开票日期" required>
|
||||
<input nz-input placeholder="请输入" />
|
||||
<nz-date-picker [(ngModel)]="openInfo.invoicedate" nzPlaceHolder="请选择" style=" width: 100%;">
|
||||
</nz-date-picker>
|
||||
</se>
|
||||
<se [col]="1" label="开票日期" required>
|
||||
<input nz-input placeholder="请输入" />
|
||||
<se [col]="1" label="发票号码" required>
|
||||
<input nz-input [(ngModel)]="openInfo.invoiceno" placeholder="请输入" />
|
||||
</se>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -3,6 +3,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema, SFSelectWidgetSchema } from '@delon/form';
|
||||
import { dateTimePickerUtil } from '@delon/util';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { TicketService } from '../../services/ticket.service';
|
||||
import { RequestedInvoiceModalComponent } from '../invoice-requested/requested-invoice-modal/requested-invoice-modal.component';
|
||||
@ -28,6 +29,8 @@ export class CancellationInvoiceComponent implements OnInit {
|
||||
|
||||
selectedRows: any[] = [];
|
||||
totalCallNo = 0;
|
||||
|
||||
openInfo: any = { invoicedate: null, invoiceno: null };
|
||||
constructor(
|
||||
public service: TicketService,
|
||||
private nzModalService: NzModalService,
|
||||
@ -58,26 +61,47 @@ export class CancellationInvoiceComponent implements OnInit {
|
||||
};
|
||||
}
|
||||
selectChange(e: any) {
|
||||
console.log(e);
|
||||
this.resourceStatus = e;
|
||||
this.initST();
|
||||
setTimeout(() => {
|
||||
this.st.load();
|
||||
}, 500);
|
||||
}
|
||||
approval(): void {}
|
||||
|
||||
add(): void {}
|
||||
|
||||
/**
|
||||
* 手工开票
|
||||
* @param item
|
||||
*/
|
||||
requestedAction(item: any) {
|
||||
this.openInfo = { invoicedate: null, invoiceno: null };
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '发票确认',
|
||||
nzContent: this.requestedModal,
|
||||
nzOnOk: () => {}
|
||||
nzOnOk: () => {
|
||||
if (!this.openInfo?.invoicedate || !this.openInfo?.invoiceno) {
|
||||
this.service.msgSrv.warning('请填开票信息');
|
||||
return false;
|
||||
}
|
||||
const params = {
|
||||
invoiceno: this.openInfo.invoiceno,
|
||||
invoicedate: dateTimePickerUtil.format(this.openInfo.invoicedate)
|
||||
};
|
||||
this.service
|
||||
.request(this.service.$api_apply_fico_invoic, {
|
||||
id: item.id,
|
||||
vatinvcode: item.vatinvcode,
|
||||
...params
|
||||
})
|
||||
.subscribe(res => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('开票成功');
|
||||
this.st.load(1);
|
||||
modal.destroy;
|
||||
}
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -262,9 +286,23 @@ export class CancellationInvoiceComponent implements OnInit {
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.vatmoney)}`
|
||||
},
|
||||
{ title: '金额', index: 'vatnotax', width: 100, type: 'currency', format: item => `${this.currencyPipe.transform(item.vatnotax)}` },
|
||||
{
|
||||
title: '金额',
|
||||
index: 'vatnotax',
|
||||
width: 100,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
|
||||
},
|
||||
{ title: '税率', index: 'billvatrate', width: 90, className: 'text-right' },
|
||||
{ title: '税额', index: 'vattax', width: 90, type: 'currency', format: item => `${this.currencyPipe.transform(item.vattax)}` },
|
||||
{
|
||||
title: '税额',
|
||||
index: 'vattax',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) }
|
||||
},
|
||||
{ title: '服务名称', index: 'vatname', width: 100 },
|
||||
{ title: '销货清单', index: 'isdetail', width: 90 },
|
||||
{ title: '票面备注', render: 'vatremarks', width: 250 },
|
||||
|
||||
@ -0,0 +1,16 @@
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col nzSpan="20">
|
||||
<sf #sf [schema]="searchSchema" [ui]="{ '*': { spanLabelFixed: 0,grid: { span: 8 } }}" [compact]="true"
|
||||
[button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="4" class="text-right mb-md">
|
||||
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1)">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<st #st [data]="url" [columns]="columns" bordered size="small"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ y: '400px' }"></st>
|
||||
@ -0,0 +1,112 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
|
||||
import { SFComponent, SFSchema, SFDateWidgetSchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { TicketService } from '../../../services/ticket.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-express-detail-modal',
|
||||
templateUrl: './express-detail-modal.component.html',
|
||||
styleUrls: ['./express-detail-modal.component.less']
|
||||
})
|
||||
export class ExpressDetailModalComponent implements OnInit {
|
||||
data = [];
|
||||
selectedData = [];
|
||||
url = `/api/fcc/ficoExpressH/getFicoVatinvHByExpress`;
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
sf!: SFComponent;
|
||||
columns: STColumn[] = [
|
||||
{ title: '发票号码', index: 'invoiceno', width: 160, className: 'text-left' },
|
||||
{ title: '发票代码', index: 'invoiceno2', width: 160 , className: 'text-left'},
|
||||
{ title: '申请编号', index: 'vatinvcode', width: 160, className: 'text-left' },
|
||||
{ title: '网络货运人', index: 'ltdName', width: 120 , className: 'text-left'},
|
||||
{ title: '购买人', index: 'tradeFlowNo', width: 120, className: 'text-left' },
|
||||
{
|
||||
title: '价税合计',
|
||||
index: 'vatmoney',
|
||||
width: 120,
|
||||
type: 'widget',
|
||||
className: 'text-right font-weight-bold',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
|
||||
},
|
||||
{
|
||||
title: '金额',
|
||||
index: 'vatnotax',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
|
||||
},
|
||||
{
|
||||
title: '税率',
|
||||
index: 'fee',
|
||||
width: 90,
|
||||
className: 'text-right'
|
||||
},
|
||||
{
|
||||
title: '税额',
|
||||
index: 'vattax',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
|
||||
},
|
||||
{ title: '开票日期', index: 'invoicedate', type: 'date', width: 150, className: 'text-center' }
|
||||
];
|
||||
searchSchema: SFSchema = {
|
||||
properties: {
|
||||
invoiceno: {
|
||||
title: '',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '发票号码'
|
||||
}
|
||||
},
|
||||
expressno: {
|
||||
title: '',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '申请编号'
|
||||
}
|
||||
},
|
||||
createTime: {
|
||||
title: '',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
expressCode!: any;
|
||||
|
||||
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
Object.assign(requestOptions.body, { expressno: this.expressCode });
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf.value,
|
||||
createTime: {
|
||||
start: this.sf.value.createTime?.[0] || null,
|
||||
end: this.sf.value.createTime?.[1] || null
|
||||
}
|
||||
});
|
||||
}
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
}
|
||||
}
|
||||
@ -3,6 +3,7 @@ import { STComponent, STColumn, STChange, STRequestOptions } from '@delon/abc/st
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema } from '@delon/form';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { TicketService } from '../../services/ticket.service';
|
||||
import { ExpressDetailModalComponent } from './express-detail-modal/express-detail-modal.component';
|
||||
|
||||
@Component({
|
||||
selector: 'app-express-info',
|
||||
@ -42,7 +43,14 @@ export class ExpressInfoComponent implements OnInit {
|
||||
{ title: '快递单号', index: 'expressCode', width: 150 },
|
||||
{ title: '快递公司', index: 'expresscompany', width: 120 },
|
||||
{ title: '快递费用', index: 'description', width: 120 },
|
||||
{ title: '发票数量', index: 'quantity', width: 120 },
|
||||
{
|
||||
title: '发票数量',
|
||||
index: 'quantity',
|
||||
width: 120,
|
||||
type: 'link',
|
||||
click: (record: any) => this.showDetail(record.expressCode),
|
||||
className: 'text-right'
|
||||
},
|
||||
{ title: '寄件人姓名', index: 'sname', width: 150 },
|
||||
{ title: '寄件人电话', index: 'stel', width: 150 },
|
||||
{
|
||||
@ -99,6 +107,25 @@ export class ExpressInfoComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
|
||||
showDetail(expressCode: any) {
|
||||
const modal = this.nzModalService.create({
|
||||
nzTitle: '发票明细',
|
||||
nzContent: ExpressDetailModalComponent,
|
||||
nzNoAnimation: true,
|
||||
nzWidth: 1100,
|
||||
nzComponentParams: { expressCode },
|
||||
nzOnOk: com => {
|
||||
console.log(com.selectedData);
|
||||
},
|
||||
nzOkText: '导出'
|
||||
});
|
||||
modal.afterClose.subscribe(res => {
|
||||
if (res) {
|
||||
this.st.load();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
printOrder() {
|
||||
if (this.selectedRows?.length <= 0) {
|
||||
this.service.msgSrv.warning('请选择快递单');
|
||||
|
||||
@ -369,29 +369,33 @@ export class InvoiceRequestedComponent implements OnInit {
|
||||
title: '申请金额',
|
||||
index: 'applyAmount',
|
||||
width: 100,
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.applyAmount)}`
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.applyAmount }) }
|
||||
},
|
||||
{
|
||||
title: '运输费',
|
||||
index: 'fjfmoney2',
|
||||
width: 90,
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.fjfmoney2)}`
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.fjfmoney2 }) }
|
||||
},
|
||||
{
|
||||
title: '附加费',
|
||||
index: 'fjfmoney',
|
||||
width: 90,
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.fjfmoney)}`
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.fjfmoney }) }
|
||||
},
|
||||
{
|
||||
title: '已开票金额',
|
||||
index: 'invoicedMoney',
|
||||
width: 120,
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.invoicedMoney)}`
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.invoicedMoney }) }
|
||||
},
|
||||
{ title: '开户行', index: 'bankName', width: 160 },
|
||||
{ title: '银行账户', index: 'bankAccount', width: 140 },
|
||||
|
||||
@ -8,11 +8,11 @@
|
||||
-->
|
||||
<app-requested-detail [id]="id"></app-requested-detail>
|
||||
|
||||
<st #st [data]="service.$api_get_invoice_requested_order_detail" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }}"
|
||||
<st #st [data]="service.$api_get_invoice_requested_order_detail" [columns]="columns" bordered size="small"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, process: beforeReq}"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }" (change)="stChange($event)">
|
||||
[loading]="service.http.loading" [scroll]="{ x:'1200px',y: '200px' }" (change)="stChange($event)" class="mt-md">
|
||||
<ng-template st-row="billHCode" let-item let-index="index" let-column="column">
|
||||
<a class="text-primary"> {{ item.billHCode }}</a>
|
||||
</ng-template>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
* @FilePath: \tms-obc-web\src\app\routes\ticket-management\components\invoice-requested\requested-invoice-modal\requested-invoice-modal.component.ts
|
||||
*/
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { STChange, STColumn, STComponent } from '@delon/abc/st';
|
||||
import { STChange, STColumn, STComponent, STRequestOptions } from '@delon/abc/st';
|
||||
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { TicketService } from '../../../services/ticket.service';
|
||||
|
||||
@ -26,6 +26,11 @@ export class RequestedInvoiceModalComponent implements OnInit {
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
Object.assign(requestOptions.body, { vatappHId: this.id });
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
/**
|
||||
* 移除订单
|
||||
* @returns
|
||||
@ -61,15 +66,36 @@ export class RequestedInvoiceModalComponent implements OnInit {
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '订单号', index: 'billHCode', width: 150 },
|
||||
{ title: '订单完成日期', index: 'billTime', type: 'date', width: 150 },
|
||||
{ title: '所属项目', index: 'projectIdName', width: 120 },
|
||||
{ title: '所属项目', index: 'projectIdName', width: 160 },
|
||||
{ title: '订单类型', index: 'billTypeName', width: 90 },
|
||||
{ title: '装货地', index: 'loadingfrom', width: 150 },
|
||||
{ title: '卸货地', index: 'loadingto', width: 150 },
|
||||
{ title: '货物信息', index: 'goodsinfo', width: 150 },
|
||||
{ title: '承运司机', index: 'driverinfo', width: 150 },
|
||||
{ title: '总费用', index: 'vatmoney', width: 90 },
|
||||
{ title: '运输费', index: 'fjfmoney2', width: 90 },
|
||||
{ title: '附加费', index: 'fjfmoney', width: 90 },
|
||||
{ title: '装货地', index: 'loadingfrom', width: 250 },
|
||||
{ title: '卸货地', index: 'loadingto', width: 250 },
|
||||
{ title: '货物信息', index: 'goodsinfo', width: 170 },
|
||||
{ title: '承运司机', index: 'driverinfo', width: 170 },
|
||||
{
|
||||
title: '总费用',
|
||||
index: 'vatmoney',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) }
|
||||
},
|
||||
{
|
||||
title: '运输费',
|
||||
index: 'fjfmoney2',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.fjfmoney2 }) }
|
||||
},
|
||||
{
|
||||
title: '附加费',
|
||||
index: 'fjfmoney',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.fjfmoney }) }
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
width: 80,
|
||||
|
||||
@ -10,15 +10,12 @@ import { TicketService } from '../../services/ticket.service';
|
||||
selector: 'app-invoiced-list',
|
||||
templateUrl: './invoiced-list.component.html',
|
||||
styleUrls: ['./invoiced-list.component.less'],
|
||||
providers: [CurrencyPipe]
|
||||
})
|
||||
export class InvoicedListComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false })
|
||||
sf!: SFComponent;
|
||||
@ViewChild('logosticsModal', { static: false })
|
||||
logosticsModal!: any;
|
||||
@ViewChild('logosticsLogsModal', { static: false })
|
||||
logosticsLogsModal!: any;
|
||||
columns: STColumn[] = this.initST();
|
||||
@ -32,7 +29,6 @@ export class InvoicedListComponent implements OnInit {
|
||||
public service: TicketService,
|
||||
private nzModalService: NzModalService,
|
||||
private router: Router,
|
||||
private currencyPipe: CurrencyPipe
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {}
|
||||
@ -59,10 +55,6 @@ export class InvoicedListComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
|
||||
approval(): void {}
|
||||
|
||||
add(): void {}
|
||||
|
||||
deletedInvoice() {
|
||||
if (this.selectedRows?.length <= 0) {
|
||||
this.service.msgSrv.warning('请选择发票');
|
||||
@ -189,12 +181,27 @@ export class InvoicedListComponent implements OnInit {
|
||||
title: '价税合计',
|
||||
index: 'vatmoney',
|
||||
width: 100,
|
||||
type: 'currency',
|
||||
format: item => `${this.currencyPipe.transform(item.vatmoney)}`
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) }
|
||||
},
|
||||
{
|
||||
title: '金额',
|
||||
index: 'vatnotax',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
|
||||
},
|
||||
{ title: '金额', index: 'vatnotax', width: 90, type: 'currency', format: item => `${this.currencyPipe.transform(item.vatnotax)}` },
|
||||
{ title: '税率', index: 'vatrate', width: 90 },
|
||||
{ title: '税额', index: 'disvattax', width: 90, type: 'currency', format: item => `${this.currencyPipe.transform(item.disvattax) || ''}` },
|
||||
{
|
||||
title: '税额',
|
||||
index: 'disvattax',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.disvattax }) }
|
||||
},
|
||||
{ title: '开票日期', index: 'invoicedate', type: 'date', width: 150 },
|
||||
{
|
||||
title: '快递信息',
|
||||
|
||||
@ -32,6 +32,8 @@ export class TicketService extends ShipperBaseService {
|
||||
$api_ficoVatinv_Detail = '/api/fcc/ficoVatinvL/getDetailByVatinvHId';
|
||||
// 运营端订单明细开票处理
|
||||
$api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo';
|
||||
// 运营端手工开票/确认/E税云开票成功后的回调
|
||||
$api_apply_fico_invoic = '/api/fcc/ficoVatinvH/ficoVatinvInvoicing';
|
||||
|
||||
// 获取汇总下单路径
|
||||
$api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress';
|
||||
|
||||
@ -24,6 +24,7 @@ import { EditCollectionInvoiceComponent } from './components/input-invoice/edit-
|
||||
import { AddCostDetailComponent } from './components/input-invoice/add-cost-detail/add-cost-detail.component';
|
||||
import { PrintOrderModalComponent } from './components/invoice-requested/print-order-modal/print-order-modal.component';
|
||||
import { ExpressInfoComponent } from './components/express-info/express-info.component';
|
||||
import { ExpressDetailModalComponent } from './components/express-info/express-detail-modal/express-detail-modal.component';
|
||||
|
||||
const COMPONENTS: any = [
|
||||
ETCInvoicedListComponent,
|
||||
@ -49,7 +50,8 @@ const NOTROUTECOMPONENTS: any = [
|
||||
AddCartComponent,
|
||||
AddCollectionInvoiceModalComponent,
|
||||
AddCostDetailComponent,
|
||||
PrintOrderModalComponent
|
||||
PrintOrderModalComponent,
|
||||
ExpressDetailModalComponent
|
||||
];
|
||||
@NgModule({
|
||||
declarations: [...COMPONENTS, ...NOTROUTECOMPONENTS],
|
||||
|
||||
@ -218,6 +218,6 @@ export class VehicleComponentsAuditComponent implements OnInit {
|
||||
}
|
||||
// 导出
|
||||
exportFire() {
|
||||
this.service.downloadFile(this.service.$api_carLicense_export, this.reqParams );
|
||||
this.service.downloadFile(this.service.$api_carLicenseAudit_export, this.reqParams );
|
||||
}
|
||||
}
|
||||
|
||||
16
src/app/shared/widget/currency-cny/curreny-cny.widget.ts
Normal file
16
src/app/shared/widget/currency-cny/curreny-cny.widget.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||
|
||||
import { NzMessageService } from 'ng-zorro-antd/message';
|
||||
|
||||
@Component({
|
||||
selector: 'st-widget-currency-chy',
|
||||
template: ` {{ value | currency }} `,
|
||||
changeDetection: ChangeDetectionStrategy.OnPush
|
||||
})
|
||||
export class STCurrencyCHYWidget {
|
||||
static readonly KEY = 'currency-chy';
|
||||
|
||||
value!: number;
|
||||
|
||||
constructor() {}
|
||||
}
|
||||
@ -23,6 +23,7 @@ import { NgxTinymceModule } from 'ngx-tinymce';
|
||||
// import { STWidgetRegistry } from '@delon/abc/st';
|
||||
import { SharedModule } from '../shared.module';
|
||||
import { AddressWidget } from './address/address.widget';
|
||||
import { STCurrencyCHYWidget } from './currency-cny/curreny-cny.widget';
|
||||
import { DictSelectWidget } from './dict-select/dict-select.widget';
|
||||
import { EditorWidget } from './editor/editor.widget';
|
||||
import { SLFromToSearchWidget } from './from-to-search/from-to-search.widget';
|
||||
@ -44,6 +45,7 @@ export const STWIDGET_COMPONENTS = [
|
||||
PropertyValuesWidget,
|
||||
SLFromToSearchWidget,
|
||||
DictSelectWidget,
|
||||
STCurrencyCHYWidget
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
@ -68,7 +70,7 @@ export const STWIDGET_COMPONENTS = [
|
||||
entryComponents: STWIDGET_COMPONENTS
|
||||
})
|
||||
export class STWidgetModule {
|
||||
constructor(widgetRegistry: WidgetRegistry) {
|
||||
constructor(widgetRegistry: WidgetRegistry, sTWidgetRegistry: STWidgetRegistry) {
|
||||
widgetRegistry.register(EditorWidget.KEY, EditorWidget);
|
||||
widgetRegistry.register(ImgWidget.KEY, ImgWidget);
|
||||
widgetRegistry.register(AddressWidget.KEY, AddressWidget);
|
||||
@ -79,5 +81,8 @@ export class STWidgetModule {
|
||||
widgetRegistry.register(PropertyValuesWidget.KEY, PropertyValuesWidget);
|
||||
widgetRegistry.register(SLFromToSearchWidget.KEY, SLFromToSearchWidget);
|
||||
widgetRegistry.register(DictSelectWidget.KEY, DictSelectWidget);
|
||||
|
||||
|
||||
sTWidgetRegistry.register(STCurrencyCHYWidget.KEY, STCurrencyCHYWidget);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user