Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dev
王晓迪 3 months ago
parent
commit
75d9d9c3b1
  1. 4
      ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialReceivablesController.java
  2. 44
      ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialTaxInvoiceController.java
  3. 2
      ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java
  4. 62
      ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java
  5. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderChildController.java
  6. 18
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java
  7. 92
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSupplier.java
  8. 1
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysSalesOrderChildMapper.java
  9. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderChildService.java
  10. 5
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderChildServiceImpl.java
  11. 28
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java
  12. BIN
      ruoyi-admin/src/main/resources/attachments/FinancialReceiptVoucherTemplate.xlsx
  13. 1
      ruoyi-admin/src/main/resources/mapper/financial/FinancialReceivablesRecordsMapper.xml
  14. 16
      ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml
  15. 53
      ruoyi-admin/src/main/resources/mapper/system/SysSupplierMapper.xml
  16. 247
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.css
  17. 1275
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.js
  18. 6
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.css
  19. 6
      ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.js
  20. 0
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmb.html
  21. 0
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmbDetail.html
  22. 0
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsd.html
  23. 2
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsdDetail.html
  24. 334
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceRmbDetail.html
  25. 330
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceUsdDetail.html
  26. 14
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/taxInvoice.html
  27. 2
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmb.html
  28. 101
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmbDetail.html
  29. 8
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsd.html
  30. 529
      ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsdDetail.html
  31. 14
      ruoyi-admin/src/main/resources/templates/include.html
  32. 1
      ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html
  33. 16
      ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html
  34. 12
      ruoyi-admin/src/main/resources/templates/system/salesOrder/detail.html
  35. 19
      ruoyi-admin/src/main/resources/templates/system/salesOrder/edit.html
  36. 2
      ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html
  37. 12
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskModifyApply.html
  38. 17
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwjlVerify.html
  39. 18
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwzgVerify.html
  40. 18
      ruoyi-admin/src/main/resources/templates/system/salesOrder/taskZozjVerify.html
  41. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/add.html
  42. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/detail.html
  43. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/edit.html
  44. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/taskCgjlVerify.html
  45. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/taskCgzgVerify.html
  46. 48
      ruoyi-admin/src/main/resources/templates/system/supplier/taskModifyApply.html

4
ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialReceivablesController.java

@ -154,12 +154,12 @@ public class FinancialReceivablesController extends BaseController
public void excelReceivablesVoucher(@PathVariable("financialReceivablesId") Long financialReceivablesId,HttpServletResponse response) throws IOException { public void excelReceivablesVoucher(@PathVariable("financialReceivablesId") Long financialReceivablesId,HttpServletResponse response) throws IOException {
FinancialReceivables financialReceivables = financialReceivablesService.selectFinancialReceivablesById(financialReceivablesId); FinancialReceivables financialReceivables = financialReceivablesService.selectFinancialReceivablesById(financialReceivablesId);
financialReceivablesService.exportTemplate(financialReceivablesId);
// 模版位置 // 模版位置
String name = "FinancialReceiptVoucherTemplate.xlsx"; String name = "FinancialReceiptVoucherTemplate.xlsx";
// 设置响应头,指定文件名和文件类型 // 设置响应头,指定文件名和文件类型
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("FinancialReceiptVoucher.xlsx", "UTF-8")); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("attachments/FinancialReceiptVoucher.xlsx", "UTF-8"));
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
InputStream inputStream = null; InputStream inputStream = null;

44
ruoyi-admin/src/main/java/com/ruoyi/financial/controller/FinancialTaxInvoiceController.java

@ -102,9 +102,9 @@ public class FinancialTaxInvoiceController extends BaseController
String commonCurrency = taxInvoice.getCommonCurrency(); String commonCurrency = taxInvoice.getCommonCurrency();
mmap.put("taxInvoice", taxInvoice); mmap.put("taxInvoice", taxInvoice);
if ("1".equals(commonCurrency)){ if ("1".equals(commonCurrency)){
return prefix + "/auditInvoiceRMB"; return prefix + "/auditInvoiceRmb";
}else { }else {
return prefix + "/auditInvoiceUSD"; return prefix + "/auditInvoiceUsd";
} }
} }
@ -133,9 +133,9 @@ public class FinancialTaxInvoiceController extends BaseController
String commonCurrency = taxInvoice.getCommonCurrency(); String commonCurrency = taxInvoice.getCommonCurrency();
mmap.put("taxInvoice", taxInvoice); mmap.put("taxInvoice", taxInvoice);
if ("1".equals(commonCurrency)){ if ("1".equals(commonCurrency)){
return prefix + "/uploadInvoiceRMB"; return prefix + "/uploadInvoiceRmb";
}else { }else {
return prefix + "/uploadInvoiceUSD"; return prefix + "/uploadInvoiceUsd";
} }
} }
@ -163,9 +163,9 @@ public class FinancialTaxInvoiceController extends BaseController
FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceById(taxInvoiceId); FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceById(taxInvoiceId);
mmap.put("taxInvoice", taxInvoice); mmap.put("taxInvoice", taxInvoice);
if ("1".equals(taxInvoice.getCommonCurrency())){ if ("1".equals(taxInvoice.getCommonCurrency())){
return prefix + "/auditInvoiceRMBDetail"; return prefix + "/auditInvoiceRmbDetail";
}else { }else {
return prefix + "/auditInvoiceUSDDetail"; return prefix + "/auditInvoiceUsdDetail";
} }
} }
@ -190,9 +190,9 @@ public class FinancialTaxInvoiceController extends BaseController
FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceWithAttachById(taxInvoiceId); FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceWithAttachById(taxInvoiceId);
mmap.put("taxInvoice", taxInvoice); mmap.put("taxInvoice", taxInvoice);
if ("1".equals(taxInvoice.getCommonCurrency())){ if ("1".equals(taxInvoice.getCommonCurrency())){
return prefix + "/uploadInvoiceRMBDetail"; return prefix + "/uploadInvoiceRmbDetail";
}else { }else {
return prefix + "/uploadInvoiceUSDDetail"; return prefix + "/uploadInvoiceUsdDetail";
} }
} }
@ -210,6 +210,34 @@ public class FinancialTaxInvoiceController extends BaseController
} }
/**
* 国税发票待审核详情
*/
@GetMapping("/beforeAuditInvoiceDetail/{taxInvoiceId}")
public String beforeAuditInvoiceDetail(@PathVariable("taxInvoiceId") Long taxInvoiceId, ModelMap mmap){
FinancialTaxInvoice taxInvoice = financialTaxInvoiceService.selectFinancialTaxInvoiceById(taxInvoiceId);
mmap.put("taxInvoice", taxInvoice);
if ("1".equals(taxInvoice.getCommonCurrency())){
return prefix + "/beforeAuditInvoiceRmbDetail";
}else {
return prefix + "/beforeAuditInvoiceUsdDetail";
}
}
/**
* 保存国税发票待审核详情
*/
@Log(title = "国税发票", businessType = BusinessType.UPDATE)
@PostMapping("/beforeAuditInvoiceDetail")
@ResponseBody
public AjaxResult beforeAuditInvoiceDetailSave(FinancialTaxInvoice financialTaxInvoice)
{
return toAjax(financialTaxInvoiceService.detailFinancialTaxInvoice(financialTaxInvoice));
}
/** /**
* 国税发票物料列表展示 * 国税发票物料列表展示
*/ */

2
ruoyi-admin/src/main/java/com/ruoyi/financial/service/IFinancialReceivablesService.java

@ -94,4 +94,6 @@ public interface IFinancialReceivablesService
* 查询导出收款凭证 * 查询导出收款凭证
*/ */
Map<String, Object> exportReceivables(FinancialReceivables financialReceivables); Map<String, Object> exportReceivables(FinancialReceivables financialReceivables);
Map<String,Object> exportTemplate(Long financialReceivablesId);
} }

62
ruoyi-admin/src/main/java/com/ruoyi/financial/service/impl/FinancialReceivablesServiceImpl.java

@ -3,10 +3,7 @@ package com.ruoyi.financial.service.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
@ -21,6 +18,7 @@ import com.ruoyi.system.mapper.SysCustomerMapper;
import com.ruoyi.system.mapper.SysSalesOrderMapper; import com.ruoyi.system.mapper.SysSalesOrderMapper;
import com.ruoyi.system.service.ISysSalesOrderService; import com.ruoyi.system.service.ISysSalesOrderService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.financial.mapper.FinancialReceivablesMapper; import com.ruoyi.financial.mapper.FinancialReceivablesMapper;
@ -28,6 +26,7 @@ import com.ruoyi.financial.domain.FinancialReceivables;
import com.ruoyi.financial.service.IFinancialReceivablesService; import com.ruoyi.financial.service.IFinancialReceivablesService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.thymeleaf.util.NumberUtils;
/** /**
* 财务应收账款Service业务层处理 * 财务应收账款Service业务层处理
@ -294,7 +293,6 @@ public class FinancialReceivablesServiceImpl implements IFinancialReceivablesSer
if (StringUtils.isEmpty(maxCode)) { if (StringUtils.isEmpty(maxCode)) {
return prefix + "001"; return prefix + "001";
} }
// 解析并递增编号 // 解析并递增编号
int sequence = Integer.parseInt(maxCode.substring(4)) + 1; // 假设前4位为固定部分 int sequence = Integer.parseInt(maxCode.substring(4)) + 1; // 假设前4位为固定部分
@ -308,4 +306,58 @@ public class FinancialReceivablesServiceImpl implements IFinancialReceivablesSer
return prefix + df.format(sequence); return prefix + df.format(sequence);
} }
/*设置导出模板数据*/
@Override
public Map<String, Object> exportTemplate(Long id) throws NoSuchBeanDefinitionException {
Map<String, Object> map = new HashMap<>();
//需要传输导出的值有:借方科目,开户银行,年,月,日,
//凭证信息批量:包含收款摘要,金额字符串截取,位数从亿开始,亿,千万,百万,十万,万,千,百,十,元,角,分。小数点后俩位为角,分,小数点不需要显示,
//将以上信息通过map传输出去
FinancialReceivables financialReceivables = financialReceivablesMapper.selectFinancialReceivablesById(id);
List<Map<String, Object>> financialReceivablesRecordsAmountList = new ArrayList<>();
//接收拆分的数字
FinancialReceivablesRecords financialReceivablesRecords = new FinancialReceivablesRecords();
List<FinancialReceivablesRecords> financialReceivablesRecordsList = receivablesRecordsMapper.selectFinancialReceivablesRecordsListByCode(financialReceivables.getFinancialReceivablesCode());
for (FinancialReceivablesRecords financialReceivablesRecord : financialReceivablesRecordsList) {
}
return map;
}
/*切割返回数字*/
public Map<String, Object> splitNumber(FinancialReceivablesRecords financialReceivablesRecord) {
Map<String, Object> map = new HashMap<>();
/*获取当前传输过来的*/
Map<String, Object> map1 = new HashMap<>();
List<String> result = new ArrayList<>();
List<String> units = Arrays.asList("亿", "千万", "百万", "十万", "万", "千", "百", "十", "元", "角", "分");
List<String> unitKey = Arrays.asList("fen", "jiao", "yuan", "shi", "bai", "qian", "wan", "shiw", "baiw", "qianw", "yi");
BigDecimal amount = financialReceivablesRecord.getReceivablesPrice().setScale(2, BigDecimal.ROUND_HALF_UP);
String integerPart = amount.toBigInteger().toString(); // 获取整数部分
String decimalPart = amount.remainder(BigDecimal.ONE).multiply(new BigDecimal(100)).toBigInteger().toString(); // 获取小数部分(角分)
int unitIndex = 0;
for (int i = integerPart.length() - 1; i >= 0; i--) {
char digit = integerPart.charAt(i);
if (digit != '0' || !units.get(unitIndex).isEmpty()) {result.add(0, String.valueOf(digit));}
unitIndex++;
if (unitIndex == units.size()) {unitIndex = 0;}
}
// Adding decimal part
if (decimalPart.length() < 2) {decimalPart += "0";}
result.add(decimalPart.substring(0, 1));
result.add(decimalPart.substring(1, 2));
/*根据长度设备map中的Stirng参数,调用对等获取实现map*/
for (int i = 0; i < result.size(); i++) {
String unitKeyValue = unitKey.get(result.size() - i);
map1.put(unitKeyValue,result.get(i));
}
for (int j = result.size() - 1 ; j < unitKey.size(); j ++){
map1.put(unitKey.get(j),"");
}
//收款摘要
map.put("receivablesAbstract",financialReceivablesRecord.getReceivablesAbstract());
//金额对象
map.put("receivablesPrice",map1);
return map;
}
} }

