예제 #1
0
        protected void btnEmitirComprobante_Click(object sender, EventArgs e)
        {
            pcValidarComprobante.ShowOnPageLoad = false;

            List <object> arrayListRemitos = (List <object>)Session["listRemitos"];
            List <int>    codigoRemitos    = new List <int>();

            foreach (object[] itmes in arrayListRemitos)
            {
                codigoRemitos.Add(Convert.ToInt32(itmes[0].ToString()));
            }

            DataTable tablaItemsEntrega = new DataTable();

            tablaItemsEntrega.Columns.Add("codigoEntrega");
            tablaItemsEntrega.Columns.Add("codigoItemEntrega");
            tablaItemsEntrega.Columns.Add("precio");

            for (int i = 0; i < gvItemsFactura.VisibleRowCount; i++)
            {
                DataRow row = tablaItemsEntrega.NewRow();
                row["codigoEntrega"]     = gvItemsFactura.GetRowValues(i, "codigoEntrega");
                row["codigoItemEntrega"] = gvItemsFactura.GetRowValues(i, "codigoItemEntrega");
                row["precio"]            = gvItemsFactura.GetRowValues(i, "precioUnitario");
                tablaItemsEntrega.Rows.Add(row);
            }

            ControladorGeneral.InsertarActualizarFactura(0, Convert.ToInt32(txtNroFactura.Text), Convert.ToDateTime(txtFechaFacturacion.Text), codigoRemitos, Convert.ToInt32(cbTipoMoneda.Value),
                                                         Convert.ToInt32(cbConcepto.Value), Convert.ToInt32(cbCondicionIVA.Value), Convert.ToDouble(txtSubtotal.Text), Convert.ToDouble(txtTotal.Text),
                                                         Convert.ToString(cbCondicionVenta.Text), Convert.ToDouble(txtCotizacion.Text), tablaItemsEntrega);

            //Obtengo ultimo codigo de factura y emito la factura
            DataTable tablaUltimaFactura = ControladorGeneral.RecuperarUltimaFactura();
            string    codigoFactura      = tablaUltimaFactura.Rows.Count > 0 ? (Convert.ToInt32(tablaUltimaFactura.Rows[0]["codigoFactura"])).ToString() : string.Empty;

            try
            {
                string status = ControladorGeneral.EmitirFactura(Convert.ToInt32(codigoFactura));
                lblError.Text          = status;
                pcError.ShowOnPageLoad = true;
            }
            catch
            {
                lblError.Text          = "Ha ocurrido un error. No hay conexion con los servidor de AFIP, vuelva a intentar.";
                pcError.ShowOnPageLoad = true;
            }
        }