protected void btnGrabar_Click(object sender, EventArgs e) { DetallePedido pedido = new DetallePedido((DataTable)Session["carrito"]); DataHojaPedido hojaPedido = new DataHojaPedido(); hojaPedido.CodCli = Session["usuarioNombre"].ToString(); hojaPedido.CodVend = "rtapara"; hojaPedido.TipoComprobante = cbTipoComprobante.Text; hojaPedido.FecPedido = DateTime.Now; hojaPedido.FormaPago = cbFormaPago.Text; hojaPedido.TipoTarjeta = cbTipoTarjeta.Text; hojaPedido.Estado = "Pendiente"; hojaPedido.CodPais = "001"; hojaPedido.CodDept = "P001"; hojaPedido.CodProv = "PR01"; hojaPedido.CodDis = "PD02"; if (cbTipoEmtrega.Text == "Delivery") { hojaPedido.FecEntrega = Convert.ToDateTime(txtFechaEntrega.Text); } else { hojaPedido.FecEntrega = DateTime.Now; } if (cbFormaPago.Text == "") { ClientScript.RegisterStartupScript(typeof(Page), "Mensaje", "<script language=JavaScript>alert('Seleccione la forma de pago');</script>"); } else if (cbTipoComprobante.Text == "") { ClientScript.RegisterStartupScript(typeof(Page), "Mensaje", "<script language=JavaScript>alert('Seleccione el tipo de comprobante');</script>"); } else if (cbTipoEmtrega.Text == "") { ClientScript.RegisterStartupScript(typeof(Page), "Mensaje", "<script language=JavaScript>alert('Seleccione el tipo de entrega');</script>"); } else if (cbTipoTarjeta.Text == "") { ClientScript.RegisterStartupScript(typeof(Page), "Mensaje", "<script language=JavaScript>alert('Seleccione el tipo de tarjeta');</script>"); } else { string mensaje = pedido.GrabarPedido(hojaPedido); Producto pro = new Producto(); pro.actualizar_stock(Convert.ToInt16(lblCodigo.Text), Convert.ToInt16(txtCantidad.Text)); ClientScript.RegisterStartupScript(typeof(Page), "Mensaje", "<script language=JavaScript>alert('" + mensaje + "');</script>"); } }
public string GrabarPedido(DataHojaPedido hojaPedido) { int x = Autogenerado(); string msg; cn.getCN.Open(); SqlTransaction tr = cn.getCN.BeginTransaction(IsolationLevel.Serializable); SqlCommand cmd = new SqlCommand( "usp_insertar_hoja_pedido", cn.getCN, tr); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@cod", SqlDbType.Int).Value = x; cmd.Parameters.Add("@cod_cli", SqlDbType.Char).Value = hojaPedido.CodCli; cmd.Parameters.Add("@cod_ven", SqlDbType.Char).Value = hojaPedido.CodVend; cmd.Parameters.Add("@tipoCompro", SqlDbType.VarChar).Value = hojaPedido.TipoComprobante; cmd.Parameters.Add("@fechaPedido", SqlDbType.DateTime).Value = hojaPedido.FecPedido; cmd.Parameters.Add("@fechaEntrega", SqlDbType.DateTime).Value = hojaPedido.FecEntrega; cmd.Parameters.Add("@formaPago", SqlDbType.VarChar).Value = hojaPedido.FormaPago; cmd.Parameters.Add("@tipoTarjeta", SqlDbType.VarChar).Value = hojaPedido.TipoTarjeta; cmd.Parameters.Add("@estado", SqlDbType.VarChar).Value = hojaPedido.Estado; cmd.Parameters.Add("@idPais", SqlDbType.Char).Value = hojaPedido.CodPais; cmd.Parameters.Add("@codDpto", SqlDbType.Char).Value = hojaPedido.CodDept; cmd.Parameters.Add("@codProv", SqlDbType.Char).Value = hojaPedido.CodProv; cmd.Parameters.Add("@codDis", SqlDbType.Char).Value = hojaPedido.CodDis; try { cmd.ExecuteNonQuery(); foreach (DataRow fila in rows.Rows) { cmd = new SqlCommand( "usp_insertar_detalle_ped", cn.getCN, tr); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@nroPed", SqlDbType.Int).Value = x; cmd.Parameters.Add("@codProd", SqlDbType.Int).Value = fila["codProd"]; cmd.Parameters.Add("@nroKardex", SqlDbType.VarChar).Value = fila["nroKardex"]; cmd.Parameters.Add("@importe", SqlDbType.Money).Value = fila["cantidad"]; cmd.Parameters.Add("@cant", SqlDbType.Int).Value = Convert.ToInt16(fila["descuento"].ToString()); cmd.Parameters.Add("@desc", SqlDbType.Money).Value = fila["precio"]; cmd.Parameters.Add("@preUni", SqlDbType.Money).Value = fila["importe"]; cmd.Parameters.Add("@impTotal", SqlDbType.Money).Value = fila["total"]; cmd.ExecuteNonQuery(); } msg = "Pedido Registrado exitosamente"; tr.Commit();//actualizar a la base de datos si esta Ok } catch (Exception ex) { msg = ex.Message; tr.Rollback();//deshacer el proceso } finally { cn.getCN.Close(); } return(msg);//el metodo retorna el mensaje }