public List <Orchestrator.BulkScan.Types.ScanResult> GetScanUploadDefaultInformationAndExistingScans(string barcodes) { if (string.IsNullOrEmpty(barcodes)) { return(new List <ScanResult>()); } List <ScanResult> result = new List <ScanResult>(); Facade.Form facForm = new Orchestrator.Facade.Form(); Facade.ResourceManifest facRM = new Orchestrator.Facade.ResourceManifest(); Facade.IOrder facOrder = new Orchestrator.Facade.Order(); Entities.Scan scan = null; ScanResult sr = null; foreach (string barcode in barcodes.Split(":".ToCharArray())) { try { // The 3rd and 4th chars of the barcode indicate the form type switch (barcode.Substring(2, 2)) { case "02": // Resource Manifests string extractedResourceManifestId = barcode.Substring(4, 8); for (int i = 0; i < 8; i++) { if (extractedResourceManifestId.Length > 0 && extractedResourceManifestId.Substring(0, 1) == "0") { extractedResourceManifestId = extractedResourceManifestId.Substring(1); } else { break; } } int resourceManifestId = Convert.ToInt32(extractedResourceManifestId); Entities.ResourceManifest rm = facRM.GetResourceManifest(resourceManifestId); if (rm != null) { sr = new ScanResult(); sr.Barcode = barcode; sr.FormType = "02"; if (rm.ScannedFormId > 0) { scan = facForm.GetForScannedFormId(rm.ScannedFormId); if (scan != null) { sr.PDFPath = scan.ScannedFormPDF; sr.Replace = false; } } result.Add(sr); } break; //case "01": // Delivery Note // int orderId = Convert.ToInt32(barcode.Substring(3)); // Entities.Order order = facOrder.GetForOrderID(orderId); // if (order != null) // { // sr = new ScanResult(); // sr.Barcode = barcode; // sr.FormType = "01"; // if (order.DeliveryNoteScannedFormId.HasValue) // { // scan = facForm.GetForScannedFormId(order.DeliveryNoteScannedFormId.Value); // if (scan != null) // { // sr.PDFPath = scan.ScannedFormPDF; // sr.Replace = false; // } // } // result.Add(sr); // } // break; case "01": // PODS string extratedOrderId = barcode.Substring(4, 8); for (int i = 0; i < 8; i++) { if (extratedOrderId.Length > 0 && extratedOrderId.Substring(0, 1) == "0") { extratedOrderId = extratedOrderId.Substring(1); } else { break; } } int orderId2 = Convert.ToInt32(extratedOrderId); Entities.Order order2 = facOrder.GetForOrderID(orderId2); if (order2 != null) { Facade.POD facPod = new Orchestrator.Facade.POD(); Entities.POD pod = facPod.GetForOrderID(orderId2); BatchItemPodInfo podInfo = new BatchItemPodInfo(); sr = new ScanResult(); sr.Barcode = barcode; sr.FormType = "01"; if (pod != null) { scan = facForm.GetForScannedFormId(pod.ScannedFormId); if (scan != null) { sr.PDFPath = scan.ScannedFormPDF; sr.Replace = false; } } int collectDropId = facOrder.GetDeliveryCollectDropIDForPODScanner(orderId2); int JobId = facOrder.GetDeliveryJobIDForOrderID(orderId2); DataSet dsJobDetails = facPod.GetJobDetails(JobId); bool foundCollectDrop = false; foreach (DataRow row in dsJobDetails.Tables["CollectionDrop"].Rows) { if ((int)row["CollectDropId"] == collectDropId) { podInfo.TicketNumber = row["ClientsCustomerReference"].ToString(); podInfo.SignatureDate = (DateTime)row["CollectDropDateTime"]; foundCollectDrop = true; break; } } // If we don't find pod info, default it to something sensible. if (!foundCollectDrop) { podInfo.TicketNumber = ""; podInfo.SignatureDate = DateTime.Now; } sr.BatchItemInfo = SerializeBatchItemInfoToString(sr.FormType, podInfo); result.Add(sr); } break; default: break; } } catch (Exception ex) { ScanResult srError = new ScanResult(); srError.Barcode = barcode; srError.ErrorOccurred = true; srError.ErrorText = ex.Message; result.Add(srError); } } return(result); }
public bool PrepareForBulkScanUpload(List <ScanPreparation> scanPreps, string userId) { bool result = false; foreach (ScanPreparation sp in scanPreps) { if (sp.FormType == "02") // Resource Manifest { Entities.Scan manifest = null; // Resource Manifest if (Convert.ToInt32(sp.RecordId) > 0) { Facade.Form facForm = new Facade.Form(); manifest = new Entities.Scan(); // If this is not a replace (ie its an 'append'), then the previousScannedFormId value must be set. // The previousScannedFormId should also be set when a placeholder row (with NoDocumentScanned.pdf) is present. Facade.ResourceManifest facResourceManifest = new Orchestrator.Facade.ResourceManifest(); Entities.ResourceManifest rm = facResourceManifest.GetResourceManifest(int.Parse(sp.RecordId)); if (rm.ScannedFormId > 0) { manifest.PreviousScannedFormId = rm.ScannedFormId; } manifest.ScannedDateTime = DateTime.Today; manifest.FormTypeId = eFormTypeId.Manifest; manifest.ScannedFormPDF = sp.PDFFileName; manifest.IsAppend = !sp.Replace; manifest.IsUploaded = false; int scanFormId = facForm.CreateNew(manifest, userId); if (scanFormId > 0) { manifest.ScannedFormId = scanFormId; // Update manifest record here facResourceManifest.UpdateResourceManifestScan(int.Parse(sp.RecordId), scanFormId, userId); } } result = true; } if (sp.FormType == "01") // POD { Facade.IOrder facOrder = new Facade.Order(); Facade.POD facPod = new Orchestrator.Facade.POD(); Entities.POD pod = null; int collectDropId = facOrder.GetDeliveryCollectDropIDForPODScanner(int.Parse(sp.RecordId)); int JobId = facOrder.GetDeliveryJobIDForOrderID(int.Parse(sp.RecordId)); pod = facPod.GetForOrderID(int.Parse(sp.RecordId)); if (pod == null) { pod = new Entities.POD(); } BatchItemPodInfo podInfo = (BatchItemPodInfo)DeserializeBatchItemInfoFromString(sp); if (podInfo != null) { pod.TicketNo = podInfo.TicketNumber; pod.SignatureDate = podInfo.SignatureDate; } else { pod.TicketNo = string.Empty; pod.SignatureDate = DateTime.Now; } //pod.PreviousScannedFormId pod.ScannedDateTime = DateTime.Today; pod.JobId = JobId; pod.CollectDropId = collectDropId; pod.OrganisationId = 0; if (pod.ScannedFormPDF != null && pod.ScannedFormPDF.ToLower().Contains(Globals.Constants.NO_DOCUMENT_AVAILABLE.ToLower())) { pod.IsAppend = false; } else { pod.IsAppend = !sp.Replace; } pod.ScannedFormPDF = sp.PDFFileName; if (pod.ScannedFormId > 0) { facPod.Update(pod, userId); // re get the pod entry as the scannedFormId will have changed. pod = facPod.GetForPODId(pod.PODId); } else { int podId = facPod.Create(pod, JobId, 0, collectDropId, userId); // get the newly created pod. pod = facPod.GetForPODId(podId); } result = true; } //if (sp.FormType == "01") // delivery notes //{ // Entities.Scan deliveryNote = null; // // delivery note // if (Convert.ToInt32(sp.RecordId) > 0) // { // Facade.IOrder facOrder = new Facade.Order(); // Facade.Form facForm = new Facade.Form(); // deliveryNote = new Entities.Scan(); // // If this is not a replace (ie its an 'append'), then the previousScannedFormId value must be set. // // The previousScannedFormId should also be set when a placeholder row (with NoDocumentScanned.pdf) is present. // Entities.Order order = facOrder.GetForOrderID(int.Parse(sp.RecordId)); // if (order.DeliveryNoteScannedFormId > 0) // deliveryNote.PreviousScannedFormId = order.DeliveryNoteScannedFormId; // deliveryNote.ScannedDateTime = DateTime.Today; // deliveryNote.FormTypeId = eFormTypeId.DeliveryNote; // deliveryNote.ScannedFormPDF = sp.PDFFileName; // deliveryNote.IsAppend = !sp.Replace; // deliveryNote.IsUploaded = false; // int scanFormId = facForm.CreateNew(deliveryNote, userId); // if (scanFormId > 0) // { // deliveryNote.ScannedFormId = scanFormId; // // Update manifest record here // facOrder.UpdateDeliveryNoteScannedFormId(int.Parse(sp.RecordId), scanFormId, userId); // } // } // result = true; //} } return(result); }