예제 #1
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);
        }
예제 #2
0
 /// <summary>
 /// 删除工序
 /// </summary>
 /// <param name="ids"></param>
 /// <returns></returns>
 public static string DeleteData(string ids)
 {
     sql = string.Format(@" delete WorkSn where WorkSnNumber in ({0}) ", ids);
     return(SqlHelper.ExecuteSql(sql, ref error) == true ? "1" : error);
 }
예제 #3
0
 /// <summary>
 /// 编辑工序
 /// </summary>
 /// <param name="user"></param>
 /// <param name="error"></param>
 /// <returns></returns>
 public static bool EditWorkSn(WorkSn worksn, ref string error)
 {
     sql = string.Format(@" update WorkSn set WorkSnName='{0}',sn='{2}' where WorkSnNumber='{1}' ", worksn.WorkSnName, worksn.WorkSnNumber, worksn.Sn);
     return(SqlHelper.ExecuteSql(sql, ref error));
 }
        /// <summary>
        /// 原材料出入库审核【单条审核】
        /// </summary>
        /// <param name="auditor"></param>
        /// <param name="warehouseNumber"></param>
        /// <returns></returns>
        public static string AuditorMarerialWarehouseLogForWarehouseNumber(string auditor, string warehouseNumber)
        {
            string checksqls = string.Format(@" select CheckTime from MarerialWarehouseLog where WarehouseNumber='{0}'", warehouseNumber);

            if (!string.IsNullOrEmpty(SqlHelper.GetScalar(checksqls)))
            {
                return("该单已审核,请勿重复审核!");
            }

            List <string> sqls   = new List <string>();
            DataTable     dtTemp = null;
            string        result = string.Empty;
            string        sql    = string.Format(@"
select COUNT(*) from MaterialWarehouseLogDetail where WarehouseNumber='{0}'", warehouseNumber);

            if (SqlHelper.GetScalar(sql).Equals("0"))
            {
                return("没有需要审核的记录!");
            }
            sql = string.Format("select Type from MarerialWarehouseLog where WarehouseNumber='{0}'", warehouseNumber);
            string type = SqlHelper.GetScalar(sql);

            if (type.Equals("生产出库") || type.Equals("包装出库"))
            {
                return(SCCKAuditor(auditor, warehouseNumber));
            }
            if (type.Equals("销售出库(贸易)"))
            {
                return(CheckMYXS(auditor, warehouseNumber));
            }
            //步骤一:检测采购入库和销售出库(贸易)的数量-订单未交数量是否大于0(大于0为异常数据)
            if (type.Equals("采购入库"))
            {
                sql    = string.Format(@"
select t.DocumentNumber ,t.MaterialNumber ,t.LeadTime from (
select WarehouseNumber,DocumentNumber,MaterialNumber,LeadTime,sum(isnull(Qty,0)) qty from MaterialWarehouseLogDetail
where WarehouseNumber ='{0}'
group by
WarehouseNumber,DocumentNumber,MaterialNumber,LeadTime
)t  left join CertificateOrdersDetail cod  on t.DocumentNumber=cod.OrdersNumber
and t.MaterialNumber =cod.MaterialNumber and t.LeadTime =cod.LeadTime  where t.Qty -cod.NonDeliveryQty >0", warehouseNumber);
                dtTemp = SqlHelper.GetTable(sql);
                if (dtTemp.Rows.Count > 0)
                {
                    foreach (DataRow dr in dtTemp.Rows)
                    {
                        result += "<br/>" + string.Format(" 订单编号为:{0} 原材料编号为:{1} 交期为{2}的记录数量大于订单未交数量!&nbsp;&nbsp;"
                                                          , dr["DocumentNumber"], dr["MaterialNumber"], dr["LeadTime"]);
                    }
                    return(result);
                }
                //sqls.AddRange(FinancialManager.GetCSYF(warehouseNumber));
            }
            else if (type.Equals("销售出库(贸易)"))
            {
                sql    = string.Format(@"select mwld.DocumentNumber ,mwld.MaterialNumber ,mwld.LeadTime
from MaterialWarehouseLogDetail mwld inner join MarerialWarehouseLog mwl on mwl.WarehouseNumber =mwld.WarehouseNumber
left join TradingOrderDetail cod  on mwld.DocumentNumber=cod.OdersNumber
and mwld.MaterialNumber =cod.ProductNumber and mwld.LeadTime =cod.Delivery  and mwld.RowNumber =cod.RowNumber
where mwld.Qty -cod.NonDeliveryQty >0
and mwl.WarehouseNumber ='{0}'", warehouseNumber);
                dtTemp = SqlHelper.GetTable(sql);
                if (dtTemp.Rows.Count > 0)
                {
                    foreach (DataRow dr in dtTemp.Rows)
                    {
                        result += string.Format(" 订单编号为:{0} 原材料编号为:{1} 交期为{2}的记录的数量大于订单未交数量!&nbsp;&nbsp;"
                                                , dr["DocumentNumber"], dr["MaterialNumber"], dr["LeadTime"]);
                    }
                    return(result);
                }

                //纠错 仅限于销售出库(贸易)
                string tempsql1 = string.Format(@"
DELETE MaterialWarehouseLogDetail
WHERE  WarehouseNumber = '{0}'
       AND Qty < 0;
", warehouseNumber);
                SqlHelper.ExecuteSql(tempsql1);

                //更新订单完成数量
                sqls.Add(GetUpdateQtySql(warehouseNumber));

                //生成送货单
                List <string> sqlsTemp = GetSqlForShSHD(warehouseNumber);
                if (sqlsTemp.Count > 0)
                {
                    sqls.AddRange(sqlsTemp);
                }
            }
            //步骤二:检测库存数量是否满足出库

            if (type.Equals("销售出库(贸易)"))
            {
                string tempchecksql = string.Format(@" select COUNT (*) from (
 select t.MaterialNumber,t.WarehouseName, (ISNULL ( ms.StockQty,0)-t.Qty) as 差 from (
 select mwld.MaterialNumber ,sum( mwld.Qty ) as Qty,mwl.WarehouseName
  from MaterialWarehouseLogDetail mwld
  inner join MarerialWarehouseLog mwl on mwld.WarehouseNumber=mwl.WarehouseNumber
  where mwl.ChangeDirection ='出库'  and mwl.WarehouseNumber in ('{0}') and mwld.Qty>0
  group by mwld.MaterialNumber,mwl.WarehouseName ) t left join MaterialStock ms on t.MaterialNumber=ms.MaterialNumber  ) t where 差<0", warehouseNumber);
                if (!SqlHelper.GetScalar(tempchecksql).Equals("0"))
                {
                    return("当前库存数量低,无法满足当前出库操作。");
                }
                //return SqlHelper.GetScalar(sql).Equals("0") ? true : false;
            }
            else
            {
                //if (!CheckInventoryQty("'" + warehouseNumber + "'"))
                //{
                //    return "当前库存数量低,无法满足当前出库操作。";
                //}
            }

            //步骤三:同步更新库存数量 并产生应付 同步更新采购入库的已交货数量
            string paymentdays    = string.Empty;
            string mode           = string.Empty;
            string CGOrderNumbers = string.Empty;
            string error          = string.Empty;

            sql    = string.Format(@"select * from V_MaterialWarehouseLogDetail_Detail where 出入库编号='{0}' ", warehouseNumber);
            dtTemp = SqlHelper.GetTable(sql);
            foreach (DataRow dr in dtTemp.Rows)
            {
                if (type.Equals("采购入库"))          //产生应付
                {
                    sql = string.Format(@"update CertificateOrdersDetail set DeliveryQty +={0}
where OrdersNumber='{1}' and MaterialNumber='{2}' and LeadTime ='{3}' and Status ='未完成'
 ", dr["数量"], dr["订单编号"], dr["原材料编号"], dr["交期"]); //同步更新采购入库的已交货数量
                    sqls.Add(sql);
                    CGOrderNumbers += string.Format("'{0}',", dr["订单编号"]);
                }
                //同步更新库存数量
                //sqls.Add(GetUpdateInventoryQtySql(dr["原材料编号"].ToString(), dr["仓库ID"].ToString(), dr["数量"].ToString(), dr["方向"].ToString()));
            }
            string timeNow = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            //类型为采购入库=======生成预付第二层信息
            sql = string.Format(@"insert into T_AccountsPayable_Detail(ReceiptNo,PurchaseOrderNumber ,PurchaseContractNumber,MaterialNumber ,SupplierMaterialNumber
,Description,PurchaseCount,NumberOfArrival,UnitPrice ,SumPrice ,TransportNo,LeadTime,CreateTime )
select vmld.WarehouseNumber ,vmld.DocumentNumber ,co.HTNumber,co.MaterialNumber,co.SupplierMaterialNumber,mit.Description ,co.OrderQty
,vmld.Qty,co.UnitPrice ,co.UnitPrice *vmld.Qty ,vmld.RoadTransport,vmld.LeadTime,'{1}'  from (  select mwl.Type,mwld.* from MarerialWarehouseLog mwl inner join MaterialWarehouseLogDetail mwld on mwl.WarehouseNumber =mwld.WarehouseNumber
) vmld inner join ( select co.HTNumber ,co.PaymentMode ,cod.* from CertificateOrders co inner join CertificateOrdersDetail cod on co.OrdersNumber=cod.OrdersNumber
) co on vmld.DocumentNumber =
co.OrdersNumber and vmld.MaterialNumber =co.MaterialNumber and vmld.LeadTime =co.LeadTime
inner join MarerialInfoTable mit on vmld .MaterialNumber =mit.MaterialNumber
 where vmld.WarehouseNumber ='{0}' and vmld.Type ='采购入库' ", warehouseNumber, timeNow);
            sqls.Add(sql);
            //类型为采购入库的生成应付第一层
            sql = string.Format(@"insert into T_AccountsPayable_Main(OrdersNumber,CreateTime ,CGHTNumber ,ArrivalNumber,SumPrice ,ArrivalPrice
,SupplierId,PaymentTypes,PaymentMode,DeliveryDate)
select a.OrdersNumber ,'{0}',co.HTNumber ,a.到货数量,a.订单总价,a.到货总价,si.SupplierId ,si.PayType,si.PaymentMode,CONVERT(varchar(100), GETDATE(), 23) from (
select co.OrdersNumber,SUM(vmld.Qty ) as 到货数量,SUM (vmld .Qty *co.UnitPrice ) as 到货总价,SUM( co.SumPrice) as 订单总价   from (  select mwl.Type,mwld.* from MarerialWarehouseLog mwl inner join MaterialWarehouseLogDetail mwld on mwl.WarehouseNumber =mwld.WarehouseNumber
) vmld inner join ( select co.HTNumber ,co.PaymentMode,co.SupplierId  ,cod.* from CertificateOrders co inner join CertificateOrdersDetail cod on co.OrdersNumber=cod.OrdersNumber
) co on vmld.DocumentNumber =
co.OrdersNumber and vmld.MaterialNumber =co.MaterialNumber and vmld.LeadTime =co.LeadTime
inner join MarerialInfoTable mit on vmld .MaterialNumber =mit.MaterialNumber
inner join SupplierInfo si on co.SupplierId=si.SupplierId
 where vmld.WarehouseNumber ='{1}' and vmld.Type ='采购入库' and co.PaymentMode!='YFBF' and co.PaymentMode!='YFQK'
 group by co.OrdersNumber) a  inner join CertificateOrders co on a.OrdersNumber =co.OrdersNumber
 inner join SupplierInfo si on co.SupplierId =si.SupplierId ", timeNow, warehouseNumber);
            sqls.Add(sql);

            //统一更新库存数量
            //            sql = string.Format(@"update MaterialStock set StockQty =
            //case when mwl.ChangeDirection='入库' then StockQty +a.Qty else StockQty-a.Qty end
            //,UpdateTime =CONVERT (varchar(100),GETDATE(),120) from
            //( select mwld.MaterialNumber,sum(mwld.Qty) as Qty from  MaterialWarehouseLogDetail mwld
            //  inner join MarerialWarehouseLog mwl on
            // mwld.WarehouseNumber =mwl.WarehouseNumber
            // where mwl.WarehouseNumber='{0}'
            // group by mwld.MaterialNumber) a
            // inner join MaterialStock ms on ms.MaterialNumber=a.MaterialNumber
            // where  ms.WarehouseName ='ycl'
            // ", warehouseNumber);
            sql = string.Format(@"update MaterialStock set StockQty =
case when a.ChangeDirection='入库' then StockQty +a.Qty else StockQty-a.Qty end
,UpdateTime =CONVERT (varchar(100),GETDATE(),120) from
( select mwld.MaterialNumber,mwl.ChangeDirection,sum(mwld.Qty) as Qty from  MaterialWarehouseLogDetail mwld
  inner join MarerialWarehouseLog mwl on
 mwld.WarehouseNumber =mwl.WarehouseNumber
 where mwl.WarehouseNumber='{0}'
 group by mwld.MaterialNumber,mwl.ChangeDirection) a
 inner join MaterialStock ms on ms.MaterialNumber=a.MaterialNumber
 where  ms.WarehouseName ='ycl'
 ", warehouseNumber);
            sqls.Add(sql);

            //如果是采购退料出库则反写出库单号至采购订单上
            if (type.Equals("采购退料出库"))
            {
                string tempSql = string.Format(@"
update  CertificateOrders set CCTCOrdersNumber='{0}'
where OrdersNumber in (
select distinct DocumentNumber from MaterialWarehouseLogDetail
where WarehouseNumber='{0}'
)", warehouseNumber);
                sqls.Add(tempSql);
                //warehouseNumber
            }

            //步骤四:同步更新采购入库订单明细的已交货、未交货、状态以及整条订单状态
            sql = string.Format("update CertificateOrdersDetail set NonDeliveryQty =OrderQty-DeliveryQty");
            sqls.Add(sql);
            sql = string.Format("update CertificateOrdersDetail  set Status ='已完成'  where NonDeliveryQty=0");
            sqls.Add(sql);
            if (!string.IsNullOrEmpty(CGOrderNumbers))
            {
                sql = string.Format(@"update CertificateOrders set OrderStatus ='已完成'
where OrdersNumber in (
 select OrdersNumber from CertificateOrdersDetail where OrdersNumber in({0})
 group by OrdersNumber having SUM(NonDeliveryQty )=0
)  and OrderStatus ='未完成'", CGOrderNumbers.TrimEnd(',')); //更新采购订单主表的状态
                sqls.Add(sql);
            }
            sql = string.Format(@" update MarerialWarehouseLog set Auditor='{0}' , CheckTime='{1}' where WarehouseNumber  ='{2}'", auditor, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), warehouseNumber);
            sqls.Add(sql);
            //更新瞬时库存数量
            sqls.Add(StoreroomToolManager.GetUpDateInventoryQtySql(warehouseNumber));
            //写入流水账
            sqls.Add(StoreroomToolManager.WriteMateriLSZ(warehouseNumber, auditor));

            sql = string.Format(" delete DeliveryNoteDetailed where DeliveryQty=0 ");//清除发货数量为0的送货单
            sqls.Add(sql);
            return(SqlHelper.BatchExecuteSql(sqls, ref error) ? "1" : error);
        }
        /// <summary>
        /// 销售出库(贸易)审核
        /// </summary>
        /// <param name="warehouseNumber"></param>
        /// <returns></returns>
        public static string CheckMYXS(string auditor, string warehouseNumber)
        {
            string        sql    = string.Empty;
            DataTable     dtTemp = new DataTable();
            string        result = string.Empty;
            List <string> sqls   = new List <string>();
            string        error  = string.Empty;

            sql    = string.Format(@"select mwld.DocumentNumber ,mwld.MaterialNumber ,mwld.LeadTime
from MaterialWarehouseLogDetail mwld inner join MarerialWarehouseLog mwl on mwl.WarehouseNumber =mwld.WarehouseNumber
left join TradingOrderDetail cod  on mwld.DocumentNumber=cod.OdersNumber
and mwld.MaterialNumber =cod.ProductNumber and mwld.LeadTime =cod.Delivery  and mwld.RowNumber =cod.RowNumber
where mwld.Qty -cod.NonDeliveryQty >0
and mwl.WarehouseNumber ='{0}'", warehouseNumber);
            dtTemp = SqlHelper.GetTable(sql);
            if (dtTemp.Rows.Count > 0)
            {
                foreach (DataRow dr in dtTemp.Rows)
                {
                    result += string.Format(" 订单编号为:{0} 原材料编号为:{1} 交期为{2}的记录的数量大于订单未交数量!&nbsp;&nbsp;"
                                            , dr["DocumentNumber"], dr["MaterialNumber"], dr["LeadTime"]);
                }
                return(result);
            }
            //纠错 仅限于销售出库(贸易)
            string tempsql1 = string.Format(@"
DELETE MaterialWarehouseLogDetail
WHERE  WarehouseNumber = '{0}'
       AND Qty < 0;
", warehouseNumber);

            SqlHelper.ExecuteSql(tempsql1);

            //更新订单完成数量
            //sqls.Add(GetUpdateQtySql(warehouseNumber));

            //生成送货单
            List <string> sqlsTemp = GetSqlForShSHD(warehouseNumber);

            if (sqlsTemp.Count > 0)
            {
                sqls.AddRange(sqlsTemp);
            }
            sql = string.Format(@"
INSERT INTO T_LessMaterialBreakdown(WarehouseNumber ,DocumentNumber ,MaterialNumber ,RowNumber ,LeadTime ,CustomerMaterialNumber ,LibraryQty,StockQty ,LessMaterialQty ,CreateTime ,IsLessMaterial)
SELECT '',
       mwld.DocumentNumber ,
       mwld. MaterialNumber,
       '',
       '' ,
       mwld.CustomerMaterialNumber,
       mwld. Qty,
       vmq.StockQty,
       CASE
           WHEN vmq.StockQty<0 THEN 0-mwld.Qty
           ELSE vmq.StockQty -mwld.Qty
       END,
       '{1}',
       '未还料'
FROM
  (SELECT DocumentNumber,
          MaterialNumber,
          CustomerMaterialNumber,
          SUM(Qty) Qty
   FROM MaterialWarehouseLogDetail
   WHERE WarehouseNumber ='{0}'
   GROUP BY DocumentNumber,
            MaterialNumber,
            CustomerMaterialNumber) mwld
INNER JOIN MaterialStock vmq ON mwld.MaterialNumber =vmq.MaterialNumber
WHERE vmq.StockQty-mwld.Qty <0
 ", warehouseNumber, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
            sqls.Add(sql);
            //更新库存
            sql = string.Format(@"update MaterialStock set StockQty =
case when a.ChangeDirection='入库' then StockQty +a.Qty else StockQty-a.Qty end
,UpdateTime =CONVERT (varchar(100),GETDATE(),120) from
( select mwld.MaterialNumber,mwl.ChangeDirection,sum(mwld.Qty) as Qty from  MaterialWarehouseLogDetail mwld
  inner join MarerialWarehouseLog mwl on
 mwld.WarehouseNumber =mwl.WarehouseNumber
 where mwl.WarehouseNumber='{0}'
 group by mwld.MaterialNumber,mwl.ChangeDirection) a
 inner join MaterialStock ms on ms.MaterialNumber=a.MaterialNumber
 where  ms.WarehouseName ='ycl'
 ", warehouseNumber);
            sqls.Add(sql);

            sql = string.Format(@" update MarerialWarehouseLog set Auditor='{0}' , CheckTime='{1}' where WarehouseNumber  ='{2}'", auditor, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), warehouseNumber);
            sqls.Add(sql);
            //更新瞬时库存数量
            sqls.Add(StoreroomToolManager.GetUpDateInventoryQtySql(warehouseNumber));
            //写入流水账
            sqls.Add(StoreroomToolManager.WriteMateriLSZ(warehouseNumber, auditor));

            sql = string.Format(" delete DeliveryNoteDetailed where DeliveryQty=0 ");//清除发货数量为0的送货单
            sqls.Add(sql);
            return(SqlHelper.BatchExecuteSql(sqls, ref error) ? "1" : error);
        }
예제 #6
0
        public static bool AddQuoteInfoMachineForListory(DataRow dr, ref string error, string userId)
        {
            string version = dr["版本"].ToString().ToUpper();

            if (string.IsNullOrEmpty(version))
            {
                version = "WU";
            }
            if (version.Equals("OO"))
            {
                version = "00";
            }
            if (dr["单价(未税)"].ToString().Equals(""))
            {
                error = "单价(未税)不能为空";
                return(false);
            }
            string sql = string.Format(@" select ProductNumber   from ProductCustomerProperty where CustomerProductNumber ='{0}' and version='{1}'"
                                       , dr["图纸号"], version);
            string productNumber = SqlHelper.GetScalar(sql);

            if (string.IsNullOrEmpty(productNumber))
            {
                error = string.Format("系统不存在该图纸号,请先录入该图纸号:{0},版本{1}", dr["图纸号"], version);
                return(false);
            }
            sql = string.Format(@" 
select customerName from customer where customerId='{0}'", dr["客户编号"]);

            string customerName = SqlHelper.GetScalar(sql);

            if (string.IsNullOrEmpty(customerName))
            {
                error = string.Format("系统不存在该客户编号:{0}", dr["客户编号"]);
                return(false);
            }
            string bjTime = "";

            try
            {
                bjTime = dr["报价时间"] == null?
                         DateTime.Now.AddSeconds(2).ToString("yyyy-MM-dd") : Convert.ToDateTime(dr["报价时间"]).ToString("yyyy-MM-dd");
            }
            catch (Exception ec)
            {
                error = string.Format("报价时间:{0}不是正规的日期格式yyyy-MM-dd", dr["报价时间"]);
                return(false);
            }
            //sql = string.Format(@"select COUNT(0) from PM_USER where USER_NAME='{0}'", dr["客户联系人"]);
            //if (SqlHelper.GetScalar(sql).Equals("0"))
            //{
            //    error = string.Format("系统不存该客户联系人:{0}", dr["客户联系人"]);
            //    return false;
            //}

            string materiNumber = string.Empty;

            if (dr["是否是原材料"].ToString().Equals("是"))
            {
                sql          = string.Format(@"select MaterialNumber from MaterialCustomerProperty where CustomerMaterialNumber='{0}'", dr["客户物料号"]);
                materiNumber = SqlHelper.GetScalar(sql);
                if (string.IsNullOrEmpty(materiNumber))
                {
                    error = string.Format("系统不存该客户物料号:{0}", dr["客户物料号"]);
                    return(false);
                }
            }
            else
            {
                sql = string.Format(@"
select count(*) from V_MachineQuoteDetail_Report 
where 客户产成品编号='{0}' 
and 版本='{1}' 
and isone='是' 
and 客户名称='{2}'
and 报价时间='{3}'
group by 客户产成品编号,版本,客户名称,报价时间"
                                    , dr["图纸号"], version, customerName, bjTime);
                string tempcount = SqlHelper.GetScalar(sql);
                //出现报价时间相同的报价单【此处进行异常数据处理】
                if (!string.IsNullOrEmpty(tempcount) && Convert.ToInt32(tempcount) > 1)
                {
                    bjTime = DateTime.Now.AddDays(1).ToString("yyyy-MM-dd");
                }
            }



            List <string> sqls = new List <string>();

            //S#	阶层	图纸号	BAC物料号	客户物料号	版本
            //物料描述	BOM用量	库存数量(理论值)	原材料单价(未税)
            //原材料采购单价	工时费	利润(未税)	管销研费用(未税)
            //损耗(未税)	单价(未税)	固定提前期	备注	是否第一级	是否是原材料

            //            sql = string.Format(@"
            //select  COUNT(*) from MachineQuoteDetail where QuoteNumber='{0}' and CustomerProductNumber='{1}'
            //", quoteNumber, dr["图纸号"]);
            //            if (!SqlHelper.GetScalar(sql).Equals("0"))
            //            {
            //                sql = string.Format(@"
            //delete MachineQuoteDetail where QuoteNumber='{0}' and CustomerProductNumber='{1}' ", quoteNumber, dr["图纸号"]);
            //                sqls.Add(sql);
            //            }

            //	客户编号	客户联系人	报价时间


            sql = string.Format(@"insert into [T_MachineQuoteDetail_Temp] ( 
SS,Hierarchy,CustomerProductNumber,BACNumber,CustomerMaterialNumber,
Version,Description ,BOMAmount 
,MaterialPrcie,TimeCharge,Profit,ManagementPrcie
,LossPrcie,UnitPrice,FixedLeadTime,Remark ,ProductType,IsOne,IsMaril,ProductNumber,MaterialNumber,UserId,CustomerId,ContactId,QuteTime)
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},{9},{10},{11},{12},{13},'{14}','{15}',
'{16}','{17}','{18}','{19}','{20}','{21}','{22}','{23}','{24}')"
                                , dr["S#"], dr["阶层"], dr["图纸号"], dr["BAC物料号"], dr["客户物料号"], version,
                                dr["物料描述"], dr["BOM用量"].ToString().Equals("") ? "1" : dr["BOM用量"],
                                SrConvert(dr["原材料单价(未税)"]), SrConvert(dr["工时费(未税)"]), SrConvert(dr["利润(未税)"]),
                                SrConvert(dr["管销研费用(未税)"]),
                                SrConvert(dr["损耗(未税)"]), dr["单价(未税)"], dr["固定提前期"], dr["备注"], "", dr["是否第一级"], dr["是否是原材料"],
                                productNumber, materiNumber, userId, dr["客户编号"], dr["客户联系人"], bjTime);
            sqls.Add(sql);
            //            if (dr["是否是原材料"].ToString().Equals("否"))
            //            {
            //                string productNumber = dt.Rows[0]["ProductNumber"].ToString();
            //                string version = dt.Rows[0]["Version"].ToString();
            //                sql = string.Format(@"
            // update Product set SalesQuotation={2} where ProductNumber ='{0}' and Version ='{1}'", productNumber, version, dr["单价(未税)"]);
            //                sqls.Add(sql);
            //            }
            return(SqlHelper.ExecuteSql(sql, ref error));
        }
        /// <summary>
        /// 删除原材料图纸属性
        /// </summary>
        /// <param name="ids"></param>
        /// <returns></returns>
        public static string DeleteData(string ids)
        {
            string sql = string.Format(@" delete MaterialBlueprintProperty where guid in ({0}) ", ids);

            return(SqlHelper.ExecuteSql(sql, ref error) == true ? "1" : error);
        }
        public void Delete(string guid)
        {
            string sql = string.Format(@"delete ProductWarehouseLogDetail where guid='{0}'", guid);

            SqlHelper.ExecuteSql(sql);
        }
 /// <summary>
 /// 删除产成品客户属性
 /// </summary>
 /// <param name="ids"></param>
 /// <returns></returns>
 public static string DeleteData(string ids)
 {
     sql = string.Format(@" delete ProductCustomerProperty where guid in ({0}) ", ids);
     return(SqlHelper.ExecuteSql(sql, ref error) == true ? "1" : error);
 }
예제 #10
0
 /// <summary>
 /// 删除付款方式
 /// </summary>
 /// <param name="ids"></param>
 /// <returns></returns>
 public static string DeleteData(string ids)
 {
     sql = string.Format(@" delete PaymentMode where Id in ('{0}') ", ids);
     return(SqlHelper.ExecuteSql(sql, ref error) == true ? "1" : error);
 }
예제 #11
0
 /// <summary>
 /// 编辑付款方式
 /// </summary>
 /// <param name="user"></param>
 /// <param name="error"></param>
 /// <returns></returns>
 public static bool EditPaymentMode(PaymentModes paymentmode, ref string error)
 {
     sql = string.Format(@" update PaymentMode set PaymentMode='{0}' where Id='{1}'", paymentmode.PaymentMode, paymentmode.Id);
     return(SqlHelper.ExecuteSql(sql, ref error));
 }
 /// <summary>
 /// 编辑收款方式
 /// </summary>
 /// <param name="user"></param>
 /// <param name="error"></param>
 /// <returns></returns>
 public static bool EditMakeCollectionsMode(MakeCollectionsModes makecollectionsmode, ref string error)
 {
     sql = string.Format(@" update MakeCollectionsMode set MakeCollectionsMode='{0}' where Id='{1}'", makecollectionsmode.MakeCollectionsMode, makecollectionsmode.Id);
     return(SqlHelper.ExecuteSql(sql, ref error));
 }
예제 #13
0
        /// <summary>
        /// 批量导入历史贸易报价单
        /// </summary>
        /// <param name="tods"></param>
        /// <param name="error"></param>
        /// <returns></returns>
        public static bool BacthAddQuoteInfoTradingForListory(FileUpload FU_Excel, HttpServerUtility server, string userId, ref string error)
        {
            string sqlTemp = string.Format(" delete T_TradingQuoteDetail_Temp where userId='{0}' ", userId);

            SqlHelper.ExecuteSql(sqlTemp, ref error);

            DataSet ds = ToolManager.ImpExcel(FU_Excel, server);

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

            if (dt.Rows.Count <= 0)
            {
                error = "没有要添加的数据";
                return(false);
            }
            foreach (DataRow dr in dt.Rows)
            {
                tempError = "";
                if (!AddQuoteInfoTradingForListory(dr, ref tempError, userId))
                {
                    i++;
                    error += string.Format("添加失败:原因--{0}<br/>", tempError);
                }
            }
            bool result = i > 0 ? false : true;

            if (!result)
            {
                error = string.Format("添加成功{0}条,添加失败{1}条。<br/>{2}", (dt.Rows.Count - i).ToString(), i.ToString(), error);
            }

            //=================================以下将临时表中的数据导入报价单======================================

            List <string> sqls     = new List <string>();
            string        sql      = string.Format(@" select userId,CustomerId,ContactId,QuoteTime from T_TradingQuoteDetail_Temp 
where userId='{0}'
group by userId,CustomerId,ContactId,QuoteTime ", userId);
            DataTable     dtNew    = SqlHelper.GetTable(sql);
            string        bjNumber = "";
            int           h        = 1;

            foreach (DataRow drNew in dtNew.Rows)
            {
                bjNumber = "MYBJ" + DateTime.Now.AddSeconds(h).ToString("yyyyMMddHHmmss");
                //开一个报价单
                sql = string.Format(@"insert into QuoteInfo(QuoteNumber,QuoteTime,QuoteType,CustomerId ,ContactId,CreateDateTime ,QuoteUser )
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')", bjNumber, drNew["QuoteTime"], "贸易报价单",
                                    drNew["CustomerId"], drNew["ContactId"], DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), userId);
                sqls.Add(sql);
                sql = string.Format(@" insert into  TradingQuoteDetail (QuoteNumber,ProductNumber,CustomerMaterialNumber,FixedLeadTime
 ,UnitPrice,MinPackage,MinMOQ,MaterialDescription,DW,Remark,SupplierMaterialNumber)
 select '{4}',MaterialNumber,CustomerMaterialNumber,FixedLeadTime
 ,UnitPrice,MinPackage,MinMOQ,MaterialDescription, DW,Remark ,SupplierMaterialNumber from T_TradingQuoteDetail_Temp 
 where  userId='{0}' and  CustomerId='{1}' and ContactId='{2}' 
and  QuoteTime='{3}' ", userId, drNew["CustomerId"], drNew["ContactId"], drNew["QuoteTime"], bjNumber);
                sqls.Add(sql);
                h++;
            }
            string tempErrorNew = string.Empty;

            SqlHelper.BatchExecuteSql(sqls, ref tempErrorNew);
            return(result);
        }
예제 #14
0
        public static bool AddQuoteInfoTradingForListory(DataRow dr, ref string error, string userId)
        {
            string sql            = string.Empty;
            string materialNumber = string.Empty;

            if (!dr["客户编号"].ToString().Equals(""))
            {
                sql = string.Format(@"select COUNT(*) from Customer where CustomerId ='{0}'", dr["客户编号"]);
                if (SqlHelper.GetScalar(sql).Equals("0"))
                {
                    error = string.Format("系统不存在该客户编号:{0}", dr["客户编号"]);
                    return(false);
                }
            }

            if (dr.Table.Columns.Contains("供应商编号") && !dr["供应商编号"].ToString().Equals(""))
            {
                sql = string.Format(" select COUNT(*) from SupplierInfo where SupplierId ='{0}' ", dr["供应商编号"]);
                if (SqlHelper.GetScalar(sql).Equals("0"))
                {
                    error = string.Format("系统不存在该供应商编号:{0}", dr["供应商编号"]);
                    return(false);
                }
            }
            if (!dr["供应商物料编号"].ToString().Equals(""))
            {
                sql = string.Format(@" select COUNT (*) from
MaterialSupplierProperty where SupplierMaterialNumber='{0}' and SupplierId ='{1}'", dr["供应商物料编号"], dr["供应商编号"]);
                if (SqlHelper.GetScalar(sql).Equals("0"))
                {
                    error = string.Format("系统不存在该供应商{0}的供应商物料编号{1}", dr["供应商编号"], dr["供应商物料编号"]);
                    return(false);
                }
            }
            if (!dr["客户物料编号"].ToString().Equals(""))
            {
                sql            = string.Format(@"  
 select MaterialNumber from MaterialCustomerProperty  where CustomerMaterialNumber='{0}' and CustomerId ='{1}' ", dr["客户物料编号"], dr["客户编号"]);
                materialNumber = SqlHelper.GetScalar(sql);

                if (string.IsNullOrEmpty(materialNumber))
                {
                    error = string.Format("系统不存在该客户{0}的客户物料编号{1}", dr["客户编号"], dr["客户物料编号"]);
                    return(false);
                }
            }
            string quteDate = string.Empty;

            try
            {
                quteDate = Convert.ToDateTime(dr["报价日期"]).ToString("yyyy-MM-dd");
            }
            catch (Exception ex)
            {
                error = string.Format("报价日期:{0}不是标准的日期格式'yyyy-MM-dd'", dr["报价日期"]);
                return(false);
            }



            sql = string.Format(@"  
  insert into T_TradingQuoteDetail_Temp (MaterialNumber,CustomerMaterialNumber,FixedLeadTime
 ,UnitPrice,MinPackage,MinMOQ,MaterialDescription,QuoteTime,CustomerId,ContactId,UserId,DW,Remark,SupplierMaterialNumber)
 values('{0}','{1}','{2}',{3},'{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}') ", materialNumber, dr["客户物料编号"],
                                dr["交货周期"], dr["单价(未税)"].ToString().Replace('*', ' '), dr["最小包装"], dr["最小起订量"], dr["描述"], quteDate, dr["客户编号"],
                                dr["客户联系人"], userId, dr["单位"], dr["备注"], dr["供应商物料编号"]);
            return(SqlHelper.ExecuteSql(sql, ref error));
        }
예제 #15
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 BacthAddSaleOrderNew(SaleOder so, FileUpload FU_Excel, HttpServerUtility server, string userId, ref string error)
        {
            DataSet ds = ToolManager.ImpExcel(FU_Excel, server);

            if (ds == null)
            {
                error = "选择的文件为空或不是标准的Excel文件!";
                return(false);
            }
            string sql = string.Format(@" delete  T_ImpSaleOder_Temp where userId='{0}'
", userId);

            SqlHelper.ExecuteSql(sql);

            DataTable dt        = ds.Tables[0];
            int       i         = 0;
            string    tempError = string.Empty;

            if (dt.Rows.Count <= 0)
            {
                error = "没有要添加的数据";
                return(false);
            }
            foreach (DataRow dr in dt.Rows)
            {
                tempError = "";
                if (!AddSaleOrder(dr, so, userId, ref tempError))
                {
                    i++;
                    error += string.Format("添加失败:原因--{0}<br/>", tempError);
                }
            }
            bool result = i > 0 ? false : true;

            if (!result)
            {
                error = string.Format("添加成功{0}条,添加失败{1}条。<br/>{2}", (dt.Rows.Count - i).ToString(), i.ToString(), error);
            }
            List <string> sqls     = new List <string>();
            string        xsNumber = "";

            sql = string.Format(@"select COUNT (*) from T_ImpSaleOder_Temp where ismateriNumber ='是' and userid='{0}'", userId);
            if (!SqlHelper.GetScalar(sql).Equals("0"))
            {
                xsNumber = "XS" + DateTime.Now.AddSeconds(1).ToString("yyyyMMddHHmmss");
                sql      = string.Format(@"insert into SaleOder(OdersNumber,OrdersDate,OdersType,ProductType ,
MakeCollectionsMode,CustomerId ,ContactId ,OrderStatus ,CreateTime ,CustomerOrderNumber,KhddH )
values('{0}','{1}','{2}','贸易','{3}','{4}','{5}','未完成','{6}','{7}','{8}')", xsNumber, so.OrdersDate,
                                         so.OdersType.Equals("包装生产订单") ? "正常订单" : so.OdersType, so.MakeCollectionsMode, so.CustomerId, so.ContactId, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                         so.CustomerOrderNumber, so.KhddH);
                sqls.Add(sql);
                sql = string.Format(@"insert into TradingOrderDetail (OdersNumber ,ProductNumber,RowNumber ,Delivery ,SN,CustomerMaterialNumber,MaterialName,Brand 
,Quantity ,NonDeliveryQty ,DeliveryQty ,UnitPrice ,TotalPrice ,CreateTime ,Status   )
select '{0}',tit.ProductNumber,tit.RowNumber,CONVERT(varchar(100), CAST(tit.LeadTime as date ), 23),1,tit.CustomerProductNumber,vtdn .物料描述
,vtdn.品牌,tit.Qty,tit.Qty,0,vtdn .单价,vtdn .单价*tit.Qty,'{1}','未完成' 
from T_ImpSaleOder_Temp tit inner join V_FindLastNewPriceForTradingQuoteDetail vtdn on tit.ProductNumber=vtdn.原材料编号
where tit.userId='{2}' and  vtdn.客户名称='{3}' and tit.IsMateriNumber='是'", xsNumber, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), userId, so.CustomerName);
                sqls.Add(sql);
            }
            sql = string.Format(@"select COUNT (*) from T_ImpSaleOder_Temp where ismateriNumber ='否' and userid='{0}'", userId);
            if (!SqlHelper.GetScalar(sql).Equals("0"))
            {
                xsNumber = "XS" + DateTime.Now.AddSeconds(2).ToString("yyyyMMddHHmmss");
                sql      = string.Format(@"insert into SaleOder(OdersNumber,OrdersDate,OdersType,ProductType ,
MakeCollectionsMode,CustomerId ,ContactId ,OrderStatus ,CreateTime ,CustomerOrderNumber,KhddH )
values('{0}','{1}','{2}','加工','{3}','{4}','{5}','未完成','{6}','{7}','{8}')", xsNumber, so.OrdersDate,
                                         so.OdersType, so.MakeCollectionsMode, so.CustomerId, so.ContactId, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                                         so.CustomerOrderNumber, so.KhddH);
                sqls.Add(sql);
                sql = string.Format(@"
insert into MachineOderDetail (OdersNumber ,ProductNumber ,Version ,LeadTime ,RowNumber ,SN ,CustomerProductNumber ,Qty ,NonDeliveryQty 
,DeliveryQty ,UnitPrice ,SumPrice ,CreateTime ,Status )
select '{0}',tit.ProductNumber ,tit.Version ,CONVERT(varchar(100), CAST(tit.LeadTime as date ), 23) ,tit.RowNumber ,1,tit.CustomerProductNumber ,tit.Qty 
,tit.Qty ,0,vmr.单价未税,tit.Qty *vmr.单价未税,'{1}','未完成' from T_ImpSaleOder_Temp tit
inner join  V_FindLastNewPriceForMachineQuoteDeatil vmr on tit.ProductNumber 
=vmr.产成品编号 and tit.Version =vmr.版本  where tit.UserId ='{2}' and vmr.客户名称='{3}' and tit.IsMateriNumber='否' ", xsNumber, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                                    , userId, so.CustomerName);
                sqls.Add(sql);
            }
            sql = string.Format(@"delete SaleOder where OdersNumber not in (
select distinct OdersNumber  from MachineOderDetail
union all 
select  distinct OdersNumber  from TradingOrderDetail)");
            sqls.Add(sql);
            string errorTwo  = string.Empty;
            bool   resultTwo = SqlHelper.BatchExecuteSql(sqls, ref errorTwo);

            if (result && resultTwo)
            {
                return(true);
            }
            else
            {
                error += "<br/>" + errorTwo;
                return(false);
            }
        }
예제 #16
0
 /// <summary>
 /// 编辑原材料种类
 /// </summary>
 /// <param name="user"></param>
 /// <param name="error"></param>
 /// <returns></returns>
 public static bool EditMarerialKind(MarerialKind mareialkind, string kind, ref string error)
 {
     sql = string.Format(@" update MarerialKind set Kind='{0}' where Kind='{1}' ", mareialkind.Kind, kind);
     return(SqlHelper.ExecuteSql(sql, ref error));
 }
예제 #17
0
        private static bool AddSaleOrder(DataRow dr, SaleOder so, string userId, ref string error)
        {
            //要求交期、行号、客户产成品编号、版本、数量、是否是原材料
            string leadTime = "";
            string sql      = "";
            // string materialNumber = "";
            string version = dr["版本"].ToString() == "" ? "WU" : dr["版本"].ToString().ToUpper();
            string customerProductNumber = dr["客户产成品编号"].ToString();
            string productNumber         = "";

            try
            {
                leadTime = Convert.ToDateTime(dr["要求交期"]).ToString("yyyy-MM-dd");
            }
            catch (Exception ex)
            {
                error = string.Format("要求交期:{0},不是正规的日期格式‘yyyy-MM-dd’", dr["要求交期"]);
                return(false);
            }
            if (dr["是否是原材料"].ToString().Equals("是"))
            {
                sql           = string.Format(@" select 产成品编号 from
V_TradingQuoteDetailReport_New where 客户物料编号='{0}' and 客户名称='{1}'", customerProductNumber, so.CustomerName);
                productNumber = SqlHelper.GetScalar(sql);
                if (string.IsNullOrEmpty(productNumber))
                {
                    error = string.Format(" 系统不存在该客户物料编号:{0} 的报价信息,客户{1}", customerProductNumber, so.CustomerName);
                    return(false);
                }
                sql           = string.Format(@"
select MaterialNumber from MaterialCustomerProperty 
where CustomerMaterialNumber='{0}' and CustomerId='{1}'", customerProductNumber, so.CustomerId);
                productNumber = SqlHelper.GetScalar(sql);
                if (string.IsNullOrEmpty(productNumber))
                {
                    error = string.Format(" 系统不存在该客户物料编号:{0} 的原材料编号,客户{1}", customerProductNumber, so.CustomerName);
                    return(false);
                }
            }
            else
            {
                if (string.IsNullOrEmpty(version))
                {
                    version = SellManager.GetMostNewVersion(customerProductNumber);
                }



                sql = string.Format(@"select 产成品编号 from V_FindLastNewPriceForMachineQuoteDeatil 
where 客户产成品编号='{0}' and 版本='{1}' and 客户名称='{2}'",
                                    customerProductNumber, version, so.CustomerName);
                productNumber = SqlHelper.GetScalar(sql);
                if (string.IsNullOrEmpty(productNumber))
                {
                    error = string.Format("系统不存在该客户产成品编号:{0},版本:{1}的报价信息,客户{2}", customerProductNumber, version, so.CustomerName);
                    return(false);
                }

                sql           = string.Format(@"
select ProductNumber from  ProductCustomerProperty 
 where CustomerProductNumber='{0}' and Version='{1}' and CustomerId='{2}'", customerProductNumber, version, so.CustomerId);
                productNumber = SqlHelper.GetScalar(sql);
                if (string.IsNullOrEmpty(productNumber))
                {
                    error = string.Format("系统不存在该客户产成品编号:{0},版本:{1}的产成品编号,客户{2}", customerProductNumber, version, so.CustomerName);
                    return(false);
                }

                if (!ProductManager.HasBOM(productNumber, version))
                {
                    error = string.Format("该产成品编号和版本找不到BOM信息,请先录入BOM!客户产成品编号:{0},产成品编号:{1},版本:{2}", customerProductNumber, productNumber, version);
                    return(false);
                }
            }


            sql = string.Format(" select count(*) from  T_ImpSaleOder_Temp where userId='{0}' and RowNumber='{1}'", userId, dr["行号"]);
            if (!SqlHelper.GetScalar(sql).Equals("0"))
            {
                error = string.Format("已存在相同行号:{0}", dr["行号"]);
                return(false);
            }
            //            if (dr["是否是原材料"].ToString().Equals("是"))
            //            {
            //                sql = string.Format(@" select count(*) from T_ImpSaleOder_Temp where ProductNumber='{0}' and LeadTime='{1}'
            //  and  IsMateriNumber='是'", productNumber, leadTime);
            //                if (!SqlHelper.GetScalar(sql).Equals("0"))
            //                {
            //                    error = string.Format("已存在相同交期的贸易销售订单明细!重复行: 客户物料号{0},交期{1}", customerProductNumber, leadTime);
            //                    return false;
            //                }
            //            }

            sql = string.Format(@" insert into T_ImpSaleOder_Temp (ProductNumber,version,
CustomerProductNumber,RowNumber,LeadTime,Qty,IsMateriNumber,UserId)
values('{0}','{1}','{2}','{3}','{4}',{5},'{6}','{7}')", productNumber, version, customerProductNumber, dr["行号"], leadTime
                                , dr["数量"], dr["是否是原材料"], userId);
            return(SqlHelper.ExecuteSql(sql, ref error));
        }
예제 #18
0
        public static bool AddQuoteInfoMachine(DataRow dr, string quoteNumber, ref string error)
        {
            string version = dr["版本"].ToString().ToUpper();

            if (string.IsNullOrEmpty(version))
            {
                version = "WU";
            }
            if (version.Equals("OO"))
            {
                version = "00";
            }

            string sql = string.Format(@" select ProductNumber   from ProductCustomerProperty where CustomerProductNumber ='{0}' and version='{1}'"
                                       , dr["图纸号"], version);
            string productNumber = SqlHelper.GetScalar(sql);

            if (string.IsNullOrEmpty(productNumber))
            {
                error = string.Format("系统不存在该图纸号,请先录入该图纸号:{0},版本{1}", dr["图纸号"], version);
                return(false);
            }
            string materiNumber = string.Empty;

            if (dr["是否是原材料"].ToString().Equals("是"))
            {
                sql          = string.Format(@"select MaterialNumber from MaterialCustomerProperty where CustomerMaterialNumber='{0}'", dr["客户物料号"]);
                materiNumber = SqlHelper.GetScalar(sql);
                if (string.IsNullOrEmpty(materiNumber))
                {
                    error = string.Format("系统不存该客户物料号:{0}", dr["客户物料号"]);
                    return(false);
                }
            }


            List <string> sqls = new List <string>();

            //S#	阶层	图纸号	BAC物料号	客户物料号	版本
            //物料描述	BOM用量	库存数量(理论值)	原材料单价(未税)
            //原材料采购单价	工时费	利润(未税)	管销研费用(未税)
            //损耗(未税)	单价(未税)	固定提前期	备注	是否第一级	是否是原材料

            //            sql = string.Format(@"
            //select  COUNT(*) from MachineQuoteDetail where QuoteNumber='{0}' and CustomerProductNumber='{1}'
            //", quoteNumber, dr["图纸号"]);
            //            if (!SqlHelper.GetScalar(sql).Equals("0"))
            //            {
            //                sql = string.Format(@"
            //delete MachineQuoteDetail where QuoteNumber='{0}' and CustomerProductNumber='{1}' ", quoteNumber, dr["图纸号"]);
            //                sqls.Add(sql);
            //            }


            sql = string.Format(@"insert into MachineQuoteDetail (QuoteNumber ,
SS,Hierarchy,CustomerProductNumber,BACNumber,CustomerMaterialNumber,
Version,Description ,BOMAmount 
,MaterialPrcie,TimeCharge,Profit,ManagementPrcie
,LossPrcie,UnitPrice,FixedLeadTime,Remark ,ProductType,IsOne,IsMaril,ProductNumber,MaterialNumber)
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},{9},{10},{11},{12},{13},{14},'{15}','{16}','{17}','{18}','{19}','{20}','{21}')"
                                , quoteNumber, dr["S#"], dr["阶层"], dr["图纸号"], dr["BAC物料号"], dr["客户物料号"], version,
                                dr["物料描述"], dr["BOM用量"],
                                SrConvert(dr["原材料单价(未税)"]), SrConvert(dr["工时费"]), SrConvert(dr["利润(未税)"]),
                                SrConvert(dr["管销研费用(未税)"]),
                                SrConvert(dr["损耗(未税)"]), dr["单价(未税)"], dr["固定提前期"], dr["备注"], "", dr["是否第一级"], dr["是否是原材料"], productNumber, materiNumber);
            sqls.Add(sql);
            //            if (dr["是否是原材料"].ToString().Equals("否"))
            //            {
            //                string productNumber = dt.Rows[0]["ProductNumber"].ToString();
            //                string version = dt.Rows[0]["Version"].ToString();
            //                sql = string.Format(@"
            // update Product set SalesQuotation={2} where ProductNumber ='{0}' and Version ='{1}'", productNumber, version, dr["单价(未税)"]);
            //                sqls.Add(sql);
            //            }
            return(SqlHelper.ExecuteSql(sql, ref error));
        }