570 lines
24 KiB
C#
570 lines
24 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI.WebControls;
|
|
using Extensiones;
|
|
using System.Data;
|
|
using Microsoft.Reporting.WebForms;
|
|
|
|
public partial class CGame_AsignacionEmpaque2 : ClsPaginas
|
|
{
|
|
#region PROPIEDADES
|
|
|
|
private DataTable DtCant
|
|
{
|
|
get { return DtCant = (DataTable)ViewState["DtCant"]; }
|
|
set { ViewState["DtCant"] = value; }
|
|
}
|
|
|
|
private DataTable DtAsignado
|
|
{
|
|
get { return DtAsignado = (DataTable)ViewState["DtAsignado"]; }
|
|
set { ViewState["DtAsignado"] = value; }
|
|
}
|
|
|
|
private DataTable DtBins
|
|
{
|
|
get { return DtBins = (DataTable)ViewState["DtBins"]; }
|
|
set { ViewState["DtBins"] = value; }
|
|
}
|
|
|
|
private DataTable DtCajas
|
|
{
|
|
get { return DtCajas = (DataTable)ViewState["DtCajas"]; }
|
|
set { ViewState["DtCajas"] = value; }
|
|
}
|
|
|
|
private int CveProduccionResultado
|
|
{
|
|
get { return CveProduccionResultado = (int)ViewState["CveProduccionResultado"]; }
|
|
set { ViewState["CveProduccionResultado"] = value; }
|
|
}
|
|
private double Cantidad
|
|
{
|
|
get { return Cantidad = (double)ViewState["Cantidad"]; }
|
|
set { ViewState["Cantidad"] = value; }
|
|
}
|
|
private int CvePS
|
|
{
|
|
get { return CvePS = (int)ViewState["CvePS"]; }
|
|
set { ViewState["CvePS"] = value; }
|
|
}
|
|
private int Tipo
|
|
{
|
|
get { return Tipo = (int)ViewState["Tipo"]; }
|
|
set { ViewState["Tipo"] = value; }
|
|
}
|
|
private int FechaCorteNum
|
|
{
|
|
get { return FechaCorteNum = (int)ViewState["FechaCorteNum"]; }
|
|
set { ViewState["FechaCorteNum"] = value; }
|
|
}
|
|
|
|
#endregion
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
CreaDt();
|
|
CargaFiltros();
|
|
CargaOrdenProduccionDetalle(false);
|
|
CargaResultado();
|
|
}
|
|
}
|
|
|
|
#region CARGAS
|
|
|
|
protected void CreaDt()
|
|
{
|
|
DtCant = new DataTable();
|
|
DtCant.Columns.Add("CveOrdenProduccionDetalle");
|
|
DtCant.Columns.Add("Folio");
|
|
DtCant.Columns.Add("CantRest");
|
|
DtCant.Columns.Add("Cantidad");
|
|
DtCant.Columns.Add("FolioOP");
|
|
DtCant.Columns.Add("TipoProducto");
|
|
DtCant.Columns.Add("TipoMaduracion");
|
|
DtCant.Columns.Add("Tamaño");
|
|
DtCant.Columns.Add("FechaNum");
|
|
|
|
DtAsignado = new DataTable();
|
|
DtAsignado.Columns.Add("CveOrdenProduccionDetalle");
|
|
DtAsignado.Columns.Add("CveProduccionResultado");
|
|
DtAsignado.Columns.Add("CantidadAsignada");
|
|
DtAsignado.Columns.Add("CveOrdenProduccion");
|
|
DtAsignado.Columns.Add("FolioOP");
|
|
DtAsignado.Columns.Add("TipoProducto");
|
|
DtAsignado.Columns.Add("TipoMaduracion");
|
|
DtAsignado.Columns.Add("Tamaño");
|
|
DtAsignado.Columns.Add("Id");
|
|
}
|
|
|
|
protected void CargaFiltros()
|
|
{
|
|
ClsCGame ObjCGame = new ClsCGame();
|
|
int CveEmpresa = UsuarioActual.CveEmpresa;
|
|
|
|
if (ObjCGame.GetHuerta(CveEmpresa))
|
|
{
|
|
DdlHuerta.DataSource = ObjCGame.DtResultados;
|
|
DdlHuerta.DataBind();
|
|
}
|
|
if (ObjCGame.GetPS(CveEmpresa))
|
|
{
|
|
DdlFruto.DataSource = ObjCGame.DtResultados;
|
|
DdlFruto.DataBind();
|
|
}
|
|
if (ObjCGame.GetTipoMaduracion(-1, -1, -1, CveEmpresa))
|
|
{
|
|
DdlVariedad.DataSource = ObjCGame.DtResultados;
|
|
DdlVariedad.DataBind();
|
|
}
|
|
if (ObjCGame.GetTipoProducto(CveEmpresa))
|
|
{
|
|
DdlTipoProduccion.DataSource = ObjCGame.DtResultados;
|
|
DdlTipoProduccion.DataBind();
|
|
}
|
|
if (ObjCGame.GetTamaños(CveEmpresa))
|
|
{
|
|
DdlTamaño.DataSource = ObjCGame.DtResultados;
|
|
DdlTamaño.DataBind();
|
|
}
|
|
if (ObjCGame.GetCalidad(CveEmpresa))
|
|
{
|
|
DdlCalidad.DataSource = ObjCGame.DtResultados;
|
|
DdlCalidad.DataBind();
|
|
}
|
|
if (ObjCGame.GetTipoCaja(CveEmpresa))
|
|
{
|
|
DdlEtiqueta.DataSource = ObjCGame.DtResultados;
|
|
DdlEtiqueta.DataBind();
|
|
}
|
|
if (ObjCGame.GetTipoEmpaque(-1, -1, CveEmpresa))
|
|
{
|
|
DdlTipoEmpaque.DataSource = ObjCGame.DtResultados;
|
|
DdlTipoEmpaque.DataBind();
|
|
}
|
|
ObjCGame.Dispose();
|
|
}
|
|
|
|
protected void CargaResultado()
|
|
{
|
|
ClsCGame ObjCGame = new ClsCGame();
|
|
|
|
Double TotalCajas = 0, TotalBins = 0;
|
|
|
|
int CveHuerta = DdlHuerta.SelectedValue.ToEntero();
|
|
int CveFruto = DdlFruto.SelectedValue.ToEntero();
|
|
int CveTipoProduccion = DdlTipoProduccion.SelectedValue.ToEntero();
|
|
int CveVariedad = DdlVariedad.SelectedValue.ToEntero();
|
|
|
|
int CveTipoEmpaque = DdlTipoEmpaque.SelectedValue.ToEntero();
|
|
int CveTamaño = DdlTamaño.SelectedValue.ToEntero();
|
|
int CveCalidad = DdlCalidad.SelectedValue.ToEntero();
|
|
int CveEtiqueta = DdlEtiqueta.SelectedValue.ToEntero();
|
|
|
|
if (ObjCGame.GetProduccionResultado(-1, -1, -1, UsuarioActual.CveEmpresa, -1, CveHuerta, CveFruto, CveVariedad, CveTipoProduccion, CveTamaño, CveCalidad, CveEtiqueta, CveTipoEmpaque))
|
|
{
|
|
DtCajas = ObjCGame.DtResultados.FiltraParametros("CveOrdenProduccionDetalle IS NULL AND Tipo = 1");
|
|
GvCajas.DataSource = DtCajas;
|
|
TotalCajas = ObjCGame.DtResultados.FiltraParametros("CveOrdenProduccionDetalle IS NULL AND Tipo = 1").SUM("Cantidad");
|
|
|
|
DtBins = ObjCGame.DtResultados.FiltraParametros("CveOrdenProduccionDetalle IS NULL AND Tipo = 2");
|
|
GvBins.DataSource = DtBins;
|
|
TotalBins = ObjCGame.DtResultados.FiltraParametros("CveOrdenProduccionDetalle IS NULL AND Tipo = 2").SUM("Cantidad");
|
|
|
|
ObjCGame.Dispose();
|
|
}
|
|
GvCajas.DataBind();
|
|
GvBins.DataBind();
|
|
UpDatos.Update();
|
|
|
|
LblCajas.Text = TotalCajas.FormatoNumero(2);
|
|
LblBins.Text = TotalBins.FormatoNumero(2);
|
|
UpIndicadores.Update();
|
|
|
|
}
|
|
|
|
private void CargaOrdenProduccionDetalle(bool SoloFiltra, int CvePS = -1, int Tipo = -1, int CveProduccionResultado = -1, double Cantidad = 0, int FechaCorteNum=0)
|
|
{
|
|
if (SoloFiltra)
|
|
{
|
|
DdlOrdenProduccionDetalle.Items.Clear();
|
|
DdlOrdenProduccionDetalle.DataSource = DtCant.FiltraParametros($"CvePS = {CvePS} AND Tipo = {Tipo} AND CantRest > 0 AND FechaNum >= {FechaCorteNum} ");
|
|
DdlOrdenProduccionDetalle.Items.Insert(0, new ListItem("Seleccione", "-1"));
|
|
DdlOrdenProduccionDetalle.DataBind();
|
|
|
|
double CantidadAsignada = 0;
|
|
foreach (DataRow Dr in DtAsignado.FiltraParametros($"CveProduccionResultado = {CveProduccionResultado}").Rows)
|
|
{
|
|
CantidadAsignada += Dr["CantidadAsignada"].ToString().ToDouble();
|
|
}
|
|
if (Cantidad == CantidadAsignada) { DdlOrdenProduccionDetalle.Enabled = false; } else { DdlOrdenProduccionDetalle.Enabled = true; RVTxtCantidad.MaximumValue = (Cantidad - CantidadAsignada) .ToString(); }
|
|
|
|
|
|
GvAsignado.DataSource = DtAsignado.FiltraParametros($"CveProduccionResultado = {CveProduccionResultado}");
|
|
GvAsignado.DataBind();
|
|
}
|
|
else
|
|
{
|
|
ClsCGame ObjCGame = new ClsCGame();
|
|
if (ObjCGame.GetOrdenProduccionDetalleCant(UsuarioActual.CveEmpresa, -1, -1))
|
|
{
|
|
DtCant = ObjCGame.DtResultados.FiltraParametros("CantRest > 0 AND CveEstatus IN (1,2,3)");
|
|
}
|
|
ObjCGame.Dispose();
|
|
}
|
|
|
|
}
|
|
|
|
protected void BtnConsultar_Click(object sender, EventArgs e)
|
|
{
|
|
CargaResultado();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region GRIDVIEW
|
|
|
|
protected void GvResultado_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.DataRow)
|
|
{
|
|
e.Row.FCLinkButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir('{0}');", e.Row.FCTextBox("TxtCantDividir").ClientID));
|
|
e.Row.FCLinkButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString();
|
|
e.Row.FCTextBox("TxtCantDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad({0},this,'{1}');", e.Row.DBCampo("Cantidad"), e.Row.FCLinkButton("BtnDividir").ClientID));
|
|
|
|
if (e.Row.DataKey("CveTipoEtiqueta").ToEntero() == 1)
|
|
{
|
|
e.Row.FCLabel("LblTipoEtiqueta").Text = "Si";
|
|
}
|
|
else
|
|
{
|
|
e.Row.FCLabel("LblTipoEtiqueta").Text = "No";
|
|
}
|
|
}
|
|
}
|
|
|
|
protected void GvBins_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.DataRow)
|
|
{
|
|
e.Row.FCLinkButton("BtnDividir").Attributes.Add("onclick", String.Format("Dividir2('{0}');", e.Row.FCTextBox("TxtCantDividir").ClientID));
|
|
e.Row.FCLinkButton("BtnDividir").CommandArgument = e.Row.RowIndex.ToString();
|
|
e.Row.FCTextBox("TxtCantDividir").Attributes.Add("onkeyup", String.Format("LimitaCantidad2({0},this,'{1}');", e.Row.DBCampo("Cantidad"), e.Row.FCLinkButton("BtnDividir").ClientID));
|
|
|
|
if (e.Row.DataKey("CveTipoEtiqueta").ToEntero() == 1)
|
|
{
|
|
e.Row.FCLabel("LblTipoEtiqueta").Text = "Si";
|
|
}
|
|
else
|
|
{
|
|
e.Row.FCLabel("LblTipoEtiqueta").Text = "No";
|
|
}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region DIVIDIR
|
|
|
|
protected void Dividir(object sender, EventArgs e)
|
|
{
|
|
int Index = ((LinkButton)sender).CommandArgument.ToString().ToEntero();
|
|
if (DtAsignado.FiltraParametros($"CveProduccionResultado= {GvCajas.Rows[Index].DataKey("CveProduccionResultado").ToEntero()}").Rows.Count > 0)
|
|
{
|
|
Alert("No se puede dividir si se tienen asignaciones pendientes.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
return;
|
|
}
|
|
double Cantidad = HdnCantidad.Value.ToDouble();
|
|
double CantidadPasada = GvCajas.Rows[Index].DataKey("Cantidad").ToDouble();
|
|
double PesoUnitario = GvCajas.Rows[Index].DataKey("Peso").ToDouble() / CantidadPasada;
|
|
double CantActualizada = GvCajas.Rows[Index].DataKey("Cantidad").ToDouble() - Cantidad;
|
|
double ImporteUnitario = GvCajas.Rows[Index].DataKey("ImportePreEnfriado").ToDouble() / CantidadPasada;
|
|
ClsCGame ObjCGame = new ClsCGame();
|
|
ObjCGame.IniciaTransacSQL();
|
|
bool Error = false;
|
|
if (ObjCGame.UpdateProduccionResultado(GvCajas.Rows[Index].DataKey("CveProduccionResultado").ToEntero(), GvCajas.Rows[Index].DataKey("CveProduccion").ToEntero(), GvCajas.Rows[Index].DataKey("CvePS").ToEntero(),
|
|
CantActualizada, CantActualizada * PesoUnitario, GvCajas.Rows[Index].DataKey("CveTamaño").ToEntero(), GvCajas.Rows[Index].DataKey("CveCalidad").ToEntero(), GvCajas.Rows[Index].DataKey("CveTipoCaja").ToEntero(),
|
|
Convert.ToBoolean(GvCajas.Rows[Index].DataKey("CveTipoEtiqueta")), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, GvCajas.Rows[Index].DataKey("CveTipoEmpaque").ToEntero(), GvCajas.Rows[Index].DataKey("CveTipoMaduracion").ToEntero(), GvCajas.Rows[Index].DataKey("CveTipoProducto").ToEntero(), -1))
|
|
{
|
|
|
|
ObjCGame.UpdateProduccionResultadoImporte(GvCajas.Rows[Index].DataKey("CveProduccionResultado").ToEntero(), CantActualizada * ImporteUnitario);
|
|
if (ObjCGame.AddProduccionResultado(GvCajas.Rows[Index].DataKey("CveProduccion").ToEntero(), GvCajas.Rows[Index].DataKey("CvePS").ToEntero(),
|
|
Cantidad, Cantidad * PesoUnitario, GvCajas.Rows[Index].DataKey("CveTamaño").ToEntero(), GvCajas.Rows[Index].DataKey("CveCalidad").ToEntero(), GvCajas.Rows[Index].DataKey("CveTipoCaja").ToEntero(),
|
|
Convert.ToBoolean(GvCajas.Rows[Index].DataKey("CveTipoEtiqueta").ToEntero()), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, GvCajas.Rows[Index].DataKey("CveTipoEmpaque").ToEntero(), GvCajas.Rows[Index].DataKey("CveTipoMaduracion").ToEntero(), GvCajas.Rows[Index].DataKey("CveTipoProducto").ToEntero(), -1) == false)
|
|
{
|
|
Error = true;
|
|
}
|
|
else
|
|
{
|
|
ObjCGame.UpdateProduccionResultadoImporte(ObjCGame.CveProduccionResultado, Cantidad * ImporteUnitario);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Error = true;
|
|
}
|
|
if (!Error) { ObjCGame.Commit(); } else { ObjCGame.RollBack(); };
|
|
ObjCGame.Dispose();
|
|
CargaResultado();
|
|
}
|
|
|
|
protected void Dividir2(object sender, EventArgs e)
|
|
{
|
|
int Index = ((LinkButton)sender).CommandArgument.ToString().ToEntero();
|
|
if (DtAsignado.FiltraParametros($"CveProduccionResultado= {GvBins.Rows[Index].DataKey("CveProduccionResultado").ToEntero()}").Rows.Count > 0)
|
|
{
|
|
Alert("No se puede dividir si se tienen asignaciones pendientes.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
return;
|
|
}
|
|
double Cantidad = HdnCantidad.Value.ToDouble();
|
|
double CantidadPasada = GvBins.Rows[Index].DataKey("Cantidad").ToDouble();
|
|
double PesoUnitario = GvBins.Rows[Index].DataKey("Peso").ToDouble() / CantidadPasada;
|
|
double CantActualizada = GvBins.Rows[Index].DataKey("Cantidad").ToDouble() - Cantidad;
|
|
double ImporteUnitario = GvBins.Rows[Index].DataKey("ImportePreEnfriado").ToDouble() / CantidadPasada;
|
|
ClsCGame ObjCGame = new ClsCGame();
|
|
ObjCGame.IniciaTransacSQL();
|
|
bool Error = false;
|
|
if (ObjCGame.UpdateProduccionResultado(GvBins.Rows[Index].DataKey("CveProduccionResultado").ToEntero(), GvBins.Rows[Index].DataKey("CveProduccion").ToEntero(), GvBins.Rows[Index].DataKey("CvePS").ToEntero(),
|
|
CantActualizada, CantActualizada * PesoUnitario, GvBins.Rows[Index].DataKey("CveTamaño").ToEntero(), GvBins.Rows[Index].DataKey("CveCalidad").ToEntero(), GvBins.Rows[Index].DataKey("CveTipoCaja").ToEntero(),
|
|
Convert.ToBoolean(GvBins.Rows[Index].DataKey("CveTipoEtiqueta")), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, GvBins.Rows[Index].DataKey("CveTipoEmpaque").ToEntero(), GvBins.Rows[Index].DataKey("CveTipoMaduracion").ToEntero(), GvBins.Rows[Index].DataKey("CveTipoProducto").ToEntero(), -1))
|
|
{
|
|
ObjCGame.UpdateProduccionResultadoImporte(GvBins.Rows[Index].DataKey("CveProduccionResultado").ToEntero(), CantActualizada * ImporteUnitario);
|
|
|
|
if (ObjCGame.AddProduccionResultado(GvBins.Rows[Index].DataKey("CveProduccion").ToEntero(), GvBins.Rows[Index].DataKey("CvePS").ToEntero(),
|
|
Cantidad, Cantidad * PesoUnitario, GvBins.Rows[Index].DataKey("CveTamaño").ToEntero(), GvBins.Rows[Index].DataKey("CveCalidad").ToEntero(), GvBins.Rows[Index].DataKey("CveTipoCaja").ToEntero(),
|
|
Convert.ToBoolean(GvBins.Rows[Index].DataKey("CveTipoEtiqueta").ToEntero()), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, GvBins.Rows[Index].DataKey("CveTipoEmpaque").ToEntero(), GvBins.Rows[Index].DataKey("CveTipoMaduracion").ToEntero(), GvBins.Rows[Index].DataKey("CveTipoProducto").ToEntero(), -1) == false)
|
|
{
|
|
Error = true;
|
|
}
|
|
else
|
|
{
|
|
ObjCGame.UpdateProduccionResultadoImporte(ObjCGame.CveProduccionResultado, Cantidad * ImporteUnitario);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Error = true;
|
|
}
|
|
if (!Error) { ObjCGame.Commit(); } else { ObjCGame.RollBack(); };
|
|
ObjCGame.Dispose();
|
|
CargaResultado();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ASIGNAR
|
|
protected void LnkAsignar_Click(object sender, EventArgs e)
|
|
{
|
|
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
|
RegistraScript("$('#DModalAsignacion').modal()");
|
|
CveProduccionResultado = gvRow.DataKey("CveProduccionResultado").ToEntero();
|
|
Cantidad = gvRow.DataKey("Cantidad").ToDouble();
|
|
CvePS = gvRow.DataKey("CvePS").ToEntero();
|
|
Tipo = gvRow.DataKey("Tipo").ToEntero();
|
|
FechaCorteNum = gvRow.DataKey("FechaCorteNum").ToEntero();
|
|
TxtCantidad.Text = "";
|
|
CargaOrdenProduccionDetalle(true, CvePS, Tipo, CveProduccionResultado, Cantidad, FechaCorteNum);
|
|
UpModalAsignacion.Update();
|
|
}
|
|
|
|
protected void LnkAsignar_Click1(object sender, EventArgs e)
|
|
{
|
|
|
|
if (TxtCantidad.Text.ToDouble() <= 0)
|
|
{
|
|
Alert("La cantidad tiene que ser myor que 0.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
return;
|
|
}
|
|
|
|
if (DdlOrdenProduccionDetalle.SelectedValue.ToEntero() > 0)
|
|
{
|
|
foreach (DataRow Dr in DtCant.Rows)
|
|
{
|
|
if (Dr["CveOrdenProduccionDetalle"].ToEntero() == DdlOrdenProduccionDetalle.SelectedValue.ToEntero())
|
|
{
|
|
DataRow Row = DtAsignado.NewRow();
|
|
Row["CveProduccionResultado"] = CveProduccionResultado;
|
|
Row["CveOrdenProduccionDetalle"] = DdlOrdenProduccionDetalle.SelectedValue.ToEntero();
|
|
if (TxtCantidad.Text.ToDouble() <= Dr["CantRest"].ToString().ToDouble())
|
|
{
|
|
Row["CantidadAsignada"] = TxtCantidad.Text.ToDouble();
|
|
Dr["CantRest"] = Math.Round(Dr["CantRest"].ToString().ToDouble() - TxtCantidad.Text.ToDouble(),2);
|
|
}
|
|
else
|
|
{
|
|
Row["CantidadAsignada"] = Dr["CantRest"].ToString().ToDouble();
|
|
Dr["CantRest"] = 0;
|
|
}
|
|
Dr["Folio"] = $"OP# {Dr["FolioOP"].ToString()} - Cant. Rest.: {Dr["CantRest"]} - {Dr["TipoProducto"].ToString()} - {Dr["TipoMaduracion"].ToString()} - {Dr["Tamaño"].ToString()} - {Math.Round((Dr["CantRest"].ToString().ToDouble() * 100) / Dr["Cantidad"].ToString().ToDouble(),2)}% Avance";
|
|
Row["CveOrdenProduccion"] = Dr["CveOrdenProduccion"].ToEntero();
|
|
Row["FolioOP"] = Dr["FolioOP"].ToString();
|
|
Row["TipoProducto"] = Dr["TipoProducto"].ToString();
|
|
Row["TipoMaduracion"] = Dr["TipoMaduracion"].ToString();
|
|
Row["Tamaño"] = Dr["Tamaño"].ToString();
|
|
if (DtAsignado.Rows.Count > 0)
|
|
{
|
|
Row["Id"] = DtAsignado.MAX("Id").ToEntero() + 1;
|
|
}
|
|
else
|
|
{
|
|
Row["Id"] = 1;
|
|
}
|
|
DtAsignado.Rows.InsertAt(Row, 0);
|
|
DtAsignado.AcceptChanges();
|
|
|
|
TxtCantidad.Text = "";
|
|
CargaOrdenProduccionDetalle(true, CvePS, Tipo, CveProduccionResultado, Cantidad, FechaCorteNum);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Alert("Tiene que seleccionar una orden de producción", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
}
|
|
}
|
|
|
|
protected void BtnAsignar_Click(object sender, EventArgs e)
|
|
{
|
|
if (DtAsignado.FiltraParametros($"CveProduccionResultado = {CveProduccionResultado}").Rows.Count > 0)
|
|
{
|
|
ClsCGame ObjCGame = new ClsCGame();
|
|
ObjCGame.IniciaTransacSQL();
|
|
bool Error = false;
|
|
double CantidadSurtida = 0.0;
|
|
foreach (DataRow Dr in DtAsignado.FiltraParametros($"CveProduccionResultado = {CveProduccionResultado}").Rows)
|
|
{
|
|
if (Cantidad - (CantidadSurtida + Dr["CantidadAsignada"].ToString().ToDouble()) < 1)
|
|
{
|
|
if (!ObjCGame.AsignaProduccionResultado(CveProduccionResultado, Dr["CveOrdenProduccionDetalle"].ToEntero(), Dr["CantidadAsignada"].ToString().ToDouble(), false))
|
|
{
|
|
Error = true;
|
|
}
|
|
else
|
|
{
|
|
CantidadSurtida += Dr["CantidadAsignada"].ToString().ToDouble();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!ObjCGame.AsignaProduccionResultado(CveProduccionResultado, Dr["CveOrdenProduccionDetalle"].ToEntero(), Dr["CantidadAsignada"].ToString().ToDouble(), true))
|
|
{
|
|
Error = true;
|
|
}
|
|
else
|
|
{
|
|
CantidadSurtida += Dr["CantidadAsignada"].ToString().ToDouble();
|
|
}
|
|
}
|
|
}
|
|
if (!Error)
|
|
{
|
|
ObjCGame.Commit();
|
|
Alert("Asignado Correctamente");
|
|
CargaResultado();
|
|
RegistraScript("$('#DModalAsignacion').modal('hide')");
|
|
DtAsignado.Select($"CveProduccionResultado = {CveProduccionResultado}").ToList().ForEach(x => DtAsignado.Rows.Remove(x));
|
|
DtAsignado.AcceptChanges();
|
|
}
|
|
else
|
|
{
|
|
ObjCGame.RollBack();
|
|
}
|
|
ObjCGame.Dispose();
|
|
}
|
|
else
|
|
{
|
|
Alert("Tiene que tener asignaciones.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
}
|
|
}
|
|
|
|
protected void LnkEliminar_Click(object sender, EventArgs e)
|
|
{
|
|
GridViewRow gvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
|
foreach (DataRow Dr in DtCant.Rows)
|
|
{
|
|
if (Dr["CveOrdenProduccionDetalle"].ToEntero() == gvRow.DataKey("CveOrdenProduccionDetalle").ToEntero())
|
|
{
|
|
Dr["CantRest"] = Dr["CantRest"].ToString().ToDouble() + gvRow.DataKey("CantidadAsignada").ToString().ToDouble();
|
|
Dr["Folio"] = $"OP# {Dr["FolioOP"].ToString()} - Cant. Rest.: {Dr["CantRest"]} - {Dr["TipoProducto"].ToString()} - {Dr["TipoMaduracion"].ToString()} - {Dr["Tamaño"].ToString()} - {(Dr["CantRest"].ToString().ToDouble() * 100) / Dr["Cantidad"].ToString().ToDouble()}% Avance";
|
|
}
|
|
}
|
|
DtAsignado.Select($"Id = { gvRow.DataKey("Id").ToEntero()}").ToList().ForEach(x => DtAsignado.Rows.Remove(x));
|
|
DtAsignado.AcceptChanges();
|
|
CargaOrdenProduccionDetalle(true, CvePS, Tipo, CveProduccionResultado, Cantidad,FechaCorteNum);
|
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
#region "PDF"
|
|
protected void ImgImprimirPDF_Click(object sender, EventArgs e)
|
|
{
|
|
GenerarPDF("PDF");
|
|
}
|
|
|
|
protected void GenerarPDF(String Opcion)
|
|
{
|
|
if (DtCajas.Rows.Count > 0 && DtBins.Rows.Count > 0)
|
|
{
|
|
System.IO.FileInfo Imagen = new System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png");
|
|
String logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa);
|
|
|
|
List<ReportParameter> para = new List<ReportParameter>();
|
|
|
|
para.Add(new ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa));
|
|
para.Add(new ReportParameter("UsuarioImprimio", UsuarioActual.Nombre));
|
|
para.Add(new ReportParameter("FechaImpresion", DateTime.Now.ToString()));
|
|
|
|
para.Add(new ReportParameter("Huerta", DdlHuerta.SelectedItem.Text));
|
|
para.Add(new ReportParameter("Fruto", DdlFruto.SelectedItem.Text));
|
|
para.Add(new ReportParameter("Variedad", DdlVariedad.SelectedItem.Text));
|
|
para.Add(new ReportParameter("TipoProduccion", DdlTipoProduccion.SelectedItem.Text));
|
|
|
|
para.Add(new ReportParameter("Tamaño", DdlTamaño.SelectedItem.Text));
|
|
para.Add(new ReportParameter("Calidad", DdlCalidad.SelectedItem.Text));
|
|
para.Add(new ReportParameter("Etiqueta", DdlEtiqueta.SelectedItem.Text));
|
|
para.Add(new ReportParameter("TipoEmpaque", DdlTipoEmpaque.SelectedItem.Text));
|
|
|
|
para.Add(new ReportParameter("TotalCajas", LblCajas.Text));
|
|
para.Add(new ReportParameter("TotalBins", LblBins.Text));
|
|
|
|
|
|
if (Imagen.Exists)
|
|
{
|
|
para.Add(new ReportParameter("LogoPath", logouri));
|
|
}
|
|
else
|
|
{
|
|
para.Add(new ReportParameter("LogoPath", ""));
|
|
}
|
|
|
|
List<ReportDataSource> lrds = new List<ReportDataSource>();
|
|
|
|
ReportDataSource rds = new ReportDataSource();
|
|
rds.Name = "DataSet1"; rds.Value = DtCajas;
|
|
|
|
ReportDataSource rds2 = new ReportDataSource();
|
|
rds2.Name = "DataSet2"; rds2.Value = DtBins;
|
|
|
|
lrds.Add(rds);
|
|
lrds.Add(rds2);
|
|
|
|
ImprimirPDF("Empresas/Grales/Formatos/RepAsignacionEmpaque.rdlc", lrds, para, "RepAsignacionEmpaque", Opcion);
|
|
}
|
|
else
|
|
{
|
|
Alert("No hay datos consultados", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
}
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
} |