示例#1
0
文件: Cmd.cs 项目: Herdubreid/TestPO
            async Task OnExecuteAsync()
            {
                try
                {
                    await E1.AuthenticateAsync();

                    await Mediator.Send(new POState.OpenRequestAction());

                    Dump();
                }
                catch (Celin.AIS.HttpWebException e)
                {
                    Console.WriteLine("ERROR: {0}", e.ErrorResponse.message);
                }
                catch (Exception e)
                {
                    Console.WriteLine("ERROR: {0}", e.Message);
                }
            }
示例#2
0
文件: Cmd.cs 项目: Herdubreid/TestPO
            async Task OnExecuteAsync()
            {
                try
                {
                    await Mediator.Send(new POState.LoadAction());

                    Dump();

                    foreach (var o in State.Orders)
                    {
                        Console.Write("{0}, ", o.Number);
                    }
                    Console.WriteLine();

                    var orders = State.OpenLines
                                 .Where(r => r.Adjustment != null)
                                 .Select(r => new OrderDef {
                        Company = r.z_KCOO_12, Number = r.z_DOCO_10, Type = r.z_DCTO_11
                    })
                                 .Distinct(new OrderComparer())
                                 .ToList();
                    bool addOrder = true;
                    while (addOrder)
                    {
                        var n = Prompt.GetInt("Order:");
                        try
                        {
                            var lines = State.OpenLines
                                        .Where(r => r.Adjustment == null)
                                        .Where(r => r.z_DOCO_10 == n);
                            if (lines.Count() > 0)
                            {
                                bool addLine = true;
                                foreach (var r in lines)
                                {
                                    Console.WriteLine("{0} {1} {2}-{3} {4}", r.z_LNID_43, r.z_UOPN_16, r.z_DOCO_10, r.z_KCOO_12, r.z_DCTO_11);
                                }
                                while (addLine)
                                {
                                    var strLine = Prompt.GetString("Line:");
                                    var line    = decimal.Parse(strLine);
                                    var ol      = lines.Single(r => r.z_LNID_43 == line);
                                    if (ol != null)
                                    {
                                        var o = new OrderDef
                                        {
                                            Company = ol.z_KCOO_12,
                                            Number  = ol.z_DOCO_10,
                                            Type    = ol.z_DCTO_11
                                        };
                                        var strQty = Prompt.GetString("Receipt:");
                                        var qty    = decimal.Parse(strQty);
                                        await Mediator.Send(new POState.UpdateAdjustmentAction {
                                            Line = ol, Adjustment = qty
                                        });

                                        ol.Adjustment = qty;
                                        if (!orders.Contains(o, new OrderComparer()))
                                        {
                                            orders.Add(o);
                                        }
                                    }
                                }
                            }
                            else
                            {
                                Console.WriteLine("Order {0} not Found!", n);
                            }
                        }
                        catch (Exception e)
                        {
                            Console.WriteLine("ERROR: {0}", e.Message);
                        }
                        foreach (var o in orders)
                        {
                            Console.WriteLine("Order {0} with {1} Lines", o.Number,
                                              State.OpenLines.Where(r => o.Equals(r)).Count());
                        }
                        addOrder = Prompt.GetYesNo("More?", false);
                    }

                    await E1.AuthenticateAsync();

                    await Mediator.Send(new POState.ReceiptOrderAction
                    {
                        Orders = orders
                    });

                    Dump();
                }
                catch (Celin.AIS.HttpWebException e)
                {
                    Console.WriteLine("ERROR: {0}", e.ErrorResponse.message);
                }
                catch (Exception e)
                {
                    Console.WriteLine("ERROR: {0}", e.Message);
                }
            }