private CuentaGasto EnviarArchivoFTPInsertarBase(CuentaGasto cuentaGasto) { var request = new RecibeArchivoRequest() { Item = cuentaGasto.ArchivoFisico, UsuarioEjecucion = "", Operacion = TipoOperacionArchivo.Insertar }; //hago llamado a NAS var ftp = Util.ServicioFTPSoftrade(); var response = ftp.OperacionArchivo(request); //TODO: calcular idTipoDocumento a CatalogosService cuentaGasto.ArchivoFisico = response.Item; var catalogos = Util.ServicioCatalogos(); var responseCatalogos = catalogos.ExtraerCatalogoItem( RequestTipoDocumentoXAbreviatura(cuentaGasto.ArchivoFisico.ExtensionArchivo, cuentaGasto.IdUsuario)); cuentaGasto.ArchivoFisico.IdTipoDocumento = responseCatalogos.Item.Id; //Aquí se hace la inserción a la tabla expediente digital cuentaGasto.ArchivoFisico = CuentaGastoRepositorio.InsertaExpedienteDigital(cuentaGasto.ArchivoFisico, cuentaGasto.IdCuentaGasto, cuentaGasto.IdUsuario); return(cuentaGasto); }
/// <summary> /// Rutina que inserta en base de datos primero los datos del archivo M /// posteriormente manda al FTP el archivo M, /// al final también registra en el expediente digital el nombre del archivo y el path /// </summary> /// <param name="pedimento">Contiene datos y archivo M</param> /// <returns></returns> public Pedimento InsertarPedimento(Pedimento pedimento) { ValidarPedimento(pedimento); using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required)) { // //primero inserto a la base de datos //pedimentoRepositorio.InsertarPedimento(); // //crear request de NAS para posterior envío archivo al servidor NAS var request = new RecibeArchivoRequest() { EjecucionValida = false, Item = ConvertirArchivo(pedimento), MensajeError = "", UsuarioEjecucion = "" }; // //hago llamado a NAS var ftp = ConsultarPedimentoCompletoWS(); var response = ftp.OperacionArchivo(request); // //Guardo en Base de datos tabla expediente // pedimentoRepositorio.InsertarExpedienteDigital(); // //Guardo también la relación entre expediente y pedimento // pedimentoRepositorio.InsertarAsociacionPedimentoExpediente(); transaction.Complete(); return(null); } }
private void GuardarEnFTPInsertaExpedienteDigital(Archivo archivo, int idUsuario, int idPedimento) { try { var request = new RecibeArchivoRequest() { Item = archivo, UsuarioEjecucion = "", Operacion = TipoOperacionArchivo.Insertar }; //hago llamado a NAS var ftp = Util.ServicioFTPSoftrade(); var response = ftp.OperacionArchivo(request); //TODO: calcular idTipoDocumento a CatalogosService var catalogos = Util.ServicioCatalogos(); var responseCatalogos = catalogos.ExtraerCatalogoItem(RequestTipoDocumentoXAbreviatura("num", idUsuario)); archivo = response.Item; archivo.IdTipoDocumento = responseCatalogos.Item.Id; //Aquí se hace la inserción a la tabla expediente digital archivo = iOperacionPedimentoRepositorioRepositorio.InsertaExpedienteDigital(archivo, 0, idUsuario); iOperacionPedimentoRepositorioRepositorio.InsertaGrupoArchivos(idPedimento, archivo.IdArchivo); response.Item.IdArchivo = archivo.IdArchivo; } catch (Exception ex) { throw new ErrorArchivoFisico(); } }
private Archivo LlamadoAServidorFTP(Archivo archivo) { var request = new RecibeArchivoRequest() { Item = archivo, UsuarioEjecucion = "", Operacion = TipoOperacionArchivo.Insertar }; var ftp = Util.ServicioFTPSoftrade(); var responseFTP = ftp.OperacionArchivo(request); return(responseFTP.Item); }
private byte[] GetArchivoCerKey(Archivo archivo) { var request = new RecibeArchivoRequest() { Item = archivo, UsuarioEjecucion = "", Operacion = TipoOperacionArchivo.Extraer }; var ftp = Util.ServicioFTPSoftrade(); var response = ftp.OperacionArchivo(request); return(response.Item.ArchivoBytes); //return null; }
public Modelo.Dominio.Entidades.DocumentoExpedienteDigital ExtraerDocumentoExpedienteDigital(Modelo.Dominio.Entidades.DocumentoExpedienteDigital documento) { var archivo = iDocumentoExpedienteDigitalRepositorio.DameItemXIdExpedienteDigital(documento.IdExpedienteDigital, documento.IdEmpresa); using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required)) { //Generamos el request del archivo que vamos a recibir para regresarlo al usuario var request = new RecibeArchivoRequest() { Item = archivo, UsuarioEjecucion = "", Operacion = TipoOperacionArchivo.Extraer }; //hago llamado a NAS var ftp = Util.ServicioFTPSoftrade(); var response = ftp.OperacionArchivo(request); //TODO: calcular idTipoDocumento a CatalogosService documento.ArchivoFisico = response.Item; transaction.Complete(); } return(documento); }
/// <summary> /// Esta función inserta en la base de datos, los datos del CFDI además que /// envía al servidor FTP el archivo físico /// </summary> /// <param name="cfdi">Contiene el archivo físico y los datos del CFDI</param> /// <returns></returns> public CuentaGasto InsertaFactura(CFDI cfdi) { ValidarPedimento(cfdi); using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required)) { var idMoneda = CatalogosRepositorio.ExtraerIdMonedaXAbreviatura(new BuscarCatalogo() { Alias = "MXP" }); //var cuentaGasto = ConvertirCfdIaCuentaGasto(cfdi); var idTipoComprobante = CatalogosRepositorio.ExtraerIdTipoComprobanteXNombreComprobante(new BuscarCatalogo() { Nombre = "ingreso" }); //Borrar var crearImpuestoTraslado = CrearImpuestosDemo(); //Borrar var crearImpuestoRetencion = CrearImpuestosDemo2(); //Borrar var cuentaGasto = new CuentaGasto() //Borrar { IdEmpresa = 2, IdPedimento = 1, NumeroFactura = "1234ASDF1234ASDF", OtrosDatos = null, TimeStamp = DateTime.Now, IdComplementoFacturaVW = 0, XML = "PathXML", PDF = null, IdMonedaVW = idMoneda.Id, MontoTotal = 10000, TipoCambio = 15, UUID = "1234ASDFASDFQER12334", FechaFactura = DateTime.Now, Subtotal = 9000, IdTipoComprobanteVW = idTipoComprobante.Id, RFCEmisor = "RFC123456DFF", NombreEmisor = "Nombre Emisor", TrasladoImpuestos = CalcularImpuestoTraslado(crearImpuestoTraslado), RetencionImpuestos = CalcularImpuestoRetencion(crearImpuestoRetencion), IVA = (double)TotalImpuesto(CalcularImpuestoTraslado(crearImpuestoTraslado), "IVA", true), IEPS = (double)TotalImpuesto(CalcularImpuestoTraslado(crearImpuestoTraslado), "IEPS", true), RetencionIVA = (double)TotalImpuesto(CalcularImpuestoTraslado(crearImpuestoTraslado), "", false), RetencionISR = (double)TotalImpuesto(CalcularImpuestoTraslado(crearImpuestoTraslado), "", false), Confirmado = false }; //Inserta a la base de datos la cuenta de gasto y regresa una entidad cuenta gasto con el id var cuentaGastoResponse = CuentaGastoRepositorio.InsertaFactura(cuentaGasto); //se envía uno por uno los impuestos a la base de datos foreach (var VARIABLE in cuentaGasto.RetencionImpuestos) { CuentaGastoRepositorio.InsertaImpuestosRetencion(VARIABLE, cuentaGasto.IdCuentaGasto); } //Se crea el request del NAS para enviarlo al Servicio FTP var request = new RecibeArchivoRequest() { EjecucionValida = false, Item = ConvertirArchivo(cfdi), MensajeError = "", UsuarioEjecucion = "" }; //hago llamado a NAS var ftp = ServicioFTPSoftrade(); var response = ftp.OperacionArchivo(request); transaction.Complete(); return(cuentaGastoResponse); } }