Esempio n. 1
0
 protected void sincronizarCierreCaja(bool enviarCorreo)
 {
     try
     {
         if (this.conexionInternet)
         {
             frm_cargando sincronizar = new frm_cargando(this.cajaActiva.Id, (enviarCorreo)?this.obtenerDatos():null);
             sincronizar.Owner = this;
             sincronizar.ShowDialog();
         }
         else
         {
             if (Mensaje.confirmacion("Caja cerrada satisfactoriamente.\n Desea generar el archivo de cierre?"))
             {
                 if (this.fbd_buscar.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                 {
                     string mensaje = "";
                     //string nuevoNumero = EmpresaTR.obtenerNumerodeCierre(ref mensaje).ToString();
                     Sincronizacion xml       = new Sincronizacion();
                     XmlDocument    documento = xml.generarXmlCierreCaja(this.cajaActiva.Id);
                     documento.Save(this.fbd_buscar.SelectedPath + @"\CierreCaja_" + DateTime.Now.ToShortDateString().Replace("/", "") + "_" + this.cajaActiva.Id + ".xml");
                     Sincronizacion.actualizarEstadoUsb(ref mensaje, this.cajaActiva.Id);
                     Mensaje.informacion("Archivo generado satisfactoriamente.");
                 }
             }
         }
     }
     catch (Exception e)
     {
         Mensaje.error(e.Message);
     }
 }
        protected void sincronizarPartes()
        {
            Sincronizacion.actualizarEstadoFacturas(idCaja);
            List <int>     cantidad           = Sincronizacion.cantidadFacturas(this.idCaja);
            Sincronizacion xml                = new Sincronizacion();
            bool           errorSincronizar   = false;
            bool           sincronizoCorrecto = false;
            string         errores            = "";

            if (cantidad[0] == 0)
            {
                Sincronizacion.actualizarEstadoInternet("C", idCaja);
                if (!this.sincronizarGuias)
                {
                    Mensaje.informacion("No hay facturas por sincronizar en esta caja.");
                    this.cerrarFormulario(DialogResult.OK);
                }
                return;
            }

            for (int i = 0; i < cantidad[2]; i++)
            {
                /* 0->n°facturas
                 * 1->cantidad a sincronizar
                 * 2->n° veces a sincronizar
                 */
                int inicio = ((i * cantidad[1]) + 1);
                int fin    = (inicio + cantidad[1]) - 1;
                if (fin > cantidad[0])
                {
                    fin = cantidad[0];
                }

                this.setTextoEstado("Recopilando Información : " + inicio + " a " + fin + " de " + cantidad[0]);
                XmlDocument documento = xml.generarXmlCierreCaja(this.idCaja, inicio - 1, cantidad[1], (i == cantidad[2] - 1 && !errorSincronizar));
                //System.Threading.Thread.Sleep(1000);
                this.setTextoEstado("Subiendo Ventas: " + inicio + " a " + fin + " de " + cantidad[0]);
                //documento.Save(@"c:\xml\cierre" + idCaja + "_" + i + ".xml");

                /*SincronizarVentasService servicio = new SincronizarVentasService();
                 * servicio.Timeout = 800000;
                 * System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidarCertificado);
                 * sincronizar_ventas parametro = new sincronizar_ventas();
                 * parametro.empresa = Global.idEmpresa;
                 * parametro.xml_ventas = General.scapeCharacters(documento.InnerXml);
                 * sincronizar_ventasResponse respuesta = servicio.sincronizar_ventas(parametro);
                 * string resultado = respuesta.sincronizar_ventasResult;
                 * XmlDocument resultadoXml = new XmlDocument();
                 * resultadoXml.LoadXml(resultado);
                 * XmlNode raiz = resultadoXml.GetElementsByTagName("root")[0];
                 * bool respuestaXml = Convert.ToBoolean(raiz["respuesta"].InnerText);
                 * string errorXml = raiz["error"].InnerText;
                 * if (respuestaXml)
                 * {
                 *  Sincronizacion.actualizarEstadoTemp(idCaja, inicio-1, cantidad[1]);
                 *  sincronizoCorrecto = true;
                 * }
                 * else
                 * {
                 *  errores += errorXml + "\n";
                 *  errorSincronizar = true;
                 * }*/
            }

            if (errorSincronizar && sincronizoCorrecto)
            {
                Sincronizacion.actualizarEstadoFacturas(idCaja);
                Sincronizacion.actualizarEstadoInternet("I", idCaja);
                if (!this.sincronizarGuias)
                {
                    if (this.Visible)
                    {
                        Mensaje.advertencia("Ventas sincronizadas incompletas.\n" + errores);
                        this.cerrarFormulario(DialogResult.Ignore);
                    }
                    else
                    {
                        Mensaje.mostrarNotificacion("Sincronización", "Ventas sincronizadas incompletas.");
                    }
                }
                else
                {
                    this.sincronizacionCorrecta = false;
                    this.mensajeError           = "Ventas sincronizadas incompletas.\n" + errores;
                }
                this.enviarCorreoError(idCaja, errores);
            }
            else if (errorSincronizar)
            {
                string mensajeError = "Ocurrio un error al sincronizar las ventas: \n" + errores;
                if (!this.sincronizarGuias)
                {
                    if (this.Visible)
                    {
                        Mensaje.error(mensajeError);
                        this.cerrarFormulario(DialogResult.Cancel);
                    }
                }
                else
                {
                    this.sincronizacionCorrecta = false;
                    this.mensajeError           = mensajeError;
                }
                this.enviarCorreoError(idCaja, errores);
            }
            else if (sincronizoCorrecto)
            {
                Sincronizacion.actualizarEstadoInternet("C", idCaja);
                Sincronizacion.actualizarEstadoFacturas(idCaja);
                if (!this.sincronizarGuias)
                {
                    if (this.Visible)
                    {
                        Mensaje.informacion("Ventas sincronizadas satisfactoriamente.");
                        this.cerrarFormulario(DialogResult.OK);
                    }
                    else
                    {
                        Mensaje.mostrarNotificacion("Ventas Sincronizadas", "Las ventas han sido sincronizadas satisfactoriamente");
                    }
                }
                else
                {
                    this.sincronizacionCorrecta = true;
                }
            }
            else
            {
                Mensaje.error("No hubo respuesta del servidor");
                if (this.Visible)
                {
                    this.cerrarFormulario(DialogResult.Cancel);
                }
            }
        }