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);
        }
Exemple #2
0
 /// <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);
     }
 }
Exemple #3
0
 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);
        }
Exemple #7
0
 /// <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);
     }
 }