public async Task <int> DeleteAsync(int id) { using (var transaction = DbContext.Database.BeginTransaction()) { try { SalesInvoiceExportModel model = await salesInvoiceExportLogic.ReadByIdAsync(id); if (model != null) { SalesInvoiceExportModel salesInvoiceModel = new SalesInvoiceExportModel(); salesInvoiceModel = model; await salesInvoiceExportLogic.DeleteAsync(id); } transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw new Exception(e.Message); } } return(await DbContext.SaveChangesAsync()); }
public async Task <int> CreateAsync(SalesInvoiceExportModel model) { int result = 0; using (var transaction = DbContext.Database.BeginTransaction()) { try { int index = 0; do { model.Code = CodeGenerator.Generate(); }while (DbSet.Any(d => d.Code.Equals(model.Code))); SalesInvoiceNumberGenerator(model, index); salesInvoiceExportLogic.Create(model); index++; result = await DbContext.SaveChangesAsync(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); throw new Exception(e.Message); } } return(result); }
private void SalesInvoiceNumberGenerator(SalesInvoiceExportModel model, int index) { SalesInvoiceExportModel lastData = DbSet.IgnoreQueryFilters().Where(w => w.LetterOfCreditNumberType.Equals(model.LetterOfCreditNumberType)).OrderByDescending(o => o.AutoIncreament).FirstOrDefault(); int MonthNow = DateTime.Now.Month; int YearNow = DateTime.Now.Year; var MonthNowString = DateTime.Now.ToString("MM"); var YearNowString = DateTime.Now.ToString("yy"); var formatCode = ""; if (model.SalesInvoiceCategory == "SPINNING") { formatCode = "B"; } else if (model.SalesInvoiceCategory == "DYEINGPRINTING" && model.FPType == "Dyeing/Finishing") { formatCode = "F"; } else if (model.SalesInvoiceCategory == "DYEINGPRINTING" && model.FPType == "Printing") { formatCode = "P"; } else { formatCode = ""; } if (lastData == null) { index = 0; model.AutoIncreament = 1 + index; model.SalesInvoiceNo = $"DL {model.AutoIncreament.ToString().PadLeft(2, '0')}{formatCode}/4.2.1/{MonthNowString}.{YearNowString}"; } else { if (YearNow > lastData.CreatedUtc.Year) { model.AutoIncreament = 1 + index; model.SalesInvoiceNo = $"DL {model.AutoIncreament.ToString().PadLeft(2, '0')}{formatCode}/4.2.1/{MonthNowString}.{YearNowString}"; } else { model.AutoIncreament = lastData.AutoIncreament + (1 + index); model.SalesInvoiceNo = $"DL {model.AutoIncreament.ToString().PadLeft(2, '0')}{formatCode}/4.2.1/{MonthNowString}.{YearNowString}"; } } }
public async Task <int> UpdateAsync(int id, SalesInvoiceExportModel model) { salesInvoiceExportLogic.UpdateAsync(id, model); return(await DbContext.SaveChangesAsync()); }