Beispiel #1
0
        public ActionResponse <ProductDTO> SaveProduct(ProductDTO model)
        {
            ActionResponse <ProductDTO> response = new ActionResponse <ProductDTO>()
            {
                Response     = model,
                ResponseType = ResponseType.Ok
            };

            using (MspDbContext _db = new MspDbContext())
            {
                try
                {
                    if (response.Response.PID == 0)
                    {
                        if (model.PBarcode.Length > 0)
                        {
                            var barcodControl = _db.products.Where(x => x.PBarcode == model.PBarcode).Any();
                            if (barcodControl)
                            {
                                response.Message      = model.PName + " " + model.PBarcode + " Aynı Barkod Ürününden Mevcuttur.";
                                response.ResponseType = ResponseType.Error;
                                return(response);
                            }
                        }
                        var product = base.Map <ProductDTO, Products>(response.Response);
                        _db.products.Add(product);
                        _db.SaveChanges();
                        response.Response.PID = product.PID;

                        if (model.PBarcode.Length > 0)
                        {
                            ProductBarCodeDTO productBarCode = new ProductBarCodeDTO
                            {
                                Barcode      = model.PBarcode,
                                ProductId    = product.PID,
                                CompanyRecId = product.PCompanyId,
                                Remark       = product.PName
                            };
                            _db.ProductBarCode.Add(base.Map <ProductBarCodeDTO, ProductBarCode>(productBarCode));
                            _db.SaveChanges();
                        }

                        ProductMovementDTO productMovement = new ProductMovementDTO
                        {
                            ProductId = product.PID,
                            Date      = DateTime.Now,
                            Quantity  = Convert.ToInt32(model.PTotal.GetValueOrDefault()),
                            Durum     = "Stok Giriş",
                            Deleted   = false,
                            Amount    = model.PSalePrice,
                        };
                        _db.ProductMovement.Add(base.Map <ProductMovementDTO, ProductMovement>(productMovement));
                        _db.SaveChanges();
                    }
                    else
                    {
                        var entity = _db.products.FirstOrDefault(x => x.PID == response.Response.PID);
                        if (entity != null)
                        {
                            _db.Entry(entity).CurrentValues.SetValues(model);
                            _db.Entry(entity).State = System.Data.Entity.EntityState.Modified;
                        }

                        var _ProductBarcode = _db.ProductBarCode.FirstOrDefault(x => x.ProductId == response.Response.PID);
                        if (_ProductBarcode != null)
                        {
                            _ProductBarcode.Barcode = response.Response.PBarcode;
                            _db.Entry(_ProductBarcode).CurrentValues.SetValues(_ProductBarcode);
                            _db.Entry(_ProductBarcode).State = System.Data.Entity.EntityState.Modified;
                        }
                        else
                        {
                            if (model.PBarcode.Length > 0)
                            {
                                ProductBarCodeDTO productBarCode = new ProductBarCodeDTO
                                {
                                    Barcode      = model.PBarcode,
                                    ProductId    = entity.PID,
                                    CompanyRecId = entity.PCompanyId,
                                    Remark       = entity.PName
                                };
                                _db.ProductBarCode.Add(base.Map <ProductBarCodeDTO, ProductBarCode>(productBarCode));
                                _db.SaveChanges();
                            }
                        }
                    }
                    _db.SaveChanges();
                }
                catch (Exception e)
                {
                    response.Message      = e.ToString();
                    response.ResponseType = ResponseType.Error;
                }
            }
            return(response);
        }
