示例#1
0
        public static void SubmitAdjustmentVoucher(string itemNo, DateTime dateIssued, int qty, string reason, int issueEmpNo)
        {
            AdjustmentVoucher       aV;
            AdjustmentVoucherDetail aVD;

            LussisEntities context = new LussisEntities();

            using (var txn = new TransactionScope())
            {
                // Create AdjustmentVoucher
                aV            = new AdjustmentVoucher();
                aV.DateIssued = dateIssued;
                aV.IssueEmpNo = issueEmpNo;
                aV.Status     = "Pending";
                context.AdjustmentVouchers.Add(aV);
                context.SaveChanges();

                // Create AdjustmentVoucherDetails
                aVD        = new AdjustmentVoucherDetail();
                aVD.AvNo   = aV.AvNo;
                aVD.ItemNo = itemNo;
                aVD.Qty    = qty;
                aVD.Reason = reason;
                context.AdjustmentVoucherDetails.Add(aVD);
                context.SaveChanges();

                txn.Complete();
            }

            // Send Email
            var supplier1Code = context.StationeryCatalogues.Where(x => x.ItemNo.Equals(itemNo)).FirstOrDefault().Supplier1;
            var unitPrice     = context.SupplyTenders.Where(x => x.ItemNo.Equals(itemNo) && x.SupplierCode.Equals(supplier1Code)).FirstOrDefault().UnitPrice;
            var price         = qty * unitPrice;

            Employee recipient;

            if (price >= 250)
            {
                recipient = context.StoreAssignments.Where(x => x.Role.Equals("Manager")).FirstOrDefault().Employee;
            }
            else
            {
                recipient = context.StoreAssignments.Where(x => x.Role.Equals("Supervisor")).FirstOrDefault().Employee;
            }

            string recipientEmail = recipient.Email;
            string emailSubject   = EmailTemplate.GenerateAdjustmentVoucherSubject();
            string emailContent   = EmailTemplate.GenerateAdjustmentVoucherEmail(recipient.EmpName, aV.AvNo);

            EmailBackend.sendEmailStep(recipientEmail, emailSubject, emailContent);
        }