﻿/** 
  <summary>
    Main Function:  Convert web object to string - match with businesslayer
    Created Date:   08/17/2009
    Created By:     YW
    Modified Date: [MM/DD/YYYY]
    Modified By: [Your initial]
    Reason for Modifying: [Your comment]
*/


/*  reseller    
    1	Food Industry
    2	Janitorial Industry
    3	Office Industry
    4	Packaging Industry
*/
function DeSerializeResellers(ResellersStr)
{
    var Resellers = new Array();
    var ResellersList = ResellersStr.split("|@reseller@|");
    var i = 0;
    for (i = 0; i < ResellersList.length; i ++)
    {
        Resellers[i] = ResellersList[i]; 
    }
    return Resellers;
}

// item promotions
/*
                        itemPromotion.ItemCode = itemPromotionStrList[0];                        
                        itemPromotion.Promotion.PromotionID = Convert.ToInt32(itemPromotionStrList[1]);
                        itemPromotion.Promotion.PromotionTypeCode = itemPromotionStrList[2];
                        itemPromotion.Promotion.PromotionName = itemPromotionStrList[3];
                        itemPromotion.Promotion.PromotionDesc = itemPromotionStrList[4];
                        itemPromotion.Promotion.AccessCode = itemPromotionStrList[5];
                        itemPromotion.Promotion.StartDate = Convert.ToDateTime(itemPromotionStrList[6]);
                        itemPromotion.Promotion.ExpireDate = Convert.ToDateTime(itemPromotionStrList[7]);
                        itemPromotion.Promotion.IsDiscountPercent = Convert.ToBoolean(itemPromotionStrList[8]);
                        itemPromotion.Promotion.DiscountValue = Convert.ToDecimal(itemPromotionStrList[9]);
                        itemPromotion.Promotion.MinPurchaseAmount = Convert.ToDecimal(itemPromotionStrList[10]);
                        itemPromotion.Promotion.MinPurchaseQty = Convert.ToInt32(itemPromotionStrList[11]);
                        itemPromotion.Promotion.IsReuseable = Convert.ToBoolean(itemPromotionStrList[12]);
*/
function SerializeItemPromotions(ItemPromotions)
{
    var ItemPromotionsStr = "";
    
    var i = 0;
    var j = 0;
    var ItemPromotion;
    for (i = 0; i < ItemPromotions.length; i ++)
    {
        ItemPromotion = ItemPromotions[i];
        if (ItemPromotion.length >= 13)
        {
            for (j = 0; j < ItemPromotion.length; j ++)
            {
                ItemPromotionsStr += ItemPromotion[j];
                
                if (j < ItemPromotion.length - 1)
                {
                    ItemPromotionsStr += "|@ItemPromotion@|";
                }
            }
            ItemPromotionsStr += "|@IPS@|";
        }
    }
    return ItemPromotionsStr;
}

function DeSerializeItemPromotions(ItemPromotionsStr)
{
    var ItemPromotions = new Array();
    var ItemPromotionsList = ItemPromotionsStr.split("|@IPS@|");
    var i = 0;
    for (i = 0; i < ItemPromotionsList.length; i ++)
    {
        ItemPromotions[i] = ItemPromotionsList[i].split("|@ItemPromotion@|"); 
    }
    return ItemPromotions;
}

/*
                item.Code = itemStrList[0];
                item.BaseUOM = itemStrList[1];
                item.BaseUOMQty = Convert.ToInt32(itemStrList[2]);
                item.SellingUOM = itemStrList[3];
                item.SellingUOMQty = Convert.ToInt32(itemStrList[4]);
                item.SuperUOM = itemStrList[5];
                item.SuperUOMQty = Convert.ToInt32(itemStrList[6]);
                item.ListPrice = Convert.ToDecimal(itemStrList[7]);
                item.WarehouseItems = this.DeSerializeWarehouseItems(itemStrList[8]);
                item.QtyPriceBreaks = this.DeSerializeQtyPriceBreaks(itemStrList[9]);
                item.ItemClass.ItemClassCode = itemStrList[10];
                item.TaxTypeCode = itemStrList[11];
*/
function SerializeItem(item)
{
    var itemStr = "";
    
    if (item != null && item.length >= 12)
    {
        var i = 0;
        for (i = 0; i < item.length; i ++)
        {
            itemStr += item[i];
                
            if (i < item.length - 1)
            {
                itemStr += "|@Item@|";
            }
        }
    }
    
    return itemStr;
}


function DeSerializeItem(itemString)
{
    var item = new Array();
    if (itemString != null)
    {
        item = itemString.split("|@Item@|");
    }
    return item;
}

function SerializeWarehouseItems(warehouseItems)
{
    var warehouseItemsStr = "";
    
    var i = 0;
    var j = 0;
    var warehouseItem;
    for (i = 0; i < warehouseItems.length; i ++)
    {
        warehouseItem = warehouseItems[i];
        if (warehouseItem.length >= 7)
        {
            for (j = 0; j < warehouseItem.length; j ++)
            {
                warehouseItemsStr += warehouseItem[j];
                
                if (j < warehouseItem.length - 1)
                {
                    warehouseItemsStr += "|@WHItem@|";
                }
            }
            warehouseItemsStr += "|@WHIS@|";
        }
    }
    return warehouseItemsStr;
}

function DeSerializeWarehouseItems(warehouseItemsStr)
{
    warehouseItems = new Array();
    var warehouseItemsList = warehouseItemsStr.value.split("|@WHIS@|");
    var i = 0;
    for (i = 0; i < warehouseItemsList.length; i ++)
    {
        warehouseItems[i] = warehouseItemsList[i].split("|@WHItem@|"); 
    }
    return warehouseItems;
}

function SerializeQtyPriceBreaks(priceBreaks)
{
    var priceBreaksStr = "";
    
    var i = 0;
    var j = 0;
    var priceBreak;
    for (i = 0; i < priceBreaks.length; i ++)
    {
        priceBreak = priceBreaks[i];
        if (priceBreak.length >= 3)
        {
            for (j = 0; j < priceBreak.length; j ++)
            {
                priceBreaksStr += priceBreak[j];
                
                if (j < priceBreak.length - 1)
                {
                    priceBreaksStr += "|@PBreak@|";
                }
            }
            priceBreaksStr += "|@QPB@|";
        }
    }
    return priceBreaksStr;
}

function DeSerializeQtyPriceBreaks(priceBreaksStr)
{
    var priceBreaks = new Array();
    var priceBreaksStrList = priceBreaksStr.value.split("|@QPB@|");
    var i = 0;
    for (i = 0; i < priceBreaksStrList.length; i ++)
    {
        priceBreaks[i] = priceBreaksStrList[i].split("|@PBreak@|"); 
    }
    
    return priceBreaks;
}

// de/serialize addresses to address string
function SerializeAddresses(addresses)
{
    var addressesStr = "";
    
    var i = 0;
    for (i = 0; i < addresses.length; i ++)
    {
        addressesStr += addresses[i] + "|@@@|";
    }
    return addressesStr;
}
function DeSerializeAddresses(addressesStr)
{
    var addresses = new Array();
    var addressesStrList = addressesStr.split("|@@@|");
    var i = 0;
    for (i = 0; i < addressesStrList.length; i ++)
    {
        addresses[i] = addressesStrList[i]; 
    }
    
    return addresses;
}
