コード例 #1
0
        public async Task <IActionResult> SyncOrderTaxes()
        {
            var errorList = new List <string>();

            try
            {
                if (_db.Connection.State == System.Data.ConnectionState.Closed)
                {
                    await _db.Connection.OpenAsync();
                }

                var query  = new OrderQueries(_db);
                var orders = await query.GetAllOrders();

                foreach (var order in orders)
                {
                    decimal taxGst = 0;
                    if (!string.IsNullOrEmpty(order._pos_sale_tax_GST))
                    {
                        decimal.TryParse(order._pos_sale_tax_GST, out taxGst);
                    }
                    decimal taxPst = 0;
                    if (!string.IsNullOrEmpty(order._pos_sale_tax_PST))
                    {
                        decimal.TryParse(order._pos_sale_tax_PST, out taxPst);
                    }

                    var found = await _context.OrderTax.FindAsync(int.Parse(order.id.ToString()));

                    if (found == null)
                    {
                        if (taxPst > 0)
                        {
                            var orderTaxGst = new OrderTax
                            {
                                OrderId   = int.Parse(order.id.ToString()),
                                TaxAmount = taxGst,
                                TaxId     = 1
                            };
                            await _context.OrderTax.AddAsync(orderTaxGst);
                        }
                        if (taxPst > 0)
                        {
                            var orderTaxPst = new OrderTax
                            {
                                OrderId   = int.Parse(order.id.ToString()),
                                TaxAmount = taxPst,
                                TaxId     = 2
                            };
                            await _context.OrderTax.AddAsync(orderTaxPst);
                        }
                        await _context.SaveChangesAsync();
                    }
                    else
                    {
                        // await _context.SaveChangesAsync();
                    }
                }
                _db.Connection.Close();
            }
            catch (Exception ex)
            {
                errorList.Add("order taxes:" + ex.ToString());
            }

            return(Ok(errorList));
        }
コード例 #2
0
        public async Task <IActionResult> SyncOrders()
        {
            var errorList = new List <string>();

            try
            {
                if (_db.Connection.State == System.Data.ConnectionState.Closed)
                {
                    await _db.Connection.OpenAsync();
                }

                var query  = new OrderQueries(_db);
                var orders = await query.GetAllOrders();

                foreach (var order in orders)
                {
                    //var limit = 0;
                    //int.TryParse(customer._pos_customer_accountlimit, out limit);
                    int customerId = 0;
                    if (!string.IsNullOrEmpty(order._pos_sale_customer_id))
                    {
                        int.TryParse(order._pos_sale_customer_id, out customerId);
                    }
                    decimal discount = 0;
                    if (!string.IsNullOrEmpty(order._pos_sale_discount))
                    {
                        decimal.TryParse(order._pos_sale_discount, out discount);
                    }
                    decimal total = 0;
                    if (!string.IsNullOrEmpty(order._pos_sale_total))
                    {
                        decimal.TryParse(order._pos_sale_total, out total);
                    }
                    decimal subtotal = 0;
                    if (!string.IsNullOrEmpty(order._pos_sale_subtotal))
                    {
                        decimal.TryParse(order._pos_sale_subtotal, out subtotal);
                    }
                    var location = 1;
                    if (!string.IsNullOrEmpty(order._pos_location_name))
                    {
                        location = order._pos_location_name.Equals("abbotsford", StringComparison.InvariantCultureIgnoreCase) ? 2 : 1;
                    }

                    var found = await _context.Order.FindAsync(int.Parse(order.id.ToString()));

                    if (found == null)
                    {
                        var newOrder = new Order
                        {
                            CreatedByUserId = order._pos_sale_user,
                            CreatedDate     = order.post_date,
                            CustomerId      = customerId,
                            TotalDiscount   = discount,
                            LocationId      = location,
                            Notes           = order._pos_sale_note,
                            OrderDate       = order.post_date,
                            OriginalOrderId = 0,// order._pos_linkedInvoice,
                            PoNumber        = order._pos_po_number,
                            PstNumber       = "",
                            Status          = order._pos_status,
                            SubTotal        = subtotal,
                            OrderId         = int.Parse(order.id.ToString()),
                            Total           = total
                        };
                        newOrder.Customer = null;
                        newOrder.Location = null;
                        await _context.Order.AddAsync(newOrder);

                        await _context.SaveChangesAsync();
                    }
                    else
                    {
                        // await _context.SaveChangesAsync();
                    }
                }
                _db.Connection.Close();
            }
            catch (Exception ex)
            {
                errorList.Add("order taxes:" + ex.ToString());
            }

            return(Ok(errorList));
        }