Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop

This commit is contained in:
wangshiming
2022-01-17 17:05:58 +08:00
7 changed files with 121 additions and 81 deletions

View File

@ -290,13 +290,14 @@ export class VoucherManagementComponent implements OnInit {
{ title: '借方金额', index: 'hrto' }, { title: '借方金额', index: 'hrto' },
{ title: '贷方金额', index: 'createtime', type: 'date' }, { title: '贷方金额', index: 'createtime', type: 'date' },
{ title: 'NC凭证', index: 'createbyname' }, { title: 'NC凭证', index: 'createbyname' },
{ title: '汇总凭证号', index: 'sts' }, { title: '汇总凭证号', index: 'sts', width: 150 },
{ title: '凭证状态', index: 'sts' }, { title: '凭证状态', index: 'sts' },
{ title: '创建时间', index: 'sts' }, { title: '创建时间', index: 'sts' },
{ title: '创建人', index: 'sts' }, { title: '创建人', index: 'sts' },
{ {
title: '操作', title: '操作',
width: '90px', width: '130px',
fixed: 'right',
buttons: [ buttons: [
{ {
text: '浏览' text: '浏览'
@ -305,7 +306,7 @@ export class VoucherManagementComponent implements OnInit {
text: '修改' text: '修改'
}, },
{ {
text: '删除 ' text: '删除'
}, },
{ {
text: '提交' text: '提交'

View File

@ -51,31 +51,19 @@
</ng-template> </ng-template>
<st <st #st size="small" [bordered]="true" [scroll]="{ x: '2000px',y:'400px' }" [data]="service.$api_ficoVatinvHList"
#st [columns]="columns"
size="small" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[bordered]="true" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
[scroll]="{ x: '2000px' }" [page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }"
[data]="service.$api_ficoVatinvHList" [loading]="service.http.loading">
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[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"
>
<ng-template st-row="vatinvcode" let-item let-index="index" let-column="column"> <ng-template st-row="vatinvcode" let-item let-index="index" let-column="column">
{{ item.vatinvcode }} <br> {{ item.vatinvcode }} <br>
<label class="text-primary" *ngIf="item.sts == '1'">待处理</label> <label class="text-primary" *ngIf="item.sts == '1'">待处理</label>
<label class="text-primary" *ngIf="item.sts == '2'">待确认</label> <label class="text-primary" *ngIf="item.sts == '2'">待确认</label>
<label class="text-primary" *ngIf="item.sts == '3'">已确认</label> <label class="text-primary" *ngIf="item.sts == '3'">已确认</label>
</ng-template> </ng-template>
<ng-template st-row="description" let-item let-index="index" let-column="column">
起运地: 广东省深圳市南山区 <br>
目的地: 湖北省武汉市青山区 <br>
货物名称: 钢材 <br>
车型车牌: 高栏车 粤B36889 <br>
</ng-template>
</st> </st>
</nz-card> </nz-card>

View File

@ -1,3 +1,4 @@
import { CurrencyPipe } from '@angular/common';
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st'; import { STComponent, STColumn, STRequestOptions, STChange } from '@delon/abc/st';
@ -10,7 +11,8 @@ import { PushInvoiceComponent } from './push-invoice/push-invoice.component';
@Component({ @Component({
selector: 'app-cancellation-invoice', selector: 'app-cancellation-invoice',
templateUrl: './cancellation-invoice.component.html', templateUrl: './cancellation-invoice.component.html',
styleUrls: ['./cancellation-invoice.component.less'] styleUrls: ['./cancellation-invoice.component.less'],
providers: [CurrencyPipe]
}) })
export class CancellationInvoiceComponent implements OnInit { export class CancellationInvoiceComponent implements OnInit {
@ViewChild('st', { static: true }) @ViewChild('st', { static: true })
@ -21,16 +23,21 @@ export class CancellationInvoiceComponent implements OnInit {
requestedModal!: any; requestedModal!: any;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
searchSchema: SFSchema = this.initSF(); searchSchema: SFSchema = this.initSF();
resourceStatus = '' resourceStatus = '';
_$expand = false; _$expand = false;
selectedRows: any[] = []; selectedRows: any[] = [];
totalCallNo = 0; totalCallNo = 0;
constructor(public service: TicketService, private nzModalService: NzModalService, private router: Router) {} constructor(
public service: TicketService,
private nzModalService: NzModalService,
private router: Router,
private currencyPipe: CurrencyPipe
) {}
ngOnInit(): void {} ngOnInit(): void {}
get reqParams() { get reqParams() {
// if (this.sf) { // if (this.sf) {
// Object.assign(requestOptions.body, { // Object.assign(requestOptions.body, {
// ...this.sf.value, // ...this.sf.value,
@ -41,17 +48,17 @@ export class CancellationInvoiceComponent implements OnInit {
// } // }
// }); // });
// } // }
const a:any = {}; const a: any = {};
if(this.resourceStatus) { if (this.resourceStatus) {
a.sts = this.resourceStatus a.sts = this.resourceStatus;
} }
return { return {
...a, ...a,
...this.sf?.value, ...this.sf?.value
}; };
}; }
selectChange(e: any) { selectChange(e: any) {
console.log(e) console.log(e);
this.resourceStatus = e; this.resourceStatus = e;
this.initST(); this.initST();
setTimeout(() => { setTimeout(() => {
@ -126,13 +133,23 @@ export class CancellationInvoiceComponent implements OnInit {
/** /**
* 推送发票 * 推送发票
* @param item * @param item
*/ */
pushInvoiceAction(item: any) { pushInvoiceAction(item: any) {
const modal = this.nzModalService.create({ const modal = this.nzModalService.create({
nzTitle: '推送开票', nzTitle: '推送开票',
nzContent: PushInvoiceComponent, nzContent: PushInvoiceComponent,
nzComponentParams: { id: item.id },
nzWidth: 1200, nzWidth: 1200,
nzOnOk: () => {
this.service.request(this.service.$api_apply_fico, { vatinvHid: item.id }).subscribe(res => {
if (res) {
this.service.msgSrv.success('开票成功');
modal.destroy;
}
});
return false;
}
}); });
} }
@ -197,11 +214,11 @@ export class CancellationInvoiceComponent implements OnInit {
widget: 'dict-select', widget: 'dict-select',
containsAllLable: true, containsAllLable: true,
params: { dictKey: 'vatinv:status' }, params: { dictKey: 'vatinv:status' },
containAllLable:true, containAllLable: true,
visibleIf: { visibleIf: {
_$expand: (value: boolean) => value, _$expand: (value: boolean) => value
}, }
} as SFSelectWidgetSchema, } as SFSelectWidgetSchema
}, },
// or2derSn: { // or2derSn: {
// type: 'string', // type: 'string',
@ -231,17 +248,23 @@ export class CancellationInvoiceComponent implements OnInit {
private initST(): STColumn[] { private initST(): STColumn[] {
return [ return [
{ title: '', index: 'key', type: 'checkbox' }, { title: '', index: 'key', type: 'checkbox', fixed: 'left', width: 50, className: 'text-center' },
{ title: '分票编号', render: 'vatinvcode', width: 150 }, { title: '分票编号', render: 'vatinvcode', width: 150 },
{ title: '申请编号', index: 'vatappHId', width: 120 }, { title: '申请编号', index: 'vatappHId', width: 120 },
{ title: '申请时间', index: 'createTime', type: 'date', width: 150 }, { title: '申请时间', index: 'createTime', type: 'date', width: 150 },
{ title: '网络货运人', index: 'ltdName', width: 120 }, { title: '网络货运人', index: 'ltdName', width: 120 },
{ title: '购买人', index: 'artoName', width: 90 }, { title: '购买人', index: 'artoName', width: 90 },
{ title: '订单数', index: 'ordlines', width: 90 }, { title: '订单数', index: 'ordlines', width: 90, className: 'text-right' },
{ title: '价税合计', index: 'vatmoney', width: 90 }, {
{ title: '金额', index: 'vatnotax', width: 100 }, title: '价税合计',
{ title: '税率', index: 'billvatrate', width: 90 }, index: 'vatmoney',
{ title: '税额', index: 'vattax', width: 90 }, width: 90,
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: 'billvatrate', width: 90, className: 'text-right' },
{ title: '税额', index: 'vattax', width: 90, type: 'currency', format: item => `${this.currencyPipe.transform(item.vattax)}` },
{ title: '服务名称', index: 'vatname', width: 100 }, { title: '服务名称', index: 'vatname', width: 100 },
{ title: '销货清单', index: 'isdetail', width: 90 }, { title: '销货清单', index: 'isdetail', width: 90 },
{ title: '票面备注', render: 'vatremarks', width: 250 }, { title: '票面备注', render: 'vatremarks', width: 250 },
@ -264,15 +287,15 @@ export class CancellationInvoiceComponent implements OnInit {
click: item => this.pushInvoiceAction(item) click: item => this.pushInvoiceAction(item)
}, },
{ {
text: '移除  ', text: '移除',
click: item => this.batchRemove(item) click: item => this.batchRemove(item)
}, },
{ {
text: '确认  ' text: '确认'
// click: item => this.rejectAction(item) // click: item => this.rejectAction(item)
}, },
{ {
text: '撤回  ', text: '撤回',
click: item => this.batchWithdraw(item) click: item => this.batchWithdraw(item)
} }
] ]

View File

@ -1,55 +1,57 @@
<div nz-row nzGutter="8" class="statistics-box"> <div nz-row nzGutter="8" class="statistics-box">
<div nz-col nzSpan="12" se-container [labelWidth]="100" col="1"> <div nz-col nzSpan="12" se-container [labelWidth]="100" col="1">
<se label="购买方"> <se label="购买方">
茅台股份有限公司 {{info?.artoName}}
</se> </se>
<se label="纳税号"> <se label="纳税号">
912301046656930913 {{info?.artotaxno}}
</se> </se>
<se label="地址"> <se label="地址">
贵州省贵阳市 {{info?.artoadd}}
</se> </se>
<se label="电话"> <se label="电话">
075588393198 {{info?.artotel}}
</se> </se>
<se label="开户行"> <se label="开户行">
中国工商银行股份有限公司哈贵阳支行 {{info?.artobank}}
</se> </se>
<se label="银行账户"> <se label="银行账户">
3500044119068126788 {{info?.artoacc}}
</se> </se>
<se label="票面备注"> <se label="票面备注">
<p style="margin-bottom: 0;margin-top: 5px;">起运地:广东省深圳市南山区</p> {{info?.vatremarks}}
<p style="margin-bottom: 0;">目的地:湖北省武汉市青山区</p>
<p style="margin-bottom: 0;">货物名称:钢材</p>
<p style="margin-bottom: 0;">车型车牌:高栏车 粤B36889</p>
</se> </se>
</div> </div>
<div nz-col nzSpan="12" se-container [labelWidth]="100" col="1"> <div nz-col nzSpan="12" se-container [labelWidth]="100" col="1">
<se label="销售方"> <se label="销售方">
天津怡亚通物流科技有限公司 {{info?.shipperId}}
</se> </se>
<se label="申请编号"> <se label="申请编号">
VP12301046656 {{info?.vatinvcode}}
</se> </se>
<se label="订单数"> <se label="订单数">
100 {{info?.ordlines}}
</se> </se>
<se label="价税合计"> <se label="价税合计">
300,000.00 {{info?.vatmoney}}
</se> </se>
<se label="服务名称"> <se label="服务名称">
运输服务费 {{info?.vatname}}
</se> </se>
<se label="销货清单"> <se label="销货清单">
需要 {{info?.isdetail}}
</se> </se>
<se label="其他要求"> <se label="其他要求">
单位按吨 {{info?.otherremarks}}
</se> </se>
</div> </div>
</div> </div>
<st #st [data]="data" [columns]="columns" [page]="{ show: false}" [scroll]="{ x:'800px',y: '300px' }" class="mt-md"> <st #st size="small" [bordered]="true" [scroll]="{x:'800px',y: '300px' }" [data]="service.$api_ficoVatinv_Detail"
[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] }"
[loading]="service.http.loading" class="mt-md">
</st> </st>

View File

@ -10,4 +10,7 @@
} }
} }
.text-truncate {
white-space: normal;
}
} }

View File

@ -1,15 +1,16 @@
import { CurrencyPipe } from '@angular/common';
import { Component, OnInit, ViewChild } from '@angular/core'; import { Component, OnInit, ViewChild } from '@angular/core';
import { STComponent, STColumn } from '@delon/abc/st'; import { STComponent, STColumn, STRequestOptions } from '@delon/abc/st';
import { NzModalService } from 'ng-zorro-antd/modal'; import { NzModalService } from 'ng-zorro-antd/modal';
import { TicketService } from '../../../services/ticket.service'; import { TicketService } from '../../../services/ticket.service';
@Component({ @Component({
selector: 'app-push-invoice', selector: 'app-push-invoice',
templateUrl: './push-invoice.component.html', templateUrl: './push-invoice.component.html',
styleUrls: ['./push-invoice.component.less'] styleUrls: ['./push-invoice.component.less'],
providers: [CurrencyPipe]
}) })
export class PushInvoiceComponent implements OnInit { export class PushInvoiceComponent implements OnInit {
@ViewChild('st', { static: false }) @ViewChild('st', { static: false })
st!: STComponent; st!: STComponent;
columns: STColumn[] = this.initST(); columns: STColumn[] = this.initST();
@ -30,23 +31,39 @@ export class PushInvoiceComponent implements OnInit {
} }
]; ];
info = {}; info: any = {};
id!: number;
constructor(public service: TicketService, private nzModalService: NzModalService) {} constructor(public service: TicketService, private nzModalService: NzModalService, private currencyPipe: CurrencyPipe) {}
ngOnInit(): void {} ngOnInit(): void {
this.loadHeader(this.id);
}
beforeReq = (requestOptions: STRequestOptions) => {
Object.assign(requestOptions.body, { vatinvHId: this.id });
return requestOptions;
};
loadHeader(id: number) {
this.service.request(this.service.$api_ficoVatinv_header, { id }).subscribe(res => {
console.log(res);
if (res) {
this.info = res;
}
});
}
private initST(): STColumn[] { private initST(): STColumn[] {
return [ return [
{ title: '服务名称', index: 'no', width: 100 }, { title: '服务名称', index: 'vatname', width: 100 },
{ title: '规格型号', index: 'callNo', width: 100 }, { title: '规格型号', index: 'vatmodel', width: 150 },
{ title: '单位', index: 'callNo', width: 90 }, { title: '单位', index: 'vatunit', width: 90, className: 'text-center' },
{ title: '数量', index: 'callNo', width: 90 }, { title: '数量', index: 'vatqty', width: 90, className: 'text-right' },
{ title: '金额', index: 'callNo', width: 90 }, { title: '金额', index: 'vatnotax', width: 90, type: 'currency', format: item => `${this.currencyPipe.transform(item.vatnotax)}` },
{ title: '税率', index: 'callNo', width: 90 }, { title: '税率', index: 'vatrate', width: 90, className: 'text-right' },
{ title: '税额', index: 'callNo', width: 90 }, { title: '税额', index: 'vattax', width: 90, type: 'currency', format: item => `${this.currencyPipe.transform(item.vattax)}` }
]; ];
} }
} }

View File

@ -23,10 +23,16 @@ export class TicketService extends ShipperBaseService {
$api_get_invoice_requested_order_detail = '/api/fcc/ficoVatappBill/getDetailByVatapp'; $api_get_invoice_requested_order_detail = '/api/fcc/ficoVatappBill/getDetailByVatapp';
// 删除开票申请订单明细 // 删除开票申请订单明细
$api_remove_bill = '/api/fcc/ficoVatappBill/deletebatch'; $api_remove_bill = '/api/fcc/ficoVatappBill/deletebatch';
// 删除开票申请订单明细
$api_ficoVatinvHList = '/api/fcc/ficoVatinvH/ficoVatinvHList';
// 运营端销票处理-订单明细页面 // 运营端销票处理-订单明细页面
$api_ficoVatinvDetailAll = '/api/fcc/ficoVatinvH/ficoVatinvDetailAll'; $api_ficoVatinvHList = '/api/fcc/ficoVatinvH/ficoVatinvHList';
// 获取销项发票抬头详情信息
$api_ficoVatinv_header = '/api/fcc/ficoVatinvH/getDetail';
// 获取分票发票明细
$api_ficoVatinv_Detail = '/api/fcc/ficoVatinvL/getDetailByVatinvHId';
// 运营端订单明细开票处理
$api_apply_fico = '/api/fcc/ficoVatinvH/crmPushInvo';
// 获取汇总下单路径 // 获取汇总下单路径
$api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress'; $api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress';
// 新建快递单 // 新建快递单