public InvoiceAutoNumberConfig GetInvoiceAutoNumberConfig(string companyId) { MongoCollection <InvoiceAutoNumberConfig> collection = mongo.MongoDatabase.GetCollection <InvoiceAutoNumberConfig>(typeof(InvoiceAutoNumberConfig).Name); InvoiceAutoNumberConfig cfg = collection.FindOneAs <InvoiceAutoNumberConfig>(Query.And( Query.EQ("_id", typeof(InvoiceAutoNumberConfig).Name), Query.EQ(COMPANY_ID_FIELD, BsonValue.Create(companyId)))); if (cfg == null) { cfg = new InvoiceAutoNumberConfig(typeof(InvoiceAutoNumberConfig).Name, AutoNumberMode.Default, DEFAULT_PREFIX, companyId); collection.Save <InvoiceAutoNumberConfig>(cfg); } return(cfg); }
public InvoiceAutoNumberConfig GetInvoiceAutoNumberConfig(string companyId) { MongoCollection<InvoiceAutoNumberConfig> collection = mongo.MongoDatabase.GetCollection<InvoiceAutoNumberConfig>(typeof(InvoiceAutoNumberConfig).Name); InvoiceAutoNumberConfig cfg = collection.FindOneAs<InvoiceAutoNumberConfig>(Query.And( Query.EQ("_id", typeof(InvoiceAutoNumberConfig).Name), Query.EQ(COMPANY_ID_FIELD, BsonValue.Create(companyId)))); if (cfg == null) { cfg = new InvoiceAutoNumberConfig(typeof(InvoiceAutoNumberConfig).Name, AutoNumberMode.Default, DEFAULT_PREFIX, companyId); collection.Save<InvoiceAutoNumberConfig>(cfg); } return cfg; }
public string GenerateInvoiceNumber(DateTime transactionDate, string companyId) { this.transactionDate = transactionDate; this.companyId = companyId; InvoiceAutoNumberConfig cfg = GetInvoiceAutoNumberConfig(companyId); switch (cfg.Mode) { case AutoNumberMode.Yearly: return(mongo.Save(GetInvoiceAutoNumberYearly().Next()).InvoiceNumberInStringFormat(cfg.Prefix)); case AutoNumberMode.Monthly: return(mongo.Save(GetInvoiceAutoNumberMonthly().Next()).InvoiceNumberInStringFormat(cfg.Prefix)); default: return(mongo.Save(GetInvoiceAutoNumberDefault().Next()).InvoiceNumberInStringFormat(cfg.Prefix)); } }