public void AdjustTrainingSession(int quotaID, int branchID, int trainerID, string customerBarcode, DateTime date, short qty, string notes, string type = null) { var customer = context.Customers.SingleOrDefault(cust => cust.Barcode == customerBarcode); var employee = context.Employees.SingleOrDefault(emp => emp.UserName == principal.Identity.Name); var quotaHeader = context.SessionQuotaHeaders.SingleOrDefault(quota => quota.ID == quotaID); type = type ?? Convert.ToString(TrainingSessionConstants.TRAINING_SESSION_ADJUSTMENT); if (customer != null && employee != null && quotaHeader != null) { var quotaDetail = new SessionQuotaDetail(); quotaDetail.Date = date; quotaDetail.When = DateTime.Now; quotaDetail.BranchID = branchID; quotaDetail.ClerkID = employee.ID; quotaDetail.TrainerID = trainerID; quotaDetail.Type = Convert.ToChar(type); quotaDetail.Usage = qty; quotaDetail.Notes = notes; quotaDetail.SessionQuotaHeader = quotaHeader; if (Convert.ToChar(type) == TrainingSessionConstants.TRAINING_SESSION_CUT) { quotaHeader.TotalUsage += qty; } else if (Convert.ToChar(type) == TrainingSessionConstants.TRAINING_SESSION_ADJUSTMENT) { quotaHeader.TotalUsage -= qty; } quotaHeader.SessionQuotaDetails.Add(quotaDetail); context.SaveChanges(); } }
private void CreateTrainingSession(int branchID, int itemID, int customerID, InvoiceHeader header, InvoiceDetail d) { var item = context.Items.SingleOrDefault(it => it.ID == itemID); if (item != null) { if (item.SessionBalance.GetValueOrDefault(0) > 0) { var employee = context.Employees.SingleOrDefault(emp => emp.UserName == principal.Identity.Name); if (employee != null) { var sessionQuota = new SessionQuotaHeader(); sessionQuota.InvoiceHeader = header; sessionQuota.ItemID = item.ID; sessionQuota.TotalQuota = item.SessionBalance.GetValueOrDefault(); var sessionQuotaDetail = new SessionQuotaDetail(); sessionQuotaDetail.BranchID = branchID; sessionQuotaDetail.ClerkID = employee.ID; sessionQuotaDetail.TrainerID = null; sessionQuotaDetail.Type = TrainingSessionConstants.TRAINING_SESSION_PURCHASE; sessionQuotaDetail.Usage = sessionQuota.TotalQuota; sessionQuotaDetail.SessionQuotaHeader = sessionQuota; sessionQuotaDetail.Notes = header.Notes; sessionQuota.SessionQuotaDetails.Add(sessionQuotaDetail); header.SessionQuotaHeaders.Add(sessionQuota); } } } }