public List<eFact_Entidades.Comprobante> ConsutarComprobantesVigentes(string CuitEmpresa) { StringBuilder commandText = new StringBuilder(); commandText.Append("Select Comprobantes.*, Lotes.PuntoVenta as PuntoVenta, Lotes.CuitVendedor as CuitEmpresa, '' as LoteXML from Comprobantes, Lotes, WF_Op where Comprobantes.IdLote=Lotes.IdLote and Lotes.IdOp=WF_Op.IdOp and WF_Op.IdEstado in ('Vigente') "); if (CuitEmpresa != "") { commandText.Append("and Lotes.CuitVendedor = '" + CuitEmpresa + "' "); } commandText.Append("order by Comprobantes.IdLote"); DataSet ds = new DataSet(); ds = (DataSet)Ejecutar(commandText.ToString(), TipoRetorno.DS, Transaccion.Acepta, sesion.CnnStr); List<eFact_Entidades.Comprobante> Comprobantes = new List<eFact_Entidades.Comprobante>(); if (ds.Tables.Count == 0) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Validaciones.NoHayDatos(); } else { for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { eFact_Entidades.Comprobante Comprobante = new eFact_Entidades.Comprobante(); CopiarConLoteXML(ds, i, Comprobante); Comprobantes.Add(Comprobante); } } return Comprobantes; }
private void Copiar(DataSet ds, int NroRowPpal, eFact_Entidades.Lote Hasta) { DataRow Desde; Desde = ds.Tables[0].Rows[NroRowPpal]; Hasta.IdLote = Convert.ToInt32(Desde["IdLote"]); Hasta.CuitVendedor = Convert.ToString(Desde["CuitVendedor"]); Hasta.PuntoVenta = Convert.ToString(Desde["PuntoVenta"]); Hasta.NumeroLote = Convert.ToString(Desde["NumeroLote"]); Hasta.NumeroEnvio = Convert.ToInt32(Desde["NumeroEnvio"]); Hasta.IdOp = Convert.ToInt32(Desde["IdOp"]); Hasta.FechaAlta = Convert.ToDateTime(Desde["FechaAlta"]); if (Desde["FechaEnvio"].ToString() == "") { Desde["FechaEnvio"] = "31/12/9998"; } Hasta.FechaEnvio = Convert.ToDateTime(Desde["FechaEnvio"]); Hasta.NombreArch = Convert.ToString(Desde["NombreArch"]); Hasta.CantidadRegistros = Convert.ToInt32(Desde["CantidadRegistros"]); Hasta.LoteXml = Convert.ToString(Desde["LoteXml"]); Hasta.LoteXmlIF = Convert.ToString(Desde["LoteXmlIF"]); Hasta.IdNaturalezaLote = Convert.ToString(Desde["IdNaturalezaLote"]); Hasta.WF = new CedEntidades.WF(); Hasta.WF.IdOp = Convert.ToInt32(Desde["IdOp"]); Hasta.WF.IdFlow = Convert.ToString(Desde["IdFlow"]); Hasta.WF.DescrFlow = Convert.ToString(Desde["DescrFlow"]); Hasta.WF.IdCircuito = Convert.ToString(Desde["IdCircuito"]); Hasta.WF.IdCircuitoOrig = Hasta.WF.IdCircuito; Hasta.WF.DescrCircuito = Convert.ToString(Desde["DescrCircuito"]); Hasta.WF.IdNivSeg = Convert.ToInt32(Desde["IdNivSeg"]); Hasta.WF.DescrNivSeg = Convert.ToString(Desde["DescrNivSeg"]); Hasta.WF.DescrOp = Convert.ToString(Desde["DescrOp"]); Hasta.WF.IdEstado = Convert.ToString(Desde["IdEstado"]); Hasta.WF.UltActualiz = Cedeira.SV.db.ByteArray2TimeStamp((byte[])Desde["UltActualiz"]); Hasta.WF.DescrEstado = Convert.ToString(Desde["DescrEstado"]); Hasta.WF.Sesion = sesion; //Comprobantes DataRow[] dr = ds.Tables[1].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.Comprobantes = new List<eFact_Entidades.Comprobante>(); for (int i = 0; i < dr.Length; i++) { eFact_Entidades.Comprobante c = new eFact_Entidades.Comprobante(); c.IdLote = Convert.ToInt32(dr[i]["IdLote"]); c.IdTipoComprobante = Convert.ToInt16(dr[i]["IdTipoComprobante"]); c.NumeroComprobante = Convert.ToString(dr[i]["NumeroComprobante"]); c.IdMoneda = Convert.ToString(dr[i]["IdMoneda"]); c.Importe = Convert.ToDecimal(dr[i]["Importe"]); c.NroDocComprador = Convert.ToString(dr[i]["NroDocComprador"]); c.TipoDocComprador = Convert.ToInt16(dr[i]["TipoDocComprador"]); c.NombreComprador = Convert.ToString(dr[i]["NombreComprador"]); c.Fecha= Convert.ToDateTime(dr[i]["Fecha"]); c.NumeroCAE = Convert.ToString(dr[i]["NumeroCAE"]); if (dr[i]["FechaCAE"].ToString() == "") { dr[i]["FechaCAE"] = "31/12/9998"; } c.FechaCAE = Convert.ToDateTime(dr[i]["FechaCAE"]); if (dr[i]["FechaVtoCAE"].ToString() == "") { dr[i]["FechaVtoCAE"] = "31/12/9998"; } c.FechaVtoCAE = Convert.ToDateTime(dr[i]["FechaVtoCAE"]); if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { c.ImporteMonedaOrigen = Convert.ToDecimal(dr[i]["ImporteMonedaOrigen"]); } if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { c.TipoCambio = Convert.ToDecimal(dr[i]["TipoCambio"]); } if (dr[i]["EstadoIFoAFIP"].ToString() != "") { c.EstadoIFoAFIP = Convert.ToString(dr[i]["EstadoIFoAFIP"]); } if (dr[i]["ComentarioIFoAFIP"].ToString() != "") { c.ComentarioIFoAFIP = Convert.ToString(dr[i]["ComentarioIFoAFIP"]); } Hasta.Comprobantes.Add(c); } //ComprobantesC (Compras) dr = ds.Tables[2].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.ComprobantesC = new List<eFact_Entidades.ComprobanteC>(); for (int i = 0; i < dr.Length; i++) { eFact_Entidades.ComprobanteC cC = new eFact_Entidades.ComprobanteC(); cC.IdLote = Convert.ToInt32(dr[i]["IdLote"]); cC.PuntoVenta = Convert.ToString(dr[i]["PuntoVenta"]); cC.IdTipoComprobante = Convert.ToInt16(dr[i]["IdTipoComprobante"]); cC.NumeroComprobante = Convert.ToString(dr[i]["NumeroComprobante"]); cC.IdMoneda = Convert.ToString(dr[i]["IdMoneda"]); cC.Importe = Convert.ToDecimal(dr[i]["Importe"]); cC.NroDocVendedor = Convert.ToString(dr[i]["NroDocVendedor"]); cC.TipoDocVendedor = Convert.ToInt16(dr[i]["TipoDocVendedor"]); cC.NombreVendedor = Convert.ToString(dr[i]["NombreVendedor"]); cC.Fecha = Convert.ToDateTime(dr[i]["Fecha"]); if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { cC.ImporteMonedaOrigen = Convert.ToDecimal(dr[i]["ImporteMonedaOrigen"]); } if (dr[i]["ImporteMonedaOrigen"].ToString() != "") { cC.TipoCambio = Convert.ToDecimal(dr[i]["TipoCambio"]); } Hasta.ComprobantesC.Add(cC); } //ComprobantesC (Compras - Despachos de Impotación) dr = ds.Tables[3].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.ComprobantesD = new List<eFact_Entidades.ComprobanteD>(); for (int i = 0; i < dr.Length; i++) { eFact_Entidades.ComprobanteD cD = new eFact_Entidades.ComprobanteD(); cD.IdLote = Convert.ToInt32(dr[i]["IdLote"]); cD.IdTipoComprobante = Convert.ToInt16(dr[i]["IdTipoComprobante"]); cD.NumeroDespacho = Convert.ToString(dr[i]["NumeroDespacho"]); cD.NroDocVendedor = Convert.ToString(dr[i]["NroDocVendedor"]); cD.TipoDocVendedor = Convert.ToInt16(dr[i]["TipoDocVendedor"]); cD.NombreVendedor = Convert.ToString(dr[i]["NombreVendedor"]); cD.Fecha = Convert.ToDateTime(dr[i]["Fecha"]); cD.IdMoneda = Convert.ToString(dr[i]["IdMoneda"]); cD.Importe = Convert.ToDecimal(dr[i]["Importe"]); //if (dr[i]["ImporteMonedaOrigen"].ToString() != "") //{ // cD.ImporteMonedaOrigen = Convert.ToDecimal(dr[i]["ImporteMonedaOrigen"]); //} //if (dr[i]["ImporteMonedaOrigen"].ToString() != "") //{ // cD.TipoCambio = Convert.ToDecimal(dr[i]["TipoCambio"]); //} Hasta.ComprobantesD.Add(cD); } //WF dr = ds.Tables[4].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.WF.Log = new List<CedEntidades.Log>(); for (int i = 0; i < dr.Length; i++) { CedEntidades.Log l = new CedEntidades.Log(); l.Circuito.IdCircuito = Convert.ToString(dr[i]["IdCircuito"]); l.Comentario = Convert.ToString(dr[i]["Comentario"]); l.Estado = Convert.ToString(dr[i]["Estado"]); l.Evento.Id = Convert.ToString(dr[i]["IdEvento"]); l.Evento.Descr = Convert.ToString(dr[i]["Evento"]); l.Fecha = Convert.ToDateTime(dr[i]["Fecha"]); l.Flow.IdFlow = Convert.ToString(dr[i]["IdFlow"]); l.Grupo.Id = Convert.ToString(dr[i]["IdGrupo"]); l.Grupo.Descr = Convert.ToString(dr[i]["DescrGrupo"]); l.IdLog = Convert.ToInt32(dr[i]["IdLog"]); l.IdNivSeg = Convert.ToInt32(dr[i]["IdNivSeg"]); l.Responsable = Convert.ToString(dr[i]["Responsable"]); l.Supervisor = Convert.ToBoolean(dr[i]["Supervisor"]); l.SupervisorNivel = Convert.ToByte(dr[i]["SupervisorNivel"]); l.Usuario.IdUsuario = Convert.ToString(dr[i]["IdUsuario"]); l.Usuario.Nombre = Convert.ToString(dr[i]["Nombre"]); Hasta.WF.Log.Add(l); } dr = ds.Tables[5].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.WF.EventosPosibles = new List<CedEntidades.Evento>(); for (int i = 0; i < dr.Length; i++) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Flow.IdFlow = Convert.ToString(dr[i]["IdFlow"]); evento.Id = Convert.ToString(dr[i]["IdEvento"]); evento.Descr = Convert.ToString(dr[i]["DescrEvento"]); evento.TextoAccion = Convert.ToString(dr[i]["TextoAccion"]); evento.IdEstadoDsd.IdEstado = Convert.ToString(dr[i]["IdEstadoDsd"]); evento.IdEstadoHst.IdEstado = Convert.ToString(dr[i]["IdEstadoHst"]); evento.Automatico = Convert.ToBoolean(dr[i]["Automatico"]); evento.CXO = Convert.ToBoolean(dr[i]["CXO"]); evento.XLote = Convert.ToBoolean(dr[i]["XLote"]); evento.Flow.DescrFlow = Convert.ToString(dr[i]["DescrFlow"]); evento.IdEstadoDsd.DescrEstado = Convert.ToString(dr[i]["DescrEstadoDsd"]); evento.IdEstadoHst.DescrEstado = Convert.ToString(dr[i]["DescrEstadoHst"]); Hasta.WF.EventosPosibles.Add(evento); } dr = ds.Tables[6].Select("IdLote = " + Convert.ToInt32(Hasta.IdLote)); Hasta.WF.EventosXLotePosibles = new List<CedEntidades.Evento>(); for (int i = 0; i < dr.Length; i++) { CedEntidades.Evento evento = new CedEntidades.Evento(); evento.Flow.IdFlow = Convert.ToString(dr[i]["IdFlow"]); evento.Id = Convert.ToString(dr[i]["IdEvento"]); evento.Descr = Convert.ToString(dr[i]["DescrEvento"]); evento.TextoAccion = Convert.ToString(dr[i]["TextoAccion"]); evento.IdEstadoDsd.IdEstado = Convert.ToString(dr[i]["IdEstadoDsd"]); evento.IdEstadoHst.IdEstado = Convert.ToString(dr[i]["IdEstadoHst"]); evento.Automatico = Convert.ToBoolean(dr[i]["Automatico"]); evento.CXO = Convert.ToBoolean(dr[i]["CXO"]); evento.XLote = Convert.ToBoolean(dr[i]["XLote"]); evento.Flow.DescrFlow = Convert.ToString(dr[i]["DescrFlow"]); evento.IdEstadoDsd.DescrEstado = Convert.ToString(dr[i]["DescrEstadoDsd"]); evento.IdEstadoHst.DescrEstado = Convert.ToString(dr[i]["DescrEstadoHst"]); Hasta.WF.EventosXLotePosibles.Add(evento); } }
public static void Procesar(out eFact_Entidades.Lote Lote, eFact_Entidades.Archivo Archivo, eFact_Entidades.Aplicacion Aplicacion, CedEntidades.Sesion Sesion) { //Antes de procesar el archivo grabamos los datos básicos del mismo. if (Archivo.Tipo.ToUpper() != ".TXT" && Archivo.Tipo.ToUpper() != ".XML" && Archivo.Tipo.ToUpper() != ".REC") { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.TipoDeArchivoIncorrecto("Solo se aceptan archivo TXT o XML."); } FeaEntidades.InterFacturas.lote_comprobantes Lc = new FeaEntidades.InterFacturas.lote_comprobantes(); System.IO.MemoryStream ms; System.Xml.Serialization.XmlSerializer x; switch (Aplicacion.CodigoAplic.ToString()) { case "eFactInterface": { if (Archivo.Tipo.ToUpper() == ".XML") { //StreamReader objReader = new StreamReader(Archivo.Path + "\\" + Archivo.Nombre, Encoding.GetEncoding("iso-8859-1")); StreamReader objReader = new StreamReader(Archivo.Path + "\\" + Archivo.Nombre, Encoding.GetEncoding("utf-8")); string cadena; cadena = objReader.ReadToEnd(); objReader.Close(); byte[] a = new byte[cadena.Length];// esta es la declaracion de tu arreglo System.Text.Encoding codificador; //codificador = System.Text.Encoding.GetEncoding("iso-8859-1"); codificador = System.Text.Encoding.GetEncoding("utf-8"); cadena = cadena.Replace("&", "&"); a = codificador.GetBytes(cadena); ms = new System.IO.MemoryStream(a); ms.Seek(0, System.IO.SeekOrigin.Begin); Lc = new FeaEntidades.InterFacturas.lote_comprobantes(); x = new System.Xml.Serialization.XmlSerializer(Lc.GetType()); Lc = (FeaEntidades.InterFacturas.lote_comprobantes)x.Deserialize(ms); } else if (Archivo.Tipo.ToUpper() == ".TXT") { eFact_RN.Engine Engine = new eFact_RN.Engine(); Lc = new FeaEntidades.InterFacturas.lote_comprobantes(); Engine.LeerMultiRegistro(out Lc, Archivo.Path + "\\" + Archivo.Nombre, Sesion); } else if (Archivo.Tipo.ToUpper() == ".REC") { eFact_RN.Engine Engine = new eFact_RN.Engine(); Lc = new FeaEntidades.InterFacturas.lote_comprobantes(); Engine.LeerRegistroRECE(out Lc, Archivo.Path + "\\" + Archivo.Nombre, Sesion); } break; } default: { break; } } if (Lc.cabecera_lote.cuit_vendedor.ToString().Trim() != Aplicacion.OtrosFiltrosCuit.Trim() && Aplicacion.OtrosFiltrosCuit.Trim() != "") { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.CUITNoHabilitadoParaElUsuario(Lc.cabecera_lote.cuit_vendedor.ToString()); } eFact_Entidades.Lote lote = new eFact_Entidades.Lote(); lote.CuitVendedor = Lc.cabecera_lote.cuit_vendedor.ToString(); lote.PuntoVenta = Lc.cabecera_lote.punto_de_venta.ToString(); lote.NumeroLote = Lc.cabecera_lote.id_lote.ToString(); lote.CantidadRegistros = Convert.ToInt32(Lc.cabecera_lote.cantidad_reg.ToString()); //Verificar bandeja de salida.----------- int numeroEnvioDisponible = 0; eFact_RN.Lote.ObtenerNumeroEnvioDisponible(out numeroEnvioDisponible, lote.CuitVendedor, lote.NumeroLote, lote.PuntoVenta, Sesion); lote.NumeroEnvio = numeroEnvioDisponible; //--------------------------------------- lote.NombreArch = Archivo.Nombre; if (Lc.cabecera_lote.IdNaturalezaLoteFieldSpecified) { lote.IdNaturalezaLote = Lc.cabecera_lote.IdNaturalezaLoteField; } else { lote.IdNaturalezaLote = ""; } int cantComprobantes = 0; for (int i = 0; i < Lc.comprobante.Length; i++) { if (Lc.comprobante[i] != null) { cantComprobantes += 1; } else { break; } } if (Lc.comprobanteDespacho != null) { for (int i = 0; i < Lc.comprobanteDespacho.Length; i++) { if (Lc.comprobanteDespacho[i] != null) { cantComprobantes += 1; } else { break; } } } if (Lc.cabecera_lote.cantidad_reg != cantComprobantes) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.ProcesarArchivo("Problemas con la cantidad de registros declarada."); } List<eFact_Entidades.ComprobanteC> cCListVigentes = new List<eFact_Entidades.ComprobanteC>(); List<eFact_Entidades.ComprobanteD> cDListVigentes = new List<eFact_Entidades.ComprobanteD>(); if (Lc.cabecera_lote.IdNaturalezaLoteField != null && Lc.cabecera_lote.IdNaturalezaLoteField == "Compra") { //----- Consultar comprobantes de compras 'Vigentes' -----. if (Lc.comprobante[0] != null) { cCListVigentes = eFact_RN.Comprobante.ConsultarComprobantesCVigentes(Lc.cabecera_lote.cuit_vendedor.ToString(), Sesion); } //----- Consultar despachos 'Vigentes' -----. if (Lc.comprobanteDespacho[0] != null) { cDListVigentes = eFact_RN.Comprobante.ConsultarComprobantesDVigentes(Lc.cabecera_lote.cuit_vendedor.ToString(), Sesion); } } List<eFact_Entidades.Comprobante> cVListVigentes = new List<eFact_Entidades.Comprobante>(); if (Lc.cabecera_lote.IdNaturalezaLoteField != null && Lc.cabecera_lote.IdNaturalezaLoteField == "Venta") { //----- Consultar comprobantes de ventas 'Vigentes' -----. cVListVigentes = eFact_RN.Comprobante.ConsultarComprobantesVigentes(Lc.cabecera_lote.cuit_vendedor.ToString(), Sesion); } for (int i = 0; i < Lc.comprobante.Length; i++) { if (Lc.comprobante[i] != null) { if (lote.IdNaturalezaLote != "Compra") { //Ventas eFact_Entidades.Comprobante c = new eFact_Entidades.Comprobante(); c.IdTipoComprobante = Convert.ToInt16(Lc.comprobante[i].cabecera.informacion_comprobante.tipo_de_comprobante.ToString()); c.NumeroComprobante = Lc.comprobante[i].cabecera.informacion_comprobante.numero_comprobante.ToString(); c.TipoDocComprador = Convert.ToInt16(Lc.comprobante[i].cabecera.informacion_comprador.codigo_doc_identificatorio.ToString()); c.NroDocComprador = Lc.comprobante[i].cabecera.informacion_comprador.nro_doc_identificatorio.ToString(); c.NombreComprador = Lc.comprobante[i].cabecera.informacion_comprador.denominacion; c.Fecha = ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_emision.ToString()); c.NumeroCAE = Convert.ToString(Lc.comprobante[i].cabecera.informacion_comprobante.cae); if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae != null && Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae.ToString() != "") { c.FechaCAE = ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae.ToString()); } if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae != null && Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae.ToString() != "") { c.FechaVtoCAE = ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae.ToString()); } c.IdMoneda = Convert.ToString(Lc.comprobante[i].resumen.codigo_moneda); c.Importe = Convert.ToDecimal(Lc.comprobante[i].resumen.importe_total_factura); if (Lc.comprobante[i].resumen.importes_moneda_origen != null) { c.ImporteMonedaOrigen = Convert.ToDecimal(Lc.comprobante[i].resumen.importes_moneda_origen.importe_total_factura); } c.TipoCambio = Convert.ToDecimal(Lc.comprobante[i].resumen.tipo_de_cambio); if (Lc.comprobante[i].extensiones != null) { if (Lc.comprobante[i].extensiones.extensiones_camara_facturas != null) { if (Lc.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion != null) { Lc.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion = Lc.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion.Trim(); if (Lc.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion.Length != 0 && Lc.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion.Length != 32) { Lc.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion = Cedeira.SV.Fun.CreateMD5Hash(Lc.comprobante[i].extensiones.extensiones_camara_facturas.clave_de_vinculacion); } } } } lote.Comprobantes.Add(c); if (lote.IdNaturalezaLote == "Venta") { List<eFact_Entidades.Comprobante> listAux = cVListVigentes.FindAll((delegate(eFact_Entidades.Comprobante e1) { return e1.NroDocComprador == c.NroDocComprador && e1.PuntoVenta.ToString() == c.PuntoVenta && e1.IdTipoComprobante == c.IdTipoComprobante && e1.NumeroComprobante == c.NumeroComprobante; })); if (listAux.Count != 0) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.ProcesarArchivo("Comprobante existente. Cuit Comprador: " + c.NroDocComprador + " Punto Venta: " + c.PuntoVenta + " Tipo: " + c.IdTipoComprobante.ToString() + " Nro: " + c.NumeroComprobante); } } } else { //Compras eFact_Entidades.ComprobanteC cC = new eFact_Entidades.ComprobanteC(); cC.PuntoVenta = Lc.comprobante[i].cabecera.informacion_comprobante.punto_de_venta.ToString(); cC.IdTipoComprobante = Convert.ToInt16(Lc.comprobante[i].cabecera.informacion_comprobante.tipo_de_comprobante.ToString()); cC.NumeroComprobante = Lc.comprobante[i].cabecera.informacion_comprobante.numero_comprobante.ToString(); cC.TipoDocVendedor = Convert.ToInt16("80"); cC.NroDocVendedor = Lc.comprobante[i].cabecera.informacion_vendedor.cuit.ToString(); cC.NombreVendedor = Lc.comprobante[i].cabecera.informacion_vendedor.razon_social; cC.Fecha = ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_emision.ToString()); cC.IdMoneda = Convert.ToString(Lc.comprobante[i].resumen.codigo_moneda); cC.Importe = Convert.ToDecimal(Lc.comprobante[i].resumen.importe_total_factura); if (Lc.comprobante[i].resumen.importes_moneda_origen != null) { cC.ImporteMonedaOrigen = Convert.ToDecimal(Lc.comprobante[i].resumen.importes_moneda_origen.importe_total_factura); } cC.TipoCambio = Convert.ToDecimal(Lc.comprobante[i].resumen.tipo_de_cambio); lote.ComprobantesC.Add(cC); List<eFact_Entidades.ComprobanteC> listAux = cCListVigentes.FindAll((delegate(eFact_Entidades.ComprobanteC e1) { return e1.NroDocVendedor == cC.NroDocVendedor && e1.PuntoVenta.ToString() == cC.PuntoVenta && e1.IdTipoComprobante == cC.IdTipoComprobante && e1.NumeroComprobante == cC.NumeroComprobante; })); if (listAux.Count != 0) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.ProcesarArchivo("Comprobante existente. Cuit Vendedor: " + cC.NroDocVendedor + " Punto Venta: " + cC.PuntoVenta + " Tipo: " + cC.IdTipoComprobante.ToString() + " Nro: " + cC.NumeroComprobante); } } } else { break; } } if (Lc.comprobanteDespacho != null) { for (int i = 0; i < Lc.comprobanteDespacho.Length; i++) { if (Lc.comprobanteDespacho[i] != null) { eFact_Entidades.ComprobanteD cD = new eFact_Entidades.ComprobanteD(); cD.IdTipoComprobante = Convert.ToInt16(Lc.comprobanteDespacho[i].DespachoCabecera.TipoComprobante.ToString()); cD.NumeroDespacho = Lc.comprobanteDespacho[i].DespachoCabecera.NumeroDespacho.ToString(); cD.TipoDocVendedor = Convert.ToInt16(Lc.comprobanteDespacho[i].DespachoCabecera.TipoDocVendedor); cD.NroDocVendedor = Lc.comprobanteDespacho[i].DespachoCabecera.NroDocVendedor.ToString(); cD.NombreVendedor = Lc.comprobanteDespacho[i].DespachoCabecera.NombreVendedor; cD.Fecha = ConvertirStringToDateTime(Lc.comprobanteDespacho[i].DespachoCabecera.Fecha.ToString()); cD.IdMoneda = Convert.ToString(Lc.comprobanteDespacho[i].DespachoResumen.Moneda); cD.Importe = Convert.ToDecimal(Lc.comprobanteDespacho[i].DespachoResumen.ImporteTotal); //cD.ImporteMonedaOrigen = Convert.ToDecimal(Lc.comprobante[i].resumen.importes_moneda_origen.importe_total_factura); cD.TipoCambio = Convert.ToDecimal(Lc.comprobanteDespacho[i].DespachoResumen.TipoCambio); lote.ComprobantesD.Add(cD); List<eFact_Entidades.ComprobanteD> listAux = cDListVigentes.FindAll((delegate(eFact_Entidades.ComprobanteD e1) { return e1.NroDocVendedor == cD.NroDocVendedor && e1.IdTipoComprobante == cD.IdTipoComprobante && e1.NumeroDespacho == cD.NumeroDespacho; })); if (listAux.Count != 0) { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.ProcesarArchivo("Comprobante de Despacho existente. Cuit Vendedor: " + cD.NroDocVendedor + " Tipo: " + cD.IdTipoComprobante.ToString() + " Nro: " + cD.NumeroDespacho); } } else { break; } } } string loteXml = ""; eFact_RN.Lote.SerializarLc(out loteXml, Lc); lote.LoteXml = loteXml; Lote = lote; }
private void ConsultarLote() { try { Cursor = System.Windows.Forms.Cursors.WaitCursor; if (DetalleLoteDataGridView.SelectedRows.Count != 0) { eFact_Entidades.Comprobante c = new eFact_Entidades.Comprobante(); int renglon = DetalleLoteDataGridView.SelectedRows[0].Index; ComentariosXComprobante cxc = new ComentariosXComprobante(lote.Comprobantes[renglon].ComentarioIFoAFIP); cxc.ShowDialog(); cxc.Dispose(); } } catch (Exception ex) { Microsoft.ApplicationBlocks.ExceptionManagement.ExceptionManager.Publish(ex); } finally { Cursor = System.Windows.Forms.Cursors.Default; } }
public static void ActualizarDatosCAE(eFact_Entidades.Lote Lote, FeaEntidades.InterFacturas.lote_comprobantes Lc) { 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(Lc.GetType()); x.Serialize(writer, Lc); ms = (MemoryStream)writer.BaseStream; XmlizedString = eFact_RN.Tablero.ByteArrayToString(ms.ToArray()); ms.Close(); ms = null; Lote.LoteXmlIF = XmlizedString; eFact_Entidades.Comprobante comprobante =new eFact_Entidades.Comprobante(); string sFecha = ""; for (int i = 0; i < Lc.comprobante.Length; i++) { eFact_Entidades.Comprobante c = Lote.Comprobantes.Find((delegate(eFact_Entidades.Comprobante e1) { return e1.IdTipoComprobante == Convert.ToInt16(Lc.comprobante[i].cabecera.informacion_comprobante.tipo_de_comprobante.ToString()) && e1.NumeroComprobante == Lc.comprobante[i].cabecera.informacion_comprobante.numero_comprobante.ToString(); })); if (Lc.comprobante[i].cabecera.informacion_comprobante.cae != null) { c.NumeroCAE = Lc.comprobante[i].cabecera.informacion_comprobante.cae.ToString(); } if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae != null) { sFecha = Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae.ToString(); c.FechaCAE = Convert.ToDateTime(sFecha.Substring(0, 4) + "/" + sFecha.Substring(4, 2) + "/" + sFecha.Substring(6, 2)); } if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae != null) { sFecha = Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae.ToString(); c.FechaVtoCAE = Convert.ToDateTime(sFecha.Substring(0, 4) + "/" + sFecha.Substring(4, 2) + "/" + sFecha.Substring(6, 2)); } c.EstadoIFoAFIP = Lc.comprobante[i].cabecera.informacion_comprobante.resultado; c.ComentarioIFoAFIP = Lc.comprobante[i].cabecera.informacion_comprobante.motivo; } }
public static void Lc2Lote(out eFact_Entidades.Lote Lote, FeaEntidades.InterFacturas.lote_comprobantes Lc, eFact_Entidades.Aplicacion Aplicacion, CedEntidades.Sesion Sesion) { if (Lc.cabecera_lote.cuit_vendedor.ToString().Trim() != Aplicacion.OtrosFiltrosCuit.Trim() && Aplicacion.OtrosFiltrosCuit.Trim() != "") { throw new Microsoft.ApplicationBlocks.ExceptionManagement.Archivo.CUITNoHabilitadoParaElUsuario(Lc.cabecera_lote.cuit_vendedor.ToString()); } eFact_Entidades.Lote lote = new eFact_Entidades.Lote(); lote.CuitVendedor = Lc.cabecera_lote.cuit_vendedor.ToString(); lote.PuntoVenta = Lc.cabecera_lote.punto_de_venta.ToString(); lote.NumeroLote = Lc.cabecera_lote.id_lote.ToString(); lote.FechaAlta = DateTime.Now; if (Lc.cabecera_lote.fecha_envio_lote != null) { lote.FechaEnvio = ConvertirStringToDateTime(Lc.cabecera_lote.fecha_envio_lote.ToString()); } else { lote.FechaEnvio = Convert.ToDateTime("31/12/9998"); } lote.CantidadRegistros = Convert.ToInt32(Lc.cabecera_lote.cantidad_reg.ToString()); //Verificar bandeja de salida. //int numeroEnvioDisponible = 0; //eFact_RN.Lote.ObtenerNumeroEnvioDisponible(out numeroEnvioDisponible, lote.CuitVendedor, lote.NumeroLote, lote.PuntoVenta, eFact_Aplicacion.Sesion); string loteXml = ""; eFact_RN.Lote.SerializarLc(out loteXml, Lc); lote.LoteXmlIF = loteXml; lote.NumeroEnvio = 0; lote.NombreArch = ""; lote.WF = Cedeira.SV.WF.Nueva("eFact", "Fact", 0, "Facturacion Electrónica", Sesion); for (int i = 0; i < Lc.cabecera_lote.cantidad_reg; i++) { eFact_Entidades.Comprobante c = new eFact_Entidades.Comprobante(); c.IdTipoComprobante = Convert.ToInt16(Lc.comprobante[i].cabecera.informacion_comprobante.tipo_de_comprobante.ToString()); c.NumeroComprobante = Lc.comprobante[i].cabecera.informacion_comprobante.numero_comprobante.ToString(); c.TipoDocComprador = Convert.ToInt16(Lc.comprobante[i].cabecera.informacion_comprador.codigo_doc_identificatorio.ToString()); c.NroDocComprador = Lc.comprobante[i].cabecera.informacion_comprador.nro_doc_identificatorio.ToString(); c.NombreComprador = Lc.comprobante[i].cabecera.informacion_comprador.denominacion; c.Fecha = ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_emision.ToString()); c.NumeroCAE = Convert.ToString(Lc.comprobante[i].cabecera.informacion_comprobante.cae); if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae != null && Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae.ToString() != "") { c.FechaCAE = ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_obtencion_cae.ToString()); } if (Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae != null && Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae.ToString() != "") { c.FechaVtoCAE = ConvertirStringToDateTime(Lc.comprobante[i].cabecera.informacion_comprobante.fecha_vencimiento_cae.ToString()); } c.IdMoneda = Convert.ToString(Lc.comprobante[i].resumen.codigo_moneda); c.Importe = Convert.ToDecimal(Lc.comprobante[i].resumen.importe_total_factura); if (Lc.comprobante[i].resumen.importes_moneda_origen != null) { c.ImporteMonedaOrigen = Convert.ToDecimal(Lc.comprobante[i].resumen.importes_moneda_origen.importe_total_factura); } if (Lc.comprobante[i].cabecera.informacion_comprobante.resultado != null) { c.EstadoIFoAFIP = Convert.ToString(Lc.comprobante[i].cabecera.informacion_comprobante.resultado); } if (Lc.comprobante[i].cabecera.informacion_comprobante.motivo != null) { c.ComentarioIFoAFIP = Convert.ToString(Lc.comprobante[i].cabecera.informacion_comprobante.motivo); } c.TipoCambio = Convert.ToDecimal(Lc.comprobante[i].resumen.tipo_de_cambio); lote.Comprobantes.Add(c); } Lote = lote; }