public List <long> ObtenerRecepcionPorEstado(string condicion) { DataTable dt = null; DataAccess.DalcCFE db = new DataAccess.DalcCFE(); List <long> retorno = null; dt = db.ObtenerRecepcionPorEstado(condicion); if (dt.Rows.Count > 0) { //Convierto la entitdad retorno = ConvertToRecepcionIdEntity(dt); } return(retorno); }
public Recepcion ObtenerDatosRecepcion(long recepcionId) { DataTable dt = null; DataAccess.DalcCFE db = new DataAccess.DalcCFE(); Recepcion retorno = null; dt = db.ObtenerDatosRecepcion(recepcionId); if (dt.Rows.Count > 0) { //Convierto la entitdad retorno = ConvertToRecepcionEntity(dt); } return(retorno); }
public ResultGuardarTicket GuardarSobreCFEXML(string sobreCFE, string destinatarioEmail, string adenda) { string ruc = ""; DataAccess.DalcCFE db = new DataAccess.DalcCFE(); long recepcionId = long.MinValue; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(sobreCFE); ResultGuardarTicket retorno = new ResultGuardarTicket(); ErrorNegocio error = null; //Convierto el XML en una entidad ETicket ticket = new ETicket(); ticket.Encabezado = this.ConvertToEncabezado(xmlDoc); ticket.Detalle = this.ConvertToDetalle(xmlDoc); ticket.Referencias = this.ConvertToReferencia(xmlDoc); try { //## INICIO - Aplico las validaciones de negocio ## error = this.ValidarDatosTicket(ticket); if (error != null) { retorno.Error = error; return(retorno); } //## FIN - Aplico las validaciones de negocio ## using (TransactionScope scope = new TransactionScope()) { //Guardo la Recepcion recepcionId = db.GuardarRecepcion(destinatarioEmail, "N"); //Guardo el encabezado IdDoc db.GuardarEncabezadoIdDoc(recepcionId, null, recepcionId, ticket.Encabezado.Emisor.CdgDGISucur, ticket.Encabezado.IdDoc.FmaPago, ticket.Encabezado.IdDoc.FchEmis, 1, null, null, 0, ticket.Encabezado.IdDoc.FchEmis, null, null, ticket.Encabezado.IdDoc.TipoCFE, null, null, null, null, null); if (ticket.Encabezado.Receptor.TipoDocRecep.Equals(3)) { ruc = ticket.Encabezado.Receptor.DocRecep; } else { ruc = ticket.Encabezado.Receptor.DocRecepExt; } //Guardo el Receptor db.GuardarEncabezadoReceptor(recepcionId, null, recepcionId, ruc, ticket.Encabezado.Receptor.TipoDocRecep, ticket.Encabezado.Receptor.CodPaisRecep, ruc, ticket.Encabezado.Receptor.RznSocRecep, ticket.Encabezado.Receptor.DirRecep, ticket.Encabezado.Receptor.CiudadRecep, String.Empty, String.Empty, null, null, null, null); //Guardo los totales db.GuardarEncabezadoTotales(recepcionId, null, ticket.Encabezado.Totales.TpoMoneda, ticket.Encabezado.Totales.TpoCambio, ticket.Encabezado.Totales.MntNoGrv, 0, 0, 0, ticket.Encabezado.Totales.MntNetoIvaTasaMin, ticket.Encabezado.Totales.MntNetoIVATasaBasica, 0, null, ticket.Encabezado.Totales.IVATasaMin, ticket.Encabezado.Totales.IVATasaBasica, ticket.Encabezado.Totales.MntIVATasaMin, ticket.Encabezado.Totales.MntIVATasaBasica, 0, ticket.Encabezado.Totales.MntTotal, 0, ticket.Encabezado.Totales.CantLinDet, 0, ticket.Encabezado.Totales.MntPagar, 0, 0, 0); //Guardo el detalle de la factura if (ticket.Detalle != null && ticket.Detalle.Any()) { foreach (Item item in ticket.Detalle) { db.GuardarDetalle(recepcionId, null, item.NroLinDet, null, null, item.IndFact, item.NomItem, null, item.Cantidad, item.UniMed, item.PrecioUnitario, 0, 0, 0, 0, item.MontoItem, null); } } //Guardo la referencia if (ticket.Referencias != null && ticket.Referencias.Any()) { foreach (Referencia r in ticket.Referencias) { db.GuardarReferencia(recepcionId, null, r.NroLinRef, 1, null, r.TpoDocRef, r.Serie, r.NroCFERef, null, null, r.FechaCFEref); } } //Guardo adenda db.GuardarAgenda(recepcionId, adenda); //Asigno la variable para retornarla retorno.RecepcionId = recepcionId; scope.Complete(); } } catch (Exception ex) { throw; } return(retorno); }