Esempio n. 1
0
        public Tarifa_Papel TarifaCostoPapel(int Gramaje, string Componente, string Maquina, string TipoPapel, string Empresa, string Formato)
        {
            Tarifa_Papel papel = new Tarifa_Papel();
            Conexion     con   = new Conexion();
            SqlCommand   cmd   = con.AbrirConexionPPTO();

            if (cmd != null)
            {
                try
                {
                    cmd.CommandText = "Carga_CostoPapel";
                    cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@Gramaje", Gramaje);
                    cmd.Parameters.AddWithValue("@Componente", Componente);
                    cmd.Parameters.AddWithValue("@Maquina", Maquina);
                    cmd.Parameters.AddWithValue("@NombreTipoPapel", TipoPapel);
                    cmd.Parameters.AddWithValue("@Empresa", Empresa);
                    cmd.Parameters.AddWithValue("@Formato", Formato);
                    SqlDataReader reader = cmd.ExecuteReader();
                    if (reader.Read())
                    {
                        papel.PrecioPapel         = Convert.ToDouble(reader["PrecioPapel"].ToString());
                        papel.TarifaMermaFija     = Convert.ToInt32(reader["CostoFijoPapel"].ToString());
                        papel.TarifaMermaVariable = Convert.ToDouble(reader["CostoVariablePapel"].ToString());
                    }
                }
                catch
                {
                }
            }
            con.CerrarConexion();
            return(papel);
        }
Esempio n. 2
0
        public List <Tarifa_Papel> Listar_QuintoColor()
        {
            List <Tarifa_Papel> lista = new List <Tarifa_Papel>();
            Conexion            con   = new Conexion();
            SqlCommand          cmd   = con.AbrirConexionPPTO();

            if (cmd != null)
            {
                cmd.CommandText = "PPTO_ListarQuintoColor";
                cmd.CommandType = System.Data.CommandType.StoredProcedure;
                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Tarifa_Papel papel = new Tarifa_Papel();
                    papel.NombrePapel = reader["Paginas"].ToString();
                    lista.Add(papel);
                }
            }
            con.CerrarConexion();
            return(lista);
        }
