项目状态和审核状态调整
parent
b49786ef4f
commit
589187d846
|
@ -4,9 +4,10 @@ package cn.palmte.work.bean;
|
||||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||||
*/
|
*/
|
||||||
public enum ApproveStatusEnum {
|
public enum ApproveStatusEnum {
|
||||||
APPROVAL_PENDING(0,"待审核"),
|
APPROVAL_UNCOMMIT(0,"草稿"),
|
||||||
APPROVAL_PASSED(1,"审核通过"),
|
APPROVAL_PENDING(1,"待审核"),
|
||||||
APPROVAL_UNPASS(2,"审核不通过");
|
APPROVAL_PASSED(2,"审核通过"),
|
||||||
|
APPROVAL_UNPASS(3,"审核不通过");
|
||||||
|
|
||||||
private int approveStatus;
|
private int approveStatus;
|
||||||
private String approveStatusDesc;
|
private String approveStatusDesc;
|
||||||
|
@ -34,12 +35,15 @@ public enum ApproveStatusEnum {
|
||||||
|
|
||||||
public static ApproveStatusEnum parseApproveStatus(int approveStatus){
|
public static ApproveStatusEnum parseApproveStatus(int approveStatus){
|
||||||
if(approveStatus == 0){
|
if(approveStatus == 0){
|
||||||
return APPROVAL_PENDING;
|
return APPROVAL_UNCOMMIT;
|
||||||
}
|
}
|
||||||
if(approveStatus == 1){
|
if(approveStatus == 1){
|
||||||
return APPROVAL_PASSED;
|
return APPROVAL_PENDING;
|
||||||
}
|
}
|
||||||
if(approveStatus == 2){
|
if(approveStatus == 2){
|
||||||
|
return APPROVAL_PASSED;
|
||||||
|
}
|
||||||
|
if(approveStatus == 3){
|
||||||
return APPROVAL_UNPASS;
|
return APPROVAL_UNPASS;
|
||||||
}
|
}
|
||||||
throw new IllegalArgumentException("Unkown approveStatus:"+approveStatus);
|
throw new IllegalArgumentException("Unkown approveStatus:"+approveStatus);
|
||||||
|
|
|
@ -4,7 +4,6 @@ package cn.palmte.work.bean;
|
||||||
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
|
||||||
*/
|
*/
|
||||||
public enum StatusEnum {
|
public enum StatusEnum {
|
||||||
DRAFT(0,"草稿"),
|
|
||||||
CREATED(1,"项目创建"),
|
CREATED(1,"项目创建"),
|
||||||
ESTIMATE_ACCOUNTS(5,"概算完成"),
|
ESTIMATE_ACCOUNTS(5,"概算完成"),
|
||||||
BUDGET_ACCOUNTS(10,"预算完成"),
|
BUDGET_ACCOUNTS(10,"预算完成"),
|
||||||
|
@ -36,9 +35,6 @@ public enum StatusEnum {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static StatusEnum parseStatus(int status){
|
public static StatusEnum parseStatus(int status){
|
||||||
if(status == 0){
|
|
||||||
return DRAFT;
|
|
||||||
}
|
|
||||||
if(status == 1){
|
if(status == 1){
|
||||||
return CREATED;
|
return CREATED;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package cn.palmte.work.controller.backend;
|
package cn.palmte.work.controller.backend;
|
||||||
|
|
||||||
|
import cn.palmte.work.bean.ApproveStatusEnum;
|
||||||
import cn.palmte.work.bean.EstimateBean;
|
import cn.palmte.work.bean.EstimateBean;
|
||||||
import cn.palmte.work.model.Dept;
|
import cn.palmte.work.model.Dept;
|
||||||
import cn.palmte.work.model.DeptRepository;
|
import cn.palmte.work.model.DeptRepository;
|
||||||
|
@ -79,10 +80,24 @@ public class ProjectController extends BaseController{
|
||||||
|
|
||||||
return "admin/project_estimate_add";
|
return "admin/project_estimate_add";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预算保存草稿
|
||||||
|
*/
|
||||||
@RequestMapping("/estimateAddSave")
|
@RequestMapping("/estimateAddSave")
|
||||||
public String estimateAddSave(Project project, EstimateBean estimateBean,
|
public String estimateAddSave(Project project, EstimateBean estimateBean,
|
||||||
Map<String, Object> model) {
|
Map<String, Object> model) {
|
||||||
projectService.estimateAddSave(project, estimateBean, InterfaceUtil.getAdmin());
|
projectService.estimateAddSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
||||||
|
return "redirect:/project/list";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预算保存并提交审核
|
||||||
|
*/
|
||||||
|
@RequestMapping("/estimateAddSaveAndApprove")
|
||||||
|
public String estimateAddSaveAndApprove(Project project, EstimateBean estimateBean,
|
||||||
|
Map<String, Object> model) {
|
||||||
|
projectService.estimateAddSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_PENDING);
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
@RequestMapping("/edit")
|
@RequestMapping("/edit")
|
||||||
|
@ -93,19 +108,21 @@ public class ProjectController extends BaseController{
|
||||||
model.put("estimateBean", estimateBean);
|
model.put("estimateBean", estimateBean);
|
||||||
return "admin/project_estimate_edit";
|
return "admin/project_estimate_edit";
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/estimateEditSave")
|
@RequestMapping("/estimateEditSave")
|
||||||
public String estimateEditSave(Project project, EstimateBean estimateBean,
|
public String estimateEditSave(Project project, EstimateBean estimateBean,
|
||||||
Map<String, Object> model) {
|
Map<String, Object> model) {
|
||||||
projectService.estimateEditSave(project, estimateBean, InterfaceUtil.getAdmin());
|
projectService.estimateEditSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_UNCOMMIT);
|
||||||
|
return "redirect:/project/list";
|
||||||
|
}
|
||||||
|
@RequestMapping("/estimateEditSaveAndApprove")
|
||||||
|
public String estimateEditSaveAndApprove(Project project, EstimateBean estimateBean,
|
||||||
|
Map<String, Object> model) {
|
||||||
|
projectService.estimateEditSave(project, estimateBean, InterfaceUtil.getAdmin(), ApproveStatusEnum.APPROVAL_PENDING);
|
||||||
return "redirect:/project/list";
|
return "redirect:/project/list";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@RequestMapping("/estimateSaveAndApprove")
|
|
||||||
public String estimateSaveAndApprove(Map<String, Object> model) {
|
|
||||||
return "redirect:/project/list";
|
|
||||||
}
|
|
||||||
|
|
||||||
@InitBinder
|
@InitBinder
|
||||||
public void initBinder(WebDataBinder webDataBinder){
|
public void initBinder(WebDataBinder webDataBinder){
|
||||||
webDataBinder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
|
webDataBinder.addCustomFormatter(new DateFormatter("yyyy-MM-dd"));
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package cn.palmte.work.model;
|
package cn.palmte.work.model;
|
||||||
|
|
||||||
|
import cn.palmte.work.bean.ApproveStatusEnum;
|
||||||
import org.hibernate.annotations.GenericGenerator;
|
import org.hibernate.annotations.GenericGenerator;
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
|
@ -13,6 +14,11 @@ import java.util.Date;
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "project")
|
@Table(name = "project")
|
||||||
public class Project {
|
public class Project {
|
||||||
|
public static final int STATUS_CREATED = 1;
|
||||||
|
public static final int STATUS_ESTIMATE = 5;
|
||||||
|
public static final int STATUS_BUDGET = 10;
|
||||||
|
public static final int STATUS_SETTLE = 15;
|
||||||
|
public static final int STATUS_FINAL = 20;
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
|
@GenericGenerator(name = "persistenceGenerator", strategy = "increment")
|
||||||
|
@ -28,18 +34,23 @@ public class Project {
|
||||||
@Column(name = "type_desc")
|
@Column(name = "type_desc")
|
||||||
private String typeDesc;
|
private String typeDesc;
|
||||||
/**
|
/**
|
||||||
* 项目状态:0草稿,1项目创建,5概算完成,10预算完成,15结算中,20决算完成
|
* 项目状态:1项目创建,5概算完成,10预算完成,15结算中,20决算完成
|
||||||
*/
|
*/
|
||||||
private int status;
|
private int status;
|
||||||
@Column(name = "status_desc")
|
@Column(name = "status_desc")
|
||||||
private String statusDesc;
|
private String statusDesc;
|
||||||
/**
|
/**
|
||||||
* 审核状态:0待审核,1审核通过,2审核不通过
|
* 概算、预算、结算、决算:审核状态:0草稿,1待审核,2审核通过,3审核不通过
|
||||||
*/
|
*/
|
||||||
@Column(name = "approve_status")
|
@Column(name = "approve_status_estimate")
|
||||||
private int approveStatus;
|
private Integer approveStatusEstimate;
|
||||||
@Column(name = "approve_status_desc")
|
@Column(name = "approve_status_budget")
|
||||||
private String approveStatusDesc;
|
private Integer approveStatusBudget;
|
||||||
|
@Column(name = "approve_status_settle")
|
||||||
|
private Integer approveStatusSettle;
|
||||||
|
@Column(name = "approve_status_final")
|
||||||
|
private Integer approveStatusFinal;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核人id
|
* 审核人id
|
||||||
*/
|
*/
|
||||||
|
@ -178,20 +189,60 @@ public class Project {
|
||||||
this.statusDesc = statusDesc;
|
this.statusDesc = statusDesc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getApproveStatus() {
|
public Integer getApproveStatusEstimate() {
|
||||||
return approveStatus;
|
return approveStatusEstimate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setApproveStatus(int approveStatus) {
|
public void setApproveStatusEstimate(Integer approveStatusEstimate) {
|
||||||
this.approveStatus = approveStatus;
|
this.approveStatusEstimate = approveStatusEstimate;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getApproveStatusBudget() {
|
||||||
|
return approveStatusBudget;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApproveStatusBudget(Integer approveStatusBudget) {
|
||||||
|
this.approveStatusBudget = approveStatusBudget;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getApproveStatusSettle() {
|
||||||
|
return approveStatusSettle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApproveStatusSettle(Integer approveStatusSettle) {
|
||||||
|
this.approveStatusSettle = approveStatusSettle;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getApproveStatusFinal() {
|
||||||
|
return approveStatusFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApproveStatusFinal(Integer approveStatusFinal) {
|
||||||
|
this.approveStatusFinal = approveStatusFinal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getApproveStatus() {
|
||||||
|
if(status == STATUS_CREATED || status == STATUS_ESTIMATE){
|
||||||
|
return approveStatusEstimate;
|
||||||
|
}
|
||||||
|
if(status == STATUS_BUDGET){
|
||||||
|
return approveStatusBudget;
|
||||||
|
}
|
||||||
|
if(status == STATUS_SETTLE){
|
||||||
|
return approveStatusSettle;
|
||||||
|
}
|
||||||
|
if(status == STATUS_FINAL){
|
||||||
|
return approveStatusFinal;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getApproveStatusDesc() {
|
public String getApproveStatusDesc() {
|
||||||
return approveStatusDesc;
|
Integer approveStatus = getApproveStatus();
|
||||||
}
|
if(null == approveStatus){
|
||||||
|
return "未知";
|
||||||
public void setApproveStatusDesc(String approveStatusDesc) {
|
}
|
||||||
this.approveStatusDesc = approveStatusDesc;
|
return ApproveStatusEnum.parseApproveStatus(approveStatus).getApproveStatusDesc();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Integer getApproveId() {
|
public Integer getApproveId() {
|
||||||
|
|
|
@ -46,7 +46,9 @@ public class ProjectService {
|
||||||
queryHelper.addCondition("p.status=?", Integer.parseInt(searchInfo.get("status")));
|
queryHelper.addCondition("p.status=?", Integer.parseInt(searchInfo.get("status")));
|
||||||
}
|
}
|
||||||
if(StrUtil.isNotEmpty(searchInfo.get("approveStatus")) && !"-1".equals(searchInfo.get("approveStatus"))){
|
if(StrUtil.isNotEmpty(searchInfo.get("approveStatus")) && !"-1".equals(searchInfo.get("approveStatus"))){
|
||||||
queryHelper.addCondition("p.approve_status=?", Integer.parseInt(searchInfo.get("approveStatus")));
|
int approveStatus = Integer.parseInt(searchInfo.get("approveStatus"));
|
||||||
|
//四种状态满足其一即可
|
||||||
|
queryHelper.addCondition("(p.approve_status_estimate=? OR p.approve_status_budget=? OR p.approve_status_settle=? OR p.approve_status_final=?)", approveStatus,approveStatus,approveStatus,approveStatus);
|
||||||
}
|
}
|
||||||
if(StrUtil.isNotEmpty(searchInfo.get("deptId")) && !"-1".equals(searchInfo.get("deptId"))){
|
if(StrUtil.isNotEmpty(searchInfo.get("deptId")) && !"-1".equals(searchInfo.get("deptId"))){
|
||||||
queryHelper.addCondition("p.dept_id=?", Integer.parseInt(searchInfo.get("deptId")));
|
queryHelper.addCondition("p.dept_id=?", Integer.parseInt(searchInfo.get("deptId")));
|
||||||
|
@ -89,21 +91,20 @@ public class ProjectService {
|
||||||
* 新增概算保存项目
|
* 新增概算保存项目
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = RuntimeException.class)
|
@Transactional(rollbackFor = RuntimeException.class)
|
||||||
public Project estimateAddSave(Project project, EstimateBean estimateBean, Admin admin) {
|
public Project estimateAddSave(Project project, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
||||||
project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc());
|
project.setTypeDesc(TypeEnum.parseType(project.getType()).getTypeDesc());
|
||||||
project.setStatusDesc(StatusEnum.parseStatus(project.getStatus()).getStatusDesc());
|
project.setStatus(StatusEnum.CREATED.getStatus());
|
||||||
project.setApproveStatus(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus());
|
project.setStatusDesc(StatusEnum.CREATED.getStatusDesc());
|
||||||
project.setApproveStatusDesc(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatusDesc());
|
project.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
|
||||||
project.setCreatorId(admin.getId());
|
project.setCreatorId(admin.getId());
|
||||||
project.setCreatorName(admin.getUserName());
|
project.setCreatorName(admin.getUserName());
|
||||||
|
|
||||||
//TODO 审核人通过计算得到
|
project.setApproveId(null);
|
||||||
project.setApproveId(0);
|
|
||||||
project.setApproveName("");
|
project.setApproveName("");
|
||||||
|
|
||||||
//TODO 获取登录人的部门信息
|
//TODO 获取登录人的部门信息
|
||||||
project.setDeptId(admin.getId());
|
project.setDeptId(admin.getId());
|
||||||
project.setDeptName("");
|
project.setDeptName("工程部");
|
||||||
|
|
||||||
project.setCreateTime(new Date());
|
project.setCreateTime(new Date());
|
||||||
|
|
||||||
|
@ -116,6 +117,7 @@ public class ProjectService {
|
||||||
cost(project, estimateBean);
|
cost(project, estimateBean);
|
||||||
//管理记录
|
//管理记录
|
||||||
costManage(project, estimateBean);
|
costManage(project, estimateBean);
|
||||||
|
|
||||||
return project;
|
return project;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -140,13 +142,13 @@ public class ProjectService {
|
||||||
* 编辑概算保存项目
|
* 编辑概算保存项目
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = RuntimeException.class)
|
@Transactional(rollbackFor = RuntimeException.class)
|
||||||
public Project estimateEditSave(Project project, EstimateBean estimateBean, Admin admin) {
|
public Project estimateEditSave(Project project, EstimateBean estimateBean, Admin admin, ApproveStatusEnum approveStatusEnum) {
|
||||||
//删除原来的
|
//删除原来的
|
||||||
projectRepository.delete(project.getId());
|
projectRepository.delete(project.getId());
|
||||||
//清空概算信息
|
//清空概算信息
|
||||||
clearEstimate(project);
|
clearEstimate(project);
|
||||||
|
|
||||||
return estimateAddSave(project, estimateBean, admin);
|
return estimateAddSave(project, estimateBean, admin, approveStatusEnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cost(Project project, EstimateBean estimateBean) {
|
private void cost(Project project, EstimateBean estimateBean) {
|
||||||
|
|
|
@ -0,0 +1,192 @@
|
||||||
|
function calIncomeAndCost() {
|
||||||
|
$("input[name='incomeDeviceTaxInclude']").change(function () {
|
||||||
|
calIncomeInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='incomeEngineerTaxInclude']").change(function () {
|
||||||
|
calIncomeInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='incomeServiceTaxInclude']").change(function () {
|
||||||
|
calIncomeInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='incomeDeviceTaxExclude']").change(function () {
|
||||||
|
calIncomeExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='incomeEngineerTaxExclude']").change(function () {
|
||||||
|
calIncomeExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='incomeServiceTaxExclude']").change(function () {
|
||||||
|
calIncomeExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$("input[name='costPurchaseDeviceTaxInclude']").change(function () {
|
||||||
|
calCostInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costPurchaseBuildTaxInclude']").change(function () {
|
||||||
|
calCostInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costPurchaseServiceTaxInclude']").change(function () {
|
||||||
|
calCostInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costPurchaseOtherTaxInclude']").change(function () {
|
||||||
|
calCostInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costProjectManageTaxInclude']").change(function () {
|
||||||
|
calCostInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costOtherOtherTaxInclude']").change(function () {
|
||||||
|
calCostInclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("input[name='costPurchaseDeviceTaxExclude']").change(function () {
|
||||||
|
calCostExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costPurchaseBuildTaxExclude']").change(function () {
|
||||||
|
calCostExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costPurchaseServiceTaxExclude']").change(function () {
|
||||||
|
calCostExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costPurchaseOtherTaxExclude']").change(function () {
|
||||||
|
calCostExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costProjectManageTaxExclude']").change(function () {
|
||||||
|
calCostExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costOtherOtherTaxExclude']").change(function () {
|
||||||
|
calCostExclude();
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$("input[name='costExpropriationTaxExclude']").change(function () {
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
$("input[name='costCompanyManageTaxExclude']").change(function () {
|
||||||
|
calIncomeCost();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计收入(含税),有一项没填就置空
|
||||||
|
*/
|
||||||
|
function calIncomeInclude() {
|
||||||
|
var incomeDeviceTaxInclude = $("input[name='incomeDeviceTaxInclude']").val();
|
||||||
|
var incomeEngineerTaxInclude = $("input[name='incomeEngineerTaxInclude']").val();
|
||||||
|
var incomeServiceTaxInclude = $("input[name='incomeServiceTaxInclude']").val();
|
||||||
|
|
||||||
|
var incomeTotalTaxInclude = $("input[name='incomeTotalTaxInclude']");
|
||||||
|
|
||||||
|
if(incomeDeviceTaxInclude && incomeEngineerTaxInclude && incomeServiceTaxInclude){
|
||||||
|
incomeTotalTaxInclude.val(parseFloat(incomeDeviceTaxInclude)+parseFloat(incomeEngineerTaxInclude)+parseFloat(incomeServiceTaxInclude));
|
||||||
|
}else {
|
||||||
|
incomeTotalTaxInclude.val("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 统计收入(不含税),有一项没填就置空
|
||||||
|
*/
|
||||||
|
function calIncomeExclude() {
|
||||||
|
var incomeDeviceTaxExclude = $("input[name='incomeDeviceTaxExclude']").val();
|
||||||
|
var incomeEngineerTaxExclude = $("input[name='incomeEngineerTaxExclude']").val();
|
||||||
|
var incomeServiceTaxExclude = $("input[name='incomeServiceTaxExclude']").val();
|
||||||
|
|
||||||
|
var incomeTotalTaxExclude = $("input[name='incomeTotalTaxExclude']");
|
||||||
|
|
||||||
|
if(incomeDeviceTaxExclude && incomeEngineerTaxExclude && incomeServiceTaxExclude){
|
||||||
|
incomeTotalTaxExclude.val(parseFloat(incomeDeviceTaxExclude)+parseFloat(incomeEngineerTaxExclude)+parseFloat(incomeServiceTaxExclude));
|
||||||
|
}else {
|
||||||
|
incomeTotalTaxExclude.val("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 统计成本(含税),有一项没填就置空
|
||||||
|
*/
|
||||||
|
function calCostInclude() {
|
||||||
|
var costPurchaseDeviceTaxInclude = $("input[name='costPurchaseDeviceTaxInclude']").val();
|
||||||
|
var costPurchaseBuildTaxInclude = $("input[name='costPurchaseBuildTaxInclude']").val();
|
||||||
|
var costPurchaseServiceTaxInclude = $("input[name='costPurchaseServiceTaxInclude']").val();
|
||||||
|
var costPurchaseOtherTaxInclude = $("input[name='costPurchaseOtherTaxInclude']").val();
|
||||||
|
var costProjectManageTaxInclude = $("input[name='costProjectManageTaxInclude']").val();
|
||||||
|
var costOtherOtherTaxInclude = $("input[name='costOtherOtherTaxInclude']").val();
|
||||||
|
|
||||||
|
|
||||||
|
var costTotalTaxInclude = $("input[name='costTotalTaxInclude']");
|
||||||
|
|
||||||
|
if(costPurchaseDeviceTaxInclude && costPurchaseBuildTaxInclude && costPurchaseServiceTaxInclude && costPurchaseOtherTaxInclude && costProjectManageTaxInclude && costOtherOtherTaxInclude){
|
||||||
|
costTotalTaxInclude.val(parseFloat(costPurchaseDeviceTaxInclude)+parseFloat(costPurchaseBuildTaxInclude)+parseFloat(costPurchaseServiceTaxInclude)+parseFloat(costPurchaseOtherTaxInclude)+parseFloat(costProjectManageTaxInclude)+parseFloat(costOtherOtherTaxInclude));
|
||||||
|
}else {
|
||||||
|
costTotalTaxInclude.val("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 统计成本(不含税),有一项没填就置空
|
||||||
|
*/
|
||||||
|
function calCostExclude() {
|
||||||
|
var costPurchaseDeviceTaxExclude = $("input[name='costPurchaseDeviceTaxExclude']").val();
|
||||||
|
var costPurchaseBuildTaxExclude = $("input[name='costPurchaseBuildTaxExclude']").val();
|
||||||
|
var costPurchaseServiceTaxExclude = $("input[name='costPurchaseServiceTaxExclude']").val();
|
||||||
|
var costPurchaseOtherTaxExclude = $("input[name='costPurchaseOtherTaxExclude']").val();
|
||||||
|
var costProjectManageTaxExclude = $("input[name='costProjectManageTaxExclude']").val();
|
||||||
|
var costOtherOtherTaxExclude = $("input[name='costOtherOtherTaxExclude']").val();
|
||||||
|
|
||||||
|
|
||||||
|
var costTotalTaxExclude = $("input[name='costTotalTaxExclude']");
|
||||||
|
|
||||||
|
if(costPurchaseDeviceTaxExclude && costPurchaseBuildTaxExclude && costPurchaseServiceTaxExclude && costPurchaseOtherTaxExclude && costProjectManageTaxExclude && costOtherOtherTaxExclude){
|
||||||
|
costTotalTaxExclude.val(parseFloat(costPurchaseDeviceTaxExclude)+parseFloat(costPurchaseBuildTaxExclude)+parseFloat(costPurchaseServiceTaxExclude)+parseFloat(costPurchaseOtherTaxExclude)+parseFloat(costProjectManageTaxExclude)+parseFloat(costOtherOtherTaxExclude));
|
||||||
|
}else {
|
||||||
|
costTotalTaxExclude.val("");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算毛利、毛利率、贡献、贡献率
|
||||||
|
*/
|
||||||
|
function calIncomeCost() {
|
||||||
|
var incomeTotalTaxExclude = $("input[name='incomeTotalTaxExclude']").val();
|
||||||
|
var costTotalTaxExclude = $("input[name='costTotalTaxExclude']").val();
|
||||||
|
var costExpropriationTaxExclude = $("input[name='costExpropriationTaxExclude']").val();
|
||||||
|
var costCompanyManageTaxExclude = $("input[name='costCompanyManageTaxExclude']").val();
|
||||||
|
|
||||||
|
var projectGrossProfit = $("input[name='projectGrossProfit']");
|
||||||
|
var projectGrossProfitRate = $("input[name='projectGrossProfitRate']");
|
||||||
|
var projectContributionProfit = $("input[name='projectContributionProfit']");
|
||||||
|
var projectContributionProfitRate = $("input[name='projectContributionProfitRate']");
|
||||||
|
|
||||||
|
if (incomeTotalTaxExclude && costTotalTaxExclude && costExpropriationTaxExclude) {
|
||||||
|
projectGrossProfit.val(parseFloat(incomeTotalTaxExclude) - parseFloat(costTotalTaxExclude) - parseFloat(costExpropriationTaxExclude));
|
||||||
|
projectGrossProfitRate.val(parseFloat(projectGrossProfit.val()) * 100 / parseFloat(incomeTotalTaxExclude));
|
||||||
|
} else {
|
||||||
|
projectGrossProfit.val("");
|
||||||
|
projectGrossProfitRate.val("");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (projectGrossProfit.val() && costCompanyManageTaxExclude) {
|
||||||
|
projectContributionProfit.val(parseFloat(projectGrossProfit.val()) - parseFloat(costCompanyManageTaxExclude));
|
||||||
|
projectContributionProfitRate.val(parseFloat(projectContributionProfit.val()) * 100 / parseFloat(incomeTotalTaxExclude))
|
||||||
|
} else {
|
||||||
|
projectContributionProfit.val("");
|
||||||
|
projectContributionProfitRate.val("");
|
||||||
|
}
|
||||||
|
}
|
|
@ -5,7 +5,7 @@
|
||||||
<div class="admin-content">
|
<div class="admin-content">
|
||||||
<div class="admin-content-body">
|
<div class="admin-content-body">
|
||||||
<div class="am-cf am-padding">
|
<div class="am-cf am-padding">
|
||||||
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目概算表</strong> / <small></small></div>
|
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目概算表</strong></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateAddSave">
|
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateAddSave">
|
||||||
|
@ -323,207 +323,27 @@
|
||||||
<!--选项卡(tabs)end-->
|
<!--选项卡(tabs)end-->
|
||||||
<div class="am-margin">
|
<div class="am-margin">
|
||||||
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
|
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
|
||||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs" onclick="javascript:$("#pmsForm").attr('action')='${base}/project/estimateSave';">保存草稿</button>
|
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveDraft">保存草稿</button>
|
||||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs" onclick="javascript:$("#pmsForm").attr('action')='${base}/project/estimateSaveAndApprove'">提交审核</button>
|
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script src="${base}/assets/js/project_estimate.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
$("input[name='incomeDeviceTaxInclude']").change(function () {
|
calIncomeAndCost();
|
||||||
calIncomeInclude();
|
$("#saveDraft").click(function () {
|
||||||
calIncomeCost();
|
$("#pmsForm").attr("action","${base}/project/estimateAddSave");
|
||||||
});
|
$("#pmsForm").submit();
|
||||||
$("input[name='incomeEngineerTaxInclude']").change(function () {
|
|
||||||
calIncomeInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeServiceTaxInclude']").change(function () {
|
|
||||||
calIncomeInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeDeviceTaxExclude']").change(function () {
|
|
||||||
calIncomeExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeEngineerTaxExclude']").change(function () {
|
|
||||||
calIncomeExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeServiceTaxExclude']").change(function () {
|
|
||||||
calIncomeExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$("input[name='costPurchaseDeviceTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
});
|
||||||
$("input[name='costPurchaseBuildTaxInclude']").change(function () {
|
$("#saveApprove").click(function () {
|
||||||
calCostInclude();
|
$("#pmsForm").attr("action","${base}/project/estimateAddSaveAndApprove");
|
||||||
calIncomeCost();
|
$("#pmsForm").submit();
|
||||||
});
|
|
||||||
$("input[name='costPurchaseServiceTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseOtherTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costProjectManageTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costOtherOtherTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
|
|
||||||
$("input[name='costPurchaseDeviceTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseBuildTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseServiceTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseOtherTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costProjectManageTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costOtherOtherTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$("input[name='costExpropriationTaxExclude']").change(function () {
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costCompanyManageTaxExclude']").change(function () {
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
|
||||||
* 统计收入(含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calIncomeInclude() {
|
|
||||||
var incomeDeviceTaxInclude = $("input[name='incomeDeviceTaxInclude']").val();
|
|
||||||
var incomeEngineerTaxInclude = $("input[name='incomeEngineerTaxInclude']").val();
|
|
||||||
var incomeServiceTaxInclude = $("input[name='incomeServiceTaxInclude']").val();
|
|
||||||
|
|
||||||
var incomeTotalTaxInclude = $("input[name='incomeTotalTaxInclude']");
|
|
||||||
|
|
||||||
if(incomeDeviceTaxInclude && incomeEngineerTaxInclude && incomeServiceTaxInclude){
|
|
||||||
incomeTotalTaxInclude.val(parseFloat(incomeDeviceTaxInclude)+parseFloat(incomeEngineerTaxInclude)+parseFloat(incomeServiceTaxInclude));
|
|
||||||
}else {
|
|
||||||
incomeTotalTaxInclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 统计收入(不含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calIncomeExclude() {
|
|
||||||
var incomeDeviceTaxExclude = $("input[name='incomeDeviceTaxExclude']").val();
|
|
||||||
var incomeEngineerTaxExclude = $("input[name='incomeEngineerTaxExclude']").val();
|
|
||||||
var incomeServiceTaxExclude = $("input[name='incomeServiceTaxExclude']").val();
|
|
||||||
|
|
||||||
var incomeTotalTaxExclude = $("input[name='incomeTotalTaxExclude']");
|
|
||||||
|
|
||||||
if(incomeDeviceTaxExclude && incomeEngineerTaxExclude && incomeServiceTaxExclude){
|
|
||||||
incomeTotalTaxExclude.val(parseFloat(incomeDeviceTaxExclude)+parseFloat(incomeEngineerTaxExclude)+parseFloat(incomeServiceTaxExclude));
|
|
||||||
}else {
|
|
||||||
incomeTotalTaxExclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 统计成本(含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calCostInclude() {
|
|
||||||
var costPurchaseDeviceTaxInclude = $("input[name='costPurchaseDeviceTaxInclude']").val();
|
|
||||||
var costPurchaseBuildTaxInclude = $("input[name='costPurchaseBuildTaxInclude']").val();
|
|
||||||
var costPurchaseServiceTaxInclude = $("input[name='costPurchaseServiceTaxInclude']").val();
|
|
||||||
var costPurchaseOtherTaxInclude = $("input[name='costPurchaseOtherTaxInclude']").val();
|
|
||||||
var costProjectManageTaxInclude = $("input[name='costProjectManageTaxInclude']").val();
|
|
||||||
var costOtherOtherTaxInclude = $("input[name='costOtherOtherTaxInclude']").val();
|
|
||||||
|
|
||||||
|
|
||||||
var costTotalTaxInclude = $("input[name='costTotalTaxInclude']");
|
|
||||||
|
|
||||||
if(costPurchaseDeviceTaxInclude && costPurchaseBuildTaxInclude && costPurchaseServiceTaxInclude && costPurchaseOtherTaxInclude && costProjectManageTaxInclude && costOtherOtherTaxInclude){
|
|
||||||
costTotalTaxInclude.val(parseFloat(costPurchaseDeviceTaxInclude)+parseFloat(costPurchaseBuildTaxInclude)+parseFloat(costPurchaseServiceTaxInclude)+parseFloat(costPurchaseOtherTaxInclude)+parseFloat(costProjectManageTaxInclude)+parseFloat(costOtherOtherTaxInclude));
|
|
||||||
}else {
|
|
||||||
costTotalTaxInclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 统计成本(不含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calCostExclude() {
|
|
||||||
var costPurchaseDeviceTaxExclude = $("input[name='costPurchaseDeviceTaxExclude']").val();
|
|
||||||
var costPurchaseBuildTaxExclude = $("input[name='costPurchaseBuildTaxExclude']").val();
|
|
||||||
var costPurchaseServiceTaxExclude = $("input[name='costPurchaseServiceTaxExclude']").val();
|
|
||||||
var costPurchaseOtherTaxExclude = $("input[name='costPurchaseOtherTaxExclude']").val();
|
|
||||||
var costProjectManageTaxExclude = $("input[name='costProjectManageTaxExclude']").val();
|
|
||||||
var costOtherOtherTaxExclude = $("input[name='costOtherOtherTaxExclude']").val();
|
|
||||||
|
|
||||||
|
|
||||||
var costTotalTaxExclude = $("input[name='costTotalTaxExclude']");
|
|
||||||
|
|
||||||
if(costPurchaseDeviceTaxExclude && costPurchaseBuildTaxExclude && costPurchaseServiceTaxExclude && costPurchaseOtherTaxExclude && costProjectManageTaxExclude && costOtherOtherTaxExclude){
|
|
||||||
costTotalTaxExclude.val(parseFloat(costPurchaseDeviceTaxExclude)+parseFloat(costPurchaseBuildTaxExclude)+parseFloat(costPurchaseServiceTaxExclude)+parseFloat(costPurchaseOtherTaxExclude)+parseFloat(costProjectManageTaxExclude)+parseFloat(costOtherOtherTaxExclude));
|
|
||||||
}else {
|
|
||||||
costTotalTaxExclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 计算毛利、毛利率、贡献、贡献率
|
|
||||||
*/
|
|
||||||
function calIncomeCost() {
|
|
||||||
var incomeTotalTaxExclude = $("input[name='incomeTotalTaxExclude']").val();
|
|
||||||
var costTotalTaxExclude = $("input[name='costTotalTaxExclude']").val();
|
|
||||||
var costExpropriationTaxExclude = $("input[name='costExpropriationTaxExclude']").val();
|
|
||||||
var costCompanyManageTaxExclude = $("input[name='costCompanyManageTaxExclude']").val();
|
|
||||||
|
|
||||||
var projectGrossProfit = $("input[name='projectGrossProfit']");
|
|
||||||
var projectGrossProfitRate = $("input[name='projectGrossProfitRate']");
|
|
||||||
var projectContributionProfit = $("input[name='projectContributionProfit']");
|
|
||||||
var projectContributionProfitRate = $("input[name='projectContributionProfitRate']");
|
|
||||||
|
|
||||||
if(incomeTotalTaxExclude && costTotalTaxExclude && costExpropriationTaxExclude){
|
|
||||||
projectGrossProfit.val(parseFloat(incomeTotalTaxExclude)-parseFloat(costTotalTaxExclude)-parseFloat(costExpropriationTaxExclude));
|
|
||||||
projectGrossProfitRate.val(parseFloat(projectGrossProfit.val())*100/parseFloat(incomeTotalTaxExclude));
|
|
||||||
}else {
|
|
||||||
projectGrossProfit.val("");
|
|
||||||
projectGrossProfitRate.val("");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(projectGrossProfit.val() && costCompanyManageTaxExclude){
|
|
||||||
projectContributionProfit.val(parseFloat(projectGrossProfit.val())-parseFloat(costCompanyManageTaxExclude));
|
|
||||||
projectContributionProfitRate.val(parseFloat(projectContributionProfit.val())*100/parseFloat(incomeTotalTaxExclude))
|
|
||||||
}else {
|
|
||||||
projectContributionProfit.val("");
|
|
||||||
projectContributionProfitRate.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</@defaultLayout.layout>
|
</@defaultLayout.layout>
|
||||||
|
|
||||||
|
|
|
@ -323,207 +323,26 @@
|
||||||
<!--选项卡(tabs)end-->
|
<!--选项卡(tabs)end-->
|
||||||
<div class="am-margin">
|
<div class="am-margin">
|
||||||
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
|
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
|
||||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs" onclick="javascript:$("#pmsForm").attr('action')='${base}/project/estimateSave';">保存草稿</button>
|
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveDraft">保存草稿</button>
|
||||||
<button type="submit" class="am-btn am-btn-primary am-btn-xs" onclick="javascript:$("#pmsForm").attr('action')='${base}/project/estimateSaveAndApprove'">提交审核</button>
|
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<script src="${base}/assets/js/project_estimate.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
$("input[name='incomeDeviceTaxInclude']").change(function () {
|
calIncomeAndCost();
|
||||||
calIncomeInclude();
|
$("#saveDraft").click(function () {
|
||||||
calIncomeCost();
|
$("#pmsForm").attr("action","${base}/project/estimateEditSave");
|
||||||
});
|
$("#pmsForm").submit();
|
||||||
$("input[name='incomeEngineerTaxInclude']").change(function () {
|
|
||||||
calIncomeInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeServiceTaxInclude']").change(function () {
|
|
||||||
calIncomeInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeDeviceTaxExclude']").change(function () {
|
|
||||||
calIncomeExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeEngineerTaxExclude']").change(function () {
|
|
||||||
calIncomeExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='incomeServiceTaxExclude']").change(function () {
|
|
||||||
calIncomeExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$("input[name='costPurchaseDeviceTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
});
|
||||||
$("input[name='costPurchaseBuildTaxInclude']").change(function () {
|
$("#saveApprove").click(function () {
|
||||||
calCostInclude();
|
$("#pmsForm").attr("action","${base}/project/estimateEditSaveAndApprove");
|
||||||
calIncomeCost();
|
$("#pmsForm").submit();
|
||||||
});
|
|
||||||
$("input[name='costPurchaseServiceTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseOtherTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costProjectManageTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costOtherOtherTaxInclude']").change(function () {
|
|
||||||
calCostInclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
|
|
||||||
$("input[name='costPurchaseDeviceTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseBuildTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseServiceTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costPurchaseOtherTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costProjectManageTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costOtherOtherTaxExclude']").change(function () {
|
|
||||||
calCostExclude();
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
$("input[name='costExpropriationTaxExclude']").change(function () {
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
|
||||||
$("input[name='costCompanyManageTaxExclude']").change(function () {
|
|
||||||
calIncomeCost();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
|
||||||
* 统计收入(含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calIncomeInclude() {
|
|
||||||
var incomeDeviceTaxInclude = $("input[name='incomeDeviceTaxInclude']").val();
|
|
||||||
var incomeEngineerTaxInclude = $("input[name='incomeEngineerTaxInclude']").val();
|
|
||||||
var incomeServiceTaxInclude = $("input[name='incomeServiceTaxInclude']").val();
|
|
||||||
|
|
||||||
var incomeTotalTaxInclude = $("input[name='incomeTotalTaxInclude']");
|
|
||||||
|
|
||||||
if(incomeDeviceTaxInclude && incomeEngineerTaxInclude && incomeServiceTaxInclude){
|
|
||||||
incomeTotalTaxInclude.val(parseFloat(incomeDeviceTaxInclude)+parseFloat(incomeEngineerTaxInclude)+parseFloat(incomeServiceTaxInclude));
|
|
||||||
}else {
|
|
||||||
incomeTotalTaxInclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 统计收入(不含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calIncomeExclude() {
|
|
||||||
var incomeDeviceTaxExclude = $("input[name='incomeDeviceTaxExclude']").val();
|
|
||||||
var incomeEngineerTaxExclude = $("input[name='incomeEngineerTaxExclude']").val();
|
|
||||||
var incomeServiceTaxExclude = $("input[name='incomeServiceTaxExclude']").val();
|
|
||||||
|
|
||||||
var incomeTotalTaxExclude = $("input[name='incomeTotalTaxExclude']");
|
|
||||||
|
|
||||||
if(incomeDeviceTaxExclude && incomeEngineerTaxExclude && incomeServiceTaxExclude){
|
|
||||||
incomeTotalTaxExclude.val(parseFloat(incomeDeviceTaxExclude)+parseFloat(incomeEngineerTaxExclude)+parseFloat(incomeServiceTaxExclude));
|
|
||||||
}else {
|
|
||||||
incomeTotalTaxExclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 统计成本(含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calCostInclude() {
|
|
||||||
var costPurchaseDeviceTaxInclude = $("input[name='costPurchaseDeviceTaxInclude']").val();
|
|
||||||
var costPurchaseBuildTaxInclude = $("input[name='costPurchaseBuildTaxInclude']").val();
|
|
||||||
var costPurchaseServiceTaxInclude = $("input[name='costPurchaseServiceTaxInclude']").val();
|
|
||||||
var costPurchaseOtherTaxInclude = $("input[name='costPurchaseOtherTaxInclude']").val();
|
|
||||||
var costProjectManageTaxInclude = $("input[name='costProjectManageTaxInclude']").val();
|
|
||||||
var costOtherOtherTaxInclude = $("input[name='costOtherOtherTaxInclude']").val();
|
|
||||||
|
|
||||||
|
|
||||||
var costTotalTaxInclude = $("input[name='costTotalTaxInclude']");
|
|
||||||
|
|
||||||
if(costPurchaseDeviceTaxInclude && costPurchaseBuildTaxInclude && costPurchaseServiceTaxInclude && costPurchaseOtherTaxInclude && costProjectManageTaxInclude && costOtherOtherTaxInclude){
|
|
||||||
costTotalTaxInclude.val(parseFloat(costPurchaseDeviceTaxInclude)+parseFloat(costPurchaseBuildTaxInclude)+parseFloat(costPurchaseServiceTaxInclude)+parseFloat(costPurchaseOtherTaxInclude)+parseFloat(costProjectManageTaxInclude)+parseFloat(costOtherOtherTaxInclude));
|
|
||||||
}else {
|
|
||||||
costTotalTaxInclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 统计成本(不含税),有一项没填就置空
|
|
||||||
*/
|
|
||||||
function calCostExclude() {
|
|
||||||
var costPurchaseDeviceTaxExclude = $("input[name='costPurchaseDeviceTaxExclude']").val();
|
|
||||||
var costPurchaseBuildTaxExclude = $("input[name='costPurchaseBuildTaxExclude']").val();
|
|
||||||
var costPurchaseServiceTaxExclude = $("input[name='costPurchaseServiceTaxExclude']").val();
|
|
||||||
var costPurchaseOtherTaxExclude = $("input[name='costPurchaseOtherTaxExclude']").val();
|
|
||||||
var costProjectManageTaxExclude = $("input[name='costProjectManageTaxExclude']").val();
|
|
||||||
var costOtherOtherTaxExclude = $("input[name='costOtherOtherTaxExclude']").val();
|
|
||||||
|
|
||||||
|
|
||||||
var costTotalTaxExclude = $("input[name='costTotalTaxExclude']");
|
|
||||||
|
|
||||||
if(costPurchaseDeviceTaxExclude && costPurchaseBuildTaxExclude && costPurchaseServiceTaxExclude && costPurchaseOtherTaxExclude && costProjectManageTaxExclude && costOtherOtherTaxExclude){
|
|
||||||
costTotalTaxExclude.val(parseFloat(costPurchaseDeviceTaxExclude)+parseFloat(costPurchaseBuildTaxExclude)+parseFloat(costPurchaseServiceTaxExclude)+parseFloat(costPurchaseOtherTaxExclude)+parseFloat(costProjectManageTaxExclude)+parseFloat(costOtherOtherTaxExclude));
|
|
||||||
}else {
|
|
||||||
costTotalTaxExclude.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 计算毛利、毛利率、贡献、贡献率
|
|
||||||
*/
|
|
||||||
function calIncomeCost() {
|
|
||||||
var incomeTotalTaxExclude = $("input[name='incomeTotalTaxExclude']").val();
|
|
||||||
var costTotalTaxExclude = $("input[name='costTotalTaxExclude']").val();
|
|
||||||
var costExpropriationTaxExclude = $("input[name='costExpropriationTaxExclude']").val();
|
|
||||||
var costCompanyManageTaxExclude = $("input[name='costCompanyManageTaxExclude']").val();
|
|
||||||
|
|
||||||
var projectGrossProfit = $("input[name='projectGrossProfit']");
|
|
||||||
var projectGrossProfitRate = $("input[name='projectGrossProfitRate']");
|
|
||||||
var projectContributionProfit = $("input[name='projectContributionProfit']");
|
|
||||||
var projectContributionProfitRate = $("input[name='projectContributionProfitRate']");
|
|
||||||
|
|
||||||
if(incomeTotalTaxExclude && costTotalTaxExclude && costExpropriationTaxExclude){
|
|
||||||
projectGrossProfit.val(parseFloat(incomeTotalTaxExclude)-parseFloat(costTotalTaxExclude)-parseFloat(costExpropriationTaxExclude));
|
|
||||||
projectGrossProfitRate.val(parseFloat(projectGrossProfit.val())*100/parseFloat(incomeTotalTaxExclude));
|
|
||||||
}else {
|
|
||||||
projectGrossProfit.val("");
|
|
||||||
projectGrossProfitRate.val("");
|
|
||||||
}
|
|
||||||
|
|
||||||
if(projectGrossProfit.val() && costCompanyManageTaxExclude){
|
|
||||||
projectContributionProfit.val(parseFloat(projectGrossProfit.val())-parseFloat(costCompanyManageTaxExclude));
|
|
||||||
projectContributionProfitRate.val(parseFloat(projectContributionProfit.val())*100/parseFloat(incomeTotalTaxExclude))
|
|
||||||
}else {
|
|
||||||
projectContributionProfit.val("");
|
|
||||||
projectContributionProfitRate.val("");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
</script>
|
||||||
</@defaultLayout.layout>
|
</@defaultLayout.layout>
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,6 @@
|
||||||
<div class="am-u-sm-10">
|
<div class="am-u-sm-10">
|
||||||
<select data-am-selected id="status" name="status">
|
<select data-am-selected id="status" name="status">
|
||||||
<option value="-1">全部</option>
|
<option value="-1">全部</option>
|
||||||
<option value="0" <#if status?? && status='0'>selected</#if>>草稿</option>
|
|
||||||
<option value="1" <#if status?? && status='1'>selected</#if>>项目创建</option>
|
<option value="1" <#if status?? && status='1'>selected</#if>>项目创建</option>
|
||||||
<option value="5" <#if status?? && status='5'>selected</#if>>概算完成</option>
|
<option value="5" <#if status?? && status='5'>selected</#if>>概算完成</option>
|
||||||
<option value="10" <#if status?? && status='10'>selected</#if>>预算完成</option>
|
<option value="10" <#if status?? && status='10'>selected</#if>>预算完成</option>
|
||||||
|
@ -78,9 +77,10 @@
|
||||||
<div class="am-u-sm-10">
|
<div class="am-u-sm-10">
|
||||||
<select data-am-selected id="approveStatus" name="approveStatus">
|
<select data-am-selected id="approveStatus" name="approveStatus">
|
||||||
<option value="-1">全部</option>
|
<option value="-1">全部</option>
|
||||||
<option value="0" <#if approveStatus?? && approveStatus='0'>selected</#if>>待审核</option>
|
<option value="0" <#if approveStatus?? && approveStatus='0'>selected</#if>>草稿</option>
|
||||||
<option value="1" <#if approveStatus?? && approveStatus='1'>selected</#if>>审核通过</option>
|
<option value="1" <#if approveStatus?? && approveStatus='1'>selected</#if>>待审核</option>
|
||||||
<option value="2" <#if approveStatus?? && approveStatus='2'>selected</#if>>审核不通过</option>
|
<option value="2" <#if approveStatus?? && approveStatus='2'>selected</#if>>审核通过</option>
|
||||||
|
<option value="3" <#if approveStatus?? && approveStatus='3'>selected</#if>>审核不通过</option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|
Loading…
Reference in New Issue