lvzb
4 years ago
25 changed files with 680 additions and 55 deletions
@ -0,0 +1,39 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.ComponentModel.DataAnnotations; |
|||
using System.ComponentModel.DataAnnotations.Schema; |
|||
namespace CK.SCP.Models.ScpEntity |
|||
{ |
|||
public partial class V_ARRIVE_PO_REPORT |
|||
{ |
|||
[Key ] |
|||
[Column(Order = 1)] |
|||
[StringLength(50)] |
|||
public string PoBillNum { get; set; } |
|||
[Key] |
|||
[Column(Order = 2)] |
|||
public int PoLine { get; set; } |
|||
[Key] |
|||
[Column(Order = 3)] |
|||
[StringLength(50)] |
|||
public string PartCode { get; set; } |
|||
[StringLength(50)] |
|||
public string PartDesc1 { get; set; } |
|||
[StringLength(50)] |
|||
public string VendName { get; set; } |
|||
public decimal PlanQty { get; set; } |
|||
public DateTime BeginTime { get; set; } |
|||
public decimal CanQty { get; set; } |
|||
public decimal AskQty { get; set; } |
|||
public decimal AsnQty { get; set; } |
|||
public decimal OnRoadQty { get; set; } |
|||
public decimal ArriveQty { get; set; } |
|||
[Key] |
|||
[Column(Order = 4)] |
|||
public DateTime ShipTime { get; set; } |
|||
[NotMapped] |
|||
public DateTime? BeginTimeEnd { get; set; } |
|||
[NotMapped] |
|||
public DateTime? ShipTimeEnd { get; set; } |
|||
} |
|||
} |
@ -0,0 +1,95 @@ |
|||
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SCP_ARRIVE_REPORT.aspx.cs" Inherits="SCP.Views.Report.SCP_ARRIVE_REPORT" %> |
|||
|
|||
<!DOCTYPE html> |
|||
|
|||
<html xmlns="http://www.w3.org/1999/xhtml"> |
|||
<head runat="server"> |
|||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
|||
<title></title> |
|||
</head> |
|||
<body> |
|||
<form id="form1" runat="server"> |
|||
<f:PageManager runat="server" AutoSizePanelID="Panel1" /> |
|||
<f:Panel ID="Panel1" runat="server" Title="" Layout="VBox" BoxConfigAlign="Stretch" BoxConfigPosition="Start"> |
|||
<Items> |
|||
<f:Form runat="server"> |
|||
<Toolbars> |
|||
<f:Toolbar ID="Toolbar1" runat="server"> |
|||
<Items> |
|||
<f:ToolbarSeparator ID="ToolbarSeparator1" runat="server"> |
|||
</f:ToolbarSeparator> |
|||
<f:Button ID="btnRefresh" runat="server" Text="刷新" EnablePostBack="True" Icon="Reload" OnClientClick="location.reload();"> |
|||
</f:Button> |
|||
<f:Button ID="btnOutput" runat="server" Text="导出" OnClick="btnOutput_Click" Icon="PageExcel"> |
|||
</f:Button> |
|||
</Items> |
|||
</f:Toolbar> |
|||
</Toolbars> |
|||
</f:Form> |
|||
|
|||
<f:Form BodyPadding="10px" Height="100px" ID="extForm1" |
|||
runat="server" Title="" ShowHeader="false"> |
|||
<Rows> |
|||
<f:FormRow ColumnWidths="33% 33% 33%" ID="FormRow_1" runat="server"> |
|||
<Items> |
|||
<f:TextBox runat="server" Label="订单号" ID="TextPoBillNum"> |
|||
</f:TextBox> |
|||
<f:TextBox runat="server" Label="零件号编号" ID="TextPartCode"> |
|||
</f:TextBox> |
|||
<f:TextBox runat="server" Label="零件号名称" ID="TextPartDesc1"> |
|||
</f:TextBox> |
|||
<f:TextBox runat="server" Label="厂家名称" ID="TextVendName"> |
|||
</f:TextBox> |
|||
</Items> |
|||
</f:FormRow> |
|||
<f:FormRow ColumnWidths="33% 33% 33%" ID="FormRow2" runat="server"> |
|||
<Items> |
|||
<f:DatePicker runat="server" Label="订单需求日期" ID="DateBeginTimeB"></f:DatePicker> |
|||
<f:DatePicker runat="server" Label="至" ID="DateBeginTimeE"></f:DatePicker> |
|||
<f:DatePicker runat="server" Label="实际收货日期" ID="DateShipTimeB"></f:DatePicker> |
|||
<f:DatePicker runat="server" Label="至" ID="DateShipTimeE"></f:DatePicker> |
|||
</Items> |
|||
</f:FormRow> |
|||
<f:FormRow ColumnWidths="25% 25% " ID="FormRow_3" runat="server"> |
|||
<Items> |
|||
<f:Button runat="server" ID="btnQuery" Text="查询" OnClick="btnSearch_Click"></f:Button> |
|||
</Items> |
|||
</f:FormRow> |
|||
</Rows> |
|||
</f:Form> |
|||
<f:Grid ID="GridView" ShowBorder="true" ShowHeader="false" PageSize="100" BoxFlex="1" CssClass="maingrid" |
|||
runat="server" DataKeyNames="PoBillNum,PartCode,PartDesc1,PoLine,VendName,PlanQty,BeginTime,CanQty,AskQty,AsnQty,OnRoadQty,ArriveQty,ShipTime" |
|||
IsDatabasePaging="true" AllowPaging="true" SortField="PoBillNum" SortDirection="DESC" OnPageIndexChange="Grid_V_ARRIVE_PO_REPORT_PageIndexChange" |
|||
AutoScroll="True" EnableRowDoubleClickEvent="True" OnSort="GridView_Sort" AllowSorting="true"> |
|||
<PageItems> |
|||
<f:ToolbarSeparator ID="ToolbarSeparator2" runat="server"> |
|||
</f:ToolbarSeparator> |
|||
<f:ToolbarText ID="ToolbarText1" runat="server" Text="每页记录数:"> |
|||
</f:ToolbarText> |
|||
<f:DropDownList ID="ddlGridPageSize" Width="80px" AutoPostBack="true" OnSelectedIndexChanged="ddlGridPageSize_SelectedIndexChanged" |
|||
runat="server"> |
|||
<f:ListItem Text="100" Value="100" /> |
|||
<f:ListItem Text="200" Value="200" /> |
|||
</f:DropDownList> |
|||
</PageItems> |
|||
<Columns> |
|||
<f:BoundField runat="server" Width="100px" SortField="PoBillNum" HeaderText="订单号" ColumnID="" DataField="PoBillNum" /> |
|||
<f:BoundField runat="server" Width="100px" SortField="PartCode" HeaderText="零件编号" ColumnID="" DataField="PartCode" /> |
|||
<f:BoundField runat="server" Width="100px" SortField="PartDesc1" HeaderText="零件名称" ColumnID="" DataField="PartDesc1" /> |
|||
<f:BoundField runat="server" Width="80px" SortField="PoLine" HeaderText="订单行号" ColumnID="" DataField="PoLine" /> |
|||
<f:BoundField runat="server" Width="90px" SortField="VendName" HeaderText="厂家名称" ColumnID="" DataField="VendName" /> |
|||
<f:BoundField runat="server" Width="80px" HeaderText="订单需求数量" DataFormatString="{0:F0}" ColumnID="" DataField="PlanQty" /> |
|||
<f:BoundField runat="server" Width="100px" SortField="BeginTime" DataField="BeginTime" DataFormatString="{0:yyyy-MM-dd}" HeaderText="订单需求日期" /> |
|||
<f:BoundField runat="server" Width="100px" HeaderText="订单未完成数量" DataFormatString="{0:F0}" ColumnID="" DataField="CanQty" /> |
|||
<f:BoundField runat="server" Width="80px" HeaderText="要货数量" DataFormatString="{0:F0}" ColumnID="" DataField="AskQty" /> |
|||
<f:BoundField runat="server" Width="80px" HeaderText="发货数量" DataFormatString="{0:F0}" ColumnID="" DataField="AsnQty" /> |
|||
<f:BoundField runat="server" Width="80px" HeaderText="在途数量" DataFormatString="{0:F0}" ColumnID="" DataField="OnRoadQty" /> |
|||
<f:BoundField runat="server" Width="80px" HeaderText="收货数量" DataFormatString="{0:F0}" ColumnID="" DataField="ArriveQty" /> |
|||
<f:BoundField runat="server" Width="90px" SortField="ShipTime" DataField="ShipTime" DataFormatString="{0:yyyy-MM-dd}" HeaderText="实际收货日期" /> |
|||
</Columns> |
|||
</f:Grid> |
|||
</Items> |
|||
</f:Panel> |
|||
</form> |
|||
</body> |
|||
</html> |
@ -0,0 +1,161 @@ |
|||
using CK.SCP.Controller; |
|||
using CK.SCP.Models.ScpEntity; |
|||
using FineUI; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Linq; |
|||
using System.Web; |
|||
using System.Web.UI; |
|||
using System.Web.UI.WebControls; |
|||
|
|||
namespace SCP.Views.Report |
|||
{ |
|||
public partial class SCP_ARRIVE_REPORT : PageBase |
|||
{ |
|||
protected void Page_Load(object sender, EventArgs e) |
|||
{ |
|||
if (!IsPostBack) |
|||
{ |
|||
LoadData(); |
|||
} |
|||
} |
|||
public void LoadData() |
|||
{ |
|||
BindData(); |
|||
} |
|||
public void BindData() |
|||
{ |
|||
SearchV_TB_INCOMPLETE_ASKData((result) => { |
|||
GridView.RecordCount = result.Count(); |
|||
var list = SortAndPage<V_ARRIVE_PO_REPORT>(result, GridView); |
|||
GridView.DataSource = list; |
|||
GridView.DataBind(); |
|||
}); |
|||
} |
|||
public void SearchV_TB_INCOMPLETE_ASKData(Action<IQueryable<V_ARRIVE_PO_REPORT>> p_action) |
|||
{ |
|||
V_ARRIVE_PO_REPORT _entity = new V_ARRIVE_PO_REPORT(); |
|||
if (TextPoBillNum.Text != null) |
|||
{ |
|||
_entity.PoBillNum = TextPoBillNum.Text; |
|||
} |
|||
if (TextPartCode.Text != null) |
|||
{ |
|||
_entity.PartCode = TextPartCode.Text; |
|||
} |
|||
if (TextPartDesc1.Text != null) |
|||
{ |
|||
_entity.PartDesc1 = TextPartDesc1.Text; |
|||
} |
|||
if (TextVendName.Text != null) |
|||
{ |
|||
_entity.VendName = TextVendName.Text; |
|||
} |
|||
if (DateBeginTimeB.SelectedDate != null) |
|||
{ |
|||
_entity.BeginTime = (DateTime)DateBeginTimeB.SelectedDate; |
|||
} |
|||
if (DateBeginTimeE.SelectedDate != null) |
|||
{ |
|||
_entity.BeginTimeEnd = (DateTime)DateBeginTimeE.SelectedDate; |
|||
} |
|||
if (DateShipTimeB.SelectedDate != null) |
|||
{ |
|||
_entity.ShipTime = (DateTime)DateShipTimeB.SelectedDate; |
|||
} |
|||
if (DateShipTimeE.SelectedDate != null) |
|||
{ |
|||
_entity.ShipTimeEnd = (DateTime)DateShipTimeE.SelectedDate; |
|||
} |
|||
SCP_REPORT_CONTROLLER.Get_V_ARRIVE_PO_REPORT(_entity, (_ret) => |
|||
{ |
|||
if (_ret.State == ReturnStatus.Succeed) |
|||
{ |
|||
p_action(_ret.Result); |
|||
} |
|||
}); |
|||
} |
|||
protected void ddlGridPageSize_SelectedIndexChanged(object sender, EventArgs e) |
|||
{ |
|||
GridView.PageSize = Convert.ToInt32(ddlGridPageSize.SelectedValue); |
|||
BindData(); |
|||
} |
|||
protected void Grid_V_ARRIVE_PO_REPORT_PageIndexChange(object sender, GridPageEventArgs e) |
|||
{ |
|||
GridView.PageSize = Convert.ToInt32(ddlGridPageSize.SelectedValue); |
|||
BindData(); |
|||
} |
|||
protected void btnSearch_Click(object sender, EventArgs e) |
|||
{ |
|||
BindData(); |
|||
} |
|||
protected void GridView_Sort(object sender, GridSortEventArgs e) |
|||
{ |
|||
GridView.SortDirection = e.SortDirection; |
|||
GridView.SortField = e.SortField; |
|||
BindData(); |
|||
} |
|||
protected void btnOutput_Click(object sender, EventArgs e) |
|||
{ |
|||
var _entity = new V_ARRIVE_PO_REPORT(); |
|||
if (TextPoBillNum.Text != null) |
|||
{ |
|||
_entity.PoBillNum = TextPoBillNum.Text; |
|||
} |
|||
if (TextPartCode.Text != null) |
|||
{ |
|||
_entity.PartCode = TextPartCode.Text; |
|||
} |
|||
if (TextPartDesc1.Text != null) |
|||
{ |
|||
_entity.PartDesc1 = TextPartDesc1.Text; |
|||
} |
|||
if (TextVendName.Text != null) |
|||
{ |
|||
_entity.VendName = TextVendName.Text; |
|||
} |
|||
if (DateBeginTimeB.SelectedDate != null) |
|||
{ |
|||
_entity.BeginTime = (DateTime)DateBeginTimeB.SelectedDate; |
|||
} |
|||
if (DateBeginTimeE.SelectedDate != null) |
|||
{ |
|||
_entity.BeginTimeEnd = (DateTime)DateBeginTimeE.SelectedDate; |
|||
} |
|||
if (DateShipTimeB.SelectedDate != null) |
|||
{ |
|||
_entity.ShipTime = (DateTime)DateShipTimeB.SelectedDate; |
|||
} |
|||
if (DateShipTimeE.SelectedDate != null) |
|||
{ |
|||
_entity.ShipTimeEnd = (DateTime)DateShipTimeE.SelectedDate; |
|||
} |
|||
SCP_REPORT_CONTROLLER.Get_V_ARRIVE_PO_REPORT(_entity, (ret) => |
|||
{ |
|||
if (ret.State == ReturnStatus.Succeed) |
|||
{ |
|||
Dictionary<string, string> cellheader = new Dictionary<string, string> |
|||
{ |
|||
{ "PoBillNum", "订单号" }, |
|||
{ "PartCode", "零件编号" }, |
|||
{ "PartDesc1", "零件名称" }, |
|||
{ "PoLine", "订单行号" }, |
|||
{ "VendName", "厂家名称" }, |
|||
{ "PlanQty", "订单需求数量" }, |
|||
{ "BeginTime", "订单需求日期" }, |
|||
{ "CanQty", "订单未完成数量" }, |
|||
{ "AskQty", "要货数量" }, |
|||
{ "AsnQty", "发货数量" }, |
|||
{ "OnRoadQty", "在途数量" }, |
|||
{ "ArriveQty", "收货数量" }, |
|||
{ "ShipTime", "实际收货日期" }, |
|||
|
|||
}; |
|||
|
|||
string url = EntityListToExcel2003(cellheader, ret.Result.ToList(), "未完成订单明细"); |
|||
} |
|||
}); |
|||
|
|||
} |
|||
} |
|||
} |
@ -0,0 +1,224 @@ |
|||
//------------------------------------------------------------------------------
|
|||
// <自动生成>
|
|||
// 此代码由工具生成。
|
|||
//
|
|||
// 对此文件的更改可能导致不正确的行为,如果
|
|||
// 重新生成代码,则所做更改将丢失。
|
|||
// </自动生成>
|
|||
//------------------------------------------------------------------------------
|
|||
|
|||
namespace SCP.Views.Report |
|||
{ |
|||
|
|||
|
|||
public partial class SCP_ARRIVE_REPORT |
|||
{ |
|||
|
|||
/// <summary>
|
|||
/// form1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::System.Web.UI.HtmlControls.HtmlForm form1; |
|||
|
|||
/// <summary>
|
|||
/// Panel1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.Panel Panel1; |
|||
|
|||
/// <summary>
|
|||
/// Toolbar1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.Toolbar Toolbar1; |
|||
|
|||
/// <summary>
|
|||
/// ToolbarSeparator1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.ToolbarSeparator ToolbarSeparator1; |
|||
|
|||
/// <summary>
|
|||
/// btnRefresh 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.Button btnRefresh; |
|||
|
|||
/// <summary>
|
|||
/// btnOutput 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.Button btnOutput; |
|||
|
|||
/// <summary>
|
|||
/// extForm1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.Form extForm1; |
|||
|
|||
/// <summary>
|
|||
/// FormRow_1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.FormRow FormRow_1; |
|||
|
|||
/// <summary>
|
|||
/// TextPoBillNum 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.TextBox TextPoBillNum; |
|||
|
|||
/// <summary>
|
|||
/// TextPartCode 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.TextBox TextPartCode; |
|||
|
|||
/// <summary>
|
|||
/// TextPartDesc1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.TextBox TextPartDesc1; |
|||
|
|||
/// <summary>
|
|||
/// TextVendName 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.TextBox TextVendName; |
|||
|
|||
/// <summary>
|
|||
/// FormRow2 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.FormRow FormRow2; |
|||
|
|||
/// <summary>
|
|||
/// DateBeginTimeB 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.DatePicker DateBeginTimeB; |
|||
|
|||
/// <summary>
|
|||
/// DateBeginTimeE 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.DatePicker DateBeginTimeE; |
|||
|
|||
/// <summary>
|
|||
/// DateShipTimeB 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.DatePicker DateShipTimeB; |
|||
|
|||
/// <summary>
|
|||
/// DateShipTimeE 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.DatePicker DateShipTimeE; |
|||
|
|||
/// <summary>
|
|||
/// FormRow_3 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.FormRow FormRow_3; |
|||
|
|||
/// <summary>
|
|||
/// btnQuery 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.Button btnQuery; |
|||
|
|||
/// <summary>
|
|||
/// GridView 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.Grid GridView; |
|||
|
|||
/// <summary>
|
|||
/// ToolbarSeparator2 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.ToolbarSeparator ToolbarSeparator2; |
|||
|
|||
/// <summary>
|
|||
/// ToolbarText1 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.ToolbarText ToolbarText1; |
|||
|
|||
/// <summary>
|
|||
/// ddlGridPageSize 控件。
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// 自动生成的字段。
|
|||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
|||
/// </remarks>
|
|||
protected global::FineUI.DropDownList ddlGridPageSize; |
|||
} |
|||
} |
Loading…
Reference in new issue