Example #1
0
    private void sellarEstado(string fechaIngreso)
    {
        try
        {
            string nuevoCorrelativo = "0";
            string codigoEstado = "";
            conectar();
            TiempoFlujosBO bo = new TiempoFlujosBO(logApp);
            AduanasXRutaBO ar = new AduanasXRutaBO(logApp);
            TiempoFlujosBO tf1 = new TiempoFlujosBO(logApp);
            TiempoFlujosBO tf2 = new TiempoFlujosBO(logApp);
            GuiasBO g = new GuiasBO(logApp);
            UnidadesBO u = new UnidadesBO(logApp);
            MotoristasBO m = new MotoristasBO(logApp);
            CodigosBO co = new CodigosBO(logApp);
            AduanasBO a = new AduanasBO(logApp);

            if (edCodEstado.Value != "14")
            {
                if (edTipoFlujo.Value == "1")   //flujo completo
                {
                    #region Flujo Completo
                    //if (edCodEstado.Value == "6" || edCodEstado.Value == "7")
                    //{
                    ar.loadAduanasXRuta(edCodRuta.Value);
                    if (ar.totalRegistros > 0)
                    {
                        if (edCodEstado.Value == "6" || edCodEstado.Value == "7")
                        {
                            //cuando hay mas de una aduana que reitere en 6 y 7
                            tf1.loadFlujoGuiaCodFlujo(edCorrGuia.Value, "6");
                            tf2.loadFlujoGuiaCodFlujo(edCorrGuia.Value, "7");
                            if (tf1.totalRegistros < ar.totalRegistros)
                            {
                                if (tf2.totalRegistros == tf1.totalRegistros)
                                    codigoEstado = "7";
                                else
                                    codigoEstado = "6";
                            }
                            else
                                codigoEstado = "8";
                        }
                        else if (edCodEstado.Value == "10")
                            codigoEstado = (int.Parse(edCodEstado.Value) + 4).ToString();
                        else
                            codigoEstado = (int.Parse(edCodEstado.Value) + 1).ToString();
                    }
                    else
                    {
                        if (edCodEstado.Value == "5")
                        {
                            codigoEstado = (int.Parse(edCodEstado.Value) + 3).ToString();
                            edCodAduana.Value = "";
                        }
                        else if (edCodEstado.Value == "10")
                        {
                            codigoEstado = (int.Parse(edCodEstado.Value) + 4).ToString();
                            edCodAduana.Value = "";
                        }
                        else
                        {
                            codigoEstado = (int.Parse(edCodEstado.Value) + 1).ToString();
                            edCodAduana.Value = "";
                        }
                    }

                    bo.getMaxCorrelativo(edCorrGuia.Value);
                    if (bo.totalRegistros > 0)
                        nuevoCorrelativo = (int.Parse(bo.CORRELATIVOGUIA) + 1).ToString();
                    else
                        nuevoCorrelativo = "1";
                    #endregion
                }
                else if (edTipoFlujo.Value == "2")  //semi flujo
                {
                    #region Semiflujo
                    //if (edCodEstado.Value == "6" || edCodEstado.Value == "7")
                    //{
                    ar.loadAduanasXRuta(edCodRuta.Value);
                    if (ar.totalRegistros > 0)
                    {
                        if (edCodEstado.Value == "6" || edCodEstado.Value == "7")
                        {
                            //cuando hay mas de una aduana que reitere en 6 y 7
                            tf1.loadFlujoGuiaCodFlujo(edCorrGuia.Value, "6");
                            tf2.loadFlujoGuiaCodFlujo(edCorrGuia.Value, "7");
                            if (tf1.totalRegistros < ar.totalRegistros)
                            {
                                if (tf2.totalRegistros == tf1.totalRegistros & tf1.totalRegistros == 0)
                                {
                                    codigoEstado = "7";
                                    nuevoCorrelativo = "6";
                                }
                                else if (tf2.totalRegistros != tf1.totalRegistros & tf2.totalRegistros == 0)
                                {
                                    codigoEstado = "6";
                                    nuevoCorrelativo = "7";
                                }
                                else if (tf2.totalRegistros == tf1.totalRegistros & tf1.totalRegistros == 1)
                                {
                                    codigoEstado = "7";
                                    nuevoCorrelativo = "8";
                                }
                                //else if (tf2.totalRegistros != tf1.totalRegistros & tf2.totalRegistros == 0)
                                //{
                                //    codigoEstado = "6";
                                //    nuevoCorrelativo = "7";
                                //}
                            }
                            else
                            {
                                codigoEstado = "8";
                                if (ar.totalRegistros == 1)
                                    nuevoCorrelativo = "7";
                                else if (ar.totalRegistros == 2)
                                    nuevoCorrelativo = "9";
                            }
                        }
                        else
                        {
                            if (edCodEstado.Value == "1")
                            {
                                codigoEstado = "5";
                                nuevoCorrelativo = "1";
                            }
                            else if (edCodEstado.Value == "5")
                            {
                                codigoEstado = "6";
                                nuevoCorrelativo = "5";
                            }
                            else if (edCodEstado.Value == "8")
                            {
                                codigoEstado = "10";
                                nuevoCorrelativo = "8";
                            }
                            else if (edCodEstado.Value == "10")
                            {
                                codigoEstado = "14";
                                nuevoCorrelativo = "10";
                            }
                        }
                    }
                    else
                    {
                        if (edCodEstado.Value == "1")
                        {
                            codigoEstado = "5";
                            edCodAduana.Value = "";
                            nuevoCorrelativo = "1";
                        }
                        else if (edCodEstado.Value == "5")
                        {
                            codigoEstado = "8";
                            edCodAduana.Value = "";
                            nuevoCorrelativo = "5";
                        }
                        else if (edCodEstado.Value == "8")
                        {
                            codigoEstado = "10";
                            edCodAduana.Value = "";
                            nuevoCorrelativo = "8";
                        }
                        else if (edCodEstado.Value == "10")
                        {
                            codigoEstado = "14";
                            edCodAduana.Value = "";
                            nuevoCorrelativo = "10";
                        }
                    }
                    #endregion
                }

                bo.loadTiempoFlujosNewLine(edCorrGuia.Value, edCodEstado.Value, edCodAduana.Value);
                if (bo.totalRegistros <= 0)
                {
                    bo.newLine();
                    bo.CODIGOGUIA = edCorrGuia.Value;
                    bo.CODFLUJO = edCodEstado.Value;
                    bo.CODIGOADUANA = edCodAduana.Value;
                    bo.FECHA = fechaIngreso;
                    bo.OBSERVACION = edObservacion.Value.Trim();
                    bo.CORRELATIVOGUIA = nuevoCorrelativo;
                    bo.ELIMINADO = "0";
                    bo.IDUSUARIO = Session["IdUsuario"].ToString();
                    bo.FECHASISTEMA = DateTime.Now.ToString();
                    bo.commitLine();
                    bo.actualizar();
                }

                g.loadGuiaFlujo(edCorrGuia.Value);
                if (g.totalRegistros > 0)
                {
                    g.CODESTADO = codigoEstado;
                    g.actualizar();

                    //////////nuevo//////////
                    if (int.Parse(edCodEstado.Value) >= 10)
                    {
                        try
                        {
                            u.loadUnidadG(g.CODIGOUNIDAD);
                            if (u.totalRegistros > 0)
                            {
                                u.CODESTADO = "0";
                                u.actualizar();
                            }
                        }
                        catch { }

                        try
                        {
                            m.loadMotoristaG(g.CODIGOMOTORISTA);
                            if (m.totalRegistros > 0)
                            {
                                m.CODESTADO = "0";
                                m.actualizar();
                            }
                        }
                        catch { }
                    }
                }

                co.loadAllCampos("FLUJOTERRESTRE", edCodEstado.Value);
                a.loadAduanas(edCodAduana.Value);
                if (a.totalRegistros > 0)
                {
                    registrarMensaje(co.DESCRIPCION + " " + a.NOMBREADUANA + " actualizado correctamente");
                    llenarBitacora("Se selló el estado " + co.DESCRIPCION + " " + a.NOMBREADUANA + " en guía " + edCorrGuia.Value.Trim() + " con fecha " + bo.FECHA, Session["IdUsuario"].ToString());
                }
                else
                {
                    registrarMensaje(co.DESCRIPCION + " actualizado correctamente");
                    llenarBitacora("Se selló el estado " + co.DESCRIPCION + " en guía " + edCorrGuia.Value.Trim() + " con fecha " + bo.FECHA, Session["IdUsuario"].ToString());
                }
                rgGuias.Rebind();
            }
            else
            {
                registrarMensaje("Flujo de Guía ya está finalizado");
                rgGuias.Rebind();
            }
        }
        catch (Exception)
        { }
        finally
        {
            desconectar();
        }
    }