private bool Timbrar(String pathXML) { //TIMBRE DEL XML byte[] bXML = File.ReadAllBytes(pathXML); if (empresa.TimbradoTest) { respuestaCFDI = timbradoClient.TimbrarTest(empresa.UserWstimbrado, empresa.PassWstimbrado, bXML); } else { respuestaCFDI = timbradoClient.Timbrar(empresa.UserWstimbrado, empresa.PassWstimbrado, bXML); } if (respuestaCFDI.Documento == null) { Ambiente.Mensaje(respuestaCFDI.Mensaje); return(false); } else { File.WriteAllBytes(pathXML, respuestaCFDI.Documento); Deserializar(pathXML); Venta.CadenaOriginal = cadenaOriginal; Venta.SelloCfdi = comprobante.TimbreFiscalDigital.SelloCFD; Venta.SelloSat = comprobante.TimbreFiscalDigital.SelloSAT; Venta.UuId = comprobante.TimbreFiscalDigital.UUID; Venta.NoCertificado = noCertificado; Venta.RutaXml = facturaActual; Venta.EstatusSat = "Vigente"; return(ventaController.UpdateOne(Venta)); } }
public void Cancelar() { Inicializar(); if (Venta == null || partidas.Count == 0 || empresa == null || cliente == null) { Ambiente.Mensaje("Venta || partidas || empresa || Cliente == null"); return; } if (cliente.Rfc == null) { Ambiente.Mensaje("PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO"); return; } if (cliente.Rfc.Trim().Length == 0) { Ambiente.Mensaje("PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO"); return; } if (Venta.UuId == null) { Ambiente.Mensaje("Proceso abortado, este documento no es una factura o no está timbrada"); return; } respuestaCFDI = timbradoClient.CancelarAsincrono( empresa.UserWstimbrado, empresa.PassWstimbrado, File.ReadAllBytes(empresa.RutaArchivoPfx), Venta.UuId, empresa.ClavePrivada, (double)Venta.Total, empresa.Rfc, cliente.Rfc); s = respuestaCFDI.Mensaje; respuestaCFDI = timbradoClient.VerStatus( empresa.UserWstimbrado, empresa.PassWstimbrado, Venta.UuId, (double)Math.Round(Venta.Total, 2), empresa.Rfc, cliente.Rfc); s = respuestaCFDI.Mensaje; if (respuestaCFDI.Mensaje.Equals("Cancelado")) { Venta.EstatusSat = respuestaCFDI.Mensaje; ventaController.UpdateOne(Venta); Ambiente.Mensaje(s); } }
public void ActualizarStatusSAT() { Inicializar(); bool CrearLog = false; string s = ""; if (Venta == null || partidas.Count == 0 || empresa == null || cliente == null) { CrearLog = true; s += "Venta || partidas || empresa || Cliente == null"; } if (cliente.Rfc == null) { CrearLog = true; s += "/"; s += "PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO"; } if (cliente.Rfc.Trim().Length == 0) { CrearLog = true; s += "/"; s += "PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO"; } if (Venta.UuId == null) { CrearLog = true; s += "/"; s += "Proceso abortado, este documento no es una factura o no está timbrada"; } if (CrearLog) { var error = new DymError(); error.Message = s; error.ToString = s; error.VentaId = Venta == null ? "NULL" : Venta.VentaId.ToString(); error.LoggedUser = Ambiente.LoggedUser.UsuarioId; error.CreatedAt = DateTime.Now; dymErrorController.InsertOne(error); return; } respuestaCFDI = timbradoClient.VerStatus( empresa.UserWstimbrado, empresa.PassWstimbrado, Venta.UuId, (double)Math.Round(Venta.Total, 2), empresa.Rfc, cliente.Rfc); Venta.EstatusSat = respuestaCFDI.Mensaje; ventaController.UpdateOne(Venta); }
//Inicizalizar public void Inicializar() { //Controladores ventaController = new VentaController(); ventapController = new VentapController(); clienteController = new ClienteController(); empresaController = new EmpresaController(); dymErrorController = new DymErrorController(); //Utils respuestaCFDI = new RespuestaCFDi(); timbradoClient = new TimbradoClient(); selloDigital = new SelloDigital(); transformador = new XslCompiledTransform(); //Comprobante comprobante = new Comprobante(); emisor = new ComprobanteEmisor(); receptor = new ComprobanteReceptor(); // Nivel concepto conceptos = new List <ComprobanteConcepto>(); concepto = new ComprobanteConcepto(); impuestosConcepto = new List <ComprobanteConceptoImpuestosTraslado>(); ivaConcepto = new ComprobanteConceptoImpuestosTraslado(); iepsConcepto = new ComprobanteConceptoImpuestosTraslado(); //Nivel comprobante impuestosComprobante = new List <ComprobanteImpuestosTraslado>(); totalImpuestosComprobante = new ComprobanteImpuestos(); ivaComprobante = new ComprobanteImpuestosTraslado(); iepsComprobante = new ComprobanteImpuestosTraslado(); //inicializacion de propiedades empresa = empresaController.SelectTopOne(); partidas = ventapController.SelectPartidas(Venta.VentaId); cliente = clienteController.SelectOne(Venta.ClienteId); s = ""; }