using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using CY.Infrastructure.Common;
|
namespace CY.BLL.Inquiry
|
{
|
/// <summary>
|
/// 询价公共帮助类
|
/// </summary>
|
public static class InquiryHelpBLL
|
{
|
|
#region 计算纸张单价
|
/// <summary>
|
/// 计算纸张单价
|
/// </summary>
|
/// <param name="sizename">印刷尺寸</param>
|
/// <param name="weight">克重</param>
|
/// <param name="price">砘价</param>
|
/// <returns></returns>
|
public static decimal GetPaperPriceBySingle(string sizename, int weight, decimal price)
|
{
|
|
double widht = 0;
|
|
double height = 0;
|
|
double area = 0;
|
|
double _price = price.ToDouble2().Value / 1000;
|
|
double _weight = weight.ToDouble2().Value / 1000;
|
|
decimal paperprice = 0;
|
|
if (sizename.Contains("大") || sizename.Contains("条"))
|
{
|
widht = 0.889;
|
height = 1.194;
|
}
|
else if (sizename.Contains("正") || sizename.Contains("小"))
|
{
|
widht = 0.787;
|
height = 1.092;
|
}
|
|
area = widht * height;
|
|
paperprice = (area * _weight * _price).ToDecimal2().Value;
|
|
return paperprice;
|
}
|
#endregion
|
|
#region 计算印工费
|
/// <summary>
|
/// 计算印次(此方法针对2开机和4开机)
|
/// </summary>
|
/// <param name="driveNumber">开数</param>
|
/// <param name="areaNumber">面数</param>
|
/// <param name="printcount">印刷数量</param>
|
/// <param name="printTypeId">类别名称</param>
|
/// <param name="IsLeMouth">是否勒口</param>
|
/// <param name="equipmentId">返回使用的机器ID</param>
|
/// <returns>equipmentId</returns>
|
public static int GetImpressionCount(string sizeName,int driveNumber, string areaNumber, int printcount, int printTypeId, bool isLeMouth, ref int equipmentId)
|
{
|
//2开机印次
|
int Impression2 = 0;
|
//4开机印次
|
int Impression4 = 0;
|
//实际印次
|
int Impression = 0;
|
|
if (printTypeId == 6) //书刊
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2 * 2).ToDecimal2().Value.JRoundInt();
|
Impression4 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 4 * 2).ToDecimal2().Value.JRoundInt();
|
}
|
else if (printTypeId == 25 || printTypeId == 23 || printTypeId == 21 || printTypeId == 22)
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
Impression4 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 4).ToDecimal2().Value.JRoundInt();
|
}
|
else
|
{
|
if (areaNumber == "单面")
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
Impression4 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 4).ToDecimal2().Value.JRoundInt();
|
}
|
else if (areaNumber == "双面")
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2 * 2).ToDecimal2().Value.JRoundInt();
|
Impression4 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 4 * 2).ToDecimal2().Value.JRoundInt();
|
}
|
}
|
|
#region 有勒口的印次增加50%
|
|
if (isLeMouth)
|
{
|
Impression4 = (Impression4.ToDouble2().Value + Impression4.ToDouble2().Value / 2).ToDecimal2().Value.JRoundInt();
|
Impression2 = (Impression2.ToDouble2().Value + Impression2.ToDouble2().Value / 2).ToDecimal2().Value.JRoundInt();
|
}
|
|
#endregion
|
if (driveNumber == 1)
|
{
|
if (areaNumber == "双面")
|
{
|
Impression = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
}
|
else
|
{
|
Impression = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value)).ToDecimal2().Value.JRoundInt();
|
}
|
equipmentId = 1;//二开机
|
}
|
else if (driveNumber == 3)
|
{
|
if (areaNumber == "双面")
|
{
|
Impression = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value)*2).ToDecimal2().Value.JRoundInt();
|
}
|
else
|
{
|
Impression = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value)).ToDecimal2().Value.JRoundInt();
|
}
|
equipmentId = 1;//二开机
|
}
|
else if (driveNumber == 6 && sizeName.Contains("大") && areaNumber == "双面")
|
{
|
Impression = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
equipmentId = 1;//二开机
|
}
|
else if (driveNumber == 4 && areaNumber == "双面")
|
{
|
//Impression = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
Impression = printcount;
|
equipmentId = 1;//二开机
|
}
|
else if (driveNumber <= 3)
|
{
|
Impression = Impression2;
|
equipmentId = 1;//二开机
|
}
|
else
|
{
|
if (Impression2 <= 5000)
|
{
|
Impression = Impression4;
|
equipmentId = 2;//四开机
|
}
|
else
|
{
|
Impression = Impression2;
|
equipmentId = 1;//二开机
|
}
|
}
|
|
if (Impression < 1000)
|
{
|
Impression = 1000;
|
}
|
|
return Impression;
|
}
|
|
/// <summary>
|
/// 计算印次(此方法针对2开和8开单色机)
|
/// </summary>
|
/// <param name="driveNumber"></param>
|
/// <param name="areaNumber"></param>
|
/// <param name="printcount"></param>
|
/// <param name="printTypeId"></param>
|
/// <returns></returns>
|
public static int GetImpressionCount2(int driveNumber, string areaNumber, int printcount, int printTypeId, ref int equipmentId)
|
{
|
//2开机印次
|
int Impression2 = 0;
|
//8开机印次
|
int Impression8 = 0;
|
//实际印次
|
int Impression = 0;
|
|
if (areaNumber == "单面")
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
Impression8 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 8).ToDecimal2().Value.JRoundInt();
|
}
|
else if (areaNumber == "双面")
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2 * 2).ToDecimal2().Value.JRoundInt();
|
Impression8 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 8 * 2).ToDecimal2().Value.JRoundInt();
|
}
|
|
if (Impression8 < 5000)
|
{
|
Impression = Impression8;
|
equipmentId = 5;//8开单色机
|
}
|
else
|
{
|
Impression = Impression2;
|
equipmentId = 4;//2开单色机
|
}
|
|
if (Impression < 1000)
|
{
|
Impression = 1000;
|
}
|
return Impression;
|
}
|
|
/// <summary>
|
/// 计算印次(此方法针对2开和4开单色机)
|
/// </summary>
|
/// <param name="driveNumber"></param>
|
/// <param name="areaNumber"></param>
|
/// <param name="printcount"></param>
|
/// <param name="printTypeId"></param>
|
/// <param name="equipmentId"></param>
|
/// <returns></returns>
|
public static int GetImpressionCount3(int driveNumber, string areaNumber, int printcount, int printTypeId, ref int equipmentId)
|
{
|
//2开机印次
|
int Impression2 = 0;
|
//4开机印次
|
int Impression4 = 0;
|
//实际印次
|
int Impression = 0;
|
|
if (areaNumber == "单面")
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
Impression4 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 4).ToDecimal2().Value.JRoundInt();
|
}
|
else if (areaNumber == "双面")
|
{
|
Impression2 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2 * 2).ToDecimal2().Value.JRoundInt();
|
Impression4 = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 4 * 2).ToDecimal2().Value.JRoundInt();
|
}
|
|
if (Impression2 < 5000)
|
{
|
Impression = Impression4;
|
equipmentId = 6;//8开单色机
|
}
|
else
|
{
|
Impression = Impression2;
|
equipmentId = 4;//2开单色机
|
}
|
|
if (Impression < 1000)
|
{
|
Impression = 1000;
|
}
|
return Impression;
|
}
|
|
/// <summary>
|
/// /// 计算印次(此方法针对2开双面机、双色机)
|
/// </summary>
|
/// <param name="?"></param>
|
/// <returns></returns>
|
public static int GetImpressionCount4(int driveNumber, int printcount, int printTypeId, ref int equipmentId)
|
{
|
//实际印次
|
int Impression = 0;
|
Impression = ((printcount.ToDouble2().Value / driveNumber.ToDouble2().Value) * 2).ToDecimal2().Value.JRoundInt();
|
equipmentId = 3; //2开双面机、双色机
|
if (Impression < 1000)
|
{
|
Impression = 1000;
|
}
|
return Impression;
|
}
|
#endregion
|
}
|
}
|