public ActionResult ResetProcessInvoiceToGov() { return(Json(new { result = true, initialCount = TaskExtensionMethods.ResetProcessInvoiceToGov() }, JsonRequestBehavior.AllowGet)); }
public async Task <ActionResult> CommitPaymentForSessionAsync(PaymentViewModel viewModel) { ViewBag.ViewModel = viewModel; var profile = await HttpContext.GetUserAsync(); var lesson = models.GetTable <RegisterLesson>().Where(r => r.RegisterID == viewModel.RegisterID).FirstOrDefault(); LessonTime timeItem = null; if (lesson == null) { ModelState.AddModelError("RegisterID", "請選擇收款課程!!"); } else { timeItem = lesson.LessonTime.First(); viewModel.SellerID = timeItem.BranchStore?.IsVirtualClassroom() == true ? timeItem.AsAttendingCoach.SelectWorkBranchID() : timeItem.BranchID.Value; } if (!viewModel.PayoffDate.HasValue) { ModelState.AddModelError("PayoffDate", "請選擇收款日期!!"); } viewModel.ItemNo = new string[] { "01" }; viewModel.Brief = new string[] { $"{timeItem.RegisterLesson.LessonPriceType.SimpleDescription}訓練費用" }; viewModel.CostAmount = new int?[] { viewModel.PayoffAmount }; viewModel.UnitCost = new int?[] { viewModel.PayoffAmount }; viewModel.Piece = new int?[] { 1 }; viewModel.ItemRemark = new string[] { null }; viewModel.InvoiceType = Naming.InvoiceTypeDefinition.一般稅額計算之電子發票; viewModel.CarrierId1 = viewModel.CarrierId1.GetEfficientString(); viewModel.TransactionType = (int)Naming.PaymentTransactionType.自主訓練; if (viewModel.CarrierId1 != null) { if (viewModel.CarrierType == null) { viewModel.CarrierType = "3J0002"; } } var invoice = checkInvoiceNo(viewModel); if (String.IsNullOrEmpty(viewModel.PaymentType)) { ModelState.AddModelError("PaymentType", "請選擇收款方式!!"); } if (!viewModel.InvoiceType.HasValue) { ModelState.AddModelError("InvoiceType", "請選擇發票類型"); } if (!ModelState.IsValid) { ViewBag.ModelState = ModelState; return(View(Startup.Properties["ReportInputError"])); } try { Payment item = models.GetTable <Payment>() .Where(p => p.PaymentID == viewModel.PaymentID).FirstOrDefault(); if (item == null) { item = new Payment { Status = (int)Naming.CourseContractStatus.已生效, TuitionInstallment = new TuitionInstallment { }, PaymentTransaction = new PaymentTransaction { }, PaymentAudit = new Models.DataEntity.PaymentAudit { } }; item.TuitionAchievement.Add(new TuitionAchievement { CoachID = lesson.AdvisorID.Value, ShareAmount = viewModel.PayoffAmount, CoachWorkPlace = lesson.ServingCoach.WorkBranchID() }); models.GetTable <Payment>().InsertOnSubmit(item); item.InvoiceItem = invoice; } item.TuitionInstallment.RegisterID = lesson.IntuitionCharge.RegisterID; item.TuitionInstallment.PayoffAmount = viewModel.PayoffAmount; item.TuitionInstallment.PayoffDate = viewModel.PayoffDate; item.PaymentTransaction.BranchID = viewModel.SellerID.Value; preparePayment(viewModel, profile, item); models.SubmitChanges(); if (timeItem.IsPISession()) { models.AttendLesson(lesson.LessonTime.First(), profile); } if (invoice.InvoiceCarrier != null && viewModel.MyCarrier == true) { lesson.UserProfile.UserProfileExtension.CarrierType = invoice.InvoiceCarrier.CarrierType; lesson.UserProfile.UserProfileExtension.CarrierNo = invoice.InvoiceCarrier.CarrierNo; models.SubmitChanges(); } TaskExtensionMethods.ProcessInvoiceToGov(); return(Content(new { result = true, invoiceNo = item.InvoiceItem.TrackCode + item.InvoiceItem.No, item.InvoiceID, item.InvoiceItem.InvoiceType, item.PaymentID }.JsonStringify(), "application/json")); } catch (Exception ex) { ApplicationLogging.CreateLogger <PaymentConsoleController>() .LogError(ex, ex.Message); return(Json(new { result = false, message = ex.Message })); } }
public ActionResult ResetProcessInvoiceToGov() { return(Json(new { result = true, initialCount = TaskExtensionMethods.ResetProcessInvoiceToGov() })); }