Impresión Venta

<!--:    



   F.MetaData_Set('titulo',F.Concat('Factura nº',v.Factura.NumeroDeFacturaCompleto,' - ',v.Factura.DenominacionRazonSocialCliente))
   F.MetaData_Set('email_asunto',F.Concat('Factura de ',D.EmpresaActual.TextoPrincipal,', Nº',v.Factura.NumeroDeFacturaCompleto))

    if V.Factura.ReferenciaCliente.EmailStripe <> ''
        F.MetaData_Set('email_destino1',v.Factura.ReferenciaCliente.EmailStripe)
    else
        F.MetaData_Set('email_destino1',v.Factura.ReferenciaCliente.IdentificadorAcceso)
    end if 


    
    @  ----    Tabla Conceptos  ----  
    txt col_Concepto = 'Concepto'
    txt col_ConceptoDtosConfig = 'Dtos'
    txt col_PrecioUnidad = 'P. Unidad'
    txt col_Unidades = 'Unidades'
    txt col_Descuentos = 'Descuentos'
    txt col_Total = 'Total'
    num TablaID = F.DataTable_New(v.col_Concepto,v.col_PrecioUnidad,v.col_Unidades,v.col_ConceptoDtosConfig,v.col_Descuentos,v.col_Total)
    @ Ejemplo - Cotizaciones
    F.DataListLoad(S.Secciones.VentasIngresosLista.ID,1,100000) 
    F.DataListLoadAddFilter(S.Secciones.VentasIngresosLista.ID,S.Campos.VentasIngresosLista.RelacionElementoContenedorListador.id,'=',V.Factura)
    F.ProcessDataList_Ini(S.Secciones.VentasIngresosLista.ID)

        F.DataTable_AddRow(v.TablaID)
        F.DataTable_SetValueText(v.TablaID,v.col_Concepto,I.VentasIngresosLista.TextoPrincipal)
        F.DataTable_SetValueMoney(v.TablaID,v.col_PrecioUnidad,I.VentasIngresosLista.ImportePrecioUnidad)
        F.DataTable_SetValueNum(v.TablaID,v.col_Unidades,I.VentasIngresosLista.CantidadUnidades)
        txt DtoFijo = F.FormatMoney(I.VentasIngresosLista.ImporteDescuentoFijoUnidad)
        txt DtosPorciento = F.FormatPercentage(I.VentasIngresosLista.SumaDescuentosPorcientoPorciento)
        if I.VentasIngresosLista.ImporteDescuentoFijoUnidad <> 0 y I.VentasIngresosLista.SumaDescuentosPorcientoPorciento<>0
            F.DataTable_SetValue(v.TablaID,v.col_ConceptoDtosConfig,F.Concat(v.DtoFijo,'+',v.DtosPorciento))
        elseif I.VentasIngresosLista.ImporteDescuentoFijoUnidad <> 0
            F.DataTable_SetValue(v.TablaID,v.col_ConceptoDtosConfig,F.Concat(v.DtoFijo))
        elseif I.VentasIngresosLista.SumaDescuentosPorcientoPorciento <> 0
            F.DataTable_SetValue(v.TablaID,v.col_ConceptoDtosConfig,F.Concat(v.DtosPorciento))
        end if
        F.DataTable_SetValueMoney(v.TablaID,v.col_Descuentos,I.VentasIngresosLista.ImporteTotalDescuentos)
        F.DataTable_SetValueMoney(v.TablaID,v.col_Total,I.VentasIngresosLista.ImporteTotalConcepto)

    F.ProcessDataList_End 
    F.DataTable_ColumnDeleteIfIsEmpty(v.TablaID,v.col_ConceptoDtosConfig)
    F.DataTable_ColumnDeleteIfIsEmpty(v.TablaID,v.col_Descuentos)

    
    @   ----    BASE IMPONIBLE  ----    
    txt col_bi = 'Base Imponibe'
    txt col_bi_IVA = 'IVA %'
    txt col_bi_IVACuota = 'Cuota IVA'
    txt col_bi_RE= 'R.E %'
    txt col_bi_RECuota= 'Cuota R.E'
    num TablaBIID = F.DataTable_New(v.col_bi,v.col_bi_IVA,v.col_bi_IVACuota,v.col_bi_RE,v.col_bi_RECuota)
    if v.Factura.ImporteBaseImponible1 <> 0
        @ Base imponible -> 1
        F.DataTable_AddRow(v.TablaBIID)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi,v.Factura.ImporteBaseImponible1)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_IVA,v.Factura.ReferenciaImpuesto1.ValorPorciento)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_IVACuota,v.Factura.ImporteBaseImponible1CuotaIVA)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_RE,v.Factura.ReferenciaImpuesto1.RecargoEquivalenciaPorciento)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_RECuota,v.Factura.ImporteBaseImponible1CuotaRE)
    end if
    if v.Factura.ImporteBaseImponible2 <> 0
        @ Base imponible -> 2
        F.DataTable_AddRow(v.TablaBIID)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi,v.Factura.ImporteBaseImponible2)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_IVA,v.Factura.ReferenciaImpuesto2.ValorPorciento)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_IVACuota,v.Factura.ImporteBaseImponible2CuotaIVA)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_RE,v.Factura.ReferenciaImpuesto2.RecargoEquivalenciaPorciento)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_RECuota,v.Factura.ImporteBaseImponible2CuotaRE)
    end if
    if v.Factura.ImporteBaseImponible3 <> 0
        @ Base imponible -> 3
        F.DataTable_AddRow(v.TablaBIID)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi,v.Factura.ImporteBaseImponible3)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_IVA,v.Factura.ReferenciaImpuesto3.ValorPorciento)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_IVACuota,v.Factura.ImporteBaseImponible3CuotaIVA)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_RE,v.Factura.ReferenciaImpuesto3.RecargoEquivalenciaPorciento)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_RECuota,v.Factura.ImporteBaseImponible3CuotaRE)
    end if
    if v.Factura.ImporteBaseImponibleExenta <> 0
        @ Base imponible -> Exenta
        F.DataTable_AddRow(v.TablaBIID)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi,v.Factura.ImporteBaseImponibleExenta)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_IVA,0)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_IVACuota,0)
        F.DataTable_SetValuePercentage(v.TablaBIID,v.col_bi_RE,0)
        F.DataTable_SetValueMoney(v.TablaBIID,v.col_bi_RECuota,0)
    end if
    if V.Factura.AplicarRecagoDeEquivalencia = 0
    F.DataTable_ColumnDelete(v.TablaBIID,v.col_bi_RE)
        F.DataTable_ColumnDelete(v.TablaBIID,v.col_bi_RECuota)
    end if

    @   ----    TOTAL  ----    

    num TotalReCargoDeEquivalencia = V.Factura.ImporteBaseImponible1CuotaRE + V.Factura.ImporteBaseImponible2CuotaRE  +  V.Factura.ImporteBaseImponible3CuotaRE 
    num TotalCuota = V.Factura.ImporteBaseImponible1CuotaIVA + V.Factura.ImporteBaseImponible2CuotaIVA  +  V.Factura.ImporteBaseImponible3CuotaIVA

    txt c_Concepto = 'Concepto'
    txt c_Importe = 'Importe'
    num TablaTotales= F.DataTable_New(v.c_Concepto,v.c_Importe)


    F.DataTable_AddRow(v.TablaTotales)
    F.DataTable_SetValue(v.TablaTotales,v.c_Concepto,'Subtotal')
    F.DataTable_SetValueMoney(v.TablaTotales,v.c_Importe,v.Factura.ImporteSubtotal)

    if V.TotalCuota <> 0
        F.DataTable_AddRow(v.TablaTotales)
        F.DataTable_SetValue(v.TablaTotales,v.c_Concepto,'IVA')
        F.DataTable_SetValueMoney(v.TablaTotales,v.c_Importe,v.TotalCuota)
    end if 


    if V.TotalReCargoDeEquivalencia <> 0
        F.DataTable_AddRow(v.TablaTotales)
        F.DataTable_SetValue(v.TablaTotales,v.c_Concepto,'R.E')
        F.DataTable_SetValueMoney(v.TablaTotales,v.c_Importe,v.TotalReCargoDeEquivalencia)
    end if 

    if v.Factura.ImporteTotalRetencion  <> 0
        F.DataTable_AddRow(v.TablaTotales)
        F.DataTable_SetValue(v.TablaTotales,v.c_Concepto,'Retención')
        F.DataTable_SetValueMoney(v.TablaTotales,v.c_Importe,v.Factura.ImporteTotalRetencion * -1)
    end if 

    if v.Factura.ImporteTotalSuplidos  <> 0
        F.DataTable_AddRow(v.TablaTotales)
        F.DataTable_SetValue(v.TablaTotales,v.c_Concepto,'Suplidos')
        F.DataTable_SetValueMoney(v.TablaTotales,v.c_Importe,v.Factura.ImporteTotalSuplidos)
    end if

    F.DataTable_AddRow(v.TablaTotales)
    F.DataTable_SetValue(v.TablaTotales,v.c_Concepto,'Total')
    F.DataTable_SetValueMoney(v.TablaTotales,v.c_Importe,v.Factura.ImporteTotal)

    @   ----    Detalles  ----    
    txt c_NumeroDeFactura = 'Factura'
    txt c_Fecha = 'Fecha'
    txt c_Cliente = 'Cliente'
    
    
    
    
    

    num TablaResumen = F.DataTable_New(v.c_NumeroDeFactura,v.c_Fecha,v.c_Cliente)
    F.DataTable_AddRow(v.TablaResumen)
    F.DataTable_SetValue(v.TablaResumen,v.c_NumeroDeFactura,v.Factura.NumeroDeFacturaCompleto)
    F.DataTable_SetValue(v.TablaResumen,v.c_Fecha,F.Cast_DateToText(v.Factura.FechaExpedicion,S.Enumeraciones.formatofecha.diamesaño))
    F.DataTable_SetValue(v.TablaResumen,v.c_Cliente,F.Concat('<span style="font-size:12px"><b>',v.Factura.DenominacionRazonSocialCliente,'</b> - ',v.Factura.NIFCliente,'<br>',v.Factura.DireccionCliente,'</span>'))

 
           
                                

                                                                     :-->
