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();
            }
        }
Beispiel #2
0
        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);
                    }
                }
            }
        }