예제 #1
0
        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 = "" }
            });
        }
예제 #2
0
        // 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));
        }