2
ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderChildController.java

@ -46,7 +46,7 @@ public class SysSalesOrderChildController extends BaseController
public TableDataInfo list(SysSalesOrderChild SysSalesOrderChild) public TableDataInfo list(SysSalesOrderChild SysSalesOrderChild)
{ {
startPage(); startPage();
List<SysSalesOrderChild> list = SysSalesOrderChildService.selectSysSalesOrderChildList(SysSalesOrderChild); List<SysSalesOrderChild> list = SysSalesOrderChildService.selectSysSalesOrderChildListAll(SysSalesOrderChild);
return getDataTable(list); return getDataTable(list);
} }

18
ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysSalesOrderController.java

@ -7,6 +7,7 @@ import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.fill.FillConfig; import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.Page;
import com.ruoyi.ck.utils.Result; import com.ruoyi.ck.utils.Result;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.config.RuoYiConfig;
@ -17,6 +18,7 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUploadUtils; import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils; import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
@ -46,6 +48,7 @@ import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -124,6 +127,21 @@ public class SysSalesOrderController extends BaseController
public TableDataInfo list(SysSalesOrderVo sysSalesOrderVo) public TableDataInfo list(SysSalesOrderVo sysSalesOrderVo)
{ {
startPage(); startPage();
SysUser curUser = ShiroUtils.getSysUser();
String loginName = ShiroUtils.getLoginName();
Long userId = curUser.getUserId();
Set<String> roleKeys = roleService.selectRoleKeys(userId);
List<SysUser> sysUserlist = sysUserService.selectRoleToUserList("ywyRole");
sysUserlist.add(curUser);
if (roleKeys.contains("ywjlRole")) {
List<SysUser> findUser = sysUserlist.stream().filter(item -> (item.getDeptId().equals(curUser.getDeptId()))).collect(Collectors.toList());
List<String> user = findUser.stream().map(SysUser::getLoginName).collect(Collectors.toList());
// String userStr = String.join(",", user);
sysSalesOrderVo.setApplyUsers(user);
}
if (roleKeys.contains("ywyRole")) {
sysSalesOrderVo.setApplyUser(loginName);
}
List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderList(sysSalesOrderVo); List<SysSalesOrderVo> list = sysSalesOrderService.selectSysSalesOrderList(sysSalesOrderVo);
return getDataTable(list); return getDataTable(list);
} }

92
ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSupplier.java

@ -125,6 +125,12 @@ public class SysSupplier extends BaseEntity
@Excel(name = "开户银行账号") @Excel(name = "开户银行账号")
private String bankAccount; private String bankAccount;
@Excel(name="开票公司名称")
private String invoiceCompanyName;
@Excel(name="开票公司税号")
private String companyTaxNumber;
/** RMB注册资金 */ /** RMB注册资金 */
@Excel(name = "RMB注册资金") @Excel(name = "RMB注册资金")
private String rmbRegisteredCapital; private String rmbRegisteredCapital;
@ -153,6 +159,21 @@ public class SysSupplier extends BaseEntity
@Excel(name = "税率") @Excel(name = "税率")
private String taxRate; private String taxRate;
@Excel(name = "发货人")
private String deliverPerson;
@Excel(name = "发货人电话")
private String deliverPersonPhone;
@Excel(name = "发货地址")
private String deliverAddress;
@Excel(name = "收货人")
private String receivePerson;
@Excel(name = "收货人电话")
private String receivePersonPhone;
@Excel(name = "收货地址")
private String receiveAddress;
/** 流程实例ID */ /** 流程实例ID */
private String instanceId; private String instanceId;
@ -635,7 +656,69 @@ public class SysSupplier extends BaseEntity
return taxRate; return taxRate;
} }
public String getInvoiceCompanyName() {
return invoiceCompanyName;
}
public void setInvoiceCompanyName(String invoiceCompanyName) {
invoiceCompanyName = invoiceCompanyName;
}
public String getCompanyTaxNumber() {
return companyTaxNumber;
}
public void setCompanyTaxNumber(String companyTaxNumber) {
this.companyTaxNumber = companyTaxNumber;
}
public String getDeliverPerson() {
return deliverPerson;
}
public void setDeliverPerson(String deliverPerson) {
this.deliverPerson = deliverPerson;
}
public String getDeliverPersonPhone() {
return deliverPersonPhone;
}
public void setDeliverPersonPhone(String deliverPersonPhone) {
this.deliverPersonPhone = deliverPersonPhone;
}
public String getDeliverAddress() {
return deliverAddress;
}
public void setDeliverAddress(String deliverAddress) {
this.deliverAddress = deliverAddress;
}
public String getReceivePerson() {
return receivePerson;
}
public void setReceivePerson(String receivePerson) {
this.receivePerson = receivePerson;
}
public String getReceivePersonPhone() {
return receivePersonPhone;
}
public void setReceivePersonPhone(String receivePersonPhone) {
this.receivePersonPhone = receivePersonPhone;
}
public String getReceiveAddress() {
return receiveAddress;
}
public void setReceiveAddress(String receiveAddress) {
this.receiveAddress = receiveAddress;
}
@Override @Override
public String toString() { public String toString() {
@ -672,6 +755,15 @@ public class SysSupplier extends BaseEntity
.append("financialContact", getFinancialContact()) .append("financialContact", getFinancialContact())
.append("confirmTax", getConfirmTax()) .append("confirmTax", getConfirmTax())
.append("taxRate", getTaxRate()) .append("taxRate", getTaxRate())
.append("InvoiceCompanyName", getInvoiceCompanyName())
.append("companyTaxNumber", getCompanyTaxNumber())
.append("deliverPerson", getDeliverPerson())
.append("deliverPersonPhone", getDeliverPersonPhone())
.append("deliverAddress", getDeliverAddress())
.append("receivePerson", getReceivePerson())
.append("receivePersonPhone", getReceivePersonPhone())
.append("receiveAddress",getReceiveAddress())
.toString(); .toString();
} }
} }

1
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysSalesOrderChildMapper.java

@ -10,6 +10,7 @@ import java.util.List;
public interface SysSalesOrderChildMapper { public interface SysSalesOrderChildMapper {
List<SysSalesOrderChild> selectSysSalesOrderChildList(SysSalesOrderChild sysCustomerQuoteChild); List<SysSalesOrderChild> selectSysSalesOrderChildList(SysSalesOrderChild sysCustomerQuoteChild);
List<SysSalesOrderChild> selectSysSalesOrderChildListAll(SysSalesOrderChild sysCustomerQuoteChild);
int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild); int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild);
SysSalesOrderChild selectSysSalesOrderChildById(Long id); SysSalesOrderChild selectSysSalesOrderChildById(Long id);

2
ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysSalesOrderChildService.java

@ -8,6 +8,8 @@ import java.util.List;
public interface ISysSalesOrderChildService { public interface ISysSalesOrderChildService {
List<SysSalesOrderChild> selectSysSalesOrderChildList(SysSalesOrderChild sysCustomerQuoteChild); List<SysSalesOrderChild> selectSysSalesOrderChildList(SysSalesOrderChild sysCustomerQuoteChild);
List<SysSalesOrderChild> selectSysSalesOrderChildListAll(SysSalesOrderChild sysCustomerQuoteChild);
int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild); int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild);
SysSalesOrderChild selectSysSalesOrderChildById(Long id); SysSalesOrderChild selectSysSalesOrderChildById(Long id);

5
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderChildServiceImpl.java

