private static DataMatrixModel GetDataMatrix2DBarCodeModel(ConsigmentRequest item, Consignment itemHasConnote) { var dataMatrixModel = new DataMatrixModel { versionHeader = "A1", //01 connoteNum = itemHasConnote.ConNote, //02 recipientPostcode = itemHasConnote.Penerima.Address.Postcode, //03 countryCode = itemHasConnote.Penerima.Address.Country, //04 productCode = (itemHasConnote.Produk.IsInternational) ? "80000001" : "80000000", //05 parentConnote = (itemHasConnote.IsMps) ? itemHasConnote.ConNote : "", //06 mpsIndicator = (itemHasConnote.IsMps) ? "02" : "01", //07 senderPhoneNum = itemHasConnote.Pemberi.ContactInformation.ContactNumber, //08 senderEmail = itemHasConnote.Pemberi.ContactInformation.Email, //09 senderRefNo = item.ReferenceNo, //10 customerAccNum = (item.Designation == "Contract customer") ? item.UserId : "", //11 recipientPhoneNum = itemHasConnote.Penerima.ContactInformation.ContactNumber, //12 recipientEmail = itemHasConnote.Penerima.ContactInformation.Email, //13 weight = itemHasConnote.Produk.Weight.ToString("0.00"), //14 dimensionVol = $"{itemHasConnote.Produk.Length.ToString("0")}" + //15 $"x{itemHasConnote.Produk.Width.ToString("0")}" + $"x{itemHasConnote.Produk.Height.ToString("0")}", codAmount = itemHasConnote.Produk.Est.CodAmount > 0 ? itemHasConnote.Produk.Est.CodAmount.ToString("0.00") : "", //16 ccodAmount = itemHasConnote.Produk.Est.CcodAmount > 0 ? itemHasConnote.Produk.Est.CcodAmount.ToString("0.00") : "", //17 valueAdded = itemHasConnote.Produk.ValueAddedValue.ToString("0"), //18 itemCategory = itemHasConnote.Produk.ItemCategory, //19 amountPaid = item.Payment.TotalPrice.ToString("0"), //20 zone = (itemHasConnote.Produk.IsInternational) ? "" : "02", //21 }; return(dataMatrixModel); }
private static async Task SaveConsigmentRequest(ConsigmentRequest item) { var context = new SphDataContext(); using (var session = context.OpenSession()) { session.Attach(item); await session.SubmitChanges("Default"); } }
public async Task <ActionResult> AllLable(string crId) { LoadData <ConsigmentRequest> lo = await GetConsigmentRequest(crId); var item = lo.Source; var countConnote = 1; if (item.Designation == "Contract customer") { var itemsToRemove = new ConsigmentRequest(); foreach (var temp in item.Consignments) { if (temp.ConNote == null) { itemsToRemove.Consignments.Add(temp); } } foreach (var itemRemove in itemsToRemove.Consignments) { item.Consignments.Remove(itemRemove); } foreach (var itemHasConnote in item.Consignments) { string zplCode = GetLabelConnoteZplCode(item, itemHasConnote); //Send direct to printer. Suitable for stand-alone EziSend offline. Not for online EziSend. //Set printer name here var PrinterName = "TSC TTP-247"; //TODO: prompt direct from web client to choose printer kalau boleh lah bool result = RawPrinterHelper.SendStringToPrinter(PrinterName, zplCode.ToString(), $"{countConnote} - {itemHasConnote.ConNote}"); //Save as pdf for other purposes HttpWebRequest request = GetLableConnotePDF(zplCode); try { var response = (HttpWebResponse)request.GetResponse(); var responseStream = response.GetResponseStream(); var fileStream = System.IO.File.Create($@"C:\temp\Lable Connotes\{countConnote} - {itemHasConnote.ConNote}.pdf"); responseStream.CopyTo(fileStream); responseStream.Close(); fileStream.Close(); } catch (WebException e) { //Console.WriteLine("Error: {0}", e.Status); return(Json(new { success = false, status = "Fail", message = e.Status })); } countConnote++; } } return(Json(new { success = true, status = "OK" })); }
private static ConsigmentRequest CreateNewConsignmentRequestPickup(ConsigmentRequest consignmentRequestCart) { return(new ConsigmentRequest() { ReferenceNo = consignmentRequestCart.ReferenceNo, UserId = consignmentRequestCart.UserId, Designation = consignmentRequestCart.Designation, Payment = consignmentRequestCart.Payment.Clone(), Pickup = consignmentRequestCart.Pickup.Clone(), GenerateConnoteCounter = consignmentRequestCart.GenerateConnoteCounter, Id = Guid.NewGuid().ToString(), WebId = Guid.NewGuid().ToString() }); }
public async Task <ActionResult> AllConnote(string crId) { UserProfile userProfile = await GetDesignation(); LoadData <ConsigmentRequest> lo = await GetConsigmentRequest(crId); var item = lo.Source; if (userProfile.Designation == "Contract customer") { var itemsToRemove = new ConsigmentRequest(); foreach (var temp in item.Consignments) { if (temp.ConNote == null) { itemsToRemove.Consignments.Add(temp); } } foreach (var itemRemove in itemsToRemove.Consignments) { item.Consignments.Remove(itemRemove); } foreach (var csg in item.Consignments) { csg.Pemberi.Address.Postcode = int.Parse(Regex.Replace(csg.Pemberi.Address.Postcode, @"\D", "")).ToString("D5"); if (!csg.Produk.IsInternational) { csg.Penerima.Address.Postcode = int.Parse(Regex.Replace(csg.Penerima.Address.Postcode, @"\D", "")).ToString("D5"); } csg.Penerima.Address.Address1 = csg.Penerima.Address.Address1.Substring(0, csg.Penerima.Address.Address1.Length > 45 ? 45 : csg.Penerima.Address.Address1.Length); csg.Penerima.Address.Address2 = csg.Penerima.Address.Address2.Substring(0, csg.Penerima.Address.Address2.Length > 45 ? 45 : csg.Penerima.Address.Address2.Length); if (!String.IsNullOrEmpty(csg.Penerima.Address.Address3)) { csg.Penerima.Address.Address3 = csg.Penerima.Address.Address3.Substring(0, csg.Penerima.Address.Address3.Length > 35 ? 35 : csg.Penerima.Address.Address3.Length); } if (!String.IsNullOrEmpty(csg.Penerima.Address.Address4)) { csg.Penerima.Address.Address4 = csg.Penerima.Address.Address4.Substring(0, csg.Penerima.Address.Address4.Length > 35 ? 35 : csg.Penerima.Address.Address4.Length); } } } return(View(item)); }
private static async Task SaveChanges(SphDataContext context, ConsigmentRequest consignmentRequestPickup, ConsigmentRequest consignmentRequestCart) { Console.WriteLine($"Consignment Request Pickup Number: {consignmentRequestPickup.Pickup.Number}"); Console.WriteLine($"======================"); var countPickup = 0; foreach (var itemConsignments in consignmentRequestPickup.Consignments) { Console.WriteLine($"{countPickup += 1}. {itemConsignments.ConNote}"); } Console.WriteLine($"Consignment Request Cart Reference No: {consignmentRequestCart.ReferenceNo}"); Console.WriteLine($"======================"); var countCart = 0; foreach (var itemConsignments in consignmentRequestCart.Consignments) { Console.WriteLine($"{countCart += 1}. {itemConsignments.ConNote}"); } using (var session = context.OpenSession()) { session.Attach(consignmentRequestPickup); session.Attach(consignmentRequestCart); await session.SubmitChanges("Default"); } if (consignmentRequestCart.Consignments.Count == 0) { //Empty Cart consignmentRequestCart.Pickup = new Bespoke.Ost.ConsigmentRequests.Domain.Pickup(); consignmentRequestCart.Payment = new Bespoke.Ost.ConsigmentRequests.Domain.Payment(); consignmentRequestCart.ReferenceNo = Guid.NewGuid().ToString(); consignmentRequestCart.GenerateConnoteCounter = 0; using (var session = context.OpenSession()) { session.Attach(consignmentRequestCart); await session.SubmitChanges("Default"); } Console.WriteLine($"Cart Emptied"); } }
private static ConsigmentRequest CloneConsignmentRequestPickup(List <ConsigmentRequest> consignmentRequestsPickup) { var consignmentRequestPickup = new ConsigmentRequest() { ReferenceNo = consignmentRequestsPickup[0].ReferenceNo, UserId = consignmentRequestsPickup[0].UserId, Designation = consignmentRequestsPickup[0].Designation, Payment = consignmentRequestsPickup[0].Payment.Clone(), Pickup = consignmentRequestsPickup[0].Pickup.Clone(), GenerateConnoteCounter = consignmentRequestsPickup[0].GenerateConnoteCounter, Id = consignmentRequestsPickup[0].Id, WebId = consignmentRequestsPickup[0].WebId, }; foreach (var item in consignmentRequestsPickup[0].Consignments) { consignmentRequestPickup.Consignments.Add(item); } return(consignmentRequestPickup); }
private async Task <bool> RenewPickup(ConsigmentRequest consigmentRequest) { var json = JsonConvert.SerializeObject(consigmentRequest); var content = new StringContent(json, Encoding.UTF8, "application/json"); var requestUri = $"/consignment-request/renew-pickup/{consigmentRequest.Id}"; var response = await m_ostClient.PutAsync(requestUri, content); Console.WriteLine($"RequestUri: {response.RequestMessage.RequestUri}"); Console.WriteLine($"Status: {(int)response.StatusCode} {response.ReasonPhrase}"); if (!response.IsSuccessStatusCode) { Console.WriteLine("Aborting ....."); return(false); } var output = await response.Content.ReadAsStringAsync(); var consigmentRequestId = JObject.Parse(output).SelectToken("$.id").Value <string>(); Console.WriteLine($"Renewed: {consigmentRequestId}"); return(true); }
public async Task RunAsync(string start, string end) { var allRtsPickupFormats = new List <RtsPickupFormat>(); if (!string.IsNullOrEmpty(start) || !string.IsNullOrEmpty(end)) { allRtsPickupFormats = await GetRtsPickupFormatsWithinRange(start, end); } else { allRtsPickupFormats = await GetRtsPickupFormats(); } Console.WriteLine($"Total parcel(s) to be knockoff: {allRtsPickupFormats.Count}pcs"); var startAllRtsPickupFormats = true; var countAllRtsPickupFormatsRemaining = 0; var allRtsPickupFormatsRemaining = new List <RtsPickupFormat>(); if (allRtsPickupFormats.Count > 0) { while (startAllRtsPickupFormats) { if (countAllRtsPickupFormatsRemaining > 0) { allRtsPickupFormats = allRtsPickupFormatsRemaining.Clone(); allRtsPickupFormatsRemaining = new List <RtsPickupFormat>(); countAllRtsPickupFormatsRemaining = 0; } var knockOffProcess = true; var knockOffProcessIndex = 0; var needSave = true; var consignmentRequestPickups = new List <ConsigmentRequest>(); var consignmentRequestPickup = new ConsigmentRequest(); var consignmentRequestShipments = new List <ConsigmentRequest>(); var consignmentRequestShipment = new ConsigmentRequest(); var allRtsPickupFormatsTmp = allRtsPickupFormats.Clone(); while (knockOffProcess) { var rtsPickupFormat = allRtsPickupFormatsTmp[knockOffProcessIndex]; if (knockOffProcessIndex == 0) { consignmentRequestShipments = await GetConsignmentRequestByAccountNoAsync(rtsPickupFormat.AccountNo, rtsPickupFormat.ConsignmentNo, "false"); if (consignmentRequestShipments.Count > 0) { //Found Shipment consignmentRequestShipment = FoundConsignmentRequestShipment(consignmentRequestShipments); consignmentRequestPickups = await GetConsignmentRequestByPickupNoAndStatusAsync(rtsPickupFormat.PickupNo, "true"); if (consignmentRequestPickups.Count > 0) { //Found Pickup consignmentRequestPickup = FoundConsignmentRequestPickup(consignmentRequestPickups); //Move var matchedConnote = MoveConsignmentsFromShipmentToPickup(rtsPickupFormat, consignmentRequestShipment, consignmentRequestPickup); //update IsKnockOff UpdateRtsPickupFormatStatusAsync(rtsPickupFormat); } else { //F4 //Create Pickup consignmentRequestPickup = CreateNewConsignmentRequestPickup(consignmentRequestShipment, rtsPickupFormat); //Move var matchedConnote = MoveConsignmentsFromShipmentToPickup(rtsPickupFormat, consignmentRequestShipment, consignmentRequestPickup); //Set IsPickedUp consignmentRequestPickup.Pickup.IsPickedUp = true; //Set IsPaid consignmentRequestPickup.Payment.IsPaid = true; //update IsKnockOff UpdateRtsPickupFormatStatusAsync(rtsPickupFormat); } } else { //F3 needSave = false; //update IsKnockOff UpdateRtsPickupFormatStatusAsync(rtsPickupFormat); } } else { //F2 if (consignmentRequestPickup.Pickup.Number == rtsPickupFormat.PickupNo && consignmentRequestPickup.UserId == rtsPickupFormat.AccountNo) { //Move var matchedConnote = MoveConsignmentsFromShipmentToPickup(rtsPickupFormat, consignmentRequestShipment, consignmentRequestPickup); //update IsKnockOff UpdateRtsPickupFormatStatusAsync(rtsPickupFormat); } else { //F6 //add to remaining list allRtsPickupFormatsRemaining.Add(rtsPickupFormat); } } //RemoveCurrent allRtsPickupFormats.RemoveAt(0); if (knockOffProcessIndex > allRtsPickupFormatsTmp.Count || allRtsPickupFormats.Count == 0 || consignmentRequestShipment.Consignments.Count == 0) { //F8 knockOffProcess = false; if (needSave) { await SaveChanges(consignmentRequestPickup, consignmentRequestShipment); } if (allRtsPickupFormats.Count > 0) { allRtsPickupFormatsRemaining = allRtsPickupFormats.Clone(); } if (allRtsPickupFormatsRemaining.Count > 0) { countAllRtsPickupFormatsRemaining++; } else /*F7*/ startAllRtsPickupFormats {
public async Task GetRtsPickupEvent(RtsPickupFormat item) { var context = new SphDataContext(); var consignmentRequestsPickup = new List <ConsigmentRequest>(); var consignmentRequestsCart = new List <ConsigmentRequest>(); //Check data receive from scanner if (item.PickupNo == null || item.PickupNo == "" || item.AccountNo == null || item.AccountNo == "" || item.ConsignmentNo == null || item.ConsignmentNo == "") { Console.WriteLine($"Incomplete mandotary data."); } else { consignmentRequestsPickup = await GetConsignmentRequestAsync(item.PickupNo, "true"); if (consignmentRequestsPickup.Count > 0) //Pickup exist { //Clone ConsigmentRequest consignmentRequestPickup = CloneConsignmentRequestPickup(consignmentRequestsPickup); consignmentRequestsCart = await GetConsignmentRequestAsync(item.PickupNo, "false"); if (consignmentRequestsCart.Count > 0) //Cart exist { //Clone ConsigmentRequest consignmentRequestCart = CloneConsignmentRequestCart(consignmentRequestsCart); //Move var needSaving = MoveConsignmentFromCartToPickup(item.ConsignmentNo, item.ActualWeight, consignmentRequestCart, consignmentRequestPickup); //Save if (needSaving) { await SaveChanges(context, consignmentRequestPickup, consignmentRequestCart); } } else //Cart not exist { //Fall through, there is no consignmentRequest with the scanner`s PickupNo consignmentRequestsCart = await GetConsignmentRequestByAccountNoAsync(item.AccountNo, item.ConsignmentNo, "false"); if (consignmentRequestsCart.Count > 0) //Cart exist (no pickupNo) { //Clone ConsigmentRequest consignmentRequestCart = CloneConsignmentRequestCart(consignmentRequestsCart); //Move var needSaving = MoveConsignmentFromCartToPickup(item.ConsignmentNo, item.ActualWeight, consignmentRequestCart, consignmentRequestPickup); //Save if (needSaving) { await SaveChanges(context, consignmentRequestPickup, consignmentRequestCart); } } else { //Fall through } } } else //Pickup not exist { consignmentRequestsCart = await GetConsignmentRequestAsync(item.PickupNo, "false"); if (consignmentRequestsCart.Count > 0) //Cart exist { //Clone ConsigmentRequest consignmentRequestCart = CloneConsignmentRequestCart(consignmentRequestsCart); //Create ConsigmentRequest consignmentRequestPickup = CreateNewConsignmentRequestPickup(consignmentRequestCart); //Set IsPickedUp consignmentRequestPickup.Pickup.IsPickedUp = true; //Set IsPaid consignmentRequestPickup.Payment.IsPaid = true; //Move var needSaving = MoveConsignmentFromCartToPickup(item.ConsignmentNo, item.ActualWeight, consignmentRequestCart, consignmentRequestPickup); //Save if (needSaving) { Console.WriteLine($"Pickup created"); await SaveChanges(context, consignmentRequestPickup, consignmentRequestCart); } } else //Cart not exist { //Fall through, there is no consignmentRequest with the scanner`s PickupNo consignmentRequestsCart = await GetConsignmentRequestByAccountNoAsync(item.AccountNo, item.ConsignmentNo, "false"); if (consignmentRequestsCart.Count > 0) //Cart exist (no pickupNo) { //Clone ConsigmentRequest consignmentRequestCart = CloneConsignmentRequestCart(consignmentRequestsCart); //Create ConsigmentRequest consignmentRequestPickup = CreateNewConsignmentRequestPickup(consignmentRequestCart); //Set Pickup.Number consignmentRequestPickup.Pickup.Number = item.PickupNo; //Set IsPickedUp consignmentRequestPickup.Pickup.IsPickedUp = true; //Set IsPaid consignmentRequestPickup.Payment.IsPaid = true; //Move var needSaving = MoveConsignmentFromCartToPickup(item.ConsignmentNo, item.ActualWeight, consignmentRequestCart, consignmentRequestPickup); //Save if (needSaving) { Console.WriteLine($"Pickup created"); await SaveChanges(context, consignmentRequestPickup, consignmentRequestCart); } } else { //Fall through } } } } }
private static bool MoveConsignmentFromCartToPickup(string consignmentNo, decimal actualWeigth, ConsigmentRequest consignmentRequestCart, ConsigmentRequest consignmentRequestPickup) { var isMatch = false; var consignment = new Consignment(); foreach (var item in consignmentRequestCart.Consignments) { if (item.ConNote == consignmentNo) { item.Bill.ActualWeight = actualWeigth; consignment = item; isMatch = true; break; } } if (isMatch) { consignmentRequestCart.Consignments.Remove(consignment); consignmentRequestPickup.Consignments.Add(consignment); } return(isMatch); }
private static string GetLabelConnoteZplCode(ConsigmentRequest item, Consignment itemHasConnote) { DataMatrixModel dataMatrixModel = GetDataMatrix2DBarCodeModel(item, itemHasConnote); var dataMatrixCodeThermal = $"{dataMatrixModel.versionHeader}_5e{dataMatrixModel.connoteNum}_5e{dataMatrixModel.recipientPostcode}_5e{dataMatrixModel.countryCode}_5e{dataMatrixModel.productCode}_5e{dataMatrixModel.parentConnote}_5e{dataMatrixModel.mpsIndicator}_5e" + $"{dataMatrixModel.senderPhoneNum}_5e{dataMatrixModel.senderEmail}_5e{dataMatrixModel.senderRefNo}_5e{dataMatrixModel.customerAccNum}_5e{dataMatrixModel.recipientPhoneNum}_5e{dataMatrixModel.recipientEmail}_5e{dataMatrixModel.weight}_5e{dataMatrixModel.dimensionVol}_5e" + $"{dataMatrixModel.codAmount}_5e{dataMatrixModel.ccodAmount}_5e{dataMatrixModel.valueAdded}_5e{dataMatrixModel.itemCategory}_5e{dataMatrixModel.amountPaid}_5e{dataMatrixModel.zone}"; var pemberiAddressLine2 = (!String.IsNullOrEmpty(itemHasConnote.Pemberi.Address.Address4) ? itemHasConnote.Pemberi.Address.Address3 + ", " + itemHasConnote.Pemberi.Address.Address4 : itemHasConnote.Pemberi.Address.Address3); var penerimaAddressLine2 = (!String.IsNullOrEmpty(itemHasConnote.Penerima.Address.Address4) ? itemHasConnote.Penerima.Address.Address3 + ", " + itemHasConnote.Penerima.Address.Address4 : itemHasConnote.Penerima.Address.Address3); var internationalDescription = (!String.IsNullOrEmpty(itemHasConnote.Produk.CustomDeclaration.ContentDescription2) ? itemHasConnote.Produk.CustomDeclaration.ContentDescription1 + " " + itemHasConnote.Produk.CustomDeclaration.ContentDescription2 + " " + itemHasConnote.Produk.CustomDeclaration.ContentDescription3 : itemHasConnote.Produk.CustomDeclaration.ContentDescription1); var connoteDate = (item.Payment.IsPickupScheduled ? item.Pickup.DateReady : item.ChangedDate); var volumetricWeight = (itemHasConnote.Produk.Width * itemHasConnote.Produk.Length * itemHasConnote.Produk.Height) / 6000; var itemCategory = (itemHasConnote.Produk.ItemCategory == "01" ? "DOCUMENT" : "MERCHANDISE"); var productType = (itemHasConnote.Produk.IsInternational ? "INTERNATIONAL" : "DOMESTIC"); var chargeOnDelivery = itemHasConnote.Produk.Est.CodAmount > 0 ? ("COD : RM " + itemHasConnote.Produk.Est.CodAmount.ToString("0.00")) : ("CCOD : RM " + itemHasConnote.Produk.Est.CcodAmount.ToString("0.00")); var textChargeOnDeliveryCustCopy = (itemHasConnote.Produk.Est.CodAmount > 0 || itemHasConnote.Produk.Est.CcodAmount > 0 ? "JUMLAH " + chargeOnDelivery : ""); var textChargeOnDeliveryPPLCopy = (itemHasConnote.Produk.Est.CodAmount > 0 || itemHasConnote.Produk.Est.CcodAmount > 0 ? chargeOnDelivery : ""); var routingCode = itemHasConnote.Produk.IsInternational ? "" : itemHasConnote.Bill.RoutingCode; var zplCode = "^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR5,5~SD15^JUS^LRN^CI0^XZ"; zplCode += "^XA"; zplCode += "^MMT"; zplCode += "^PW812"; zplCode += "^LL1242"; zplCode += "^LS0"; zplCode += "^FT27,644^AQ^FH^FDKEPADA :^FS"; zplCode += "^FT27,672^AQ^FH^FD" + itemHasConnote.Penerima.ContactPerson.ToUpper() + "^FS"; zplCode += "^FT27,700^AQ^FH^FD" + itemHasConnote.Penerima.Address.Address1.ToUpper() + "^FS"; zplCode += "^FS^FT27,728^AQ^FH^FD" + itemHasConnote.Penerima.Address.Address2.ToUpper() + "^FS"; zplCode += "^FS^FT27,756^AQ^FH^FD" + (!String.IsNullOrEmpty(itemHasConnote.Penerima.Address.Address3) ? itemHasConnote.Penerima.Address.Address3.ToUpper() : "") + "^FS"; zplCode += "^FS^FT27,784^AQ^FH^FD" + (!String.IsNullOrEmpty(itemHasConnote.Penerima.Address.Address4) ? itemHasConnote.Penerima.Address.Address4.ToUpper() : "") + "^FS"; zplCode += "^FS^FT27,812^AQ^FH^FD" + itemHasConnote.Penerima.Address.City.ToUpper() + "^FS"; zplCode += "^FT27,840^AQ^FH^FD" + itemHasConnote.Penerima.Address.State.ToUpper() + "^FS"; zplCode += "^FT27,868^AQ^FH^FD" + itemHasConnote.Penerima.Address.Postcode + "^FS"; zplCode += "^FO5,617^GB806,0,1^FS"; zplCode += "^FO5,923^GB806,0,1^FS"; zplCode += "^FO7,401^GB794,0,1^FS"; zplCode += "^FT382,648^AQ^FH^FDRUJ. PENERIMA : " + (!String.IsNullOrEmpty(itemHasConnote.Produk.Est.ReceiverReferenceNo) ? itemHasConnote.Produk.Est.ReceiverReferenceNo.ToUpper() : "") + "^FS"; zplCode += "^FT558,432^AQ^FH^FD" + item.UserId + "^FS"; zplCode += "^FT540,963^AU,48,124^FH^FD" + itemHasConnote.Penerima.Address.Postcode + "^FS"; zplCode += "^FT28,901^AQ^FH^FDTEL : " + itemHasConnote.Penerima.ContactInformation.ContactNumber + "^FS"; zplCode += "^FT26,954^AQ^FH^FDPOSKOD : ^FS"; zplCode += "^FT254,901^AQ^FH^FDTEL2 : " + itemHasConnote.Penerima.ContactInformation.AlternativeContactNumber + "^FS"; zplCode += "^BY2,3,74^FT455,1191^BCN,,Y,N"; zplCode += "^FD" + itemHasConnote.ConNote.ToUpper() + "^FS"; zplCode += "^BY2,3,110^FT423,148^BCN,,Y,N"; zplCode += "^FD" + itemHasConnote.ConNote.ToUpper() + "^FS"; zplCode += "^FT28,429^AQ^FH^FDDARIPADA :^FS"; zplCode += "^FT27,208^AQ^FH^FDMAKLUMAT ITEM^FS"; zplCode += "^FT325,307^AP^FH^FD" + (itemHasConnote.Produk.ValueAddedDeclaredValue != 0 ? "Insurance : YES" : "") + "^FS^FT500,307^AP^FH^FD" + (itemHasConnote.Produk.ValueAddedDeclaredValue != 0 ? ("Value : RM " + itemHasConnote.Produk.ValueAddedDeclaredValue) : "") + "^FS"; zplCode += "^FT325,284^AP^FH^FDKeterangan :^FS"; zplCode += "^FT325,261^AP^FH^FDJenis :^FS"; zplCode += "^FT421,284^AP^FH^FD" + (itemHasConnote.Produk.IsInternational ? internationalDescription : itemHasConnote.Produk.Description).ToUpper() + "^FS"; zplCode += "^FT325,238^AP^FH^FDProduk :^FS"; zplCode += "^FT421,261^AP^FH^FD" + itemCategory + "^FS"; zplCode += "^FT325,211^AQ^FH^FDRUJ. TRANSAKSI : " + item.ReferenceNo.ToUpper() + "^FS"; zplCode += "^FT421,236^AP^FH^FDCOURIER CHARGES - " + productType + "^FS"; zplCode += "^FT27,297^AP^FH^FDVolumetrik :^FS"; zplCode += "^FT123,297^AP^FH^FD" + volumetricWeight.ToString("0.00") + "KG^FS"; zplCode += "^FT27,277^AP^FH^FDSebenar :^FS"; zplCode += "^FT124,279^AP^FH^FD" + itemHasConnote.Bill.ActualWeight.ToString("0.00") + " KG^FS"; zplCode += "^FT28,259^AP^FH^FDBerat :^FS"; zplCode += "^FT123,261^AP^FH^FD" + itemHasConnote.Produk.Weight.ToString("0.00") + " KG^FS"; zplCode += "^FT402,431^AQ^FH^FDAKAUN NO :^FS"; zplCode += "^FT250,605^AP^FH^FDTEL2 : " + itemHasConnote.Pemberi.ContactInformation.AlternativeContactNumber + "^FS"; zplCode += "^FT500,605^AP^FH^FDRUJ. PENGIRIM : " + (!String.IsNullOrEmpty(itemHasConnote.Produk.Est.ShipperReferenceNo) ? itemHasConnote.Produk.Est.ShipperReferenceNo.ToUpper() : "") + "^FS"; zplCode += "^FT25,605^AP^FH^FDTEL : " + itemHasConnote.Pemberi.ContactInformation.ContactNumber + "^FS"; zplCode += "^FT29,458^AP^FH^FD" + (!String.IsNullOrEmpty(itemHasConnote.Pemberi.CompanyName) ? itemHasConnote.Pemberi.CompanyName.ToUpper() : "") + "^FS"; zplCode += "^FT29,479^AP^FH^FD" + (itemHasConnote.Pemberi.Address.Address1 + ", " + itemHasConnote.Pemberi.Address.Address2).ToUpper() + "^FS"; zplCode += "^FT29,500^AP^FH^FD" + (!String.IsNullOrEmpty(pemberiAddressLine2) ? pemberiAddressLine2.ToUpper() : "") + "^FS"; zplCode += "^FT29,521^AP^FH^FD" + itemHasConnote.Pemberi.Address.City.ToUpper() + "^FS"; zplCode += "^FT29,542^AP^FH^FD" + itemHasConnote.Pemberi.Address.State.ToUpper() + "^FS"; zplCode += "^FT29,563^AP^FH^FD" + itemHasConnote.Pemberi.Address.Postcode + "^FS"; zplCode += "^FT31,1043^AP^FH^FDKepada:^FS"; zplCode += "^FT31,1064^AP^FH^FD" + (!String.IsNullOrEmpty(itemHasConnote.Penerima.ContactPerson) ? itemHasConnote.Penerima.ContactPerson.ToUpper() : "") + "^FS"; zplCode += "^FT31,1085^AP^FH^FD" + (itemHasConnote.Penerima.Address.Address1 + ", " + itemHasConnote.Penerima.Address.Address2).ToUpper() + "^FS"; zplCode += "^FT31,1106^AP^FH^FD" + (!String.IsNullOrEmpty(penerimaAddressLine2) ? penerimaAddressLine2.ToUpper() : "") + "^FS"; zplCode += "^FT31,1127^AP^FH^FD" + itemHasConnote.Penerima.Address.City.ToUpper() + "^FS"; zplCode += "^FT31,1148^AP^FH^FD" + itemHasConnote.Penerima.Address.State.ToUpper() + "^FS"; zplCode += "^FT31,1169^AP^FH^FD" + itemHasConnote.Penerima.Address.Postcode + "^FS"; zplCode += "^FT309,1169^AP^FH^FD" + (itemHasConnote.Produk.ValueAddedDeclaredValue != 0 ? ("Value : RM " + itemHasConnote.Produk.ValueAddedDeclaredValue) : "") + "^FS^FT168,1169^AP^FH^FD" + (itemHasConnote.Produk.ValueAddedDeclaredValue != 0 ? "Insurance : YES" : "") + "^FS"; zplCode += "^FT309,1191^AP^FH^FD" + textChargeOnDeliveryPPLCopy + "^FS"; zplCode += "^FT168,1191^AP^FH^FDTel2 : " + itemHasConnote.Penerima.ContactInformation.AlternativeContactNumber + "^FS"; zplCode += "^FT33,1191^AP^FH^FDTel : " + itemHasConnote.Penerima.ContactInformation.ContactNumber + "^FS"; zplCode += "^FT27,240^AP^FH^FDTarikh :^FS"; zplCode += "^FT121,240^AP^FH^FD" + connoteDate.ToString("d MMMM yyyy") + "^FS"; zplCode += "^FT180,378^AV^FH^FD" + routingCode + "^FS"; zplCode += "^FS^FT434,1194^AT^FH^FT392,571^AT^FH^FD" + textChargeOnDeliveryPPLCopy + "^FS"; zplCode += "^FT262,1040^AQ^FH^FDSalinan Pejabat^FS"; zplCode += "^FS^FT150,956^AT^FH^FD*" + itemHasConnote.ConNote.ToUpper() + "*^FS"; zplCode += "^BY128,128^FT620,920^BXN,4,200,0,0,1,~"; zplCode += "^FH^FD" + dataMatrixCodeThermal + "^FS"; zplCode += "^PQ1,0,1,Y^XZ"; return(zplCode); }
public async Task <ActionResult> AllLableDownload(string crId, int page) { LoadData <ConsigmentRequest> lo = await GetConsigmentRequest(crId); var item = lo.Source; var size = 50; var countConnote = (size * (page - 1)); if (item.Designation == "Contract customer") { var itemsToRemove = new ConsigmentRequest(); foreach (var temp in item.Consignments) { if (temp.ConNote == null || temp.Produk.IsInternational) { itemsToRemove.Consignments.Add(temp); } } foreach (var itemRemove in itemsToRemove.Consignments) { item.Consignments.Remove(itemRemove); } foreach (var csg in item.Consignments) { csg.Pemberi.Address.Postcode = int.Parse(Regex.Replace(csg.Pemberi.Address.Postcode, @"\D", "")).ToString("D5"); if (!csg.Produk.IsInternational) { csg.Penerima.Address.Postcode = int.Parse(Regex.Replace(csg.Penerima.Address.Postcode, @"\D", "")).ToString("D5"); } csg.Penerima.Address.Address1 = csg.Penerima.Address.Address1.Substring(0, csg.Penerima.Address.Address1.Length > 45 ? 45 : csg.Penerima.Address.Address1.Length); csg.Penerima.Address.Address2 = csg.Penerima.Address.Address2.Substring(0, csg.Penerima.Address.Address2.Length > 45 ? 45 : csg.Penerima.Address.Address2.Length); if (!String.IsNullOrEmpty(csg.Penerima.Address.Address3)) { csg.Penerima.Address.Address3 = csg.Penerima.Address.Address3.Substring(0, csg.Penerima.Address.Address3.Length > 35 ? 35 : csg.Penerima.Address.Address3.Length); } if (!String.IsNullOrEmpty(csg.Penerima.Address.Address4)) { csg.Penerima.Address.Address4 = csg.Penerima.Address.Address4.Substring(0, csg.Penerima.Address.Address4.Length > 35 ? 35 : csg.Penerima.Address.Address4.Length); } } var zplCode = ""; for (int i = countConnote; i < item.Consignments.Count && i < page * size; i++) { zplCode += GetLabelConnoteZplCode(item, item.Consignments[i]); } byte[] zpl = Encoding.UTF8.GetBytes(zplCode); var request = (HttpWebRequest)WebRequest.Create("http://api.labelary.com/v1/printers/8dpmm/labels/4x6/"); //TODO make it variable request.Method = "POST"; request.Accept = "application/pdf"; //request.Accept = "image/png"; //Get image output request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = zpl.Length; var requestStream = request.GetRequestStream(); requestStream.Write(zpl, 0, zpl.Length); requestStream.Close(); var path = Path.GetTempFileName() + ".pdf"; var response = (HttpWebResponse)request.GetResponse(); var responseStream = response.GetResponseStream(); var fileStream = System.IO.File.Create(System.Web.HttpContext.Current.Server.MapPath($"~/Content/Files/Thermal_Label_{item.UserId}.pdf")); //Generate template file var fileTempStream = System.IO.File.Create(path); //Generate temporary file responseStream.CopyTo(fileStream); fileStream.Close(); responseStream.Close(); fileTempStream.Close(); try { System.IO.File.Copy(fileStream.Name, fileTempStream.Name, true); } catch (Exception e) { return(Json(new { success = false, status = e.Message })); } return(Json(new { success = true, status = "OK", path = Path.GetFileName(path) })); } return(Json(new { success = false, status = "Error" })); }