====== Método EnviarFactura() ====== [[manual_de_integracion_obj|{{ :60577.png?30x30}}]] El request del método es el siguiente: | Request: Parámetro a enviar ||| ^ **Tipo** ^ **Identificador** ^ **Descripción** ^ | String | RUC | Proporcionado por el cliente. | | String | Usuario | Proporcionado por The Factory HKA. | | String | Password | Proporcionado por The Factory HKA. | | Object | Documento | xml siguiente | ---- == OBJETO EJEMPLO == (Solo rellenar los nodos que consideren necesarios y que apliquen para su modelo de Factura) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ---- === Proceso para consumo EnviarFactura === * Se inicializa un objeto ServiceClient o Servicio * Se inicializa un objeto PeticionFactura donde se ingresan el RUC, el usuario de Integración ,clave de Integración y Documento * Se hace consumo del método EnviarFactura contenido en el objeto serviceClient y se coloca como parámetro la petición anterior, la respuesta estará contenida en un objeto llamado RepuestaPeticion, la respuesta tendrá los parámetros Código, Mensaje y Archivo // // try { ServiceClient servicio = new ServiceClient(); PeticionFactura pet = new PeticionFactura(); Factura fact = new Factura(); //******************************INFOTRIBUTARIA******************************************* InfoTributaria infotrib = new InfoTributaria(); fact.InfoTributaria = InformacionTrib(); pet.Documento = fact; fact.Version = textBox20.Text; fact.CorreoNotificar = textBox76.Text; fact.Notificar = "SI"; fact.DirCliente = "Direccion del cliente"; //**********************************INFOFACTURA********************************************* InfoFactura infoFactura = new InfoFactura(); fact.InfoFactura = infoFactura; infoFactura.FechaEmision = textBox1.Text; infoFactura.DirEstablecimiento = textBox2.Text; infoFactura.ContribuyenteEspecial = textBox3.Text; infoFactura.ObligadoContabilidad = textBox4.Text; infoFactura.TipoIdentificacionComprador = textBox5.Text; infoFactura.RazonSocialComprador = textBox6.Text; infoFactura.IdentificacionComprador = textBox7.Text; infoFactura.DireccionComprador = textBox8.Text; infoFactura.TotalSinImpuestos = textBox9.Text; infoFactura.ImporteTotal = textBox10.Text; infoFactura.TotalImpuestoReembolso = textBox34.Text; infoFactura.TotalConImpuestos = new List(); infoFactura.TotalConImpuestos.Add(TotImp()); infoFactura.TotalDescuento = "0.00"; infoFactura.Moneda = "DOLAR"; infoFactura.TotalSubsidio = "0.00"; //*****************************DETALLES********************************************** fact.Detalles = new List(); DetalleFactura det = new DetalleFactura() { CodigoPrincipal = textBox67.Text, CodigoAuxiliar = textBox68.Text, Descripcion = textBox69.Text, Cantidad = textBox70.Text, PrecioUnitario = textBox71.Text, UnidadMedida = textBox72.Text, Descuento = textBox73.Text, PrecioSinSubsidio = textBox74.Text, PrecioTotalSinImpuesto = textBox75.Text }; det.Impuestos = new List(); det.Impuestos.Add(ImpuestDet()); det.DetAdicional = new List(); DetAdicional detAd = new DetAdicional { Nombre = "Nombre1", Valor = "12345678" }; det.DetAdicional.Add(detAd); fact.Detalles.Add(det); //***********************************PAGOS********************************* Pago pago = new Pago { FormaPago = textBox63.Text, Total = textBox64.Text, Plazo = textBox65.Text, UnidadTiempo = textBox66.Text }; fact.InfoFactura.Pagos = new List(); fact.InfoFactura.Pagos.Add(pago); fact.InfoFactura.TotalConImpuestos = new List(); fact.InfoFactura.TotalConImpuestos.Add(TotImp()); //**********************************ENVIO PETICION*************************** pet.Clave = "claveintegracion"; pet.RUC = "170000738001"; pet.Usuario = "ususariointegracion"; RepuestaPeticion resp = servicio.EnviarFactura(pet); servicio.Close(); richTextBox1.Text = resp.Mensaje + "--" + resp.Codigo + "--" + "\r\n" + resp.Archivo; } catch (Exception ex) { MessageBox.Show("Mensaje error: " + ex); } try { include ("Formas.php"); $wsdl_url = 'http://demointws.thefactoryhka.com.ec/Service.svc?wsdl'; $client = new SOAPClient($wsdl_url); $objeto=new PeticionFactura(); $doc=new Documento(); $objeto->Documento=$doc; // *****************DATOS INFOTRIBUTARIA*************** $infofact=new InfoFactura(); $objeto->Documento->InfoFactura=$infofact; $infofact->DirEstablecimiento="Direccion estableciemineto"; $infofact->DireccionComprador="Direccion Comprador cualquiera"; $infofact->FechaEmision="16/02/2022"; $infofact->IdentificacionComprador="1791282183001"; $infofact->ImporteTotal="112.00"; $infofact->Moneda="DOLAR"; $infofact->ObligadoContabilidad="SI"; $pag=new Pago(); $pag->FormaPago="01"; $pag->Plazo="3"; $pag->Total="112.00"; $pag->UnidadTiempo="dias"; $infofact->Pagos=array($pag); $infofact->RazonSocialComprador="INDUSTRIAL Y AUTOMOTRIZ INDYA S.A."; $infofact->TipoIdentificacionComprador="04"; $totimp=new TotalConImpuesto(); $totimp->BaseImponible="100.00"; $totimp->Codigo="2"; $totimp->CodigoPorcentaje="2"; $totimp->Descuentoadicional="0.00"; $totimp->ValorDevolucionIva="0.00"; $totimp->Valor="120.00"; $totimp->Tarifa="12"; $infofact->TotalConImpuestos=array($totimp); $infofact->TotalDescuento="0.00"; $infofact->TotalImpuestoReembolso="12.00"; $infofact->TotalSinImpuestos="100.00"; $infofact->TotalSubsidio="0.00"; // *********************DATOS INFOFACTURA*************** $infotrib = new InfoTributaria(); $infotrib->CodigoNumerico="12345678"; $infotrib->DirMatriz="direccion Matriz ABC"; $infotrib->Estab="001"; $infotrib->PtoEmi="101"; $infotrib->Secuencial="000000112"; $infotrib->Nombrecomercial="Fabrica Ecuatoriana Ecuagoch SA"; $infotrib->RazonSocial="ECUAGOCH"; $objeto->Documento->InfoTributaria=$infotrib; $objeto->Documento->CorreoNotificar="scastillo@gmail.com"; $objeto->Documento->DirCliente="Direccion del cliente"; $objeto->Documento->Notificar="SI"; // ********************DETALLES********************* $det=new DetalleFactura(); $det->Cantidad="1"; $det->CodigoAuxiliar="A000001"; $det->CodigoPrincipal="A000001A"; $det->Descripcion="Articulo Nuevo FFFF"; $impDet=new ImpuestoDetalle(); $impDet->BaseImponible="100.00"; $impDet->Codigo="2"; $impDet->CodigoPorRet="2"; $impDet->Tarifa="12"; $impDet->Valor="12.00"; $det->Impuestos=array($impDet); $det->PrecioTotalSinImpuesto="100.00"; $det->PrecioUnitario="100.00"; $det->DetAdicional=array("Nombre"=>"NOmbreAdicionalx","Valor"=>"10.00"); $det->PrecioSinSubsidio="0.00"; $det->Descuento="0.00"; $doc->Detalles=array($det); $pet = [array("data"=> $objeto )]; $return = $client->__soapCall("EnviarFactura", $pet); print_r($return); } catch (Exception $e) { echo "Exception occured: " . $e; } Donde el archivo Formas.php es el siguiente: == ARCHIVOS FACTURA XML/XSD == En este enlace se encuentran disponibles los xml y xsd de factura en sus distintas versiones {{:xml_y_xsd_factura.zip}} ---- [[manual_de_integracion_obj|{{:60577.png?30x30 }}]]