Subversion Repositories SmartDukaan

Rev

Rev 24012 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * 
 */
package in.shop2020.inventory.service;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.util.List;

import org.apache.commons.lang.StringUtils;

import in.shop2020.model.v1.inventory.InventoryService;
import in.shop2020.model.v1.inventory.VendorItemMapping;
import in.shop2020.purchase.LineItem;
import in.shop2020.purchase.PurchaseOrder;
import in.shop2020.thrift.clients.InventoryClient;

/**
 * @author mandeep
 *
 */
public class POExcelGenerator {
        public static InventoryService.Client inventoryClient = null;
        static {
                try {
                        inventoryClient =  new InventoryClient().getClient();
                } catch(Exception e) {
                        e.printStackTrace();
                }
        }
    public static File generateExcelSheet(PurchaseOrder purchaseOrder) {
        try {
                String tmpDir = System.getProperty("java.io.tmpdir");
            File file = new File(tmpDir + "/NSSPL-" + purchaseOrder.getId() + ".xls");
            BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file));
            bufferedWriter.write(StringUtils.join(new String[]{"Brand", "Model Name", "Model Number", "Color", "Vendor Key", "Quantity Required", "Actual Quantity Fulfilled", "Other colors available"}, '\t'));
 
            for (LineItem lineitem : purchaseOrder.getLineitems()) {
                String vendorKey = "";
                bufferedWriter.newLine();
                if(lineitem.getBrand()=="Samsung") {
                        List<VendorItemMapping> vims = getVendorItemMapping(lineitem.getItemId());
                        if(vims != null && vims.size() > 0) {
                                for(VendorItemMapping vim : vims) {
                                        if(vim.getVendorId() == purchaseOrder.getSupplierId()) {
                                                vendorKey = vim.getItemKey();
                                                break;
                                        }
                                }
                        }
                }
                bufferedWriter.write(StringUtils.join(new String[]{lineitem.getBrand(), lineitem.getModelName(), lineitem.getModelNumber(), lineitem.getColor(), vendorKey, String.valueOf(lineitem.getQuantity()), "0", ""}, '\t'));
            }

            bufferedWriter.close();
            return file;
        } catch (Exception e) {
            return null;
        }
    }
    

private static List<VendorItemMapping> getVendorItemMapping(long itemId) {
        try {
                
                return inventoryClient.getVendorItemMappings(itemId);
        }catch (Exception e) {
                try {
                        inventoryClient =  new InventoryClient().getClient();
                        return inventoryClient.getVendorItemMappings(itemId);
                } catch(Exception e1) {
                        e1.printStackTrace();
                }
        }
        return null;
}
}