edit
This commit is contained in:
@ -211,7 +211,7 @@ export class TransactionFlowComponent implements OnInit {
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', width: 120 },
|
||||
{ title: '关联单号', index: 'businessNumber', width: 150 },
|
||||
{ title: '账户类型', index: 'accountTypeLabel', width: 100 },
|
||||
{ title: '账户名称', index: 'enterpriseName', width: 100 },
|
||||
{ title: '账户名称', index: 'roleName', width: 100 },
|
||||
{ title: '所属项目', index: 'projectName', width: 100 },
|
||||
{ title: '收支类型', index: 'incomeTypeLabel', width: 100 },
|
||||
{ title: '交易金额', index: 'amount', width: 100 },
|
||||
|
||||
@ -10,51 +10,51 @@
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1">
|
||||
<se label="销售方">
|
||||
天津怡亚通物流科技有限公司
|
||||
{{headerInfo?.ltdId}}
|
||||
</se>
|
||||
<se label="申请编号">
|
||||
VP2021012010
|
||||
{{headerInfo?.vatappHCode}}
|
||||
</se>
|
||||
<se label="发票号码">
|
||||
051010100
|
||||
{{headerInfo?.invoiceno}}
|
||||
</se>
|
||||
<se label="发票代码">
|
||||
54364653
|
||||
{{headerInfo?.invoiceno2}}
|
||||
</se>
|
||||
<se label="开票日期">
|
||||
2021-10-11
|
||||
{{headerInfo?.invoicedate}}
|
||||
</se>
|
||||
<se label="价税合计">
|
||||
2205.00
|
||||
{{headerInfo?.disvatnotax}}
|
||||
</se>
|
||||
<se label="税额">
|
||||
182.06
|
||||
{{headerInfo?.disvattax}}
|
||||
</se>
|
||||
<se label="票面备注">
|
||||
订单号11-12
|
||||
{{headerInfo?.remarks}}
|
||||
</se>
|
||||
</div>
|
||||
<div nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" se-container [labelWidth]="100" col="1">
|
||||
<se label="购买方">
|
||||
茅台股份有限公司
|
||||
{{headerInfo?.artoname}}
|
||||
</se>
|
||||
<se label="纳税号">
|
||||
912301046656930913
|
||||
{{headerInfo?.artotaxno}}
|
||||
</se>
|
||||
<se label="地址">
|
||||
贵州省贵阳市
|
||||
{{headerInfo?.artoadd}}
|
||||
</se>
|
||||
<se label="电话">
|
||||
075588393198
|
||||
{{headerInfo?.artotel}}
|
||||
</se>
|
||||
<se label="开户行">
|
||||
中国工商银行股份有限公司哈贵阳支行
|
||||
{{headerInfo?.artobank}}
|
||||
</se>
|
||||
<se label="银行账户">
|
||||
3500044119068126788
|
||||
{{headerInfo?.artoacc}}
|
||||
</se>
|
||||
<se label="其他要求">
|
||||
开票单位要吨
|
||||
{{headerInfo?.remarks}}
|
||||
</se>
|
||||
</div>
|
||||
<div *ngIf="isCanEdit" nz-col [nzXl]="8" [nzLg]="8" [nzSm]="8" [nzXs]="8" class="text-right">
|
||||
@ -87,7 +87,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #orderST [data]="service.$mock_url" [columns]="orderColumns" size="small" bordered="true"
|
||||
<st #orderST [data]="service.$api_get_invoice_order_detail" [columns]="orderColumns" size="small" bordered="true"
|
||||
[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] }"
|
||||
@ -108,40 +108,38 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #costST [data]="service.$mock_url" [columns]="costColumns" size="small" bordered="true"
|
||||
<st #costST [data]="service.$api_get_invoice_cost_detail" [columns]="costColumns" size="small" bordered="true"
|
||||
[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: '250px' }"></st>
|
||||
</nz-tab>
|
||||
<nz-tab nzTitle="发票明细">
|
||||
<st #invoiceST [data]="service.$mock_url" [columns]="invoiceColumns" size="small" bordered="true"
|
||||
<st #invoiceST [data]="service.$api_get_invoice_details" [columns]="invoiceColumns" size="small" bordered="true"
|
||||
[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: '250px' }">
|
||||
<ng-template st-row="owner" let-item let-index="index">
|
||||
<ng-template st-row="vatname" let-item let-index="index">
|
||||
<nz-select *ngIf="isEdit" [ngModel]="item.owner"
|
||||
(ngModelChange)="invoiceST.setRow(index, { owner: $event })" style="width: 100%;">
|
||||
<nz-option nzValue="曲丽丽" nzLabel="曲丽丽"></nz-option>
|
||||
<nz-option nzValue="lucy" nzLabel="Lucy"></nz-option>
|
||||
(ngModelChange)="invoiceST.setRow(index, { vatname: $event })" style="width: 100%;">
|
||||
</nz-select>
|
||||
<ng-container *ngIf="!isEdit">{{ item.owner }}</ng-container>
|
||||
<ng-container *ngIf="!isEdit">{{ item.vatname }}</ng-container>
|
||||
</ng-template>
|
||||
<ng-template st-row="callNo" let-item let-index="index">
|
||||
<input *ngIf="isEdit" nz-input [ngModel]="item.callNo"
|
||||
(ngModelChange)="invoiceST.setRow(index, { callNo: $event })" />
|
||||
<ng-container *ngIf="!isEdit">{{ item.callNo }}</ng-container>
|
||||
<ng-template st-row="vatmodel" let-item let-index="index">
|
||||
<input *ngIf="isEdit" nz-input [ngModel]="item.vatmodel"
|
||||
(ngModelChange)="invoiceST.setRow(index, { vatmodel: $event })" />
|
||||
<ng-container *ngIf="!isEdit">{{ item.vatmodel }}</ng-container>
|
||||
</ng-template>
|
||||
<ng-template st-row="progress" let-item let-index="index">
|
||||
<input *ngIf="isEdit" nz-input [ngModel]="item.progress"
|
||||
(ngModelChange)="invoiceST.setRow(index, { progress: $event })" />
|
||||
<ng-container *ngIf="!isEdit">{{ item.progress }}</ng-container>
|
||||
<ng-template st-row="vatunit" let-item let-index="index">
|
||||
<input *ngIf="isEdit" nz-input [ngModel]="item.vatunit"
|
||||
(ngModelChange)="invoiceST.setRow(index, { vatunit: $event })" />
|
||||
<ng-container *ngIf="!isEdit">{{ item.vatunit }}</ng-container>
|
||||
</ng-template>
|
||||
<ng-template st-row="status" let-item let-index="index">
|
||||
<input *ngIf="isEdit" nz-input [ngModel]="item.status"
|
||||
(ngModelChange)="invoiceST.setRow(index, { status: $event })" />
|
||||
<ng-container *ngIf="!isEdit">{{ item.status }}</ng-container>
|
||||
<ng-template st-row="vatqty" let-item let-index="index">
|
||||
<input *ngIf="isEdit" nz-input [ngModel]="item.vatqty"
|
||||
(ngModelChange)="invoiceST.setRow(index, { vatqty: $event })" />
|
||||
<ng-container *ngIf="!isEdit">{{ item.vatqty }}</ng-container>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-tab>
|
||||
|
||||
@ -32,8 +32,12 @@ export class InvoiceDetailComponent implements OnInit {
|
||||
isCanEdit = false;
|
||||
isEdit = false;
|
||||
|
||||
headerInfo: any = {};
|
||||
|
||||
constructor(public service: TicketService, private route: ActivatedRoute) {
|
||||
this.isCanEdit = !!route.snapshot.queryParams.type;
|
||||
const id = route.snapshot.params.id;
|
||||
this.loadInvoiceHeader(id);
|
||||
}
|
||||
|
||||
ngOnInit(): void {}
|
||||
@ -48,6 +52,15 @@ export class InvoiceDetailComponent implements OnInit {
|
||||
return requestOptions;
|
||||
};
|
||||
|
||||
loadInvoiceHeader(id: string) {
|
||||
this.service.request(this.service.$api_get_invoice_header_detail, { id }).subscribe(res => {
|
||||
console.log(res);
|
||||
if (res) {
|
||||
this.headerInfo = res;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
goBack() {
|
||||
history.go(-1);
|
||||
}
|
||||
@ -78,30 +91,35 @@ export class InvoiceDetailComponent implements OnInit {
|
||||
private initOrderSF(): SFSchema {
|
||||
return {
|
||||
properties: {
|
||||
orderSn: {
|
||||
billHId: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
autocomplete: 'off'
|
||||
}
|
||||
},
|
||||
receiveName: {
|
||||
billType: {
|
||||
type: 'string',
|
||||
title: '订单类型',
|
||||
enum: [{ label: '全部', value: '' }],
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '整车', value: 1 },
|
||||
{ label: '大宗', value: 2 }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
},
|
||||
default: ''
|
||||
},
|
||||
receiveNa22me: {
|
||||
projectId: {
|
||||
type: 'string',
|
||||
title: '所属项',
|
||||
enum: [{ label: '全部', value: '' }],
|
||||
title: '所属项目',
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择'
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
asyncData: () => this.service.getEnterpriseProject()
|
||||
},
|
||||
default: ''
|
||||
}
|
||||
@ -111,32 +129,32 @@ export class InvoiceDetailComponent implements OnInit {
|
||||
|
||||
private initOrderST(): STColumn[] {
|
||||
return [
|
||||
{ title: '订单号', index: 'no' },
|
||||
{ title: '订单完成日期', index: 'callNo', type: 'date' },
|
||||
{ title: '所属项目', index: 'callNo' },
|
||||
{ title: '订单类型', index: 'callNo' },
|
||||
{ title: '装货地', index: 'callNo' },
|
||||
{ title: '卸货地', index: 'callNo' },
|
||||
{ title: '货物信息', index: 'callNo' },
|
||||
{ title: '承运司机', index: 'callNo', format: item => `特朗普 13789040523 粤GT8419` },
|
||||
{ title: '申请金额', index: 'callNo' },
|
||||
{ title: '运输费', index: 'callNo' },
|
||||
{ title: '附加费', index: 'callNo' },
|
||||
{ title: '开票金额', index: 'callNo' }
|
||||
{ title: '订单号', index: 'billHId' },
|
||||
{ title: '订单完成日期', index: 'billTime', type: 'date' },
|
||||
{ title: '所属项目', index: 'projectId' },
|
||||
{ title: '订单类型', index: 'billType' },
|
||||
{ title: '装货地', index: 'loadingfrom' },
|
||||
{ title: '卸货地', index: 'loadingto' },
|
||||
{ title: '货物信息', index: 'goodsinfo' },
|
||||
{ title: '承运司机', index: 'driverinfo' },
|
||||
{ title: '申请金额', index: 'billkpnotax' },
|
||||
{ title: '运输费', index: 'fjfmoney2' },
|
||||
{ title: '附加费', index: 'fjfmoney' },
|
||||
{ title: '开票金额', index: 'billkpmoney' }
|
||||
];
|
||||
}
|
||||
|
||||
private initCostSF(): SFSchema {
|
||||
return {
|
||||
properties: {
|
||||
orderSn: {
|
||||
billHId: {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
autocomplete: 'off'
|
||||
}
|
||||
},
|
||||
orderS2n: {
|
||||
feeHId: {
|
||||
type: 'string',
|
||||
title: '费用号',
|
||||
ui: {
|
||||
@ -149,25 +167,25 @@ export class InvoiceDetailComponent implements OnInit {
|
||||
|
||||
private initCostST(): STColumn[] {
|
||||
return [
|
||||
{ title: '费用号', index: 'no' },
|
||||
{ title: '订单号', index: 'callNo' },
|
||||
{ title: '订单日期', index: 'callNo', type: 'date' },
|
||||
{ title: '费用号', index: 'feeHId' },
|
||||
{ title: '订单号', index: 'billHId' },
|
||||
{ title: '订单日期', index: 'createTime', type: 'date' },
|
||||
{ title: '计费日期', index: 'callNo', type: 'date' },
|
||||
{ title: '税率', index: 'callNo' },
|
||||
{ title: '申请金额', index: 'callNo' },
|
||||
{ title: '开票金额', index: 'callNo' }
|
||||
{ title: '税率', index: 'vatrate' },
|
||||
{ title: '申请金额', index: 'vatmoney' },
|
||||
{ title: '开票金额', index: 'vatnotax' }
|
||||
];
|
||||
}
|
||||
|
||||
private initInvoiceST(): STColumn[] {
|
||||
return [
|
||||
{ title: '服务名称', render: 'owner' },
|
||||
{ title: '规格型号', render: 'callNo' },
|
||||
{ title: '单位', render: 'progress' },
|
||||
{ title: '数量', render: 'status' },
|
||||
{ title: '金额', index: 'callNo' },
|
||||
{ title: '服务名称', render: 'vatname' },
|
||||
{ title: '规格型号', render: 'vatmodel' },
|
||||
{ title: '单位', render: 'vatunit' },
|
||||
{ title: '数量', render: 'vatqty' },
|
||||
{ title: '金额', index: 'vatnotax' },
|
||||
{ title: '税率', index: 'callNo' },
|
||||
{ title: '税额', index: 'callNo' }
|
||||
{ title: '税额', index: 'vattax' }
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,13 +28,14 @@
|
||||
<button nz-button (click)="this.invoiceHongChong()">发票红冲</button>
|
||||
<div class="ml-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 开票金额总计 <strong class="text-red">{{
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据 开票金额总计 <strong
|
||||
class="text-red">{{
|
||||
totalCallNo }}</strong>
|
||||
<a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<st #st [data]="service.$mock_url" [columns]="columns"
|
||||
<st #st [data]="service.$api_get_invoice_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] }"
|
||||
@ -43,7 +44,9 @@
|
||||
{{item.no}}
|
||||
<a>预览发票</a>
|
||||
</ng-template>
|
||||
|
||||
<ng-template st-row="expresscompany" let-item let-index="index" let-column="column">
|
||||
{{ item.expresscompany }} <br> {{ item.expressno }}
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
|
||||
@ -27,11 +27,10 @@
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.expend-options {
|
||||
margin-top: -40px;
|
||||
max-width : 400px;
|
||||
position : absolute;
|
||||
right : 0;
|
||||
bottom : 30px;
|
||||
bottom : 25px;
|
||||
}
|
||||
|
||||
}
|
||||
@ -32,7 +32,13 @@ export class InvoicedListComponent implements OnInit {
|
||||
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, { ...this.sf.value });
|
||||
Object.assign(requestOptions.body, {
|
||||
...this.sf.value,
|
||||
createTime: {
|
||||
start: this.sf.value.createTime?.[0] || '',
|
||||
end: this.sf.value.createTime?.[1] || ''
|
||||
}
|
||||
});
|
||||
}
|
||||
return requestOptions;
|
||||
};
|
||||
@ -108,14 +114,14 @@ export class InvoicedListComponent implements OnInit {
|
||||
hidden: true
|
||||
}
|
||||
},
|
||||
orderSn: {
|
||||
invoiceno: {
|
||||
type: 'string',
|
||||
title: '发票号码',
|
||||
ui: {
|
||||
autocomplete: 'off'
|
||||
}
|
||||
},
|
||||
orderSn2: {
|
||||
vatinvcode: {
|
||||
type: 'string',
|
||||
title: '申请编号',
|
||||
ui: {
|
||||
@ -126,12 +132,13 @@ export class InvoicedListComponent implements OnInit {
|
||||
title: '开票日期',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'date',
|
||||
mode: 'range',
|
||||
format: 'yyyy-MM-dd'
|
||||
widget: 'sl-from-to-search',
|
||||
format: 'yyyy-MM-dd',
|
||||
placeholder: '请选择',
|
||||
nzShowTime: true
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
receiveName: {
|
||||
arto: {
|
||||
type: 'string',
|
||||
title: '购买人',
|
||||
enum: [{ label: '全部', value: '全部' }],
|
||||
@ -143,17 +150,19 @@ export class InvoicedListComponent implements OnInit {
|
||||
}
|
||||
}
|
||||
},
|
||||
receiveName2: {
|
||||
ltdId: {
|
||||
type: 'string',
|
||||
title: '网络货运人',
|
||||
enum: [{ label: '全部', value: '全部' }],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
allowClear: true,
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
asyncData: () => this.service.getNetworkFreightForwarder()
|
||||
},
|
||||
default: ''
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -162,25 +171,24 @@ export class InvoicedListComponent implements OnInit {
|
||||
private initST(): STColumn[] {
|
||||
return [
|
||||
{ title: '', index: 'key', type: 'checkbox' },
|
||||
{ title: '发票号码', index: 'no', width: 150 },
|
||||
{ title: '申请编号', index: 'callNo', width: 150 },
|
||||
{ title: '申请时间', index: 'updatedAt', type: 'date', width: 150 },
|
||||
{ title: '发票类型', index: 'callNo', width: 100 },
|
||||
{ title: '网络货运人', index: 'callNo', width: 120 },
|
||||
{ title: '购买人', index: 'callNo', width: 90 },
|
||||
{ title: '订单数', index: 'callNo', width: 90 },
|
||||
{ title: '发票号码', index: 'invoiceno', width: 150 },
|
||||
{ title: '申请编号', index: 'vatinvcode', width: 150 },
|
||||
{ title: '申请时间', index: 'createTime', type: 'date', width: 150 },
|
||||
{ title: '发票类型', index: 'invoicetype', width: 100 },
|
||||
{ title: '网络货运人', index: 'ltdId', width: 120 },
|
||||
{ title: '购买人', index: 'artoname', width: 90 },
|
||||
{ title: '订单数', index: 'ordlines', width: 90 },
|
||||
{ title: '价税合计', index: 'callNo', width: 100 },
|
||||
{ title: '金额', index: 'callNo', width: 90 },
|
||||
{ title: '金额', index: 'disvatnotax', width: 90 },
|
||||
{ title: '税率', index: 'callNo', width: 90 },
|
||||
{ title: '税额', index: 'callNo', width: 90 },
|
||||
{ title: '开票日期', index: 'updatedAt', type: 'date', width: 150 },
|
||||
{ title: '税额', index: 'disvattax', width: 90 },
|
||||
{ title: '开票日期', index: 'invoicedate', type: 'date', width: 150 },
|
||||
{
|
||||
title: '快递信息',
|
||||
render: 'logostics',
|
||||
width: 120,
|
||||
format: item => `顺丰快递</br>6202110012313`
|
||||
render: 'expresscompany',
|
||||
width: 120
|
||||
},
|
||||
{ title: '状态', render: 'logostics', width: 90 },
|
||||
{ title: '状态', index: 'sts', width: 90 },
|
||||
{
|
||||
title: '操作',
|
||||
fixed: 'right',
|
||||
@ -189,7 +197,7 @@ export class InvoicedListComponent implements OnInit {
|
||||
buttons: [
|
||||
{
|
||||
text: '查看明细',
|
||||
click: item => this.router.navigate(['/ticket/invoice-list/detail/1'])
|
||||
click: item => this.router.navigate(['/ticket/invoice-list/detail/' + item.id])
|
||||
},
|
||||
{
|
||||
text: '查看物流',
|
||||
|
||||
@ -24,6 +24,17 @@ export class TicketService extends ShipperBaseService {
|
||||
// 删除开票申请订单明细
|
||||
$api_remove_bill = '/api/fcc/ficoVatappBill/deletebatch';
|
||||
|
||||
// 已开发票查询
|
||||
$api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page';
|
||||
// 获取销项发票抬头
|
||||
$api_get_invoice_header_detail = '/api/fcc/ficoVatinvH/get';
|
||||
// 获取分票发票抬头开票申请订单明细
|
||||
$api_get_invoice_order_detail = '/api/fcc/ficoVatappBill/getDetailByVatinvHId';
|
||||
// 获取分票发票抬头开票申请费用明细
|
||||
$api_get_invoice_cost_detail = '/api/fcc/ficoVatappFee/getDetailByVatinvHId';
|
||||
// 获取分票发票明细
|
||||
$api_get_invoice_details = '/api/fcc/ficoVatinvL/getDetailByVatinvHId';
|
||||
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user