|
|
@@ -2239,6 +2239,9 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
}
|
|
|
}
|
|
|
jsonObject1.put("IEXCHRATE",orderData.get("nflat"));//汇率
|
|
|
+// System.out.println("汇率1\t"+orderData.get("nflat"));
|
|
|
+// orderData.put("nflat","7.0663");
|
|
|
+// System.out.println("汇率2\t"+orderData.get("nflat"));
|
|
|
jsonObject1.put("CEXCH_NAME",orderData.get("cexchname"));//币种名称
|
|
|
|
|
|
if(!orderData.get("cexchname").equals("人民币")){//不为人民币
|
|
|
@@ -2262,6 +2265,8 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
List<Object> autoIds=new ArrayList<>();
|
|
|
BigDecimal dzMoney=new BigDecimal("0");//单证金额合计
|
|
|
BigDecimal u8Money=new BigDecimal("0");//u8金额合计
|
|
|
+ BigDecimal dzUsdMoney=new BigDecimal("0");//单证金额合计
|
|
|
+ BigDecimal u8UsdMoney=new BigDecimal("0");//u8美元金额合计
|
|
|
for (SyPackingListTailoringItem item : listTailoringItems){
|
|
|
JSONObject jsonObject=new JSONObject();
|
|
|
jsonObject.put("IQUANTITY",item.getTotal());//净重
|
|
|
@@ -2272,7 +2277,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
if (istc2!=null&&istc2.equals("1")){
|
|
|
item.setMemo("TC证书");
|
|
|
}
|
|
|
- jsonObject.put("CBMEMO",item.getMemo());//备注
|
|
|
+ jsonObject.put("CBMEMO",item.getMemo());//备注 IORIMONEY
|
|
|
for (Map<String,Object> map : invoices){
|
|
|
if(Double.parseDouble(map.get("iQuantity").toString())==Double.parseDouble(jsonObject.get("IQUANTITY").toString())&&
|
|
|
map.get("cInvCode").toString().equalsIgnoreCase(item.getInventoryCode())&&map.get("cFree2").equals(item.getSize())
|
|
|
@@ -2294,7 +2299,49 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
BigDecimal u8Price=new BigDecimal(jsonObject.get("IORITAXCOST").toString());
|
|
|
dzMoney=dzMoney.add(item.getTotal().multiply(u8Price));//单证合计
|
|
|
u8Money=u8Money.add(u8Price.multiply(item.getTotal()).setScale(2, RoundingMode.HALF_UP));//单证合计
|
|
|
- jsonObject.put("IORIMONEY",item.getTotal().multiply(u8Price).setScale(2, RoundingMode.HALF_UP));//改成使用报关单价*成衣参考单价
|
|
|
+
|
|
|
+
|
|
|
+ BigDecimal total=new BigDecimal(oConvertUtils.getString(item.getTotal()));//数量
|
|
|
+ BigDecimal nflat=new BigDecimal(oConvertUtils.getString(jsonObject1.get("IEXCHRATE")));//汇率
|
|
|
+ BigDecimal taxPrice=new BigDecimal(oConvertUtils.getString(u8Price));//原币含税单价
|
|
|
+ BigDecimal totalPrice=total.multiply(taxPrice).setScale(2,RoundingMode.HALF_UP);//含税单价*入库数量=总价
|
|
|
+ BigDecimal itaxrate=new BigDecimal("1.13");//税率
|
|
|
+ if (account.equals("101")){
|
|
|
+ itaxrate=new BigDecimal("1");//税率
|
|
|
+ }
|
|
|
+ BigDecimal ioricost=taxPrice.divide(itaxrate,4, RoundingMode.HALF_UP);//原币无税单价
|
|
|
+ BigDecimal totalIoricost=totalPrice.divide(itaxrate,2,RoundingMode.HALF_UP);//原币无税金额
|
|
|
+ BigDecimal taxrate2=totalPrice.subtract(totalIoricost);//税额
|
|
|
+
|
|
|
+ jsonObject.put("MCPRICE","1");//不自动计算金额
|
|
|
+ //原币
|
|
|
+ jsonObject.put("IORITAXCOST",oConvertUtils.getString(taxPrice.setScale(4,RoundingMode.HALF_UP)));//原币含税单价
|
|
|
+ jsonObject.put("IORICOST",oConvertUtils.getString(ioricost.setScale(4,RoundingMode.HALF_UP)));//原币无税单价
|
|
|
+ jsonObject.put("IORIMONEY",oConvertUtils.getString(totalIoricost.setScale(2,RoundingMode.HALF_UP)));//原币无税金额
|
|
|
+ jsonObject.put("IORISUM",oConvertUtils.getString(totalPrice.setScale(2,RoundingMode.HALF_UP)));//原币含税金额
|
|
|
+ jsonObject.put("IORITAXPRICE",oConvertUtils.getString(taxrate2.setScale(2,RoundingMode.HALF_UP)));//原币税额
|
|
|
+// System.out.println("taxPrice\t"+taxPrice.setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\tioricost\t"+ioricost.setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\ttotalIoricost\t"+totalIoricost.setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\ttotalPrice\t"+totalPrice.setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\ttaxrate2\t"+taxrate2.setScale(2,RoundingMode.HALF_UP));
|
|
|
+ //本币
|
|
|
+ jsonObject.put("INATTAXPRICE",oConvertUtils.getString(taxPrice.multiply(nflat).setScale(4,RoundingMode.HALF_UP)));//本币含税单价
|
|
|
+ jsonObject.put("ICOST",oConvertUtils.getString(ioricost.multiply(nflat).setScale(4,RoundingMode.HALF_UP)));//本币无税单价
|
|
|
+ jsonObject.put("IMONEY",oConvertUtils.getString(totalIoricost.multiply(nflat).setScale(2,RoundingMode.HALF_UP)));//本币金额
|
|
|
+ jsonObject.put("ITAXPRICE",oConvertUtils.getString(taxrate2.multiply(nflat).setScale(2,RoundingMode.HALF_UP)));//本币税额
|
|
|
+ jsonObject.put("ISUM",oConvertUtils.getString(totalPrice.multiply(nflat).setScale(2,RoundingMode.HALF_UP)));//本币含税金额
|
|
|
+// System.out.println("1taxPrice\t"+taxPrice.multiply(nflat).setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\t1ioricost\t"+ioricost.multiply(nflat).setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\t1totalIoricost\t"+totalIoricost.multiply(nflat).setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\t1totalPrice\t"+totalPrice.multiply(nflat).setScale(2,RoundingMode.HALF_UP)
|
|
|
+// +"\t1taxrate2\t"+taxrate2.multiply(nflat).setScale(2,RoundingMode.HALF_UP));
|
|
|
+
|
|
|
+ u8UsdMoney=u8UsdMoney.add(totalIoricost.multiply(nflat).setScale(2,RoundingMode.HALF_UP));
|
|
|
+ dzUsdMoney=dzUsdMoney.add(totalIoricost.multiply(nflat));
|
|
|
+// jsonObject.put("IORIMONEY",item.getTotal().multiply(u8Price).setScale(2, RoundingMode.HALF_UP));//改成使用报关单价*成衣参考单价
|
|
|
+
|
|
|
+
|
|
|
getcFree(jsonObject,map);
|
|
|
// jsonObject.put("CDEFINE28",item.getSmallPo());//小po
|
|
|
break;
|
|
|
@@ -2305,9 +2352,16 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
jsonArrays.add(jsonObject);
|
|
|
}
|
|
|
dzMoney=dzMoney.setScale(2, RoundingMode.HALF_UP);
|
|
|
+ dzUsdMoney=dzUsdMoney.setScale(2, RoundingMode.HALF_UP);
|
|
|
+// System.out.println("dzMoney\t"+dzMoney);
|
|
|
+// System.out.println("u8Money\t"+u8Money);
|
|
|
+// System.out.println("dzUsdMoney\t"+dzUsdMoney);
|
|
|
+// System.out.println("u8UsdMoney\t"+u8UsdMoney);
|
|
|
if(dzMoney.compareTo(u8Money)!=0){
|
|
|
BigDecimal dividePrice =dzMoney.subtract(u8Money);
|
|
|
BigDecimal ioriMoney=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("IORIMONEY").toString());
|
|
|
+// System.out.println("dividePrice\t"+dividePrice);
|
|
|
+// System.out.println("ioriMoney\t"+ioriMoney);
|
|
|
jsonArrays.getJSONObject(jsonArrays.size()-1).put("IORIMONEY",ioriMoney.add(dividePrice));
|
|
|
}
|
|
|
// jsonObject.put("IORIMONEY",item.getUnitPrice());//金额
|
|
|
@@ -2433,6 +2487,9 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
jsonObject1.put("IEXCHRATE",order.get("iExchRate"));//汇率
|
|
|
jsonObject1.put("CEXCH_NAME",order.get("cexch_name"));//币种名称
|
|
|
jsonObject1.put("ITAXRATE",order.get("iTaxRate"));//税率
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
if(account.equals("103")){
|
|
|
//jsonObject1.put("iTaxRate","13");//税率
|
|
|
}
|
|
|
@@ -2457,6 +2514,8 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
List<Object> autoIds=new ArrayList<>();
|
|
|
for (SyPackingListTailoringItem item : listFabricItems){
|
|
|
JSONObject jsonObject=new JSONObject();
|
|
|
+
|
|
|
+
|
|
|
jsonObject.put("IQUANTITY",item.getTotal());//净重
|
|
|
jsonObject.put("size",item.getSize());
|
|
|
jsonObject.put("CINVCODE",item.getInventoryCode());//存货编码
|
|
|
@@ -2474,9 +2533,12 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
jsonObject.put("AUTOID_DIS",map.get("AutoID"));
|
|
|
getcFree(jsonObject,map);
|
|
|
// jsonObject.put("CDEFINE28",item.getSmallPo());
|
|
|
+
|
|
|
+ jsonObject.put("ITAXUNITPRICE",item.getCustomsDeclarationUnitPrice());//改成使用报关单价
|
|
|
if(item.getAcSetNo().equals("102")&&account.equals("102")){
|
|
|
jsonObject.put("ITAXUNITPRICE",item.getCustomsDeclarationUnitPrice());//改成使用报关单价
|
|
|
}
|
|
|
+
|
|
|
if(item.getOmpoAccount().equals("103")&&account.equals("103")){
|
|
|
BigDecimal unitPrice=new BigDecimal(map.get("iTaxUnitPrice").toString());
|
|
|
jsonObject.put("ITAXUNITPRICE",unitPrice.multiply(item.getAccountPrice()));//改成使用报关单价*成衣参考单价
|
|
|
@@ -2484,6 +2546,33 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ BigDecimal total=new BigDecimal(oConvertUtils.getString(item.getTotal()));//数量
|
|
|
+ BigDecimal nflat=new BigDecimal(oConvertUtils.getString(jsonObject1.get("IEXCHRATE")));//汇率
|
|
|
+ BigDecimal taxPrice=new BigDecimal(oConvertUtils.getString(jsonObject.get("ITAXUNITPRICE")));//原币含税单价
|
|
|
+ BigDecimal totalPrice=total.multiply(taxPrice).setScale(2, RoundingMode.HALF_UP);//含税单价*入库数量=总价
|
|
|
+ double taxrate=0;
|
|
|
+ if (order.get("iTaxRate")!=null){
|
|
|
+ taxrate=Double.parseDouble(order.get("iTaxRate").toString());
|
|
|
+ }
|
|
|
+ BigDecimal itaxrate=new BigDecimal((100.0+taxrate)/100).setScale(2, RoundingMode.HALF_UP);//税率
|
|
|
+ BigDecimal ioricost=taxPrice.divide(itaxrate,4, RoundingMode.HALF_UP);//原币无税单价
|
|
|
+ BigDecimal totalIoricost=totalPrice.divide(itaxrate,2,RoundingMode.HALF_UP);//原币无税金额
|
|
|
+ BigDecimal taxrate2=totalPrice.subtract(totalIoricost);//税额
|
|
|
+
|
|
|
+ jsonObject.put("MCPRICE","1");//不自动计算金额
|
|
|
+ jsonObject.put("IUNITPRICE", oConvertUtils.getString(ioricost.setScale(4,RoundingMode.HALF_UP)));//原币无税单价
|
|
|
+ jsonObject.put("ITAXUNITPRICE",oConvertUtils.getString(taxPrice.setScale(4,RoundingMode.HALF_UP)));//原币含税单价
|
|
|
+ jsonObject.put("IMONEY", oConvertUtils.getString(totalIoricost.setScale(2,RoundingMode.HALF_UP)));//原币无税金额
|
|
|
+ jsonObject.put("ITAX", oConvertUtils.getString(taxrate2.setScale(2,RoundingMode.HALF_UP)));//原币税额
|
|
|
+ jsonObject.put("ISUM", oConvertUtils.getString(totalPrice.setScale(2,RoundingMode.HALF_UP)));//原币价税合计
|
|
|
+
|
|
|
+ jsonObject.put("INATUNITPRICE",oConvertUtils.getString(ioricost.multiply(nflat).setScale(4,RoundingMode.HALF_UP)));//本币无税单价
|
|
|
+ jsonObject.put("INATMONEY",oConvertUtils.getString(totalIoricost.multiply(nflat).setScale(2,RoundingMode.HALF_UP)));//本币无税金额
|
|
|
+ jsonObject.put("INATTAX",oConvertUtils.getString(taxrate2.multiply(nflat).setScale(2,RoundingMode.HALF_UP)));//本币税额
|
|
|
+ jsonObject.put("INATSUM",oConvertUtils.getString(totalPrice.multiply(nflat).setScale(2,RoundingMode.HALF_UP)));//本币价税合计
|
|
|
+
|
|
|
+
|
|
|
//jsonObject.put("CDEFINE23",syPackingListTailoringMapper.getUnit(item.getInventoryCode()));//报关单位
|
|
|
jsonObject.put("CDEFINE23",item.getDeclarationUnit());//报关单位
|
|
|
jsonObject.put("CDEFINE31",item.getDeclarationName());//存货名称
|