Subversion Repositories SmartDukaan

Rev

Rev 12855 | Rev 12931 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package in.shop2020.inventory.service;

import in.shop2020.thrift.clients.WarehouseClient;
import in.shop2020.utils.GmailUtils;
import in.shop2020.warehouse.InventoryAvailability;
import in.shop2020.warehouse.WarehouseService.Client;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.apache.thrift.TException;
import org.slf4j.LoggerFactory;

public class StockSheetSender{
        public static org.slf4j.Logger logger = LoggerFactory.getLogger(StockSheetSender.class);
        public static void main(String[] args) {
                List<InventoryAvailability> serializedInventoryAvailability = new ArrayList<InventoryAvailability>();
                List<InventoryAvailability> nonSerializedInventoryAvailability = new ArrayList<InventoryAvailability>();
                List<InventoryAvailability> inventoryAvailability = new ArrayList<InventoryAvailability>();
                
                String emailFromAddress = "build-staging@shop2020.in";
                String password = "shop2020";
                GmailUtils mailer = new GmailUtils();
                //String sendTo[] = new String[]{"manish.sharma@shop2020.in"};
                String sendTo[] = new String[]{ "rajneesh.arora@saholic.com","amit.sirohi@shop2020.in","chaitnaya.vats@saholic.com",
                                "lakshman.g@smobility.in","sandeep.sachdeva@shop2020.in"};
                File file = null;
                
                try {
                        Client warehouseClient = new WarehouseClient().getClient();
                        serializedInventoryAvailability = warehouseClient.getCurrentSerializedInventoryByScans(3298L);
                        nonSerializedInventoryAvailability  = warehouseClient.getCurrentNonSerializedInventoryByScans(3298L);
                } catch(TException ex) {
                        logger.error(ex.getMessage(), ex);
                }
                inventoryAvailability.addAll(serializedInventoryAvailability);
                inventoryAvailability.addAll(nonSerializedInventoryAvailability);
                try {
                        file = createInventoryAvailabilityFile(inventoryAvailability);
                        List<File> files  = new ArrayList<File>();
                        files.add(file);
                        mailer.sendSSLMessage(sendTo, "Stock Sheet - Hyderabad", " ", emailFromAddress, password, files);
                }
                catch(Exception e) {
                        logger.error(e.getMessage(), e);
                }
        }
        
        
        private static File createInventoryAvailabilityFile(List<InventoryAvailability> inventoryAvailability) throws IOException {
                File file = new File("/tmp/SaholicInventory-Hyderabad.xls");
        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(file));
        bufferedWriter.write(StringUtils.join(new String[] {
                "Item Id",
                "Brand",
                "Model Name",
                "Model Number",
                "Color",
                "Quantity" }, '\t'));

        for(InventoryAvailability invAvailability : inventoryAvailability) {
                if((invAvailability.getModelNumber().equals("Q50")) || (invAvailability.getItemId() == 1457)) {
                        continue;
                }
            bufferedWriter.newLine();
            bufferedWriter.write(StringUtils.join(
                    new String[] {
                            String.valueOf(invAvailability.getItemId()),
                            invAvailability.getBrand(),
                            invAvailability.getModelName(),
                            invAvailability.getModelNumber(),
                            invAvailability.getColor(),
                            String.valueOf(invAvailability.getQuantity())}, '\t'));
        }
                bufferedWriter.close();
                return file;
        }
}