Beispiel #1
0
        // ================
        // Get Sales Return
        // ================
        public Task GetSalesReturn(String apiUrlHost, String branchCode, String userCode)
        {
            try
            {
                var stockIns = from d in posdb.TrnStockIns
                               where d.IsReturn == true &&
                               d.CollectionId != null &&
                               d.PostCode == null &&
                               d.IsLocked == true &&
                               d.TrnStockInLines.Any() == true
                               select d;

                if (stockIns.Any())
                {
                    var   stockIn   = stockIns.FirstOrDefault();
                    Int32 stockInId = stockIn.Id;

                    List <Entities.ISPOSTrnCollectionLines> listCollectionLines = new List <Entities.ISPOSTrnCollectionLines>();

                    var stockInLines = from d in stockIn.TrnStockInLines select d;
                    foreach (var stockInLine in stockInLines)
                    {
                        listCollectionLines.Add(new Entities.ISPOSTrnCollectionLines()
                        {
                            ItemManualArticleCode = stockInLine.MstItem.BarCode,
                            Particulars           = stockInLine.MstItem.ItemDescription,
                            Unit               = stockInLine.MstUnit.Unit,
                            Quantity           = stockInLine.Quantity * -1,
                            Price              = stockInLine.Cost,
                            Discount           = "Zero Discount",
                            DiscountAmount     = 0,
                            NetPrice           = stockInLine.Cost,
                            Amount             = (stockInLine.Quantity * -1) * stockInLine.Cost,
                            VAT                = stockInLine.MstItem.MstTax.Tax,
                            SalesItemTimeStamp = DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss.fff", CultureInfo.InvariantCulture)
                        });
                    }

                    var collectionData = new Entities.ISPOSTrnCollection()
                    {
                        SIDate     = stockIn.StockInDate.ToShortDateString(),
                        BranchCode = branchCode,
                        CustomerManualArticleCode = stockIn.TrnCollection.TrnSale.MstCustomer.CustomerCode,
                        CreatedBy         = userCode,
                        Term              = stockIn.TrnCollection.TrnSale.MstTerm.Term,
                        DocumentReference = stockIn.StockInNumber,
                        ManualSINumber    = "IN-" + stockIn.StockInNumber,
                        Remarks           = "Return from Customer, OR-" + stockIn.TrnCollection.CollectionNumber + ", SI-" + stockIn.TrnCollection.TrnSale.SalesNumber,
                        ListPOSIntegrationTrnSalesInvoiceItem = listCollectionLines.ToList()
                    };

                    String json = new JavaScriptSerializer().Serialize(collectionData);

                    trnIntegrationForm.salesIntegrationLogMessages("Sending Sales Return: " + collectionData.ManualSINumber + "\r\n\n");
                    trnIntegrationForm.salesIntegrationLogMessages("Amount: " + collectionData.ListPOSIntegrationTrnSalesInvoiceItem.Sum(d => d.Amount).ToString("#,##0.00") + "\r\n\n");
                    SendSalesReturn(apiUrlHost, json, stockInId);
                }

                return(Task.FromResult(""));
            }
            catch (Exception e)
            {
                trnIntegrationForm.salesIntegrationLogMessages("Sales Return Error: " + e.Message + "\r\n\n");
                trnIntegrationForm.salesIntegrationLogMessages("Time Stamp: " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "\r\n\n");
                trnIntegrationForm.salesIntegrationLogMessages("\r\n\n");

                return(Task.FromResult(""));
            }
        }
        // ==============
        // Get Collection
        // ==============
        public Task GetCollection(String apiUrlHost, String branchCode, String userCode)
        {
            try
            {
                var collections = from d in posdb.TrnCollections
                                  where (d.CollectionNumber != "NA" || d.CollectionNumber != "na") &&
                                  d.SalesId != null &&
                                  d.PostCode == null &&
                                  d.IsLocked == true
                                  select d;

                if (collections.Any())
                {
                    var   collection   = collections.FirstOrDefault();
                    Int32 collectionId = collection.Id;

                    var listPayTypes = new List <String>();
                    if (collection.TrnCollectionLines.Any())
                    {
                        foreach (var collectionLine in collection.TrnCollectionLines)
                        {
                            if (collectionLine.Amount > 0)
                            {
                                listPayTypes.Add(collectionLine.MstPayType.PayType + ": " + collectionLine.Amount.ToString("#,##0.00"));
                            }
                        }
                    }

                    String[] payTypes = listPayTypes.ToArray();
                    List <Entities.ISPOSTrnCollectionLines> listCollectionLines = new List <Entities.ISPOSTrnCollectionLines>();

                    foreach (var salesLine in collection.TrnSale.TrnSalesLines)
                    {
                        listCollectionLines.Add(new Entities.ISPOSTrnCollectionLines()
                        {
                            ItemManualArticleCode = salesLine.MstItem.BarCode,
                            Particulars           = salesLine.MstItem.ItemDescription,
                            Unit               = salesLine.MstUnit.Unit,
                            Quantity           = salesLine.Quantity,
                            Price              = salesLine.Price,
                            Discount           = salesLine.MstDiscount.Discount,
                            DiscountAmount     = salesLine.DiscountAmount,
                            NetPrice           = salesLine.NetPrice,
                            Amount             = salesLine.Amount,
                            VAT                = salesLine.MstTax.Tax,
                            SalesItemTimeStamp = salesLine.SalesLineTimeStamp.ToString("MM/dd/yyyy HH:mm:ss.fff", CultureInfo.InvariantCulture)
                        });
                    }

                    var collectionData = new Entities.ISPOSTrnCollection()
                    {
                        SIDate     = collection.CollectionDate.ToShortDateString(),
                        BranchCode = branchCode,
                        CustomerManualArticleCode = collection.TrnSale.MstCustomer.CustomerCode,
                        CreatedBy         = userCode,
                        Term              = collection.TrnSale.MstTerm.Term,
                        DocumentReference = collection.CollectionNumber,
                        ManualSINumber    = collection.TrnSale.SalesNumber,
                        Remarks           = "User: "******", " + String.Join(", ", payTypes),
                        ListPOSIntegrationTrnSalesInvoiceItem = listCollectionLines.ToList()
                    };

                    String json = new JavaScriptSerializer().Serialize(collectionData);

                    trnIntegrationForm.salesIntegrationLogMessages("Sending Collection: " + collectionData.DocumentReference + "\r\n\n");
                    trnIntegrationForm.salesIntegrationLogMessages("Amount: " + collectionData.ListPOSIntegrationTrnSalesInvoiceItem.Sum(d => d.Amount).ToString("#,##0.00") + "\r\n\n");
                    SendCollection(apiUrlHost, json, collectionId);
                }

                return(Task.FromResult(""));
            }
            catch (Exception e)
            {
                trnIntegrationForm.salesIntegrationLogMessages("Collection Error: " + e.Message + "\r\n\n");
                trnIntegrationForm.salesIntegrationLogMessages("Time Stamp: " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss tt") + "\r\n\n");
                trnIntegrationForm.salesIntegrationLogMessages("\r\n\n");

                return(Task.FromResult(""));
            }
        }