Esempio n. 3
0
        public static string[] CalcularPreciosPrensa(int PagInterior, int Pagtapa, int EntradasxFormato, string Formato, string GramajeInt1, string GramajeTapa1, string Papelinterior, string PapelTapa, string Encuadernacion, string Tiraje)
        {
            Controller_Tarifas controlTarifa   = new Controller_Tarifas();
            string             MaquinaInterior = "Plana";
            string             MaquinaTapa     = "Plana";

            if (Tiraje != "")
            {
                Tiraje = Tiraje.Replace(".", "");
                if (Convert.ToInt32(Tiraje) > 15000)
                {
                    MaquinaInterior = "Rotativa";
                }
            }
            else
            {
                Tiraje = "0";
            }
            int GramajeInt = 0;

            if ("Seleccione Gramaje Papel..." != GramajeInt1)
            {
                GramajeInt = Convert.ToInt32(GramajeInt1.Replace(" grs", ""));
                if (GramajeInt > 169)
                {
                    MaquinaInterior = "Plana";
                }
            }
            int GramajeTapa = 0;

            if ("Seleccione Gramaje Papel..." != GramajeTapa1)
            {
                GramajeTapa = Convert.ToInt32(GramajeTapa1.Replace(" grs", ""));
            }


            #region EntradasxFormato
            int EntradasPag32    = 0;
            int EntradasPag24    = 0;
            int EntradasPag16    = 0;
            int EntradasPag12    = 0;
            int EntradasPag8     = 0;
            int EntradasPag4     = 0;
            int cantidadfaltante = 0;
            switch (EntradasxFormato)
            {
            case 32:
                EntradasPag32    = (PagInterior / 32);
                cantidadfaltante = PagInterior - (EntradasPag32 * 32);
                if (cantidadfaltante >= 16)
                {
                    EntradasPag16     = 1;
                    cantidadfaltante -= 16;
                    if (cantidadfaltante >= 8)
                    {
                        EntradasPag8      = 1;
                        cantidadfaltante -= 8;
                        if (cantidadfaltante == 4)
                        {
                            EntradasPag4     = 1;
                            cantidadfaltante = 0;
                        }
                    }
                    else if (cantidadfaltante != 0)
                    {
                        EntradasPag4     = 1;
                        cantidadfaltante = 0;
                    }
                }
                else
                {
                    if (cantidadfaltante >= 8)
                    {
                        EntradasPag8      = 1;
                        cantidadfaltante -= 8;
                        if (cantidadfaltante == 4)
                        {
                            EntradasPag4     = 1;
                            cantidadfaltante = 0;
                        }
                    }
                    else if (cantidadfaltante != 0)
                    {
                        EntradasPag4     = 1;
                        cantidadfaltante = 0;
                    }
                }
                break;

            case 24:
                EntradasPag24    = (PagInterior / 24);
                cantidadfaltante = PagInterior - (EntradasPag24 * 24);
                if (cantidadfaltante >= 12)
                {
                    EntradasPag12     = 1;
                    cantidadfaltante -= 12;
                    if (cantidadfaltante >= 8)
                    {
                        EntradasPag8      = 1;
                        cantidadfaltante -= 8;
                        if (cantidadfaltante == 4)
                        {
                            EntradasPag4     = 1;
                            cantidadfaltante = 0;
                        }
                    }
                    else if (cantidadfaltante != 0)
                    {
                        EntradasPag4     = 1;
                        cantidadfaltante = 0;
                    }
                }
                else
                {
                    if (cantidadfaltante >= 8)
                    {
                        EntradasPag8      = 1;
                        cantidadfaltante -= 8;
                        if (cantidadfaltante == 4)
                        {
                            EntradasPag4     = 1;
                            cantidadfaltante = 0;
                        }
                    }
                    else if (cantidadfaltante != 0)
                    {
                        EntradasPag4     = 1;
                        cantidadfaltante = 0;
                    }
                }
                break;

            case 16:
                EntradasPag16    = (PagInterior / 16);
                cantidadfaltante = PagInterior - (EntradasPag16 * 16);
                if (cantidadfaltante >= 8)
                {
                    EntradasPag8      = 1;
                    cantidadfaltante -= 8;
                    if (cantidadfaltante == 4)
                    {
                        EntradasPag4     = 1;
                        cantidadfaltante = 0;
                    }
                }
                else if (cantidadfaltante != 0)
                {
                    EntradasPag4     = 1;
                    cantidadfaltante = 0;
                }
                break;

            case 12:
                EntradasPag12    = (PagInterior / 12);
                cantidadfaltante = PagInterior - (EntradasPag12 * 12);
                if (cantidadfaltante >= 8)
                {
                    EntradasPag8      = 1;
                    cantidadfaltante -= 8;
                    if (cantidadfaltante == 4)
                    {
                        EntradasPag4     = 1;
                        cantidadfaltante = 0;
                    }
                }
                else if (cantidadfaltante != 0)
                {
                    EntradasPag4     = 1;
                    cantidadfaltante = 0;
                }
                break;

            case 8:
                EntradasPag8     = (PagInterior / 8);
                cantidadfaltante = PagInterior - (EntradasPag8 * 8);
                if (cantidadfaltante == 4)
                {
                    EntradasPag4     = 1;
                    cantidadfaltante = 0;
                }
                break;

            default:
                break;
            }
            #endregion


            #region Interior
            Tarifa_Papel tarifapapelInterior    = controlTarifa.TarifaCostoPapel(GramajeInt, "interior", MaquinaInterior, Papelinterior, "Cencosud", Formato);
            int          CostoFijoInterior      = Convert.ToInt32(controlTarifa.TarifaCostoImpresion("Impresion Interior 4/4", "", MaquinaInterior, "Fijo"));
            int          CostoPapelInteriorFijo = Convert.ToInt32(Convert.ToDouble(tarifapapelInterior.TarifaMermaFija));

            double CostoFijoPag32 = (Math.Ceiling((Convert.ToDouble(CostoFijoInterior) + Convert.ToDouble(CostoPapelInteriorFijo)) / 100) * 100) * Convert.ToDouble(EntradasPag32);
            double CostoFijoPag24 = (Math.Ceiling((Convert.ToDouble(CostoFijoInterior) + Convert.ToDouble(CostoPapelInteriorFijo)) / 100) * 100) * Convert.ToDouble(EntradasPag24);
            double CostoFijoPag16 = (Math.Ceiling((Convert.ToDouble(CostoFijoInterior) + Convert.ToDouble(CostoPapelInteriorFijo)) / 100) * 100) * Convert.ToDouble(EntradasPag16);
            double CostoFijoPag12 = (Math.Ceiling((Convert.ToDouble(CostoFijoInterior) + Convert.ToDouble(CostoPapelInteriorFijo)) / 100) * 100) * Convert.ToDouble(EntradasPag12);
            double CostoFijoPag8  = (Math.Ceiling((Convert.ToDouble(CostoFijoInterior) + Convert.ToDouble(CostoPapelInteriorFijo)) / 100) * 100) * Convert.ToDouble(EntradasPag8);
            double CostoFijoPag4  = (Math.Ceiling((Convert.ToDouble(CostoFijoInterior) + Convert.ToDouble(CostoPapelInteriorFijo)) / 100) * 100) * Convert.ToDouble(EntradasPag4);

            double CostoFijoPrecioVentaInterior = CostoFijoPag32 + CostoFijoPag24 + CostoFijoPag16 + CostoFijoPag12 + CostoFijoPag8 + CostoFijoPag4;

            #region CostoVariablexEntradas
            double TarifaCostoVariableImpresionInterior = Convert.ToDouble(controlTarifa.TarifaCostoImpresion("Impresion Interior 4/4", "", MaquinaInterior, "Variable"));
            double DesintercalarRotativa = 1.5;
            if (MaquinaInterior == "Plana")
            {
                DesintercalarRotativa = 0;
            }
            double CostoVariablePag32 = 0;
            double CostoVariablePag24 = 0;
            double CostoVariablePag16 = 0;
            double CostoVariablePag12 = 0;
            double CostoVariablePag8  = 0;
            double CostoVariablePag4  = 0;

            switch (EntradasxFormato)
            {
            case 32:
                CostoVariablePag32 = (Math.Ceiling((TarifaCostoVariableImpresionInterior + tarifapapelInterior.TarifaMermaVariable) * 10) / 10) * Convert.ToDouble(EntradasPag32);
                if (EntradasPag16 > 0)
                {
                    CostoVariablePag16 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(16) / Convert.ToDouble(32))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(16) / Convert.ToDouble(32)))) * 10)) / 10) * Convert.ToDouble(EntradasPag16);
                }
                if (EntradasPag8 > 0)
                {
                    CostoVariablePag8 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(8) / Convert.ToDouble(32))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(8) / Convert.ToDouble(32)))) * 10)) / 10) * Convert.ToDouble(EntradasPag8);
                }
                if (EntradasPag4 > 0)
                {
                    CostoVariablePag4 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(4) / Convert.ToDouble(32))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(4) / Convert.ToDouble(32)))) * 10)) / 10) * Convert.ToDouble(EntradasPag4);
                }
                break;

            case 24:
                CostoVariablePag24 = (Math.Ceiling((TarifaCostoVariableImpresionInterior + tarifapapelInterior.TarifaMermaVariable) * 10) / 10) * Convert.ToDouble(EntradasPag24);
                if (EntradasPag12 > 0)
                {
                    CostoVariablePag12 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(12) / Convert.ToDouble(24))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(12) / Convert.ToDouble(24)))) * 10)) / 10) * Convert.ToDouble(EntradasPag12);
                }
                if (EntradasPag8 > 0)
                {
                    CostoVariablePag8 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(8) / Convert.ToDouble(24))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(8) / Convert.ToDouble(24)))) * 10)) / 10) * Convert.ToDouble(EntradasPag8);
                }
                if (EntradasPag4 > 0)
                {
                    CostoVariablePag4 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(4) / Convert.ToDouble(24))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(4) / Convert.ToDouble(24)))) * 10)) / 10) * Convert.ToDouble(EntradasPag4);
                }
                break;

            case 16:
                CostoVariablePag16 = (Math.Ceiling((TarifaCostoVariableImpresionInterior + tarifapapelInterior.TarifaMermaVariable) * 10) / 10) * Convert.ToDouble(EntradasPag16);
                if (EntradasPag8 > 0)
                {
                    CostoVariablePag8 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(8) / Convert.ToDouble(16))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(8) / Convert.ToDouble(16)))) * 10)) / 10) * Convert.ToDouble(EntradasPag8);
                }
                if (EntradasPag4 > 0)
                {
                    CostoVariablePag4 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(4) / Convert.ToDouble(16))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(4) / Convert.ToDouble(16)))) * 10)) / 10) * Convert.ToDouble(EntradasPag4);
                }
                break;

            case 12:
                CostoVariablePag12 = (Math.Ceiling((TarifaCostoVariableImpresionInterior + tarifapapelInterior.TarifaMermaVariable) * 10) / 10) * Convert.ToDouble(EntradasPag12);
                if (EntradasPag8 > 0)
                {
                    CostoVariablePag8 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(8) / Convert.ToDouble(12))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(8) / Convert.ToDouble(12)))) * 10)) / 10) * Convert.ToDouble(EntradasPag8);
                }
                if (EntradasPag4 > 0)
                {
                    CostoVariablePag4 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(4) / Convert.ToDouble(12))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(4) / Convert.ToDouble(12)))) * 10)) / 10) * Convert.ToDouble(EntradasPag4);
                }
                break;

            case 8:
                CostoVariablePag8 = (Math.Ceiling((TarifaCostoVariableImpresionInterior + tarifapapelInterior.TarifaMermaVariable) * 10) / 10) * Convert.ToDouble(EntradasPag8);
                if (EntradasPag4 > 0)
                {
                    CostoVariablePag4 = ((Math.Ceiling(((((TarifaCostoVariableImpresionInterior) * (Convert.ToDouble(4) / Convert.ToDouble(8))) + DesintercalarRotativa) + ((tarifapapelInterior.TarifaMermaVariable) * (Convert.ToDouble(4) / Convert.ToDouble(8)))) * 10)) / 10) * Convert.ToDouble(EntradasPag4);
                }
                break;

            default:
                break;
            }

            double CostoVariablePrecioVentaInterior = (CostoVariablePag32 + CostoVariablePag24 + CostoVariablePag16 + CostoVariablePag12 + CostoVariablePag8 + CostoVariablePag4) * Convert.ToDouble(Tiraje);
            #endregion

            #endregion

            #region Tapas
            int          CostoFijoTapa                    = 0;
            int          CostoPapelTapaFijo               = 0;
            double       CostoImpresionTapaPlisadoFijo    = 0;
            double       CostoImpresionTapaAcuosoFijo     = 0;
            double       CostoFijoPrecioVentaInteriorTapa = 0;
            Tarifa_Papel tarifapapelTapa                  = controlTarifa.TarifaCostoPapel(GramajeTapa, "tapa", MaquinaTapa, PapelTapa, "Cencosud", Formato);
            if (Pagtapa > 0)
            {
                CostoFijoTapa      = Convert.ToInt32(controlTarifa.TarifaCostoImpresion("Impresion Tapa 4/4", "", MaquinaTapa, "Fijo"));
                CostoPapelTapaFijo = tarifapapelTapa.TarifaMermaFija;
                if (GramajeTapa >= 140)
                {
                    CostoImpresionTapaPlisadoFijo = Convert.ToDouble(controlTarifa.TarifaCostoImpresion("Plizado Tapa", "", MaquinaTapa, "Fijo"));
                    CostoImpresionTapaAcuosoFijo  = Convert.ToDouble(controlTarifa.TarifaCostoImpresion("Barniz Tapa", "", MaquinaTapa, "Fijo"));
                }
                CostoFijoPrecioVentaInteriorTapa = (Math.Ceiling((Convert.ToDouble(CostoFijoTapa) + CostoPapelTapaFijo + CostoImpresionTapaPlisadoFijo) / 100) * 100);
            }
            double TarifaCostoVariableImpresionTapa = 0;
            #region CostoVariablexEntradas
            double CostoVariableTapaImp              = 0;
            double CostoVarableTapaPap               = 0;
            double CostovariableTapaDoblez           = 0;
            double CostoImpresionTapaPlisadoVariable = 0;
            double CostoImpresionTapaBarnizVariable  = 0;
            if (Pagtapa > 0)
            {
                TarifaCostoVariableImpresionTapa = Convert.ToDouble(controlTarifa.TarifaCostoImpresion("Impresion Tapa 4/4", "", MaquinaTapa, "Variable"));
                double CostoPapelTapaVariable = tarifapapelTapa.TarifaMermaVariable;
                switch (EntradasxFormato)
                {
                case 8:
                    CostoVariableTapaImp = ((TarifaCostoVariableImpresionTapa * Convert.ToDouble(4)) / Convert.ToDouble(2));
                    CostoVarableTapaPap  = ((CostoPapelTapaVariable * Convert.ToDouble(4)) / Convert.ToDouble(2));
                    break;

                case 12:
                    CostoVariableTapaImp = ((TarifaCostoVariableImpresionTapa * Convert.ToDouble(4)) / Convert.ToDouble(3));
                    CostoVarableTapaPap  = ((CostoPapelTapaVariable * Convert.ToDouble(4)) / Convert.ToDouble(3));
                    break;

                default:
                    CostoVariableTapaImp = ((TarifaCostoVariableImpresionTapa * Convert.ToDouble(4)) / Convert.ToDouble(4));
                    CostoVarableTapaPap  = ((CostoPapelTapaVariable * Convert.ToDouble(4)) / Convert.ToDouble(4));
                    break;
                }
                if (GramajeTapa < 130)
                {
                    CostovariableTapaDoblez = Convert.ToDouble(controlTarifa.TarifaCostoImpresion("Doblez Tapa", "", MaquinaTapa, "Variable"));
                }
                else
                {
                    if (GramajeTapa >= 140)
                    {
                        CostoImpresionTapaPlisadoVariable = Convert.ToDouble(controlTarifa.TarifaCostoImpresion("Plizado Tapa", "", MaquinaTapa, "Variable"));
                    }
                    if (GramajeTapa >= 170)
                    {
                        double CostoBarnizVariable = controlTarifa.TarifaCostoImpresionTapaBarniz(GramajeTapa, Formato);
                        switch (EntradasxFormato)
                        {
                        case 8:
                            CostoImpresionTapaBarnizVariable = ((Math.Ceiling((CostoBarnizVariable / Convert.ToDouble(2)) * 100)) / 100) * Convert.ToDouble(Tiraje);
                            break;

                        case 12:
                            CostoImpresionTapaBarnizVariable = ((Math.Ceiling((CostoBarnizVariable / Convert.ToDouble(3)) * 100)) / 100) * Convert.ToDouble(Tiraje);

                            break;

                        default:
                            CostoImpresionTapaBarnizVariable = ((Math.Ceiling((CostoBarnizVariable / Convert.ToDouble(4)) * 100)) / 100) * Convert.ToDouble(Tiraje);
                            break;
                        }
                    }
                }
            }

            double CostoVariablePrecioVentaTapa = (Math.Ceiling((Convert.ToDouble(CostoVariableTapaImp) + CostoVarableTapaPap + CostovariableTapaDoblez) * 10) / 10) * Convert.ToDouble(Tiraje);

            #endregion
            #endregion

            #region Encuadernacion

            int    valorEncuaFijo      = 0;
            double valorEncuaVari      = 0;
            double valorEncuadernacion = 0;
            if (Encuadernacion != "No")
            {
                valorEncuaFijo      = controlTarifa.TarifaEncuadernacion(Encuadernacion, "Fijo");
                valorEncuaVari      = (controlTarifa.TarifaEncuadernacion(Encuadernacion, "Variable") * Convert.ToDouble(Tiraje));
                valorEncuadernacion = (valorEncuaFijo + valorEncuaVari);
            }
            #endregion

            #region Totales

            double CostoCatalogoFijo     = (CostoFijoPrecioVentaInterior + CostoFijoPrecioVentaInteriorTapa + valorEncuaFijo + CostoImpresionTapaAcuosoFijo);//CostoTotalManufacturaFijo + CostototalFijoPapel);
            double CostoCatalogoVariable = (CostoVariablePrecioVentaInterior + CostoVariablePrecioVentaTapa + valorEncuaVari + CostoImpresionTapaBarnizVariable);
            double CostoCatalogoFinal    = (CostoCatalogoFijo + CostoCatalogoVariable);


            double CostoUnitario = Math.Ceiling(CostoCatalogoFinal / Convert.ToDouble(Tiraje));
            double CostoMillar   = (CostoCatalogoVariable / Convert.ToDouble(Tiraje)) * 1000;
            #endregion

            return(new[] { CostoFijoPrecioVentaInterior.ToString(), CostoVariablePrecioVentaInterior.ToString(), (CostoFijoPrecioVentaInterior + CostoVariablePrecioVentaInterior).ToString()
                           , tarifapapelInterior.PrecioPapel.ToString(), valorEncuaFijo.ToString(), valorEncuaVari.ToString(), valorEncuadernacion.ToString()
                           , CostoFijoPrecioVentaInteriorTapa.ToString(), CostoVariablePrecioVentaTapa.ToString(), (CostoFijoPrecioVentaInteriorTapa + CostoVariablePrecioVentaTapa).ToString()
                           , tarifapapelTapa.PrecioPapel.ToString(), CostoCatalogoFijo.ToString(), CostoCatalogoVariable.ToString(), CostoCatalogoFinal.ToString(), CostoUnitario.ToString(), CostoMillar.ToString()
                           , MaquinaInterior, MaquinaTapa, CostoImpresionTapaAcuosoFijo.ToString(), CostoImpresionTapaBarnizVariable.ToString() });
        }