private void Guardar_Click(object sender, EventArgs e)
        {
            if (txtCodigoCliente.Text == "")
            {
                MessageBox.Show("Debe seleccionar el Cliente", "Sistema de Pedidos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            else
            {
                if (dataGridView1.Rows.Count == 1)
                {
                    MessageBox.Show("Debe agregar Productos al Pedido", "Sistema de Pedidos", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else
                {
                    try
                    {
                        //Verificamos datos del cliente
                        int CodCliente = Convert.ToInt32(txtCodigoCliente.Text);
                        ClientesServiceReference.ClientesClient proxyCliente = new ClientesServiceReference.ClientesClient();
                        Cliente resultadoCliente = proxyCliente.ObtenerCliente(CodCliente);

                        VerificarRUCServiceReference.VerificaDocumentoClient proxyRUC = new VerificarRUCServiceReference.VerificaDocumentoClient();
                        bool validaRUC = proxyRUC.VerificaRUC(resultadoCliente.RUC);

                        if (!validaRUC)
                        {
                            throw new System.ArgumentException("Cliente : " + Convert.ToString(resultadoCliente.RazonSocial) +"\r" + "\n" +
                            "No tiene número de RUC válido" +"\r" + "\n" +
                            "Por favor verificar en Sunat");
                        }

                        //Verificamos existencia de Stocks
                        foreach (DataGridViewRow row in dataGridView1.Rows)
                        {
                            int NUMEROITEM = Convert.ToInt32(row.Cells["colItem"].Value);

                            if (NUMEROITEM == 0)
                            {
                                break;
                            }

                            int CodigoItemPedido = Convert.ToInt32(row.Cells["colCodigo"].Value);
                            int CantidadItemPedido = Convert.ToInt32(row.Cells["colCantidad"].Value);

                            StocksServiceReference.StocksClient proxyStock = new StocksServiceReference.StocksClient();
                            Stock resultadoStock = proxyStock.ObtenerStock(CodigoItemPedido);

                            if (CantidadItemPedido > resultadoStock.StockActual)
                            {
                                throw new System.ArgumentException("Producto : " + row.Cells["colDescripcion"].Value + "\r" +"\n"+
                                    "No hay Stock suficiente para completar el pedido"  + "\r" +"\n"+
                                    "Stock Actual : " + Convert.ToString(resultadoStock.StockActual) + " Unidades");
                            }
                        }
                        //variables para completar cabecera
                        int CODCOMPANIA = 1;
                        int CODSUCURSALCIA = 1;
                        int ANO = 2015;
                        DateTime FECPEDIDO = Convert.ToDateTime(this.dateTimePicker1.Value);
                        int CODCLIENTE = Convert.ToInt32(txtCodigoCliente.Text);
                        int CODSUCURSAL = 1;
                        string CODUSUARIOVENDEDOR = "VENDEDOR";
                        int CODDOCUMENTOFACTURACION = 1;
                        string NUMEROORDENCOMPRA = "A001";
                        int CODMONEDA = 1;
                        double IMPORTETOTALBRUTO = Convert.ToDouble(txtSubTotal.Text);
                        double IMPORTETOTALDESCUENTO = 0.00;
                        double PORCENTAJEIGV = 18.00;
                        double IMPORTETOTALIGV = Convert.ToDouble(txtIGV.Text);
                        double IMPORTETOTALNETO = Convert.ToDouble(txtTotal.Text);
                        int CODESTADOATENCION = 1;
                        int CODALMACEN = 1;
                        int CODESTADOREGISTRO = 1;
                        string CODUSUARIOCREADOR = "CREADOR";
                        DateTime FECCREACION = Convert.ToDateTime(this.dateTimePicker1.Value);
                        string CODUSUARIOUPDATE = "ACTUALIZADOR";
                        DateTime FECUPDATE = Convert.ToDateTime(this.dateTimePicker1.Value);

                        PedidosWS.PedidosClient proxyPedido = new PedidosWS.PedidosClient();
                        Pedido resultadoPedido = proxyPedido.CrearPedido(CODCOMPANIA, CODSUCURSALCIA, ANO, FECPEDIDO, CODCLIENTE, CODSUCURSAL, CODUSUARIOVENDEDOR, CODDOCUMENTOFACTURACION,
                            NUMEROORDENCOMPRA, CODMONEDA, IMPORTETOTALBRUTO, IMPORTETOTALDESCUENTO, PORCENTAJEIGV, IMPORTETOTALIGV, IMPORTETOTALNETO, CODESTADOATENCION, CODALMACEN,
                            CODESTADOREGISTRO, CODUSUARIOCREADOR, FECCREACION, CODUSUARIOUPDATE, FECUPDATE);

                        int NUMEROPEDIDO = resultadoPedido.NumeroPedido;

                        //variables para completar detalle
                        foreach (DataGridViewRow row in dataGridView1.Rows)
                        {
                            int NUMEROITEM = Convert.ToInt32(row.Cells["colItem"].Value);

                            if (NUMEROITEM == 0)
                            {
                                break;
                            }

                            int CODITEMARTICULO = Convert.ToInt32(row.Cells["colCodigo"].Value);
                            int UNIDADESPEDIDAS = Convert.ToInt32(row.Cells["colCantidad"].Value);
                            int UNIDADESCOMPROMETIDAS = Convert.ToInt32(row.Cells["colCantidad"].Value);
                            double IMPORTEPRECIOUNITARIOSIGV = Convert.ToDouble(row.Cells["colPrecio"].Value);
                            double IMPORTEPRECIOUNITARIOCIGV = Convert.ToDouble(row.Cells["colPrecio"].Value) * 1.18;
                            double IMPORTESUBTOTALBRUTO = Convert.ToDouble(row.Cells["colTotal"].Value);
                            double PORCENTAJEDESCUENTO = 0.00;
                            double IMPORTESUBTOTALDESCUENTO = 0.00;
                            double IMPORTESUBTOTALNETO = Convert.ToDouble(row.Cells["colTotal"].Value);

                            PedidoDetallesWS.PedidoDetallesClient proxyDetalle = new PedidoDetallesWS.PedidoDetallesClient();
                            PedidoDetalle resultadoDetalle = proxyDetalle.CrearPedidoDetalle(CODCOMPANIA, CODSUCURSALCIA, ANO, NUMEROPEDIDO, NUMEROITEM, CODITEMARTICULO, UNIDADESPEDIDAS,
                                UNIDADESCOMPROMETIDAS, IMPORTEPRECIOUNITARIOSIGV, IMPORTEPRECIOUNITARIOCIGV, IMPORTESUBTOTALBRUTO, PORCENTAJEDESCUENTO, IMPORTESUBTOTALDESCUENTO,
                                IMPORTESUBTOTALNETO, CODESTADOATENCION, CODESTADOREGISTRO, CODUSUARIOCREADOR, FECCREACION, CODUSUARIOUPDATE, FECUPDATE);

                            //Actualizamos existencia de Stocks
                            StocksServiceReference.StocksClient proxyStock = new StocksServiceReference.StocksClient();
                            Stock resultadoS = proxyStock.ObtenerStock(CODITEMARTICULO);
                            Stock actualizaS = proxyStock.ModificarStock(CODITEMARTICULO, resultadoS.StockActual - UNIDADESPEDIDAS);
                        }
                        MessageBox.Show("Pedido Registrado OK!", "Sistema de Pedidos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.Close();

                        frmListado oFrmListado = new frmListado();
                        oFrmListado.Show();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Sistema de Pedidos", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    }
                }
            }
        }
        private void Guardar_Click(object sender, EventArgs e)
        {
            //variables para completar cabecera
            int CODCOMPANIA = 1;
            int CODSUCURSALCIA = 1;
            int ANO = 2015;
            DateTime FECPEDIDO = Convert.ToDateTime(this.dateTimePicker1.Value);
            int CODCLIENTE = Convert.ToInt32(txtCodigoCliente.Text);
            int CODSUCURSAL = 1;
            string CODUSUARIOVENDEDOR = "VENDEDOR";
            int CODDOCUMENTOFACTURACION = 1;
            string NUMEROORDENCOMPRA = "A001";
            int CODMONEDA = 1;
            double IMPORTETOTALBRUTO = Convert.ToDouble(txtSubTotal.Text);
            double IMPORTETOTALDESCUENTO = 0.00;
            double PORCENTAJEIGV = 18.00;
            double IMPORTETOTALIGV = Convert.ToDouble(txtIGV.Text);
            double IMPORTETOTALNETO = Convert.ToDouble(txtTotal.Text);
            int CODESTADOATENCION = 1;
            int CODALMACEN = 1;
            int CODESTADOREGISTRO = 1;
            string CODUSUARIOCREADOR = "CREADOR";
            DateTime FECCREACION = Convert.ToDateTime(this.dateTimePicker1.Value);
            string CODUSUARIOUPDATE = "ACTUALIZADOR";
            DateTime FECUPDATE = Convert.ToDateTime(this.dateTimePicker1.Value);

            PedidosWS.PedidosClient proxyP = new PedidosWS.PedidosClient();
            Pedido resultadoP = proxyP.CrearPedido(CODCOMPANIA, CODSUCURSALCIA, ANO, FECPEDIDO, CODCLIENTE, CODSUCURSAL, CODUSUARIOVENDEDOR, CODDOCUMENTOFACTURACION,
                NUMEROORDENCOMPRA, CODMONEDA, IMPORTETOTALBRUTO, IMPORTETOTALDESCUENTO, PORCENTAJEIGV, IMPORTETOTALIGV, IMPORTETOTALNETO, CODESTADOATENCION, CODALMACEN,
                CODESTADOREGISTRO, CODUSUARIOCREADOR, FECCREACION, CODUSUARIOUPDATE, FECUPDATE);

            int NUMEROPEDIDO = resultadoP.NumeroPedido;
            //variables para completar detalle
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                int NUMEROITEM = Convert.ToInt32(row.Cells["colItem"].Value);

                if (NUMEROITEM == 0)
                {
                    break;
                }

                int CODITEMARTICULO = Convert.ToInt32(row.Cells["colCodigo"].Value);
                int UNIDADESPEDIDAS = Convert.ToInt32(row.Cells["colCantidad"].Value);
                int UNIDADESCOMPROMETIDAS = Convert.ToInt32(row.Cells["colCantidad"].Value);
                double IMPORTEPRECIOUNITARIOSIGV = Convert.ToDouble(row.Cells["colPrecio"].Value);
                double IMPORTEPRECIOUNITARIOCIGV = Convert.ToDouble(row.Cells["colPrecio"].Value) * 1.18;
                double IMPORTESUBTOTALBRUTO = Convert.ToDouble(row.Cells["colTotal"].Value);
                double PORCENTAJEDESCUENTO = 0.00;
                double IMPORTESUBTOTALDESCUENTO = 0.00;
                double IMPORTESUBTOTALNETO = Convert.ToDouble(row.Cells["colTotal"].Value);

                PedidoDetallesWS.PedidoDetallesClient proxyD = new PedidoDetallesWS.PedidoDetallesClient();
                PedidoDetalle resultadoD = proxyD.CrearPedidoDetalle(CODCOMPANIA, CODSUCURSALCIA, ANO,NUMEROPEDIDO,NUMEROITEM,CODITEMARTICULO,UNIDADESPEDIDAS,
                    UNIDADESCOMPROMETIDAS,IMPORTEPRECIOUNITARIOSIGV,IMPORTEPRECIOUNITARIOCIGV,IMPORTESUBTOTALBRUTO,PORCENTAJEDESCUENTO,IMPORTESUBTOTALDESCUENTO,
                    IMPORTESUBTOTALNETO, CODESTADOATENCION, CODESTADOREGISTRO, CODUSUARIOCREADOR, FECCREACION, CODUSUARIOUPDATE, FECUPDATE);
            }
            MessageBox.Show("Pedido Registrado","Sistema de Pedidos");
            this.Close();

            frmListado oFrmListado = new frmListado();
            oFrmListado.Show();
        }