<!doctype html>
<html class="h-100">

<head>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="https://cdn.dinaup.com/dinaup/link/bootstrap.min.css">
  <style>
    @page {
      size: A4;
      margin: 4mm;
    }


    table {
      border-collapse: collapse;
      border-radius: 4px;
      overflow: hidden;
    }


    .tabla_totales tbody tr:last-child {
      font-size: 19px;
      font-weight: bold;
      background: #f1f1f1;
    }

    .ico_email {
      opacity: 0.8;
      position: relative;
      top: 3px;
      display: inline-block;
      width: 14px;
      height: 14px;
      background-size: 14px;
      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAZlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwbJTWAAAAIXRSTlMA2QXz68/3RiYTqXgeGgvixby2oJuain5wY1I5Mi7crXHmGKyrAAAAnklEQVQoz62RSQ7DIBAE22AweN93J5n/fzITJxJy4Og6oKYaIY0Gd5JnKvpDZTlgYwoQWwwUZMBRh3x9AFhi76OF9VjC9lffW5QjqFqBTTmtNmCtCBxbAzHLr5azgGk5gBg9CRTpJ6UFyknTr2CiBEii83zw1RXnWyGQPzleC5IvITJJrnDEPJBXeECGvUQTLhrsOuT1DpjOX1RncCNvhLUpMwj6/RgAAAAASUVORK5CYII=')
    }

    .ico_telefono {
      opacity: 0.8;
      position: relative;
      top: 3px;
      display: inline-block;
      width: 14px;
      height: 14px;
      background-size: 14px;
      background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAXVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5BxTwAAAAHnRSTlMAUfDnG/vtbkQpCgT34t3AupaKPC0UDvShjHJYST7dSqqiAAAAgklEQVQoz63Q1w6EQAgFUJim61jWtsXC/3+motFE4dH7eE/CDMDTcdirPeZUOKX/GCJ6KzARJ5EwbhAktBtYCdmX+xlkfitUUYGXX6UBJTU/MmiblCyJNiywNLEtwo1Tz1JZvoG7iqEjtr9IV56Ctz3/fu9zJ75Q8zyDIBM7TDN4OAuTGAuqZXOqHwAAAABJRU5ErkJggg==')
    }

    .bloquesaldo {
      background: #f2f2f2;
      padding: 10px;
      display: inline-block;
    }