Beispiel #2
0
        public ActionResponse <SaleRequest> Save_Sale(SaleRequest model)
        {
            ActionResponse <SaleRequest> response = new ActionResponse <SaleRequest>()
            {
                Response     = model,
                ResponseType = ResponseType.Ok
            };

            using (MspDbContext _db = new MspDbContext())
            {
                using (DbContextTransaction transaction = _db.Database.BeginTransaction())
                {
                    try
                    {
                        int saleOwnerId = 0;
                        if (response.Response.SaleOwnerDTO.RecId == 0)
                        {
                            SaleOwner saleOwner = base.Map <SaleOwnerDTO, SaleOwner>(model.SaleOwnerDTO);
                            _db.SaleOwner.Add(saleOwner);
                            _db.SaveChanges();
                            saleOwnerId = saleOwner.RecId;

                            if (saleOwner.Veresiye != true)
                            {
                                CaseMovementDTO caseMovement = new CaseMovementDTO()
                                {
                                    CaseId       = model.SaleOwnerDTO.CaseId,
                                    Doviz        = model.SaleOwnerDTO.DovizId,
                                    RecordDate   = model.SaleOwnerDTO.Date,
                                    Tutar        = model.SaleOwnerDTO.TotalPrice,
                                    OdemeTuru    = model.SaleOwnerDTO.PaymentType,
                                    CompanyRecId = model.SaleOwnerDTO.CompanyRecId,
                                    EvrakNo      = "Parakende Satış",
                                    IslemTuru    = 1,
                                    SaleOwnerId  = saleOwnerId,
                                    CariId       = 1
                                };
                                _db.CaseMovement.Add(base.Map <CaseMovementDTO, CaseMovement>(caseMovement));
                                _db.SaveChanges();
                            }
                        }
                        else
                        {
                            var entity = _db.SaleOwner.FirstOrDefault(x => x.RecId == response.Response.SaleOwnerDTO.RecId);
                            if (entity != null)
                            {
                                _db.Entry(entity).CurrentValues.SetValues(model.SaleOwnerDTO);
                                _db.Entry(entity).State = System.Data.Entity.EntityState.Modified;
                            }
                        }


                        foreach (var item in model.List_SaleTrans)
                        {
                            if (item.RecId == 0)
                            {
                                item.SaleOwnerId = saleOwnerId;
                                _db.SaleTrans.Add(base.Map <SaleTransDTO, SaleTrans>(item));
                                var product = _db.products.FirstOrDefault(x => x.PID == item.ProductId);
                                if (product != null)
                                {
                                    Products updatePro = new Products();
                                    updatePro        = product;
                                    updatePro.PTotal = updatePro.PTotal - item.ProductQuantity;
                                    var sqlUpdate = $"Update products set PTotal =@PTotal where PID ={item.ProductId}";
                                    var _param    = new SqlParameter[]
                                    {
                                        new SqlParameter {
                                            ParameterName = "PTotal", Value = updatePro.PTotal
                                        }
                                    };
                                    _db.Database.ExecuteSqlCommand(sqlUpdate, _param.ToArray());
                                    //_db.Entry(product).CurrentValues.SetValues(updatePro);
                                    //_db.Entry(product).State = System.Data.Entity.EntityState.Modified;

                                    ProductMovementDTO productMovement = new ProductMovementDTO
                                    {
                                        ProductId   = item.ProductId,
                                        Date        = DateTime.Now,
                                        Quantity    = Convert.ToInt32(item.ProductQuantity),
                                        Durum       = "Satış",
                                        Deleted     = false,
                                        Amount      = item.ProductQuantity * item.ProductPrice,
                                        DurumType   = 1,
                                        SaleOwnerId = saleOwnerId
                                    };
                                    _db.ProductMovement.Add(base.Map <ProductMovementDTO, ProductMovement>(productMovement));
                                    _db.SaveChanges();
                                }
                            }
                            else
                            {
                                var entity = _db.SaleTrans.FirstOrDefault(x => x.RecId == item.RecId);
                                if (entity != null)
                                {
                                    _db.Entry(entity).CurrentValues.SetValues(item);
                                    _db.Entry(entity).State = System.Data.Entity.EntityState.Modified;
                                }
                            }
                        }
                        _db.SaveChanges();
                        transaction.Commit();
                    }
                    catch (Exception e)
                    {
                        transaction.Rollback();
                        response.Message      = e.ToString();
                        response.ResponseType = ResponseType.Error;
                    }
                }
            }
            return(response);
        }