public RespuestaGeneral PFACO0001(string fechaInicial, string fechaFinal, string tipoDocumento)
        {
            RespuestaGeneral respuesta = new RespuestaGeneral();
            String loteFacturas = string.Empty;
            DateTime fechaInicioLote = new DateTime();
            DateTime fechaFinLote = new DateTime();
            try
            {
                if (String.IsNullOrEmpty(fechaInicial) || String.IsNullOrEmpty(fechaFinal)) //valida que las fechas no vengan vacias
                {
                    respuesta.Mensaje = (String.IsNullOrEmpty(fechaInicial)) ? "Debe ingresar la fecha inicial" : "Debe ingresar la fecha final";
                }
                else if (!String.IsNullOrEmpty(fechaInicial) && !String.IsNullOrEmpty(fechaFinal) && String.IsNullOrEmpty(tipoDocumento))
                {
                    respuesta.Mensaje = "Debe ingresar el tipo de documento [1=Factura][2=Nota de Crédito]";
                }
                else if (!String.IsNullOrEmpty(fechaInicial) && !String.IsNullOrEmpty(fechaFinal) && !String.IsNullOrEmpty(tipoDocumento))
                {
                    if (tipoDocumento.Equals("1") || tipoDocumento.Equals("2")) //verifica que solo se ingrese tipo de documento factura o nota de credito respectivamente
                    {
                        fechaInicioLote = DateTime.Parse(fechaInicial);
                        fechaFinLote = DateTime.Parse(fechaFinal);
                        if (SqlMethods.DateDiffDay(fechaInicioLote, fechaFinLote) < 0) //verifica que la fecha inicial no sea mayor a la fecha final
                        {
                            respuesta.Mensaje = "La fecha final no debe de ser mayor a la fecha de inicio";
                        }
                        else
                        {
                            //se procede a procesar la petición

                        }
                    }
                    else
                    {
                        respuesta.Mensaje = "El dato ingresado como tipo de documento no se reconoce como un documento valido.";
                    }
                }
            }
            catch (Exception ex)
            {
                respuesta.Mensaje = String.Format("Detalle: {0}", ex.Message);
            }
            return respuesta;
        }
 public RespuestaGeneral CargaDocumentoLote_IFACERE_LOCAL(String pDatos)
 {
     RespuestaGeneral respuesta = new RespuestaGeneral();
     try
     {
         iflocal.SSO_wsEFactura ifacere = new iflocal.SSO_wsEFactura();
         ifacere.Timeout = 42300000;
         iflocal.clsResponseLote retorno = ifacere.RegistraLoteDocumentosXML(pDatos);
         respuesta.Resultado = retorno.pResultado;
         respuesta.Mensaje = retorno.pDescripcion;
         respuesta.Respuesta = null;//retorno.pResultadoDocumentos;
     }
     catch (Exception err)
     {
         respuesta.Resultado = false;
         respuesta.Mensaje = "Error en la Carga del Lote - IFACERE Local x001 "+ err.Message;
         respuesta.Respuesta = null;
     }
     return respuesta;
 }
 public RespuestaGeneral RegistraDocumento(String pCompania,String pNoDocumento, String pEstadoDocumento, String pInventario, String pTipoDocumento, String pUsuario, String pFechaDocumento)
 {
     RespuestaGeneral respuesta = new RespuestaGeneral();
     DateTime inicioOperacion = DateTime.Now;
     DateTime finOperacion;
     String tDoc = "";
     try
     {
         if (pTipoDocumento.Equals("FIN") || pTipoDocumento.Equals("FOF") || pTipoDocumento.Equals("FVH") || pTipoDocumento.Equals("FVU") || pTipoDocumento.Equals("SER"))//Todas las Facturas
         {
             tDoc = "1";
         }
         else if (pTipoDocumento.Equals("NIN") || pTipoDocumento.Equals("NOF") || pTipoDocumento.Equals("NVH") || pTipoDocumento.Equals("NVU") || pTipoDocumento.Equals("NSE"))//Todas las Notas de Credito
         {
             tDoc = "2";
         }
         //AccesoDatos acd = new AccesoDatos();
         //string qry = String.Format(Query.EstadoDocumento, tDoc,pCompania,pNoDocumento);
         //DataTable estadoDoc = acd.RealizaConsulta(qry);
         //if (estadoDoc.Rows.Count > 0)
         //{
         //    pEstadoDocumento = estadoDoc.Rows[0]["estado"].ToString();
         //}
         string xmlDoc = "";
         inicioOperacion = DateTime.Now;
         if (pTipoDocumento.Equals("FIN"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.Factura, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.Repuesto, "");
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("NIN"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.NotaCredito, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.Repuesto, "");
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("SER"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.Factura, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.Taller, "");
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("NSE"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.NotaCredito, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.Taller, "");
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("FVH"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.Factura, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.VehiculoNuevo,"",pFechaDocumento);
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("FVU"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.Factura, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.VehiculoUsado, "",pFechaDocumento);
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("NVH") || pTipoDocumento.Equals("NVU"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.NotaCredito, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.Oficina, "NCR");
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("FOF"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.Factura, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.Oficina, "FAC");
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (pTipoDocumento.Equals("NOF"))
         {
             GeneraXML xml = new GeneraXML(PFACW0001.ENUMS.TDocumento.NotaCredito, pCompania, pEstadoDocumento, pInventario, pNoDocumento, PFACW0001.ENUMS.TFactura.Oficina, "NCR");
             xmlDoc = xml.getXmlDocumentoElectronico();
         }
         if (String.IsNullOrEmpty(xmlDoc))
         {
             respuesta.Resultado = false;
             respuesta.Respuesta = "S/D";
             respuesta.Mensaje = "Error al Armar XML del Documento";
         }
         else
         {
             RespuestaGeneral temp = new RespuestaGeneral();
             temp = CargaDocumento_IFACERE_LOCAL(xmlDoc, pTipoDocumento);
             respuesta.Resultado = temp.Resultado;
             respuesta.Respuesta = temp.Respuesta;
             respuesta.Mensaje = temp.Mensaje;
             if (respuesta.Resultado)
             {
                 string hora = DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;
                 AlmacenaEnvioDocumentos(false, pCompania, pTipoDocumento, "", "", hora, pUsuario, "0", pNoDocumento);
             }
             finOperacion = DateTime.Now;
             respuesta.Mensaje = respuesta.Mensaje + Environment.NewLine + String.Format("Duración: {0}", (finOperacion - inicioOperacion).ToString().Substring(0,8));
         }
     }
     catch (Exception err)
     {
         finOperacion = DateTime.Now;
         respuesta.Resultado = false;
         respuesta.Respuesta = null;
         respuesta.Mensaje = err.Message + Environment.NewLine + String.Format("Duración: {0}", (finOperacion - inicioOperacion).ToString().Substring(0, 8));
     }
     return respuesta;
 }
 private RespuestaGeneral CargaDocumento_IFACERE_LOCAL(String pDatos, String pTipoDoc)
 {
     RespuestaGeneral respuesta = new RespuestaGeneral();
     try
     {
         iflocal.SSO_wsEFactura ifacere = new iflocal.SSO_wsEFactura();
         if (pTipoDoc.Equals("FIN") || pTipoDoc.Equals("SER") || pTipoDoc.Equals("FOF")||pTipoDoc.Equals("FVH")||pTipoDoc.Equals("FVU"))
         {
             iflocal.clsResponseGeneral retorno = ifacere.RegistraFacturaXML(pDatos);
             respuesta.Resultado = retorno.pResultado;
             respuesta.Mensaje = retorno.pDescripcion;
             respuesta.Respuesta = retorno.pRespuesta;
         }
         if (pTipoDoc.Equals("NIN") || pTipoDoc.Equals("NSE") || pTipoDoc.Equals("NVH") || pTipoDoc.Equals("NVU") || pTipoDoc.Equals("NOF"))
         {
             iflocal.clsResponseGeneral retorno = ifacere.RegistraNotaCreditoXML(pDatos);
             respuesta.Resultado = retorno.pResultado;
             respuesta.Mensaje = retorno.pDescripcion;
             respuesta.Respuesta = retorno.pRespuesta;
         }
     }
     catch (Exception err)
     {
         respuesta.Resultado = false;
         respuesta.Mensaje = "Error en la Carga del Documento - IFACERE Local x002 " + err.Message;
         respuesta.Respuesta = null;
     }
     return respuesta;
 }
        public RespuestaGeneral RegistraLoteDocumentos(String tipoDocumento, String Compania, String tipoInventario, String fecha_inicio, String fecha_fin, String usuario)
        {
            RespuestaGeneral respuesta = new RespuestaGeneral();
            DateTime inicioOperacion = DateTime.Now;
            DateTime finOperacion;
            string xmlLote = "";
            try
            {

                inicioOperacion = DateTime.Now;
                string LoteNumero = ObtieneUltimoLote(Compania, tipoDocumento);
                xmlLote = ArmaLoteDocumentos(tipoDocumento, Compania, tipoInventario, fecha_inicio, fecha_fin, usuario, LoteNumero);
                if (String.IsNullOrEmpty(xmlLote))
                {
                    respuesta.Resultado = false;
                    respuesta.Respuesta = "N/D";
                    respuesta.Mensaje = "Error al Armar XML del Lote";
                }
                else
                {
                    RespuestaGeneral temp = new RespuestaGeneral();
                    temp = CargaDocumentoLote_IFACERE_LOCAL(xmlLote);
                    respuesta = temp;
                    if (respuesta.Resultado)
                    {
                        string hora = DateTime.Now.Hour.ToString().PadLeft(2, '0') + ":" + DateTime.Now.Minute.ToString().PadLeft(2, '0') + ":" + DateTime.Now.Second.ToString().PadLeft(2, '0');
                        AlmacenaEnvioDocumentos(true, Compania, tipoDocumento, fecha_inicio, fecha_fin, hora, usuario, LoteNumero,"");
                    }
                    finOperacion = DateTime.Now;
                    respuesta.Mensaje = respuesta.Mensaje + Environment.NewLine + String.Format("Duración: {0}", (finOperacion - inicioOperacion).ToString().Substring(0,8));
                }
            }
            catch(Exception err)
            {
                finOperacion = DateTime.Now;
                respuesta.Resultado = false;
                respuesta.Respuesta = xmlLote;
                respuesta.Mensaje = err.Message + Environment.NewLine + String.Format("Duración: {0}", (finOperacion - inicioOperacion).ToString().Substring(0, 8));
            }
            return respuesta;
        }