* {
  font-family: 'Roboto', 'Segoe UI', 'Ubuntu', 'Cantarell', 'Noto Sans', 'Liberation Sans', sans-serif;
}

    body {
      color: #535b61;
      font-size: 14px;
      line-height: 22px;
      line-height: 15px;
      -webkit-print-color-adjust: exact !important
    }

    th {
      font-style: regular;
      font-weight: 300;
      padding: 6px
    }

    thead,
    thead th {
      border-bottom: 2px solid rgb(212, 212, 212);
      color: #080606;
      font-weight: bold;
      text-transform: uppercase;
      font-size: 11px;
      text-align: left;
    }


    thead th[data-f='3'] {
      text-align: right;
    }

    table.rnd {
      border-collapse: collapse;
      border-radius: 4px;
      overflow: hidden;
    }

    .right,
    .r {
      text-align: right
    }

    .left,
    .l {
      text-align: left
    }

    .center,
    .c {
      text-align: center
    }

    td {
      padding: 4px;
      vertical-align: top;
    }


    tr {  page-break-inside: avoid;}

    td[data-f='3'],
    td[data-f='2'] {
      text-align: right;
      font-family: 'Courier New', monospace
    }

    .right,
    .r {
      text-align: right;
    }

    .left,
    .l {
      text-align: left;
    }

    .center,
    .c {
      text-align: center;
    }

    html {
      margin: 0px;
      padding: 0px
    }
  </style>
  <meta charset="UTF-8">

