Esempio n. 1
0
        public ExcelMassUploadImportResponse UploadDataClosing(IUnitOfWork uow, ExcelMassUploadImportRequest request)
        {
            Check.NotNullOrWhiteSpace(request.FileName, "filename");

            UploadHelper.CheckFileNameSecurity(request.FileName);

            if (!request.FileName.StartsWith("temporary/"))
            {
                throw new ArgumentOutOfRangeException("filename");
            }

            ExcelPackage ep = new ExcelPackage();

            using (var fs = new FileStream(UploadHelper.DbFilePath(request.FileName), FileMode.Open, FileAccess.Read))
                ep.Load(fs);

            var response = new ExcelMassUploadImportResponse();

            response.ErrorList = new List <string>();

            // Get batch of row number/index
            var numberList = request.TotalRecord;

            var p = MyRow.Fields;

            int receivedCount = 0;

            /////////////////////////////////////////////////////////////
            //ITEM INFO UPLOAD
            /////////////////////////////////////////////////////////////
            var wsItemInfo = ep.Workbook.Worksheets[1];

            for (var currRow = 4; currRow <= (numberList + 4); currRow++)
            {
                try
                {
                    var odr = new OrderRow();
                    try
                    {
                        CustomerRow custNew = new CustomerRow();
                        custNew.CustomerName = wsItemInfo.Cells[currRow, 2].Value.ToString();
                        custNew.Address      = "Bekasi";
                        SaveResponse savedCust = new CustomerRepository().Create(uow, new SaveRequest <CustomerRow>()
                        {
                            Entity = custNew
                        });
                        odr.CustomerId  = int.Parse(savedCust.EntityId.ToString());
                        odr.Ongkir      = 9000;
                        odr.OrderStatus = "NewOrder";
                        odr.DetailList  = new List <OrderDetailRow>();
                        odr.DetailList.Add(new OrderDetailRow()
                        {
                            ProductId = 1, Quantity = 1, Price = 125000
                        });
                        SaveResponse savedOdr = new OrderRepository().Create(uow, new SaveRequest <OrderRow>()
                        {
                            Entity = odr
                        });
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
                catch (Exception x)
                {
                    string msg = "Row:" + currRow.ToString() + " - " + x.Message;
                    response.ErrorList.Add(x.Message);
                }
            }
            response.Inserted = receivedCount;
            return(response);
        }
Esempio n. 2
0
        public ExcelMassUploadImportResponse ExcelImport(IUnitOfWork uow, ExcelMassUploadImportRequest request)
        {
            Check.NotNullOrWhiteSpace(request.FileName, "filename");

            UploadHelper.CheckFileNameSecurity(request.FileName);

            if (!request.FileName.StartsWith("temporary/"))
            {
                throw new ArgumentOutOfRangeException("filename");
            }

            ExcelPackage ep = new ExcelPackage();

            using (var fs = new FileStream(UploadHelper.DbFilePath(request.FileName), FileMode.Open, FileAccess.Read))
                ep.Load(fs);

            var response = new ExcelMassUploadImportResponse();

            response.ErrorList = new List <string>();

            // Get batch of row number/index
            var numberList = request.TotalRecord;

            var p = MyRow.Fields;


            /////////////////////////////////////////////////////////////
            //ITEM INFO UPLOAD
            /////////////////////////////////////////////////////////////
            var wsItemInfo = ep.Workbook.Worksheets[1];

            for (var currRow = 2; currRow <= (numberList + 2); currRow++)
            {
                try
                {
                    var order = new MyRow();
                    try
                    {
                        order.CustomerCustomerName = wsItemInfo.Cells[currRow, 1].Value.ToString();
                        order.CustomerHandphone    = wsItemInfo.Cells[currRow, 2].Value.ToString();
                        order.CustomerAddress      = wsItemInfo.Cells[currRow, 3].Value.ToString();
                        order.OrderStatus          = "New Order";
                        new OrderRepository().Create(uow, new SaveRequest <MyRow>()
                        {
                            Entity = order
                        });
                        response.Inserted = response.Inserted + 1;
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
                catch (Exception x)
                {
                    string msg = "Row:" + currRow.ToString() + " - " + x.Message;
                    response.ErrorList.Add(x.Message);
                }
            }
            return(response);
        }
Esempio n. 3
0
        public ExcelMassUploadImportResponse SynchResi(IUnitOfWork uow, ExcelMassUploadImportRequest request)
        {
            Check.NotNullOrWhiteSpace(request.FileName, "filename");

            UploadHelper.CheckFileNameSecurity(request.FileName);

            if (!request.FileName.StartsWith("temporary/"))
            {
                throw new ArgumentOutOfRangeException("filename");
            }

            ExcelPackage ep = new ExcelPackage();

            using (var fs = new FileStream(UploadHelper.DbFilePath(request.FileName), FileMode.Open, FileAccess.Read))
                ep.Load(fs);

            var response = new ExcelMassUploadImportResponse();

            response.ErrorList = new List <string>();

            // Get batch of row number/index
            var numberList = request.TotalRecord;

            var p = MyRow.Fields;

            int receivedCount = 0;

            /////////////////////////////////////////////////////////////
            //ITEM INFO UPLOAD
            /////////////////////////////////////////////////////////////
            var wsItemInfo = ep.Workbook.Worksheets[1];

            if (request.Expedisi == "JNE")
            {
                for (var currRow = 4; currRow <= (numberList + 4); currRow++)
                {
                    try
                    {
                        var noResi = new NoResiRow();
                        try
                        {
                            var dateCode = DateTime.Parse(wsItemInfo.Cells[currRow, 4].Value.ToString()).Year.ToString() +
                                           DateTime.Parse(wsItemInfo.Cells[currRow, 4].Value.ToString()).Month.ToString() +
                                           DateTime.Parse(wsItemInfo.Cells[currRow, 4].Value.ToString()).Day.ToString();
                            noResi.CustomerName    = wsItemInfo.Cells[currRow, 11].Value.ToString();
                            noResi.Handphone       = "";
                            noResi.Expedisi        = "JNE";
                            noResi.ExpedisiService = wsItemInfo.Cells[currRow, 5].Value.ToString();
                            noResi.Destination     = wsItemInfo.Cells[currRow, 8].Value.ToString();
                            noResi.Ongkir          = decimal.Parse(wsItemInfo.Cells[currRow, 12].Value.ToString());
                            noResi.NoResi          = "0" + wsItemInfo.Cells[currRow, 3].Value.ToString();
                            noResi.SendDate        = dateCode + "_" + noResi.CustomerName.Trim();
                            noResi.JNEDate         = DateTime.Parse(wsItemInfo.Cells[currRow, 4].Value.ToString());
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }

                        ListRequest req = new ListRequest();
                        req.EqualityFilter = new Dictionary <string, object>
                        {
                            { "CustomerName", noResi.CustomerName },
                            { "OrderStatus", "Printed" }
                        };

                        var cust = new ViewOrderRepository().List(uow.Connection, req);

                        if (cust.Entities.Count > 0)
                        {
                            RetrieveRequest retReq = new RetrieveRequest();
                            retReq.EntityId = cust.Entities[0].OrderId;
                            var order = new OrderRepository().Retrieve(uow.Connection, retReq);
                            order.Entity.NoResi      = noResi.NoResi;
                            order.Entity.OrderStatus = "Delivery";
                            order.Entity.Ongkir      = noResi.Ongkir;
                            new OrderRepository().Update(uow, new SaveRequest <OrderRow>()
                            {
                                EntityId = order.Entity.OrderId, Entity = order.Entity
                            });
                            new NoResiRepository().Create(uow, new SaveRequest <NoResiRow>()
                            {
                                Entity = noResi
                            });
                            receivedCount++;
                        }
                    }
                    catch (Exception x)
                    {
                        string msg = "Row:" + currRow.ToString() + " - " + x.Message;
                        response.ErrorList.Add(x.Message);
                    }
                }
            }
            else
            {
                for (var currRow = 2; currRow <= (numberList); currRow++)
                {
                    try
                    {
                        var noResi = new NoResiRow();
                        try
                        {
                            //var dateCode = DateTime.Parse(wsItemInfo.Cells[currRow, 8].Value.ToString()).Year.ToString() +
                            //    //DateTime.Parse(wsItemInfo.Cells[currRow, 8].Value.ToString()).Month.ToString() +
                            //    //DateTime.Parse(wsItemInfo.Cells[currRow, 8].Value.ToString()).Day.ToString();
                            noResi.CustomerName    = wsItemInfo.Cells[currRow, 6].Value.ToString();
                            noResi.Handphone       = wsItemInfo.Cells[currRow, 7].Value.ToString();
                            noResi.Expedisi        = request.Expedisi;
                            noResi.ExpedisiService = "Standart";
                            //noResi.Destination = wsItemInfo.Cells[currRow, 8].Value.ToString();
                            //noResi.Ongkir = decimal.Parse(wsItemInfo.Cells[currRow, 12].Value.ToString());
                            noResi.NoResi           = wsItemInfo.Cells[currRow, 1].Value.ToString();
                            noResi.SendDate         = wsItemInfo.Cells[currRow, 8].Value.ToString();
                            noResi.NINJADate        = wsItemInfo.Cells[currRow, 2].Value.ToString();
                            noResi.StatusPengiriman = wsItemInfo.Cells[currRow, 3].Value.ToString();
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(ex.Message);
                        }

                        ListRequest req = new ListRequest();
                        req.EqualityFilter = new Dictionary <string, object>
                        {
                            { "Handphone", noResi.Handphone.Replace("+", "") },
                            { "OrderStatus", "Printed" }
                        };

                        var cust = new ViewOrderRepository().List(uow.Connection, req);

                        ListRequest req1 = new ListRequest();
                        req1.EqualityFilter = new Dictionary <string, object>
                        {
                            { "Handphone", noResi.Handphone.Replace("+", "") },
                            { "OrderStatus", "NewOrder" }
                        };

                        var cust1 = new ViewOrderRepository().List(uow.Connection, req1);


                        if (cust.Entities.Count > 0)
                        {
                            RetrieveRequest retReq = new RetrieveRequest();
                            retReq.EntityId = cust.Entities[0].OrderId;
                            var order = new OrderRepository().Retrieve(uow.Connection, retReq);
                            order.Entity.NoResi = noResi.NoResi;
                            if (noResi.StatusPengiriman == "Lengkap")
                            {
                                order.Entity.OrderStatus = "Received";
                            }
                            //order.Entity.Ongkir = noResi.Ongkir;
                            new OrderRepository().Update(uow, new SaveRequest <OrderRow>()
                            {
                                EntityId = order.Entity.OrderId,
                                Entity   = order.Entity
                            });
                            new NoResiRepository().Create(uow, new SaveRequest <NoResiRow>()
                            {
                                Entity = noResi
                            });
                            receivedCount++;
                        }

                        if (cust1.Entities.Count > 0)
                        {
                            RetrieveRequest retReq = new RetrieveRequest();
                            retReq.EntityId = cust1.Entities[0].OrderId;
                            var order = new OrderRepository().Retrieve(uow.Connection, retReq);
                            order.Entity.NoResi = noResi.NoResi;
                            if (noResi.StatusPengiriman == "Lengkap")
                            {
                                order.Entity.OrderStatus = "Received";
                            }
                            //order.Entity.Ongkir = noResi.Ongkir;
                            new OrderRepository().Update(uow, new SaveRequest <OrderRow>()
                            {
                                EntityId = order.Entity.OrderId,
                                Entity   = order.Entity
                            });
                            new NoResiRepository().Create(uow, new SaveRequest <NoResiRow>()
                            {
                                Entity = noResi
                            });
                            receivedCount++;
                        }
                    }
                    catch (Exception x)
                    {
                        string msg = "Row:" + currRow.ToString() + " - " + x.Message;
                        response.ErrorList.Add(x.Message);
                    }
                }
            }
            response.Inserted = receivedCount;
            return(response);
        }