<?php
include_once('../../../php/db/dbExec.php');

class wsFormatsXML {
  private $NITEmisor;
  private $NombreEmisor;
  private $CodigoEstablecimiento;
  private $NombreComercial;
  private $DireccionEmisor;
  private $CodigoPostalEmisor;
  private $MunicipioEmisor;
  private $DepartamentoEmisor;
  private $PaisEmisor;

  function __construct() {
    $this->NITEmisor=str_replace('-','',$_SESSION["empNit"]);
    $this->NombreEmisor=$_SESSION["empNom"];
    $this->CodigoEstablecimiento=$_SESSION["empEstablecimiento"];
    $this->NombreComercial=$_SESSION["empNomc"];
    $this->DireccionEmisor=$_SESSION["empDir"];
    $this->CodigoPostalEmisor=$_SESSION["empCodpos"];
    $this->MunicipioEmisor=$_SESSION["empMuni"];
    $this->DepartamentoEmisor=$_SESSION["empDepto"];

    $db = new dbExec();
    $this->PaisEmisor=$db->sFetchAssoc("SELECT * FROM paises WHERE id='".$_SESSION["empPais"]."'")['pa_alfa2'];
    $db->close();
  }

/* Asi estaba antes, de Cofidi enviaron el codigo que esta abajo de esta. 
  function GTDocumentoIni(){
    $xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    <dte:GTDocumento xmlns:dte=\"http://www.sat.gob.gt/dte/fel/0.1.0\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sat.gob.gt/dte/fel/0.1.0 file:/C:/Users/William/Documents/PROYECTOS/FACE2/XSD/GT_Documento-0.1.0.xsd\" Version=\"0.4\">
      <dte:SAT ClaseDocumento=\"dte\">
        <dte:DTE ID=\"DatosCertificados\">
          <dte:DatosEmision ID=\"DatosEmision\">
            ";
    return $xml;
  }   */

//  Este es el nuevo que mandaron de Cofidi.
  function GTDocumentoIni(){
    $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
    <dte:GTDocumento xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" xmlns:cfc=\"http://www.sat.gob.gt/dte/fel/CompCambiaria/0.1.0\" xmlns:cno=\"http://www.sat.gob.gt/face2/ComplementoReferenciaNota/0.1.0\" 
    xmlns:cex=\"http://www.sat.gob.gt/face2/ComplementoExportaciones/0.1.0\" xmlns:cfe=\"http://www.sat.gob.gt/face2/ComplementoFacturaEspecial/0.1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" 
    Version=\"0.1\" xmlns:dte=\"http://www.sat.gob.gt/dte/fel/0.2.0\">

      <dte:SAT ClaseDocumento=\"dte\">
        <dte:DTE ID=\"DatosCertificados\">
          <dte:DatosEmision ID=\"DatosEmision\">
            ";
    return $xml;
  } 

  function GTDocumentoFin(){
    $xml = "</dte:DatosEmision>
        </dte:DTE>
      </dte:SAT>
    </dte:GTDocumento>";
    return $xml;
  }

  function DatosGenerales($Tipo, $FechaHoraEmision, $CodigoMoneda) {
    $xml = "<dte:DatosGenerales Tipo=\"$Tipo\" FechaHoraEmision=\"$FechaHoraEmision\" CodigoMoneda=\"$CodigoMoneda\" />
            ";
    return $xml;
  }

  function Emisor(){
    $xml = "<dte:Emisor NITEmisor=\"$this->NITEmisor\" NombreEmisor=\"$this->NombreEmisor\" CodigoEstablecimiento=\"$this->CodigoEstablecimiento\" NombreComercial=\"$this->NombreComercial\" CorreoEmisor=\"\" AfiliacionIVA=\"GEN\">
              <dte:DireccionEmisor>
                <dte:Direccion>$this->DireccionEmisor</dte:Direccion>
                <dte:CodigoPostal>$this->CodigoPostalEmisor</dte:CodigoPostal>
                <dte:Municipio>$this->MunicipioEmisor</dte:Municipio>
                <dte:Departamento>$this->DepartamentoEmisor</dte:Departamento>
                <dte:Pais>$this->PaisEmisor</dte:Pais>
              </dte:DireccionEmisor>
            </dte:Emisor>
            ";
    return $xml;
  }

  function Receptor($IDReceptor, $NombreReceptor, $DireccionReceptor, $CodigoPostalReceptor, $MunicipioReceptor, $DepartamentoReceptor, $PaisReceptor){
    $IDReceptor = str_replace('-','',$IDReceptor);
    $xml = "<dte:Receptor IDReceptor=\"$IDReceptor\" NombreReceptor=\"$NombreReceptor\">
              <dte:DireccionReceptor>
                <dte:Direccion>$DireccionReceptor</dte:Direccion>
                <dte:CodigoPostal>$CodigoPostalReceptor</dte:CodigoPostal>
                <dte:Municipio>$MunicipioReceptor</dte:Municipio>
                <dte:Departamento>$DepartamentoReceptor</dte:Departamento>
                <dte:Pais>$PaisReceptor</dte:Pais>
              </dte:DireccionReceptor>
            </dte:Receptor>
            ";
    return $xml;
  }

