Exemplo n.º 1
0
        public ActionResult CreateShippmet(long id)
        {
            try
            {
                var link          = "N/A";
                var existShipment = shipmentServices.GetShipmentByOrder(id);
                var order         = salesServices.GetModelById(id);
                if (existShipment != null)
                {
                    var statusviews = this.RenderPartialView("_StatusView", order);

                    link = string.Format("<a href=\"/Shipment/Edit/{0}\" target=\"_bank\">{0}</a>", existShipment.Id);
                    return(Json(new
                    {
                        Error = false,
                        RefId = link,
                        view = statusviews
                    }, JsonRequestBehavior.AllowGet));
                }

                var ship = new ShipmentModel()
                {
                    QtyNumber          = 1,
                    QtyUnit            = "ship(s)",
                    ServiceName        = "Trading",
                    CarrierAirId       = 360,
                    Dateshp            = order.VoucherDate.ToString(),
                    CneeId             = order.Customer.Id,
                    DepartmentId       = order.UserCreated.DeptId ?? 0,
                    SaleId             = order.UserCreated.Id,
                    CompanyId          = order.UserCreated.ComId ?? 0,
                    IsTrading          = true,
                    AgentId            = 141,
                    VoucherId          = id,
                    SaleType           = ShipmentModel.SaleTypes.Handle.ToString(),//"Sales",
                    RevenueStatus      = ShipmentModel.RevenueStatusCollec.Pending.ToString(),
                    CountryDeparture   = 126,
                    DepartureId        = 2,
                    CountryDestination = 126,
                    DestinationId      = 2,
                    ShipperId          = 1754,
                    ServiceId          = servicesType.GetId("Trading")
                };
                if (shipmentServices.InsertShipment(ship))
                {
                    try
                    {
                        var newShip = shipmentServices.GetShipmentByOrder(id);
                        var amount  = (double)order.SumTotal;
                        var funds   = (double)order.Amount0;
                        var revenus = new RevenueModel()
                        {
                            INAutoValue1   = amount,
                            INVI           = amount,
                            Income         = amount,
                            EXManualValue1 = funds,
                            EXVI           = funds,
                            Expense        = funds,
                            EarningVI      = amount - funds,
                            Earning        = amount - funds,
                            Id             = newShip.Id,
                            InvCurrency1   = order.Curency.Code,
                            InvCurrency2   = order.Curency.Code,
                            InvType1       = "AgentDebit",
                            InvType2       = "AgentCredit",
                            InvAgentId1    = 141,
                            InvAgentId2    = 141,
                            PaidToCarrier  = 126,
                            BonRequest     = GetBonRequest(newShip.SaleType),
                            SaleType       = newShip.SaleType,
                            AutoName1      = "Total exork amount",
                            EXManualName1  = "Cost of sales"
                        };
                        revenus.AmountBonus2 = Convert.ToDecimal(revenus.BonRequest * revenus.Earning / 100);
                        if (!shipmentServices.UpdateRevenue(revenus))
                        {
                            shipmentServices.DeleteShipment(newShip.Id);
                            throw new Exception("Not Create Revenue");
                        }
                        link = string.Format("<a href=\"/Shipment/Edit/{0}\" target=\"_bank\">{0}</a>", newShip.Id);
                    }
                    catch (Exception ex)
                    {
                        Logger.LogError(ex);
                        throw ex;
                    }
                }
                else
                {
                    return(Json(new
                    {
                        Message = "Có lỗi trong lúc tạo shipment lòng liên hệ người quản trị",
                        Error = true
                    }));
                }
                var model      = salesServices.GetModelById(id);
                var statusview = this.RenderPartialView("_StatusView", model);

                return(Json(new
                {
                    Error = false,
                    RefId = link,
                    view = statusview
                }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                var newShip = shipmentServices.GetShipmentByOrder(id);
                shipmentServices.DeleteShipment(newShip.Id);
                Logger.LogError(ex);
                return(Json(new
                {
                    Message = ex.Message,
                    Error = true
                }));
            }
        }