示例#1
0
        public bool facturar(ModeloPedido p_mod_pedido)
        {
            string respuesta;

            WSAFIPFE.Factura fe = new WSAFIPFE.Factura();

            if (fe.iniciar(0, CuitEmisor, CertificadoPath, ""))
            {
                if (this.getTicketAcceso(fe))
                {
                    ControladorAFIP.inicializarConstantes(fe);
                    ControladorAFIP.agregarDetallesPedido(fe, p_mod_pedido);
                    try
                    {
                        int ultimoAutorizado = fe.F1CompUltimoAutorizado(fe.F1CabeceraPtoVta, fe.F1CabeceraCbteTipo);

                        fe.F1DetalleCbteDesde = ultimoAutorizado + 1;
                        fe.F1DetalleCbteHasta = ultimoAutorizado + 1;
                    }
                    catch (System.Net.WebException ex)
                    {
                        errorActual = "Error: " + ex.Message;
                    }
                    ControladorAFIP.agregarItems(fe, p_mod_pedido);

                    fe.F1DetalleCbtesAsocItemCantidad = 0;
                    fe.F1DetalleOpcionalItemCantidad  = 0;

                    fe.ArchivoXMLRecibido = afipFolderPath + @"\XML\recibido.xml";
                    fe.ArchivoXMLEnviado  = afipFolderPath + @"\XML\enviado.xml";

                    if (fe.F1CAESolicitar())
                    {
                        respuesta = "Resultado verdadero ";
                        if (fe.F1RespuestaResultado == "A")
                        {
                            ControladorAFIP.cargarRespuestaEnPedido(fe, p_mod_pedido);
                            return(true);
                        }
                    }
                    else
                    {
                        respuesta = "Resultado falso ";
                    }
                    respuesta += Environment.NewLine + "Resultado global AFIP: " + fe.F1RespuestaResultado;
                    respuesta += Environment.NewLine + "Es reproceso? " + fe.F1RespuestaReProceso;
                    respuesta += Environment.NewLine + "Registros procesados por AFIP: " + fe.F1RespuestaCantidadReg.ToString();
                    respuesta += Environment.NewLine + "Error genérico global:" + fe.f1ErrorMsg1;
                    if (fe.F1RespuestaCantidadReg > 0)
                    {
                        fe.f1Indice = 0;
                        ControladorAFIP.cargarRespuestaEnPedido(fe, p_mod_pedido);
                        respuesta += Environment.NewLine + "Resultado detallado comprobante: " + p_mod_pedido.aprobadoAFIP;
                        respuesta += Environment.NewLine + "CAE comprobante: " + p_mod_pedido.CAE;
                        respuesta += Environment.NewLine + "Número comprobante:" + p_mod_pedido.numeroComprobanteAFIP;
                        respuesta += Environment.NewLine + "Error detallado comprobante: " + fe.F1RespuestaDetalleObservacionMsg1;

                        respuesta = this.getError(fe);
                    }
                }
                else
                {
                    respuesta = "fallo acceso " + fe.UltimoMensajeError;
                }
            }
            else
            {
                respuesta = "error inicio " + fe.UltimoMensajeError;
            }

            errorActual = respuesta;
            return(false);
        }