SQL – Script para copia de seguridad

SQL Express no dispone de planes de mantenimiento, pero es relativamente sencillo configurar un script que realice las copias de seguridad automáticamente. Los pasos para la automatización sin los siguientes: 1.- Generar el archivo con el script:  P:\Backup.sql El contenido del script está al final del artículo, y tan solo hay que modificar el nombre Leer másSQL – Script para copia de seguridad[…]

a3ERP – Vista sql pedidos pendientes de servir

Listado de pedidos de venta pendientes de servir, incluyendo el stock del almacén 1, y el proveedor por defecto indicado en la ficha de articulo: SELECT CABEPEDV.SITUACION, CABEPEDV.IDPEDV, CABEPEDV.TIPOCONT, CABEPEDV.SERIE, CABEPEDV.NUMDOC,CABEPEDV.FECHA, CABEPEDV.REFERENCIA, CABEPEDV.CODCLI, CABEPEDV.NOMCLI ,L.CodArt, L.Param1 RefImopac, L.DescLin Concepto ,L.UNIDADES, L.UNISERVIDA UnidadesServidas ,L.UNIDADES – L.UNISERVIDA UnidadesPendientes,L.Precio,L.Desc1,L.Desc2,L.Desc3,L.Desc4 ,(L.Precio*L.Unidades)*(1-L.Desc1/100)*(1-L.Desc2/100)*(1-L.Desc3/100)*(1-L.Desc4/100) ImporteBase ,(L.Precio*L.UniServida)*(1-L.Desc1/100)*(1-L.Desc2/100)*(1-L.Desc3/100)*(1-L.Desc4/100) ImporteServido ,(L.Precio*(L.Unidades-L.UniServida))*(1-L.Desc1/100)*(1-L.Desc2/100)*(1-L.Desc3/100)*(1-L.Desc4/100) ImportePendiente ,SA.Unidades StockAlm1 ,A.CODPRO Leer mása3ERP – Vista sql pedidos pendientes de servir[…]

a3ERP – Instalación centralizada del complemento a3ErpExcelServer

Por defecto Excel espera los complementos en %AppData%\Roaming\Microsoft\Complementos Es decir, en una carpeta diferente para cada usuario. También se pueden instalar en C:\Archivos de programa (x86)\Office\(Version)\Library Es decir, en una carpeta diferente para cada usuario, ya que cada usuario puede tener diferentes versiones de Excel o haber instalado en otra ruta su Office. Cuando usamos Leer mása3ERP – Instalación centralizada del complemento a3ErpExcelServer[…]

Linux/Docker – Establecer zona horaria

El shell de LINUX usa por defecto la zona horaria del host. Para cambiar este comportamiento usamos la variable de entorno TZ. Para ver la configuración actual: $ timedatectl Podemos establecer la zona horaria con el comando en modo interactivo: $ tzselect Para que los cambios sean permanentes, deberemos modificar el archivo .profile usando el Leer másLinux/Docker – Establecer zona horaria[…]

SQL – Precio mínimo de los comparativos

Función SQL para obtener el precio mínimo de las ofertas de proveedores de los comparativos: CREATE FUNCTION F_COMPA_PRECIO_MIN(@EMPRESA VARCHAR(12),@OBRA VARCHAR(12),@COD_INTERNO VARCHAR(8)) RETURNS DECIMAL(18,4) AS BEGIN    DECLARE @PRECIO_MIN DECIMAL(18,4);    SET @PRECIO_MIN=(SELECT MIN(CP.PRECIO) PRECIO_MIN FROM T_COMPA_LIN L JOIN T_COMPA_PRE CP ON CP.EMPRESA=L.EMPRESA AND CP.OBRA=L.OBRA AND CP.COMPA=L.COMPA ANDCP.LINEA=L.LINEA WHERE L.EMPRESA=@EMPRESA AND L.OBRA=@OBRA AND  L.COD_INTERNO=@COD_INTERNO AND CP.PRECIO>0 );    RETURN @PRECIO_MIN END 

C# – Uso de HttpClient para devolver un DataTable

Si usamos una API-REST que nos devuelve un Datatable, es necesario deserializar el JSON obtenido. El siguiente ejemplo nos muestra como hacerlo: using System; using System.Data; using System.Net.Http; using System.Threading.Tasks; using Newtonsoft.Json; // You’ll need to install the Newtonsoft.Json NuGet package class Program { static async Task Main() { // Create an instance of HttpClient Leer másC# – Uso de HttpClient para devolver un DataTable[…]

TREE-Trigger para firma de facturas escaladas por importe

En ocasiones los clientes quieren que la firma de las facturas dependan del importe. En el siguiente ejemplo aplicamos un sencillo trigger para que las facturas de más de 3000€ las tenga que firmar dirección (perfil DIR), las de más de 1500€ las tenga que firmar el jefe de grupo (perfil DJO), y el resto Leer másTREE-Trigger para firma de facturas escaladas por importe[…]

SQL – Dividir una línea de texto en dos, haciendo coincidir la división con un espacio entre palabras

A veces puede ser necesario que queramos hacer una sentencia SQL que nos devuelva una línea dividida en dos cuando el texto excede una determinada longitud (y que la segunda línea esté en blanco cuando el texto simplemente es más corto de dicha longitud). Por ejemplo, en un informe queremos imprimir el nombre de una Leer másSQL – Dividir una línea de texto en dos, haciendo coincidir la división con un espacio entre palabras[…]