@ -16,7 +16,10 @@ public class SysSalesOrderChildServiceImpl implements ISysSalesOrderChildService
public List<SysSalesOrderChild> selectSysSalesOrderChildList (SysSalesOrderChild sysCustomerQuoteChild) { public List<SysSalesOrderChild> selectSysSalesOrderChildList (SysSalesOrderChild sysCustomerQuoteChild) {
return sysCustomerQuoteChildMapper.selectSysSalesOrderChildList(sysCustomerQuoteChild); return sysCustomerQuoteChildMapper.selectSysSalesOrderChildList(sysCustomerQuoteChild);
} }
@Override
public List<SysSalesOrderChild> selectSysSalesOrderChildListAll (SysSalesOrderChild sysCustomerQuoteChild) {
return sysCustomerQuoteChildMapper.selectSysSalesOrderChildListAll(sysCustomerQuoteChild);
}
@Override @Override
public int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild) { public int insertSysSalesOrderChild(SysSalesOrderChild sysCustomerQuoteChild) {
return sysCustomerQuoteChildMapper.insertSysSalesOrderChild(sysCustomerQuoteChild); return sysCustomerQuoteChildMapper.insertSysSalesOrderChild(sysCustomerQuoteChild);

28
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesOrderServiceImpl.java

@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.core.page.TableSupport;
@ -122,31 +123,17 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
@Override @Override
public List<SysSalesOrderVo> selectSysSalesOrderList(SysSalesOrderVo sysSalesOrderVo1) public List<SysSalesOrderVo> selectSysSalesOrderList(SysSalesOrderVo sysSalesOrderVo1)
{ {
//PageHelper 仅对第一List分页有效
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum(); Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize(); Integer pageSize = pageDomain.getPageSize();
SysUser curUser = ShiroUtils.getSysUser(); PageHelper.startPage(pageNum, pageSize);
String loginName = ShiroUtils.getLoginName();
Long userId = curUser.getUserId();
Page<SysSalesOrderVo> returnList = new Page<>();
//PageHelper 仅对第一List分页有效 //PageHelper 仅对第一List分页有效
Page<SysSalesOrderVo> list = (Page<SysSalesOrderVo>) sysSalesOrderMapper.selectSysSalesOrderList(sysSalesOrderVo1); Page<SysSalesOrderVo> list = (Page<SysSalesOrderVo>) sysSalesOrderMapper.selectSysSalesOrderList(sysSalesOrderVo1);
Set<String> roleKeys = roleService.selectRoleKeys(userId); Page<SysSalesOrderVo> returnList = new Page<>();
List<SysUser> sysUserlist = sysUserService.selectRoleToUserList("ywyRole");
sysUserlist.add(curUser);
//如果主管审批,查看当前自己部门的审核 //如果主管审批,查看当前自己部门的审核
//如果经理审计需要查询自己部门下所有业务员的提交的订单,以及自身的提交的订单 //如果经理审计需要查询自己部门下所有业务员的提交的订单,以及自身的提交的订单
if (roleKeys.contains("ywjlRole")) {
List<SysUser> findUser = sysUserlist.stream().filter(item -> (item.getDeptId().equals(curUser.getDeptId()))).collect(Collectors.toList());
List<String> user = findUser.stream().map(SysUser::getLoginName).collect(Collectors.toList());
String userStr = String.join(",", user);
sysSalesOrderVo1.setApplyUsers(user);
list = (Page<SysSalesOrderVo>) sysSalesOrderMapper.selectSysSalesOrderList(sysSalesOrderVo1);
}
if (roleKeys.contains("ywyRole")) {
sysSalesOrderVo1.setApplyUser(curUser.getLoginName());
list = (Page<SysSalesOrderVo>) list.stream().filter(item -> item.getApplyUser().equals(curUser.getLoginName())).collect(Collectors.toList());
}
for(SysSalesOrderVo sysSalesOrderVo : list){ for(SysSalesOrderVo sysSalesOrderVo : list){
SysUser sysUser = userMapper.selectUserByLoginName(sysSalesOrderVo.getCreateBy()); SysUser sysUser = userMapper.selectUserByLoginName(sysSalesOrderVo.getCreateBy());
if (sysUser != null) { if (sysUser != null) {
@ -250,8 +237,9 @@ public class SysSalesOrderServiceImpl implements ISysSalesOrderService
sysSalesOrderChildService.insertSysSalesOrderChild(sysSalesOrderChild); sysSalesOrderChildService.insertSysSalesOrderChild(sysSalesOrderChild);
} }
} }
int result = sysSalesOrderMapper.updateSysSalesOrder(sysSalesOrder); return sysSalesOrderMapper.updateSysSalesOrder(sysSalesOrder);
return result;
} }
/** /**
* 删除销售订单对象 * 删除销售订单对象

BIN
ruoyi-admin/src/main/resources/FinancialReceiptVoucherTemplate.xlsx → ruoyi-admin/src/main/resources/attachments/FinancialReceiptVoucherTemplate.xlsx

Binary file not shown.

1
ruoyi-admin/src/main/resources/mapper/financial/FinancialReceivablesRecordsMapper.xml

@ -27,6 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectFinancialReceivablesRecordsList" parameterType="FinancialReceivablesRecords" resultMap="FinancialReceivablesRecordsResult"> <select id="selectFinancialReceivablesRecordsList" parameterType="FinancialReceivablesRecords" resultMap="FinancialReceivablesRecordsResult">
<include refid="selectFinancialReceivablesRecordsVo"/> <include refid="selectFinancialReceivablesRecordsVo"/>
<where> <where>
financial_receivables_code = #{financialReceivablesCode}
</where> </where>
</select> </select>

16
ruoyi-admin/src/main/resources/mapper/system/SysSalesOrderChildMapper.xml

@ -68,7 +68,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
order by a.id desc order by a.id desc
</select> </select>
<select id="selectSysSalesOrderChildListAll" parameterType="SysSalesOrderChild" resultMap="SysSalesOrderChildResult">
select id, quoteId, materialId, materialCode, materialName, materialType, processMethod, brand, photoUrl,unit, `describe`,
warehouseDept,countTax, usdTax, materialNum,materialSole, materialRmb, materialNoRmb, materialNoUsd, materialUsd, materialUsdSum,
materialNoUsdSum, materialNoRmbSum, materialRmbSum,delivery_time, expiry_day,
out_bound_quantity, un_bound_quantity, create_by, create_time, update_by,
update_time, remark, use_status,audit_status
from sys_sales_order_child
<where>
<if test="quoteId != null and quoteId !='' "> and quoteId = #{quoteId}</if>
<if test="materialId != null "> and materialId = #{materialId}</if>
<if test="materialCode != null and materialCode != ''"> and materialCode like concat('%', #{materialCode}, '%')</if>
<if test="materialName != null and materialName != ''"> and materialName like concat('%', #{materialName}, '%')</if>
</where>
order by create_time desc
</select>
<select id="selectSysSalesOrderChildById" parameterType="Long" resultMap="SysSalesOrderChildResult"> <select id="selectSysSalesOrderChildById" parameterType="Long" resultMap="SysSalesOrderChildResult">
<include refid="selectSysSalesOrderChild"/> <include refid="selectSysSalesOrderChild"/>
where a.id = #{id} where a.id = #{id}

53
ruoyi-admin/src/main/resources/mapper/system/SysSupplierMapper.xml

@ -34,6 +34,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="exchangeSettlementAccount" column="exchange_settlement_account"/> <result property="exchangeSettlementAccount" column="exchange_settlement_account"/>
<result property="depositBank" column="deposit_bank" /> <result property="depositBank" column="deposit_bank" />
<result property="bankAccount" column="bank_account" /> <result property="bankAccount" column="bank_account" />
<result property="invoiceCompanyName" column="invoice_company_name" />
<result property="companyTaxNumber" column="company_tax_number" />
<result property="rmbRegisteredCapital" column="rmb_registered_capital" /> <result property="rmbRegisteredCapital" column="rmb_registered_capital" />
<result property="industryCode" column="Industry_code" /> <result property="industryCode" column="Industry_code" />
<result property="merchandiser" column="merchandiser" /> <result property="merchandiser" column="merchandiser" />
@ -41,6 +43,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="financialContact" column="financial_contact" /> <result property="financialContact" column="financial_contact" />
<result property="confirmTax" column="confirm_tax" /> <result property="confirmTax" column="confirm_tax" />
<result property="taxRate" column="tax_rate" /> <result property="taxRate" column="tax_rate" />
<result property="receivePerson" column="receive_person" />
<result property="receivePersonPhone" column="receive_person_phone" />
<result property="receiveAddress" column="receive_address" />
<result property="photoAttachId" column="photo_attach_id" /> <result property="photoAttachId" column="photo_attach_id" />
<result property="photoUrl" column="photo_url" /> <result property="photoUrl" column="photo_url" />
<result property="createBy" column="create_by" /> <result property="createBy" column="create_by" />
@ -67,9 +72,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
legal_representative, customer_contact, contact_number, customer_fax, legal_representative, customer_contact, contact_number, customer_fax,
customer_email, website, payment_terms, supplier_days, actual_payment_days, customer_email, website, payment_terms, supplier_days, actual_payment_days,
settlement_bank, exchange_settlement_account, deposit_bank, bank_account, settlement_bank, exchange_settlement_account, deposit_bank, bank_account,
rmb_registered_capital, Industry_code, merchandiser, merchandiser_telephone, invoice_company_name, company_tax_number,rmb_registered_capital, Industry_code,
financial_contact, confirm_tax, tax_rate, create_by, merchandiser, merchandiser_telephone,financial_contact, confirm_tax, tax_rate,
create_time, update_by, update_time, remark, receive_person, receive_person_phone, receive_address,
create_by,create_time, update_by, update_time, remark,
instance_type, instance_id, restore_instance_id, cancel_instance_id, submit_instance_id, instance_type, instance_id, restore_instance_id, cancel_instance_id, submit_instance_id,
apply_title, apply_user, apply_time,del_flag apply_title, apply_user, apply_time,del_flag
from sys_supplier from sys_supplier
@ -83,8 +89,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sup.legal_representative, sup.customer_contact, sup.contact_number, sup.customer_fax, sup.legal_representative, sup.customer_contact, sup.contact_number, sup.customer_fax,
sup.customer_email, sup.website, sup.payment_terms, sup.supplier_days, sup.actual_payment_days, sup.customer_email, sup.website, sup.payment_terms, sup.supplier_days, sup.actual_payment_days,
sup.settlement_bank, sup.exchange_settlement_account, sup.deposit_bank, sup.bank_account, sup.settlement_bank, sup.exchange_settlement_account, sup.deposit_bank, sup.bank_account,
sup.rmb_registered_capital, sup.Industry_code, sup.merchandiser, sup.merchandiser_telephone, sup.invoice_company_name, sup.company_tax_number,sup.rmb_registered_capital, sup.Industry_code,
sup.financial_contact, sup.confirm_tax, sup.tax_rate, sup.first_add_time, sup.update_info_time, sup.merchandiser, sup.merchandiser_telephone,sup.financial_contact, sup.confirm_tax, sup.tax_rate,
sup.receive_person, sup.receive_person_phone, sup.receive_address,sup.first_add_time, sup.update_info_time,
sup.create_by, sup.create_time, sup.update_by, sup.update_time, sup.remark,sup.del_flag, sup.create_by, sup.create_time, sup.update_by, sup.update_time, sup.remark,sup.del_flag,
sup.instance_type, sup.instance_id, sup.restore_instance_id, sup.cancel_instance_id, sup.submit_instance_id, sup.instance_type, sup.instance_id, sup.restore_instance_id, sup.cancel_instance_id, sup.submit_instance_id,
sup.apply_title, sup.apply_user, sup.apply_time,p.dict_value as instance_type_name,file.url as photo_url sup.apply_title, sup.apply_user, sup.apply_time,p.dict_value as instance_type_name,file.url as photo_url
@ -114,6 +121,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="enterpriseName != null and enterpriseName != ''"> and sup.enterprise_name like concat('%', #{enterpriseName}, '%')</if> <if test="enterpriseName != null and enterpriseName != ''"> and sup.enterprise_name like concat('%', #{enterpriseName}, '%')</if>
<if test="customerContact != null and customerContact != ''"> and sup.customer_contact like concat('%', #{customerContact}, '%')</if> <if test="customerContact != null and customerContact != ''"> and sup.customer_contact like concat('%', #{customerContact}, '%')</if>
<if test="merchandiser != null and merchandiser != ''"> and sup.merchandiser like concat('%', #{merchandiser}, '%')</if> <if test="merchandiser != null and merchandiser != ''"> and sup.merchandiser like concat('%', #{merchandiser}, '%')</if>
<if test="deliverPerson != null and deliverPerson != ''"> or sup.deliver_person like concat('%',#{deliverPerson},'%')</if>
<if test="deliverPersonPhone != null and deliverPersonPhone != ''"> or sup.deliver_person_phone like concat('%',#{deliverPersonPhone},'%')</if>
<if test="deliverAddress != null and deliverAddress != ''"> or sup.deliver_address like concat('%',#{deliverAddress},'%')</if>
<if test="receivePerson != null and receivePerson != ''"> or sup.receive_person like concat('%',#{receivePerson},'%')</if>
<if test="receivePersonPhone != null and receivePersonPhone != ''"> or sup.receive_person_phone like concat('%',#{receivePersonPhone},'%')</if>
<if test="receiveAddress != null and receiveAddress != ''"> or sup.receive_address like concat('%',#{receiveAddress},'%')</if>
<if test="invoiceCompanyName != null and invoiceCompanyName != ''"> and sup.invoice_company_name like concat('%', #{invoiceCompanyName}, '%')</if>
<if test="companyTaxNumber != null and companyTaxNumber != ''"> and sup.company_tax_number like concat('%', #{companyTaxNumber}, '%')</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''">
<if test="instanceId != null and instanceId != ''"> and sup.instance_id = #{instanceId}</if> <if test="instanceId != null and instanceId != ''"> and sup.instance_id = #{instanceId}</if>
<if test="instanceType != null and instanceType != ''"> and sup.instance_type = #{instanceType}</if> <if test="instanceType != null and instanceType != ''"> and sup.instance_type = #{instanceType}</if>
<if test="submitInstanceId != null and submitInstanceId != ''"> and sup.submit_instance_id = #{submitInstanceId}</if> <if test="submitInstanceId != null and submitInstanceId != ''"> and sup.submit_instance_id = #{submitInstanceId}</if>
@ -122,7 +138,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="applyTitle != null and applyTitle != ''"> and sup.apply_title = #{applyTitle}</if> <if test="applyTitle != null and applyTitle != ''"> and sup.apply_title = #{applyTitle}</if>
<if test="applyUser != null and applyUser != ''"> and sup.apply_user = #{applyUser}</if> <if test="applyUser != null and applyUser != ''"> and sup.apply_user = #{applyUser}</if>
<if test="applyTime != null "> and sup.apply_time = #{applyTime}</if> <if test="applyTime != null "> and sup.apply_time = #{applyTime}</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''">
and sup.create_time between #{params.beginCreateTime} and #{params.endCreateTime} and sup.create_time between #{params.beginCreateTime} and #{params.endCreateTime}
</if> </if>
<if test="keyword != null and keyword != ''"> and ((sup.supplierCode like concat('%',#{keyword},'%') or sup.suppplierName like concat('%',#{keyword},'%'))</if> <if test="keyword != null and keyword != ''"> and ((sup.supplierCode like concat('%',#{keyword},'%') or sup.suppplierName like concat('%',#{keyword},'%'))</if>
@ -137,6 +152,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sup.legal_representative, sup.customer_contact, sup.contact_number, sup.customer_fax, sup.legal_representative, sup.customer_contact, sup.contact_number, sup.customer_fax,
sup.customer_email, sup.website, sup.payment_terms, sup.supplier_days, sup.actual_payment_days, sup.customer_email, sup.website, sup.payment_terms, sup.supplier_days, sup.actual_payment_days,
sup.settlement_bank, sup.exchange_settlement_account, sup.deposit_bank, sup.bank_account, sup.settlement_bank, sup.exchange_settlement_account, sup.deposit_bank, sup.bank_account,
sup.deliver_person, sup.deliver_person_phone, sup.deliver_address, sup.receive_person,
sup.receive_person_phone, sup.receive_address, sup.invoice_company_name, sup.company_tax_number,
sup.rmb_registered_capital, sup.Industry_code, sup.merchandiser, sup.merchandiser_telephone, sup.rmb_registered_capital, sup.Industry_code, sup.merchandiser, sup.merchandiser_telephone,
sup.financial_contact, sup.confirm_tax, sup.tax_rate, sup.first_add_time, sup.update_info_time, sup.financial_contact, sup.confirm_tax, sup.tax_rate, sup.first_add_time, sup.update_info_time,
sup.create_by, sup.create_time, sup.update_by, sup.update_time, sup.remark,sup.del_flag, sup.create_by, sup.create_time, sup.update_by, sup.update_time, sup.remark,sup.del_flag,
@ -209,6 +226,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exchangeSettlementAccount != null">exchange_settlement_account,</if> <if test="exchangeSettlementAccount != null">exchange_settlement_account,</if>
<if test="depositBank != null">deposit_bank,</if> <if test="depositBank != null">deposit_bank,</if>
<if test="bankAccount != null">bank_account,</if> <if test="bankAccount != null">bank_account,</if>
<if test="invoiceCompanyName != null">invoice_company_name,</if>
<if test="companyTaxNumber != null">company_tax_number,</if>
<if test="deliverPerson != null">deliver_person,</if>
<if test="deliverPersonPhone != null">deliver_person_phone,</if>
<if test="deliverAddress != null">deliver_address,</if>
<if test="receivePerson != null">receive_person,</if>
<if test="receivePersonPhone != null">receive_person_phone,</if>
<if test="receiveAddress != null">receive_address,</if>
<if test="rmbRegisteredCapital != null">rmb_registered_capital,</if> <if test="rmbRegisteredCapital != null">rmb_registered_capital,</if>
<if test="industryCode != null">Industry_code,</if> <if test="industryCode != null">Industry_code,</if>
<if test="merchandiser != null">merchandiser,</if> <if test="merchandiser != null">merchandiser,</if>
@ -258,6 +283,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exchangeSettlementAccount != null">#{exchangeSettlementAccount},</if> <if test="exchangeSettlementAccount != null">#{exchangeSettlementAccount},</if>
<if test="depositBank != null">#{depositBank},</if> <if test="depositBank != null">#{depositBank},</if>
<if test="bankAccount != null">#{bankAccount},</if> <if test="bankAccount != null">#{bankAccount},</if>
<if test="invoiceCompanyName != null">#{invoiceCompanyName},</if>
<if test="companyTaxNumber != null">#{companyTaxNumber},</if>
<if test="deliverPerson != null">#{deliverPerson},</if>
<if test="deliverPersonPhone != null">#{deliverPersonPhone},</if>
<if test="deliverAddress != null">#{deliverAddress},</if>
<if test="receivePerson != null">#{receivePerson},</if>
<if test="receivePersonPhone != null">#{receivePersonPhone},</if>
<if test="receiveAddress != null">#{receiveAddress},</if>
<if test="rmbRegisteredCapital != null">#{rmbRegisteredCapital},</if> <if test="rmbRegisteredCapital != null">#{rmbRegisteredCapital},</if>
<if test="industryCode != null">#{industryCode},</if> <if test="industryCode != null">#{industryCode},</if>
<if test="merchandiser != null">#{merchandiser},</if> <if test="merchandiser != null">#{merchandiser},</if>
@ -311,6 +344,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="exchangeSettlementAccount != null">exchange_settlement_account = #{exchangeSettlementAccount},</if> <if test="exchangeSettlementAccount != null">exchange_settlement_account = #{exchangeSettlementAccount},</if>
<if test="depositBank != null">deposit_bank = #{depositBank},</if> <if test="depositBank != null">deposit_bank = #{depositBank},</if>
<if test="bankAccount != null">bank_account = #{bankAccount},</if> <if test="bankAccount != null">bank_account = #{bankAccount},</if>
<if test="invoiceCompanyName != null">invoice_company_name = #{invoiceCompanyName},</if>
<if test="companyTaxNumber != null">company_tax_number = #{companyTaxNumber},</if>
<if test="deliverPerson != null">deliver_person = #{deliverPerson},</if>
<if test="deliverPersonPhone != null">deliver_person_phone = #{deliverPersonPhone},</if>
<if test="deliverAddress != null">deliver_address = #{deliverAddress},</if>
<if test="receivePerson != null">receive_person = #{receivePerson},</if>
<if test="receivePersonPhone != null">receive_person_phone = #{receivePersonPhone},</if>
<if test="receiveAddress != null">receive_address = #{receiveAddress},</if>
<if test="rmbRegisteredCapital != null">rmb_registered_capital = #{rmbRegisteredCapital},</if> <if test="rmbRegisteredCapital != null">rmb_registered_capital = #{rmbRegisteredCapital},</if>
<if test="industryCode != null">Industry_code = #{industryCode},</if> <if test="industryCode != null">Industry_code = #{industryCode},</if>
<if test="merchandiser != null">merchandiser = #{merchandiser},</if> <if test="merchandiser != null">merchandiser = #{merchandiser},</if>

247
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.css

@ -1,16 +1,18 @@
/*! /*!
* bootstrap-fileinput v5.1.3 * bootstrap-fileinput v5.5.2
* http://plugins.krajee.com/file-input * http://plugins.krajee.com/file-input
* *
* Krajee default styling for bootstrap-fileinput. * Krajee default styling for bootstrap-fileinput.
* *
* Author: Kartik Visweswaran * Author: Kartik Visweswaran
* Copyright: 2014 - 2020, Kartik Visweswaran, Krajee.com * Copyright: 2014 - 2022, Kartik Visweswaran, Krajee.com
* *
* Licensed under the BSD-3-Clause * Licensed under the BSD-3-Clause
* https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
*/ */
.file-loading input[type=file], input[type=file].file-loading {
.file-loading input[type=file],
input[type=file].file-loading {
width: 0; width: 0;
height: 0; height: 0;
} }
@ -29,11 +31,35 @@
box-shadow: none; box-shadow: none;
} }
.kv-hidden, .file-caption-icon, .file-zoom-dialog .modal-header:before, .file-zoom-dialog .modal-header:after, .file-input-new .file-preview, .file-input-new .close, .file-input-new .glyphicon-file, .file-input-new .fileinput-remove-button, .file-input-new .fileinput-upload-button, .file-input-new .no-browse .input-group-btn, .file-input-ajax-new .fileinput-remove-button, .file-input-ajax-new .fileinput-upload-button, .file-input-ajax-new .no-browse .input-group-btn, .hide-content .kv-file-content, .is-locked .fileinput-upload-button, .is-locked .fileinput-remove-button { .kv-hidden,
.file-caption-icon,
.file-zoom-dialog .modal-header:before,
.file-zoom-dialog .modal-header:after,
.file-input-new .file-preview,
.file-input-new .close,
.file-input-new .glyphicon-file,
.file-input-new .fileinput-remove-button,
.file-input-new .fileinput-upload-button,
.file-input-new .no-browse .input-group-btn,
.file-input-ajax-new .fileinput-remove-button,
.file-input-ajax-new .fileinput-upload-button,
.file-input-ajax-new .no-browse .input-group-btn,
.hide-content .kv-file-content,
.is-locked .fileinput-upload-button,
.is-locked .fileinput-remove-button {
display: none; display: none;
} }
.btn-file input[type=file], .file-caption-icon, .file-preview .fileinput-remove, .krajee-default .file-thumb-progress, .file-zoom-dialog .btn-navigate, .file-zoom-dialog .floating-buttons { .file-caption .input-group {
align-items: center;
}
.btn-file input[type=file],
.file-caption-icon,
.file-preview .fileinput-remove,
.krajee-default .file-thumb-progress,
.file-zoom-dialog .btn-navigate,
.file-zoom-dialog .floating-buttons {
position: absolute; position: absolute;
} }
@ -41,35 +67,50 @@
line-height: inherit; line-height: inherit;
} }
.file-input, .file-loading:before, .btn-file, .file-caption, .file-preview, .krajee-default.file-preview-frame, .krajee-default .file-thumbnail-footer, .file-zoom-dialog .modal-dialog { .file-input,
.file-loading:before,
.btn-file,
.file-caption,
.file-preview,
.krajee-default.file-preview-frame,
.krajee-default .file-thumbnail-footer,
.file-zoom-dialog .modal-dialog {
position: relative; position: relative;
} }
.file-error-message pre, .file-error-message ul, .krajee-default .file-actions, .krajee-default .file-other-error { .file-error-message pre,
.file-error-message ul,
.krajee-default .file-actions,
.krajee-default .file-other-error {
text-align: left; text-align: left;
} }
.file-error-message pre, .file-error-message ul { .file-error-message pre,
.file-error-message ul {
margin: 0; margin: 0;
} }
.krajee-default .file-drag-handle, .krajee-default .file-upload-indicator { .krajee-default .file-drag-handle,
.krajee-default .file-upload-indicator {
float: left; float: left;
margin-top: 10px; margin-top: 10px;
width: 16px; width: 16px;
height: 16px; height: 16px;
} }
.file-thumb-progress .progress, .file-thumb-progress .progress-bar { .file-thumb-progress .progress,
.file-thumb-progress .progress-bar {
font-family: Verdana, Helvetica, sans-serif; font-family: Verdana, Helvetica, sans-serif;
font-size: 0.7rem; font-size: 0.7rem;
} }
.krajee-default .file-thumb-progress .progress, .kv-upload-progress .progress { .krajee-default .file-thumb-progress .progress,
.kv-upload-progress .progress {
background-color: #ccc; background-color: #ccc;
} }
.krajee-default .file-caption-info, .krajee-default .file-size-info { .krajee-default .file-caption-info,
.krajee-default .file-size-info {
display: block; display: block;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
@ -79,17 +120,23 @@
margin: auto; margin: auto;
} }
.file-zoom-content > .file-object.type-video, .file-zoom-content > .file-object.type-flash, .file-zoom-content > .file-object.type-image { .file-zoom-content > .file-object.type-video,
.file-zoom-content > .file-object.type-flash,
.file-zoom-content > .file-object.type-image {
max-width: 100%; max-width: 100%;
max-height: 100%; max-height: 100%;
width: auto; width: auto;
} }
.file-zoom-content > .file-object.type-video, .file-zoom-content > .file-object.type-flash { .file-zoom-content > .file-object.type-video,
.file-zoom-content > .file-object.type-flash {
height: 100%; height: 100%;
} }
.file-zoom-content > .file-object.type-pdf, .file-zoom-content > .file-object.type-html, .file-zoom-content > .file-object.type-text, .file-zoom-content > .file-object.type-default { .file-zoom-content > .file-object.type-pdf,
.file-zoom-content > .file-object.type-html,
.file-zoom-content > .file-object.type-text,
.file-zoom-content > .file-object.type-default {
width: 100%; width: 100%;
} }
@ -131,26 +178,44 @@
height: 100%; height: 100%;
} }
.file-caption .file-caption-name {
width: 100%;
margin: 0;
padding: 0;
box-shadow: none;
border: none;
background: none;
outline: none;
}
.file-caption.icon-visible .file-caption-icon { .file-caption.icon-visible .file-caption-icon {
display: inline-block; display: inline-block;
} }
.file-caption.icon-visible .file-caption-name { .file-caption.icon-visible .file-caption-name {
padding-left: 15px; padding-left: 25px;
}
.file-caption.icon-visible > .input-group-lg .file-caption-name {
padding-left: 30px;
}
.file-caption.icon-visible > .input-group-sm .file-caption-name {
padding-left: 22px;
}
.file-caption-name:not(.file-caption-disabled) {
background-color: transparent;
}
.file-caption-name.file-processing {
font-style: italic;
border-color: #bbb;
opacity: 0.5;
} }
.file-caption-icon { .file-caption-icon {
left: 8px; padding: 7px 5px;
left: 4px;
}
.input-group-lg .file-caption-icon {
font-size: 1.25rem;
}
.input-group-sm .file-caption-icon {
font-size: 0.875rem;
padding: 0.25rem;
} }
.file-error-message { .file-error-message {
@ -213,6 +278,7 @@
padding: 6px; padding: 6px;
float: left; float: left;
text-align: center; text-align: center;
} }
.krajee-default.file-preview-frame .kv-file-content { .krajee-default.file-preview-frame .kv-file-content {
@ -220,12 +286,6 @@
height: 160px; height: 160px;
} }
.krajee-default .file-preview-other-frame {
display: flex;
align-items: center;
justify-content: center;
}
.krajee-default.file-preview-frame .kv-file-content.kv-pdf-rendered { .krajee-default.file-preview-frame .kv-file-content.kv-pdf-rendered {
width: 400px; width: 400px;
} }
@ -269,7 +329,7 @@
text-align: center; text-align: center;
padding-top: 4px; padding-top: 4px;
font-size: 11px; font-size: 11px;
color: #777; color: #999;
margin-bottom: 30px; margin-bottom: 30px;
} }
@ -319,7 +379,9 @@
font-family: Verdana, Helvetica, sans-serif; font-family: Verdana, Helvetica, sans-serif;
} }
/*noinspection CssOverwrittenProperties*/ /*noinspection CssOverwrittenProperties*/
.file-zoom-dialog .file-other-icon { .file-zoom-dialog .file-other-icon {
font-size: 22em; font-size: 22em;
font-size: 50vmin; font-size: 50vmin;
@ -336,21 +398,18 @@
} }
.file-zoom-dialog .btn-navigate { .file-zoom-dialog .btn-navigate {
margin: 0 0.1rem;
padding: 0; padding: 0;
margin: -60px 0 0; font-size: 1.2rem;
font-size: 60px; width: 2.4rem;
background: transparent; height: 2.4rem;
text-decoration: none;
outline: none;
opacity: 0.7;
top: 50%; top: 50%;
color: #1c94c4; border-radius: 50%;
text-align: center;
} }
.file-zoom-dialog .btn-navigate:not([disabled]):hover { .btn-navigate * {
outline: none; width: auto;
box-shadow: none;
opacity: 0.6;
} }
.file-zoom-dialog .floating-buttons { .file-zoom-dialog .floating-buttons {
@ -358,25 +417,50 @@
right: 10px; right: 10px;
} }
.file-zoom-dialog .btn-navigate[disabled] { .file-zoom-dialog .btn-kv-prev {
opacity: 0.3; left: 0;
}
.file-zoom-dialog .btn-kv-next {
right: 0;
} }
.file-zoom-dialog .btn-prev { .file-zoom-dialog .kv-zoom-header {
left: 1px; padding: 0.5rem;
} }
.file-zoom-dialog .btn-next { .file-zoom-dialog .kv-zoom-body {
right: 1px; padding: 0.25rem;
} }
.file-zoom-dialog .kv-zoom-title { .file-zoom-dialog .kv-zoom-description {
font-weight: 300; position: absolute;
color: #999; opacity: 0.8;
max-width: 50%; font-size: 0.8rem;
overflow: hidden; background-color: #1a1a1a;
white-space: nowrap; padding: 1rem;
text-overflow: ellipsis; text-align: center;
border-radius: 0.5rem;
color: #fff;
left: 15%;
right: 15%;
bottom: 15%;
}
.file-zoom-dialog .kv-desc-hide {
float: right;
color: #fff;
padding: 0 0.1rem;
background: none;
border: none;
}
.file-zoom-dialog .kv-desc-hide:hover {
opacity: 0.7;
}
.file-zoom-dialog .kv-desc-hide:focus {
opacity: 0.9;
} }
.file-input-new .no-browse .form-control { .file-input-new .no-browse .form-control {
@ -389,8 +473,9 @@
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
} }
.file-caption-main { .file-caption {
width: 100%; width: 100%;
position: relative;
} }
.file-thumb-loading { .file-thumb-loading {
@ -448,7 +533,7 @@
min-height: 100vh; min-height: 100vh;
} }
.file-zoom-fullscreen .modal-body { .file-zoom-fullscreen .kv-zoom-body {
overflow-y: auto; overflow-y: auto;
} }
@ -461,15 +546,24 @@
z-index: 3000; z-index: 3000;
} }
.kv-zoom-actions {
min-width: 140px;
}
.kv-zoom-actions .btn-kv { .kv-zoom-actions .btn-kv {
margin-left: 3px; margin-left: 3px;
} }
.file-zoom-content { .file-zoom-content {
text-align: center; text-align: center;
white-space: nowrap;
min-height: 300px; min-height: 300px;
} }
.file-zoom-content:hover {
background: transparent;
}
.file-zoom-content .file-preview-image { .file-zoom-content .file-preview-image {
max-height: 100%; max-height: 100%;
} }
@ -544,7 +638,8 @@
opacity: 1; opacity: 1;
} }
.file-grabbing, .file-grabbing * { .file-grabbing,
.file-grabbing * {
cursor: not-allowed !important; cursor: not-allowed !important;
} }
@ -561,3 +656,33 @@
.file-preview .kv-zoom-cache { .file-preview .kv-zoom-cache {
display: none; display: none;
} }
.file-preview-other-frame, .file-preview-object, .kv-file-content, .kv-zoom-body {
display: flex;
align-items: center;
justify-content: center;
}
.btn-kv-rotate,
.kv-file-rotate {
display: none;
}
.rotatable:not(.hide-rotate) .btn-kv-rotate,
.rotatable:not(.hide-rotate) .kv-file-rotate {
display: inline-block;
}
.rotatable .file-zoom-detail,
.rotatable .kv-file-content,
.rotatable .kv-file-content > :first-child {
transform-origin: center center;
}
.rotate-animate {
transition: transform 0.3s ease;
}
.kv-overflow-hidden {
overflow: hidden;
}

