예제 #1
0
        /// <summary>
        /// 保存表单(新增、修改)
        /// </summary>
        /// <param name="keyValue">主键值</param>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        public void SaveForm(string keyValue, Sale_CustomerEntity entity, List <Sale_Customer_ItemEntity> entryList)
        {
            IRepository db = this.BaseRepository().BeginTrans();

            try
            {
                if (!string.IsNullOrEmpty(keyValue))
                {
                    //主表
                    entity.Modify(keyValue);
                    db.Update(entity);
                    //明细
                    db.Delete <Sale_Customer_ItemEntity>(t => t.CustomerId.Equals(keyValue));
                    foreach (Sale_Customer_ItemEntity item in entryList)
                    {
                        item.Create();
                        item.CustomerId = entity.CustomerId;
                        db.Insert(item);
                    }
                }
                else
                {
                    //主表
                    entity.Create();
                    db.Insert(entity);
                    //明细
                    foreach (Sale_Customer_ItemEntity item in entryList)
                    {
                        item.Create();
                        item.CustomerId = entity.CustomerId;
                        db.Insert(item);
                    }
                }
                db.Commit();
            }
            catch (Exception)
            {
                db.Rollback();
                throw;
            }
        }
예제 #2
0
        /// <summary>
        /// 保存表单(新增、修改)
        /// </summary>
        /// <param name="keyValue">主键值</param>
        /// <param name="entity">实体对象</param>
        /// <param name="entryList">明细对象</param>
        /// <returns></returns>
        public void SaveForm(string keyValue, Sales_ContractEntity entity, List <Sales_Contract_ItemEntity> entryList)
        {
            IRepository db = this.BaseRepository().BeginTrans();

            try
            {
                if (!string.IsNullOrEmpty(keyValue))
                {
                    //主表
                    entity.Modify(keyValue);
                    db.Update(entity);

                    //明细
                    db.Delete <Sales_Contract_ItemEntity>(t => t.ContractId.Equals(keyValue));

                    foreach (Sales_Contract_ItemEntity item in entryList)
                    {
                        item.Create();
                        item.ContractId = entity.Id;
                        db.Insert(item);
                        //出库才减库存
                        if (entity.Status == 1)
                        {
                            MinusWareGoods(db, item);
                        }
                    }
                }
                else
                {
                    //主表
                    entity.Create();
                    db.Insert(entity);

                    //出库再操作,初始化余量主表
                    if (entity.Status == 1)
                    {
                        Sale_CustomerEntity saleCustomer = db.FindEntity <Sale_CustomerEntity>(t => t.CustomerId.Equals(entity.CustomerId));

                        if (saleCustomer != null)
                        {
                            saleCustomer.SumTotalAmount = saleCustomer.SumTotalAmount + entity.TotalAmount;
                            saleCustomer.SumTotalCount  = saleCustomer.SumTotalCount + entity.TotalCount;
                            saleCustomer.ModifyUserId   = entity.UserId;
                            saleCustomer.ModifyUserName = entity.UserName;
                            saleCustomer.Modify(saleCustomer.CustomerId);
                            db.Update(saleCustomer);
                        }
                        else
                        {
                            Sale_CustomerEntity saleCustomerEntity = new Sale_CustomerEntity()
                            {
                                CustomerId      = entity.CustomerId,
                                CustomerCompany = entity.CustomerCompany,
                                SumTotalAmount  = entity.TotalAmount,
                                SumTotalCount   = entity.TotalCount,
                                CreateUserId    = entity.UserId,
                                CreateUserName  = entity.UserName,
                            };
                            saleCustomerEntity.Create();
                            db.Insert(saleCustomerEntity);
                        }
                    }



                    //明细
                    int sort = 0;
                    foreach (Sales_Contract_ItemEntity item in entryList)
                    {
                        item.Sort = sort++;
                        item.Create();
                        item.ContractId = entity.Id;
                        db.Insert(item);
                        //出库才减库存
                        if (entity.Status == 1)
                        {
                            //出库才减库存
                            MinusWareGoods(db, item);

                            #region 余量信息
                            //出库才初始化余量子表
                            Sale_Customer_ItemEntity saleCustomerItem = db.FindEntity <Sale_Customer_ItemEntity>(t => t.CustomerId.Equals(entity.CustomerId) && t.ProductId.Equals(item.ProductId));
                            //商品已经进过一次货,在上次进货基础上累加总进货量
                            if (saleCustomerItem != null)
                            {
                                saleCustomerItem.UnitPrice = item.UnitPrice;
                                saleCustomerItem.SumAmount = saleCustomerItem.SumAmount + item.Amount;
                                saleCustomerItem.SumCount  = saleCustomerItem.SumCount + item.Count;
                                saleCustomerItem.Modify(saleCustomerItem.Id);
                                db.Update(saleCustomerItem);
                            }
                            else
                            {
                                //第一次进货,新增此商品
                                Sale_Customer_ItemEntity saleCustomerItemEntity = new Sale_Customer_ItemEntity()
                                {
                                    CustomerId  = entity.CustomerId,
                                    ProductId   = item.ProductId,
                                    ProductCode = item.ProductCode,
                                    ProductName = item.ProductName,
                                    UnitPrice   = item.UnitPrice,
                                    SumAmount   = item.Amount,
                                    SumCount    = item.Count,
                                    Sort        = item.Sort,
                                };
                                saleCustomerItemEntity.Create();
                                db.Insert(saleCustomerItemEntity);
                            }

                            #endregion
                        }
                    }
                    //占用单据号
                    coderuleService.UseRuleSeed(SystemInfo.CurrentModuleId, db);
                }
                db.Commit();
            }
            catch (Exception ex)
            {
                db.Rollback();
                throw;
            }
        }
