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);
        }
Example #2
0
        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" }));
        }
Example #4
0
 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));
        }
Example #6
0
        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");
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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 {
Example #10
0
        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
                        }
                    }
                }
            }
        }
Example #11
0
        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);
        }
Example #12
0
        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);
        }
Example #13
0
        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" }));
        }