public static void ConsultarLoteIF(out FeaEntidades.InterFacturas.lote_comprobantes Lc, out eFact_RN.IBK.error[] RespErroresLote, out eFact_RN.IBK.error[] RespErroresComprobantes, eFact_Entidades.Lote Lote, string WSCertificado) { eFact_RN.IBK.error[] respErroresLote = new eFact_RN.IBK.error[0]; eFact_RN.IBK.error[] respErroresComprobantes = new eFact_RN.IBK.error[0]; FeaEntidades.InterFacturas.lote_comprobantes lcIBK = new FeaEntidades.InterFacturas.lote_comprobantes(); eFact_RN.IBK.consulta_lote_comprobantes clc = new eFact_RN.IBK.consulta_lote_comprobantes(); try { eFact_RN.Comprobante eFact_RNComprobante = new eFact_RN.Comprobante(); if (Lote.LoteXml != null || Lote.LoteXmlIF != null) { FeaEntidades.InterFacturas.lote_comprobantes lc = new FeaEntidades.InterFacturas.lote_comprobantes(); if (Lote.LoteXmlIF != null && (Lote.LoteXmlIF != "" && (Lote.IdEstado != null && (Lote.IdEstado == "AceptadoAFIP" || Lote.IdEstado == "AceptadoAFIPO" || Lote.IdEstado == "AceptadoAFIPP")))) { eFact_RN.Lote.DeserializarLc(out lc, Lote, true); } else { eFact_RN.Lote.DeserializarLc(out lc, Lote, false); } clc.cod_interno_canal = lc.cabecera_lote.cod_interno_canal; clc.cuit_canal = lc.cabecera_lote.cuit_canal; clc.cuit_vendedor = lc.cabecera_lote.cuit_vendedor; clc.punto_de_venta = lc.cabecera_lote.punto_de_venta; clc.punto_de_ventaSpecified = true; clc.id_lote = lc.cabecera_lote.id_lote; } else { clc.cuit_canal = Convert.ToInt64(@System.Configuration.ConfigurationManager.AppSettings["CuitCanal"]); clc.id_lote = Convert.ToInt64(Lote.NumeroLote); clc.cuit_vendedor = Convert.ToInt64(Lote.CuitVendedor); clc.punto_de_venta = Convert.ToInt32(Lote.PuntoVenta); clc.punto_de_ventaSpecified = true; } lcIBK = eFact_RNComprobante.ConsultarIBK(out respErroresLote, out respErroresComprobantes, clc, WSCertificado); RespErroresLote = respErroresLote; RespErroresComprobantes = respErroresComprobantes; } catch (Exception ex) { RespErroresLote = respErroresLote; RespErroresComprobantes = respErroresComprobantes; throw new Exception(ex.Message); } Lc = lcIBK; }
public static void SerializarLr(out string LoteXMLIF, eFact_RN.IBK.lote_response Lr) { //Deserializar ( pasar de FeaEntidades.InterFacturas.lote_comprobantes a string XML ) MemoryStream ms = new MemoryStream(); XmlTextWriter writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1")); System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(Lr.GetType()); x.Serialize(writer, Lr); ms = (MemoryStream)writer.BaseStream; LoteXMLIF = eFact_RN.Tablero.ByteArrayToString(ms.ToArray()); ms.Close(); ms = null; }
public static void ActualizarDatosError(eFact_Entidades.Lote Lote, eFact_RN.IBK.lote_response Lr) { MemoryStream ms; System.Xml.XmlTextWriter writer; System.Xml.Serialization.XmlSerializer x; String XmlizedString; //Actualizar lote ms = new MemoryStream(); XmlizedString = null; writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1")); x = new System.Xml.Serialization.XmlSerializer(Lr.GetType()); x.Serialize(writer, Lr); ms = (MemoryStream)writer.BaseStream; XmlizedString = eFact_RN.Tablero.ByteArrayToString(ms.ToArray()); ms.Close(); ms = null; Lote.LoteXmlIF = XmlizedString; if (Lr.comprobante_response != null) { for (int i = 0; i < Lr.comprobante_response.Length; i++) { eFact_Entidades.Comprobante c = Lote.Comprobantes.Find((delegate(eFact_Entidades.Comprobante e1) { return e1.IdTipoComprobante == Convert.ToInt16(Lr.comprobante_response[i].tipo_de_comprobante.ToString()) && e1.NumeroComprobante == Lr.comprobante_response[i].numero_comprobante.ToString(); })); c.EstadoIFoAFIP = ""; //Actualizar comentario del comprobante ms = new MemoryStream(); XmlizedString = null; writer = new XmlTextWriter(ms, System.Text.Encoding.GetEncoding("ISO-8859-1")); x = new System.Xml.Serialization.XmlSerializer(Lr.comprobante_response[i].GetType()); x.Serialize(writer, Lr.comprobante_response[i]); ms = (MemoryStream)writer.BaseStream; XmlizedString = eFact_RN.Tablero.ByteArrayToString(ms.ToArray()); ms.Close(); ms = null; c.ComentarioIFoAFIP = XmlizedString; } } }
private FeaEntidades.InterFacturas.lote_comprobantes Ibk2Fea(eFact_RN.IBK.lote_comprobantes lcIBK) { FeaEntidades.InterFacturas.lote_comprobantes lcFEA = new FeaEntidades.InterFacturas.lote_comprobantes(); lcFEA.cabecera_lote = new FeaEntidades.InterFacturas.cabecera_lote(); lcFEA.cabecera_lote.cantidad_reg = lcIBK.cabecera_lote.cantidad_reg; lcFEA.cabecera_lote.cod_interno_canal = lcIBK.cabecera_lote.cod_interno_canal; lcFEA.cabecera_lote.cuit_canal = lcIBK.cabecera_lote.cuit_canal; lcFEA.cabecera_lote.cuit_vendedor = lcIBK.cabecera_lote.cuit_vendedor; lcFEA.cabecera_lote.fecha_envio_lote = lcIBK.cabecera_lote.fecha_envio_lote; lcFEA.cabecera_lote.id_lote = lcIBK.cabecera_lote.id_lote; lcFEA.cabecera_lote.motivo = lcIBK.cabecera_lote.motivo; lcFEA.cabecera_lote.presta_serv = lcIBK.cabecera_lote.presta_serv; lcFEA.cabecera_lote.presta_servSpecified = lcIBK.cabecera_lote.presta_servSpecified; lcFEA.cabecera_lote.punto_de_venta = lcIBK.cabecera_lote.punto_de_venta; lcFEA.cabecera_lote.resultado = lcIBK.cabecera_lote.resultado; lcFEA.comprobante = new FeaEntidades.InterFacturas.comprobante[lcIBK.comprobante.Length]; for (int i = 0; i < lcIBK.comprobante.Length; i++) { FeaEntidades.InterFacturas.comprobante cIBK = new FeaEntidades.InterFacturas.comprobante(); cIBK.cabecera = new FeaEntidades.InterFacturas.cabecera(); //Comprador cIBK.cabecera.informacion_comprador = new FeaEntidades.InterFacturas.informacion_comprador(); cIBK.cabecera.informacion_comprador.codigo_doc_identificatorio = lcIBK.comprobante[i].cabecera.informacion_comprador.codigo_doc_identificatorio; cIBK.cabecera.informacion_comprador.codigo_interno = lcIBK.comprobante[i].cabecera.informacion_comprador.codigo_interno; cIBK.cabecera.informacion_comprador.condicion_ingresos_brutos = lcIBK.comprobante[i].cabecera.informacion_comprador.condicion_ingresos_brutos; cIBK.cabecera.informacion_comprador.condicion_ingresos_brutosSpecified = lcIBK.comprobante[i].cabecera.informacion_comprador.condicion_ingresos_brutosSpecified; cIBK.cabecera.informacion_comprador.condicion_IVA = lcIBK.comprobante[i].cabecera.informacion_comprador.condicion_IVA; cIBK.cabecera.informacion_comprador.condicion_IVASpecified = lcIBK.comprobante[i].cabecera.informacion_comprador.condicion_IVASpecified; cIBK.cabecera.informacion_comprador.contacto = lcIBK.comprobante[i].cabecera.informacion_comprador.contacto; cIBK.cabecera.informacion_comprador.cp = lcIBK.comprobante[i].cabecera.informacion_comprador.cp; cIBK.cabecera.informacion_comprador.denominacion = lcIBK.comprobante[i].cabecera.informacion_comprador.denominacion; cIBK.cabecera.informacion_comprador.domicilio_calle = lcIBK.comprobante[i].cabecera.informacion_comprador.domicilio_calle; cIBK.cabecera.informacion_comprador.domicilio_depto = lcIBK.comprobante[i].cabecera.informacion_comprador.domicilio_depto; cIBK.cabecera.informacion_comprador.domicilio_manzana = lcIBK.comprobante[i].cabecera.informacion_comprador.domicilio_manzana; cIBK.cabecera.informacion_comprador.domicilio_numero = lcIBK.comprobante[i].cabecera.informacion_comprador.domicilio_numero; cIBK.cabecera.informacion_comprador.domicilio_piso = lcIBK.comprobante[i].cabecera.informacion_comprador.domicilio_piso; cIBK.cabecera.informacion_comprador.domicilio_sector = lcIBK.comprobante[i].cabecera.informacion_comprador.domicilio_sector; cIBK.cabecera.informacion_comprador.domicilio_torre = lcIBK.comprobante[i].cabecera.informacion_comprador.domicilio_torre; cIBK.cabecera.informacion_comprador.email = lcIBK.comprobante[i].cabecera.informacion_comprador.email; cIBK.cabecera.informacion_comprador.GLN = lcIBK.comprobante[i].cabecera.informacion_comprador.GLN; cIBK.cabecera.informacion_comprador.GLNSpecified = lcIBK.comprobante[i].cabecera.informacion_comprador.GLNSpecified; cIBK.cabecera.informacion_comprador.inicio_de_actividades = lcIBK.comprobante[i].cabecera.informacion_comprador.inicio_de_actividades; cIBK.cabecera.informacion_comprador.localidad = lcIBK.comprobante[i].cabecera.informacion_comprador.localidad; cIBK.cabecera.informacion_comprador.nro_doc_identificatorio = lcIBK.comprobante[i].cabecera.informacion_comprador.nro_doc_identificatorio; cIBK.cabecera.informacion_comprador.nro_ingresos_brutos = lcIBK.comprobante[i].cabecera.informacion_comprador.nro_ingresos_brutos; cIBK.cabecera.informacion_comprador.provincia = lcIBK.comprobante[i].cabecera.informacion_comprador.provincia; cIBK.cabecera.informacion_comprador.telefono = lcIBK.comprobante[i].cabecera.informacion_comprador.telefono; //Info Comprobante cIBK.cabecera.informacion_comprobante = new FeaEntidades.InterFacturas.informacion_comprobante(); cIBK.cabecera.informacion_comprobante.cae = lcIBK.comprobante[i].cabecera.informacion_comprobante.cae; cIBK.cabecera.informacion_comprobante.caeSpecified = false; if (cIBK.cabecera.informacion_comprobante.cae != null && cIBK.cabecera.informacion_comprobante.cae != "") { cIBK.cabecera.informacion_comprobante.caeSpecified = true; } cIBK.cabecera.informacion_comprobante.codigo_operacion = lcIBK.comprobante[i].cabecera.informacion_comprobante.codigo_operacion; cIBK.cabecera.informacion_comprobante.condicion_de_pago = lcIBK.comprobante[i].cabecera.informacion_comprobante.condicion_de_pago; cIBK.cabecera.informacion_comprobante.condicion_de_pagoSpecified = true; cIBK.cabecera.informacion_comprobante.es_detalle_encriptado = lcIBK.comprobante[i].cabecera.informacion_comprobante.es_detalle_encriptado; cIBK.cabecera.informacion_comprobante.fecha_emision = lcIBK.comprobante[i].cabecera.informacion_comprobante.fecha_emision; cIBK.cabecera.informacion_comprobante.fecha_obtencion_cae = lcIBK.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae; cIBK.cabecera.informacion_comprobante.fecha_obtencion_caeSpecified = false; if (cIBK.cabecera.informacion_comprobante.fecha_obtencion_cae != null && cIBK.cabecera.informacion_comprobante.fecha_obtencion_cae != "") { cIBK.cabecera.informacion_comprobante.fecha_obtencion_caeSpecified = true; } cIBK.cabecera.informacion_comprobante.fecha_serv_desde = lcIBK.comprobante[i].cabecera.informacion_comprobante.fecha_serv_desde; cIBK.cabecera.informacion_comprobante.fecha_serv_hasta = lcIBK.comprobante[i].cabecera.informacion_comprobante.fecha_serv_hasta; cIBK.cabecera.informacion_comprobante.fecha_vencimiento = lcIBK.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento; cIBK.cabecera.informacion_comprobante.fecha_vencimiento_cae = lcIBK.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae; cIBK.cabecera.informacion_comprobante.fecha_vencimiento_caeSpecified = false; if (cIBK.cabecera.informacion_comprobante.fecha_vencimiento_cae != null && cIBK.cabecera.informacion_comprobante.fecha_vencimiento_cae != "") { cIBK.cabecera.informacion_comprobante.fecha_vencimiento_caeSpecified = true; } cIBK.cabecera.informacion_comprobante.iva_computable = lcIBK.comprobante[i].cabecera.informacion_comprobante.iva_computable; cIBK.cabecera.informacion_comprobante.motivo = lcIBK.comprobante[i].cabecera.informacion_comprobante.motivo; cIBK.cabecera.informacion_comprobante.numero_comprobante = lcIBK.comprobante[i].cabecera.informacion_comprobante.numero_comprobante; cIBK.cabecera.informacion_comprobante.punto_de_venta = lcIBK.comprobante[i].cabecera.informacion_comprobante.punto_de_venta; cIBK.cabecera.informacion_comprobante.resultado = lcIBK.comprobante[i].cabecera.informacion_comprobante.resultado; cIBK.cabecera.informacion_comprobante.tipo_de_comprobante = lcIBK.comprobante[i].cabecera.informacion_comprobante.tipo_de_comprobante; cIBK.cabecera.informacion_comprobante.codigo_concepto = lcIBK.comprobante[i].cabecera.informacion_comprobante.codigo_concepto; cIBK.cabecera.informacion_comprobante.codigo_conceptoSpecified = lcIBK.comprobante[i].cabecera.informacion_comprobante.codigo_conceptoSpecified; //Info Vendedor cIBK.cabecera.informacion_vendedor = new FeaEntidades.InterFacturas.informacion_vendedor(); cIBK.cabecera.informacion_vendedor.codigo_interno = lcIBK.comprobante[i].cabecera.informacion_vendedor.codigo_interno; cIBK.cabecera.informacion_vendedor.razon_social = lcIBK.comprobante[i].cabecera.informacion_vendedor.razon_social; cIBK.cabecera.informacion_vendedor.condicion_ingresos_brutos = lcIBK.comprobante[i].cabecera.informacion_vendedor.condicion_ingresos_brutos; cIBK.cabecera.informacion_vendedor.condicion_ingresos_brutosSpecified = lcIBK.comprobante[i].cabecera.informacion_vendedor.condicion_ingresos_brutosSpecified; cIBK.cabecera.informacion_vendedor.condicion_IVA = lcIBK.comprobante[i].cabecera.informacion_vendedor.condicion_IVA; cIBK.cabecera.informacion_vendedor.condicion_IVASpecified = lcIBK.comprobante[i].cabecera.informacion_vendedor.condicion_IVASpecified; cIBK.cabecera.informacion_vendedor.contacto = lcIBK.comprobante[i].cabecera.informacion_vendedor.contacto; cIBK.cabecera.informacion_vendedor.cp = lcIBK.comprobante[i].cabecera.informacion_vendedor.cp; cIBK.cabecera.informacion_vendedor.cuit = lcIBK.comprobante[i].cabecera.informacion_vendedor.cuit; cIBK.cabecera.informacion_vendedor.domicilio_calle = lcIBK.comprobante[i].cabecera.informacion_vendedor.domicilio_calle; cIBK.cabecera.informacion_vendedor.domicilio_depto = lcIBK.comprobante[i].cabecera.informacion_vendedor.domicilio_depto; cIBK.cabecera.informacion_vendedor.domicilio_manzana = lcIBK.comprobante[i].cabecera.informacion_vendedor.domicilio_manzana; cIBK.cabecera.informacion_vendedor.domicilio_numero = lcIBK.comprobante[i].cabecera.informacion_vendedor.domicilio_numero; cIBK.cabecera.informacion_vendedor.domicilio_piso = lcIBK.comprobante[i].cabecera.informacion_vendedor.domicilio_piso; cIBK.cabecera.informacion_vendedor.domicilio_sector = lcIBK.comprobante[i].cabecera.informacion_vendedor.domicilio_sector; cIBK.cabecera.informacion_vendedor.domicilio_torre = lcIBK.comprobante[i].cabecera.informacion_vendedor.domicilio_torre; cIBK.cabecera.informacion_vendedor.email = lcIBK.comprobante[i].cabecera.informacion_vendedor.email; cIBK.cabecera.informacion_vendedor.GLN = lcIBK.comprobante[i].cabecera.informacion_vendedor.GLN; cIBK.cabecera.informacion_vendedor.GLNSpecified = lcIBK.comprobante[i].cabecera.informacion_vendedor.GLNSpecified; cIBK.cabecera.informacion_vendedor.inicio_de_actividades = lcIBK.comprobante[i].cabecera.informacion_vendedor.inicio_de_actividades; cIBK.cabecera.informacion_vendedor.localidad = lcIBK.comprobante[i].cabecera.informacion_vendedor.localidad; cIBK.cabecera.informacion_vendedor.nro_ingresos_brutos = lcIBK.comprobante[i].cabecera.informacion_vendedor.nro_ingresos_brutos; cIBK.cabecera.informacion_vendedor.provincia = lcIBK.comprobante[i].cabecera.informacion_vendedor.provincia; cIBK.cabecera.informacion_vendedor.telefono = lcIBK.comprobante[i].cabecera.informacion_vendedor.telefono; //Info Comprobantes de Referencia if (lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias != null) { cIBK.cabecera.informacion_comprobante.referencias = new FeaEntidades.InterFacturas.informacion_comprobanteReferencias[lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias.Length]; for (int j = 0; j < lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias.Length; j++) { if (lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias[j] != null) { cIBK.cabecera.informacion_comprobante.referencias[j] = new FeaEntidades.InterFacturas.informacion_comprobanteReferencias(); if (lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias[j].tipo_comprobante_afip == eFact_RN.IBK.informacion_comprobanteReferenciasTipo_comprobante_afip.S) { cIBK.cabecera.informacion_comprobante.referencias[j].tipo_comprobante_afip = "S"; } else if (lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias[j].tipo_comprobante_afip == eFact_RN.IBK.informacion_comprobanteReferenciasTipo_comprobante_afip.N) { cIBK.cabecera.informacion_comprobante.referencias[j].tipo_comprobante_afip = "N"; } cIBK.cabecera.informacion_comprobante.referencias[j].codigo_de_referencia = lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias[j].codigo_de_referencia; cIBK.cabecera.informacion_comprobante.referencias[j].dato_de_referencia = lcIBK.comprobante[i].cabecera.informacion_comprobante.referencias[j].dato_de_referencia; } } } //Info Informacion Adicional Comprobante if (lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_adicional_comprobante != null) { cIBK.cabecera.informacion_comprobante.informacion_adicional_comprobante = new FeaEntidades.InterFacturas.informacion_adicional_comprobante[lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_adicional_comprobante.Length]; for (int j = 0; j < lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_adicional_comprobante.Length; j++) { cIBK.cabecera.informacion_comprobante.informacion_adicional_comprobante[j] = new FeaEntidades.InterFacturas.informacion_adicional_comprobante(); cIBK.cabecera.informacion_comprobante.informacion_adicional_comprobante[j].tipo = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_adicional_comprobante[j].tipo; cIBK.cabecera.informacion_comprobante.informacion_adicional_comprobante[j].valor = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_adicional_comprobante[j].valor; } } //Info Exportación if (lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion != null) { cIBK.cabecera.informacion_comprobante.informacion_exportacion = new FeaEntidades.InterFacturas.informacion_exportacion(); cIBK.cabecera.informacion_comprobante.informacion_exportacion.destino_comprobante = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.destino_comprobante; cIBK.cabecera.informacion_comprobante.informacion_exportacion.tipo_exportacion = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.tipo_exportacion; cIBK.cabecera.informacion_comprobante.informacion_exportacion.id_impositivo = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.id_impositivo; cIBK.cabecera.informacion_comprobante.informacion_exportacion.incoterms = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.incoterms; cIBK.cabecera.informacion_comprobante.informacion_exportacion.descripcion_incoterms = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.descripcion_incoterms; if (lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permiso_existente != null && lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permiso_existente != "") { cIBK.cabecera.informacion_comprobante.informacion_exportacion.permiso_existente = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permiso_existente; } if (lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permisos != null) { cIBK.cabecera.informacion_comprobante.informacion_exportacion.permisos = new FeaEntidades.InterFacturas.permisos[lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permisos.Length]; for (int j = 0; j < lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permisos.Length; j++) { if (lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permisos[j] != null) { cIBK.cabecera.informacion_comprobante.informacion_exportacion.permisos[j] = new FeaEntidades.InterFacturas.permisos(); cIBK.cabecera.informacion_comprobante.informacion_exportacion.permisos[j].id_permiso = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permisos[j].id_permiso; cIBK.cabecera.informacion_comprobante.informacion_exportacion.permisos[j].destino_mercaderia = lcIBK.comprobante[i].cabecera.informacion_comprobante.informacion_exportacion.permisos[j].destino_mercaderia; } } } } //Detalle y Lineas FeaEntidades.InterFacturas.detalle d = new FeaEntidades.InterFacturas.detalle(); IBK.detalle detalle = (IBK.detalle)lcIBK.comprobante[i].Item; d.linea = new FeaEntidades.InterFacturas.linea[detalle.linea.Length]; d.comentarios = detalle.comentarios; for (int j = 0; j < detalle.linea.Length; j++) { if (detalle.linea[j] != null) { d.linea[j] = new FeaEntidades.InterFacturas.linea(); d.linea[j].alicuota_iva = detalle.linea[j].alicuota_iva; d.linea[j].alicuota_ivaSpecified = detalle.linea[j].alicuota_ivaSpecified; d.linea[j].cantidad = detalle.linea[j].cantidad; d.linea[j].cantidadSpecified = detalle.linea[j].cantidadSpecified; d.linea[j].codigo_producto_comprador = detalle.linea[j].codigo_producto_comprador; d.linea[j].codigo_producto_vendedor = detalle.linea[j].codigo_producto_vendedor; d.linea[j].descripcion = detalle.linea[j].descripcion; d.linea[j].GTIN = detalle.linea[j].GTIN; d.linea[j].GTINSpecified = detalle.linea[j].GTINSpecified; d.linea[j].importe_iva = detalle.linea[j].importe_iva; d.linea[j].importe_ivaSpecified = detalle.linea[j].importe_ivaSpecified; d.linea[j].importe_total_articulo = detalle.linea[j].importe_total_articulo; d.linea[j].importe_total_descuentos = detalle.linea[j].importe_total_descuentos; d.linea[j].importe_total_descuentosSpecified = detalle.linea[j].importe_total_descuentosSpecified; d.linea[j].importe_total_impuestos = detalle.linea[j].importe_total_impuestos; d.linea[j].importe_total_impuestosSpecified = detalle.linea[j].importe_total_impuestosSpecified; if (detalle.linea[j].importes_moneda_origen != null) { d.linea[j].importes_moneda_origen = new FeaEntidades.InterFacturas.lineaImportes_moneda_origen(); d.linea[j].importes_moneda_origen.importe_iva = detalle.linea[j].importes_moneda_origen.importe_iva; d.linea[j].importes_moneda_origen.importe_ivaSpecified = detalle.linea[j].importes_moneda_origen.importe_ivaSpecified; d.linea[j].importes_moneda_origen.importe_total_articulo = detalle.linea[j].importes_moneda_origen.importe_total_articulo; d.linea[j].importes_moneda_origen.importe_total_articuloSpecified = detalle.linea[j].importes_moneda_origen.importe_total_articuloSpecified; d.linea[j].importes_moneda_origen.importe_total_descuentos = detalle.linea[j].importes_moneda_origen.importe_total_descuentos; d.linea[j].importes_moneda_origen.importe_total_descuentosSpecified = detalle.linea[j].importes_moneda_origen.importe_total_descuentosSpecified; d.linea[j].importes_moneda_origen.importe_total_impuestos = detalle.linea[j].importes_moneda_origen.importe_total_impuestos; d.linea[j].importes_moneda_origen.importe_total_impuestosSpecified = detalle.linea[j].importes_moneda_origen.importe_total_impuestosSpecified; d.linea[j].importes_moneda_origen.precio_unitario = detalle.linea[j].importes_moneda_origen.precio_unitario; d.linea[j].importes_moneda_origen.precio_unitarioSpecified = detalle.linea[j].importes_moneda_origen.precio_unitarioSpecified; } if (detalle.linea[j].impuestos != null) { d.linea[j].impuestos = new FeaEntidades.InterFacturas.lineaImpuestos[detalle.linea[j].impuestos.Length]; for (int k = 0; k < d.linea[j].impuestos.Length; k++) { d.linea[j].impuestos[k] = new FeaEntidades.InterFacturas.lineaImpuestos(); d.linea[j].impuestos[k].codigo_impuesto = detalle.linea[j].impuestos[k].codigo_impuesto; d.linea[j].impuestos[k].descripcion_impuesto = detalle.linea[j].impuestos[k].descripcion_impuesto; d.linea[j].impuestos[k].importe_impuesto = detalle.linea[j].impuestos[k].importe_impuesto; d.linea[j].impuestos[k].importe_impuesto_moneda_origen = detalle.linea[j].impuestos[k].importe_impuesto_moneda_origen; d.linea[j].impuestos[k].importe_impuesto_moneda_origenSpecified = detalle.linea[j].impuestos[k].importe_impuesto_moneda_origenSpecified; d.linea[j].impuestos[k].porcentaje_impuesto = detalle.linea[j].impuestos[k].porcentaje_impuesto; d.linea[j].impuestos[k].porcentaje_impuestoSpecified = detalle.linea[j].impuestos[k].porcentaje_impuestoSpecified; } } if (detalle.linea[j].descuentos != null) { d.linea[j].lineaDescuentos = new FeaEntidades.InterFacturas.lineaDescuentos[detalle.linea[j].descuentos.Length]; for (int k = 0; k < d.linea[j].lineaDescuentos.Length; k++) { d.linea[j].lineaDescuentos[k] = new FeaEntidades.InterFacturas.lineaDescuentos(); d.linea[j].lineaDescuentos[k].descripcion_descuento = detalle.linea[j].descuentos[k].descripcion_descuento; d.linea[j].lineaDescuentos[k].importe_descuento = detalle.linea[j].descuentos[k].importe_descuento; d.linea[j].lineaDescuentos[k].importe_descuento_moneda_origen = detalle.linea[j].descuentos[k].importe_descuento_moneda_origen; d.linea[j].lineaDescuentos[k].importe_descuento_moneda_origenSpecified = detalle.linea[j].descuentos[k].importe_descuento_moneda_origenSpecified; d.linea[j].lineaDescuentos[k].porcentaje_descuento = detalle.linea[j].descuentos[k].porcentaje_descuento; d.linea[j].lineaDescuentos[k].porcentaje_descuentoSpecified = detalle.linea[j].descuentos[k].porcentaje_descuentoSpecified; } } if (detalle.linea[j].informacion_adicional != null) { d.linea[j].informacion_adicional = new FeaEntidades.InterFacturas.lineaInformacion_adicional[detalle.linea[j].informacion_adicional.Length]; for (int k = 0; k < d.linea[j].informacion_adicional.Length; k++) { d.linea[j].informacion_adicional[k] = new FeaEntidades.InterFacturas.lineaInformacion_adicional(); d.linea[j].informacion_adicional[k].tipo = detalle.linea[j].informacion_adicional[k].tipo; d.linea[j].informacion_adicional[k].valor = detalle.linea[j].informacion_adicional[k].valor; } } d.linea[j].indicacion_exento_gravado = detalle.linea[j].indicacion_exento_gravado; d.linea[j].numeroLinea = detalle.linea[j].numeroLinea; d.linea[j].precio_unitario = detalle.linea[j].precio_unitario; d.linea[j].precio_unitarioSpecified = detalle.linea[j].precio_unitarioSpecified; d.linea[j].unidad = detalle.linea[j].unidad; } else { break; } } cIBK.detalle = d; //Info Extensiones cIBK.extensiones = new FeaEntidades.InterFacturas.extensiones(); cIBK.extensionesSpecified = false; if (lcIBK.comprobante[i].extensiones != null) { cIBK.extensiones = new FeaEntidades.InterFacturas.extensiones(); cIBK.extensionesSpecified = true; if (lcIBK.comprobante[i].extensiones.extensiones_camara_facturas != null) { cIBK.extensiones.extensiones_camara_facturasSpecified = true; cIBK.extensiones.extensiones_camara_facturas = new FeaEntidades.InterFacturas.extensionesExtensiones_camara_facturas(); cIBK.extensiones.extensiones_camara_facturas.clave_de_vinculacion = lcIBK.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion; cIBK.extensiones.extensiones_camara_facturas.id_idioma = lcIBK.comprobante[i].extensiones.extensiones_camara_facturas.id_idioma; cIBK.extensiones.extensiones_camara_facturas.id_template = lcIBK.comprobante[i].extensiones.extensiones_camara_facturas.id_template; } if (lcIBK.comprobante[i].extensiones.extensiones_datos_comerciales != null) { cIBK.extensiones.extensiones_datos_comerciales = lcIBK.comprobante[i].extensiones.extensiones_datos_comerciales.ToString(); } if (lcIBK.comprobante[i].extensiones.extensiones_datos_marketing != null) { cIBK.extensiones.extensiones_datos_marketing = lcIBK.comprobante[i].extensiones.extensiones_datos_marketing; } if (lcIBK.comprobante[i].extensiones.extensiones_destinatarios != null) { cIBK.extensiones.extensiones_destinatarios = new FeaEntidades.InterFacturas.extensionesExtensiones_destinatarios(); cIBK.extensiones.extensiones_destinatarios.email = lcIBK.comprobante[i].extensiones.extensiones_destinatarios.email; } } cIBK.resumen = new FeaEntidades.InterFacturas.resumen(); cIBK.resumen.cant_alicuotas_iva = lcIBK.comprobante[i].resumen.cant_alicuotas_iva; cIBK.resumen.cant_alicuotas_ivaSpecified = lcIBK.comprobante[i].resumen.cant_alicuotas_ivaSpecified; cIBK.resumen.codigo_moneda = lcIBK.comprobante[i].resumen.codigo_moneda; cIBK.resumen.descuentos = new FeaEntidades.InterFacturas.resumenDescuentos[0]; cIBK.resumen.cant_alicuotas_iva = lcIBK.comprobante[i].resumen.cant_alicuotas_iva; cIBK.resumen.cant_alicuotas_ivaSpecified = lcIBK.comprobante[i].resumen.cant_alicuotas_ivaSpecified; cIBK.resumen.codigo_moneda = lcIBK.comprobante[i].resumen.codigo_moneda; cIBK.resumen.importe_operaciones_exentas = lcIBK.comprobante[i].resumen.importe_operaciones_exentas; cIBK.resumen.importe_total_concepto_no_gravado = lcIBK.comprobante[i].resumen.importe_total_concepto_no_gravado; cIBK.resumen.importe_total_factura = lcIBK.comprobante[i].resumen.importe_total_factura; cIBK.resumen.importe_total_impuestos_internos = lcIBK.comprobante[i].resumen.importe_total_impuestos_internos; cIBK.resumen.importe_total_impuestos_internosSpecified = lcIBK.comprobante[i].resumen.importe_total_impuestos_internosSpecified; cIBK.resumen.importe_total_impuestos_municipales = lcIBK.comprobante[i].resumen.importe_total_impuestos_municipales; cIBK.resumen.importe_total_impuestos_municipalesSpecified = lcIBK.comprobante[i].resumen.importe_total_impuestos_municipalesSpecified; cIBK.resumen.importe_total_impuestos_nacionales = lcIBK.comprobante[i].resumen.importe_total_impuestos_nacionales; cIBK.resumen.importe_total_impuestos_nacionalesSpecified = lcIBK.comprobante[i].resumen.importe_total_impuestos_nacionalesSpecified; cIBK.resumen.importe_total_ingresos_brutos = lcIBK.comprobante[i].resumen.importe_total_ingresos_brutos; cIBK.resumen.importe_total_ingresos_brutosSpecified = lcIBK.comprobante[i].resumen.importe_total_ingresos_brutosSpecified; cIBK.resumen.importe_total_neto_gravado = lcIBK.comprobante[i].resumen.importe_total_neto_gravado; if (lcIBK.comprobante[i].resumen.importes_moneda_origen != null) { cIBK.resumen.importes_moneda_origen = new FeaEntidades.InterFacturas.resumenImportes_moneda_origen(); cIBK.resumen.importes_moneda_origen.importe_operaciones_exentas = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_operaciones_exentas; cIBK.resumen.importes_moneda_origen.importe_total_concepto_no_gravado = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_concepto_no_gravado; cIBK.resumen.importes_moneda_origen.importe_total_factura = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_factura; cIBK.resumen.importes_moneda_origen.importe_total_impuestos_internos = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_impuestos_internos; cIBK.resumen.importes_moneda_origen.importe_total_impuestos_internosSpecified = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_impuestos_internosSpecified; cIBK.resumen.importes_moneda_origen.importe_total_impuestos_municipales = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_impuestos_municipales; cIBK.resumen.importes_moneda_origen.importe_total_impuestos_municipalesSpecified = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_impuestos_municipalesSpecified; cIBK.resumen.importes_moneda_origen.importe_total_impuestos_nacionales = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_impuestos_nacionales; cIBK.resumen.importes_moneda_origen.importe_total_impuestos_nacionalesSpecified = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_impuestos_nacionalesSpecified; cIBK.resumen.importes_moneda_origen.importe_total_ingresos_brutos = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_ingresos_brutos; cIBK.resumen.importes_moneda_origen.importe_total_ingresos_brutosSpecified = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_ingresos_brutosSpecified; cIBK.resumen.importes_moneda_origen.importe_total_neto_gravado = lcIBK.comprobante[i].resumen.importes_moneda_origen.importe_total_neto_gravado; cIBK.resumen.importes_moneda_origen.impuesto_liq = lcIBK.comprobante[i].resumen.importes_moneda_origen.impuesto_liq; cIBK.resumen.importes_moneda_origen.impuesto_liq_rni = lcIBK.comprobante[i].resumen.importes_moneda_origen.impuesto_liq_rni; } cIBK.resumen.impuesto_liq = lcIBK.comprobante[i].resumen.impuesto_liq; cIBK.resumen.impuesto_liq_rni = lcIBK.comprobante[i].resumen.impuesto_liq_rni; if (lcIBK.comprobante[i].resumen.descuentos != null) { cIBK.resumen.descuentos = new FeaEntidades.InterFacturas.resumenDescuentos[lcIBK.comprobante[i].resumen.descuentos.Length]; for (int l = 0; l < lcIBK.comprobante[i].resumen.descuentos.Length; l++) { if (lcIBK.comprobante[i].resumen.descuentos[l] != null) { cIBK.resumen.descuentos[l] = new FeaEntidades.InterFacturas.resumenDescuentos(); cIBK.resumen.descuentos[l].alicuota_iva_descuento = lcIBK.comprobante[i].resumen.descuentos[l].alicuota_iva_descuento; cIBK.resumen.descuentos[l].alicuota_iva_descuentoSpecified = lcIBK.comprobante[i].resumen.descuentos[l].alicuota_iva_descuentoSpecified; cIBK.resumen.descuentos[l].descripcion_descuento = lcIBK.comprobante[i].resumen.descuentos[l].descripcion_descuento; cIBK.resumen.descuentos[l].importe_descuento = lcIBK.comprobante[i].resumen.descuentos[l].importe_descuento; cIBK.resumen.descuentos[l].importe_descuento_moneda_origen = lcIBK.comprobante[i].resumen.descuentos[l].importe_descuento_moneda_origen; cIBK.resumen.descuentos[l].importe_descuento_moneda_origenSpecified = lcIBK.comprobante[i].resumen.descuentos[l].importe_descuento_moneda_origenSpecified; cIBK.resumen.descuentos[l].importe_iva_descuento = lcIBK.comprobante[i].resumen.descuentos[l].importe_iva_descuento; cIBK.resumen.descuentos[l].importe_iva_descuento_moneda_origen = lcIBK.comprobante[i].resumen.descuentos[l].importe_iva_descuento_moneda_origen; cIBK.resumen.descuentos[l].importe_iva_descuento_moneda_origenSpecified = lcIBK.comprobante[i].resumen.descuentos[l].importe_iva_descuento_moneda_origenSpecified; cIBK.resumen.descuentos[l].importe_iva_descuentoSpecified = lcIBK.comprobante[i].resumen.descuentos[l].importe_iva_descuentoSpecified; cIBK.resumen.descuentos[l].porcentaje_descuento = lcIBK.comprobante[i].resumen.descuentos[l].porcentaje_descuento; cIBK.resumen.descuentos[l].porcentaje_descuentoSpecified = lcIBK.comprobante[i].resumen.descuentos[l].porcentaje_descuentoSpecified; cIBK.resumen.descuentos[l].indicacion_exento_gravado_descuento = lcIBK.comprobante[i].resumen.descuentos[l].indicacion_exento_gravado_descuento; } } } if (lcIBK.comprobante[i].resumen.impuestos != null) { cIBK.resumen.impuestos = new FeaEntidades.InterFacturas.resumenImpuestos[lcIBK.comprobante[i].resumen.impuestos.Length]; for (int l = 0; l < lcIBK.comprobante[i].resumen.impuestos.Length; l++) { if (lcIBK.comprobante[i].resumen.impuestos[l] != null) { cIBK.resumen.impuestos[l] = new FeaEntidades.InterFacturas.resumenImpuestos(); cIBK.resumen.impuestos[l].codigo_impuesto = lcIBK.comprobante[i].resumen.impuestos[l].codigo_impuesto; cIBK.resumen.impuestos[l].codigo_jurisdiccion = lcIBK.comprobante[i].resumen.impuestos[l].codigo_jurisdiccion; cIBK.resumen.impuestos[l].codigo_jurisdiccionSpecified = lcIBK.comprobante[i].resumen.impuestos[l].codigo_jurisdiccionSpecified; cIBK.resumen.impuestos[l].descripcion = lcIBK.comprobante[i].resumen.impuestos[l].descripcion; cIBK.resumen.impuestos[l].importe_impuesto = lcIBK.comprobante[i].resumen.impuestos[l].importe_impuesto; cIBK.resumen.impuestos[l].importe_impuesto_moneda_origen = lcIBK.comprobante[i].resumen.impuestos[l].importe_impuesto_moneda_origen; cIBK.resumen.impuestos[l].importe_impuesto_moneda_origenSpecified = lcIBK.comprobante[i].resumen.impuestos[l].importe_impuesto_moneda_origenSpecified; cIBK.resumen.impuestos[l].jurisdiccion_municipal = lcIBK.comprobante[i].resumen.impuestos[l].jurisdiccion_municipal; cIBK.resumen.impuestos[l].porcentaje_impuesto = lcIBK.comprobante[i].resumen.impuestos[l].porcentaje_impuesto; cIBK.resumen.impuestos[l].porcentaje_impuestoSpecified = lcIBK.comprobante[i].resumen.impuestos[l].porcentaje_impuestoSpecified; } } } cIBK.resumen.observaciones = lcIBK.comprobante[i].resumen.observaciones; cIBK.resumen.tipo_de_cambio = lcIBK.comprobante[i].resumen.tipo_de_cambio; lcFEA.comprobante[i] = cIBK; } return lcFEA; }
public void EnviarIBK(out eFact_RN.IBK.lote_response Lr, FeaEntidades.InterFacturas.lote_comprobantes lc, string certificado) { IBK.lote_comprobantes lcIBK = new IBK.lote_comprobantes(); lcIBK = Fea2Ibk(lc); IBK.FacturaWebServiceConSchema objIBK; objIBK = new IBK.FacturaWebServiceConSchema(); objIBK.Url = System.Configuration.ConfigurationManager.AppSettings["URLinterfacturas"]; objIBK.Timeout = 3900000; if (System.Configuration.ConfigurationManager.AppSettings["Proxy"] != null && System.Configuration.ConfigurationManager.AppSettings["Proxy"] != "") { System.Net.WebProxy wp = new System.Net.WebProxy(System.Configuration.ConfigurationManager.AppSettings["Proxy"], false); string usuarioProxy = System.Configuration.ConfigurationManager.AppSettings["UsuarioProxy"]; string claveProxy = System.Configuration.ConfigurationManager.AppSettings["ClaveProxy"]; string dominioProxy = System.Configuration.ConfigurationManager.AppSettings["DominioProxy"]; System.Net.NetworkCredential networkCredential = new System.Net.NetworkCredential(usuarioProxy, claveProxy, dominioProxy); wp.Credentials = networkCredential; objIBK.Proxy = wp; } string storeLocation = System.Configuration.ConfigurationManager.AppSettings["StoreLocation"]; X509Store store; if (storeLocation == "CurrentUser") { store = new X509Store(StoreLocation.CurrentUser); } else { store = new X509Store(StoreLocation.LocalMachine); } store.Open(OpenFlags.ReadOnly); X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySerialNumber, certificado, true); if (col.Count.Equals(1)) { //objIBK.RequestEncoding = System.Text.Encoding.GetEncoding("iso-8859-1"); objIBK.ClientCertificates.Add(col[0]); System.Threading.Thread.Sleep(1000); IBK.lote_comprobantes_response lcr = objIBK.receiveFacturasConSchema(lcIBK); IBK.lote_response lr = new eFact_RN.IBK.lote_response(); try { lr = ((IBK.lote_response)lcr.Item); if (lr.estado == "OK") { Lr = lr; } else { Lr = lr; StringBuilder errorText = new StringBuilder(); if (Lr.errores_lote != null) { errorText.Append("Nro. de Lote: [" + Lr.id_lote + "] \r\n"); foreach (eFact_RN.IBK.error elote in Lr.errores_lote) { errorText.Append(elote.codigo_error + " - " + elote.descripcion_error + " \r\n"); } } if (Lr.comprobante_response != null) { foreach (eFact_RN.IBK.comprobante_response comprobante in Lr.comprobante_response) { if (comprobante.errores_comprobante != null) { if (Lr.errores_lote != null) { errorText.Append("\r\n"); } errorText.Append("Punto de Venta: [" + comprobante.punto_de_venta + "] Tipo de Comprobante: [" + comprobante.tipo_de_comprobante + "] Nro. de Comprobante: [" + comprobante.numero_comprobante + "] \r\n"); foreach (eFact_RN.IBK.error ecomprobante in comprobante.errores_comprobante) { errorText.Append(ecomprobante.codigo_error + " - " + ecomprobante.descripcion_error + " \r\n"); } } } } throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.Lote.ProblemasEnvio(errorText.ToString()); } } catch (InvalidCastException) { StringBuilder errorText = new StringBuilder(); if (lcr.Item != null) { if (lcr.Item.GetType() == typeof(IBK.lote_comprobantes_responseErrores_response)) { IBK.lote_comprobantes_responseErrores_response lcrEr = new eFact_RN.IBK.lote_comprobantes_responseErrores_response(); errorText.Append("Nro. de Lote: [" + lc.cabecera_lote.id_lote + "] \r\n"); lcrEr = (IBK.lote_comprobantes_responseErrores_response)lcr.Item; foreach (IBK.error error in lcrEr.error) { errorText.Append(error.codigo_error + " - " + error.descripcion_error + " \r\n"); } } } throw new Exception(errorText.ToString()); } } else { throw new Exception("Su certificado no está disponible en nuestro repositorio"); } }
private List<FeaEntidades.InterFacturas.comprobante_listado> IBKP2Fea(eFact_RN.IBKP.comprobante_listado[] lcIBK) { List<FeaEntidades.InterFacturas.comprobante_listado> resultado = new List<FeaEntidades.InterFacturas.comprobante_listado>(); foreach (eFact_RN.IBKP.comprobante_listado cIBK in lcIBK) { FeaEntidades.InterFacturas.comprobante_listado c = new FeaEntidades.InterFacturas.comprobante_listado(); c.cuit_vendedor = cIBK.cuit_vendedor; c.estado_timestamp = cIBK.estado_timestamp; c.fecha_emision = cIBK.fecha_emision; c.fecha_timestamp = cIBK.fecha_timestamp; c.fecha_vencimiento = cIBK.fecha_vencimiento; c.numero_comprobante = cIBK.numero_comprobante; c.punto_de_venta = cIBK.punto_de_venta; c.razon_social = cIBK.razon_social; c.requiere_vinculacion = cIBK.requiere_vinculacion; c.requiere_vinculacionSpecified = cIBK.requiere_vinculacionSpecified; c.tipo_de_comprobante = cIBK.tipo_de_comprobante; c.valor_total_factura = cIBK.valor_total_factura; resultado.Add(c); } return resultado; }