예제 #3
0
        /// <summary>
        /// 保存生产单主单
        /// </summary>
        /// <param name="orderEntity">实体对象</param>
        /// <returns></returns>
        public static void SaveSaleMain(IRepository db, DZ_OrderEntity orderEntity)
        {
            try
            {
                //判断是否创建过这个生产单Id(跟生产编号一致,方便实体查询)
                Sale_CustomerEntity oldSale = db.FindEntity <Sale_CustomerEntity>(orderEntity.Code);
                //没创建过的才新增,避免下单不及时创建两个生产单初始单
                if (oldSale == null)
                {
                    //自动创建【生产单】主单部分
                    Sale_CustomerEntity sale_CustomerEntity = new Sale_CustomerEntity
                    {
                        ProduceCode      = orderEntity.Code, //生产单号默认和销售单号一样
                        OrderId          = orderEntity.Id,
                        OrderCode        = orderEntity.Code, //销售单号
                        OrderTitle       = orderEntity.OrderTitle,
                        OrderType        = orderEntity.OrderType,
                        CompanyId        = orderEntity.CompanyId,
                        CompanyName      = orderEntity.CompanyName,
                        CustomerId       = orderEntity.CustomerId,
                        CustomerName     = orderEntity.CustomerName,
                        SalesmanUserId   = orderEntity.SalesmanUserId,
                        SalesmanUserName = orderEntity.SalesmanUserName,
                        CustomerTelphone = orderEntity.CustomerTelphone,
                        SendPlanDate     = orderEntity.SendPlanDate,
                        Address          = orderEntity.Address,
                        ShippingType     = orderEntity.ShippingType,
                        Carrier          = orderEntity.Carrier,

                        //MoneyOkMark = orderEntity.MoneyOkMark == null ? 0 : orderEntity.MoneyOkMark,//报价审核
                        MoneyOkMark = orderEntity.MoneyOkMark,
                        MoneyOkDate = orderEntity.MoneyOkDate
                    };
                    sale_CustomerEntity.Create();//付款时间

                    //主表
                    db.Insert(sale_CustomerEntity);

                    //生成生产单id二维码
                    string url = "http://www.sikelai.cn/WeChatManage/Produce/StepSweepcode?id=" + sale_CustomerEntity.ProduceId;
                    CommonHelper.QRCode(url, sale_CustomerEntity.ProduceCode);

                    if (sale_CustomerEntity.MoneyOkMark == 1)
                    {
                        //发微信模板消息---财务已经报价审核并收款确认之后,给张宝莲发消息提醒oA-EC1bJnd0KFBuOy0joJvUOGwwk
                        //订单生成通知(7下单提醒)
                        TemplateWxApp.SendTemplateNew("oA-EC1bJnd0KFBuOy0joJvUOGwwk",
                                                      "您好,有新的订单需要下单!", sale_CustomerEntity.OrderTitle, sale_CustomerEntity.OrderCode, "请进行生产下单。");
                    }
                    RecordHelp.AddRecord(4, orderEntity.Id, "初始化生产单");
                }
                else
                {
                    //客诉单需要修改报价审核状态
                    oldSale.MoneyOkMark = orderEntity.MoneyOkMark;
                    oldSale.MoneyOkDate = orderEntity.MoneyOkDate;
                    oldSale.Modify(orderEntity.Code);
                    db.Update(oldSale);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }