예제 #1
0
        public bool Create(ConsolidateSingleModel model)
        {
            using (var db = new EntityContext())
            {
                using (var dbtransact = db.Database.BeginTransaction())
                {
                    TbConsolidateList consolidation = new TbConsolidateList
                    {
                        ConsolidatedDate = DateTime.Now,
                        AmountOfItem     = model.ItemId.Length,
                        Customer         = db.tbCustomers.FirstOrDefault(x => x.Id == model.CustomerId),
                        Fee = model.Fee,
                    };

                    db.tbConsolidateLists.Add(consolidation);
                    db.SaveChanges();
                    db.Entry(consolidation).State   = EntityState.Modified;
                    consolidation.ConsolidateNumber = consolidation.Id.ToString().PadRight(6, '0');
                    db.SaveChanges();
                    foreach (var item in model.ItemId)
                    {
                        TbConsolidatedItems it = new TbConsolidatedItems
                        {
                            Consolidator = consolidation,
                            Items        = db.TbItems.FirstOrDefault(x => x.Id == item)
                        };
                        db.tbConsolidatedItems.Add(it);
                    }
                    db.SaveChanges();
                    dbtransact.Commit();
                    return(true);
                }
            }
        }
예제 #2
0
 public ConsolidationListModel AssignSingleConsolidationList(TbConsolidateList source)
 {
     if (source != null)
     {
         return(new ConsolidationListModel
         {
             Id = source.Id,
             AmountOfItem = source.AmountOfItem,
             ConsolidatedDate = source.ConsolidatedDate.ToString("dd-MM-yyyy"),
             ConsolidateNumber = source.ConsolidateNumber,
             CustomerName = source.Customer.Name,
             CustomerId = source.Customer.Id,
             CustomerPhoneNumber = source.Customer.Phonenumber,
             IncomingBalanceInBaht = source.IncomingBalanceInBaht,
             IncomingBalanceInKip = source.IncomingBalanceInKip,
             IncomingBalanceInDollar = source.IncomingBalanceInDollar,
             isBalanceTransfer = source.isBalanceTransfer,
             isCustomerConfirmed = source.isCustomerConfirmed,
             Fee = source.Fee,
             BalanceToTransferInKip = source.BalanceToTransfer,
             needConfirm = source.needConfirm
         });
     }
     else
     {
         return(null);
     }
 }
예제 #3
0
        public bool CreateConsolidation(int cusomterId, double amount, double fee, int[] itemId)
        {
            using (var db = new EntityContext())
            {
                using (var dbtransact = db.Database.BeginTransaction())
                {
                    try
                    {
                        //get balance from delivery
                        double kip    = 0;
                        double baht   = 0;
                        double dollar = 0;
                        foreach (var id in itemId)
                        {
                            kip += db.tbItemSentHistories
                                   .Include(x => x.Item)
                                   .FirstOrDefault(x => x.Item.Id == id).IncomingBalanceInKip;
                            baht += db.tbItemSentHistories
                                    .Include(x => x.Item)
                                    .FirstOrDefault(x => x.Item.Id == id).IncomingBalanceInBaht;
                            dollar += db.tbItemSentHistories.Include(x => x.Item)
                                      .FirstOrDefault(x => x.Item.Id == id).IncomingBalanceInDollar;
                        }

                        double            balanceToTransfer = kip - fee;
                        TbConsolidateList list = new TbConsolidateList
                        {
                            Customer                = db.tbCustomers.FirstOrDefault(u => u.Id == cusomterId),
                            AmountOfItem            = amount,
                            ConsolidatedDate        = DateTime.Now.Date,
                            IncomingBalanceInKip    = kip,
                            IncomingBalanceInBaht   = baht,
                            IncomingBalanceInDollar = dollar,
                            BalanceToTransfer       = balanceToTransfer,
                            isBalanceTransfer       = false,
                            isCustomerConfirmed     = false,
                            Fee = fee,
                        };
                        db.tbConsolidateLists.Add(list);

                        db.SaveChanges();
                        db.Entry(list).State   = EntityState.Modified;
                        list.ConsolidateNumber = "L" + list.Id.ToString().PadLeft(5, '0');
                        foreach (var id in itemId)
                        {
                            TbConsolidatedItems itemlist = new TbConsolidatedItems
                            {
                                Consolidator = list,
                                Items        = db.TbItems.FirstOrDefault(i => i.Id == id)
                            };
                            db.tbConsolidatedItems.Add(itemlist);
                        }
                        db.SaveChanges();
                        dbtransact.Commit();
                        return(true);
                    }
                    catch (Exception)
                    {
                        dbtransact.Rollback();
                        return(false);
                    }
                }
            }
        }