public async Task <IActionResult> Edit(WorkType workType, Guid id, [Bind("WorkItemId,StaticPartInfoId,StartDate,InvoiceDate,WorkId,WorkItemImageFile,WorkItemImageBytes,ProcessSheetNotesFile,ProcessSheetNotesPdfBytes,ClearWorkItemImg,IsInitialized")] WorkItem workItem)
        {
            if (id != workItem.WorkItemId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                if (workItem.WorkItemImageFile != null && !workItem.ClearWorkItemImg)
                {
                    workItem.WorkItemImageBytes = await FileURL.GetFileBytes(workItem.WorkItemImageFile);
                }
                else if (workItem.ClearWorkItemImg)
                {
                    workItem.WorkItemImageBytes = null;
                }
                if (workItem.ProcessSheetNotesFile != null)
                {
                    workItem.ProcessSheetNotesPdfBytes = await FileURL.GetFileBytes(workItem.ProcessSheetNotesFile);
                }

                SetUIDs();
                await _repo.UpdateWorkItem(workItem);

                return(RedirectToAction("Index", "WorkItems", new { workType = workType, workId = workItem.WorkId }));
            }
            ViewData["StaticPartInfoId"] = new SelectList(await _repo.GetAllStaticPartInfos(), "StaticPartInfoId", "PartDescription");
            ViewBag.WorkType             = workType;

            return(View(workItem));
        }