1275
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.js

File diff suppressed because it is too large

6
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.css

File diff suppressed because one or more lines are too long

6
ruoyi-admin/src/main/resources/static/ajax/libs/bootstrap-fileinput/fileinput.min.js

File diff suppressed because one or more lines are too long

0
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRMB.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmb.html

0
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRMBDetail.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceRmbDetail.html

0
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUSD.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsd.html

2
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUSDDetail.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/auditInvoiceUsdDetail.html

@ -236,7 +236,7 @@
function submitHandler() { function submitHandler() {
$.operate.save(prefix + "/auditInvoiceDetail", $('#form-taxInvoice-form-taxInvoice-auditUsdDetail').serialize()); $.operate.save(prefix + "/auditInvoiceDetail", $('#form-taxInvoice-auditUsdDetail').serialize());
} }

334
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceRmbDetail.html

@ -0,0 +1,334 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('待审核国税发票')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-beforeAuditUsdDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<div class="form-group">
<label class="col-sm-5 control-label">发票单号:</label>
<div class="col-sm-7">
<input name="taxInvoiceCode" th:field="*{taxInvoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">销售订单编号:</label>
<div class="col-sm-7">
<input name="salesOrderCode" th:field="*{salesOrderCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">订单类型:</label>
<div class="col-sm-7">
<select name="salesOrderType" class="form-control m-b" th:with="type=${@dict.getType('sys_order_type')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{salesOrderType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">报价币种:</label>
<div class="col-sm-7">
<select name="commonCurrency" class="form-control m-b" th:with="type=${@dict.getType('sys_common_currency')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{commonCurrency}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户代码/ID:</label>
<div class="col-sm-7">
<input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户名称:</label>
<div class="col-sm-7">
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">联系电话:</label>
<div class="col-sm-7">
<input name="contactNumber" th:field="*{contactNumber}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司地址:</label>
<div class="col-sm-7">
<input name="enterpriseAddress" th:field="*{enterpriseAddress}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司名称:</label>
<div class="col-sm-7">
<input name="invoiceCompanyName" th:field="*{invoiceCompanyName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司税号:</label>
<div class="col-sm-7">
<input name="invoiceCompanyCode" th:field="*{invoiceCompanyCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户行:</label>
<div class="col-sm-7">
<input name="depositBank" th:field="*{depositBank}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户账号:</label>
<div class="col-sm-7">
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">税率:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required" >发票种类:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_class')}">
<input type="radio" th:id="${'taxInvoiceClass_' + dict.dictCode}" name="taxInvoiceClass" th:value="${dict.dictValue}" th:field="*{taxInvoiceClass}" disabled>
<label th:for="${'taxInvoiceClass_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票类型:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_type')}">
<input type="radio" th:id="${'taxInvoiceType_' + dict.dictCode}" name="taxInvoiceType" th:value="${dict.dictValue}" th:field="*{taxInvoiceType}" disabled>
<label th:for="${'taxInvoiceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票抬头:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_title')}">
<input type="radio" th:id="${'taxInvoiceTitle_' + dict.dictCode}" name="taxInvoiceTitle" th:value="${dict.dictValue}" th:field="*{taxInvoiceTitle}" disabled>
<label th:for="${'taxInvoiceTitle_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">邮箱:</label>
<div class="col-sm-7">
<input name="invoiceEmail" th:field="*{invoiceEmail}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">业务备注:</label>
<div class="col-sm-7">
<input name="businessRemark" th:field="*{businessRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票物料</h4>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-material"></table>
</div>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票额度</h4>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">不含税总价(RMB):</label>
<div class="col-sm-7">
<input name="noRmbSum" th:field="*{noRmbSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">含税总价(RMB):</label>
<div class="col-sm-7">
<input name="rmbTaxSum" th:field="*{rmbTaxSum}" class="form-control" type="text" id="rmbTaxSumInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">物料数合计:</label>
<div class="col-sm-7">
<input name="materialSum" th:field="*{materialSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">数量合计:</label>
<div class="col-sm-7">
<input name="enterpriseSum" th:field="*{enterpriseSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票额度比例:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="invoiceQuotaRatio" th:field="*{invoiceQuotaRatio}" class="form-control" type="text" id="invoiceQuotaRatioInput" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票金额(RMB):</label>
<div class="col-sm-7">
<input name="invoiceAmountRmb" th:field="*{invoiceAmountRmb}" class="form-control" type="text" id="invoiceAmountRmbInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票用途:</label>
<div class="col-sm-7">
<input name="invoicePurpose" th:field="*{invoicePurpose}" class="form-control" type="text" readonly>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var materialProcessMethodDatas = [[${@dict.getType('processMethod')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var taxInvoiceStatusDatas = [[${@dict.getType('tax_invoice_status')}]];
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-beforeAuditUsdDetail").validate({
focusCleanup: true
});
function submitHandler() {
$.operate.save(prefix + "/beforeAuditInvoiceDetail", $('#form-taxInvoice-beforeAuditUsdDetail').serialize());
}
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(RMB)',
field: 'taxRmb',
},
{
title: '物料的不含税单价(RMB)',
field: 'noTaxRmb',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});
</script>
</body>
</html>

