Пример #1
0
        public static InvoiceAllowance PrepareAllowanceForPayment(this GenericManager <BFDataContext> models, Payment item, decimal?allowanceAmount = null, String remark = null, DateTime?allowanceDate = null)
        {
            PaymentAllowanceValidator validator = new PaymentAllowanceValidator(models);
            var exception = validator.Validate(item, allowanceAmount, remark, allowanceDate);

            if (exception != null)
            {
                return(null);
            }

            var newItem = validator.Allowance;

            if (item.InvoiceItem.InvoiceType == (int)Naming.InvoiceTypeDefinition.一般稅額計算之電子發票)
            {
                newItem.InvoiceAllowanceDispatch = new InvoiceAllowanceDispatch {
                }
            }
            ;
            models.GetTable <InvoiceAllowance>().InsertOnSubmit(newItem);
            item.VoidPayment = new VoidPayment
            {
                Remark   = remark,
                Status   = (int)Naming.CourseContractStatus.已生效,
                VoidDate = DateTime.Now
            };

            ///刪除當月已分潤
            ///
            DateTime startDate = DateTime.Today.FirstDayOfMonth();

            if (item.PayoffDate >= startDate && item.PayoffDate < startDate.AddMonths(1))
            {
                models.DeleteAllOnSubmit <TuitionAchievement>(t => t.InstallmentID == item.PaymentID);
            }

            return(newItem);
        }
    }