</head>

<body style="min-height:calc(100% - 10px)" class="d-flex flex-column justify-content-between  ">

    <div>

      <div class="d-flex justify-content-around">
        <div class="col-auto">
          <div class="row m-4">
            <div class="col-auto align-self-center">
              <img src="<!--:  F.Write(D.EmpresaActual.URLLogoFactura)                                    :-->" width="60" />
            </div>
            <div class="col-auto align-self-center">
              <div><b><!--:  F.Write(v.Factura.DenominacionRazonSocialEmpresa)                                    :--></b>.
              </div>
              <div><!--:  F.Write(v.Factura.NIFEmpresa)                                    :-->.
                <!--:  F.Write(v.Factura.DireccionEmpresa)                                    :--><br>



                <!--: if v.Factura.ReferenciaDatosFiscalesEmpresa.EmailCliente <> ''                      :-->
                <div class="ico_email"></div>
                <!--: F.Write(v.Factura.ReferenciaDatosFiscalesEmpresa.EmailCliente)                       :-->
                <!--: end if                      :-->

                <!--: if v.Factura.ReferenciaDatosFiscalesEmpresa.Telefono <> ''                      :-->
                <div class="ico_telefono"></div>
                <!--: F.Write(v.Factura.ReferenciaDatosFiscalesEmpresa.Telefono)                       :-->
                <!--: end if                      :-->

              </div>
            </div>
          </div>
        </div>
      </div>



      <div style="min-height:30px"></div>

      <div class="w-100">

        <div>
          <!--:    F.Write(F.DataTable_Build(v.TablaResumen,'html|  class=" w-100 rnd"'))                :-->
        </div>

        <div class="col-6">
        </div>

      </div>

      <div style="min-height:30px"></div>




      <!--* Base imponible -->


          <!--:  F.Write(F.DataTable_Build(v.TablaID,'html|class="w-100" class="rnd"'))              :-->

          <div style="min-height:50px"></div>
          <div class="w-100 d-flex">
            <div class="w-50">
              <!--:  F.Write(F.DataTable_Build(v.TablaBIID,'html|class="rnd" '))                    :-->
            </div>
            <div class="w-50">
              <!--:   F.Write(F.DataTable_Build(v.TablaTotales,'html|class="rnd tabla_totales" style="width:100%" '))             :-->
            </div>
          </div>

      <!--#   -->




      <!--* Forma de Pago -->



          <!--: if v.Factura.CondicionesDePago  <> ''    o  v.Factura.FechaDeVencimiento <> ''                                                        :-->


              <hr>
              <table class="w-100" cellpadding="0" cellspacing="0" border="0">
                <tr>

                  <!--: if v.Factura.CondicionesDePago <> ''                                                        :-->

                  <td align="left">
                    <b>Condiciones de pago:</b><br />
                    <!--: F.WriteText(v.Factura.CondicionesDePago)                                                        :-->
                  </td>

                  <!--: end if                                                        :-->



                  <!--: if v.Factura.FechaDeVencimiento <> ''                                                        :-->

                  <td align="right">
                    <b>Vencimiento:</b><br />
                    <!--: F.WriteText(F.Cast_DateToText(v.Factura.FechaDeVencimiento,S.Enumeraciones.formatofecha.diamesaño))                                                        :-->
                  </td>

                  <!--: end if                                                        :-->

                </tr>
              </table>



          <!--: end if                                                        :-->



      <!--#   -->





      <!--: if v.Factura.NotasAIncluirEnLaFactura  <> ''                                       :-->


      <hr>
      <div class="d-flex justify-content-center">
        <!--: F.Write(v.Factura.NotasAIncluirEnLaFactura)                                                        :-->
      </div>



      <!--: end if                                       :-->



      <!--: if v.Factura.ImporteSaldoEmitido > 0                                       :-->


      <hr>
      <div class="d-flex justify-content-center">
        <div class="bloquesaldo c">
          <b>SALDO</b><br>
          ¡Ha acumulado
          <b><!--: F.WriteMoney(v.Factura.ImporteSaldoEmitido,2)                                                        :--></b>
          de saldo promocional con esta compra! <br>
        </div>
      </div>



      <!--: end if                                       :-->



      <!--: if v.Factura.ImporteSaldoEmitido <> 0 o v.Factura.ImporteSaldoAplicado <> 0                                       :-->


      <hr>
      * A fecha
      <!--: F.WriteDateTime(D.DatosEspeciales.FechaYHoraActual,S.Enumeraciones.formatofecha.diamesañohm)                :-->
      dispone de
      <!--:  F.WriteMoney(v.Factura.ReferenciaCliente.ImporteSaldoAcumulado,2)                                                      :-->
      de saldo promocional que puede aplicar como descuentos en compras futuras.


      <!--: end if                                       :-->

    </div>
    
    
    <!--: if v.Factura.empresa.RegistroMercantilDe <> ''  :-->

    <div>
      <hr>

      <!--: F.WriteText(F.Concat2(F.Texto_Unir6('Registro mercantil de ',v.Factura.empresa.RegistroMercantilDe,', Tomo ',v.Factura.empresa.RegistroMercantilTomo,', Folio ',v.Factura.empresa.RegistroMercantilFolio),F.Concat4(', Hoja  ',v.Factura.empresa.RegistroMercantilHoja,', Inscripción ',v.Factura.empresa.RegistroMercantilInscripcion)))                                    :-->
    </div>

      <!--: end if                                       :-->



</body>

</html>

Última actualización