public void Solicitar(int sucursalId, DateTime fecha) { var sucursal = _db.Sucursales.Find(sucursalId); var url = String.Format("https://{0}/xsamanager/DownloadExpedidosBloqueServlet?rfcEmisor={1}&key={2}&fechaInicial={3}&fechaFinal={4}&tipo={5}", sucursal.Servidor, sucursal.Rfc, sucursal.KeyXsa, fecha.ToString("yyyy-MM-dd"), fecha.AddDays(1).ToString("yyyy-MM-dd"), "XML"); ServicePointManager.ServerCertificateValidationCallback = delegate { return(true); }; using (WebClient client = new WebClient()) { var path = Path.Combine(@"C:\inetpub\sftproot\ApBox\"); var nombreArchivo = String.Format("{0}_{1:yyyy-MM-dd}.zip", sucursal.Rfc, fecha); var pathFinal = Path.Combine(path, nombreArchivo); try { client.DownloadFile(url, pathFinal); ExtraerZip(pathFinal); var pathTexto = Path.Combine(path, "leeme.txt"); File.Delete(pathFinal); if (File.Exists(pathTexto)) { File.Delete(pathTexto); } } catch (Exception ex) { throw new Exception(String.Format("No se pudo descargar el archivo del web service {0}: {1}", url, ex.Message)); } } sucursal.FechaInicial = fecha; _db.Entry(sucursal).State = EntityState.Modified; _db.SaveChanges(); }
public string Autorizar(int solicitudAccesoId) { var solicitudAcceso = _db.SolicitudesAccesos.Find(solicitudAccesoId); solicitudAcceso.Procesado = true; _db.Entry(solicitudAcceso).State = EntityState.Modified; _db.SaveChanges(); var proveedor = new Proveedor { CodigoPostal = solicitudAcceso.CodigoPostal, Email = solicitudAcceso.Email, FechaAlta = solicitudAcceso.FechaAlta, PaginaWeb = solicitudAcceso.PaginaWeb, Pais = solicitudAcceso.Pais, RazonSocial = solicitudAcceso.RazonSocial, Rfc = solicitudAcceso.Rfc, Saldo = solicitudAcceso.Saldo, Status = solicitudAcceso.Status, Telefono1 = solicitudAcceso.Telefono1, Telefono2 = solicitudAcceso.Telefono2, GrupoId = solicitudAcceso.GrupoId }; _db.Proveedores.Add(proveedor); _db.SaveChanges(); //Asignar Sucursales var sucursalesGrupo = _db.Sucursales.Where(s => s.GrupoId == solicitudAcceso.GrupoId && s.Status == Status.Activo); foreach (var sucursalGrupo in sucursalesGrupo) { var proveedorSucursal = new ProveedorSucursal { ProveedorId = proveedor.Id, SucursalId = sucursalGrupo.Id }; _db.ProveedoresSucursales.Add(proveedorSucursal); } _db.SaveChanges(); //TODO: Enviar Correo return(proveedor.Rfc); }
public void Autorizar(bool autorizar, int facturaRecibidaId, int usuarioId, String notasAutorizacion) { var facturaRecibida = _db.FacturasRecibidas.Find(facturaRecibidaId); facturaRecibida.Autorizada = autorizar; facturaRecibida.UsuarioAutorizacionId = usuarioId; facturaRecibida.FechaAutorizacion = DateTime.Now; facturaRecibida.NotasAutorizacion = notasAutorizacion; _db.Entry(facturaRecibida).State = System.Data.Entity.EntityState.Modified; _db.SaveChanges(); }
public byte[] GenerarComplementoPago(int sucursalId, int complementoPagoId, string mailAlterno) { lock (obj) { var sucursal = _db.Sucursales.Find(sucursalId); var complementoPago = _db.ComplementosPago.Find(complementoPagoId); var cliente = _db.Clientes.Find(complementoPago.ReceptorId); //Generación del comprobante var facturaDto = _generarDto.GenerarFactura(sucursal, cliente); facturaDto.ComplementoPagoDto = _generarDto.GenerarComplemento(complementoPago); _generarDto.CfdisRelacionados(ref facturaDto, complementoPago); try { _facturacionInfodextra.GenerarXml(ref facturaDto); } catch (Exception ex) { throw ex; } var facturaId = GuardarComprobante(facturaDto, sucursalId, complementoPago.ReceptorId); try { //Incrementar Folio de Sucursal sucursal.Folio += 1; _db.Entry(sucursal).State = EntityState.Modified; _db.SaveChanges(); } catch (DbEntityValidationException dbEx) { var errores = new List <String>(); foreach (var validationErrors in dbEx.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { errores.Add(String.Format("Propiedad: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage)); } } throw new Exception(string.Join(",", errores.ToArray())); } MarcarFacturado(complementoPago.Id, facturaId); try { var pathXml = String.Format(@"C:\Infodextra\Temp\{0} - {1} - {2}.xml", facturaDto.Serie, facturaDto.Folio, DateTime.Now.ToString("ddMMyyyyHHmmss")); _operacionesStreams.ByteArrayArchivo(facturaDto.Xml, pathXml); var pathPdf = GenerarPdf(facturaDto.Xml, complementoPago); EnviarCorreo(cliente, new List <string> { pathXml, pathPdf }, mailAlterno); } catch (Exception ex) { throw new Exception(String.Format("El comprobante se timbró de forma exitosa pero no fue posible mandarlo por correo electrónico, el motivo: {0}", ex.Message)); } return(facturaDto.Xml); } }