protected void guardarPedido()
{
//veritem= 1;
//txtSubtotal.Text = hddSubtotal;
//txtIVA.Text = hddTotalIVA.Value;
//txtTotal.Text = hddTotal.Value;
DataSet dsDevoluciones = new DataSet();
DataSet dsPedido = new DataSet("Pedido");
DataTable dtProducto = new DataTable("Productos");
dtProducto.Columns.Add("IdProducto", typeof(string));
dtProducto.Columns.Add("Cantidad", typeof(int));
dtProducto.Columns.Add("lngPromProducto", typeof(int));
dsPedido.Tables.Add(dtProducto);
for (int ireg = 0; ireg <= rpLinea.Items.Count - 1; ireg++)
{
Repeater tmp = (Repeater)rpLinea.Items[ireg].FindControl("rpProductos");
for (int i = 0; i <= tmp.Items.Count - 1; i++)
{
if (((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Value.Trim() != "")
{
//if (veritem == 1)
//{
// ((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Disabled = true;
//}
//else
//{
// ((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Disabled = false;
//}
DataRow drdatos = dtProducto.NewRow();
drdatos["IdProducto"] = ((HtmlTableCell)tmp.Items[i].FindControl("IdCod")).InnerText;
drdatos["Cantidad"] = int.Parse(((HtmlInputText)tmp.Items[i].FindControl("txtDigitado")).Value);
drdatos["lngPromProducto"] = ((HtmlTableCell)tmp.Items[i].FindControl("Td1")).InnerText;
dtProducto.Rows.Add(drdatos);
}
}
}
Pedidos Pedidos_VO = new Pedidos();
Hashtable htUsuario = (Hashtable)Session["parametros"];
idUsuarioLogeado = int.Parse(htUsuario["lngIdUsuario"].ToString());
Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
if (mpage.pptoValor || mpage.pptoCantidad || mpage.pptoValorL)
{
/*Capturo el perido ppto*/
DateTimeFormatInfo myDTFI = new CultureInfo("es-ES", false).DateTimeFormat;
myDTFI.ShortDatePattern = "dd/MM/yyyy";
myDTFI.DateSeparator = "/";
DataSet dsDetallePeriodoPresupuesto;
if (hddOperacion.Value == "I")
dsDetallePeriodoPresupuesto = DetallePeriodoPresupuesto(System.DateTime.Now.Date);
else
dsDetallePeriodoPresupuesto = DetallePeriodoPresupuesto(Convert.ToDateTime(hddFechaPedido.Value, myDTFI));
if (dsDetallePeriodoPresupuesto.Tables[0].Rows.Count <= 0)
{
lblMensaje.Text = "No hay presupuesto asignado. Consulte al administrador del sistema.";
lblMensaje.Visible = true;
tblMensajes.Visible = true;
tblBuscar.Visible = false;
tblLista.Visible = false;
}
else
{
Pedidos_VO.IdDetallePeriodoPpto = int.Parse(dsDetallePeriodoPresupuesto.Tables[0].Rows[0]["lngIdDetallePeriodo"].ToString());
Pedidos_VO.IdPeriodoPpto = int.Parse(dsDetallePeriodoPresupuesto.Tables[0].Rows[0]["lngIdPeriodo"].ToString());
}
}
string[] idJerarquia ={ "", "" };
Pedidos_VO.fechaPedidoIni = System.DateTime.Now.Date;
Pedidos_VO.pptoAcumula = mpage.pptoAcumula ? "1" : "0";
if (mpage.pptoValor)
{
Pedidos_VO.manejaPpto = "V";
}
else
{
Pedidos_VO.manejaPpto = "N";
}
if (mpage.pptoValorL)
{
Pedidos_VO.manejaPpto = "L";
}
if (mpage.pptoCantidad)
{
Pedidos_VO.manejaPpto = "C";
}
if (mpage.pptoIVA)
Pedidos_VO.PptoIVA = "1";
else
Pedidos_VO.PptoIVA = "0";
Pedidos_VO.idTipoJerarquia = mpage.nivelControlPpto;
switch (mpage.nivelControlPpto)
{
case 1:
if (hddOperacion.Value == "I")
{
idJerarquia = mpage.ccostos.SelectedItem.Value.Split('|');
Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());
}
else
{
Pedidos_VO.idJerarquia = int.Parse(hddCcostos.Value);
}
break;
case 2:
if (hddOperacion.Value == "I")
{
idJerarquia = mpage.division.SelectedItem.Value.Split('|');
Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());
}
else
{
Pedidos_VO.idJerarquia = int.Parse(hddDivision.Value);
}
break;
case 3:
if (hddOperacion.Value == "I")
{
idJerarquia = mpage.regional.SelectedItem.Value.Split('|');
Pedidos_VO.idJerarquia = int.Parse(idJerarquia[1].ToString());
Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
}
else
{
Pedidos_VO.idJerarquia = int.Parse(hddRegional.Value);
Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
}
break;
case 4://el presupuesto es por empresa
Pedidos_VO.idJerarquia = mpage.Cliente;
Pedidos_VO.idUsuarioOperacion = idUsuarioLogeado;
break;
}
Pedidos_VO.idCliente = mpage.Cliente;
IPedidos objPedidos = Factory.CreatePedidos();
if (mpage.excederPpto)
Pedidos_VO.ExcederPpto = "1";
else
Pedidos_VO.ExcederPpto = "0";
if (mpage.autorizarPpto)
Pedidos_VO.AutorizarPpto = "1";
else
Pedidos_VO.AutorizarPpto = "0";
if (chkPedTerminado.Checked)
Pedidos_VO.PedidoTerminado = "1";
Pedidos_VO.pedidoExtemporaneo = chkPedExtemporaneo.Checked ? "1" : "0";
Pedidos_VO.PedidoUrgente = chkPedUrgente.Checked ? "1" : "0";
Pedidos_VO.GravadoIva = hddCcGravadoIVA.Value;
Pedidos_VO.observaciones = txtObservacion.Text;
Pedidos_VO.ordencompra = txtordencompra.Text;
bool bolGuardado = true;
string[] Resultado_guardarlinea;
IPptoValorLinea objPptoValorLinea = Factory.CreatePptoValorL();
PptpValorLinea PptoValorLinea_VO = new PptpValorLinea();
bool bolguardarlinea = true;
if (mpage.pptoValorL)
{
foreach (GridViewRow rowItem_g in gvppto.Rows)
{
int valor_ = rowItem_g.RowIndex;
PptoValorLinea_VO.idCliente = mpage.Cliente;
PptoValorLinea_VO.idlinea = Convert.ToInt32(gvppto.Rows[valor_].Cells[0].Text);
PptoValorLinea_VO.pptoAsignado = int.Parse(gvppto.Rows[valor_].Cells[2].Text);
PptoValorLinea_VO.pptoejecutado = int.Parse(gvppto.Rows[valor_].Cells[3].Text);
PptoValorLinea_VO.subtotal = int.Parse(gvppto.Rows[valor_].Cells[4].Text);
PptoValorLinea_VO.total = int.Parse(gvppto.Rows[valor_].Cells[6].Text);
PptoValorLinea_VO.periodo = Convert.ToInt32(gvppto.Rows[valor_].Cells[7].Text);
PptoValorLinea_VO.tperiodo = int.Parse(gvppto.Rows[valor_].Cells[8].Text);
PptoValorLinea_VO.centro = int.Parse(gvppto.Rows[valor_].Cells[9].Text);
if (mpage.pptoValorL)
PptoValorLinea_VO.chrManejaPpt = "L";
else
PptoValorLinea_VO.chrManejaPpt = "N";
if (mpage.excederPpto)
PptoValorLinea_VO.ExcederPpt = "1";
else
PptoValorLinea_VO.ExcederPpt = "0";
if (PptoValorLinea_VO.subtotal > 0)
{
if (PptoValorLinea_VO.pptoAsignado <= PptoValorLinea_VO.subtotal && PptoValorLinea_VO.pptoAsignado >= PptoValorLinea_VO.pptoejecutado)
{
bolGuardado = false;
lblMensaje.Text = "El pedido no fue creado, debido a que sobrepasa el presupuest; favor revise los valores totales de cada linea.";
bolguardarlinea = false;
}
lblMensaje.Visible = true;
tblMensajes.Visible = true;
}
}
if (bolguardarlinea)
{
}
}
string[] Resultado;
if (bolGuardado)
{
if (dsPedido.Tables[0].Rows.Count > 0)
{
if (hddOperacion.Value == "I")
{
string[] idCcostos = mpage.ccostos.SelectedItem.Value.Split('|');
Pedidos_VO.idCCostos = int.Parse(idCcostos[1].ToString());
Resultado = objPedidos.guardarPedidos(Pedidos_VO, dsPedido, "I");
if (mpage.pptoValorL)
{
Resultado_guardarlinea = objPedidos.guardarPedidolinea(PptoValorLinea_VO, dsPedido, "I");
}
//Resultado[0] numero del pedido; Resultado[1] si necesita autoraizacion o si no pudo ser creado
if (Resultado[0] != "0" && Resultado[1] == "0")
{
lblMensaje.Text = "El pedido fue creado con el número " + Resultado[0].ToString();
//Requerimiento 2.0
hddPedido.Value = Resultado[0];
if (chkPedUrgente.Checked)
{
sPedidoUrgente = "1";
}
else
{
sPedidoUrgente = "0";
}
CuActa_IE.generarActa_IE(int.Parse(hddPedido.Value), "EM", dsDevoluciones, sPedidoUrgente);
CuActa_nueva.generarActa_nueva(int.Parse(hddPedido.Value), "PROMEDIO", dsDevoluciones, sPedidoUrgente);
CuActa.Visible = false;
}
else
if (Resultado[1] == "1")
lblMensaje.Text = "El pedido fue creado con el número " + Resultado[0].ToString() + ", pero requiere autorización de presupuesto.";
else
if (Resultado[1] == "2")
{
bolGuardado = false;
lblMensaje.Text = "El pedido no fue creado, debido a que sobrepasa el presupuesto.";
}
lblMensaje.Visible = true;
tblMensajes.Visible = true;
}
else
{
Pedidos_VO.idCCostos = int.Parse(hddCcostos.Value);
Pedidos_VO.IdPerfilUsuario = mpage.idPerfil;
Pedidos_VO.idPedido = lblNumPedido.Text;
switch (objPedidos.modificarPedido(Pedidos_VO, dsPedido))
{
case 0:
hddPedido.Value = lblNumPedido.Text;
lblMensaje.Text = "El pedido fue modificado correctamente.";
CuActa_IE.generarActa_IE(int.Parse(hddPedido.Value), "MO", dsDevoluciones, sPedidoUrgente);
break;
case 1:
lblMensaje.Text = "El pedido fue modificado, pero requiere autoraización de presupuesto.";
break;
case 2:
bolGuardado = false;
lblMensaje.Text = "El pedido no fue modificado, debido a que sobrepasa el presupuesto.";
break;
}
lblMensaje.Visible = true;
tblMensajes.Visible = true;
}
}
else
{
bolGuardado = false;
lblMensaje.Text = "El pedido no fue guardado, debido a que no hay detalle válido";
lblMensaje.Visible = true;
tblMensajes.Visible = true;
}
}
else
{
mpage.filtro.Visible = false;
tblFiltroPed.Visible = true;
btnAdicionar.Visible = false;
btnGuardar.Visible = true;
tblBuscar.Visible = true;
}
if (bolGuardado)
{
/*limpia los campos*/
tblLista.Visible = false;
rpLinea.DataSource = null;
tblBuscar.Visible = false;
tblFiltroPed.Visible = false;
ViewState["htLista"] = null;
}
else
{
mpage.filtro.Visible = false;
tblFiltroPed.Visible = true;
btnAdicionar.Visible = false;
btnGuardar.Visible = true;
tblBuscar.Visible = true;
}
hddClicGuardar.Value = "";
}