using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CY.Infrastructure.Common;
namespace CY.BLL.Inquiry
{
///
/// 询价公共帮助类
///
public static class InquiryHelpBLL
{
#region 计算纸张单价
///
/// 计算纸张单价
///
/// 印刷尺寸
/// 克重
/// 砘价
///
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 计算印工费
///
/// 计算印次(此方法针对2开机和4开机)
///
/// 开数
/// 面数
/// 印刷数量
/// 类别名称
/// 是否勒口
/// 返回使用的机器ID
/// equipmentId
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;
}
///
/// 计算印次(此方法针对2开和8开单色机)
///
///
///
///
///
///
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;
}
///
/// 计算印次(此方法针对2开和4开单色机)
///
///
///
///
///
///
///
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;
}
///
/// /// 计算印次(此方法针对2开双面机、双色机)
///
///
///
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
}
}