  function ReceptorCui($IDReceptor, $NombreReceptor, $DireccionReceptor, $CodigoPostalReceptor, $MunicipioReceptor, $DepartamentoReceptor, $PaisReceptor){
    $IDReceptor = str_replace('-','',$IDReceptor);
    $xml = "<dte:Receptor IDReceptor=\"$IDReceptor\" TipoEspecial=\"CUI\" NombreReceptor=\"$NombreReceptor\">
              <dte:DireccionReceptor>
                <dte:Direccion>$DireccionReceptor</dte:Direccion>
                <dte:CodigoPostal>$CodigoPostalReceptor</dte:CodigoPostal>
                <dte:Municipio>$MunicipioReceptor</dte:Municipio>
                <dte:Departamento>$DepartamentoReceptor</dte:Departamento>
                <dte:Pais>$PaisReceptor</dte:Pais>
              </dte:DireccionReceptor>
            </dte:Receptor>
            ";
    return $xml;
  }

  function Frases($arrayFrases){
    $Frases = "";
    foreach($arrayFrases as $row) {
      $Frases .= "<dte:Frase TipoFrase=\"{$row['TipoFrase']}\" CodigoEscenario=\"{$row['CodigoEscenario']}\" />
      ";
    }

    $xml = "<dte:Frases>
              $Frases
            </dte:Frases>
            ";
    return $xml;
  }

  function ItemsPruebas(){
    $xml = "<dte:Items>
              <dte:Item NumeroLinea=\"1\" BienOServicio=\"B\">
                <dte:Cantidad>135.40</dte:Cantidad>
                <dte:UnidadMedida>MIL</dte:UnidadMedida>
                <dte:Descripcion>64544 PE BLANCO, BOLSA FOODIMPEX CHUNKS 500G</dte:Descripcion>
                <dte:PrecioUnitario>305.098</dte:PrecioUnitario>
                <dte:Precio>41310.27</dte:Precio>
                <dte:Descuento>0.00</dte:Descuento>
                <dte:Impuestos>
                  <dte:Impuesto>
                    <dte:NombreCorto>IVA</dte:NombreCorto>
                    <dte:CodigoUnidadGravable>1</dte:CodigoUnidadGravable>
                    <dte:MontoGravable>36884.17</dte:MontoGravable>
                    <dte:MontoImpuesto>4426.10</dte:MontoImpuesto>
                  </dte:Impuesto>
                </dte:Impuestos>
                <dte:Total>41310.27</dte:Total>
              </dte:Item>
            </dte:Items>
            ";
    return $xml;
  }

  function Items($arrayItems){
    $items = "";
    foreach($arrayItems as $row) {
      $NumeroLinea = $row['NumeroLinea'];
      $BienOServicio = $row['BienOServicio'];
      $Cantidad = $row['Cantidad'];
      $UnidadMedida = $row['UnidadMedida'];
      $Descripcion = $row['Descripcion'];
      $PrecioUnitario = $row['PrecioUnitario'];
      $Precio = $row['Precio'];
      $Descuento = $row['Descuento'];
      $NombreCorto = $row['NombreCorto'];
      $CodigoUnidadGravable = $row['CodigoUnidadGravable'];
      $MontoGravable = $row['MontoGravable'];
      $MontoImpuesto = $row['MontoImpuesto'];
      $Total = $row['Total'];
      $items .= "<dte:Item NumeroLinea=\"$NumeroLinea\" BienOServicio=\"$BienOServicio\">
                <dte:Cantidad>$Cantidad</dte:Cantidad>
                <dte:UnidadMedida>$UnidadMedida</dte:UnidadMedida>
                <dte:Descripcion>$Descripcion</dte:Descripcion>
                <dte:PrecioUnitario>$PrecioUnitario</dte:PrecioUnitario>
                <dte:Precio>$Precio</dte:Precio>
                <dte:Descuento>$Descuento</dte:Descuento>
                <dte:Impuestos>
                  <dte:Impuesto>
                    <dte:NombreCorto>$NombreCorto</dte:NombreCorto>
                    <dte:CodigoUnidadGravable>$CodigoUnidadGravable</dte:CodigoUnidadGravable>
                    <dte:MontoGravable>$MontoGravable</dte:MontoGravable>
                    <dte:MontoImpuesto>$MontoImpuesto</dte:MontoImpuesto>
                  </dte:Impuesto>
                </dte:Impuestos>
                <dte:Total>$Total</dte:Total>
              </dte:Item>
              ";
    }

    $xml = "<dte:Items>
              $items
            </dte:Items>
            ";
    return $xml;
  }

