Exemplo n.º 1
0
        private void btn_factura_Click(object sender, EventArgs e)
        {
            long ultimoid;

            ultimoid = guardarVentaEnBlanco();

            ControlVentas controlventas = new ControlVentas();
            Cliente       cliente       = new Cliente();

            Omega3.Modelo.Venta venta   = new Omega3.Modelo.Venta();
            ControlVenta        control = new ControlVenta();

            try
            {
                Cursor.Current = Cursors.WaitCursor;
                if (ultimoid != 0)
                {
                    venta.remito        = 0;
                    venta.ordendeCompra = "0";
                    venta.tipo_factura  = Convert.ToString(combo_comprobante.SelectedValue);
                    venta.medio_de_pago = Convert.ToInt32(combo_pago.SelectedValue);
                    if (txt_remito.Text.Trim() != "" || !string.IsNullOrEmpty(txt_remito.Text))
                    {
                        venta.remito = long.Parse(txt_remito.Text);
                    }
                    if (txt_ordenDeCompra.Text.Trim() != "" || !string.IsNullOrEmpty(txt_ordenDeCompra.Text))
                    {
                        venta.ordendeCompra = txt_ordenDeCompra.Text;
                    }
                    cliente           = ControlCliente.obtenerCliente(long.Parse(cuit.Text));
                    cliente.Documento = long.Parse(cuit.Text);



                    string id_comprobante = string.Empty;

                    id_comprobante = control.Facturar(venta, cliente, listado_articulos);


                    var task = Task.Factory.StartNew(() => controlventas.ActualizarFacturaYUrl(id_comprobante, ultimoid));

                    limpiarParteCliente();
                    lista.Clear();

                    elemento_clase = 0;

                    this.Close();
                }
                else
                {
                    MessageBox.Show("Hubo un error al insertar en la base de datos.");
                }
            }
            catch (Exception ex) { MessageBox.Show("Hubo un error", Convert.ToString(ex)); }
            finally { Cursor.Current = Cursors.Default; }
        }
Exemplo n.º 2
0
        public string FacturarReparacion(Omega3.Modelo.Venta venta, Omega3.Modelo.Cliente cliente, DataGridView dgv_tabla)
        {
            ComprobantesClient client = new ComprobantesClient();


            ComprobantesClient comprobanteClient = new ComprobantesClient();

            CrearComprobanteRequest request = new CrearComprobanteRequest();

            request.Autenticacion         = new Autenticacion();
            request.Autenticacion.Usuario = "*****@*****.**";
            request.Autenticacion.Hash    = "comercial";
            request.Autenticacion.Empresa = 6348; //[Identificador de la empresa a la que pertenece el usuario]

            request.Cliente = new FacturanteMVC.API.DTOs.Cliente();
            request.Cliente.CodigoPostal          = Convert.ToString(cliente.Codigo_postal);
            request.Cliente.CondicionPago         = venta.medio_de_pago;
            request.Cliente.Contacto              = cliente.Contacto;
            request.Cliente.DireccionFiscal       = cliente.Direccion;
            request.Cliente.EnviarComprobante     = true;
            request.Cliente.Localidad             = cliente.Localidad;
            request.Cliente.MailContacto          = cliente.Mail_contacto;
            request.Cliente.MailFacturacion       = cliente.Mail_contacto;
            request.Cliente.NroDocumento          = Convert.ToString(cliente.Documento);
            request.Cliente.PercibeIIBB           = false;
            request.Cliente.PercibeIVA            = false;
            request.Cliente.Provincia             = cliente.Provincia;
            request.Cliente.RazonSocial           = cliente.Razon;
            request.Cliente.Telefono              = Convert.ToString(cliente.Telefono);
            request.Cliente.TipoDocumento         = cliente.Tipo_documento;
            request.Cliente.TratamientoImpositivo = Convert.ToInt32(cliente.Impositiva_Id);


            request.Encabezado = new ComprobanteEncabezado();
            //Definir si vamos a tratar todo como bienes o lo vamos a modificar.
            request.Encabezado.Bienes            = 1;
            request.Encabezado.CondicionVenta    = venta.medio_de_pago;
            request.Encabezado.EnviarComprobante = true;
            //request.Encabezado.FechaHora = DateTime.Now;
            // request.Encabezado.FechaHora = new DateTime(2017,10,25);
            request.Encabezado.FechaHora = DateTime.Now;

            /*Son obligatorios si ponemos bienes en 2 (servicios) o en 3 (productos y servicios)
             * request.Encabezado.FechaServDesde = DateTime.Now;
             * request.Encabezado.FechaServHasta = DateTime.Now;*/
            request.Encabezado.FechaVtoPago             = DateTime.Now;
            request.Encabezado.ImporteImpuestosInternos = 0;
            request.Encabezado.ImportePercepcionesMunic = 0;
            request.Encabezado.Moneda = 2;

            /* No son obligatorios
             * request.Encabezado.Observaciones = "GG LA WEA";
             * //request.Encabezado.OrdenCompra = "1487"; */
            //PREGUNTAR
            request.Encabezado.PercepcionIIBB = 0;
            request.Encabezado.PercepcionIVA  = 0;
            request.Encabezado.PorcentajeIIBB = 0;
            //CAMBIAR CUANDO NOS PASEMOS A PRODUCCIóN
            request.Encabezado.Prefijo = "0004";

            /*Se siguen usando? No son obligatorios
             * request.Encabezado.Remito = "444";*/
            //request.Encabezado.TipoComprobante = venta.tipo_factura;
            request.Encabezado.TipoComprobante = venta.tipo_factura;
            //request.Encabezado.TipoComprobante = "PF";
            request.Encabezado.TipoDeCambio = 1;
            request.Encabezado.Remito       = venta.remito.ToString();
            request.Encabezado.OrdenCompra  = venta.ordendeCompra;


            request.Items = new ComprobanteItem[dgv_tabla.Rows.Count];
            int i = 0;

            foreach (DataGridViewRow item in dgv_tabla.Rows)
            {
                request.Items[i] = new ComprobanteItem();
                request.Items[i].Bonificacion   = Convert.ToDecimal(item.Cells["Bonificacion"].Value);
                request.Items[i].Cantidad       = Convert.ToInt32(item.Cells["Cantidad"].Value);
                request.Items[i].Codigo         = Convert.ToString(item.Cells["Codigo"].Value);
                request.Items[i].Detalle        = Convert.ToString(item.Cells["Descripcion"].Value);
                request.Items[i].Gravado        = true;
                request.Items[i].IVA            = Convert.ToDecimal(item.Cells["iva"].Value);
                request.Items[i].PrecioUnitario = Convert.ToDecimal(item.Cells["Precio"].Value);
                request.Items[i].Total          = Convert.ToDecimal(request.Items[i].Cantidad * Convert.ToDecimal(request.Items[i].PrecioUnitario));
                i++;
            }



            CrearComprobanteResponse response = comprobanteClient.CrearComprobante(request);

            //MessageBox.Show(ObjectToXml<CrearComprobanteResponse>(response));

            String id_comprobante = string.Empty;

            XmlDocument xml = new XmlDocument();

            xml.LoadXml(ObjectToXml <CrearComprobanteResponse>(response)); // suppose that myXmlString contains "<Names>...</Names>"

            XmlNodeList xnList = xml.SelectNodes("/CrearComprobanteResponse");

            foreach (XmlNode xn in xnList)
            {
                id_comprobante = xn["IdComprobante"].InnerText;
                MessageBox.Show("Respuesta de facturante: " + xn["Estado"].InnerText);
            }


            comprobanteClient.Close();


            return(id_comprobante);
        }