Exemple #1
0
        public virtual IActionResult CreateSalesorder([FromBody] SalesOrderRequest body)
        {
            ServiceResponse <SalesOrderResponse> serviceResponse = new ServiceResponse <SalesOrderResponse>();
            int?orderid = _orderRepository.Add(new Order()
            {
                CustomerID = body.CustomerID, OrderDate = DateTime.Now.ToString()
            });
            List <OrderItem> orderItems = new List <OrderItem>();

            foreach (var item in body.OrderItemRequestList.SalesOrders)
            {
                orderItems.Add(new OrderItem()
                {
                    OrderID = orderid, ProductID = item.ProductID, Quantity = item.Quantity
                });
            }
            foreach (var item in orderItems)
            {
                int?orderItemid = _orderItemRepository.Add(item);
            }
            if (orderid > 0)
            {
                SalesOrderResponse response = new SalesOrderResponse()
                {
                    OrderID = orderid, Message = "Saved Successfully."
                };
                serviceResponse.SetSuccess(response);
            }
            else
            {
                serviceResponse.SetError(MethodBase.GetCurrentMethod().Name, ServiceResponseStatus.Error, "", "", string.Empty);
            }
            return(Ok(serviceResponse));
        }
 /**
  * Push documents to internal queue
  */
 private void SendToQueue(SalesOrderResponse response)
 {
     if (response?.Message == null)
     {
         return;
     }
     foreach (var item in response.Message)
     {
         this.Queue.Enqueue(item);
     }
 }
        public ActionResult GetSaleOrdersSummary(int?CustomerID, string fromDate, string toDate)
        {
            ActionResult              actionResult;
            List <SalesOrder>         salesOrders = new List <SalesOrder>();
            List <SalesOrderResponse> responses   = new List <SalesOrderResponse>();
            DateTime cFromDate  = Convert.ToDateTime(fromDate).Date;
            DateTime cToDate    = Convert.ToDateTime(toDate).Date;
            int?     customerID = CustomerID;

            salesOrders = ((customerID.GetValueOrDefault() == 0 ? !customerID.HasValue : true) ? this.salesService.GetAllSalesOrdersByCustomerId(CustomerID) : this.salesService.GetAllSalesOrders(cFromDate, cToDate));
            if (salesOrders != null)
            {
                foreach (SalesOrder salesOrder in salesOrders)
                {
                    IEnumerable <SalesOrderResponse> isexists =
                        from a in responses
                        where a.SalesOrderId == salesOrder.SalesOrderId
                        select a;
                    if ((isexists == null ? true : isexists.Count <SalesOrderResponse>() <= 0))
                    {
                        SalesOrderResponse response = new SalesOrderResponse()
                        {
                            Id           = salesOrder.Id,
                            SalesOrderId = salesOrder.SalesOrderId,
                            OrderDate    = salesOrder.OrderDate,
                            PostDate     = salesOrder.OrderDate.ToString("dd-MM-yyyy")
                        };
                        response.Customer.Name = salesOrder.Customer.Name;
                        response.Amount        = salesOrder.Amount;
                        response.Notes         = string.Concat(new object[] { salesOrder.Product.ProductName, "->", salesOrder.BaleQty, "*", salesOrder.BaleWeight, "*", salesOrder.Rate });
                        responses.Add(response);
                    }
                    else
                    {
                        SalesOrderResponse salesOrderResponse = isexists.FirstOrDefault <SalesOrderResponse>();
                        salesOrderResponse.Notes = string.Concat(new object[] { salesOrderResponse.Notes, " ,", salesOrder.Product.ProductName, "->", salesOrder.BaleQty, "*", salesOrder.BaleWeight, "*", salesOrder.Rate });
                        SalesOrderResponse amount = salesOrderResponse;
                        amount.Amount = amount.Amount + salesOrder.Amount;
                    }
                }
                actionResult = base.Json(responses, 0);
            }
            else
            {
                actionResult = base.HttpNotFound();
            }
            return(actionResult);
        }
