public string GetNextCustomerOrderID() { try { ReceiptTransactionType transType = ReceiptTransactionType.OrnamentRepairReturn; string storeId = LSRetailPosis.Settings.ApplicationSettings.Terminal.StoreId; string terminalId = LSRetailPosis.Settings.ApplicationSettings.Terminal.TerminalId; string staffId = pos.OperatorId; string mask; string funcProfileId = LSRetailPosis.Settings.FunctionalityProfiles.Functions.ProfileId; orderNumber((int)transType, funcProfileId, out mask); if (string.IsNullOrEmpty(mask)) { return(string.Empty); } else { string seedValue = GetSeedVal().ToString(); return(ReceiptMaskFiller.FillMask(mask, seedValue, storeId, terminalId, staffId)); } } catch (Exception ex) { LSRetailPosis.ApplicationExceptionHandler.HandleException(this.ToString(), ex); throw; } }
private NumberSequenceSeedData GetNumberSequenceDataByReceiptId(SalesTransaction salesTransaction) { ReceiptTransactionType receiptType = NumberSequenceSeedTypeHelper.GetReceiptTransactionType(salesTransaction.TransactionType, salesTransaction.NetAmountWithNoTax, salesTransaction.CustomerOrderMode); NumberSequenceSeedType seedType = NumberSequenceSeedTypeHelper.GetNumberSequenceSeedType(receiptType); // get receipt mask from db string functionalityProfileId = this.GetOrgUnit().FunctionalityProfileId; var getReceiptMaskRequest = new GetReceiptMaskDataRequest(functionalityProfileId, receiptType); ReceiptMask mask = this.Context.Runtime.Execute <SingleEntityDataServiceResponse <ReceiptMask> >( getReceiptMaskRequest, this.Context).Entity; // parse receipt number long numberSequenceId; // if mask is not available, try parsing it as a integer if (mask == null) { if (!long.TryParse(salesTransaction.ReceiptId, out numberSequenceId)) { string message = string.Format("Receipt mask is not available for receipt type {0} when using functionality profile {1}. Parsing receipt identifier as a number failed.", receiptType, functionalityProfileId); RetailLogger.Log.CrtWorkflowParsingReceiptIdentifierFailure(receiptType.ToString(), functionalityProfileId); throw new ConfigurationException(ConfigurationErrors.Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration, ExceptionSeverity.Warning, message); } } else { numberSequenceId = ReceiptMaskFiller.GetNumberSequenceFromReceipt(mask.Mask, salesTransaction.ReceiptId); } // compose number sequence seed object return(new NumberSequenceSeedData { DataType = seedType, DataValue = IncrementByOne(numberSequenceId) }); }