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; } }
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); }