| | |
| | | messageCount = 0; |
| | | errorflg = false; |
| | | errorMessage = null; |
| | | User useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :UserInfo.getUserId()]; |
| | | User useracc = [ |
| | | SELECT accountid, Work_Location__c, UserPro_Type__c |
| | | FROM user |
| | | WHERE id = :UserInfo.getUserId() |
| | | ]; |
| | | accountid = Useracc.accountid; |
| | | userWorkLocation = Useracc.Work_Location__c; |
| | | agencyProType = Useracc.UserPro_Type__c; |
| | |
| | | res.status = 'Success'; |
| | | res.code = 200; |
| | | res.msg = ''; |
| | | System.debug('res:' + res); |
| | | return res; |
| | | } |
| | | |
| | |
| | | barcodeList.add(csvRecordData[6]); |
| | | if (String.valueOf(csvRecordData[9]) == '个') { |
| | | barcodePieceList.add(csvRecordData[6]); |
| | | barcodePieceMap.put(csvRecordData[6], Integer.valueOf(csvRecordData[7])); |
| | | barcodePieceMap.put( |
| | | csvRecordData[6], |
| | | Integer.valueOf(csvRecordData[7]) |
| | | ); |
| | | } |
| | | } |
| | | String[] csvRecordDataStr = new List<String>(13); |
| | | String[] csvRecordDataStr = new String[13]; |
| | | for (Integer j = 0; j < csvRecordData.size(); j++) { |
| | | csvRecordDataStr[j] = csvRecordData[j]; |
| | | } |
| | |
| | | AND Dealer_Info_text__c = :accountName |
| | | ]; |
| | | for (Consumable_order_details2__c pdinfo : cOrderDet) { |
| | | productBarcodeMap.put(pdinfo.Bar_Code__c, pdinfo.Consumable_Product__c); |
| | | productBarcodeMap.put( |
| | | pdinfo.Bar_Code__c, |
| | | pdinfo.Consumable_Product__c |
| | | ); |
| | | } |
| | | for (String[] csvlistStr : csvRecordStr) { |
| | | if (productBarcodeMap.containsKey(csvlistStr[6])) { |
| | |
| | | GROUP BY Bar_Code__c |
| | | ]; |
| | | for (AggregateResult ar : pieceOrderDet) { |
| | | exitpieceBarcodeMap.put(String.valueOf(ar.get('Bar_Code__c')), Integer.valueOf(ar.get('cnt'))); |
| | | exitpieceBarcodeMap.put( |
| | | String.valueOf(ar.get('Bar_Code__c')), |
| | | Integer.valueOf(ar.get('cnt')) |
| | | ); |
| | | } |
| | | for (String bc : barcodePieceList) { |
| | | if (!exitpieceBarcodeMap.containsKey(bc)) { |
| | |
| | | errorMsg += 'Barcode ' + bc + ' 不存在或单位错误,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (exitpieceBarcodeMap.containsKey(bc) && exitpieceBarcodeMap.get(bc) < barcodePieceMap.get(bc)) { |
| | | } else if ( |
| | | exitpieceBarcodeMap.containsKey(bc) && |
| | | exitpieceBarcodeMap.get(bc) < barcodePieceMap.get(bc) |
| | | ) { |
| | | if (messageCount >= 100) |
| | | break; |
| | | // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, 'Barcode ' + bc + ' 库存不足,请确认。')); |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + csvRecordData[0] + '出货目的为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '出货目的为空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | csvRecordData[0] + |
| | | '出货目的为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + cocObj.Name + '的产品中,存在出库日期为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + cocObj.Name + '的产品中,存在出库日期为空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cocObj.Name + |
| | | '的产品中,存在出库日期为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '医院相关信息不能空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '医院相关信息不能空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单' + |
| | | ass.order.Name + |
| | | '医院相关信息不能空,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | //return null; |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '经销商信息不能空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '经销商信息不能空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单' + |
| | | ass.order.Name + |
| | | '经销商信息不能空,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '不需要二级经销商,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '不需要二级经销商,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单' + |
| | | ass.order.Name + |
| | | '不需要二级经销商,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '经销商信息不能空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '经销商信息不能空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单' + |
| | | ass.order.Name + |
| | | '经销商信息不能空,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | } |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单' + ass.order.Name + '不需要医院相关信息,请确认。') |
| | | // ); |
| | | errorMsg += '出库单' + ass.order.Name + '不需要医院相关信息,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单' + |
| | | ass.order.Name + |
| | | '不需要医院相关信息,请确认。<br />'; |
| | | messageCount++; |
| | | saveFLGbln = true; |
| | | } |
| | |
| | | WHERE Dealer_principal__r.Name = :accountName |
| | | ]; |
| | | for (Agency_Hospital_Link__c hpinfo : hospitalInfo) { |
| | | hospitalSysMap.put(hpinfo.Hospital__r.Management_Code__c, hpinfo.Hospital__c); |
| | | hospitalSysMap.put( |
| | | hpinfo.Hospital__r.Management_Code__c, |
| | | hpinfo.Hospital__c |
| | | ); |
| | | } |
| | | for (Dealer_elationship__c safo : secondAgencyInfo) { |
| | | secondAgencyMap.put(safo.Dealer_subordinate__r.Name, safo.Dealer_subordinate__c); |
| | | secondAgencyMap.put( |
| | | safo.Dealer_subordinate__r.Name, |
| | | safo.Dealer_subordinate__c |
| | | ); |
| | | } |
| | | //出库单信息验证 |
| | | System.debug('hospitalconMap = ' + hospitalconMap); |
| | |
| | | // ' 不存在出库单位,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的barcode ' + cod2Obj.Bar_Code__c + ' 不存在出库单位,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cod2Obj.TracingCode__c + |
| | | '的barcode ' + |
| | | cod2Obj.Bar_Code__c + |
| | | ' 不存在出库单位,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (String.valueOf(csvRecordData[9]) != '盒' && String.valueOf(csvRecordData[9]) != '个') { |
| | | } else if ( |
| | | String.valueOf(csvRecordData[9]) != '盒' && |
| | | String.valueOf(csvRecordData[9]) != '个' |
| | | ) { |
| | | if (messageCount >= 100) |
| | | break; |
| | | // ApexPages.addmessage( |
| | |
| | | // ' 出库单位不正确,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的barcode ' + cod2Obj.Bar_Code__c + ' 出库单位不正确,请确认。'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cod2Obj.TracingCode__c + |
| | | '的barcode ' + |
| | | cod2Obj.Bar_Code__c + |
| | | ' 出库单位不正确,请确认。'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价为空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cod2Obj.TracingCode__c + |
| | | '产品出货单价为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (String.isNotBlank(csvRecordData[8])) { |
| | |
| | | // '产品出货单价不能为0,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '产品出货单价不能为0,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cod2Obj.TracingCode__c + |
| | | '产品出货单价不能为0,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | // '的产品中,存在barcode为空,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的产品中,存在barcode为空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cod2Obj.TracingCode__c + |
| | | '的产品中,存在barcode为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (String.isBlank(csvRecordData[12])) { |
| | |
| | | // ' 不存在或不是在库产品,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的barcode ' + cod2Obj.Bar_Code__c + ' 不存在或不是在库产品,请确认。'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cod2Obj.TracingCode__c + |
| | | '的barcode ' + |
| | | cod2Obj.Bar_Code__c + |
| | | ' 不存在或不是在库产品,请确认。'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } |
| | |
| | | // '的产品中,存在出库日期为空,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + cod2Obj.TracingCode__c + '的产品中,存在出库日期为空,请确认。'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | cod2Obj.TracingCode__c + |
| | | '的产品中,存在出库日期为空,请确认。'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + csvRecordData[0] + '产品出货数量为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '产品出货数量为空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | csvRecordData[0] + |
| | | '产品出货数量为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else if (Decimal.valueOf(csvRecordData[7]) > 1 && String.valueOf(csvRecordData[9]) == '盒') { |
| | | } else if ( |
| | | Decimal.valueOf(csvRecordData[7]) > 1 && |
| | | String.valueOf(csvRecordData[9]) == '盒' |
| | | ) { |
| | | if (messageCount >= 100) |
| | | break; |
| | | // ApexPages.addmessage( |
| | |
| | | // '存在单位是盒,产品出货数量大于1,请确认。' |
| | | // ) |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '存在单位是盒,产品出货数量大于1,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | csvRecordData[0] + |
| | | '存在单位是盒,产品出货数量大于1,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } else { |
| | |
| | | // ApexPages.addmessage( |
| | | // new ApexPages.message(ApexPages.severity.ERROR, '出库单 ' + csvRecordData[0] + '产品出货单价为空,请确认。') |
| | | // ); |
| | | errorMsg += '出库单 ' + csvRecordData[0] + '出库单 ' + csvRecordData[0] + '产品出货单价为空,请确认。<br />'; |
| | | errorMsg += |
| | | '出库单 ' + |
| | | csvRecordData[0] + |
| | | '出库单 ' + |
| | | csvRecordData[0] + |
| | | '产品出货单价为空,请确认。<br />'; |
| | | saveFLGbln = true; |
| | | messageCount++; |
| | | } |
| | |
| | | codObj.Lose_reason__c = csvRecordData[12]; |
| | | codObj.Used_date__c = Date.parse(csvRecordData[11].trim()); |
| | | product2conMap.put(csvRecordData[12].trim(), csvRecordData[12].trim()); |
| | | orderdetMap.put(csvRecordData[0] + csvRecordData[12], csvRecordData[0] + csvRecordData[12]); |
| | | orderdetMap.put( |
| | | csvRecordData[0] + csvRecordData[12], |
| | | csvRecordData[0] + csvRecordData[12] |
| | | ); |
| | | //orderdetRecords.add(new ConsumableorderdetailsInfo(codObj)); |
| | | } |
| | | } catch (Exception e) { |
| | |
| | | res.entity = data; |
| | | |
| | | csvRecordStr = csvRecordStrLwc; |
| | | orderRecords = (List<ConsumableorderdetailsInfo>)JSON.deserialize(orderRecordsLwc, List<ConsumableorderdetailsInfo>.class); |
| | | orderRecords = (List<ConsumableorderdetailsInfo>) JSON.deserialize( |
| | | orderRecordsLwc, |
| | | List<ConsumableorderdetailsInfo>.class |
| | | ); |
| | | System.debug('orderRecords = ' + orderRecords); |
| | | sqlagencyProType = sqlagencyProTypeLwc; |
| | | userWorkLocation = userWorkLocationLwc; |
| | |
| | | str = '0' + str; |
| | | } |
| | | ass.orderdetails1.Name = ass.orderName + '-' + str; |
| | | ass.orderdetails1.Consumable_order__c = orderInfoMap.get(ass.orderName); |
| | | ass.orderdetails1.Consumable_order__c = orderInfoMap.get( |
| | | ass.orderName |
| | | ); |
| | | ass.orderdetails1.Consumable_Product__c = ass.productName; |
| | | ass.orderdetails1.RecordTypeId = System.Label.RT_ConOrderDetail1_Sale; |
| | | cod.add(ass.orderdetails1); |
| | |
| | | |
| | | //个的数据检索 |
| | | List<Consumable_order_details2__c> cOrderDetPiece = [ |
| | | SELECT Id, Bar_Code__c, RemoveBox_No__c, Name, Consumable_Product__c, Box_Piece__c |
| | | SELECT |
| | | Id, |
| | | Bar_Code__c, |
| | | RemoveBox_No__c, |
| | | Name, |
| | | Consumable_Product__c, |
| | | Box_Piece__c |
| | | FROM Consumable_order_details2__c |
| | | WHERE |
| | | Dealer_Arrive__c = TRUE |
| | |
| | | Decimal idy = 1; |
| | | for (Integer idx = 0; idx < cOrderDetPiece.size(); idx++) { |
| | | Consumable_Order_details2__c cod2 = new Consumable_Order_details2__c(); |
| | | if (cOrderDetPiece[idx].Bar_Code__c == ass.orderdetails2.Bar_Code__c && idy <= ass.pieceCount) { |
| | | if ( |
| | | cOrderDetPiece[idx].Bar_Code__c == ass.orderdetails2.Bar_Code__c && |
| | | idy <= ass.pieceCount |
| | | ) { |
| | | cod2 = cOrderDetPiece[idx].Clone(); |
| | | cod2.Id = cOrderDetPiece[idx].Id; |
| | | cod2.Consumable_Sale_order__c = orderInfoMap.get(ass.orderName); |
| | |
| | | Database.rollback(sp); |
| | | // ApexPages.addMessages(e); |
| | | // return null; |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getStackTraceString(), ''); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | e.getMessage() + e.getStackTraceString(), |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> getorderdetList(List<String[]> csvRecordStr) { |
| | | public static List<ConsumableorderdetailsInfo> getorderdetList( |
| | | List<String[]> csvRecordStr |
| | | ) { |
| | | List<ConsumableorderdetailsInfo> orderdetRecords = new List<ConsumableorderdetailsInfo>(); |
| | | map<string, Decimal> orderdetMap = new Map<string, Decimal>(); |
| | | try { |
| | | for (Integer i = 1; i < csvRecordStr.size(); i++) { |
| | | Consumable_Orderdetails__c codObj = new Consumable_Orderdetails__c(); |
| | | string[] csvRecordData = csvRecordStr[i]; |
| | | if (orderdetMap.containsKey(csvRecordData[0] + csvRecordData[12] + csvRecordData[9])) { |
| | | if ( |
| | | orderdetMap.containsKey( |
| | | csvRecordData[0] + csvRecordData[12] + csvRecordData[9] |
| | | ) |
| | | ) { |
| | | orderdetMap.put( |
| | | csvRecordData[0] + |
| | | csvRecordData[12] + |
| | | csvRecordData[9], |
| | | orderdetMap.get(csvRecordData[0] + csvRecordData[12] + csvRecordData[9]) + Decimal.valueOf(csvRecordData[7]) |
| | | csvRecordData[0] + csvRecordData[12] + csvRecordData[9], |
| | | orderdetMap.get( |
| | | csvRecordData[0] + csvRecordData[12] + csvRecordData[9] |
| | | ) + Decimal.valueOf(csvRecordData[7]) |
| | | ); |
| | | continue; |
| | | } else { |
| | | orderdetMap.put(csvRecordData[0] + csvRecordData[12] + csvRecordData[9], Decimal.valueOf(csvRecordData[7])); |
| | | orderdetMap.put( |
| | | csvRecordData[0] + csvRecordData[12] + csvRecordData[9], |
| | | Decimal.valueOf(csvRecordData[7]) |
| | | ); |
| | | } |
| | | codObj.Remarks__c = csvRecordData[0]; |
| | | codObj.Shipment_Count__c = Decimal.valueOf(csvRecordData[7]); |
| | |
| | | orderdetRecords.add(new ConsumableorderdetailsInfo(codObj)); |
| | | } |
| | | for (ConsumableorderdetailsInfo ass : orderdetRecords) { |
| | | if (orderdetMap.containsKey(ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c)) { |
| | | ass.orderdetails1.Shipment_Count__c = orderdetMap.get(ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c); |
| | | if ( |
| | | orderdetMap.containsKey( |
| | | ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c |
| | | ) |
| | | ) { |
| | | ass.orderdetails1.Shipment_Count__c = orderdetMap.get( |
| | | ass.orderName + ass.productName + ass.orderdetails1.Box_Piece__c |
| | | ); |
| | | } |
| | | } |
| | | System.debug('orderdetRecords = ' + orderdetRecords); |
| | |
| | | } |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> getorderdet2BoxList(List<String[]> csvRecordStr) { |
| | | public static List<ConsumableorderdetailsInfo> getorderdet2BoxList( |
| | | List<String[]> csvRecordStr |
| | | ) { |
| | | barcodeList = new List<String>(); |
| | | List<ConsumableorderdetailsInfo> orderdet2BoxRecords = new List<ConsumableorderdetailsInfo>(); |
| | | try { |
| | |
| | | // cod2Obj.Unitprice_To_agency__c = Decimal.valueOf(csvRecordData[10]); |
| | | //} |
| | | cod2Obj.Return_reason__c = csvRecordData[12]; |
| | | if (String.valueOf(csvRecordData[1]) == '销售给二级经销商' || String.valueOf(csvRecordData[1]) == '直接销售给医院') { |
| | | if ( |
| | | String.valueOf(csvRecordData[1]) == '销售给二级经销商' || |
| | | String.valueOf(csvRecordData[1]) == '直接销售给医院' |
| | | ) { |
| | | cod2Obj.Used_date__c = Date.parse(csvRecordData[11].trim()); |
| | | } else { |
| | | cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); |
| | |
| | | } |
| | | } |
| | | |
| | | public static List<ConsumableorderdetailsInfo> getorderdet2pieceList(List<String[]> csvRecordStr) { |
| | | public static List<ConsumableorderdetailsInfo> getorderdet2pieceList( |
| | | List<String[]> csvRecordStr |
| | | ) { |
| | | barcodePieceList = new List<String>(); |
| | | List<ConsumableorderdetailsInfo> orderdet2PieceRecords = new List<ConsumableorderdetailsInfo>(); |
| | | try { |
| | |
| | | cod2Obj.Delivery_List_RMB__c = Decimal.valueOf(csvRecordData[8]); |
| | | } |
| | | cod2Obj.Return_reason__c = csvRecordData[12]; |
| | | if (String.valueOf(csvRecordData[1]) == '销售给二级经销商' || String.valueOf(csvRecordData[1]) == '直接销售给医院') { |
| | | if ( |
| | | String.valueOf(csvRecordData[1]) == '销售给二级经销商' || |
| | | String.valueOf(csvRecordData[1]) == '直接销售给医院' |
| | | ) { |
| | | cod2Obj.Used_date__c = Date.parse(csvRecordData[11].trim()); |
| | | } else { |
| | | cod2Obj.Send_Date__c = Date.parse(csvRecordData[11].trim()); |
| | |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | @TestVisible |
| | | class ConsumableorderdetailsInfo implements Comparable { |
| | | @AuraEnabled |
| | | public Consumable_order__c order { get; set; } |