public async Task <IActionResult> PutCreditCalculate([FromRoute] int id, [FromBody] CreditCalculate creditCalculate) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != creditCalculate.CalculateId) { return(BadRequest()); } _context.Entry(creditCalculate).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CreditCalculateExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private IActionResult Edited(Credit credit) { using (var transaction = _context.Database.BeginTransaction()) { CreditCalculate calculate = new CreditCalculate(); CreditContract contract = new CreditContract(); List <CreditContractItem> contractItems = new List <CreditContractItem>(); try { calculate = credit.creditCalculate; contract = credit.creditContract; contractItems = credit.creditContactItem.ToList(); // Calculate calculate.UpdateDate = DateTime.Now; _context.Update(calculate); _context.SaveChanges(); // Contract contract.UpdateDate = DateTime.Now; _context.Update(contract); _context.SaveChanges(); // ContractItem var contItem = _context.CreditContractItem.Where(o => o.ContractId == contract.ContractId).ToList(); _context.RemoveRange(contItem); _context.SaveChanges(); foreach (var item in contractItems) { item.ContractId = contract.ContractId; item.RefNo = contract.RefNo; //item.PayPrice = item.Balance; //item.PayVatPrice = item.BalanceVatPrice; //item.PayNetPrice = item.BalanceNetPrice; // สถานะยังไม่ชำระ item.Status = 13; item.CreateBy = contract.CreateBy; item.CreateDate = DateTime.Now; item.UpdateBy = contract.UpdateBy; item.UpdateDate = DateTime.Now; } _context.CreditContractItem.AddRange(contractItems); _context.SaveChanges(); transaction.Commit(); var obj = new Dictionary <string, object> { { "contractId", contract.ContractId } }; return(Ok(obj)); } catch (Exception ex) { transaction.Rollback(); return(StatusCode(500, ex.Message)); } } }
private IActionResult Reviced(Credit credit) { using (var transaction = _context.Database.BeginTransaction()) { CreditCalculate calculate = new CreditCalculate(); CreditContract contract = new CreditContract(); List <CreditContractItem> contractItems = new List <CreditContractItem>(); Models.Booking booking = new Models.Booking(); try { calculate = credit.creditCalculate; contract = credit.creditContract; contractItems = credit.creditContactItem.ToList(); booking = _context.Booking.FirstOrDefault(b => b.BookingId == contract.BookingId); // Calculate calculate.UpdateDate = DateTime.Now; _context.CreditCalculate.Update(calculate); _context.SaveChanges(); // Contract contract.UpdateDate = DateTime.Now; contract.RefNo = GenerateReferenceContract(contract.ContractId); _context.CreditContract.Update(contract); _context.SaveChanges(); // ContractItem foreach (var item in contractItems) { item.ContractId = contract.ContractId; item.RefNo = contract.RefNo; //item.PayPrice = item.Balance; //item.PayVatPrice = item.BalanceVatPrice; //item.PayNetPrice = item.BalanceNetPrice; // สถานะยังไม่ชำระ item.Status = 13; item.CreateBy = contract.CreateBy; item.CreateDate = DateTime.Now; item.UpdateBy = contract.UpdateBy; item.UpdateDate = DateTime.Now; } _context.CreditContractItem.AddRange(contractItems); _context.SaveChanges(); // ค้นห่อผู้เช่าซื้อด้วยรหัส var __branch = _context.Branch.SingleOrDefault(x => x.BranchId == 1); var __company = _context.Company.FirstOrDefault(x => x.ComId == 1); // Booking if (booking.SellDate == null) { booking.SellDate = DateTime.Now; } booking.ReturnDepostit = calculate.ReturnDeposit; // กรณีมีการคืนเงินมัดจำ if (calculate.ReturnDeposit == 1 && booking.ReturnDepostit == 0) { booking.ReturnDepositPrice = calculate.ReturnDepositPrice; booking.ReturnDepNo = iSysParamService.GeerateeReturnDepositNo((int)contract.BranchId); booking.ReturnDepBy = contract.CreateBy; booking.ReturnDepDate = DateTime.Now; } else if (calculate.ReturnDeposit == 0) { booking.ReturnDepositPrice = 0; } booking.BookingStatus = 2; // สถานะขาย booking.PaymentPrice = calculate.DepositPrice; booking.PaymentType = booking.BookingDepositType; booking.CusSellName = __company.ComName; booking.CusTaxNo = __branch.BranchRegisterNo; booking.SellBy = contract.CreateBy; booking.LStartDate = calculate.FirstPayment.ToString("yyyy-MM-dd"); booking.LPayDay = calculate.DueDate; booking.LTerm = calculate.InstalmentEnd; booking.LInterest = calculate.Interest; booking.LPriceTerm = calculate.InstalmentPrice; booking.ReturnDepositPrice = calculate.ReturnDeposit; // กรณีมีการคืนเงินมัดจำ if (calculate.ReturnDeposit == 1 && booking.ReturnDepostit == 0) { booking.ReturnDepositPrice = calculate.ReturnDepositPrice; booking.ReturnDepNo = iSysParamService.GeerateeReturnDepositNo((int)contract.BranchId); booking.ReturnDepBy = contract.CreateBy; booking.ReturnDepDate = DateTime.Now; } _context.Booking.Update(booking); _context.SaveChanges(); transaction.Commit(); var obj = new Dictionary <string, object> { { "contractId", contract.ContractId } }; return(Ok(obj)); } catch (Exception ex) { transaction.Rollback(); return(StatusCode(500, ex.Message)); } } }
private IActionResult Created(Credit credit) { using (var transaction = _context.Database.BeginTransaction()) { CreditCalculate calculate = new CreditCalculate(); CreditContract contract = new CreditContract(); List <CreditContractItem> contractItems = new List <CreditContractItem>(); try{ calculate = credit.creditCalculate; contract = credit.creditContract; contractItems = credit.creditContactItem.ToList(); // Calculate calculate.CreateDate = DateTime.Now; _context.CreditCalculate.Add(calculate); _context.SaveChanges(); // Contract contract.CalculateId = calculate.CalculateId; contract.RefNo = GenerateReferenceContract(null); contract.ContractNo = iSysParamService.GenerateContractNo((int)contract.BranchId); contract.CreateDate = DateTime.Now; _context.CreditContract.Add(contract); _context.SaveChanges(); // ContractItem foreach (var item in contractItems) { item.ContractId = contract.ContractId; item.RefNo = contract.RefNo; item.PayPrice = item.Balance; item.PayVatPrice = item.BalanceVatPrice; item.PayNetPrice = item.BalanceNetPrice; item.Status = 13; // สถานะยังไม่ชำระ item.CreateBy = contract.CreateBy; item.CreateDate = DateTime.Now; } _context.CreditContractItem.AddRange(contractItems); _context.SaveChanges(); // หลังจากเลือกรายการที่ค้นหาแล้วให้เอา log_id ที่ได้มาเก็บตอนทำการขาย // มีเงื่อนไขโดย itemDetailType==1(สินค้าประเภทรถ) var bookItem = _context.BookingItem.FirstOrDefault(x => x.BookingId == contract.BookingId && x.ItemDetailType == 1); if (bookItem != null) { bookItem.LogReceiveId = calculate.LogReceiveId; _context.BookingItem.Update(bookItem); _context.SaveChanges(); } var stockReceive = _context.StockReceive.FirstOrDefault(x => x.LogId == calculate.LogReceiveId); if (stockReceive != null) { stockReceive.BalanceQty = stockReceive.BalanceQty - 1; _context.StockReceive.Update(stockReceive); _context.SaveChanges(); } transaction.Commit(); var obj = new Dictionary <string, object> { { "contractId", contract.ContractId } }; return(Ok(obj)); } catch (Exception ex) { transaction.Rollback(); return(StatusCode(500, ex.Message)); } } }
public IActionResult Edit([FromBody] Contract c) { using (var transaction = ctx.Database.BeginTransaction()) { try { var creditContract = c.contract; var _booking = c.booking; // Contract // ถ้าสัญญา ยังเป็นสัญญาใหม่ จะถูกเปลี่ยนให้เป็น อยู่ระหว่างการผ่อนชำระอัตโนมัติ creditContract.ContractStatus = creditContract.ContractStatus == 32 ? 31 : creditContract.ContractStatus; creditContract.UpdateDate = DateTime.Now; ctx.Update(creditContract); ctx.SaveChanges(); // Calculate CreditCalculate calculate = new CreditCalculate(); calculate = ctx.CreditCalculate.SingleOrDefault(o => o.CalculateId == creditContract.CalculateId); // Booking Models.Booking booking = new Models.Booking(); booking = ctx.Booking.SingleOrDefault(b => b.BookingId == creditContract.BookingId); // // ค้นหาชื่อเช่าซื้อด้วยรหัส // var customer = iCustService.GetCustomerByCode(creditContract.ContractHire); if (booking.SellDate == null) { booking.SellDate = DateTime.Now; } // update booking ให้เป็นสถานะขาย booking.BookingStatus = 2; booking.PaymentPrice = calculate.DepositPrice; booking.PaymentType = booking.BookingDepositType; booking.CusSellName = _booking.CusSellName; booking.CusTaxNo = _booking.CusTaxNo; booking.CusTaxBranch = _booking.CusTaxBranch; booking.SellRemark = _booking.SellRemark; booking.SellBy = creditContract.CreateBy; booking.LStartDate = calculate.FirstPayment.ToString(); booking.LPayDay = calculate.DueDate; booking.LTerm = calculate.InstalmentEnd; booking.LInterest = calculate.Interest; booking.LPriceTerm = calculate.InstalmentPrice; if (booking.SellNo == null) { booking.SellNo = iSysParamService.GenerateSellNo((int)creditContract.BranchId); } if (booking.VatNo == null) { booking.VatNo = iSysParamService.GenerateVatNo((int)creditContract.BranchId); } booking.VatDate = DateTime.Now; booking.VatBy = creditContract.CreateBy; ctx.Update(booking); ctx.SaveChanges(); transaction.Commit(); return(Ok(creditContract)); } catch (Exception ex) { transaction.Rollback(); return(StatusCode(500, ex.Message)); } } }
public IActionResult Create([FromBody] Contract c) { using (var transaction = ctx.Database.BeginTransaction()) { try { var creditContract = c.contract; var _booking = c.booking; // Contract creditContract.UpdateDate = DateTime.Now; // อยู่ระหว่างผ่อนชำระ creditContract.ContractStatus = 31; ctx.Update(creditContract); ctx.SaveChanges(); // Calculate CreditCalculate calculate = new CreditCalculate(); calculate = ctx.CreditCalculate.SingleOrDefault(o => o.CalculateId == creditContract.CalculateId); // Booking Models.Booking booking = new Models.Booking(); booking = ctx.Booking.SingleOrDefault(b => b.BookingId == creditContract.BookingId); booking.ReturnDepostit = calculate.ReturnDeposit; // กรณีมีการคืนเงินมัดจำ if (calculate.ReturnDeposit == 1) { booking.ReturnDepositPrice = calculate.ReturnDepositPrice; booking.ReturnDepNo = iSysParamService.GeerateeReturnDepositNo((int)creditContract.BranchId); booking.ReturnDepBy = creditContract.CreateBy; booking.ReturnDepDate = DateTime.Now; } booking.SellDate = DateTime.Now; booking.BookingStatus = 2; // สถานะขาย booking.PaymentPrice = calculate.DepositPrice; booking.PaymentType = booking.BookingDepositType; booking.CusSellName = _booking.CusSellName; booking.CusTaxNo = _booking.CusTaxNo; booking.CusTaxBranch = _booking.CusTaxBranch; booking.SellRemark = _booking.SellRemark; booking.SellBy = creditContract.CreateBy; booking.LStartDate = calculate.FirstPayment.ToString(); booking.LPayDay = calculate.DueDate; booking.LTerm = calculate.InstalmentEnd; booking.LInterest = calculate.Interest; booking.SellNo = iSysParamService.GenerateSellNo((int)creditContract.BranchId); booking.LPriceTerm = calculate.InstalmentPrice; booking.VatNo = iSysParamService.GenerateVatNo((int)creditContract.BranchId); booking.VatDate = DateTime.Now; booking.VatBy = creditContract.CreateBy; ctx.Update(booking); ctx.SaveChanges(); transaction.Commit(); return(Ok(creditContract)); } catch (Exception ex) { transaction.Rollback(); return(StatusCode(500, ex.Message)); } } }