protected virtual Exception checkCarrierDataIsComplete() { if (String.IsNullOrEmpty(_invItem.CarrierType)) { return(new InvoiceException("上傳載具資料不完全,請檢查;1.載具類別、2.顯碼或隱瑪至少填一。")); } else { if (_invItem.CarrierType.Length > 6 || (_invItem.CarrierId1 != null && _invItem.CarrierId1.Length > 64) || (_invItem.CarrierId2 != null && _invItem.CarrierId2.Length > 64)) { return(new InvoiceException(String.Format("載具類別或顯碼ID、隱碼ID的長度超出限制;載具類別:6碼、顯碼及隱碼ID:64。上傳資料→載具類別 {0}、顯碼ID {1}、隱碼ID {2}。", _invItem.CarrierType, _invItem.CarrierId1, _invItem.CarrierId2))); } _carrier = new InvoiceCarrier { CarrierType = _invItem.CarrierType }; if (!String.IsNullOrEmpty(_invItem.CarrierId1)) { if (_invItem.CarrierId1.Length > 64) { return(new InvoiceException(String.Format("載具類別或顯碼ID、隱碼ID的長度超出限制;載具類別:6碼、顯碼及隱碼ID:64。上傳資料→載具類別 {0}、顯碼ID {1}、隱碼ID {2}。", _invItem.CarrierType, _invItem.CarrierId1, _invItem.CarrierId2))); } _carrier.CarrierNo = _invItem.CarrierId1; } if (!String.IsNullOrEmpty(_invItem.CarrierId2)) { if (_invItem.CarrierId2.Length > 64) { return(new InvoiceException(String.Format("載具類別或顯碼ID、隱碼ID的長度超出限制;載具類別:6碼、顯碼及隱碼ID:64。上傳資料→載具類別 {0}、顯碼ID {1}、隱碼ID {2}。", _invItem.CarrierType, _invItem.CarrierId1, _invItem.CarrierId2))); } _carrier.CarrierNo2 = _invItem.CarrierId2; } if (_carrier.CarrierNo == null) { if (_carrier.CarrierNo2 == null) { return(new InvoiceException("上傳載具資料不完全,請檢查;1.載具類別、2.顯碼或隱瑪至少填一。")); } else { _carrier.CarrierNo = _carrier.CarrierNo2; } } else { if (_carrier.CarrierNo2 == null) { _carrier.CarrierNo2 = _carrier.CarrierNo; } } } return(null); }
protected virtual InvoiceException checkPublicCarrier() { if (_invItem.CarrierType == __CELLPHONE_BARCODE) { _invItem.CarrierId1 = _invItem.CarrierId1.GetEfficientString()?.ToUpper(); _invItem.CarrierId2 = _invItem.CarrierId2.GetEfficientString()?.ToUpper(); if (checkPublicCarrierId(_invItem.CarrierId1)) { _carrier = new InvoiceCarrier { CarrierType = _invItem.CarrierType, CarrierNo = _invItem.CarrierId1, CarrierNo2 = _invItem.CarrierId1 }; return(null); } else if (checkPublicCarrierId(_invItem.CarrierId2)) { _carrier = new InvoiceCarrier { CarrierType = _invItem.CarrierType, CarrierNo = _invItem.CarrierId2, CarrierNo2 = _invItem.CarrierId2 }; return(null); } } else if (_invItem.CarrierType == __自然人憑證) { if (_invItem.CarrierId1 != null && Regex.IsMatch(_invItem.CarrierId1, "^[A-Z]{2}[0-9]{14}$")) { _carrier = new InvoiceCarrier { CarrierType = _invItem.CarrierType, CarrierNo = _invItem.CarrierId1, CarrierNo2 = _invItem.CarrierId1 }; return(null); } else if (_invItem.CarrierId2 != null && Regex.IsMatch(_invItem.CarrierId2, "^[A-Z]{2}[0-9]{14}$")) { _carrier = new InvoiceCarrier { CarrierType = _invItem.CarrierType, CarrierNo = _invItem.CarrierId2, CarrierNo2 = _invItem.CarrierId2 }; return(null); } } return(new InvoiceException("載具號碼、類別不符合共通性載具") { RequestName = "CarrierId1" }); }