Commit ddd51274 by sunchao

电子报聘个人声明和学历信息添加备注&查对应保单详情添加practitionerId和银盾在线添加备注

parent 6360e9cf
...@@ -35,15 +35,19 @@ ...@@ -35,15 +35,19 @@
<div class="totastContent"> <div class="totastContent">
<div class="subtitle">关于代扣个人所得税/增值税/附加税</div> <div class="subtitle">关于代扣个人所得税/增值税/附加税</div>
<div style="margin-bottom: 10px;"> <div style="margin-bottom: 10px;">
公司根据财政部和税务总局《关于个人所得税法修改后有关优惠政策衔接问题的通知》 公司根据财政部和税务总局《关于个人所得税法修改后有关优惠政策衔接问题的通知》,
进行个人所得税、增值税、附加税的代缴。《通知》中关于保险营销员、证券经纪人佣金收入的政策: 并接受税务机关委托代征税款,向个人保险经纪人支付佣金费用后,
代个人保险经纪人统一向主管国税机关申请汇总代开增值税发票。
</div>
<div style="margin-bottom: 10px;">
《通知》中关于保险营销员、证券经纪人佣金收入的政策:
</div> </div>
<ul> <ul>
<li>1. 保险营销员、证券经纪人取得的佣金收入,属于劳务报酬所得。</li> <li>1. 保险营销员、证券经纪人取得的佣金收入,属于劳务报酬所得。</li>
<li>2. 以不含增值税的收入减除20%的费用后的余额为收入额,收入额减去展业成本以及附加税费后,并入当年综合所得,计算缴纳个人所得税。</li> <li>2. 以不含增值税的收入减除20%的费用后的余额为收入额,收入额减去展业成本以及附加税费后,并入当年综合所得,计算缴纳个人所得税。</li>
<li>3. 保险营销员、证券经纪人展业成本按照收入额的25%计算。</li> <li>3. 保险营销员、证券经纪人展业成本按照收入额的25%计算。</li>
<li>4. 扣缴义务人向保险营销员、证券经纪人支付佣金收入时,应按照《个人所得税扣缴申报管理办法(试行)》(国家税务总局公告2018年第61号)规定的累计预扣法计算预扣税款。</li> <li>4. 扣缴义务人向保险营销员、证券经纪人支付佣金收入时,应按照《个人所得税扣缴申报管理办法(试行)》(国家税务总局公告2018年第61号)规定的累计预扣法计算预扣税款。</li>
<li>5.经纪人佣金做为个人收入按规定需要扣缴增值税</li> <li>5. 经纪人佣金做为个人收入按规定需要扣缴增值税。</li>
</ul> </ul>
</div> </div>
</div> </div>
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<img src="{{certificationVxUrl}}" alt="毕业证照片" (click)="selectPic()" *ngIf="certificationVxUrl"> <img src="{{certificationVxUrl}}" alt="毕业证照片" (click)="selectPic()" *ngIf="certificationVxUrl">
<div class="tips"> <div class="tips">
<p>(jpg,png 文件大小不大于1mb)</p> <p>(jpg,png 文件大小不大于1mb)</p>
<p>根据银保监要求,请上传最高学历原件影像件或学信网截图</p>
</div> </div>
</div> </div>
<footer class="fixed" (click)="next()" *ngIf="approveStatus==null || approveStatus=='-1'"> <footer class="fixed" (click)="next()" *ngIf="approveStatus==null || approveStatus=='-1'">
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
</li> </li>
</ul> </ul>
<textarea placeholder="请输入您曾经报聘过的保险机构名称" #autofocusFlag [(ngModel)]="everWork" *ngIf="everWorkFlag" class="form-control" cols="10" rows="5"></textarea> <textarea placeholder="请输入您曾经报聘过的保险机构名称" #autofocusFlag [(ngModel)]="everWork" *ngIf="everWorkFlag" class="form-control" cols="10" rows="5"></textarea>
<p style="font-size: 12px;color: #999;position: absolute;top: 450px;">请务必如实回答以上4个问题;根据监管要求,如存在犯罪记录、失信记录、征信不良记录,无法报聘为保险营销人员。</p>
</div> </div>
<footer class="fixed" (click)="next()" *ngIf="approveStatus==null || approveStatus=='-1'"> <footer class="fixed" (click)="next()" *ngIf="approveStatus==null || approveStatus=='-1'">
保存并下一步 保存并下一步
......
<div class="wrapper"> <div class="wrapper">
<div class="header"> <div class="header">
<div class="iconfont icon-fanhui" (click)="goBack()" style="position: absolute;left: 10px;top: 10px;"></div> <div (click)="goBack()" style="position: absolute;left: 10px;top: 10px;">返回</div>
<!-- <div class="paginate"> <!-- <div class="paginate">
<div class="pre"><span class="iconfont icon-fanhui"></span>上一期</div> <div class="pre"><span class="iconfont icon-fanhui"></span>上一期</div>
<div class="next">下一期<span class="iconfont icon-ar-r"></span></div> <div class="next">下一期<span class="iconfont icon-ar-r"></span></div>
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
<span class="red">{{onlineAward.commission | number: "1.2-2"}}<i class="iconfont icon-ar-r"></i></span> <span class="red">{{onlineAward.commission | number: "1.2-2"}}<i class="iconfont icon-ar-r"></i></span>
</div> </div>
</div> </div>
<div class="item" style="margin-right: 14px;"> <div class="item" style="margin-right: 19px;">
<div class="title"> <div class="title">
<span>佣金合计(A+B+C)</span> <span>佣金合计(A+B+C)</span>
<span class="red">{{totalCommission | number: "1.2-2"}}</span> <span class="red">{{totalCommission | number: "1.2-2"}}</span>
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
</div> </div>
</div> </div>
<div class="part"> <div class="part">
<div class="item" style="margin-right: 14px;"> <div class="item" style="margin-right: 19px;">
<div class="title"> <div class="title">
<span (click)="otherTaxFlag = true">代扣个人所得税/增值税/附加税(D)<span class="iconfont icon-wenhao" style="margin-top: 3px;color: #f8002e;margin-left: 3px;"></span></span> <span (click)="otherTaxFlag = true">代扣个人所得税/增值税/附加税(D)<span class="iconfont icon-wenhao" style="margin-top: 3px;color: #f8002e;margin-left: 3px;"></span></span>
<span class="red">{{deduction | number: "1.2-2" }}</span> <span class="red">{{deduction | number: "1.2-2" }}</span>
...@@ -100,7 +100,7 @@ ...@@ -100,7 +100,7 @@
</div> </div>
</div> </div>
<div class="part"> <div class="part">
<div class="item" style="margin-right: 14px;"> <div class="item" style="margin-right: 19px;">
<div class="title"> <div class="title">
<span>本期实领(A+B+C-D)</span> <span>本期实领(A+B+C-D)</span>
<span class="red">{{after_tax_comis | number: "1.2-2"}}</span> <span class="red">{{after_tax_comis | number: "1.2-2"}}</span>
......
...@@ -79,7 +79,10 @@ ...@@ -79,7 +79,10 @@
margin-left: 15px; margin-left: 15px;
border-bottom: 1px #f4f4f4 solid; border-bottom: 1px #f4f4f4 solid;
.iconfont{ .iconfont{
font-size: 14px; font-size: 12px;
color: #333;
margin-left: 6px;
font-weight: normal;
} }
} }
.item_detail:last-child{ .item_detail:last-child{
......
...@@ -66,6 +66,7 @@ export class SalaryDetailComponent implements OnInit { ...@@ -66,6 +66,7 @@ export class SalaryDetailComponent implements OnInit {
after_tax_comis:number; after_tax_comis:number;
//其他加扣款问号 //其他加扣款问号
otherTaxFlag:boolean = false; otherTaxFlag:boolean = false;
abc:number;
constructor(private _toast: ToastService,public lifeCommonService: LifeCommonService, constructor(private _toast: ToastService,public lifeCommonService: LifeCommonService,
private activatedRoute: ActivatedRoute, private activatedRoute: ActivatedRoute,
private router:Router, private router:Router,
...@@ -179,7 +180,6 @@ export class SalaryDetailComponent implements OnInit { ...@@ -179,7 +180,6 @@ export class SalaryDetailComponent implements OnInit {
} }
} }
} }
}) })
} }
......
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
<div class="policy_item" *ngFor="let policyItem of policyList"> <div class="policy_item" *ngFor="let policyItem of policyList">
<div class="icon_bolck"><i class="iconfont icon-money-more"></i></div> <div class="icon_bolck"><i class="iconfont icon-money-more"></i></div>
<div class="line_item"> <div class="line_item">
<div>投保人姓名:{{policyItem.Insurance_Cust}}</div> <div>投保人姓名{{policyItem.Insurance_Cust}}</div>
<div>保险公司:{{policyItem.Customer.substr(0,8)}}</div> <div>保险公司:{{policyItem.Customer.substr(0,10)}}</div>
<div>生效时间:{{policyItem.EffectiveDate}}</div> <div>生效时间{{policyItem.EffectiveDate}}</div>
<div>保单号:{{policyItem.Policyno}}</div> <div>保单号{{policyItem.Policyno}}</div>
<div *ngIf="policyItem.status">保费:{{policyItem.YearPREMIUM | number: "1.2-2"}}</div> <div *ngIf="policyItem.status">保费:{{policyItem.YearPREMIUM | number: "1.2-2"}}</div>
<div *ngIf="policyItem.status">FYC/RYC:{{policyItem['FYC/RYC'] | number: "1.2-2"}}</div> <div *ngIf="policyItem.status">FYC/RYC:{{policyItem['FYC/RYC'] | number: "1.2-2"}}</div>
<div *ngIf="policyItem.status">职阶率:{{policyItem.Rate}}%</div> <div *ngIf="policyItem.status">职阶率:{{policyItem.Rate}}%</div>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<div>佣金比率:{{systemItem.Rate}}%</div> <div>佣金比率:{{systemItem.Rate}}%</div>
</div> </div>
<div class="money" style="top: 30px;right: 10px;"> <div class="money" style="top: 30px;right: 10px;">
¥{{systemItem['FYC/RYC'] | number: "1.2-2"}} ¥{{(systemItem['FYC/RYC']) * (systemItem.Rate/100 ) | number: "1.2-2"}}
</div> </div>
</div> </div>
</div> </div>
...@@ -72,6 +72,9 @@ ...@@ -72,6 +72,9 @@
<div style="font-size: 14px;color: #b3b3b3;"> <div style="font-size: 14px;color: #b3b3b3;">
<span>发放日期:{{customerFortuneItem.payDate}}</span> <span>发放日期:{{customerFortuneItem.payDate}}</span>
</div> </div>
<div style="font-size: 14px;color: #b3b3b3;">
<span>备注:{{remarkInfo?.Comments}}</span>
</div>
</div> </div>
<div class="referralAmount" style="color: rgb(255, 0, 0);"> <div class="referralAmount" style="color: rgb(255, 0, 0);">
¥ {{customerFortuneItem.referralAmount | number:'1.2-2'}} ¥ {{customerFortuneItem.referralAmount | number:'1.2-2'}}
......
...@@ -53,4 +53,37 @@ ...@@ -53,4 +53,37 @@
} }
} }
} }
.content_wrapper:last-child{
ul {
background: #f4f4f4;
min-height: 100%;
> li {
display: flex;
padding: 15px 10px;
border-radius: 6px;
margin-bottom: 15px;
background: #fff;
> div:first-child {
width: 30px;
margin-top: 2px;
}
> div:last-child {
flex: 1;
display: flex;
justify-content: space-between;
> div {
display: flex;
flex-direction: column;
}
.referralAmount {
font-weight: bold;
white-space: nowrap;
color: #ff0000;
}
}
}
}
}
} }
\ No newline at end of file
...@@ -65,7 +65,8 @@ export class SalaryFirstYearComponent implements OnInit { ...@@ -65,7 +65,8 @@ export class SalaryFirstYearComponent implements OnInit {
const param = { const param = {
years:this.years, years:this.years,
month:this.month, month:this.month,
agent_id:this.agent_id agent_id:this.agent_id,
practitionerId:JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']
} }
this.myService.searchStaffSalaryDetails(param).subscribe((res)=>{ this.myService.searchStaffSalaryDetails(param).subscribe((res)=>{
if(res['data']){ if(res['data']){
...@@ -120,12 +121,15 @@ export class SalaryFirstYearComponent implements OnInit { ...@@ -120,12 +121,15 @@ export class SalaryFirstYearComponent implements OnInit {
withdrawStatus: "drawn", withdrawStatus: "drawn",
withdrawId:this.withdrawId withdrawId:this.withdrawId
} }
this.myService.fortuneWithdrawListQuery(param).subscribe(res => { if(this.withdrawId){
if (res['success']) { this.myService.fortuneWithdrawListQuery(param).subscribe(res => {
console.log(res) if (res['success']) {
this.customerFortuneWithdraws = res['data']['customerFortuneWithdraws']; this.customerFortuneWithdraws = res['data']['customerFortuneWithdraws'];
} }
}); });
}else{
this.customerFortuneWithdraws = [];
}
} }
shrink(policyItem){ shrink(policyItem){
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
</div> </div>
</li> </li>
</ul> </ul>
<div class="salesContent"> <div class="salesContent" *ngIf="selectedId == 0">
<div class="salesItem" *ngFor="let payScaleItem of payScaleInfos" (click)="enterDetail(payScaleItem.years,payScaleItem.month,payScaleItem.loginName)"> <div class="salesItem" *ngFor="let payScaleItem of payScaleInfos" (click)="enterDetail(payScaleItem.years,payScaleItem.month,payScaleItem.loginName)">
<div class="icon_bolck"><span class="iconfont icon-xinzidan"></span></div> <div class="icon_bolck"><span class="iconfont icon-xinzidan"></span></div>
<div style="padding-left: 45px;padding-right: 20px;"> <div style="padding-left: 45px;padding-right: 20px;">
...@@ -26,6 +26,44 @@ ...@@ -26,6 +26,44 @@
</div> </div>
<div style="text-align: center;margin-top: 20px;" *ngIf="payScaleInfos?.length<=0">暂无数据</div> <div style="text-align: center;margin-top: 20px;" *ngIf="payScaleInfos?.length<=0">暂无数据</div>
</div> </div>
<div id="salesContent" *ngIf="selectedId == 1">
<div class="salesItem" *ngFor="let payScaleItem of payScaleInfos" (click)="getPdf(payScaleItem.monShId,payScaleItem.pdfOssPath)">
<div class="icon_bolck"><span class="iconfont icon-xinzidan"></span></div>
<div class="line">
<div>薪资日期</div>
<div>{{lifeCommonService.getDate(payScaleItem.monDtlPeriod)}}</div>
</div>
<div class="line">
<div>流水编号</div>
<div>{{payScaleItem.monShId}}</div>
</div>
<div class="line">
<span>应发佣金</span>
<div class="price" *ngIf="!payScaleItem.pdfOssPath">¥{{payScaleItem.monDtlAmount | number: "1.2-2"}}</div>
<div *ngIf="payScaleItem.pdfOssPath">直接查看薪资单明细</div>
</div>
<div class="line">
<span>扣除税</span>
<div class="price" *ngIf="!payScaleItem.pdfOssPath">¥{{(payScaleItem.monDtlAmount-payScaleItem.monDtlRAmount) | number: "1.2-2"}}</div>
<div class="price" *ngIf="payScaleItem.pdfOssPath">-</div>
</div>
<div class="line">
<span>实发佣金</span>
<div class="price" *ngIf="!payScaleItem.pdfOssPath">¥{{payScaleItem.monDtlRAmount | number: "1.2-2"}}</div>
<div *ngIf="payScaleItem.pdfOssPath">直接查看薪资单明细</div>
</div>
<div class="line">
<div></div>
<div>
薪资单明细
<span class="iconfont icon-xiazai" style="color:#ff3500;margin-left: 5px;"></span>
</div>
</div>
</div>
<div style="text-align: center;margin-top: 20px;" *ngIf="payScaleInfos?.length<=0">暂无数据</div>
</div>
</div> </div>
<ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast> <ydlife-toast *ngIf="toastDialog" [toastInfo]="toastInfo"></ydlife-toast>
\ No newline at end of file
...@@ -81,4 +81,50 @@ ...@@ -81,4 +81,50 @@
border-bottom: none; border-bottom: none;
} }
} }
#salesContent{
.salesItem{
border-bottom: 1px #dcdcdc solid;
padding: 10px;
padding-left: 45px;
position: relative;
background: #fff;
.icon_bolck{
border: 1px #dcdcdc solid;
width: 35px;
height: 35px;
position: absolute;
left: 3px;
top: 50px;
line-height: 30px;
text-align: center;
border-radius: 50%;
.iconfont{
color: #ff3500;
font-size: 22px;
position: relative;
top: 1px;
}
}
.line{
display: flex;
justify-content: space-between;
align-items: center;
// height: 20px;
font-size: 14px;
.price{
font-size: 16px;
color: #ff3500;
font-weight: bold;
}
}
.long_line{
font-size: 12px;
}
}
.salesItem:last-child{
border-bottom: none;
}
}
} }
\ No newline at end of file
...@@ -9,7 +9,6 @@ import { ActivatedRoute,Router } from "@angular/router"; ...@@ -9,7 +9,6 @@ import { ActivatedRoute,Router } from "@angular/router";
styleUrls: ['./salary.component.scss'] styleUrls: ['./salary.component.scss']
}) })
export class SalaryComponent implements OnInit { export class SalaryComponent implements OnInit {
practitionerIdEG: any;
practitionerId: any; practitionerId: any;
payScaleInfos: Array<any>; payScaleInfos: Array<any>;
//控制弹框 //控制弹框
...@@ -24,7 +23,6 @@ export class SalaryComponent implements OnInit { ...@@ -24,7 +23,6 @@ export class SalaryComponent implements OnInit {
ngOnInit() { ngOnInit() {
const title = this.activatedRoute.snapshot.data[0]['title']; const title = this.activatedRoute.snapshot.data[0]['title'];
this.lifeCommonService.setTitle(title); this.lifeCommonService.setTitle(title);
this.practitionerIdEG = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerIdEG'];
this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId'] this.practitionerId = JSON.parse(localStorage.getItem('lifeCustomerInfo'))['practitionerId']
this.payScaleListQuery(); this.payScaleListQuery();
this.tabList = [ this.tabList = [
...@@ -34,7 +32,7 @@ export class SalaryComponent implements OnInit { ...@@ -34,7 +32,7 @@ export class SalaryComponent implements OnInit {
} }
payScaleListQuery() { payScaleListQuery() {
this.myService.payScaleListQuery({ practitionerIdEG: this.practitionerIdEG,practitionerId:this.practitionerId,isHistory: this.selectedId}).subscribe((res) => { this.myService.payScaleListQuery({ practitionerId:this.practitionerId,isHistory: this.selectedId}).subscribe((res) => {
if (res['success']) { if (res['success']) {
this.payScaleInfos = res['data']['payScaleInfos']; this.payScaleInfos = res['data']['payScaleInfos'];
} else { } else {
...@@ -53,5 +51,32 @@ export class SalaryComponent implements OnInit { ...@@ -53,5 +51,32 @@ export class SalaryComponent implements OnInit {
enterDetail(years,month,agent_id){ enterDetail(years,month,agent_id){
this.router.navigate(['/salary_detail'],{ queryParams: { years:years,month:month,agent_id:agent_id} }); this.router.navigate(['/salary_detail'],{ queryParams: { years:years,month:month,agent_id:agent_id} });
} }
//下载pdf
getPdf(monShId,url) {
if(url){
window.open(url)
// location.href = url;
}else{
this.myService.payScalePdf({ monShId: monShId, practitionerId: Number(this.practitionerId) }).subscribe((res) => {
if (res['success']) {
if (res['data']['url']) {
window.open(res['data']['url'])
// location.href = res['data']['url'];
} else {
this.toastDialog = true;
this.toastInfo = {
status: 1,
msg: '暂无薪资单!',
timeout: 3000,
align: 'center'
};
return;
}
}
})
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment