示例#1
0
        internal void ImprimirPlanillaCierre(List<FilaPlanilla> filas, Totales totales, decimal efectivoInicial, decimal efectivoEnCaja, Conserje conserje, Label msjError)
        {
            try
            {

                string stockArt = "";
                List<FilaListArt> articulosConsumidos = obtenerArticulosConsumidos(tools.obtenerParametroString("stockCierreCaja"));
                if (articulosConsumidos != null)
                {
                    //--------  Listado Articulos
                    stockArt = Settings.Default.listadoArtStock.
                        Replace("##nmHotel", tools.obtenerParametroString("nombreHotel").PadRight(44));

                    foreach (FilaListArt fila in articulosConsumidos)
                    {
                        stockArt = stockArt + "\r\n" + fila.ToString();
                    }
                    stockArt += "\r\n\r\n\r\n\r\n";
                    //--------  Fin Listado Articulos
                }

                //--------  Planilla cierre turnos

                string planillaCierre = Settings.Default.planillaCierre.
                    Replace("##conserjeId", conserje.usuario.ToString().PadRight(7)).
                    Replace("##conserjeNm", (conserje.nombre + " " + conserje.apellido).PadRight(20)).
                    Replace("##fecha", String.Format("{0:ddd}", DateTime.Now).ToUpper() + " " + DateTime.Now.ToString("dd/MM/yyyy")).
                    Replace("##hora", DateTime.Now.ToString("HH:mm")).
                    Replace("##nroArq", obtenerNroPlanilla().ToString());

                foreach (FilaPlanilla fila in filas)
                {
                    planillaCierre = planillaCierre + "\r\n" + fila.ToString();
                }
                planillaCierre += "\r\n" + "".PadRight(124, '=') + "\r\n" +
                       String.Format("{0:N0}", totales.totalTurnos).PadLeft(41) + "    " +
                       String.Format("{0:N0}", totales.totalExtras).PadLeft(6) + "   " +
                       String.Format("{0:N0}", totales.totalBar).PadLeft(6) + "   " +
                       String.Format("{0:N0}", totales.totalDescuento).PadLeft(6) + "    " +
                       String.Format("{0:N0}", totales.totalTotal).PadLeft(8) + "    " +
                       String.Format("{0:N0}", totales.totalEfectivo).PadLeft(8) + "   " +
                       String.Format("{0:N0}", totales.totalTarjeta).PadLeft(8) + "   " +
                       String.Format("{0:N0}", totales.totalGastos).PadLeft(8) + "\r\n";

                decimal ingEgre = totales.totalEfectivo - totales.totalGastos;

                planillaCierre += "\r\n" + "".PadLeft(70) + "Saldo Inicial  :  " + String.Format("{0:N0}", efectivoInicial).PadLeft(8) +
                          "\r\n" + "".PadLeft(70) + "Ingreso-Egreso :  " + String.Format("{0:N0}", ingEgre).PadLeft(8) +
                          "\r\n" + "".PadLeft(70) + "Total en Caja  :  " + String.Format("{0:N0}", (efectivoInicial + ingEgre)).PadLeft(8) +
                          "\r\n" + "".PadLeft(70) + "Deposito buzón :  " + String.Format("{0:N0}", (efectivoInicial + ingEgre - efectivoEnCaja)).PadLeft(8) +
                          "\r\n" + "".PadLeft(70) + "Queda en Caja  :  " + String.Format("{0:N0}", efectivoEnCaja).PadLeft(8);

                planillaCierre += "\r\n\r\n\r\n\r\n";
                //------    Fin planilla cierre turno

                string ticketRopaConsumida = "";
                if (tools.obtenerParametroInt("consumoRopaCierre") == 1)
                {
                    //--------  Planilla Ropa Consumida
                    ticketRopaConsumida = Settings.Default.listadoRopaConsumida;
                    List<FilaRopaConsumida> ropaConsumida = obtenerRopaConsumida();

                    foreach (FilaRopaConsumida fila in ropaConsumida)
                    {
                        if (fila.categoria == "TOTAL")
                            ticketRopaConsumida += "\r\n";
                        ticketRopaConsumida += fila.ToString() + "\r\n";
                    }
                    //--------  Fin Planilla Ropa Consumida
                }

                try
                {
                    string ticketSalida = stockArt + planillaCierre + ticketRopaConsumida;
                    guardarArchivoTempCierreCaja(ticketSalida, out cantLineas);
                    configurarImpresora(ref formulario, cantLineas, 9);
                    formulario.PrinterSettings.PrinterName = obtenerImpresora("Caja");//Seleccionar impresora Caja
                    formulario.Print();
                }
                catch (Exception e)
                {
                    msjError.Text = e.Message;
                }
            }
            catch (Exception ex)
            {
                msjError.Text = ex.Message;
                LoggerProxy.Error(ex.Message + " - " + ex.StackTrace);
            }
        }
        private void confirmarImpresion()
        {
            using (SqlConnection conn = new SqlConnection(fPrincipal2.conn.ConnectionString))
            {
                SqlTransaction transaccion = null;
                Totales totales = new Totales();
                conn.Open();
                transaccion = conn.BeginTransaction(IsolationLevel.RepeatableRead);
                try
                {
                    this.contabilizarTurnosYGastos(conn, transaccion, totales);
                    this.cerrarPlanillaCaja(totEfectivo, totTarjeta, conn, transaccion);
                    this.abrirPlanillaCaja(efectivoEnCaja, tarjetaEnCaja, conserjeNuevo, conn, transaccion);
                    if (tools.obtenerParametroInt("eliminarRegistros",conn,transaccion) == 1)
                        eliminarTurnosCerrados(conn,transaccion);

                    transaccion.Commit();
                }
                catch (Exception ex)
                {
                    transaccion.Rollback();
                    throw new Exception(ex.Message);
                }
            }
        }
        private List<FilaPlanilla> contabilizarTurnosYGastos(SqlConnection con, SqlTransaction tran,Totales totales)
        {
            DataSet ds = new DataSet();
            List<FilaPlanilla> filas = new List<FilaPlanilla>();
            int nroOrd = 1;
            SqlDataAdapter dataAdapter = new SqlDataAdapter("cierresCajas_contabilizarTurnosCerrados", con);
            dataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
            dataAdapter.SelectCommand.Transaction = tran;
            dataAdapter.Fill(ds);
            FilaPlanilla fila;

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                fila = new FilaPlanilla(dr, nroOrd);
                filas.Add(fila);
                totales.totalTurnos += fila.turnos;
                totales.totalExtras += fila.extras;
                totales.totalBar += fila.bar;
                totales.totalDescuento += fila.descuento;
                totales.totalTotal += fila.total;
                totales.totalEfectivo += fila.efectivo;
                totales.totalTarjeta += fila.tarjeta;
                nroOrd++;
            }

            dataAdapter.SelectCommand.CommandText = "cierresCajas_contabilizarTurnosAbiertos";
            ds.Clear();
            dataAdapter.Fill(ds);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                fila = new FilaPlanilla();
                fila.nro = nroOrd;
                fila.nroHab = int.Parse(dr["nroHabitacion"].ToString());
                fila.desde = DateTime.Parse(dr["desde"].ToString());
                fila.socio = "Adelanto";
                decimal.TryParse(dr["efectivoCerrado"].ToString(),out fila.efectivo);
                decimal.TryParse(dr["tarjetaCerrado"].ToString(),out fila.tarjeta);
                filas.Add(fila);
                totales.totalEfectivo += fila.efectivo;
                totales.totalTarjeta += fila.tarjeta;
                nroOrd++;
            }

            dataAdapter.SelectCommand.CommandText = "cierresCajas_contabilizarGastos";
            ds.Clear();
            dataAdapter.Fill(ds);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                fila = new FilaPlanilla();
                fila.nro = 0;
                fila.nroHab = 0;
                fila.desde = DateTime.Parse(dr["fecha"].ToString());
                fila.socio = dr["nombre"].ToString();
                decimal.TryParse(dr["monto"].ToString(), out fila.gastos);
                filas.Add(fila);
                totales.totalGastos += fila.gastos;
            }

            return filas;
        }
        private void confirmarCierre()
        {
            using (SqlConnection conn = new SqlConnection(fPrincipal2.conn.ConnectionString))
            {
                SqlTransaction transaccion = null;
                Totales totales = new Totales();
                conn.Open();
                transaccion = conn.BeginTransaction(IsolationLevel.RepeatableRead);
                decimal efectivoInicialCierreActual = this.obtenerEfectivoInicialCierreActual();
                try
                {
                    List<FilaPlanilla> filas = this.contabilizarTurnosYGastos(conn, transaccion,totales);
                    new Impresora().ImprimirPlanillaCierre(filas,totales,efectivoInicialCierreActual,efectivoEnCaja, ((fPrincipal2)this.Owner).conserjeActual,labelMensaje);

                    transaccion.Rollback();
                }
                catch (Exception ex)
                {
                    transaccion.Rollback();
                    throw new Exception(ex.Message);
                }
            }
        }