浏览代码

发票、结算单调整

huxy 1 天之前
父节点
当前提交
6e6cb4fbb2

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java

@@ -3578,8 +3578,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				ids.add(syPackingListFabric.getDocumentNo().substring(3));
 				String rdrecord01Code=syPackingListTailoringItemMapper.getRdrecord01Code(syPackingListFabric.getDocumentNo().substring(3),"0000000002");
 				if (oConvertUtils.isEmpty(rdrecord01Code)){
-					syPackingListFabric.setSaleInvoiceError(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
-					throw new JeecgBootException(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
+					syPackingListFabric.setSaleInvoiceError(account+"销售出库单号"+syPackingListFabric.getDocumentNo().substring(3)+",找不到对应101的入库单");
+					throw new JeecgBootException(account+"销售出库单号"+syPackingListFabric.getDocumentNo().substring(3)+",找不到对应101的入库单");
 				}
 				syPackingListFabric.setRdrecord32Code(rdrecord01Code);
 				String cdepCode=syPackingListTailoringItemMapper.getRdrecord01(rdrecord01Code);
@@ -3589,8 +3589,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				ids.add(syPackingListFabric.getDocumentNo().substring(3));
 				String rdrecord01Code=syPackingListTailoringItemMapper.getRdrecord01Code(syPackingListFabric.getDocumentNo().substring(3),"0000000001");
 				if (oConvertUtils.isEmpty(rdrecord01Code)){
-					syPackingListFabric.setSaleInvoiceError(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
-					throw new JeecgBootException(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
+					syPackingListFabric.setSaleInvoiceError(account+"销售出库单号"+syPackingListFabric.getDocumentNo().substring(3)+",找不到对应101的入库单");
+					throw new JeecgBootException(account+"销售出库单号"+syPackingListFabric.getDocumentNo().substring(3)+",找不到对应101的入库单");
 				}
 				System.out.println("rdrecord01Code     "+rdrecord01Code);
 				syPackingListFabric.setRdrecord32Code(rdrecord01Code);

+ 44 - 19
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

@@ -2523,7 +2523,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		System.out.println("账套号  "+account+"  结算单JSON  "+jsonArrays2);
 		if (jsonArrays2.size()>0){
 			JSONArray resturnJsonArrays2 = InterfaceConnUtils.doPost(jsonArrays2,"purchasesettle_import");//结算单
-			Map<String,String> codeMaps3 = result(resturnJsonArrays2,"结算单","101");
+			Map<String,String> codeMaps3 = result(resturnJsonArrays2,"结算单",account);
 
 			for (String code1 : codeMaps.keySet()){
 				List<SyPackingListTailoring> listFabricList=codeMaps.get(code1);
@@ -2644,10 +2644,10 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 			}
 			JSONArray jsonArrays=new JSONArray();
 			List<Object> autoIds=new ArrayList<>();
+			BigDecimal dzMoney=new BigDecimal("0");//正确发票金额
+			BigDecimal u8Money=new BigDecimal("0");//传过去的金额
 			for (SyPackingListTailoringItem item : listFabricItems){
 				JSONObject  jsonObject=new JSONObject();
-
-
 				jsonObject.put("IQUANTITY",item.getTotal());//净重
 				jsonObject.put("size",item.getSize());
 				jsonObject.put("CINVCODE",item.getInventoryCode());//存货编码
@@ -2657,6 +2657,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 					item.setMemo("TC证书");
 				}
 				jsonObject.put("CBMEMO",item.getMemo());//备注
+				BigDecimal itaxunitprice=new BigDecimal("0");
 				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())
@@ -2675,9 +2676,12 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 							BigDecimal unitPrice=new BigDecimal(map.get("iTaxUnitPrice").toString());
 							jsonObject.put("ITAXUNITPRICE",unitPrice.multiply(item.getAccountPrice()));//改成使用报关单价*成衣参考单价
 						}
+						itaxunitprice=new BigDecimal(oConvertUtils.getString(jsonObject.get("ITAXUNITPRICE")));
 						break;
 					}
 				}
+				dzMoney=dzMoney.add(itaxunitprice.multiply(item.getTotal()));//非两位数
+				u8Money=u8Money.add(itaxunitprice.multiply(item.getTotal()).setScale(2,BigDecimal.ROUND_HALF_UP));//两位数
 
 				BigDecimal total=new BigDecimal(oConvertUtils.getString(item.getTotal()));//数量
 				BigDecimal nflat=new BigDecimal(oConvertUtils.getString(jsonObject1.get("IEXCHRATE")));//汇率
@@ -2687,22 +2691,22 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 				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);//税额
+				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("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()));//报关单位
@@ -2712,11 +2716,32 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 				jsonObject.put("CWHCODE",syPackingListFabricItemMapper.getVencode(item.getSupplier()));//获取仓库编码
 				jsonArrays.add(jsonObject);
 			}
+			System.out.println("dzMoney\t"+dzMoney);
+			System.out.println("u8Money\t"+u8Money);
+			if(dzMoney.compareTo(u8Money)!=0){
+				BigDecimal dividePrice=dzMoney.subtract(u8Money);
+				BigDecimal ioriMoney=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
+				BigDecimal ioriMoney2=new BigDecimal(jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
+//				jsonObject.put("IMONEY", oConvertUtils.getString(totalIoricost.setScale(2,RoundingMode.HALF_UP)));//原币无税金额
+//				jsonObject.put("ITAX", oConvertUtils.getString(taxrate2.setScale(2,RoundingMode.HALF_UP)));//原币税额
+
+				jsonArrays.getJSONObject(jsonArrays.size()-1).put("MCPRICE","1");
+				System.out.println("价税合计a\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
+				System.out.println("无税金额a\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
+
+				jsonArrays.getJSONObject(jsonArrays.size()-1).put("ISUM",ioriMoney.add(dividePrice).setScale(2,BigDecimal.ROUND_HALF_UP));
+				jsonArrays.getJSONObject(jsonArrays.size()-1).put("IMONEY",ioriMoney2.add(dividePrice).setScale(2,BigDecimal.ROUND_HALF_UP));
+
+				System.out.println("价税合计b\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("ISUM").toString());
+				System.out.println("无税金额b\t"+jsonArrays.getJSONObject(jsonArrays.size()-1).get("IMONEY").toString());
+
+			}
 			jsonObject1.put("DETAILList",jsonArrays);
 			jsonArrays1.add(jsonObject1);
 		}
+		System.out.println("销售发票jsonArrays1\t"+jsonArrays1);
 		text(jsonArrays1,"测试合并推送成衣销售发票");
-		JSONArray resturnJsonArrays = InterfaceConnUtils.doPost(jsonArrays1,"saleinvoice_import");//销售发-票单
+		/*JSONArray resturnJsonArrays = InterfaceConnUtils.doPost(jsonArrays1,"saleinvoice_import");//销售发-票单
 		Map<String,String> codeMaps2 = result(resturnJsonArrays,"销售发票",account);
 		for (String code1 : codeMaps.keySet()){
 			List<SyPackingListTailoring> listTailoringList=codeMaps.get(code1);
@@ -2739,7 +2764,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 					}
 				}
 			}
-		}
+		}*/
 		return "推送成功";
 	}