public frmFacturaElectronicaExterno(DataTable dt)
 {
     InitializeComponent();
     Facturacion_Electronica.rptFacturaEletronicaRepartidores reporte = new Facturacion_Electronica.rptFacturaEletronicaRepartidores();
     reporte.SetDataSource(dt);
     this.rptFactura.ReportSource = reporte;
     this.rptFactura.Refresh();
 }
        //FUNCION PARA CREAR UN RIDE DE CONSUMO ALIMENTOS CON REPARTIDOR EXTERNO
        public void llenarFacturaRepartidorExterno()
        {
            try
            {
                int    iColumna;
                Double dbCantidad      = 0;
                Double dPrecioUnitario = 0;
                Double dValorDescuento = 0;
                Double dValorIce       = 0;
                Double dValorIva       = 0;
                Double dbServicio      = 0;
                Double dValorTotal     = 0;
                Double dbSubtotal      = 0;
                Double dbSumaServicio;

                for (int i = 0; i < dtDatos.Rows.Count; i++)
                {
                    dbCantidad      = Convert.ToDouble(dtDatos.Rows[i][25].ToString());
                    dPrecioUnitario = Convert.ToDouble(dtDatos.Rows[i][26].ToString());
                    dbServicio      = dbServicio + (dbCantidad * dPrecioUnitario * Program.servicio);
                    dValorIce       = Convert.ToDouble(dtDatos.Rows[i][28].ToString());
                    dValorIva       = Convert.ToDouble(dtDatos.Rows[i][31].ToString());

                    dValorTotal = dValorTotal + (dbCantidad * (dPrecioUnitario + dValorIce + dValorIva));
                }

                dValorTotal     = dValorTotal + dbServicio;
                dValorDescuento = dValorTotal * (dbPorcentajeDescuento / 100);
                dbSubtotal      = dValorTotal - dValorDescuento;
                dValorIva       = dbSubtotal * (Convert.ToDouble(dtDatos.Rows[0][30].ToString()) / 100);

                DataTable dt = ds.Tables["dtFactura"];
                dt.Clear();
                DataRow dr = dt.NewRow();
                iColumna = 0;

                dr["id_Factura"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["fecha_factura"] = dtDatos.Rows[0][iColumna].ToString().Substring(0, 10);
                iColumna++;
                dr["fecha_vencimiento"] = dtDatos.Rows[0][iColumna].ToString().Substring(0, 10);
                iColumna++;
                dr["plazo"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["direccion_factura"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["sector"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["telefono_factura"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["ciudad_factura"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["fabricante"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["referencia"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["placa"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["kilometraje"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["comentarios"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["usuario_ingreso"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["fecha_ingreso"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["codigo_alterno"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["identificacion"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["nombres"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["apellidos"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["nombre_comercial"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["valida_stock"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["valida_stock_descripcion"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["id_det_pedido"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["codigo"] = "CONSALI";
                iColumna++;
                dr["nombre"] = "CONSUMO ALIMENTOS";
                iColumna++;
                dr["cantidad"] = "1";
                iColumna++;
                dr["precio_unitario"] = dValorTotal;
                iColumna++;
                dr["valor_dscto"] = dValorDescuento;;
                iColumna++;
                dr["valor_ice"] = 0.00;
                iColumna++;
                dr["paga_ice"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["porcentaje_iva"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["valor_iva"] = dValorIva;
                iColumna++;
                dr["paga_iva"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["estab"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["ptoemi"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["numero_factura"] = dtDatos.Rows[0][iColumna].ToString().PadLeft(9, '0');
                iColumna++;
                dr["descripcion_pago"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["codigo_vendedor"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["abreviacion_titulo"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["vendedor"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["cargo"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["descripcion"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["id_especificacion"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["linea"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["numero_linea"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["unidad"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["clave_acceso"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["autorizacion"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["fecha_autorizacion"] = dtDatos.Rows[0][iColumna].ToString().Substring(0, 10);

                iColumna++;

                if (dtDatos.Rows[0][iColumna].ToString().Length != 0)
                {
                    dr["hora_autorizacion"] = dtDatos.Rows[0][iColumna].ToString().Substring(0, 8);
                }

                else
                {
                    dr["hora_autorizacion"] = "";
                }

                iColumna++;
                dr["ambiente"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["emision"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["email_factura"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["direccionmatriz"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["direccionsucursal"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["numeroresolucioncontribuyenteespecial"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["obligadollevarcontabilidad"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["tipo_comprobante"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["numeroruc"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["razonsocial"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["nombrecomercial"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["codigo_sri_forma_pago"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["descripcion_sri_forma_pago"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["propina"] = dbServicio;
                iColumna++;
                dr["numero_orden"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["numero_cuenta"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["tipo_orden"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["hora"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["cajero"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["forma_pago"] = dtDatos.Rows[0][iColumna].ToString();
                iColumna++;
                dr["cambio"] = dtDatos.Rows[0][iColumna].ToString();

                dt.Rows.Add(dr);

                //SECCION PARA CREAR EL CRYSTAL REPORT PARA EXPORTARLO A PDF

                if (filename != "")
                {
                    Facturacion_Electronica.rptFacturaEletronicaRepartidores reporte = new Facturacion_Electronica.rptFacturaEletronicaRepartidores();
                    reporte.SetDataSource(dt);
                    reporte.ExportToDisk(ExportFormatType.PortableDocFormat, filename);
                }

                else
                {
                    Facturacion_Electronica.frmFacturaElectronicaExterno ver = new Facturacion_Electronica.frmFacturaElectronicaExterno(dt);
                    ver.ShowDialog();
                }
            }

            catch (Exception ex)
            {
                catchMensaje.LblMensaje.Text = ex.ToString();
                catchMensaje.ShowDialog();
            }
        }