Пример #1
0
        public async Task IngresarEmpresa()
        {
            //Se selecciona la empresa ### document.querySelector("#contenido > form > table > tbody > tr:nth-child(4) > td > input.btn_empresa.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-state-hover")
            try
            {
                await Page.WaitForTimeoutAsync(4000);

                //await Page.WaitForExpressionAsync($"document.getElementById('{id_input_Umsatz}')!=null") #contenido > form > table > tbody > tr:nth-child(4) > td > input.btn_empresa
                //#contenido > form > table > tbody > tr:nth-child(4) > td > input.btn_empresa.ui-button.ui-widget.ui-state-default.ui-corner-all

                ElementHandle btnEmpresa = await NewPage.QuerySelectorAsync("#contenido > form > table > tbody > tr:nth-child(4) > td > input.btn_empresa.ui-button.ui-widget.ui-state-default.ui-corner-all");

                if (btnEmpresa != null)
                {
                    await btnEmpresa.ClickAsync();
                }
                else
                {
                    await Page.WaitForTimeoutAsync(4000);

                    ElementHandle btnEmpresa2 = await NewPage.QuerySelectorAsync("#contenido > form > table > tbody > tr:nth-child(4) > td > input.btn_empresa");

                    await btnEmpresa2.ClickAsync();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #2
0
        public async Task ObtenerComprobante()
        {
            try
            {
                //#btn_consultas > span.ui-button-text
                var btnObtenerComprantes = await NewPage.QuerySelectorAsync("#btn_consultas > span.ui-button-text");

                if (btnObtenerComprantes != null)
                {
                    await btnObtenerComprantes.ClickAsync();

                    await NewPage.WaitForNavigationAsync();

                    var inputFecha = await NewPage.QuerySelectorAsync("#fed");

                    await inputFecha.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", "01/08/2020");

                    //#contenido > table > tbody > tr > td > input[type=button]:nth-child(2)
                    var btnBuscar = await NewPage.QuerySelectorAsync("#contenido > table > tbody > tr > td > input[type=button]:nth-child(2)");

                    if (btnBuscar != null)
                    {
                        await btnBuscar.ClickAsync();

                        await NewPage.WaitForNavigationAsync();

                        //nrocomp #contenido > div.jig_borde > div > table > tbody > tr.jig_par > td:nth-child(3)
                    }
                    else
                    {
                        throw new Exception("");
                    }
                }
                else
                {
                    throw new Exception("No se detecta el boton Obtener Comprobantes");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #3
0
        public async Task Volver()
        {
            //document.querySelector("#contenido > table > tbody > tr:nth-child(2) > td > input[type=button]")
            try
            {
                var btnVolver = await NewPage.QuerySelectorAsync("#contenido > table > tbody > tr:nth-child(2) > td > input[type=button]");

                if (btnVolver != null)
                {
                    await btnVolver.ClickAsync();
                }

                await NewPage.WaitForNavigationAsync();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #4
0
        public async Task IngresarTipoComp()
        {
            try
            {
                //se selecciona el tipo de comprobante
                switch (Encabezado.TipoComprobante)
                {
                case 3:     // Factura c
                    await NewPage.SelectAsync("select#universocomprobante", "2");

                    break;

                case 4:     //nota debito
                    await NewPage.SelectAsync("select#universocomprobante", "3");

                    break;

                case 5:     // nota credito
                    await NewPage.SelectAsync("select#universocomprobante", "4");

                    break;

                    //se presona el boton siguiente para pasar al siguiente formulario
                }
                var btnSiguiente = await NewPage.QuerySelectorAsync("#contenido > form > input[type=button]:nth-child(4)");

                if (btnSiguiente != null)
                {
                    await btnSiguiente.ClickAsync();

                    await NewPage.WaitForNavigationAsync();
                }
                else
                {
                    throw new Exception("No se detecta el boton siguiente de tipocomp");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #5
0
        public async Task IngresarFecha()
        {
            try
            {
                var inputFecha = await NewPage.QuerySelectorAsync("#fc");

                if (inputFecha != null)
                {
                    //Se ingresa la fecha en el input correspondiente el  formato dd/MM/yyyy
                    await inputFecha.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", (Encabezado.Fecha.ToString("dd/MM/yyyy")));
                }
                else
                {
                    throw new Exception("No se ha podido ingresar la fecha del comprobante");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #6
0
        public async Task IngresarConcepIncluir()
        {
            try
            {
                switch (Encabezado.ConceptoInc)
                {
                case "Productos":
                    await NewPage.SelectAsync("select#idconcepto", "1");

                    break;

                case "Servicios":
                    await NewPage.SelectAsync("select#idconcepto", "2");

                    break;

                case "Productos/Servicios":
                    await NewPage.SelectAsync("select#idconcepto", "3");

                    break;
                }
                //se presona el boton siguiente para pasar al siguiente formulario
                var btnSiguiente2 = await NewPage.QuerySelectorAsync("#contenido > form > input[type=button]:nth-child(4)");

                if (btnSiguiente2 != null)
                {
                    await btnSiguiente2.ClickAsync();

                    await NewPage.WaitForNavigationAsync();
                }
                else
                {
                    throw new Exception("No se encuentra boton sig en concepto a incluir");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #7
0
        public async Task <bool> Terminar()
        {
            try
            {
                //document.querySelector("#contenido > form > input[type=button]:nth-child(15)")
                //Luego de ingresar los items se procede a finalizar con el proceso de facturacion
                var botonTerminar = await NewPage.QuerySelectorAsync("#contenido > form > input[type=button]:nth-child(15)");

                if (botonTerminar != null)
                {
                    await botonTerminar.ClickAsync();

                    await NewPage.WaitForNavigationAsync();

                    var botonGenerar = await NewPage.QuerySelectorAsync("#btngenerar");

                    if (botonGenerar != null)
                    {
                        //await botonGenerar.ClickAsync();
                        //await NewPage.Keyboard.PressAsync("Enter");
                        //document.querySelector("#botones_comprobante > b")
                        return(true);
                    }
                    else
                    {
                        throw new Exception("FALLO AL GENERAR LA FACTURA");
                    }
                }
                else
                {
                    throw new Exception("No se detecta el boton terminar");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #8
0
        public async Task IngresarNroDoc(string NumeroDoc)
        {
            try
            {
                var inputNroDocumento = await NewPage.QuerySelectorAsync("#nrodocreceptor");

                if (inputNroDocumento != null)
                {
                    //Se ingresa el nro de documento
                    if (NumeroDoc.Length != 0)
                    {
                        await inputNroDocumento.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", NumeroDoc);
                    }
                }
                else
                {
                    throw new Exception("No se ha podido ingresar el numero de documento");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #9
0
        public async Task IngresarEncabezado()
        {
            try
            {
                var btnGenerarComprantes = await NewPage.QuerySelectorAsync("#btn_gen_cmp > span.ui-button-text");

                if (btnGenerarComprantes != null)
                {
                    await btnGenerarComprantes.ClickAsync();

                    await NewPage.WaitForNavigationAsync();

                    //await NewPage.WaitForSelectorAsync("#universocomprobante > option:nth-child(2)");
                }
                else
                {
                    throw new Exception("No se detecta el boton generar Comprobantes");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #10
0
        public async Task IngresarItems()
        {
            try
            {
                foreach (var item in Items)
                {
                    string Nro         = Convert.ToString(item.IdCuerpo);
                    var    txtProducto = await NewPage.QuerySelectorAsync("#detalle_descripcion" + Nro);

                    if (txtProducto != null)
                    {
                        //Se ingresa la fecha en el input correspondiente el  formato dd/MM/yyyy
                        await txtProducto.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", ListaProductos.Find((val) => val.IdProducto == item.ProductoServicio).NombreProducto);

                        var txtCantidad = await NewPage.QuerySelectorAsync("#detalle_cantidad" + Nro);

                        if (txtCantidad != null)
                        {
                            //Se ingresa el nombre del producto
                            await txtCantidad.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", Convert.ToString(item.Cantidad).Replace(",", "."));

                            //la unidad de medida del producto#detalle_medida2
                            await NewPage.SelectAsync("#detalle_medida" + Nro, Convert.ToString(item.UnidadMedida));

                            var txtPrecio = await NewPage.QuerySelectorAsync("#detalle_precio" + Nro);

                            if (txtPrecio != null)
                            {
                                //Se ingresa el precio
                                await txtPrecio.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", ListaProductos.Find((val) => val.IdProducto == item.ProductoServicio).PrecioFinal.ToString("F", System.Globalization.CultureInfo.InvariantCulture));

                                var txtBoni = await NewPage.QuerySelectorAsync("#detalle_porcentaje" + Nro);

                                if (txtBoni != null)
                                {
                                    //Se ingresa la bonificacion en caso de haberla
                                    if (item.Bonificacion != 0)
                                    {
                                        await txtBoni.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", Convert.ToString(item.Bonificacion).Replace(",", "."));
                                    }
                                    //boton para agregar otro item

                                    if (Items.Count > 1 && !(Items.Count == item.IdCuerpo))
                                    {
                                        var botonAgregar = await NewPage.QuerySelectorAsync("#detalles_datos > input[type=button]");

                                        if (botonAgregar != null)
                                        {
                                            await botonAgregar.ClickAsync();
                                        }
                                        else
                                        {
                                            throw new Exception("No se detecta el boton otro item");
                                        }
                                    }
                                }
                                else
                                {
                                    throw new Exception("No se detecta el input de la bonificacion");
                                }
                            }
                            else
                            {
                                throw new Exception("No se detecta el input del precio del producto o servicio ");
                            }
                        }
                        else
                        {
                            throw new Exception("No se encuentra el input de la cantidad");
                        }
                    }
                    else
                    {
                        throw new Exception("No se detecta el input  del producto o servicio ");
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #11
0
        public async Task IngresarFormaPago(string NroPago, int TipoTarj, string NroTarjeta = "")
        {
            try
            {
                string Forma = "#formadepago";
                switch (Encabezado.FormaPago)
                {
                case 1:    //Contado
                    NroPago = "1";
                    break;

                case 2:    // Tarjeta debito
                    NroPago = "2";
                    break;

                case 3:     //Tarjeta debito
                    NroPago = "3";
                    break;

                case 4:     //Cuenta Corriente
                    NroPago = "4";
                    break;

                case 5:     //Cheque
                    NroPago = "5";
                    break;

                case 6:     //Ticket
                    NroPago = "6";
                    break;

                case 7:     //Otro
                    NroPago = "7";
                    break;
                }
                var inputFormaPago = await NewPage.QuerySelectorAsync(Forma + NroPago);

                if (inputFormaPago != null)
                {
                    await inputFormaPago.ClickAsync();

                    if (NroPago == "2" || NroPago == "3")
                    {
                        string IdTarjeta = NroPago == "2" ? "#tarjeta_nro_debito1" : "#tarjeta_nro_credito1";
                        //
                        switch (TipoTarj)
                        {
                        case 1:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_debito1", "1");

                            break;

                        case 2:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_debito1", "2");

                            break;

                        case 3:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_debito1", "3");

                            break;

                        case 14:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_debito1", "99");

                            break;

                        case 4:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "1");

                            break;

                        case 5:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "2");

                            break;

                        case 6:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "3");

                            break;

                        case 7:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "4");

                            break;

                        case 8:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "5");

                            break;

                        case 9:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "6");

                            break;

                        case 10:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "7");

                            break;

                        case 11:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "8");

                            break;

                        case 12:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "9");

                            break;

                        case 15:
                            await NewPage.SelectAsync("select#tarjeta_id_tipo_credito1", "99");

                            break;
                        }

                        var inputTarjeta = await NewPage.QuerySelectorAsync(IdTarjeta);

                        if (inputTarjeta != null)
                        {
                            //Se ingresa el nro de documento
                            if (NroTarjeta.Length != 0)
                            {
                                await inputTarjeta.EvaluateFunctionAsync <dynamic>("(el, value) => el.value = value", NroTarjeta);
                            }
                        }
                    }

                    //se presona el boton siguiente para pasar al siguiente formulario
                    var btnSiguiente3 = await NewPage.QuerySelectorAsync("#formulario > input[type=button]:nth-child(4)");

                    if (btnSiguiente3 != null)
                    {
                        await btnSiguiente3.ClickAsync();
                    }

                    await NewPage.WaitForNavigationAsync();
                }
                else
                {
                    throw new Exception("No se ha podido ingresar la forma de pago");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }