Ejemplo n.º 1
0
        private void orderCombo()
        {
            SaleOrder comboOrder = new SaleOrder(3, "Paquete 2x1 en PC");

            comboOrder.AddProduct(Pc2x1);
            comboOrder.PrintOrder();
        }
Ejemplo n.º 2
0
        private void orderGammerPC()
        {
            SaleOrder gammerOrder = new SaleOrder(1, "Juan Perez");

            gammerOrder.AddProduct(GammerPC);
            gammerOrder.PrintOrder();
        }
Ejemplo n.º 3
0
        private void orderHomePC()
        {
            SaleOrder homeOrder = new SaleOrder(2, "Marcos Guerra");

            homeOrder.AddProduct(HomePC);
            homeOrder.PrintOrder();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <param name="p_Entity">实体类</param>
        /// <returns>操作影响的记录行数</returns>
        public override int Delete(BaseEntity p_Entity)
        {
            try
            {
                SaleOrder MasterEntity = (SaleOrder)p_Entity;
                if (MasterEntity.ID == 0)
                {
                    return(0);
                }

                //删除主表数据
                string Sql = "";
                Sql = "DELETE FROM Sale_SaleOrder WHERE " + "ID=" + SysString.ToDBString(MasterEntity.ID);
                //执行
                int AffectedRows = 0;
                if (!this.sqlTransFlag)
                {
                    AffectedRows = this.ExecuteNonQuery(Sql);
                }
                else
                {
                    AffectedRows = sqlTrans.ExecuteNonQuery(Sql);
                }

                return(AffectedRows);
            }
            catch (BaseException E)
            {
                throw new BaseException(E.Message, E);
            }
            catch (Exception E)
            {
                throw new BaseException(FrameWorkMessage.GetAlertMessage((int)Message.CommonDBDelete), E);
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 保存(传入事务处理)
 /// </summary>
 /// <param name="p_Entity"></param>
 /// <param name="p_BE"></param>
 /// <param name="sqlTrans"></param>
 public void RSave(SaleOrder p_Entity, BaseEntity[] p_BE, IDBTransAccess sqlTrans)
 {
     try
     {
         string sql = "DELETE FROM Sale_SaleOrderDts WHERE MainID=" + p_Entity.ID.ToString();
         sql += " AND ID NOT IN" + string.Format("({0})", GetIDExist(p_BE));
         sqlTrans.ExecuteNonQuery(sql);//删除原单据里应该删除的明细数据,即数据库里有但是UI里已经删除的数据
         for (int i = 0; i < p_BE.Length; i++)
         {
             SaleOrderDts entitydts = (SaleOrderDts)p_BE[i];
             if (entitydts.ID != 0)//ID不为0说明数据库中已经存在
             {
                 this.RUpdate(entitydts, sqlTrans);
             }
             else
             {
                 entitydts.MainID = p_Entity.ID;
                 this.RAdd(entitydts, sqlTrans);
             }
         }
     }
     catch (BaseException)
     {
         throw;
     }
     catch (Exception E)
     {
         throw new BaseException(E.Message);
     }
 }
Ejemplo n.º 6
0
            void SaleMgrSeed(AlpsContext context)
            {
                var quantity = 100;

                foreach (var sku in context.ProductSkus)
                {
                    context.Commodities.Add(Commodity.Create(sku.ID, sku.FullName, sku.Description, 3800, quantity * 3, quantity++));
                }
                context.SaveChanges();
                var saleOrder = SaleOrder.Create(customerID);

                // foreach (var commodity in context.Commodities.Take(5))
                // {
                //     saleOrder.AddItem(commodity.ID, 12, 2000, 5, "#");
                // }
                foreach (var productSku in context.ProductSkus.Take(5))
                {
                    saleOrder.AddItem(productSku.ID, productSku.Name, 12, 2000, 5, "#");
                }
                context.SaleOrders.Add(saleOrder);
                saleOrder = SaleOrder.Create(customerID);
                foreach (var productSku in context.ProductSkus.OrderByDescending(p => p.ID).Take(5))
                {
                    saleOrder.AddItem(productSku.ID, productSku.Name, 1, 3000, 1, "#");
                }
                // foreach (var commodity in context.Commodities.OrderByDescending(p => p.ID).Take(5))
                // {
                //     saleOrder.AddItem(commodity.ID, 1, 3000, 1, "#");
                // }
                context.SaleOrders.Add(saleOrder);

                context.SaveChanges();
            }
Ejemplo n.º 7
0
        public ActionResult Create(SaleOrder order)
        {
            if (ModelState.IsValid)
            {
                foreach (var item in order.Items)
                {
                    item.Product.Stocks = _context.Stocks.Where(s => s.ProductId == item.ProductId).ToList();
                }

                order.FinalizeOrder();

                _context.SaleOrders.Add(order);

                foreach (var item in order.Items)
                {
                    _context.Entry(item.Product).State = EntityState.Modified;
                }

                _context.SaveChanges();

                return(RedirectToAction("Index"));
            }

            ViewBag.CityId = new SelectList(_context.Cities.Where(c => c.IsActive).OrderBy(c => c.Name), "Id", "Name", order.Freight.CityId);

            return(View(order));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// 获取销售订单模型
        /// </summary>
        /// <param name="SaleOrderID"></param>
        /// <returns></returns>
        public DataSet GetModel(string SaleOrderID)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append(" select A.*,M.MaterialCode,M.MaterialName,M.Specs,U.UserName as CreateUser,U1.UserName as FirstCheckeName,C.ClientCode,C.ClientName,MU.UnitName,MU.UnitCode ");
            strSql.Append(" from SaleOrder A ");
            strSql.Append(" left join Materials M on M.MaterialID=A.MaterialID ");
            strSql.Append(" left join OA_User U on U.UserID=A.Creator ");
            strSql.Append(" left join OA_User U1 on U1.UserID=A.FirstChecker ");
            strSql.Append(" left join Client C on C.ClientID=A.ClientID ");
            strSql.Append(" left join MeasureUnits MU on MU.UnitID=A.SaleUnitID ");
            strSql.Append(" where SaleOrderID=@SaleOrderID ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@SaleOrderID", SqlDbType.VarChar, 36)
            };
            parameters[0].Value = SaleOrderID;

            SaleOrder model = new SaleOrder();
            DataSet   ds    = DBAccess.ExecuteDataset(DB.Type, DB.ConnectionString, CommandType.Text, strSql.ToString(), parameters);

            if (ds.Tables[0].Rows.Count > 0)
            {
                return(ds);
            }
            else
            {
                return(null);
            }
        }
Ejemplo n.º 9
0
        public ActionResult Cancel(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SaleOrder order = _context.SaleOrders.Find(id);

            if (order == null)
            {
                return(HttpNotFound());
            }

            if (order.UserId != Global.User.Id)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
            }

            order.CancelOrder();

            _context.Entry(order).State = EntityState.Modified;
            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
        public IActionResult Detail(int order_id)
        {
            DatabaseContext      databaseContext = new DatabaseContext();
            List <SaleOrder>     saleOrders      = databaseContext.sale_order.ToList();
            List <Product>       products        = databaseContext.product.ToList();
            List <SaleOrderLine> saleOrderLines  = databaseContext.sale_order_line.ToList();

            SaleOrder            sale_order       = saleOrders.Where(order => order.order_id == order_id).First();
            List <SaleOrderLine> sale_order_line  = saleOrderLines.Where(sale_order_line => sale_order_line.order_id == order_id).ToList();
            List <OrderModel>    sale_order_lines = (from product in products
                                                     join line in sale_order_line
                                                     on product.product_id equals line.product_id
                                                     orderby product.product_id descending
                                                     select new OrderModel
                                                     (
                                                         product.product_name,
                                                         line.quantity,
                                                         line.price,
                                                         line.discount,
                                                         line.amount
                                                     )).ToList();

            ViewBag.sale_order       = sale_order;
            ViewBag.sale_order_lines = sale_order_lines;

            return(View("~/Views/Admin/DetailOrder.cshtml"));
        }
Ejemplo n.º 11
0
        /// <summary>
        /// 初审
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool FirstCheck(SaleOrder model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("update SaleOrder set ");
            strSql.Append("FirstCheckTime=@FirstCheckTime,");
            strSql.Append("FirstCheckView=@FirstCheckView,");
            strSql.Append("SaleState=@SaleState");
            strSql.Append(" where SaleOrderID=@SaleOrderID ");
            SqlParameter[] parameters =
            {
                new SqlParameter("@FirstCheckTime", SqlDbType.DateTime),
                new SqlParameter("@FirstCheckView", SqlDbType.VarChar, 255),
                new SqlParameter("@SaleState",      SqlDbType.Char,      1),
                new SqlParameter("@SaleOrderID",    SqlDbType.VarChar, 36)
            };
            parameters[0].Value = model.FirstCheckTime;
            parameters[1].Value = model.FirstCheckView;
            parameters[2].Value = model.SaleState;
            parameters[3].Value = model.SaleOrderID;

            int rows = DBAccess.ExecuteNonQuery(DB.Type, DB.ConnectionString, CommandType.Text, strSql.ToString(), parameters);

            if (rows > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="userModel"></param>
        /// <param name="model"></param>
        /// <returns></returns>
        public virtual bool UpdateSaleOrder(UserModel userModel, SaleOrder model)
        {
            var m = Da.Get <SaleOrder>(model.SaleOrderId);

            if (m == null || m.UserId != userModel.UserId)
            {
                return(false);
            }

            m.SaleOrderNumber = model.SaleOrderNumber;
            m.CurrencyId      = model.CurrencyId;
            m.CurrencyName    = model.CurrencyName;
            m.CurrencyText    = model.CurrencyText;
            m.CurrencySymbol  = model.CurrencySymbol;
            m.CurrencyRate    = model.CurrencyRate;
            m.Title           = model.Title;
            m.ShipDate        = model.ShipDate;
            m.ShipFeight      = model.ShipFeight;
            m.ShipFee         = model.ShipFee;
            m.Discount        = model.Discount;
            m.ToConsignee     = model.ToConsignee;
            m.ToCompanyName   = model.ToCompanyName;
            m.ToTelphone      = model.ToTelphone;
            m.ToAddress       = model.ToAddress;
            m.ToRemark        = model.ToRemark;
            m.Status          = model.Status;
            m.PostDate        = model.PostDate;
            m.StockStart      = model.StockStart;
            m.StockStartName  = model.StockStartName;
            m.StockEnd        = model.StockEnd;
            m.StockEndName    = model.StockEndName;
            m.StockRemark     = model.StockRemark;

            return(Da.Update(m));
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 查询销售单详细分页
        /// </summary>
        /// <returns></returns>
        public ActionResult GetDetailList()
        {
            string CompanyID = WebUtil.GetFormValue <string>("CompanyID");

            int PageIndex = WebUtil.GetFormValue <int>("PageIndex", 1);
            int PageSize  = WebUtil.GetFormValue <int>("PageSize", 10);

            string OrderSnNum = WebUtil.GetFormValue <string>("OrderSnNum");
            string OrderNum   = WebUtil.GetFormValue <string>("OrderNum");
            int    OrderType  = WebUtil.GetFormValue <int>("OrderType", 0);
            string CusName    = WebUtil.GetFormValue <string>("CusName", string.Empty);
            string CusNum     = WebUtil.GetFormValue <string>("CusNum", string.Empty);
            string Phone      = WebUtil.GetFormValue <string>("Phone", string.Empty);

            int Status       = WebUtil.GetFormValue <int>("Status", 0);
            int AuditeStatus = WebUtil.GetFormValue <int>("AuditeStatus", 0);

            string ContractOrder = WebUtil.GetFormValue <string>("ContractOrder", string.Empty);
            string CusOrderNum   = WebUtil.GetFormValue <string>("CusOrderNum", string.Empty);

            string BarCode     = WebUtil.GetFormValue <string>("BarCode", string.Empty);
            string ProductName = WebUtil.GetFormValue <string>("ProductName", string.Empty);

            string BeginTime = WebUtil.GetFormValue <string>("BeginTime", string.Empty);
            string EndTime   = WebUtil.GetFormValue <string>("EndTime", string.Empty);

            SaleDetailEntity entity = new SaleDetailEntity();

            entity.CompanyID    = CompanyID;
            entity.OrderSnNum   = OrderSnNum;
            entity.OrderNum     = OrderNum;
            entity.CusName      = CusName;
            entity.CusNum       = CusNum;
            entity.Phone        = Phone;
            entity.Status       = Status;
            entity.AuditeStatus = AuditeStatus;

            entity.ContractOrder = ContractOrder;
            entity.CusOrderNum   = CusOrderNum;
            entity.BarCode       = BarCode;
            entity.ProductName   = ProductName;
            entity.BeginTime     = BeginTime;
            entity.EndTime       = EndTime;

            PageInfo pageInfo = new PageInfo()
            {
                PageIndex = PageIndex, PageSize = PageSize
            };
            Bill <SaleOrderEntity, SaleDetailEntity> bill = new SaleOrder(CompanyID);
            List <SaleDetailEntity>           listResult  = bill.GetDetailList(entity, ref pageInfo);
            DataListResult <SaleDetailEntity> dataResult  = new DataListResult <SaleDetailEntity>()
            {
                Code     = (int)EResponseCode.Success,
                Message  = "响应成功",
                Result   = listResult,
                PageInfo = pageInfo
            };

            return(Content(JsonHelper.SerializeObject(dataResult)));
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 新增销售订单
        /// </summary>
        /// <returns></returns>
        public ActionResult Create()
        {
            string                  CompanyID = WebUtil.GetFormValue <string>("CompanyID", string.Empty);
            SaleOrderEntity         entity    = WebUtil.GetFormObject <SaleOrderEntity>("Entity");
            List <SaleDetailEntity> list      = WebUtil.GetFormObject <List <SaleDetailEntity> >("List");

            entity.SnNum        = ConvertHelper.NewGuid();
            entity.AuditeStatus = (int)EAudite.Wait;
            entity.Status       = (int)EOrderStatus.CreateOrder;
            entity.IsDelete     = (int)EIsDelete.NotDelete;
            entity.CreateTime   = DateTime.Now;
            entity.CompanyID    = entity.CompanyID.IsEmpty() ? CompanyID : entity.CompanyID;

            Bill <SaleOrderEntity, SaleDetailEntity> bill = new SaleOrder(CompanyID);
            string     returnValue = bill.Create(entity, list);
            DataResult result      = new DataResult();

            if (EnumHelper.GetEnumDesc <EReturnStatus>(EReturnStatus.Success) == returnValue)
            {
                result.Code    = (int)EResponseCode.Success;
                result.Message = "销售订单创建成功";
            }
            else
            {
                result.Code    = (int)EResponseCode.Exception;
                result.Message = "销售订单创建失败";
            }
            return(Content(JsonHelper.SerializeObject(result)));
        }
Ejemplo n.º 15
0
        public IActionResult CreateOrder(OrderViewModel model)
        {
            var       user = User.FindFirst(ClaimTypes.NameIdentifier).Value;
            SaleOrder so   = new SaleOrder()
            {
                DateOfSale      = DateTime.Now,
                Finished        = true,
                InternetOrdered = true,
                ProductId       = model.ProductId,
                Quantity        = model.Quantity,
                Total           = model.Quantity * model.Price
            };

            using (Context)
            {
                try
                {
                    var customer = this.Context.Customers.All(x => x.Id == user).SingleOrDefault();
                    so.Customer = customer;
                    this.Context.SaleOrders.Add(so);

                    var res = Context.SaveChanges();
                    if (res == 1)
                    {
                        return(Redirect("/Products/Index"));
                    }
                    return(Redirect("/Home/Error"));
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
            return(View("/Home"));
        }
Ejemplo n.º 16
0
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            SaleOrder order = _context.SaleOrders.Find(id);

            if (order == null)
            {
                return(HttpNotFound());
            }

            if (order.UserId != Global.User.Id)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized));
            }

            int PaymentId = order.PaymentId; //TODO: Gambiarra até entender porque o find do pagamento está alterando o FreightId do objeto "order"
            int FreightId = order.FreightId;

            order.Payment      = _context.SaleOrderPayments.Find(PaymentId);
            order.Freight      = _context.SaleOrderFreights.Find(FreightId);
            order.Freight.City = _context.Cities.Find(order.Freight.CityId);
            order.User         = _context.Users.Find(order.UserId);
            order.Items        = _context.Items.Include(i => i.Product).Where(o => o.SaleOrderId == order.Id).ToList();

            return(View(order));
        }
Ejemplo n.º 17
0
        public QuotationsModel(SaleOrder model)
        {
            if (model != null)
            {
                SaleOrder = model;
                Name      = model.Name;
                Ref       = model.ClientOrderRef;

                TaxAmount = model.AmountTax;

                TotalAmount = model.AmountTotal;
                SubTotal    = model.AmountUntaxed;
                ApplyTax    = (model.AmountTax) <= 0 ? false : true;

                TaxPercent    = model.TaxPercent;
                DeliveryPrice = model.DeliveryPrice;

                PermanentNote = model.Note;
                Date          = model.DateOrder;
                Status        = model.State;
                HorseShow     = model.HorseShow;
                TrainerName   = model.TrainerName;

                if (ProductConstants.CurrencyValues.Any() && ProductConstants.CurrencyValues.Where((arg) => arg.Key == model.CurrencyId).Any())
                {
                    CurrencyLogo = ProductConstants.CurrencyValues.Where((arg) => arg.Key == model.CurrencyId)?.First().Value;
                }
                else
                {
                    CurrencyLogo = "*";
                }
            }
        }
Ejemplo n.º 18
0
        private dynamic NewSaleOrder(dynamic arg)
        {
            if (!this.CurrentUser.HasClaim("admin"))
            {
                return(403);
            }

            var so = new SaleOrder()
            {
                ShippingDetails = new JObject(),
                ItemsDetail     = new List <Product>(),
                Items           = new int[0],
                Customer        = JObject.FromObject(new
                {
                    Email     = "*****@*****.**",
                    FirstName = "NewCustomer",
                    LastName  = "NewCustomer",

                    User = new
                    {
                        Id = 0,
                    }
                })
            };

            so.Status        = SaleOrderStatus.New;
            so.PaymentStatus = PaymentStatus.WaitingForPayment;

            JObject shippingDetail = so.ShippingDetails;

            shippingDetail.Add("insurance", false);
            so.UpdateSaleOrder(this.CurrentSite, this.SiteDatabase, true);

            return(so);
        }
Ejemplo n.º 19
0
        public async Task <IHttpActionResult> PostSaleOrder(SaleOrder saleOrder)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            saleOrder.SlOrdId = NewNumber();
            saleOrder.EmpId   = db.Employees.FirstOrDefault().EmpId;
            foreach (var detail in saleOrder.SaleOrdersDetails)
            {
                detail.SlOrdId    = saleOrder.SlOrdId;
                detail.SlQty      = detail.CaseWight.GetValueOrDefault() - detail.WightEmpty.GetValueOrDefault();
                detail.TotalPrice = detail.ItemPrice.GetValueOrDefault() * detail.SlQty.GetValueOrDefault();
            }
            db.SaleOrders.Add(saleOrder);

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (SaleOrderExists(saleOrder.SlOrdId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtRoute("DefaultApi", new { id = saleOrder.SlOrdId }, saleOrder));
        }
Ejemplo n.º 20
0
        public async Task <IHttpActionResult> PutSaleOrder(int id, SaleOrder saleOrder)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != saleOrder.SlOrdId)
            {
                return(BadRequest());
            }

            db.Entry(saleOrder).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SaleOrderExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Ejemplo n.º 21
0
        /// <summary>
        /// 保存资金明细
        /// </summary>
        /// <param name="p_BE">要新增的实体</param>
        public void RSaveSaleCap(SaleOrder p_BEMain)
        {
            try
            {
                IDBTransAccess sqlTrans = TransSysUtils.GetDBTransAccess();
                try
                {
                    sqlTrans.OpenTrans();

                    this.RSaveSaleCap(p_BEMain, sqlTrans);

                    sqlTrans.CommitTrans();
                }
                catch (Exception TE)
                {
                    sqlTrans.RollbackTrans();
                    throw TE;
                }
            }
            catch (BaseException)
            {
                throw;
            }
            catch (Exception E)
            {
                throw new BaseException(E.Message);
            }
        }
Ejemplo n.º 22
0
        public void Insert(SaleOrderAddDTO dto)
        {
            using (DbConnection conn = DbHelper.CreateConnection())
            {
                DbTransaction trans = null;
                try
                {
                    conn.Open();
                    trans = conn.BeginTransaction();
                    if (trans == null)
                    {
                        throw new ArgumentNullException("DbTransaction");
                    }

                    foreach (SaleOrderDetailAddDTO detail in dto.SaleOrderDetails)
                    {
                        SaleOrder entity = new SaleOrder();
                        entity.Create(dto.Date, detail.CustomerId, detail.Address, detail.Mobile, detail.Linkman, dto.Item, dto.Quantity, dto.Unit, detail.NeedExpress, dto.Price, 0, dto.Remark, dto.Creator);
                        this.saleOrderRepository.Insert(trans, entity);
                    }

                    trans.Commit();
                }
                catch
                {
                    if (trans != null)
                    {
                        trans.Rollback();
                    }
                    throw;
                }
            }
        }
Ejemplo n.º 23
0
        /// <summary>
        /// 新增订单
        /// </summary>
        /// <param name="date">日期</param>
        /// <param name="item">产品项</param>
        /// <param name="unit">单位</param>
        /// <param name="price">单价</param>
        /// <param name="quantity">数量</param>
        /// <param name="actualAmount">实收金额</param>
        /// <param name="needExpress">需要快递</param>
        /// <param name="remark">备注</param>
        /// <param name="addressId">客户地址Id</param>
        /// <param name="creator">创建人</param>
        public void Insert(DateTime date, string item, string unit, decimal price, decimal quantity, decimal actualAmount, string needExpress, string remark, string addressId, string creator)
        {
            using (DbConnection conn = DbHelper.CreateConnection())
            {
                DbTransaction trans = null;
                try
                {
                    conn.Open();
                    trans = conn.BeginTransaction();
                    if (trans == null)
                    {
                        throw new ArgumentNullException("DbTransaction");
                    }

                    CustomerAddress customerAddress = this.customerAddressRepository.Select(trans, addressId);
                    if (customerAddress == null)
                    {
                        throw new EasySoftException(BusinessResource.SaleOrder_CustomerAddressInvalid);
                    }
                    SaleOrder entity = new SaleOrder();
                    entity.Create(date, customerAddress.CustomerId, customerAddress.Address, customerAddress.Mobile, customerAddress.Linkman, item, quantity, unit, needExpress, price, actualAmount, remark, creator);
                    this.saleOrderRepository.Insert(trans, entity);

                    trans.Commit();
                }
                catch
                {
                    if (trans != null)
                    {
                        trans.Rollback();
                    }
                    throw;
                }
            }
        }
Ejemplo n.º 24
0
        /// <summary>
        /// 删除销售订单记录
        /// </summary>
        /// <param name="id">Id</param>
        public void Update(string id, string status, decimal actualAmount, string mender)
        {
            using (DbConnection conn = DbHelper.CreateConnection())
            {
                DbTransaction trans = null;
                try
                {
                    conn.Open();
                    trans = conn.BeginTransaction();
                    if (trans == null)
                    {
                        throw new ArgumentNullException("DbTransaction");
                    }

                    SaleOrder oldEntity = this.Select(trans, id);
                    if (oldEntity.Status == SaleOrderStatus.Finished)
                    {
                        throw new EasySoftException(BusinessResource.Common_NotAllowEdit);
                    }
                    oldEntity.Update(status, actualAmount, mender);
                    this.saleOrderRepository.Update(trans, oldEntity);

                    trans.Commit();
                }
                catch
                {
                    if (trans != null)
                    {
                        trans.Rollback();
                    }
                    throw;
                }
            }
        }
Ejemplo n.º 25
0
        /// <summary>
        /// 删除销售订单记录
        /// </summary>
        /// <param name="id">Id</param>
        public void Delete(string id)
        {
            using (DbConnection conn = DbHelper.CreateConnection())
            {
                DbTransaction trans = null;
                try
                {
                    conn.Open();
                    trans = conn.BeginTransaction();
                    if (trans == null)
                    {
                        throw new ArgumentNullException("DbTransaction");
                    }

                    SaleOrder oldEntity = this.Select(trans, id);
                    if (oldEntity.Status != SaleOrderStatus.Ordered)
                    {
                        throw new EasySoftException(BusinessResource.Common_NotAllowDelete);
                    }
                    this.saleOrderRepository.Delete(trans, id);

                    trans.Commit();
                }
                catch
                {
                    if (trans != null)
                    {
                        trans.Rollback();
                    }
                    throw;
                }
            }
        }
Ejemplo n.º 26
0
        /// <summary>
        /// 删除
        /// </summary>
        public override void EntityDelete()
        {
            SaleOrderRule rule   = new SaleOrderRule();
            SaleOrder     entity = EntityGet();

            rule.RDelete(entity);
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 获得实体
        /// </summary>
        /// <returns></returns>
        private SaleOrder EntityGet()
        {
            SaleOrder entity = new SaleOrder();

            entity.ID = HTDataID;
            return(entity);
        }
Ejemplo n.º 28
0
        /// <summary>
        /// Handles the case when sale order is using credit
        /// </summary>
        /// <param name="db"></param>
        /// <param name="so"></param>
        internal static void HandleCreditRequest(NancyBlackDatabase db, SaleOrder saleorder)
        {
            if (saleorder.PaymentStatus != PaymentStatus.Credit)
            {
                return;
            }

            // only create one receivable per sale order
            var existingReceivable = db.Query <AccountingEntry>().Where(e => e.SaleOrderId == saleorder.Id && e.IncreaseAccount == "Receivable").FirstOrDefault();

            if (existingReceivable != null)
            {
                // update amount if changed
                if (existingReceivable.IncreaseAmount != saleorder.TotalAmount)
                {
                    existingReceivable.IncreaseAmount = saleorder.TotalAmount;
                    db.UpsertRecord(existingReceivable);
                }


                return;
            }

            AccountingEntry receivableEntry = new AccountingEntry();

            receivableEntry.TransactionDate  = DateTime.Now;
            receivableEntry.DueDate          = DateTime.Now.Date.AddDays(30);
            receivableEntry.TransactionType  = "newaccount";
            receivableEntry.DebtorLoanerName = "Receivable From Sales";
            receivableEntry.IncreaseAccount  = "Receivable";
            receivableEntry.IncreaseAmount   = saleorder.TotalAmount;
            receivableEntry.SaleOrderId      = saleorder.Id;

            db.UpsertRecord(receivableEntry);
        }
Ejemplo n.º 29
0
 public int SaveSaleOrder(SaleOrder SaleOrder, string Mode, LedgerAccount SelectedCustomer, LedgerAccount SelectedBankAccount, string ChequeNumber)
 {
     using (var transaction = Context.Database.BeginTransaction())
     {
         try
         {
             if (SaleOrder.SaleOrderId < 1)
             {
                 Context.SaleOrders.Add(SaleOrder);
             }
             else
             {
                 Context.Entry(SaleOrder).State = EntityState.Modified;
             }
             var count = Context.SaveChanges();
             SaveInLedger(SaleOrder, Mode, SelectedCustomer, SelectedBankAccount, ChequeNumber);
             transaction.Commit();
             return(count);
         }
         catch (Exception ex)
         {
             transaction.Rollback();
             throw ex;
         }
     }
 }
Ejemplo n.º 30
0
        private void save_Click(object sender, EventArgs e)
        {
            // 得到详细的销售信息
            ArrayList dataList = getSaleOrderDetailsValue();

            if (dataList.Count > 0)
            {
                // 销售订单表头和表尾信息
                SaleOrderTable record = getSaleOrderValue();
                if (purchaseOrderIsFull(record) && purchaseOrderDetailsIsFull(dataList))
                {
                    SaleOrder.getInctance().insert(record, false);
                    SaleOrderDetails.getInctance().insert(dataList);
                    BillNumber.getInctance().inserBillNumber(BillTypeNumber, this.labelTradingDate.Text, this.labelBillNumber.Text.ToString());

                    if (m_billNumber.Length == 0)
                    {
                        MessageBoxExtend.messageOK("数据保存成功");
                    }

                    this.Close();
                }
            }
            else
            {
                MessageBoxExtend.messageWarning("此单据不包含任何交易信息,单据保存失败.");
            }
        }
Ejemplo n.º 31
0
 public void AddToSaleOrders(SaleOrder saleOrder)
 {
     base.AddObject("SaleOrders", saleOrder);
 }
Ejemplo n.º 32
0
 public static SaleOrder CreateSaleOrder(int ID, string saleOrderNo, global::System.DateTime saleOrderDate, int saleOrder_Customer, bool saleOrderStatus, byte[] rowVersion)
 {
     SaleOrder saleOrder = new SaleOrder();
     saleOrder.Id = ID;
     saleOrder.SaleOrderNo = saleOrderNo;
     saleOrder.SaleOrderDate = saleOrderDate;
     saleOrder.SaleOrder_Customer = saleOrder_Customer;
     saleOrder.SaleOrderStatus = saleOrderStatus;
     saleOrder.RowVersion = rowVersion;
     return saleOrder;
 }