public IActionResult TransferEdit(InvoiceTransferVModel invoiceTransferVModel) { var accountDate = invoiceTransferVModel.AccountDate; var defaultEngId = invoiceTransferVModel.EngId; var defaultEngDpt = invoiceTransferVModel.EngDpt; var workClass = invoiceTransferVModel.WorkClass; var type = invoiceTransferVModel.Type; List <RepairInvoice> invoices = invoiceTransferVModel.RepairInvoices; List <InvoiceTransfer> resultList = new List <InvoiceTransfer>(); // var rv = _context.RepairCosts.Join(_context.Repairs, rc => rc.DocId, r => r.DocId, (rc, r) => new { cost = rc, repair = r }) .Join(_context.AppUsers, r => r.repair.EngId, u => u.Id, (r, u) => new { cost = r.cost, repair = r.repair, repairEng = u }); if (invoices.Count() > 0) { foreach (var item in invoices) { var rc = rv.Where(r => r.cost.DocId == item.DocId && r.cost.SeqNo == item.SeqNo).FirstOrDefault(); if (rc != null) { InvoiceTransfer invoiceTransfer = new InvoiceTransfer(); invoiceTransfer.DocId = rc.cost.DocId; invoiceTransfer.AccountDate = accountDate; invoiceTransfer.TotalCost = rc.cost.TotalCost; invoiceTransfer.WorkClass = workClass; invoiceTransfer.Type = type; invoiceTransfer.AccDpt = rc.repair.AccDpt; var isExternalEng = _context.ExternalUsers.Find(rc.repair.EngId); if (isExternalEng != null) //外部工程師 { invoiceTransfer.EngId = defaultEngId; invoiceTransfer.EngDpt = defaultEngDpt; } else //非外部 { var engDpt = _context.Departments.Find(rc.repairEng.DptId); invoiceTransfer.EngId = rc.repair.EngId; invoiceTransfer.EngDpt = engDpt != null ? engDpt.DptId : ""; } resultList.Add(invoiceTransfer); } // var repairCost = _context.RepairCosts.Find(item.DocId, item.SeqNo); if (repairCost != null) { repairCost.IsTransfor = "Y"; _context.Entry(repairCost).State = EntityState.Modified; } } _context.SaveChanges(); } var sendToApiList = resultList; return(new JsonResult(invoiceTransferVModel) { Value = new { success = true, error = "" } }); }
// GET: Admin/Invoice/TransferEdit/5 public IActionResult TransferEdit(string DocIds, string SeqNos) { string[] docIds = DocIds.Split(new char[] { ';' }); string[] seqNos = SeqNos.Split(new char[] { ';' }); InvoiceTransferVModel transferVModel = new InvoiceTransferVModel(); transferVModel.RepairInvoices = new List <RepairInvoice>(); foreach (var docid in docIds) { if (!string.IsNullOrEmpty(docid)) { int index = Array.IndexOf(docIds, docid); int seqNo = Convert.ToInt32(seqNos[index]); var rc = _context.RepairCosts.Find(docid, seqNo); if (rc != null) { RepairInvoice invoice = new RepairInvoice(); invoice.DocId = rc.DocId; invoice.SeqNo = rc.SeqNo; invoice.SignNo = rc.SignNo; transferVModel.RepairInvoices.Add(invoice); } } } // Get default engineer. var transEng = _context.TransDefaultEng.FirstOrDefault(); if (transEng != null) { transferVModel.Engineer = transEng.FullName; transferVModel.EngId = transEng.UserId; transferVModel.EngDpt = transEng.DptId; } // List <SelectListItem> listItem = new List <SelectListItem>(); listItem.Add(new SelectListItem { Text = "1.建築物類", Value = "1" }); listItem.Add(new SelectListItem { Text = "2.醫療設備類", Value = "2" }); listItem.Add(new SelectListItem { Text = "3.機電設備類", Value = "3" }); listItem.Add(new SelectListItem { Text = "4.冷凍空調設備類", Value = "4" }); listItem.Add(new SelectListItem { Text = "5.通訊設備類", Value = "5" }); listItem.Add(new SelectListItem { Text = "7.照明設備類", Value = "7" }); listItem.Add(new SelectListItem { Text = "8.資訊設備類", Value = "8" }); listItem.Add(new SelectListItem { Text = "9.什項修繕類", Value = "9" }); ViewData["WorkClass"] = new SelectList(listItem, "Value", "Text", transferVModel.WorkClass); // List <SelectListItem> listItem2 = new List <SelectListItem>(); listItem2.Add(new SelectListItem { Text = "1.值班", Value = "1" }); listItem2.Add(new SelectListItem { Text = "2.維修", Value = "2" }); listItem2.Add(new SelectListItem { Text = "3.增設", Value = "3" }); listItem2.Add(new SelectListItem { Text = "4.保養", Value = "4" }); listItem2.Add(new SelectListItem { Text = "5.其他", Value = "5" }); listItem2.Add(new SelectListItem { Text = "7.報廢", Value = "7" }); ViewData["Type"] = new SelectList(listItem2, "Value", "Text", ""); return(View(transferVModel)); }