Exemple #4
0
    private void PostSO(SalesOrder oSalesOrder, int i, SAPbouiCOM.Matrix oMatx)
    {
        String EbizKey    = "";
        bool   PostStatus = false;

        try
        {
            if (CheckBP(oSalesOrder.CustomerId))
            {
                foreach (var item in oSalesOrder.Items)
                {
                    if (!CheckItem(item.ItemId))
                    {
                        var Eror = "";
                    }
                }
            }

            bool               flgAddNewRecord = true;
            String             Refnum          = "";
            SalesOrderResponse resp            = ebiz.AddSalesOrder(getToken(), oSalesOrder);
            if (resp.ErrorCode == 2 && resp.Error.Equals("Record already exists") && resp.Status.Equals("Error"))
            {
                //Update
                SalesOrder OldSalesOrder = ebiz.GetSalesOrder(getToken(), oSalesOrder.CustomerId, "", oSalesOrder.SalesOrderNumber, "");
                UpdateEbizChargeKey("ORDR", OldSalesOrder.SalesOrderInternalId, oSalesOrder.SalesOrderNumber);
                ///
                SalesOrder updateSO = new SalesOrder();
                updateSO.CustomerId           = oSalesOrder.CustomerId.Trim();
                updateSO.SalesOrderInternalId = null;
                updateSO.Software             = Software;
                updateSO.SalesOrderNumber     = oSalesOrder.SalesOrderNumber;
                updateSO.Currency             = oSalesOrder.Currency;
                updateSO.Date           = oSalesOrder.Date;
                updateSO.DueDate        = oSalesOrder.DueDate;
                updateSO.Amount         = oSalesOrder.Amount;
                updateSO.AmountDue      = oSalesOrder.AmountDue;
                updateSO.NotifyCustomer = false;
                updateSO.TotalTaxAmount = 0;
                updateSO.Memo           = "";
                updateSO.ShipDate       = oSalesOrder.DueDate;
                updateSO.ShipVia        = "";
                updateSO.Items          = oSalesOrder.Items;

                var updateSoResp = ebiz.UpdateSalesOrder(getToken(), updateSO, oSalesOrder.CustomerId.Trim(), null, oSalesOrder.SalesOrderNumber, null);
                if (updateSoResp.Status.Equals(""))
                {
                    //ValidMsg = "Update To Connect Status:" + updateSoResp.Status;
                }

                ///
                flgAddNewRecord = false;
                EbizKey         = OldSalesOrder.SalesOrderInternalId;
                PostStatus      = true;
                ShowSystemLog(String.Format("Sales Order:{0} Updated successfully", oSalesOrder.SalesOrderNumber));
            }
            else if (resp.ErrorCode == 0 && resp.Error.Equals("") && resp.Status.Equals("Success"))
            {
                UpdateEbizChargeKey("ORDR", resp.SalesOrderInternalId, oSalesOrder.SalesOrderNumber);
                EbizKey    = resp.SalesOrderInternalId;
                PostStatus = true;
                ShowSystemLog(String.Format("Sales Order:{0} Upload successfully", oSalesOrder.SalesOrderNumber));
                TransactionResponse oTranResp = RunTransactionOrder(oSalesOrder);
                Refnum = oTranResp.RefNum;
            }

            if (PostStatus)
            {
                //SAPbouiCOM.EditText oEdit = (SAPbouiCOM.EditText)oMatx.Columns.Item("clEbizkey").Cells.Item(i + 1).Specific;
                //oEdit.Value = EbizKey;
                //U_PaidAmt,U_RefNum,U_CustomerID,U_DocEntry,U_Balance
                LogTable oExportSOLogTable = new LogTable();
                oExportSOLogTable.DocNum        = oSalesOrder.SalesOrderNumber;
                oExportSOLogTable.DocType       = "SO";
                oExportSOLogTable.Status        = "Uploaded";
                oExportSOLogTable.PaymentStatus = "";
                oExportSOLogTable.RefNum        = Refnum;
                oExportSOLogTable.CardCode      = oSalesOrder.CustomerId;
                oExportSOLogTable.DocEntry      = oSalesOrder.PoNum;
                oExportSOLogTable.AmountPaid    = 0;
                oExportSOLogTable.Amount        = ConvertDecimal(oSalesOrder.Amount.ToString());
                oExportSOLogTable.AmountDue     = ConvertDecimal(oSalesOrder.AmountDue.ToString());

                if (flgAddNewRecord)
                {
                    oExportSOLogTable.CreateDt = DateTime.Now;
                    oExportSOLogTable.DocState = "Add";
                }
                else
                {
                    oExportSOLogTable.CreateDt = DateTime.Now;
                    oExportSOLogTable.DocState = "Update";
                }
                oExportSOLogTable.UpdateDt = DateTime.Now;

                SAPbouiCOM.EditText oEdit = (SAPbouiCOM.EditText)oMatx.Columns.Item("clSync").Cells.Item(i + 1).Specific;
                oEdit.Value = "True";
                oEdit       = (SAPbouiCOM.EditText)oMatx.Columns.Item("Status").Cells.Item(i + 1).Specific;
                oEdit.Value = oExportSOLogTable.Status;
                oEdit       = (SAPbouiCOM.EditText)oMatx.Columns.Item("UploadDt").Cells.Item(i + 1).Specific;
                if (oExportSOLogTable.CreateDt != DateTime.MinValue)
                {
                    oEdit.Value = DatetimeTosapFormatDate(oExportSOLogTable.CreateDt);
                }
                oEdit       = (SAPbouiCOM.EditText)oMatx.Columns.Item("TransDt").Cells.Item(i + 1).Specific;
                oEdit.Value = DatetimeTosapFormatDate(oExportSOLogTable.UpdateDt);
                AddSOLog(oExportSOLogTable);
            }
            else
            {
                //SAPbouiCOM.EditText oEdit = (SAPbouiCOM.EditText)oMatx.Columns.Item("clEbizkey").Cells.Item(i + 1).Specific;
                //oEdit.Value = resp.Error;
                SAPbouiCOM.EditText oEdit = (SAPbouiCOM.EditText)oMatx.Columns.Item("clSync").Cells.Item(i + 1).Specific;
                oEdit.Value = "False";
            }
        }
        catch (Exception ex)
        {
            errorLog(ex);
        }
    }