Esempio n. 2
0
        public async Task <IActionResult> Initialize([Bind("LineItemId,StaticPowderInfoId,VendorDescription,Weight,LineItemCost,ParticleSizeMin,ParticleSizeMax,PowderOrderId,NumBottles,CertPdfFile")] LineItem lineItem)
        {
            lineItem.StaticPowderInfo = await _repo.GetStaticPowderInfo((Guid)lineItem.StaticPowderInfoId);

            if (lineItem.CertPdfFile != null)
            {
                lineItem.CertPdfBytes = await FileURL.GetFileBytes(lineItem.CertPdfFile);
            }
            SetUIDs();
            await _repo.UpdateLineItem(lineItem);

            List <PowderBottle> bottles = new List <PowderBottle>();

            for (int i = 0; i < lineItem.NumBottles; i++)
            {
                bottles.Add(new PowderBottle
                {
                    PowderBottleId     = Guid.NewGuid(),
                    BottleNumber       = "",
                    LotNumber          = "",
                    InitWeight         = 0,
                    Weight             = 0,
                    LineItem           = lineItem,
                    LineItemId         = lineItem.LineItemId,
                    StaticPowderInfo   = lineItem.StaticPowderInfo,
                    StaticPowderInfoId = lineItem.StaticPowderInfo.StaticPowderInfoId
                });
            }
            SetUIDs();
            await _repo.AddPowderBottles(bottles);

            lineItem.PowderOrder = await _repo.GetPowderOrder(lineItem.PowderOrderId);

            return(RedirectToAction("Index", "LineItems", new { powderOrderId = lineItem.PowderOrderId }));
        }
        public async Task <IActionResult> Create([Bind("StaticPartInfoId,DrawingNumber,ApproxWeight,SurfaceArea,PartDescription,ImageName,ImageFile,FinishDrawingFile,BlankDrawingFile,CustomerId,DrawingImageBytes")] StaticPartInfo staticPartInfo)
        {
            if (ModelState.IsValid)
            {
                staticPartInfo.StaticPartInfoId = Guid.NewGuid();

                if (staticPartInfo.ImageFile != null)
                {
                    staticPartInfo.DrawingImageBytes = await FileURL.GetFileBytes(staticPartInfo.ImageFile);
                }
                if (staticPartInfo.FinishDrawingFile != null)
                {
                    staticPartInfo.FinishDrawingPdfBytes = await FileURL.GetFileBytes(staticPartInfo.FinishDrawingFile);
                }
                if (staticPartInfo.BlankDrawingFile != null)
                {
                    staticPartInfo.BlankDrawingPdfBytes = await FileURL.GetFileBytes(staticPartInfo.BlankDrawingFile);
                }
                SetUIDs();
                await _repo.AddStaticPartInfo(staticPartInfo);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(staticPartInfo));
        }
        public async Task <IActionResult> Edit(Guid id, [Bind("StaticPartInfoId,DrawingNumber,ApproxWeight,SurfaceArea,PartDescription,ImageName,ImageFile,DrawingImageBytes,ClearImg,FinishDrawingFile,FinishDrawingPdfBytes,ClearFinish,BlankDrawingFile,BlankDrawingPdfBytes,ClearBlank,CustomerId")] StaticPartInfo staticPartInfo)
        {
            if (id != staticPartInfo.StaticPartInfoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (staticPartInfo.ImageFile != null && !staticPartInfo.ClearImg)
                    {
                        staticPartInfo.DrawingImageBytes = await FileURL.GetFileBytes(staticPartInfo.ImageFile);
                    }
                    else if (staticPartInfo.ClearImg)
                    {
                        staticPartInfo.DrawingImageBytes = null;
                    }

                    if (staticPartInfo.FinishDrawingFile != null)
                    {
                        staticPartInfo.FinishDrawingPdfBytes = await FileURL.GetFileBytes(staticPartInfo.FinishDrawingFile);
                    }
                    if (staticPartInfo.ClearFinish)
                    {
                        staticPartInfo.FinishDrawingPdfBytes = null;
                    }

                    if (staticPartInfo.BlankDrawingFile != null)
                    {
                        staticPartInfo.BlankDrawingPdfBytes = await FileURL.GetFileBytes(staticPartInfo.BlankDrawingFile);
                    }
                    if (staticPartInfo.ClearBlank)
                    {
                        staticPartInfo.BlankDrawingPdfBytes = null;
                    }
                    SetUIDs();
                    await _repo.UpdateStaticPartInfo(staticPartInfo);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await StaticPartInfoExists(staticPartInfo.StaticPartInfoId)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(staticPartInfo));
        }
        public async Task <IActionResult> Create(WorkType workType, [Bind("WorkId,QuoteId,EndlasNumber,WorkDescription,Status,PurchaseOrderNum,NumWorkItems,DueDate,StartDate,PoDate,CompleteDate,UserId,CustomerId,SystemConfigurationPdfFile")] Work work)
        {
            ViewBag.WorkType = workType;
            var vm       = new WorkViewModel();
            var workList = await _repo.GetWorkWithEndlasNumber(work.EndlasNumber);

            var quotes = await _repo.GetQuotesWithEndlasNumber(work.EndlasNumber);

            if (workList.Any() || quotes.Count() > 1)
            {
                ViewBag.EndlasNumberConflict = true;
                ViewData["CustomerId"]       = new SelectList(await _repo.GetAllCustomers(), "CustomerId", "CustomerName");
                return(View(work));
            }
            if (ModelState.IsValid)
            {
                if (work.QuoteId == null && workType == WorkType.Job)
                {
                    ViewBag.NoQuoteWarning = true;
                    return(View(work));
                }
                work.WorkId = Guid.NewGuid();

                if (work.SystemConfigurationPdfFile != null)
                {
                    work.SystemConfigurationPdfBytes = await FileURL.GetFileBytes(work.SystemConfigurationPdfFile);
                }
                SetUIDs();

                if (workType == WorkType.Job)
                {
                    var quote = await _repo.GetQuote((Guid)work.QuoteId);

                    work.EndlasNumber = quote.EndlasNumber;
                    await _repo.AddJob(Job.CastWorkToJob(work));
                }
                else if (workType == WorkType.WorkOrder)
                {
                    await _repo.AddWorkOrder(WorkOrder.CastWorkToWorkOrder(work));
                }

                for (int i = 0; i < work.NumWorkItems; i++)
                {
                    WorkItem workItem = new WorkItem {
                        WorkItemId = Guid.NewGuid(), WorkId = work.WorkId
                    };
                    await _repo.AddWorkItem(workItem);
                }
                return(RedirectToAction(nameof(Index), new { workType = workType }));
            }
            await SetViewData();

            vm = new WorkViewModel(work, workType);
            return(View(vm));
        }
        public async Task <IActionResult> Create([Bind("StaticPowderInfoId,EndlasDescription,Density,Description,EstCostPerLb,Composition,FlowRateSlope,FlowRateYIntercept,InformationFile")] StaticPowderInfo staticPowderInfo)
        {
            if (ModelState.IsValid)
            {
                staticPowderInfo.StaticPowderInfoId = Guid.NewGuid();
                if (staticPowderInfo.InformationFile != null)
                {
                    staticPowderInfo.InformationFilePdfBytes = await FileURL.GetFileBytes(staticPowderInfo.InformationFile);
                }
                SetUIDs();
                await _repo.AddStaticPowderInfo(staticPowderInfo);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(staticPowderInfo));
        }
        public async Task <IActionResult> Create([Bind("PartForWork,PartForWorkId,ImageName,ImageFile,ClearImg,ImageBytes")] PartForWork partForWork)
        {
            if (ModelState.IsValid)
            {
                partForWork.PartForWorkId = Guid.NewGuid();

                if (partForWork.WorkItem.WorkItemImageFile != null)
                {
                    partForWork.WorkItem.WorkItemImageBytes = await FileURL.GetFileBytes(partForWork.WorkItem.WorkItemImageFile);
                }
                SetUIDs();
                await _repo.AddPartForWork(partForWork);

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["StaticPartInfoId"] = new SelectList(await _repo.GetAllStaticPartInfos(), "StaticPartInfoId", "DrawingNumber", partForWork.WorkItem.StaticPartInfoId);
            return(View(partForWork));
        }
        public async Task <IActionResult> Create([Bind("MachiningToolId,ToolType,ToolDiameter,RadialMetric,Units,ToolDescription,VendorDescription,InitToolCount,ToolCount,PurchaseOrderNum,PurchaseOrderDate,PurchaseOrderCost,InvoiceNumber,VendorId,ToolingImageFile,ToolingImageBytes")] MachiningTool machiningTool)
        {
            if (ModelState.IsValid)
            {
                machiningTool.MachiningToolId = Guid.NewGuid();
                // default tool count to the initial tool count
                machiningTool.ToolCount = machiningTool.InitToolCount;
                if (machiningTool.ToolingImageFile != null)
                {
                    machiningTool.ToolingImageBytes = await FileURL.GetFileBytes(machiningTool.ToolingImageFile);
                }
                SetUIDs();
                await _repo.AddMachiningTool(machiningTool);

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["VendorId"] = new SelectList(await _repo.GetAllVendors(), "VendorId", "VendorName", machiningTool.VendorId);
            return(View(machiningTool));
        }
        public async Task <IActionResult> Edit(Guid id, [Bind("PartForWorkId,WorkItemId,WorkItem,Suffix,ConditionDescription,InitialWeight,CladdedWeight,FinishedWeight,ProcessingNotes,ImageName,ImageFile,ClearImg,ImageBytes")] PartForWork partForWork)
        {
            if (id != partForWork.PartForWorkId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (partForWork.WorkItem != null)
                    {
                        if (partForWork.WorkItem.WorkItemImageFile != null)
                        {
                            partForWork.WorkItem.WorkItemImageBytes = await FileURL.GetFileBytes(partForWork.WorkItem.WorkItemImageFile);
                        }
                        else if (partForWork.WorkItem.ClearWorkItemImg)
                        {
                            partForWork.WorkItem.WorkItemImageBytes = null;
                        }
                    }

                    SetUIDs();
                    await _repo.UpdatePartForWork(partForWork);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PartForWorkExists(partForWork.PartForWorkId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["StaticPartInfoId"] = new SelectList(await _repo.GetAllStaticPartInfos(), "StaticPartInfoId", "DrawingNumber", partForWork.WorkItem.StaticPartInfoId);
            return(View(partForWork));
        }
        public async Task <IActionResult> Edit(Guid id, [Bind("MachiningToolId,ToolType,ToolDiameter,RadialMetric,Units,ToolDescription,VendorDescription,InitToolCount,ToolCount,PurchaseOrderNum,PurchaseOrderDate,PurchaseOrderCost,InvoiceNumber,VendorId,ToolingImageFile,ClearToolingImage,ToolingImageBytes")] MachiningTool machiningTool)
        {
            if (id != machiningTool.MachiningToolId)
            {
                return(NotFound());
            }
            if (ModelState.IsValid)
            {
                try
                {
                    if (machiningTool.ToolingImageFile != null)
                    {
                        machiningTool.ToolingImageBytes = await FileURL.GetFileBytes(machiningTool.ToolingImageFile);
                    }
                    else if (machiningTool.ClearToolingImage)
                    {
                        machiningTool.ToolingImageBytes = null;
                    }



                    SetUIDs();
                    await _repo.UpdateMachiningTool(machiningTool);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await MachiningToolExists(machiningTool.MachiningToolId)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["VendorId"] = new SelectList(await _repo.GetAllVendors(), "VendorId", "VendorName", machiningTool.VendorId);
            return(View(machiningTool));
        }
        public async Task <IActionResult> Edit(Guid id, [Bind("StaticPowderInfoId,EndlasDescription,Density,Description,EstCostPerLb,Composition,ClearInformation,FlowRateSlope,FlowRateYIntercept,InformationFile")] StaticPowderInfo staticPowderInfo)
        {
            if (id != staticPowderInfo.StaticPowderInfoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (staticPowderInfo.ClearInformation)
                    {
                        staticPowderInfo.InformationFilePdfBytes = null;
                    }
                    else if (staticPowderInfo.InformationFile != null)
                    {
                        staticPowderInfo.InformationFilePdfBytes = await FileURL.GetFileBytes(staticPowderInfo.InformationFile);
                    }
                    SetUIDs();
                    await _repo.UpdateStaticPowderInfo(staticPowderInfo);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await StaticPowderInfoExists(staticPowderInfo.StaticPowderInfoId)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(staticPowderInfo));
        }
Esempio n. 12
0
 public async Task <IActionResult> Edit(Guid id, [Bind("LineItemId,LineItem,CertPdfBytes")] LineItemViewModel lineItemVm)
 {
     if (id != lineItemVm.LineItemId)
     {
         return(NotFound());
     }
     if (ModelState.IsValid)
     {
         try
         {
             if (lineItemVm.LineItem.CertPdfFile != null)
             {
                 lineItemVm.LineItem.CertPdfBytes = await FileURL.GetFileBytes(lineItemVm.LineItem.CertPdfFile);
             }
             if (lineItemVm.ClearCertPdf)
             {
                 lineItemVm.LineItem.CertPdfBytes = null;
             }
             SetUIDs();
             await _repo.UpdateLineItem(lineItemVm.LineItem);
         }
         catch (DbUpdateConcurrencyException)
         {
             if (!(await LineItemExists(lineItemVm.LineItemId)))
             {
                 return(NotFound());
             }
             else
             {
                 throw;
             }
         }
         return(RedirectToAction("Index", "LineItems", new { powderOrderId = lineItemVm.LineItem.PowderOrderId }));
     }
     return(View(lineItemVm));
 }
        public async Task <IActionResult> Initialize(WorkType workType, Guid id, [Bind("WorkItemId,WorkItem,StaticPartInfoId,NumPartsForWork,StartDate,CompleteDate,ProcessSheetNotesFile,WorkId")] WorkItemViewModel vm)
        {
            if (id != vm.WorkItemId)
            {
                return(NotFound());
            }
            ViewBag.WorkType = workType;

            var resultList = await _repo.GetPartsForWorksWithPartInfo(vm.StaticPartInfoId);

            var count = resultList.Count();
            int max   = 0;

            foreach (PartForWork pForWork in resultList)
            {
                var temp = PartSuffixGenerator.SuffixToIndex(pForWork.Suffix);
                if (temp > max)
                {
                    max = temp;
                }
            }

            if (ModelState.IsValid)
            {
                var workItem = await _repo.GetWorkItem(vm.WorkItemId);

                workItem.StaticPartInfoId = vm.StaticPartInfoId;

                workItem.StartDate   = vm.StartDate;
                workItem.InvoiceDate = vm.CompleteDate;

                workItem.IsInitialized = true;

                // look to see if this part/job already exists. If so, name suffix from that point
                var existingBatch = await _repo.GetExistingPartBatch((Guid)workItem.WorkId);

                var initCount = vm.NumPartsForWork;
                vm.NumPartsForWork += existingBatch.Count();

                // update the number of parts in each PartForJob
                foreach (PartForWork part in existingBatch)
                {
                    vm.NumPartsForWork += existingBatch.Count();
                }

                if (workItem.ProcessSheetNotesFile != null)
                {
                    workItem.ProcessSheetNotesPdfBytes = await FileURL.GetFileBytes(workItem.ProcessSheetNotesFile);
                }


                // create each part for the part batch
                for (int i = count; i < initCount + count; i++)
                {
                    try
                    {
                        var tempPartForWork = new PartForWork {
                            PartForWorkId = Guid.NewGuid(), WorkItemId = workItem.WorkItemId,
                        };
                        tempPartForWork.Suffix        = Utility.PartSuffixGenerator.IndexToSuffix(i);
                        tempPartForWork.PartForWorkId = Guid.NewGuid();
                        SetUIDs();
                        await _repo.AddPartForWork(tempPartForWork);
                    }
                    catch (Exception ex) { ex.ToString(); continue; }
                }
                await _repo.UpdateWorkItem(workItem);

                return(RedirectToAction("Index", "WorkItems", new { workType = workType, workId = workItem.WorkId }));
            }
            return(View(vm));
        }
Esempio n. 14
0
        public async Task <IActionResult> Edit(Guid id, WorkType workType, [Bind("WorkId,QuoteId,EndlasNumber,WorkDescription,Status,PurchaseOrderNum,NumWorkItems,DueDate,StartDate,PoDate,CompleteDate,UserId,CustomerId,SystemConfigurationPdfFile")] Work work)
        {
            ViewBag.WorkType = workType;

            if (id != work.WorkId)
            {
                return(NotFound());
            }
            ViewBag.WorkType = workType;

            var workList = await _repo.GetWorkWithEndlasNumber(work.EndlasNumber);

            var quotes = await _repo.GetQuotesWithEndlasNumber(work.EndlasNumber);

            if (workList.Any() || (workType == WorkType.Job && quotes.Count() > 1))
            {
                ViewBag.EndlasNumberConflict = "true";

                return(View(work));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (work.SystemConfigurationPdfFile != null)
                    {
                        work.SystemConfigurationPdfBytes = await FileURL.GetFileBytes(work.SystemConfigurationPdfFile);
                    }
                    if (work.ClearPdf)
                    {
                        work.SystemConfigurationPdfBytes = null;
                    }
                    SetUIDs();

                    switch (workType)
                    {
                    case WorkType.Job:
                        var quote = await _repo.GetQuote((Guid)work.QuoteId);

                        work.EndlasNumber = quote.EndlasNumber;
                        await _repo.UpdateJob(Job.CastWorkToJob(work));

                        break;

                    case WorkType.WorkOrder:
                        await _repo.UpdateWorkOrder(WorkOrder.CastWorkToWorkOrder(work));

                        break;

                    case WorkType.Work:
                        await _repo.UpdateWork(work);

                        break;

                    default:
                        break;
                    }
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!(await JobExists(work.WorkId)))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(RedirectToAction(nameof(Index), new { workType = workType }));
            }
            await SetViewData(Job.CastWorkToJob(work));

            return(View(work));
        }
        private async Task <PartForWork> SetImageBytes(PartForWork partForJob)
        {
            if (!partForJob.ClearMachiningImg)
            {
                if (partForJob.MachiningImageFile != null)
                {
                    var machiningBytes = await FileURL.GetFileBytes(partForJob.MachiningImageFile);

                    if (machiningBytes != partForJob.MachiningImageBytes)
                    {
                        partForJob.MachiningImageBytes = machiningBytes;
                    }
                }
            }
            else
            {
                partForJob.MachiningImageBytes = null;
            }
            if (!partForJob.ClearCladdingImg)
            {
                if (partForJob.CladdingImageFile != null)
                {
                    var claddingBytes = await FileURL.GetFileBytes(partForJob.CladdingImageFile);

                    if (claddingBytes != partForJob.CladdingImageBytes)
                    {
                        partForJob.CladdingImageBytes = claddingBytes;
                    }
                }
            }
            else
            {
                partForJob.CladdingImageBytes = null;
            }
            if (!partForJob.ClearFinishedImg)
            {
                if (partForJob.FinishedImageFile != null)
                {
                    var finishedBytes = await FileURL.GetFileBytes(partForJob.FinishedImageFile);

                    if (finishedBytes != partForJob.FinishedImageBytes)
                    {
                        partForJob.FinishedImageBytes = finishedBytes;
                    }
                }
            }
            else
            {
                partForJob.FinishedImageBytes = null;
            }
            if (!partForJob.ClearUsedImg)
            {
                if (partForJob.UsedImageFile != null)
                {
                    var usedBytes = await FileURL.GetFileBytes(partForJob.UsedImageFile);

                    if (usedBytes != partForJob.UsedImageBytes)
                    {
                        partForJob.UsedImageBytes = usedBytes;
                    }
                }
            }
            else
            {
                partForJob.UsedImageBytes = null;
            }
            return(partForJob);
        }