public bool Delete(long orderHeaderId)
        {
            Order_Purechase order_Purechase = _context.Order_Purechases.FirstOrDefault(x => x.OrderHeaderId == orderHeaderId);

            _order_purechaseEntity.Remove(order_Purechase);
            _context.SaveChanges();
            return(true);
        }
Exemplo n.º 2
0
        public void DeleteRelatedPurechase(long orderHeaderId, EntitiesDbContext context)
        {
            Order_Purechase order_Purechase = _context.Order_Purechases.FirstOrDefault(x => x.OrderHeaderId == orderHeaderId);

            if (order_Purechase != null && order_Purechase.PurechasesHeaderId != 0)
            {
                PurechasesHeader purechasesHeader = _context.PurechasesHeaders.FirstOrDefault(x => x.Id == order_Purechase.PurechasesHeaderId);
                Delete(purechasesHeader.Id, context);
            }
        }
        public bool Update(Order_Purechase entity)
        {
            Order_Purechase order_Purechase = _context.Order_Purechases.FirstOrDefault(x => x.OrderHeaderId == entity.OrderHeaderId);

            if (order_Purechase != null)
            {
                order_Purechase.PurechasesHeaderId = entity.PurechasesHeaderId;
            }
            _context.SaveChanges();
            return(true);
        }
        public bool Add(OrderDTO entity)
        {
            var options = GetOptions();

            using (var context = new EntitiesDbContext(options))
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        //[1] Save Order (Header and Details)
                        _orderHeaderOperationsRepo.Add(entity.OrderHeader, context);                        //Save in OrderHeader Table (Master Table)
                        entity.OrderDetails = SetOrderHeaderId(entity.OrderHeader.Id, entity.OrderDetails); //set OrderHeaderId to OrderDetails table
                        _orderDetailsOperationsRepo.AddRange(entity.OrderDetails, context);                 //Save in OrderDetails table (details for master table)

                        //[2] Save Purecchase pill
                        PurechasesHeader purechasesHeader = PreparePurechasesEntity(entity); //Prepare PurchaseEntity(Header and details for Cleint)
                        _purechasesOperationsRepo.Add(purechasesHeader, context);            //Add Purchase(Header and Details)

                        //[3] Save farmer safe in Safe Entity as hidden rows
                        Safe farmerSafe = PrepareFarmerSafeEntity(purechasesHeader, entity.OrderHeader.Id); //Prepare Safe for Client
                        _safeOperationsRepo.Add(farmerSafe, context);                                       //Add Client Safe row

                        //[4]Save Order_Purechase
                        Order_Purechase order_Purechase = PrepareOrder_Purechase(entity.OrderHeader.Id, purechasesHeader.Id);
                        _order_PurechaseOperationsRepo.Add(order_Purechase, context);

                        //[5] Save Salesinvoice pill
                        var salesinvoicesHeaderList = PrepareSalesinvoicesEntity(entity);//Prepare Salesinvoice(Header and Details)
                        foreach (var salesinvoicesHeader in salesinvoicesHeaderList)
                        {
                            SalesinvoicesHeader updatedSalesinvoicesHeader = _salesinvoicesOperationsRepo.Add(salesinvoicesHeader, entity.OrderHeader.Id, context); //Save in Salesinvoice(Header and Details) and update Total
                            _safeOperationsRepo.DeleteByHeaderId(updatedSalesinvoicesHeader.Id, AccountTypesEnum.Sellers, context);                                 //Delete old record in safe related to this Seller
                            var sellerSafe = PrepareSellerSafeEntity(updatedSalesinvoicesHeader, updatedSalesinvoicesHeader.Total, entity.OrderHeader.Id);
                            _safeOperationsRepo.Add(sellerSafe, context);
                        }
                        transaction.Commit();
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        return(false);
                    }
                }
            }
        }
        public bool Update(OrderDTO entity)
        {
            var options = GetOptions();

            using (var context = new EntitiesDbContext(options))
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        //[1] Update Order (Master and Details)
                        _orderHeaderOperationsRepo.Update(entity.OrderHeader, context);                       //Update Order table(Master)
                        _orderHeaderOperationsRepo.DeleteRelatedOrderDetials(entity.OrderHeader.Id, context); //Delete order details related to this order header
                        SetOrderHeaderId(entity.OrderHeader.Id, entity.OrderDetails);
                        _orderDetailsOperationsRepo.AddRange(entity.OrderDetails, context);                   //Adding of new Order Details

                        //[2] Update Purechase (Master and Details)
                        PurechasesHeader purechasesHeader = PreparePurechasesEntity(entity);
                        var orderHeader = _order_PurechaseOperationsRepo.GetByOrderHeaderId(entity.OrderHeader.Id);
                        if (orderHeader != null && orderHeader.PurechasesHeaderId != 0)
                        {
                            purechasesHeader.Id = orderHeader.PurechasesHeaderId;
                            _purechasesOperationsRepo.Update(purechasesHeader, context);
                        }
                        else
                        {
                            _purechasesOperationsRepo.Add(purechasesHeader, context);
                        }

                        //[3] Update Client Safe
                        _safeOperationsRepo.DeleteByOrderId(entity.OrderHeader.Id, context);
                        var safe = PrepareFarmerSafeEntity(purechasesHeader, entity.OrderHeader.Id);
                        _safeOperationsRepo.Add(safe, context);

                        //[4]Update Order_Purechase
                        Order_Purechase order_Purechase = PrepareOrder_Purechase(entity.OrderHeader.Id, purechasesHeader.Id);
                        _order_PurechaseOperationsRepo.Update(order_Purechase);

                        //[5] Update Salesinvoice
                        List <SalesinvoicesDetials> deletedSalesinvoicesDetials = _salesinvoicesOperationsRepo.DeleteSalesinvoiceDetails(entity.OrderHeader, context); //Delete SalesinvoiceDetails
                        UpdateSalesInvoicTotal(deletedSalesinvoicesDetials, context);
                        _salesinvoicesOperationsRepo.DeleteSalesinvoiceHeader(entity.OrderHeader.Created, context);                                                    //Delete Old Salesinvoice related to this Order
                        var salesinvoicesHeaderList = PrepareSalesinvoicesEntity(entity);                                                                              //Prepare Salesinvoice(Header and Details)
                        foreach (var salesinvoicesHeader in salesinvoicesHeaderList)
                        {
                            SalesinvoicesHeader updatedSalesinvoicesHeader = _salesinvoicesOperationsRepo.Add(salesinvoicesHeader, entity.OrderHeader.Id, context); //Save in Salesinvoice(Header and Details) and update Total
                            _safeOperationsRepo.DeleteByHeaderId(salesinvoicesHeader.Id, AccountTypesEnum.Sellers, context);                                        //Delete old record in safe related to this Seller
                            var sellerSafe = PrepareSellerSafeEntity(updatedSalesinvoicesHeader, updatedSalesinvoicesHeader.Total, entity.OrderHeader.Id);
                            _safeOperationsRepo.Add(sellerSafe, context);
                        }

                        transaction.Commit();
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        LogFile.WriteLog(ex.Message);
                        transaction.Rollback();
                        return(false);
                    }
                }
            }
        }
 public bool Add(Order_Purechase entity, EntitiesDbContext context)
 {
     context.Order_Purechases.Add(entity);
     context.SaveChanges();
     return(true);
 }