martes, 26 de noviembre de 2019

C# - Convertir un Datatable en un XML, con tags ingresador por el programador

Lo que se busca:
<DiarioContabilidad>
  <Diario>
    <NroDiario>0              </NroDiario>
    <Nombre>ITFZLEASOFT    </Nombre>
    <DefContable>Recaudación Caja</DefContable>
    <Lineas>
      <Fecha>23/09/2019</Fecha>
      <Asiento>15026</Asiento>
      <Empresa>ECLE</Empresa>
      <TipoCuenta>Contabilidad</TipoCuenta>
      <Cuenta>110311031002</Cuenta>
      <Descripcion>Pago Cuota 8</Descripcion>
      <CentroCosto>016</CentroCosto>
      <RutCliente>76092069-K </RutCliente>
      <Debito>0,00</Debito>
      <Credito>810767,00</Credito>
      <Divisa>CLP</Divisa>
      <TipoCambio>0</TipoCambio>
      <Documento>0</Documento>
      <TransBancaria>000</TransBancaria>
      <ReferenciaPago>0</ReferenciaPago>
    </Lineas>
    <Lineas>
      <Fecha>23/09/2019</Fecha>
      <Asiento>15026</Asiento>
      <Empresa>ECLE</Empresa>
      <TipoCuenta>Contabilidad</TipoCuenta>
      <Cuenta>110311031002</Cuenta>
      <Descripcion>Pago Cuota 16</Descripcion>
      <CentroCosto>016</CentroCosto>
      <RutCliente>76092069-K </RutCliente>
      <Debito>0,00</Debito>
      <Credito>792988,00</Credito>
      <Divisa>CLP</Divisa>
      <TipoCambio>0</TipoCambio>
      <Documento>0</Documento>
      <TransBancaria>000</TransBancaria>
      <ReferenciaPago>0</ReferenciaPago>
    </Lineas>
   </Diario>
</DiarioContabilidad>



Un sp devuelve la data, en un dataTable, como se consigue:

   public XDocument CreateXmlContabilidad(DataTable dt)
        {
            try
            {
                XDocument voucher = new XDocument(new XDeclaration("1.0", "utf-8", "true"),
                    new XElement("DiarioContabilidad",
                        from cabecera in dt.AsEnumerable()
                        select
                            new XElement("Diario",
                                new XElement("NroDiario", cabecera["Num_lote"]),
                                new XElement("Nombre", cabecera["Nombre_lote"]),
                                new XElement("DefContable", cabecera["Desc_Comprobante"]),
                                from detalle in dt.AsEnumerable()
                                select
                                    new XElement("Lineas",
                                        new XElement("Fecha", detalle["Fecha_Comp"]),
                                        new XElement("Asiento", detalle["Num_Comp"]),
                                        new XElement("Empresa", detalle["Empresa"]),
                                        new XElement("TipoCuenta", detalle["Tipo_Cuenta"]),
                                        new XElement("Cuenta", detalle["Cod_Cuenta_LS"]),
                                        new XElement("Descripcion", detalle["Glosa_Lin_Comp"]),
                                        new XElement("CentroCosto", detalle["Dim_Finan1"]),
                                        new XElement("RutCliente", detalle["Dim_Finan_Rut"]),
                                        new XElement("Debito", detalle["Mto_debe_pesos"]),
                                        new XElement("Credito", detalle["Mto_Haber_pesos"]),
                                        new XElement("Divisa", detalle["Divisa"]),
                                        new XElement("TipoCambio", detalle["Tipo_Cambio"]),
                                        new XElement("Documento", detalle["Nro_Docto"]),
                                        new XElement("TransBancaria", detalle["Tipo_Tr_Bco"]),
                                        new XElement("ReferenciaPago", detalle["Ref_Pago"])))));
                return voucher;

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }




fuente: https://www.c-sharpcorner.com/blogs/convert-datatable-to-xml-string-using-linq1

jueves, 18 de julio de 2019

C# - Eliminar registros duplicados DATATABLE



    var newDt = dtSelecc.AsEnumerable()
                .GroupBy(x => x.Field<int>("cod_material"))
                .Select(y => y.First())
                .CopyToDataTable();


var newDt                    = Nuevo DataTable sin columnas repetidas
dtSelecc                        = DataTable a evaluar
<int>("cod_material")) = Columna que no puede estar repetido

viernes, 28 de junio de 2019

SQL - Obtener día hábil anterior.

SELECT DATEADD(DAY, CASE (DATEPART(WEEKDAY, GETDATE()) + @@DATEFIRST) % 7
         WHEN 1 THEN -2
         WHEN 2 THEN -3
         ELSE -1
        END, DATEDIFF(DAY, 0, GETDATE()));

lunes, 18 de marzo de 2019

C# - Encriptar una seccion del web.config

 
La encriptación se debe hacer dentro del servidor, no en ambiente de desarrollo.


INICIO + R
CMD (Como Administrador)

BUSCAR RUTA (CON CMD)
C:\Windows\Microsoft.NET\Framework64\v4.0.30319

EJECUTAR ASPNET_REGIIS

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis.exe -pef "connectionStrings" C:\inetpub\wwwroot\ItauCorpancaLeaOperWebVs2017

-pef encripta
-pdf desencripta


C:\inetpub\wwwroot\ItauCorpancaLeaOperWebVs2017 --> es la ruta del sitio web dentro del servidor.-

miércoles, 6 de marzo de 2019

Windows - Listar todos los archivos de un directorio (y subdirectorios)


INICIO + R
CMD

Luego con el nombre de la carpeta y cd llegamos al directorio que quremos listar! (cd.. para devolvernos)

y escribimos dir /b /s> c:/Desarrollo/listadoPaginas.txt


  • /b lista solo el directorio actual
  • /s si lo agregamos lista tambien los subdirectorios.-



C:\Desarrollo\ItauCorpBancaVS2017\SFSLeaseOper\LeaOperWeb\LeaseOperWeb\Paginas>dir /b /s> c:/Desarrollo/listadoPaginas.txt


Especial para saber cuales son las paginas que tiene la solución por ejemplo (.aspx)