330
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/beforeAuditInvoiceUsdDetail.html

@ -0,0 +1,330 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('待审核国税发票')" />
<th:block th:include="include :: datetimepicker-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-auditUsdDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<div class="form-group">
<label class="col-sm-5 control-label">发票单号:</label>
<div class="col-sm-7">
<input name="taxInvoiceCode" th:field="*{taxInvoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">销售订单编号:</label>
<div class="col-sm-7">
<input name="salesOrderCode" th:field="*{salesOrderCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">订单类型:</label>
<div class="col-sm-7">
<select name="salesOrderType" class="form-control m-b" th:with="type=${@dict.getType('sys_order_type')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{salesOrderType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">报价币种:</label>
<div class="col-sm-7">
<select name="commonCurrency" class="form-control m-b" th:with="type=${@dict.getType('sys_common_currency')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{commonCurrency}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户代码/ID:</label>
<div class="col-sm-7">
<input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户名称:</label>
<div class="col-sm-7">
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">联系电话:</label>
<div class="col-sm-7">
<input name="contactNumber" th:field="*{contactNumber}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司地址:</label>
<div class="col-sm-7">
<input name="enterpriseAddress" th:field="*{enterpriseAddress}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司名称:</label>
<div class="col-sm-7">
<input name="invoiceCompanyName" th:field="*{invoiceCompanyName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司税号:</label>
<div class="col-sm-7">
<input name="invoiceCompanyCode" th:field="*{invoiceCompanyCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户行:</label>
<div class="col-sm-7">
<input name="depositBank" th:field="*{depositBank}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户账号:</label>
<div class="col-sm-7">
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">税率:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required" >发票种类:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_class')}">
<input type="radio" th:id="${'taxInvoiceClass_' + dict.dictCode}" name="taxInvoiceClass" th:value="${dict.dictValue}" th:field="*{taxInvoiceClass}" disabled>
<label th:for="${'taxInvoiceClass_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票类型:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_type')}">
<input type="radio" th:id="${'taxInvoiceType_' + dict.dictCode}" name="taxInvoiceType" th:value="${dict.dictValue}" th:field="*{taxInvoiceType}" disabled>
<label th:for="${'taxInvoiceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票抬头:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_title')}">
<input type="radio" th:id="${'taxInvoiceTitle_' + dict.dictCode}" name="taxInvoiceTitle" th:value="${dict.dictValue}" th:field="*{taxInvoiceTitle}" disabled>
<label th:for="${'taxInvoiceTitle_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">邮箱:</label>
<div class="col-sm-7">
<input name="invoiceEmail" th:field="*{invoiceEmail}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">业务备注:</label>
<div class="col-sm-7">
<input name="businessRemark" th:field="*{businessRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票物料</h4>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-material"></table>
</div>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票额度</h4>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">不含税总价(美元):</label>
<div class="col-sm-7">
<input name="noUsdSum" th:field="*{noUsdSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">含税总价(美元):</label>
<div class="col-sm-7">
<input name="usdTaxSum" th:field="*{usdTaxSum}" class="form-control" type="text" id="usdTaxSumInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">物料数合计:</label>
<div class="col-sm-7">
<input name="materialSum" th:field="*{materialSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">数量合计:</label>
<div class="col-sm-7">
<input name="enterpriseSum" th:field="*{enterpriseSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票额度比例:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="invoiceQuotaRatio" th:field="*{invoiceQuotaRatio}" class="form-control" type="text" id="invoiceQuotaRatioInput" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票金额(美元):</label>
<div class="col-sm-7">
<input name="invoiceAmountUsd" th:field="*{invoiceAmountUsd}" class="form-control" type="text" id="invoiceAmountUsdInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票用途:</label>
<div class="col-sm-7">
<input name="invoicePurpose" th:field="*{invoicePurpose}" class="form-control" type="text" readonly>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<script th:inline="javascript">
var materialProcessMethodDatas = [[${@dict.getType('processMethod')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var taxInvoiceStatusDatas = [[${@dict.getType('tax_invoice_status')}]];
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-auditUsdDetail").validate({
focusCleanup: true
});
function submitHandler() {
$.operate.save(prefix + "/auditInvoiceDetail", $('#form-taxInvoice-auditUsdDetail').serialize());
}
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(美元)',
field: 'taxUsd',
},
{
title: '物料的不含税单价(美元)',
field: 'noTaxUsd',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});
</script>
</body>
</html>

