<?php
session_start();
$arrayErrores = array();
if(isset($_POST['accion']) && $_POST['accion']=="integrar"){
	$archivoXML = $_FILES['archivoxml'];
	$archivoTXT = $_FILES['archivotxt'];
	if(!is_file($archivoXML['tmp_name'])){
		$arrayErrores[] = "Al parecer no se subió un archivo XML ".$archivoXML['name'];
	}
	if(!is_file($archivoTXT['tmp_name'])){
		$arrayErrores[] = "Al parecer no se subió un archivo TXT ".$archivoTXT['name'];
	}
	if(sizeof($arrayErrores)==0){
		$domXML = new Domdocument;
		$exito = @$domXML -> load($archivoXML['tmp_name']);
		if(!$exito){
			$arrayErrores[] = "Al parecer no se subió un archivo XML: <strong>".$archivoXML['name']."</strong>";
		} 
	}
	if(sizeof($arrayErrores)==0){
		$Comprobantes = $domXML -> getElementsByTagName('Comprobante');
		if($Comprobantes->length==0){
			$arrayErrores[] = "Al parecer no se subió un archivo XML de un CFDI: <strong>".$archivoXML['name']."</strong>";
		}
	}
	if(sizeof($arrayErrores)==0){
		$Comprobante = $Comprobantes->item(0);
		$serie = $Comprobante->getAttribute('serie');
		$folio = $Comprobante->getAttribute('folio');
		$version = $Comprobante->getAttribute('version');
		$TipoCambio = $Comprobante->getAttribute('TipoCambio');
		$fecha = $Comprobante->getAttribute('fecha');
		$formadepago = utf8_decode($Comprobante->getAttribute('formaDePago'));
		$noCertificado = utf8_decode($Comprobante->getAttribute('noCertificado'));
		$subTotal = $Comprobante->getAttribute('subTotal');
		$total = $Comprobante->getAttribute('total');
		$tipoDeComprobante = utf8_decode($Comprobante->getAttribute('tipoDeComprobante'));
		$sello = utf8_decode($Comprobante->getAttribute('sello'));
		$Emisor = $Comprobante->getElementsByTagName('Emisor')->item(0);
		$emisorrfc = utf8_decode($Emisor->getAttribute('rfc'));
		$emisornombre = utf8_decode($Emisor->getAttribute('nombre'));
		$DomicilioFiscal = $Emisor->getElementsByTagName('DomicilioFiscal')->item(0);
		$emisorcalle = utf8_decode($DomicilioFiscal->getAttribute('calle'));
		$emisornoexterior = utf8_decode($DomicilioFiscal->getAttribute('noExterior'));
		$emisornointerior = utf8_decode($DomicilioFiscal->getAttribute('noInterior'));
		$emisorcolonia = utf8_decode($DomicilioFiscal->getAttribute('colonia'));
		$emisorlocalidad = utf8_decode($DomicilioFiscal->getAttribute('localidad'));
		$emisorreferencia = utf8_decode($DomicilioFiscal->getAttribute('referencia'));
		$emisormunicipio = utf8_decode($DomicilioFiscal->getAttribute('municipio'));
		$emisorestado = utf8_decode($DomicilioFiscal->getAttribute('estado'));
		$emisorpais = utf8_decode($DomicilioFiscal->getAttribute('pais'));
		$emisorcodigopostal = utf8_decode($DomicilioFiscal->getAttribute('codigoPostal'));
		if($Emisor->getElementsByTagName('ExpedidoEn')->length > 0){
			$ExpedidoEn = $Emisor->getElementsByTagName('ExpedidoEn')->item(0);
			$expedidocalle = utf8_decode($ExpedidoEn->getAttribute('calle'));
			$expedidonoexterior = utf8_decode($ExpedidoEn->getAttribute('noExterior'));
			$expedidonointerior = utf8_decode($ExpedidoEn->getAttribute('noInterior'));
			$expedidocolonia = utf8_decode($ExpedidoEn->getAttribute('colonia'));
			$expedidolocalidad = utf8_decode($ExpedidoEn->getAttribute('localidad'));
			$expedidoreferencia = utf8_decode($ExpedidoEn->getAttribute('referencia'));
			$expedidomunicipio = utf8_decode($ExpedidoEn->getAttribute('municipio'));
			$expedidoestado = utf8_decode($ExpedidoEn->getAttribute('estado'));
			$expedidopais = utf8_decode($ExpedidoEn->getAttribute('pais'));
			$expedidocodigopostal = utf8_decode($ExpedidoEn->getAttribute('codigoPostal'));
		}
		$Receptor = $Comprobante->getElementsByTagName('Receptor')->item(0);
		$receptorrfc = utf8_decode($Receptor->getAttribute('rfc'));
		$receptornombre = utf8_decode($Receptor->getAttribute('nombre'));
		if($Receptor->getElementsByTagName('Domicilio')->length > 0){
			$Domicilio = $Receptor->getElementsByTagName('Domicilio')->item(0);
			$receptorcalle = utf8_decode($Domicilio->getAttribute('calle'));
			$receptornoexterior = utf8_decode($Domicilio->getAttribute('noExterior'));
			$receptornointerior = utf8_decode($Domicilio->getAttribute('noInterior'));
			$receptorcolonia = utf8_decode($Domicilio->getAttribute('colonia'));
			$receptorlocalidad = utf8_decode($Domicilio->getAttribute('localidad'));
			$receptorreferencia = utf8_decode($Domicilio->getAttribute('referencia'));
			$receptormunicipio = utf8_decode($Domicilio->getAttribute('municipio'));
			$receptorestado = utf8_decode($Domicilio->getAttribute('estado'));
			$receptorpais = utf8_decode($Domicilio->getAttribute('pais'));
			$receptorcodigopostal = utf8_decode($Domicilio->getAttribute('codigoPostal'));
		}
		$TimbreFiscalDigital = $Comprobante->getElementsByTagName('TimbreFiscalDigital')->item(0);
		$UUID = $TimbreFiscalDigital->getAttribute('UUID');
		$FechaTimbrado = $TimbreFiscalDigital->getAttribute('FechaTimbrado');
		$noCertificadoSAT = $TimbreFiscalDigital->getAttribute('noCertificadoSAT');
		$selloSAT = $TimbreFiscalDigital->getAttribute('selloSAT');
		$cadenaoriginal = "||1.0|".$UUID."|".$FechaTimbrado."|".$TimbreFiscalDigital->getAttribute('selloCFD')."|".$noCertificadoSAT."||";
		$query = "select count(*) as total from cot_registros where serie='".$serie."' and folio =".$folio;
		include_once('conexion.php');
		$cl = @mssql_query($query, $conexion);
		if(!$cl){
			$mensajeLog = "Ha habido un error al buscar registros de serie='".$serie."' and folio =".$folio;
			logError($mensajeLog .": ".mssql_get_last_message()." El query que se intentó ejecutar es $query");
			$arrayErrores[] =$mensajeLog;
		} else {
			$row = mssql_fetch_assoc($cl);
			mssql_free_result($cl);
			if($row['total']>0){
				$arrayErrores[] = "El archivo subido ya se encuentra integrado";
			}
		}
		if(sizeof($arrayErrores)==0){
			$archivo = file($archivoTXT['tmp_name']);
			$detalles = array();
			$indice = -1;
			foreach($archivo as $linea){
				list($etiqueta, $valor) = explode(";", $linea);
				switch($etiqueta){
					case"CIA":$encabezado['CIA'] = trim($valor);break;
					case"FOLIO ERP":$encabezado['cve_cotizacion'] = trim($valor);break;
					case"SERIE":$encabezado['serie'] = trim($valor);break;
					case"Folio":$encabezado['folio'] = $valor+0;break;
					case"Cliente Proveedor":$encabezado['clienteproveedor']=trim($valor);break;
					case"Número de Consignatario":$encabezado['NumerodeConsignatario']= trim($valor);break;
					case"Número de Clte. Final":$encabezado['NumerodeClteFinal']= trim($valor);break;
					case"Nombre de Consignatario":$encabezado['NombredeConsignatario']= trim($valor);break;
					case"Nombre Clte. Final":$encabezado['NombreClteFinal']= trim($valor);break;
					case"Dirección 1 Consig.":$encabezado['Direccion1Consig']= trim($valor);break;
					case"Dirección 1 Clte. Final":$encabezado['Direccion1ClteFinal']= trim($valor);break;
					case"Dirección 2 Consig.":$encabezado['Direccion2Consig']= trim($valor);break;
					case"Dirección 2 Clte. Final":$encabezado['Direccion2ClteFinal']= trim($valor);break;
					case"Colonia Clte Final":$encabezado['ColoniaClteFinal']= trim($valor);break;
					case"Ciudad/Edo/País Consig.":$encabezado['CiudadEdoPaisConsig']= trim($valor);break;
					case"Ciudad/Edo/País Clte Fin":$encabezado['CiudadEdoPaisClteFin']= trim($valor);break;
					case"RFC Cliente Final":$encabezado['RFCClienteFinal']= trim($valor);break;
					case"Condición de Pago":$encabezado['CondiciondePago']= trim($valor);break;
					case"Núm. Entrega":$encabezado['NumEntrega']= trim($valor);break;
					case"Número del Transporte":$encabezado['NumerodelTransporte']= trim($valor);break;
					case"Fecha de Emisión":$encabezado['FechadeEmision']= trim($valor);break;
					case"Num. Unidad":$encabezado['NumUnidad']= trim($valor);break;
					case"Línea transportista":$encabezado['Lineatransportista']= trim($valor);break;
					case"Via":$encabezado['Via']= trim($valor);break;
					case"Condición de Flete":$encabezado['CondiciondeFlete']= trim($valor);break;
					case"Aduana":$encabezado['Aduana']= trim($valor);break;
					case"Peso Real":$encabezado['PesoReal']= trim($valor);break;
					case"Número":$encabezado['Numero']= trim($valor);break;
					case"Fecha Factura":$encabezado['FechaFactura']= trim($valor);break;
					case"Fecha de Entrega":$encabezado['FechadeEntrega']= trim($valor);break;
					case"Destino":$encabezado['Destino']= trim($valor);break;
					case"Condición de Venta":$encabezado['CondiciondeVenta']= trim($valor);break;
					case"Centro":$encabezado['Centro']= trim($valor);break;
					case"Codigo Almacén Salida":$encabezado['CodigoAlmacenSalida']= trim($valor);break;
					case"Almacén":$encabezado['Almacen']= trim($valor);break;
					case"Tipo Valorizacion":$encabezado['TipoValorizacion']= trim($valor);break;
					case"Tipo Moneda":$encabezado['TipoMoneda']= trim($valor);break;
					case"Metros Cubicos":$encabezado['MetrosCubicos']= trim($valor);break;
					case"Valor Humedad":$encabezado['ValorHumedad']= trim($valor);break;
					case"Valor Gravedad":$encabezado['ValorGravedad']= trim($valor);break;
					case"Valor Flete Terrestre":$encabezado['ValorFleteTerrestre']= trim($valor);break;
					case"Valor Seguro Terrestre":$encabezado['ValorSeguroTerrestre']= trim($valor);break;
					case"Valor Flete Maritimo":$encabezado['ValorFleteMaritimo']= trim($valor);break;
					case"Valor Seguro Maritimo":$encabezado['ValorSeguroMaritimo']= trim($valor);break;
					case"Valor GROSS WEIGHT":$encabezado['ValorGROSSWEIGHT']= trim($valor);break;
					case"Valor TARE WEIGHT":$encabezado['ValorTAREWEIGHT']= trim($valor);break;
					case"Valor NET WEIGHT":$encabezado['ValorNETWEIGHT']= trim($valor);break;
					case"Descripción en Factura":$encabezado['DescripcionenFactura']= trim($valor);break;
					case"Proporción S/Iva":$encabezado['ProporcionSIva']= trim($valor);break;
					case"Proporción C/Iva":$encabezado['ProporcionCIva']= trim($valor);break;
					case"leyenda PITEX":$encabezado['leyendaPITEX']= trim($valor);break;
					case"Descripción Valor Material":$encabezado['DescripcionValorMaterial']= trim($valor);break;
					case"Valor Material S/Iva":$encabezado['ValorMaterialSIva']= trim($valor);break;
					case"Dato Valor Material S/Iva":$encabezado['DatoValorMaterialSIva']= trim($valor);break;
					case"Valor Material C/Iva":$encabezado['ValorMaterialCIva']= trim($valor);break;
					case"Dato Valor Material C/Iva":$encabezado['DatoValorMaterialCIva']= trim($valor);break;
					case"Porc. Seguro":$encabezado['PorcSeguro']= trim($valor);break;
					case"Valor Seguro":$encabezado['ValorSeguro']= trim($valor);break;
					case"Valor Flete":$encabezado['ValorFlete']= trim($valor);break;
					case"Valor Subtotal1":$encabezado['ValorSubtotal1']= trim($valor);break;
					case"Porc. Iva Rep":$encabezado['PorcIvaRep']= trim($valor);break;
					case"Valor IVA Repercutido":$encabezado['ValorIVARepercutido']=trim($valor);break;
					case"Valor Subtotal2":$encabezado['ValorSubtotal2']=trim($valor);break;
					case"Valor Int. Finan":$encabezado['ValorIntFinan']=trim($valor);break;
					case"Valor Int. S / Finan":$encabezado['ValorIntSFinan']=trim($valor);break;
					case"Total Cantidad Valorizada":$encabezado['TotalCantidadValorizada']=trim($valor);break;
					case"Total de Toneladas":$encabezado['TotaldeToneladas']=trim($valor);break;
					case"Total Valor material M.N.":$encabezado['TotalValormaterialMN']=trim($valor);break;
					case"Leyendas":$encabezado['Leyendas']=trim($valor);break;
					case"Ruta":$encabezado['Ruta']=trim($valor);break;
					case"Zona":$encabezado['Zona']=trim($valor);break;
					case"Referencia":$encabezado['Referencia']=trim($valor);break;
					case"Expedido en":$encabezado['Expedidoen']=trim($valor);break;
					case"Valor Otros":$encabezado['ValorOtros']=trim($valor);break;
					case"Fac. de Referencia":$encabezado['FacdeReferencia']=trim($valor);break;
					case"Fecha Expedicion / Factura":$encabezado['FechaExpedicionFactura']=trim($valor);break;
					case"Motivo":$encabezado['Motivo']=trim($valor);break;
					case"Descripción del Motivo":$encabezado['DescripciondelMotivo']=trim($valor);break;
					case"Número de Cliente":$encabezado['NumerodeCliente']=trim($valor);break;
					case"CONTACTO":$encabezado['CONTACTO']=trim($valor);break;
					case"Tipo de Cambio":$encabezado['TipodeCambio']=trim($valor);break;
					case"IMPORTE TOTAL EN LETRAS":$encabezado['IMPORTETOTALENLETRAS']=trim($valor);break;
					case"Valor IVA Retenido":$encabezado['ValorIVARetenido']=trim($valor);break;
					case"Porc. Iva Ret":$encabezado['PorcIvaRet']=trim($valor);break;
					case"Codigo":$detalles[$indice]['Codigo']=trim($valor);break;
					case"Cantidad Valorizada":
						$detalles[$indice]['CantidadValorizada'] = $valor;
						if(($valor+0) > 0){
							$detalles[$indice]['cantidad']=trim($valor);
							$detalles[$indice]['UnidaddeMedida']=$encabezado['TipoValorizacion'];
						}
						break;
					case"Piezas":
						$detalles[$indice]['cantidad']=trim($valor);
						$detalles[$indice]['Piezas']=trim($valor);
						break;
					case"Precio Unitario":$detalles[$indice]['PrecioUnitario']=trim($valor);break;
					case"Valor Material":
						$detalles[$indice]['ValorMaterial'] = trim($valor);
						if(empty($detalles[$indice]['UnidaddeMedida'])){
							$detalles[$indice]['UnidaddeMedida']="NA";
						}
						break;
					case"Descripción Partida":$detalles[$indice]['DescripcionPartida']=trim($valor);break;
					case"Unidad de Medida":$detalles[$indice]['UnidaddeMedida']=trim($valor);break;
					case"Partida":
						$indice++;
						$detalles[$indice]['Partida'] = trim($valor);
						break;
					case"Pedido":$detalles[$indice]['Pedido']=trim($valor);break;
					case"Pedido del Cliente":$detalles[$indice]['PedidodelCliente']=trim($valor);break;
					case"Grupo de Artículo":$detalles[$indice]['GrupodeArticulo']=trim($valor);break;
					case"Espesor/Calibre/Peralte":$detalles[$indice]['EspesorCalibrePeralte']=trim($valor);break;
					case"Ancho/Diametro/Patin":$detalles[$indice]['AnchoDiametroPatin']=trim($valor);break;
					case"Largo":$detalles[$indice]['Largo']=trim($valor);break;
					case"Grado Norma/Fecha Expedicion":$detalles[$indice]['GradoNormaFechaExpedicion']=trim($valor);break;
					case"Valorización Precio":$detalles[$indice]['ValorizacionPrecio']=trim($valor);break;
					case"Peso":$detalles[$indice]['Peso']=trim($valor);break;
					case"Toneladas":
						$detalles[$indice]['Toneladas']=trim($valor);
						if(strtoupper($encabezado['CIA'])=="NASA"){
							$detalles[$indice]['Piezas']=trim($valor);
						}
						break;
				}
			}
			if($serie!=$encabezado['serie']){
				$arrayErrores[] = "Al parecer no se subió el archivo TXT correspondiente al archivo XML (".$serie."!=".$encabezado['serie'].")";
			}
			if($folio!=$encabezado['folio']){
				$arrayErrores[] = "Al parecer no se subió el archivo TXT correspondiente al archivo XML (".$folio."!=".$encabezado['folio'].")";
			}
		}
		if(sizeof($arrayErrores)==0){
			$query = "delete from cotizaciones where cve_cotizacion = '".$encabezado['cve_cotizacion']."'\n";
			$query .= "delete from detalle_cotizacion where cve_cotizacion = '".$encabezado['cve_cotizacion']."'\n";
			$query .= "delete from conector_complemento where cve_cotizacion = '".$encabezado['cve_cotizacion']."'\n";
			$cl = @mssql_query($query, $conexion);
			if(!$cl){
				$mensajeLog = "Ha habido un error al limpiar registros de serie='".$serie."' and folio =".$folio;
				logError($mensajeLog .": ".mssql_get_last_message()." El query que se intentó ejecutar es $query");
				$arrayErrores[] =$mensajeLog;
			}
			$inserts = array();
			$inserts["cve_cotizacion"] = "'".$encabezado['cve_cotizacion']."'";
            //$inserts["fecha_factura_texto"] = 'null'; //2
			$inserts["cliente_proveedor"] = "'".str_replace("'", "''", $encabezado['clienteproveedor'])."'"; //3
			$inserts["numerodeconsignatario"] = "'".str_replace("'", "''", $encabezado['NumerodeConsignatario'])."'"; //4
			$inserts["numeroclientefinal"] = "'".str_replace("'", "''", $encabezado['NumerodeClteFinal'])."'"; //5
			$inserts["nombreconsignatario"] = "'".str_replace("'", "''", $encabezado['NombredeConsignatario'])."'"; //6
			$inserts["nombrecltefinal"] = "'".str_replace("'", "''", $encabezado['NombreClteFinal'])."'"; //7
			$inserts["direccion1consig"] = "'".str_replace("'", "''", $encabezado['Direccion1Consig'])."'"; //8
			$inserts["direccion1cltefinal"] = "'".str_replace("'", "''", $encabezado['Direccion1ClteFinal'])."'"; //9
			$inserts["direccion2consig"] = "'".str_replace("'", "''", $encabezado['Direccion2Consig'])."'"; //10
			$inserts["direccion2cltefinal"] = "'".str_replace("'", "''", $encabezado['Direccion2ClteFinal'])."'"; //11
			$inserts["coloniacltefinal"] = "'".str_replace("'", "''", $encabezado['ColoniaClteFinal'])."'"; // 12
			$inserts["ciudadedopaisconsig"] = "'".str_replace("'", "''", $encabezado['CiudadEdoPaisConsig'])."'"; // 13
			$inserts["ciudadedopaisfinal"] = "'".str_replace("'", "''", $encabezado['CiudadEdoPaisClteFin'])."'"; // 14
			$inserts["rfcclientefinal"] = "'".str_replace("'", "''", $encabezado['RFCClienteFinal'])."'"; //15
			$inserts["condiciondepago"] = "'".str_replace("'", "''", $encabezado['CondiciondePago'])."'"; //16
			$inserts["folio"] = "'".str_replace("'", "''", $encabezado['folio'])."'"; // 17
			$inserts["numentrega"] = "'".str_replace("'", "''", $encabezado['NumEntrega'])."'"; //18
			$inserts["numtransporte"] = "'".str_replace("'", "''", $encabezado['NumerodelTransporte'])."'"; //19
			$inserts["fechaemision"] = "'".str_replace("'", "''", $encabezado['FechadeEmision'])."'"; //20
			$inserts["numunidad"] = "'".str_replace("'", "''", $encabezado['NumUnidad'])."'"; // 21
			$inserts["lineatransportista"] = "'".str_replace("'", "''", $encabezado['Lineatransportista'])."'"; //22
			$inserts["via"] = "'".str_replace("'", "''", $encabezado['Via'])."'"; // 23
			$inserts["condicionflete"] = "'".str_replace("'", "''", $encabezado['CondiciondeFlete'])."'"; //24
			$inserts["aduana"] = "'".str_replace("'", "''", $encabezado['Aduana'])."'"; // 25
			$inserts["pesoreal"] = $encabezado['PesoReal']+0; //26
			$inserts["numero"] = "'".str_replace("'", "''", $encabezado['Numero'])."'"; // 27
			$inserts["fechafactura"] = "'".str_replace("'", "''", $encabezado['FechaFactura'])."'"; //28
			$inserts["fechaentrega"] = "'".str_replace("'", "''", $encabezado['FechadeEntrega'])."'"; //29
			$inserts["tipodecambio"] = "'".str_replace("'", "''", $TipoCambio)."'"; //30
			$inserts["destino"] = "'".str_replace("'", "''", $encabezado['Destino'])."'"; //31
			$inserts["condiciondeventa"] = "'".str_replace("'", "''", $encabezado['CondiciondeVenta'])."'"; //32
			$inserts["centro"] = "'".str_replace("'", "''", $encabezado['Centro'])."'";//33
			$inserts["codigoalmacensalida"] = "'".str_replace("'", "''", $encabezado['CodigoAlmacenSalida'])."'"; //34
			$inserts["almacen"] = "'".str_replace("'", "''", $encabezado['Almacen'])."'"; //35
			$inserts["tipovalorizacion"] = "'".str_replace("'", "''", $encabezado['TipoValorizacion'])."'"; //36
			$inserts["tipomoneda"] = "'".str_replace("'", "''", $encabezado['TipoMoneda'])."'"; //37
			$inserts["metroscubicos"] = $encabezado['MetrosCubicos']+0; //38
			$inserts["valorhumedad"] = $encabezado['ValorHumedad']+0; //39
			$inserts["valorgravedad"] = $encabezado['ValorGravedad']+0; //40
			$inserts["valorfleteterrestre"] = $encabezado['ValorFleteTerrestre']+0; //41
			$inserts["valorseguroterrestre"] = $encabezado['ValorSeguroTerrestre']+0; //42
			$inserts["valorfletemaritimo"] = $encabezado['ValorFleteMaritimo']+0; //43
			$inserts["valorseguromaritimo"] = $encabezado['ValorSeguroMaritimo']+0; //44
			$inserts["valorgrossweight"] = $encabezado['ValorGROSSWEIGHT']+0; //45
			$inserts["valortareweight"] = $encabezado['ValorTAREWEIGHT']+0; //46
			$inserts["valornetweight"] = $encabezado['ValorNETWEIGHT']+0; //47
			$inserts["descripcionenfactura"] = "'".str_replace("'", "''", $encabezado['DescripcionenFactura'])."'"; //48
			$inserts["proporcion_s_iva"] = $encabezado['ProporcionSIva']+0; //49
			$inserts["proporcion_c_iva"] = $encabezado['ProporcionCIva']+0; //50
			$inserts["leyendapitex"] = "'".str_replace("'", "''", $encabezado['leyendaPITEX'])."'"; //51 AL PARECER EN DESUSO
			$inserts["descripcionvalormaterial"] = "'".str_replace("'", "''", $encabezado['DescripcionValorMaterial'])."'"; //52
			$inserts["valormaterial_s_iva"] = "'".str_replace("'", "''", $encabezado['ValorMaterialSIva'])."'"; //53
			$inserts["datovalormaterial_s_iva"] = $encabezado['DatoValorMaterialSIva']+0; //54
			$inserts["valormaterial_c_iva"] = "'".str_replace("'", "''", $encabezado['ValorMaterialCIva'])."'"; // 55
			$inserts["datovalormaterial_c_iva"] = $encabezado['DatoValorMaterialCIva']+0; //56
			$inserts["porcseguro"] = $encabezado['PorcSeguro']+0; //57
			$inserts["valorseguro"] = $encabezado['ValorSeguro']+0; //58
			$inserts["valorflete"] = $encabezado['ValorFlete']+0; //59
			$inserts["valor_subtotal1"] = $encabezado['ValorSubtotal1']+0; //60
			$inserts["porciva"] = $encabezado['PorcIvaRep']+0; //61
			$inserts["valoriva"] = $encabezado['ValorIVARepercutido']+0; // 62
			$inserts["valor_subtotal2"] = $encabezado['ValorSubtotal2']+0; //63
			$inserts["valorintfinan"] = $encabezado['ValorIntFinan']+0; //64
			$inserts["valorint_s_finan"] = $encabezado['ValorIntSFinan']+0; //65
			$inserts["totalcantidadvalorizada"] = $encabezado['TotalCantidadValorizada']+0; //66
			$inserts["totaldetoneladas"] = $encabezado['TotaldeToneladas']+0; //67
			//$inserts["totalmaterialusd"] = 0; //68   // insertar 0
			$inserts["totalmaterialmn"] = $encabezado['TotalValormaterialMN']+0; //69
			$inserts["leyendas"] = "'".str_replace("'", "''", $encabezado['Leyendas'])."'"; // 70
			$inserts["ruta"] = "'".str_replace("'", "''", $encabezado['Ruta'])."'"; //71
			$inserts["zona"] = "'".str_replace("'", "''", $encabezado['Zona'])."'"; //72
			$inserts["referencia"] = "'".str_replace("'", "''", $encabezado['Referencia'])."'"; //73
			$inserts["expedidoen"] = "'".str_replace("'", "''", $encabezado['Expedidoen'])."'"; //74
			$inserts["valorotros"] = $encabezado['ValorOtros']+0; //75
			$inserts["facdereferencia"] = "'".str_replace("'", "''", $encabezado['FacdeReferencia'])."'"; //76
			$inserts["fechaexpedicion"] = "'".str_replace("'", "''", $encabezado['FechaExpedicionFactura'])."'"; //77
			$inserts["motivo"] = "'".str_replace("'", "''", $encabezado['Motivo'])."'"; //78
			$inserts["descmotivo"] = "'".str_replace("'", "''", $encabezado['DescripciondelMotivo'])."'"; //79
			$query = "insert into conector_complemento (".implode(",", array_keys($inserts)).") values (".implode(",", $inserts).")";
			$result = @mssql_query($query, $conexion);
			if(!$result){
				$mensajeLog = "Ha habido un error al insertar en conector_complemento el registro de serie='".$serie."' and folio =".$folio;
				logError($mensajeLog .": ".mssql_get_last_message()." El query que se intentó ejecutar es $query");
				$arrayErrores[] =$mensajeLog;
			}
			unset($inserts);
			$inserts["cve_cotizacion"] = "'".str_replace("'", "''", $encabezado['cve_cotizacion'])."'"; //1
            $inserts["cve_cliente"] = "'".str_replace("'", "''", $encabezado['NumerodeCliente'])."'"; // 2
            $inserts["atenciona"] = "'".str_replace("'", "''", $encabezado['CONTACTO'])."'"; // 3
			// $inserts["ind_entregado"] = "'N'"; 
			// $inserts["ind_pedidosgenrados"] = "'N'"; 
			// $inserts["ind_cancelada"] = "'N'"; 
			$inserts["cve_moneda"] = "'".str_replace("'", "''", $encabezado['TipoMoneda'])."'";  //4
			$inserts["imp_total"] = $encabezado['TotalValormaterialMN']+0;  //5
			$inserts["imp_tc"] = $TipoCambio+0;  //6
			$inserts["letras"] = "'".str_replace("'", "''", $encabezado['IMPORTETOTALENLETRAS'])."'";  //7
			$inserts["imp_subtotal"] = $encabezado['ValorSubtotal1']+0;  //8
			$inserts["imp_iva"] = $encabezado['ValorIVARepercutido']+0;  //9
			$inserts["imp_retencion"] = $encabezado['ValorIVARetenido']+0;  //10
			$inserts["pct_iva"] = $encabezado['PorcIvaRep']+0;  //11
			$inserts["pct_retencion"] = $encabezado['PorcIvaRet']+0;  // 12
			//$inserts["imp_descuento"] = 0;  //13   
			$query = "insert into cotizaciones (".implode(",", array_keys($inserts)).") values (".implode(",", $inserts).")";
			$result = @mssql_query($query, $conexion);
			if(!$result){
				$mensajeLog = "Ha habido un error al insertar en cotizaciones el registro de serie='".$serie."' and folio =".$folio;
				logError($mensajeLog .": ".mssql_get_last_message()." El query que se intentó ejecutar es $query");
				$arrayErrores[] =$mensajeLog;
			}
			unset($inserts);
			$inserts["version"] = "'".$version."'"; //1
            $inserts["serie"] = "'".$serie."'"; //2
			$inserts["folio"] = $folio; //3
			$inserts["fecha"] = "'".$fecha."'"; //4
			$inserts["formadepago"] = "'".str_replace("'", "''", $formadepago)."'"; //5
			$inserts["nocertificado"] = "'".str_replace("'", "''", $noCertificado)."'"; //6
			$inserts["subtotal"] = $subTotal + 0; //7
			$inserts["total"] = $total + 0; //8
			$inserts["tipodecomprobante"] = "'".str_replace("'", "''", $tipoDeComprobante)."'"; //9
			$inserts["emisorrfc"] = "'".str_replace("'", "''", $emisorrfc)."'"; //10
			$inserts["emisornombre"] = "'".str_replace("'", "''", $emisornombre)."'"; //11
			$inserts["emisorcalle"] = "'".str_replace("'", "''", $emisorcalle)."'"; //12
			$inserts["emisornoexterior"] = "'".str_replace("'", "''", $emisornoexterior)."'"; //13
			$inserts["emisornointerior"] = "'".str_replace("'", "''", $emisornointerior)."'"; //14
			$inserts["emisorcolonia"] = "'".str_replace("'", "''", $emisorcolonia)."'"; //15
			$inserts["emisorlocalidad"] = "'".str_replace("'", "''", $emisorlocalidad)."'"; //16
			$inserts["emisorreferencia"] = "'".str_replace("'", "''", $emisorreferencia)."'"; //17
			$inserts["emisormunicipio"] = "'".str_replace("'", "''", $emisormunicipio)."'"; //18
			$inserts["emisorestado"] = "'".str_replace("'", "''", $emisorestado)."'"; //19
			$inserts["emisorpais"] = "'".str_replace("'", "''", $emisorpais)."'"; //20
			$inserts["emisorcodigopostal"] = "'".str_replace("'", "''", $emisorcodigopostal)."'"; //21
			$inserts["expedidocalle"] = "'".str_replace("'", "''", $expedidocalle)."'"; //22
			$inserts["expedidonoexterior"] = "'".str_replace("'", "''", $expedidonoexterior)."'"; //23
			$inserts["expedidonointerior"] = "'".str_replace("'", "''", $expedidonointerior)."'"; //24
			$inserts["expedidocolonia"] = "'".str_replace("'", "''", $expedidocolonia)."'"; //25
			$inserts["expedidolocalidad"] = "'".str_replace("'", "''", $expedidolocalidad)."'"; //26
			$inserts["expedidoreferencia"] = "'".str_replace("'", "''", $expedidoreferencia)."'"; //27
			$inserts["expedidomunicipio"] = "'".str_replace("'", "''", $expedidomunicipio)."'"; //28
			$inserts["expedidoestado"] = "'".str_replace("'", "''", $expedidoestado)."'"; //29
			$inserts["expedidopais"] = "'".str_replace("'", "''", $expedidopais)."'"; //30
			$inserts["expedidocodigopostal"] = "'".str_replace("'", "''", $expedidocodigopostal)."'"; //31
			$inserts["receptorrfc"] = "'".str_replace("'", "''", $receptorrfc)."'"; //32
			$inserts["receptornombre"] = "'".str_replace("'", "''", $receptornombre)."'"; //33
			$inserts["receptorcalle"] = "'".str_replace("'", "''", $receptorcalle)."'"; //34
			$inserts["receptornoexterior"] = "'".str_replace("'", "''", $receptornoexterior)."'"; //35
			$inserts["receptornointerior"] = "'".str_replace("'", "''", $receptornointerior)."'"; //36
			$inserts["receptorcolonia"] = "'".str_replace("'", "''", $receptorcolonia)."'"; //37
			$inserts["receptorlocalidad"] = "'".str_replace("'", "''", $receptorlocalidad)."'"; //38
			$inserts["receptorreferencia"] = "'".str_replace("'", "''", $receptorreferencia)."'"; //39
			$inserts["receptormunicipio"] = "'".str_replace("'", "''", $receptormunicipio)."'"; //40
			$inserts["receptorestado"] = "'".str_replace("'", "''", $receptorestado)."'"; //41
			$inserts["receptorpais"] = "'".str_replace("'", "''", $receptorpais)."'"; //42
			$inserts["receptorcodigopostal"] = "'".str_replace("'", "''", $receptorcodigopostal)."'"; //43
			$inserts["cve_cotizacion"] = "'".str_replace("'", "''", $encabezado['cve_cotizacion'])."'"; //44
            $inserts["cadenaoriginal"] = "'".str_replace("'", "''", $cadenaoriginal)."'"; //45
			$inserts["sellodigital"] = "'".str_replace("'", "''", $sello)."'"; //46
            $inserts["xml"] = "'".$emisorrfc."_CFD_".$serie.$folio."_".date("Ymd", strtotime($fecha)).".xml'"; //47
			$inserts["estado"] = "'1'"; //48
			$inserts["cancelado"] = "'N'"; //49
			$inserts["enviado"] = "'N'"; //50
			//$inserts["cc"] = "null"; //51
			$inserts["uuid"] = "'".$UUID."'"; //52
			$inserts["fechatimbrado"] = "'".$FechaTimbrado."'"; //53
			$inserts["nocertificadosat"] = "'".$noCertificadoSAT."'"; //54
			$inserts["sellosat"] = "'".$selloSAT."'"; //55
			$inserts["numerocliente"] = "'".str_replace("'", "''", $encabezado['NumerodeCliente'])."'"; //56
			// $inserts["xml_doc"] = "null"; //57
			// $inserts["xml_cancelado"] = "null"; //58
			// $inserts["pdf"] = "null";
			$query = "insert into cot_registros (".implode(",", array_keys($inserts)).") values (".implode(",", $inserts).")";
			$result = @mssql_query($query, $conexion);
			if(!$result){
				$mensajeLog = "Ha habido un error al insertar en cot_registros el registro de serie='".$serie."' and folio =".$folio;
				logError($mensajeLog .": ".mssql_get_last_message()." El query que se intentó ejecutar es $query");
				$arrayErrores[] =$mensajeLog;
			}
			foreach($detalles as $detalle){
				unset($inserts);
				$inserts["cve_cotizacion"] = "'".$encabezado['cve_cotizacion']."'";//1
				$inserts["num_referencia"] = "'".$detalle['Codigo']."'";//2
				$inserts["cantidad"] = $detalle['cantidad'] + 0;//3
				$inserts["precio_publico"] = $detalle['PrecioUnitario'] + 0; //4
				$inserts["imp_partida"] = $detalle['ValorMaterial'] + 0; //5
				$inserts["des_comentarios_partida"] = "'".str_replace("'", "''", $detalle['DescripcionPartida'])."'"; //6
				$inserts["des_unidadmedida"] = "'".str_replace("'", "''", $detalle['UnidaddeMedida'])."'"; //7
				// $inserts["pct_iva"] = 0; // 8 tomar el dato del encabezado si es que hace falta
				$inserts["st1"] = $detalle['ValorMaterial'] + 0;// 9
				$inserts["stotal"] = $detalle['ValorMaterial'] + 0;//10
				$inserts["posicion"] = "'".str_replace("'", "''", $detalle['Partida'])."'"; //11
				$inserts["pedido"] = "'".str_replace("'", "''", $detalle['Pedido'])."'"; //12
				$inserts["pedidodelcliente"] = "'".str_replace("'", "''", $detalle['PedidodelCliente'])."'"; //13
				$inserts["grupodearticulo"] = "'".str_replace("'", "''", $detalle['GrupodeArticulo'])."'"; // 14
				$inserts["espesorcalibreperalte"] = "'".str_replace("'", "''", $detalle['EspesorCalibrePeralte'])."'"; //15
				$inserts["anchodiametropatin"] = "'".str_replace("'", "''", $detalle['AnchoDiametroPatin'])."'"; //16
				$inserts["largo"] = "'".str_replace("'", "''", $detalle['Largo'])."'"; // 17
				$inserts["gradonorma"] = "'".str_replace("'", "''", $detalle['GradoNormaFechaExpedicion'])."'"; //18
				$inserts["cantidadvalorizada"] = $detalle['CantidadValorizada'] + 0; //19
				$inserts["toneladas"] = $detalle['Toneladas'] + 0; //20
				$inserts["valoracionprecio"] = $detalle['ValorizacionPrecio'] + 0; //21
				$inserts["preciounitario"] = $detalle['PrecioUnitario'] + 0; //22
				$inserts["valormaterial"] = $detalle['ValorMaterial'] + 0; //23
				$inserts["peso"] = "'".str_replace("'", "''", $detalle['Peso'])."'"; //24
				$inserts["imp_pu"] = $detalle['PrecioUnitario'] + 0;//25
				$inserts["letras"] = "'".str_replace("'", "''", $detalle['Piezas'])."'";
				$query = "insert into detalle_cotizacion (".implode(",", array_keys($inserts)).") values (".implode(",", $inserts).")";
				$result = @mssql_query($query, $conexion);
				if(!$result){
					$mensajeLog = "Ha habido un error al insertar en detalle_cotizacion el registro de serie='".$serie."' and folio =".$folio;
					logError($mensajeLog .": ".mssql_get_last_message()." El query que se intentó ejecutar es $query");
					$arrayErrores[] =$mensajeLog;
				}
				$path = "facturas/".date("Ym", strtotime($fecha))."/xml/";
				if(!is_dir($path)){
					@mkdir($path, 0777, true);
				}
				$destino = $path.$emisorrfc."_CFD_".$serie.$folio."_".date("Ymd", strtotime($fecha)).".xml";
				move_uploaded_file($archivoXML['tmp_name'], $destino);
				$path = "facturas/".date("Ym", strtotime($fecha))."/pdf/";
				if(!is_dir($path)){
					@mkdir($path, 0777, true);
				}
				$nombre_archivo = $path.$emisorrfc."_CFD_".$serie.$folio."_".date("Ymd", strtotime($fecha)).".pdf";
				$rfcemisor=$emisorrfc;
				$cscemisor=1;
				$ambiente = 'PRODUCCION';
				$result_factura = mssql_query("select * from cot_registros where cve_cotizacion = '".$encabezado['cve_cotizacion']."'");
				$row_factura = mssql_fetch_assoc($result_factura);
				mssql_free_result($result_factura);
				if(strtoupper($encabezado['CIA'])=="AHMSA"){
					switch($row_factura['serie']){case'FVD': require 'dibujar_facturavd.php';break;case'NCA':case'NCR':case'FAN':case'NAF':require'dibujar_notadecargo.php';break;case'FPP':default:require 'dibujar_factura.php';break;}
				} else {
					switch($row_factura['serie']){case'NCAAA':case'NCAEA':case'NCACA':case'NCABA':require'dibujar_notacargo_nasa.php';break;case'NCRAA':case'NCREA':case'NCRCA':case'NCRBA':require'dibujar_notacredito_nasa.php';break;case'FPPAA':case'FPPEA':case'FPPCA':case'FPPBA':default:require'dibujar_factura_nasa.php';break;}
				}
				mssql_close($conexion);
				$pdf->Output($nombre_archivo);
			}
		}
		mssql_close($conexion);
	}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link type="text/css" rel="stylesheet" href="estilos.css" />
</head>

<body>
<center>
<div class="fondo_azul">
<div class="fondo_blanco">
<?php
if(sizeof($arrayErrores)>0){?>
	Se presentaron errores durante el proceso:<br /><ul><?php
	foreach($arrayErrores as $k=>$v){?>
		<li><?=$v?></li>
		<?php
	}
	?></ul><?php
}
?>
<p>Para integrar un documento que no se guard&oacute; por la aplicaci&oacute;n indique la direcci&oacute;n del archivo XML as&iacute; como el TXT generador de la factura</p>
<form action="integrardocumento.php" method="post" enctype="multipart/form-data" name="integracfdi" id="integracfdi">
<input type="hidden" name="accion" value="integrar" />
<table>
	<tr>
		<td align="rigth">Archivo XML:</td>
		<td align="left"><input type="file" name="archivoxml" /></td>
	</tr>
	<tr>
		<td align="rigth">Archivo TXT:</td>
		<td align="left"><input type="file" name="archivotxt" /></td>
	</tr>
	<tr>
		<td align="center"colspan="2"><input type="submit" value="Integrar" /></td>
	</tr>
</table>
</form>
</div></div></center></body></html>