  function Totales($GranTotal, $arrayImpuestos = array()){
    $TotalImpuestos = "";
    if (sizeof($arrayImpuestos) != 0) {
      $TotalImpuestos = "<dte:TotalImpuestos>";

      foreach($arrayImpuestos as $row) {
        $NombreCorto = $row['NombreCorto'];
        $TotalMontoImpuesto = $row['TotalMontoImpuesto'];
        $TotalImpuestos .= "<dte:TotalImpuesto NombreCorto=\"$NombreCorto\" TotalMontoImpuesto=\"$TotalMontoImpuesto\" />";
      }

      $TotalImpuestos .= "</dte:TotalImpuestos>";
    }

    $xml = "<dte:Totales>
              $TotalImpuestos
              <dte:GranTotal>$GranTotal</dte:GranTotal>
            </dte:Totales>
            ";
    return $xml;
  }

  function Complementos($arrayComplementos = array()){
    $Complementos = "";
    if (sizeof($arrayComplementos) != 0) {
      $Complementos = "<dte:Complementos>
                  ";

      foreach($arrayComplementos as $row) {
        $IDComplemento = $row['IDComplemento'];
        if ($IDComplemento == 'FCAM') {
          $NumeroAbono = $row['NumeroAbono'];
          $FechaVencimiento = $row['FechaVencimiento'];
          $MontoAbono = $row['MontoAbono'];
          $Complementos .= "<dte:Complemento IDComplemento=\"$IDComplemento\" NombreComplemento=\"AbonosFacturaCambiaria\" URIComplemento=\"#AbonosFacturaCambiaria\">
                    <cfc:AbonosFacturaCambiaria Version=\"1\" xmlns:cfc=\"http://www.sat.gob.gt/dte/fel/CompCambiaria/0.1.0\">
                      <cfc:Abono>
                        <cfc:NumeroAbono>$NumeroAbono</cfc:NumeroAbono>
                        <cfc:FechaVencimiento>$FechaVencimiento</cfc:FechaVencimiento>
                        <cfc:MontoAbono>$MontoAbono</cfc:MontoAbono>
                      </cfc:Abono>
                    </cfc:AbonosFacturaCambiaria>
                  </dte:Complemento>
              ";
        }
        if ($IDComplemento == 'ReferenciasNota') {
          $Complementos .= "<dte:Complemento IDComplemento=\"$IDComplemento\" NombreComplemento=\"ReferenciasNota\" URIComplemento=\"#ReferenciasNota\">
                      <cno:ReferenciasNota xmlns:cno=\"http://www.sat.gob.gt/face2/ComplementoReferenciaNota/0.1.0\" 
                        Version=\"1\"
                        NumeroAutorizacionDocumentoOrigen=\"{$row['NumeroAutorizacionDocumentoOrigen']}\" 
                        FechaEmisionDocumentoOrigen=\"{$row['FechaEmisionDocumentoOrigen']}\" 
                        MotivoAjuste=\"{$row['MotivoAjuste']}\" 
                        SerieDocumentoOrigen=\"{$row['SerieDocumentoOrigen']}\" 
                        NumeroDocumentoOrigen=\"{$row['NumeroDocumentoOrigen']}\"/>
                  </dte:Complemento>
              ";
        }
      }

      $Complementos .= "</dte:Complementos>
          ";
    }

    $xml = $Complementos;
    return $xml;
  }

  function GTAnulacionDocumento($arrayDatosAnulacion = array()){
    foreach($arrayDatosAnulacion as $row) {
      $IDReceptor = str_replace('-','',$row['IDReceptor']);
      $xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>
      <dte:GTAnulacionDocumento xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:ds=\"http://www.w3.org/2000/09/xmldsig#\" Version=\"0.1\" xmlns:dte=\"http://www.sat.gob.gt/dte/fel/0.1.0\">
        <dte:SAT>
          <dte:AnulacionDTE ID=\"DatosCertificados\">
            <dte:DatosGenerales 
            ID=\"DatosAnulacion\" 
            NumeroDocumentoAAnular=\"{$row['NumeroDocumentoAAnular']}\" 
            NITEmisor=\"$this->NITEmisor\" 
            IDReceptor=\"$IDReceptor\" 
            FechaEmisionDocumentoAnular=\"{$row['FechaEmisionDocumentoAnular']}\" 
            FechaHoraAnulacion=\"{$row['FechaHoraAnulacion']}\" 
            MotivoAnulacion=\"{$row['MotivoAnulacion']}\" 
            />
          </dte:AnulacionDTE>
        </dte:SAT>
      </dte:GTAnulacionDocumento>";
    }
    return $xml;
  }
}
?>