14
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/taxInvoice.html

@ -261,7 +261,13 @@
align: 'center', align: 'center',
formatter: function(value, row, index) { formatter: function(value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>编辑</a> '); //actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
//待审核详情
if (row.taxInvoiceStatus=="0"){
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="beforeAuditInvoiceDetail(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>详情</a>');
}
if (row.taxInvoiceStatus=="0" && row.commonCurrency=="1"){ if (row.taxInvoiceStatus=="0" && row.commonCurrency=="1"){
actions.push('<a class="btn btn-success btn-xs ' + auditInvoiceFlag + '" href="javascript:void(0)" onclick="auditInvoiceRmb(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>审核</a>'); actions.push('<a class="btn btn-success btn-xs ' + auditInvoiceFlag + '" href="javascript:void(0)" onclick="auditInvoiceRmb(\'' + row.taxInvoiceId + '\')"><i class="fa fa-edit"></i>审核</a>');
} }
@ -296,6 +302,12 @@
$.table.init(options); $.table.init(options);
}); });
//待审核页面详情
function beforeAuditInvoiceDetail(taxInvoiceId){
var url = prefix + "/beforeAuditInvoiceDetail/" + taxInvoiceId;
$.modal.open("详情",url);
}
//审核页面详情 //审核页面详情

2
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRMB.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmb.html

@ -273,7 +273,7 @@
var taxInvoice = [[${taxInvoice}]]; var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice"; var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-auditRmb").validate({ $("#form-taxInvoice-uploadRmb").validate({
focusCleanup: true focusCleanup: true
}); });

101
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRMBDetail.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceRmbDetail.html

@ -7,7 +7,7 @@
</head> </head>
<body class="white-bg"> <body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> <div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-uploadRmb" th:object="${taxInvoice}"> <form class="form-horizontal m" id="form-taxInvoice-uploadRmbDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden"> <input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<!-- 添加隐藏的输入框 --> <!-- 添加隐藏的输入框 -->
<input id="fileIdStr" name="fileIdStr" type="text" hidden> <input id="fileIdStr" name="fileIdStr" type="text" hidden>
@ -273,7 +273,7 @@
var taxInvoice = [[${taxInvoice}]]; var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice"; var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-auditRmb").validate({ $("#form-taxInvoice-uploadRmbDetail").validate({
focusCleanup: true focusCleanup: true
}); });
@ -283,6 +283,13 @@
autoclose: true autoclose: true
}); });
function submitHandler() {
$.operate.save(prefix + "/uploadInvoiceDetail", $('#form-taxInvoice-uploadRmbDetail').serialize());
}
$(document).ready(function () { $(document).ready(function () {
var initialPreview = []; var initialPreview = [];
var initialPreviewConfig = []; var initialPreviewConfig = [];
@ -378,7 +385,95 @@
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(RMB)',
field: 'taxRmb',
},
{
title: '物料的不含税单价(RMB)',
field: 'noTaxRmb',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});

8
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUSD.html → ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsd.html

@ -355,12 +355,12 @@
field: 'materialNum', field: 'materialNum',
}, },
{ {
title: '物料的含税单价(RMB)', title: '物料的含税单价(美元)',
field: 'taxRmb', field: 'taxUsd',
}, },
{ {
title: '物料的不含税单价(RMB)', title: '物料的不含税单价(美元)',
field: 'noTaxRmb', field: 'noTaxUsd',
}, },
{ {
title: '已出库数量', title: '已出库数量',

529
ruoyi-admin/src/main/resources/templates/financial/taxInvoice/uploadInvoiceUsdDetail.html

@ -0,0 +1,529 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('上传国税发票')" />
<th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: bootstrap-fileinput-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-taxInvoice-uploadUsdDetail" th:object="${taxInvoice}">
<input name="taxInvoiceId" th:field="*{taxInvoiceId}" type="hidden">
<!-- 添加隐藏的输入框 -->
<input id="fileIdStr" name="fileIdStr" type="text" hidden>
<div class="form-group">
<label class="col-sm-5 control-label">发票单号:</label>
<div class="col-sm-7">
<input name="taxInvoiceCode" th:field="*{taxInvoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">销售订单编号:</label>
<div class="col-sm-7">
<input name="salesOrderCode" th:field="*{salesOrderCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">订单类型:</label>
<div class="col-sm-7">
<select name="salesOrderType" class="form-control m-b" th:with="type=${@dict.getType('sys_order_type')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{salesOrderType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">报价币种:</label>
<div class="col-sm-7">
<select name="commonCurrency" class="form-control m-b" th:with="type=${@dict.getType('sys_common_currency')}" readonly>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{commonCurrency}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户代码/ID:</label>
<div class="col-sm-7">
<input name="enterpriseCode" th:field="*{enterpriseCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">客户名称:</label>
<div class="col-sm-7">
<input name="enterpriseName" th:field="*{enterpriseName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">联系电话:</label>
<div class="col-sm-7">
<input name="contactNumber" th:field="*{contactNumber}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司地址:</label>
<div class="col-sm-7">
<input name="enterpriseAddress" th:field="*{enterpriseAddress}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司名称:</label>
<div class="col-sm-7">
<input name="invoiceCompanyName" th:field="*{invoiceCompanyName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票公司税号:</label>
<div class="col-sm-7">
<input name="invoiceCompanyCode" th:field="*{invoiceCompanyCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户行:</label>
<div class="col-sm-7">
<input name="depositBank" th:field="*{depositBank}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">公司开户账号:</label>
<div class="col-sm-7">
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">税率:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required" >发票种类:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_class')}">
<input type="radio" th:id="${'taxInvoiceClass_' + dict.dictCode}" name="taxInvoiceClass" th:value="${dict.dictValue}" th:field="*{taxInvoiceClass}" disabled>
<label th:for="${'taxInvoiceClass_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票类型:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_type')}">
<input type="radio" th:id="${'taxInvoiceType_' + dict.dictCode}" name="taxInvoiceType" th:value="${dict.dictValue}" th:field="*{taxInvoiceType}" disabled>
<label th:for="${'taxInvoiceType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票抬头:</label>
<div class="col-sm-7">
<div class="radio-box" th:each="dict : ${@dict.getType('tax_invoice_title')}">
<input type="radio" th:id="${'taxInvoiceTitle_' + dict.dictCode}" name="taxInvoiceTitle" th:value="${dict.dictValue}" th:field="*{taxInvoiceTitle}" disabled>
<label th:for="${'taxInvoiceTitle_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">邮箱:</label>
<div class="col-sm-7">
<input name="invoiceEmail" th:field="*{invoiceEmail}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">业务备注:</label>
<div class="col-sm-7">
<input name="businessRemark" th:field="*{businessRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票物料</h4>
</div>
<div class="row">
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table-material"></table>
</div>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">开票额度</h4>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">不含税总价(美元):</label>
<div class="col-sm-7">
<input name="noUsdSum" th:field="*{noUsdSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">含税总价(美元):</label>
<div class="col-sm-7">
<input name="usdTaxSum" th:field="*{usdTaxSum}" class="form-control" type="text" id="usdTaxSumInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">物料数合计:</label>
<div class="col-sm-7">
<input name="materialSum" th:field="*{materialSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">数量合计:</label>
<div class="col-sm-7">
<input name="enterpriseSum" th:field="*{enterpriseSum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票额度比例:</label>
<div class="col-sm-7">
<div class="input-group">
<input name="invoiceQuotaRatio" th:field="*{invoiceQuotaRatio}" class="form-control" type="text" id="invoiceQuotaRatioInput" readonly>
<span class="input-group-addon">%</span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票金额(美元):</label>
<div class="col-sm-7">
<input name="invoiceAmountUsd" th:field="*{invoiceAmountUsd}" class="form-control" type="text" id="invoiceAmountUsdInput" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">开票用途:</label>
<div class="col-sm-7">
<input name="invoicePurpose" th:field="*{invoicePurpose}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">实际开票金额(RMB):</label>
<div class="col-sm-7">
<input name="actualInvoiceAmountRmb" th:field="*{actualInvoiceAmountRmb}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">实际开票金额(美元):</label>
<div class="col-sm-7">
<input name="actualInvoiceAmountUsd" th:field="*{actualInvoiceAmountUsd}" class="form-control" type="text" required readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">发票备注:</label>
<div class="col-sm-7">
<input name="invoiceRemark" th:field="*{invoiceRemark}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label is-required">开票日期:</label>
<div class="col-sm-7">
<div class="input-group date">
<input name="invoiceData" th:value="${#dates.format(taxInvoice.invoiceData, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text" readonly>
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">发票代码:</label>
<div class="col-sm-7">
<input name="invoiceCode" th:field="*{invoiceCode}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-5 control-label">发票号码:</label>
<div class="col-sm-7">
<input name="invoicePhone" th:field="*{invoicePhone}" class="form-control" type="text" readonly>
</div>
</div>
<div class="container">
<div class="row">
<h4 class="font-weight-bold">导入发票:</h4>
</div>
<div class="file-loading col-sm-8">
<input class="file-upload" id="singleFile" name="file" type="file">
</div>
</div>
<!-- 用户评价 -->
<!-- <div class="form-group">-->
<!-- <label class="col-sm-4 control-label">导入发票:</label>-->
<!-- </div>-->
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: bootstrap-fileinput-js" />
<script th:inline="javascript">
var materialProcessMethodDatas = [[${@dict.getType('processMethod')}]];
var materialTypeDatas = [[${@category.getChildByCode('materialType')}]];
var taxInvoiceStatusDatas = [[${@dict.getType('tax_invoice_status')}]];
var taxInvoice = [[${taxInvoice}]];
var prefix = ctx + "financial/taxInvoice";
$("#form-taxInvoice-uploadUsdDetail").validate({
focusCleanup: true
});
$("input[name='invoiceData']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
function submitHandler() {
$.operate.save(prefix + "/uploadInvoiceDetail", $('#form-taxInvoice-uploadUsdDetail').serialize());
}
//开票物料
$(function() {
var options = {
id: 'bootstrap-table-material',
url: prefix + "/getInvoiceMaterialListByCode",
queryParams: function(params) {
return {
taxInvoiceCode: $("#taxInvoiceCode").val(),
}
},
showSearch: false,
showRefresh: false,
showToggle: false,
showColumns: false,
pagination: false, // 设置不分页
modalName: "国税发票物料",
columns: [{
checkbox: true
},
{
title: '国税发票物料ID',
field: 'invoiceMaterialId',
visible: false
},
{
title: '物料编号',
field: 'materialCode',
},
{
title: '物料名称',
field: 'materialName',
},
{
field: 'materialType',
title: '物料类型',
formatter: function(value, row, index) {
return $.table.selectCategoryLabel(materialTypeDatas, value);
}
},
{
title: '物料加工方式',
field: 'materialProcessMethod',
formatter: function(value, row, index) {
return $.table.selectDictLabel(materialProcessMethodDatas, value);
}
},
{
title: '物料品牌',
field: 'materialBrand',
},
{
title: '物料图片',
field: 'materialPhotourl',
},
{
title: '物料单位',
field: 'materialUnit',
},
{
title: '物料描述',
field: 'materialDescribe',
},
{
title: '物料的数量',
field: 'materialNum',
},
{
title: '物料的含税单价(美元)',
field: 'taxUsd',
},
{
title: '物料的不含税单价(美元)',
field: 'noTaxUsd',
},
{
title: '已出库数量',
field: 'outBoundQuantity',
},
{
title: '已验收数',
field: 'hasCheckNum',
},
{
title: '退货数',
field: 'refundsNum',
}]
};
$.table.init(options);
});
$(document).ready(function () {
var initialPreview = [];
var initialPreviewConfig = [];
var initialPreviewFileType = [];
var sysAttachFiles = taxInvoice.sysAttachFiles || []; // 确保 sysAttachFiles 是一个数组
// 遍历 sysAttachFiles 并构建 initialPreview 和 initialPreviewConfig
if (sysAttachFiles.length > 0) {
for (var i = 0; i < sysAttachFiles.length; i++) {
var sysAttachFile = sysAttachFiles[i];
if (sysAttachFile) {
var delSysAttachFile = generFilDel(sysAttachFile);
initialPreview.push(sysAttachFile.url);
initialPreviewConfig.push(delSysAttachFile);
}
}
}
// 单图上传
$("#singleFile").fileinput({
uploadUrl: ctx + "common/uploadSingleFile",
dropZoneTitle: '可以将文件拖放到这里,支持文件上传',
language: 'zh',
allowedFileExtensions: ['bmp', 'gif', 'jpg', 'jpeg', 'png', 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'html', 'htm', 'txt', 'text', 'rar', 'zip', 'gz', 'bz2', 'pdf', 'bpmn', 'bar', 'db'],
showPreview: true, // 是否显示预览
fileSizeGetter: true,
previewFileType: ['image', 'txt', 'text','pdf'],
validateInitialCount: true,
preferIconicPreview: true, // 这将强制缩略图按照以下文件扩展名的图标显示
maxFileCount: 1,
autoReplace: true, // 自动替换
showUpload: false, // 不显示上传按钮
showCaption: false, // 不显示标题
showRemove: false, // 显示移除按钮
initialPreview: initialPreview,
initialPreviewConfig: initialPreviewConfig,
initialPreviewFileType: initialPreviewFileType,
initialPreviewAsData: true, // 默认为数据
}).on('filebatchselected', function (event, data, previewId, index) {
// 当文件被选中时,开始上传
$(this).fileinput("upload");
}).on('fileuploaded', function (event, data, previewId, index) {
log.info("data:" + JSON.stringify(data));
var response = data.response;
var attachFileId = response.data.id;
if (response.code === web_status.SUCCESS) {
$('#fileIdStr').val(attachFileId);
$.modal.msgSuccess("上传成功");
} else {
$.modal.alertError(response.msg);
}
}).on('filebatchremoved', function (event, id, index) {
$("#fileIdStr").val('');
});
// 添加清除输入框值的功能
$(".file-upload").on('fileclear', function (event) {
$("#fileIdStr").val('');
});
// 生成文件删除配置
function generFilDel(file) {
if (file) {
var type = file.url.substr(file.url.lastIndexOf('.') + 1);
return {
type: getTypeByExtension(type),
size: file.size,
caption: file.name,
url: prefix + "/deletePic",
key: file.id,
downloadUrl: file.url
};
}
}
// 根据文件扩展名获取文件类型
function getTypeByExtension(extension) {
switch (extension) {
case 'pdf':
return "pdf";
case 'text':
return "text";
case 'mp4':
return {type: "video", filetype: "video/mp4"};
case 'txt':
return "txt";
case 'db':
return "db";
default:
return "";
}
}
});
// var attachId = $("#photoAttachId").val();
// var fileIdList=[];
// var fileList=[];
// if(attachId){
// $.ajax({
// type: "get",
// url: ctx + "system/attach/file/getListByAttachId",
// data: {attachId:attachId},
// cache: false,
// async: false, // 设置成同步
// dataType: 'json',
// success: function(result) {
// if (result.code == web_status.SUCCESS) {
// result.data.forEach((item) => {
// fileIdList.push(item.id);
// fileList.push({name: item.name, url: item.url, attachFileId: item.id,isBind:true});
// });
// } else {
// $.modal.msgError(result.msg);
// }
// },
// error: function(error) {
// $.modal.msgError("获取附件失败。");
// }
// });
// }
</script>
</body>
</html>

14
ruoyi-admin/src/main/resources/templates/include.html

@ -120,14 +120,24 @@
<script th:src="@{/ajax/libs/jasny/jasny-bootstrap.min.js}"></script> <script th:src="@{/ajax/libs/jasny/jasny-bootstrap.min.js}"></script>
</div> </div>
<!-- fileinput文件上传插件 -->
<!--<div th:fragment="bootstrap-fileinput-css">-->
<!-- <link th:href="@{/ajax/libs/bootstrap-fileinput/fileinput.min.css?v=20201202}" rel="stylesheet"/>-->
<!--</div>-->
<!--<div th:fragment="bootstrap-fileinput-js">-->
<!-- <script th:src="@{/ajax/libs/bootstrap-fileinput/fileinput.min.js?v=20201202}"></script>-->
<!--</div>-->
<!-- fileinput文件上传插件 --> <!-- fileinput文件上传插件 -->
<div th:fragment="bootstrap-fileinput-css"> <div th:fragment="bootstrap-fileinput-css">
<link th:href="@{/ajax/libs/bootstrap-fileinput/fileinput.min.css?v=20201202}" rel="stylesheet"/> <link th:href="@{/ajax/libs/bootstrap-fileinput/fileinput.min.css?v=5.5.2}" rel="stylesheet"/>
</div> </div>
<div th:fragment="bootstrap-fileinput-js"> <div th:fragment="bootstrap-fileinput-js">
<script th:src="@{/ajax/libs/bootstrap-fileinput/fileinput.min.js?v=20201202}"></script> <script th:src="@{/ajax/libs/bootstrap-fileinput/fileinput.min.js?v=5.5.2}"></script>
</div> </div>
<!-- duallistbox双列表框插件 --> <!-- duallistbox双列表框插件 -->
<div th:fragment="bootstrap-duallistbox-css"> <div th:fragment="bootstrap-duallistbox-css">
<link th:href="@{/ajax/libs/duallistbox/bootstrap-duallistbox.min.css}" rel="stylesheet"/> <link th:href="@{/ajax/libs/duallistbox/bootstrap-duallistbox.min.css}" rel="stylesheet"/>

1
ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/taskCgjlVerify.html

@ -314,7 +314,6 @@
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); $('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val());
} }
var tableData = $("#bootstrap-sub-table-purchaseQuoteChild").bootstrapTable('getData'); var tableData = $("#bootstrap-sub-table-purchaseQuoteChild").bootstrapTable('getData');
$('input[name="purchaseQuoteChildLists"]').val(JSON.stringify(tableData));
var formData = $("#form-purchaseQuote-cgjl-audit").serialize(); var formData = $("#form-purchaseQuote-cgjl-audit").serialize();
$.operate.save(prefix + "/complete/" + taskId,formData); $.operate.save(prefix + "/complete/" + taskId,formData);
} }

16
ruoyi-admin/src/main/resources/templates/system/salesOrder/add.html

