예제 #1
0
        /// <summary>
        /// 添加加工销售订单明细
        /// </summary>
        /// <param name="mod"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public static bool AddMachineOderDetail(MachineOderDetail mod, ref string error)
        {
            try
            {
                Convert.ToDateTime(mod.LeadTime);
            }
            catch (Exception)
            {
                error = string.Format("交期{0}不是标准日期格式 yyyy-MM-dd ", mod.LeadTime);
                return(false);
            }
            if (string.IsNullOrEmpty(mod.OrdersNumber) || string.IsNullOrEmpty(mod.RowNumber) ||
                string.IsNullOrEmpty(mod.SN) || string.IsNullOrEmpty(mod.LeadTime) ||
                string.IsNullOrEmpty(mod.CustomerProductNumber) || string.IsNullOrEmpty(mod.Qty) ||
                string.IsNullOrEmpty(mod.CustomerId))
            {
                error = string.Format("信息填写不完整!");
                return(false);
            }
            string    sql = string.Format(@" select ProductNumber   from ProductCustomerProperty 
where CustomerProductNumber ='{0}' and CustomerId='{1}' and Version='{2}' ", mod.CustomerProductNumber, mod.CustomerId, mod.Version);
            DataTable dt  = SqlHelper.GetTable(sql);

            if (dt.Rows.Count == 0)
            {
                error = string.Format("系统不存在该客户产成品编号:{0},版本:{1}", mod.CustomerProductNumber, mod.Version);
                return(false);
            }

            string productNumber = dt.Rows[0]["ProductNumber"].ToString();
            string version       = mod.Version;

            sql = string.Format(@"  select COUNT (*) from  MachineOderDetail where OdersNumber ='{0}' and ProductNumber ='{1}' and Version ='{2}'
  and RowNumber ='{3}'", mod.OrdersNumber, productNumber, version, mod.RowNumber);

            if (!SqlHelper.GetScalar(sql).Equals("0"))
            {
                error = string.Format("订单记录已存在");
                return(false);
            }
            List <string> sqls = new List <string>();

            sql = string.Format(@"  select UnitPrice  from  V_FindPriceForNew 
where ProductNumber ='{0}' and Version ='{1}' and CustomerId='{2}' ", productNumber, version, mod.CustomerId);

            string salesQuotation = SqlHelper.GetScalar(sql);

            salesQuotation = string.IsNullOrEmpty(salesQuotation) ? "0" : salesQuotation;

            sql = string.Format(@" insert into MachineOderDetail (OdersNumber ,ProductNumber ,Version ,LeadTime ,RowNumber ,SN ,CustomerProductNumber ,Qty 
 ,NonDeliveryQty ,DeliveryQty ,UnitPrice ,SumPrice ,CreateTime,remark )
 select '{0}',ProductNumber,Version ,'{1}','{2}',{3},'{4}',{5},{5},0,{10},{10}*{5},'{6}','{9}'
  from Product where ProductNumber ='{7}' and Version ='{8}'", mod.OrdersNumber, mod.LeadTime, mod.RowNumber, mod.SN, mod.CustomerProductNumber, mod.Qty
                                , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), productNumber, version, mod.Remark, salesQuotation);

            return(SqlHelper.ExecuteSql(sql, ref error));
        }
예제 #2
0
        /// <summary>
        /// 批量导入销售订单
        /// </summary>
        /// <param name="so"></param>
        /// <param name="FU_Excel"></param>
        /// <param name="server"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public static bool BacthAddSaleOrder(SaleOder so, FileUpload FU_Excel, HttpServerUtility server, ref string error)
        {
            bool    result = false;
            DataSet ds     = ToolManager.ImpExcel(FU_Excel, server);

            if (ds == null)
            {
                error = "选择的文件为空或不是标准的Excel文件!";
                return(false);
            }
            DataTable dt = ds.Tables[0];

            if (so.ProductType.Equals("贸易"))
            {
                if (!dt.Columns.Contains("客户物料编号"))
                {
                    error = "导入模板与生产类型不一致!";
                    return(false);
                }
            }
            else
            {
                if (!dt.Columns.Contains("客户产成品编号"))
                {
                    error = "导入模板与生产类型不一致!";
                    return(false);
                }
            }

            //插入主表信息
            string sql = string.Format(@"insert into SaleOder (OdersNumber ,OrdersDate
,OdersType ,ProductType ,MakeCollectionsMode,CustomerId 
,ContactId ,CreateTime ,Remark ,CustomerOrderNumber,KhddH )
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')", so.OrdersNumber, so.OrdersDate, so.OdersType
                                       , so.ProductType, so.MakeCollectionsMode, so.CustomerId, so.ContactId, so.CreateTime, so.Remark, so.CustomerOrderNumber, so.KhddH);

            SqlHelper.ExecuteSql(sql, ref error);
            //按照生产类型分别批量添加
            if (so.ProductType.Equals("贸易"))
            {
                List <TradingOrderDetail> tods = new List <TradingOrderDetail>();
                foreach (DataRow dr in dt.Rows)
                {
                    TradingOrderDetail tod = new TradingOrderDetail();
                    tod.OrdersNumber           = so.OrdersNumber;
                    tod.SN                     = dr["序号"].ToString();
                    tod.RowNumber              = dr["行号"].ToString();
                    tod.Delivery               = GetLeadTime(dr["交期"].ToString());
                    tod.CustomerMaterialNumber = dr["客户物料编号"].ToString();
                    tod.Quantity               = dr["订单数量"].ToString();
                    tod.Remark                 = dr["备注"].ToString();
                    tod.CustomerId             = so.CustomerId;

                    tods.Add(tod);
                }
                result = BacthAddTradingOrderDetail(tods, ref error);
            }
            else  // 序号	行号	交期	客户产成品编号	订单数量
            {
                List <MachineOderDetail> mods = new List <MachineOderDetail>();
                foreach (DataRow dr in dt.Rows)
                {
                    MachineOderDetail mod = new MachineOderDetail();
                    mod.OrdersNumber          = so.OrdersNumber;
                    mod.SN                    = dr["序号"].ToString();
                    mod.RowNumber             = dr["行号"].ToString();
                    mod.LeadTime              = GetLeadTime(dr["交期"].ToString());
                    mod.CustomerProductNumber = dr["客户产成品编号"].ToString();
                    mod.Qty                   = dr["订单数量"].ToString();
                    mod.CustomerId            = so.CustomerId;
                    mod.Version               = dr["版本"].ToString().ToUpper();
                    if (mod.Version.Equals(""))
                    {
                        mod.Version = SellManager.GetMostNewVersion(dr["客户产成品编号"].ToString());
                    }
                    else if (mod.Version.Equals("OO"))
                    {
                        mod.Version = "00";
                    }
                    mods.Add(mod);
                }
                result = BacthAddMachineOderDetail(mods, ref error);
            }
            return(result);
        }