@ -184,7 +184,7 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required">是否含税:</label> <label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input required type="radio" th:id="${'confirmTax_' + dict.dictCode}" <input required type="radio" th:id="${'confirmTax_' + dict.dictCode}"
name="confirmTax" th:value="${dict.dictValue}" th:checked="${dict.default}"> name="confirmTax" th:value="${dict.dictValue}" th:checked="${dict.default}">
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
@ -325,7 +325,7 @@
{checkbox: true}, {checkbox: true},
{field: 'index',align: 'center', title: "序号", {field: 'index',align: 'center', title: "序号",
formatter: function (value, row, index,column) { formatter: function (value, row, index,column) {
return $.table.serialNumber(index) - 1; return $.table.serialNumber(index);
} }
}, },
{title: '物料索引id',field: 'materialId',align: 'center',visible: false}, {title: '物料索引id',field: 'materialId',align: 'center',visible: false},
@ -848,14 +848,14 @@
var iframeWin = window[layero.find('iframe')[0]['name']]; var iframeWin = window[layero.find('iframe')[0]['name']];
var rowData = iframeWin.$('#bootstrap-select-table').bootstrapTable('getSelections'); var rowData = iframeWin.$('#bootstrap-select-table').bootstrapTable('getSelections');
//判断是否重复 //判断是否重复
var rows = $("#bootstrap-sub-table-order").bootstrapTable('getData').length; var rows = rowData.length;
for(var j=0;i<rows;j++){ var materialData = $("#bootstrap-sub-table-order").bootstrapTable('getData');
var data = $("#bootstrap-sub-table-order").bootstrapTable('getData'); for(var j=0;j<rows;j++){
for (var i = 0;i<data.length;j++){ for (var i = 0;i< materialData.length;i++){
if(data[j].materialNo==rowData[j].materialNo){ if(rowData[j].materialNo == materialData[i].materialCode){
//如果是物料料号的相同,则从rowData清除相同的料号物料 //如果是物料料号的相同,则从rowData清除相同的料号物料
rowData.splice(j,1);
$.modal.alertError("不能选择已添加过的相同料号" + rowData[j].materialNo); $.modal.alertError("不能选择已添加过的相同料号" + rowData[j].materialNo);
rowData.splice(j,1);
return; return;
} }
} }

12
ruoyi-admin/src/main/resources/templates/system/salesOrder/detail.html

@ -202,8 +202,8 @@
<label class="col-sm-3 control-label is-required">是否含税:</label> <label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<input required type="radio" th:id="${'confirmTax_' + dict.dictCode}" <input type="radio" th:id="${'confirmTax_' + dict.dictCode}"
name="confirmTax" th:value="${dict.dictValue}" th:checked="${dict.default}" th:disabled="${dict.default ? 'disabled' : ''}"> name="confirmTax" th:value="${dict.dictValue}" th:field="*{confirmTax}" disabled required />
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>
@ -218,8 +218,8 @@
<label class="col-sm-3 control-label is-required">是否开票:</label> <label class="col-sm-3 control-label is-required">是否开票:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input required type="radio" th:id="${'invoice_' + dict.dictCode}" <input type="radio" th:id="${'invoice_' + dict.dictCode}"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" th:disabled="${dict.default ? 'disabled' : ''}"> name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}" disabled required>
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>
@ -246,8 +246,8 @@
<label class="col-sm-3 control-label">计划交付时间:</label> <label class="col-sm-3 control-label">计划交付时间:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="input-group date"> <div class="input-group date">
<input name="deliveryTime" class="form-control" placeholder="yyyy-mm-dd" type="text" disabled/> <input name="deliveryTime" class="form-control" placeholder="yyyy-mm-dd" type="text" th:value="*{deliveryTime}" disabled/>
<span class="input-group-addon" th:value="*{deliveryTime}" disabled><i class="fa fa-calendar"></i></span> <span class="input-group-addon" disabled><i class="fa fa-calendar"></i></span>
</div> </div>
</div> </div>
</div> </div>

19
ruoyi-admin/src/main/resources/templates/system/salesOrder/edit.html

@ -95,6 +95,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly> <input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text">
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">事业部:</label> <label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -204,6 +210,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required" id="rmbLabel">国内税率:</label> <label class="col-sm-3 control-label is-required" id="rmbLabel">国内税率:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -694,14 +701,14 @@
if (rmb1== null){ if (rmb1== null){
rmb1 = 0; rmb1 = 0;
} }
var rows = $("#bootstrap-table-editOrder").bootstrapTable('getData').length; var rows = rowData.length;
for(var j=0;i<rows;j++){ var materialData = $("#bootstrap-table-editOrder").bootstrapTable('getData');
var data = $("#bootstrap-table-editOrder").bootstrapTable('getData'); for(var j=0;j<rows;j++){
for (var i = 0;i<data.length;j++){ for (var i = 0;i< data.length;i++){
if(data[j].materialNo==rowData[j].materialNo){ if(rowData[j].materialNo == materialData[i].materialCode){
//如果是物料料号的相同,则从rowData清除相同的料号物料 //如果是物料料号的相同,则从rowData清除相同的料号物料
rowData.splice(j,1);
$.modal.alertError("不能选择已添加过的相同料号" + rowData[j].materialNo); $.modal.alertError("不能选择已添加过的相同料号" + rowData[j].materialNo);
rowData.splice(j,1);
return; return;
} }
} }

2
ruoyi-admin/src/main/resources/templates/system/salesOrder/salesOrder.html

@ -316,7 +316,7 @@
{title: '物料数合计',field: 'materialSum'}, {title: '物料数合计',field: 'materialSum'},
{title: '数量合计',field: 'enterpriseSum'}, {title: '数量合计',field: 'enterpriseSum'},
{title: '是否含税',field:'confirmTax',formatter:function(value, row, index) { {title: '是否含税',field:'confirmTax',formatter:function(value, row, index) {
$.table.selectDictLabel(confirmTaxDatas, value); return $.table.selectDictLabel(confirmTaxDatas, value);
} }
}, },
{title: '不含税单价(RMB)',field: 'noRmbPrice',visible:false}, {title: '不含税单价(RMB)',field: 'noRmbPrice',visible:false},

12
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskModifyApply.html

@ -66,6 +66,12 @@
<input required name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" readonly> <input required name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" readonly>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">事业部:</label> <label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -164,9 +170,9 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label is-required">是否含税:</label> <label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" th:id="${'confirmTax_' + dict.dictCode}" required <input type="radio" th:id="${'confirmTax_' + dict.dictCode}" required
name="confirmTax" th:value="${dict.dictValue}" th:checked="${dict.default}"> name="confirmTax" th:value="${dict.dictValue}" th:field="*{confirmTax}" />
<label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>
@ -182,7 +188,7 @@
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input required type="radio" th:id="${'invoice_' + dict.dictCode}" <input required type="radio" th:id="${'invoice_' + dict.dictCode}"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}"> name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}">
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>

17
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwjlVerify.html

@ -64,6 +64,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly> <input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">事业部:</label> <label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -159,10 +165,10 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-6 control-label is-required">是否含税:</label> <label class="col-sm-6 control-label is-required">是否含税:</label>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" th:id="${'confirmFax_' + dict.dictCode}" name="confirmFax" <input type="radio" th:id="${'confirmTax_' + dict.dictCode}" name="confirmTax"
th:value="${dict.dictValue}" th:checked="${dict.isDefault == 'Y' ? true : false}" disabled required> th:value="${dict.dictValue}" th:field="*{confirmTax}" disabled required>
<label th:for="${'confirmFax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>
</div> </div>
@ -177,7 +183,8 @@
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" <input type="radio"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" disabled required> name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}"
th:field="*{invoice}" disabled required />
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>

18
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskYwzgVerify.html

@ -64,6 +64,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly> <input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">事业部:</label> <label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -157,12 +163,12 @@
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-6 control-label is-required">是否含税:</label> <label class="col-sm-3 control-label is-required">是否含税:</label>
<div class="col-sm-6"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}">
<input type="radio" th:id="${'confirmFax_' + dict.dictCode}" name="confirmFax" <input type="radio" th:id="${'confirmTax_' + dict.dictCode}" name="confirmTax"
th:value="${dict.dictValue}" th:checked="${dict.isDefault == 'Y' ? true : false}" disabled required> th:value="${dict.dictValue}" th:checked="*{confirmTax}" disabled required>
<label th:for="${'confirmFax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>
</div> </div>
@ -177,7 +183,7 @@
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" <input type="radio"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" disabled required> name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}" disabled required>
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>

18
ruoyi-admin/src/main/resources/templates/system/salesOrder/taskZozjVerify.html

@ -64,6 +64,12 @@
<input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly> <input name="enterpriseName" class="form-control" type="text" th:field="*{enterpriseName}" required readonly>
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">客户料号:</label>
<div class="col-sm-8">
<input id="enterpriseMaterialNo" name="enterpriseMaterialNo" th:field="*{enterpriseMaterialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">事业部:</label> <label class="col-sm-3 control-label">事业部:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -159,10 +165,10 @@
<div class="form-group"> <div class="form-group">
<label class="col-sm-6 control-label is-required">是否含税:</label> <label class="col-sm-6 control-label is-required">是否含税:</label>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_confirm_tax')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" th:id="${'confirmFax_' + dict.dictCode}" name="confirmFax" <input type="radio" th:id="${'confirmTax_' + dict.dictCode}" name="confirmTax"
th:value="${dict.dictValue}" th:checked="${dict.isDefault == 'Y' ? true : false}" disabled required> th:value="${dict.dictValue}" th:field="*{confirmTax}" disabled required>
<label th:for="${'confirmFax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'confirmTax_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>
</div> </div>
@ -177,7 +183,7 @@
<div class="col-sm-8"> <div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}"> <div class="radio-box" th:each="dict : ${@dict.getType('sys_whether')}">
<input type="radio" <input type="radio"
name="invoice" th:value="${dict.dictValue}" th:checked="${dict.default}" disabled required> name="invoice" th:value="${dict.dictValue}" th:field="*{invoice}" disabled required>
<label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label> <label th:for="${'invoice_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div> </div>
</div> </div>
@ -444,7 +450,7 @@
$("input[name='enterpriseName']").val(data.enterpriseName); $("input[name='enterpriseName']").val(data.enterpriseName);
$("input[name='customerPurser']").val(data.customerPurser); $("input[name='customerPurser']").val(data.customerPurser);
$("input[name='taxRate']").val(data.taxRate); $("input[name='taxRate']").val(data.taxRate);
$("input[name='confirmFax']").val(data.confirmTax); $("input[name='confirmTax']").val(data.confirmTax);
$("#commonCurrency_add").val(data.commonCurrency).trigger('change'); $("#commonCurrency_add").val(data.commonCurrency).trigger('change');
commonCurrency = $("#commonCurrency_edit option:selected").val(); commonCurrency = $("#commonCurrency_edit option:selected").val();
console.log("commonCurrency",commonCurrency); console.log("commonCurrency",commonCurrency);

48
ruoyi-admin/src/main/resources/templates/system/supplier/add.html

@ -171,6 +171,18 @@
<input name="bankAccount" class="form-control" type="text"> <input name="bankAccount" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text">
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label> <label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -210,6 +222,42 @@
<input name="taxRate" class="form-control" type="text" placeholder="%"> <input name="taxRate" class="form-control" type="text" placeholder="%">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">证件:</label> <label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10"> <div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/detail.html

@ -179,6 +179,18 @@
<input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text"> <input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label> <label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -220,6 +232,42 @@
class="form-control" type="text" placeholder="%"> class="form-control" type="text" placeholder="%">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" disabled required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" disabled/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required disabled />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">证件:</label> <label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10"> <div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/edit.html

@ -172,6 +172,18 @@
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text"> <input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label> <label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -211,6 +223,42 @@
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" placeholder="%"> <input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" placeholder="%">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">证件:</label> <label class="col-sm-3 control-label">证件:</label>
<div class="col-sm-8"> <div class="col-sm-8">

48
ruoyi-admin/src/main/resources/templates/system/supplier/taskCgjlVerify.html

@ -207,6 +207,18 @@
<input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text"> <input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label> <label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -248,6 +260,42 @@
class="form-control" type="text" placeholder="%"> class="form-control" type="text" placeholder="%">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" disabled required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" disabled/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required disabled />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">证件:</label> <label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10"> <div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/taskCgzgVerify.html

@ -207,6 +207,18 @@
<input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text"> <input name="bankAccount" disabled th:field="*{bankAccount}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required disabled />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label> <label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -248,6 +260,42 @@
class="form-control" type="text" placeholder="%"> class="form-control" type="text" placeholder="%">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" disabled required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" disabled/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required disabled />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required disabled />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-2 control-label">证件:</label> <label class="col-sm-2 control-label">证件:</label>
<div class="col-sm-10"> <div class="col-sm-10">

48
ruoyi-admin/src/main/resources/templates/system/supplier/taskModifyApply.html

@ -180,6 +180,18 @@
<input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text"> <input name="bankAccount" th:field="*{bankAccount}" class="form-control" type="text">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司名称:</label>
<div class="col-sm-8">
<input name="invoiceCompanyName" class="form-control" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">开票公司税号:</label>
<div class="col-sm-8">
<input name="companyTaxNumber" class="form-control" type="text" required />
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">RMB注册资金:</label> <label class="col-sm-3 control-label">RMB注册资金:</label>
<div class="col-sm-8"> <div class="col-sm-8">
@ -219,6 +231,42 @@
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" placeholder="%"> <input name="taxRate" th:field="*{taxRate}" class="form-control" type="text" placeholder="%">
</div> </div>
</div> </div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人:</label>
<div class="col-sm-8">
<input name="deliverPerson" class="form-control" th:field="*{deliverPerson}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人电话:</label>
<div class="col-sm-8">
<input name="deliverPersonPhone" class="form-control" th:field="*{deliverPersonPhone}" type="text" required />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">发货人地址:</label>
<div class="col-sm-8">
<input name="deliverPersonAddress" class="form-control" th:field="*{deliverPersonAddress}" type="text" />
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人:</label>
<div class="col-sm-8">
<input name="receiverPerson" class="form-control" th:field="*{receiverPerson}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货人电话:</label>
<div class="col-sm-8">
<input name="receiverPersonPhone" class="form-control" th:field="*{receiverPersonPhone}" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">收货地址:</label>
<div class="col-sm-8">
<input name="receiverAddress" class="form-control" th:field="*{receiverAddress}" type="text" required>
</div>
</div>
<div class="form-group"> <div class="form-group">
<label class="col-sm-3 control-label">证件:</label> <label class="col-sm-3 control-label">证件:</label>
<div class="col-sm-8"> <div class="col-sm-8">

Loading…
Cancel
Save