/// <summary> /// Registra el movimiento como gasto en la cuenta de la unidad /// </summary> private void InsertCuentaUnidad() { Entities.Unidades unidad = Entities.Unidades.Read(this.OrdenTrabajo.Unidad_ID); Entities.CuentaUnidades cu = new Entities.CuentaUnidades(); cu.Cargo = this.OrdenTrabajo.Total; cu.Caja_ID = null; cu.Comentarios = "GASTO POR ORDEN DE TRABAJO"; cu.Concepto_ID = 3; // CARGO DE TALLER cu.Conductor_ID = unidad.ConductorOperativo_ID; cu.Cuenta_ID = 4; // TALLER cu.Empresa_ID = unidad.Empresa_ID; cu.Estacion_ID = Sesion.Estacion_ID.Value; cu.Fecha = DB.GetDate(); cu.Saldo = 0; // Se calcula al insertar; cu.Ticket_ID = null; cu.Unidad_ID = this.OrdenTrabajo.Unidad_ID; cu.Usuario_ID = Sesion.Usuario_ID; cu.OrdenTrabajo_ID = this.OrdenTrabajo.OrdenTrabajo_ID; cu.Create(); } // end void
} // end void /// <summary> /// Registra el movimiento como gasto en la cuenta de la unidad /// </summary> private void InsertCuentaUnidad(Entities.OrdenesTrabajos ordentrabajo) { if (ordentrabajo.EstatusOrdenTrabajo_ID == 3 || ordentrabajo.EstatusOrdenTrabajo_ID == 4) { Entities.Unidades unidad = Entities.Unidades.Read(ordentrabajo.Unidad_ID); Entities.CuentaUnidades cu = new Entities.CuentaUnidades(); cu.Abono = this.OrdenTrabajo.Total; cu.Caja_ID = null; cu.Comentarios = "AJUSTE POR CANCELACION DE ORDEN DE TRABAJO"; cu.Concepto_ID = 3; // CARGO DE TALLER cu.Conductor_ID = unidad.ConductorOperativo_ID; cu.Cuenta_ID = 4; // TALLER cu.Empresa_ID = unidad.Empresa_ID; cu.Estacion_ID = Sesion.Estacion_ID.Value; cu.Fecha = DB.GetDate(); cu.Saldo = 0; // Se calcula al insertar; cu.Ticket_ID = null; cu.Unidad_ID = ordentrabajo.Unidad_ID; cu.Usuario_ID = Sesion.Usuario_ID; cu.OrdenTrabajo_ID = ordentrabajo.OrdenTrabajo_ID; cu.Create(); } } // end void
/// <summary> /// Registra las operaciones de caja en la base de datos /// </summary> private void RegistrarOperaciones() { // Validamos las operaciones Validar(); // Obtenemos la fecha getDate = DB.GetDate(); // Instanciamos una cuenta de flujo de caja Entities.CuentaFlujoCajas CuentaFlujo = new Entities.CuentaFlujoCajas(); // Creamos el ticket Ticket = new Entities.Tickets(); Ticket.Caja_ID = Sesion.Caja_ID.Value; Ticket.Conductor_ID = DatosConductor.Conductor_ID; Ticket.Empresa_ID = (DatosConductor.Empresa_ID != null) ? DatosConductor.Empresa_ID.Value : GetEmpresa_ID(); Ticket.Estacion_ID = Sesion.Estacion_ID.Value; Ticket.EstatusTicket_ID = 1; Ticket.Fecha = getDate; Ticket.Sesion_ID = Sesion.Sesion_ID; Ticket.Unidad_ID = DatosConductor.Unidad_ID; Ticket.Usuario_ID = Sesion.Usuario_ID; Ticket.Create(); // Realizamos las operaciones de Cuenta conductores // Cuenta cajas // Cuenta Unidades // Para cada adeudo en la lista foreach (Entities.AdeudosDeConductor adeudo in Adeudos) { // Si el adeudo ha sido pagado if (adeudo.Pagar > 0) { #region CuentaConductores // Ingresamos en pago en la cuenta de conductores Entities.CuentaConductores cc = new Entities.CuentaConductores(); cc.Abono = adeudo.Pagar; cc.Caja_ID = Sesion.Caja_ID.Value; cc.Cargo = 0; cc.Comentarios = "PAGO EN CAJA"; cc.Concepto_ID = adeudo.Concepto_ID; cc.Conductor_ID = Ticket.Conductor_ID; cc.Cuenta_ID = adeudo.Cuenta_ID; cc.Empresa_ID = adeudo.Empresa_ID; cc.Estacion_ID = Sesion.Estacion_ID.Value; cc.Fecha = getDate; cc.Saldo = 0; // Se calcula solo cc.Ticket_ID = Ticket.Ticket_ID; cc.Unidad_ID = DatosConductor.Unidad_ID; cc.Usuario_ID = Sesion.Usuario_ID; cc.Create(); // Si la cuenta es de "SUPERPRODUCTIVIDAD" // calculamos el cargo correspondiente if (adeudo.Cuenta_ID == 18) { cc = new Entities.CuentaConductores(); cc.Abono = 0; cc.Caja_ID = Sesion.Caja_ID.Value; cc.Cargo = adeudo.Pagar; cc.Comentarios = "CARGO POR SUPERPRODUCTIVIDAD"; cc.Concepto_ID = 133; // El concepto de cargo cc.Conductor_ID = Ticket.Conductor_ID; cc.Cuenta_ID = adeudo.Cuenta_ID; cc.Empresa_ID = adeudo.Empresa_ID; cc.Estacion_ID = Sesion.Estacion_ID.Value; cc.Fecha = getDate; cc.Saldo = 0; // Se calcula solo //cc.Ticket_ID = Ticket.Ticket_ID; // Entra sin ticket, para no afectar el reporte de tickets cc.Unidad_ID = DatosConductor.Unidad_ID; cc.Usuario_ID = Sesion.Usuario_ID; cc.Create(); } #endregion #region CuentaUnidades // Si hay registro de unidad if (DatosConductor.Unidad_ID != null) { // Realizamos el registro de un abono // a la cuenta de unidad Entities.CuentaUnidades cu = new Entities.CuentaUnidades(); cu.Abono = adeudo.Pagar; cu.Caja_ID = Sesion.Caja_ID.Value; cu.Comentarios = "PAGO EN CAJA"; cu.Concepto_ID = adeudo.Concepto_ID; cu.Conductor_ID = Ticket.Conductor_ID; cu.Cuenta_ID = adeudo.Cuenta_ID; cu.Empresa_ID = adeudo.Empresa_ID; cu.Estacion_ID = Sesion.Estacion_ID.Value; cu.Fecha = getDate; cu.Saldo = 0; // Se calcula solo; cu.Ticket_ID = Ticket.Ticket_ID; cu.Unidad_ID = DatosConductor.Unidad_ID.Value; cu.Usuario_ID = Sesion.Usuario_ID; cu.Create(); } #endregion #region CuentaCajas // El pago lo registramos en la cuenta de cajas Entities.CuentaCajas ccs = new Entities.CuentaCajas(); ccs.Abono = adeudo.Pagar; ccs.Caja_ID = Sesion.Caja_ID.Value; ccs.Cargo = 0; ccs.Comentarios = "PAGO EN CAJA"; ccs.Concepto_ID = adeudo.Concepto_ID; ccs.Cuenta_ID = adeudo.Cuenta_ID; ccs.Empresa_ID = adeudo.Empresa_ID; ccs.Estacion_ID = Sesion.Estacion_ID.Value; ccs.Fecha = getDate; ccs.Saldo = 0; // Se calcula solo ccs.Sesion_ID = Sesion.Sesion_ID; ccs.Ticket_ID = Ticket.Ticket_ID; ccs.Usuario_ID = Sesion.Usuario_ID; ccs.Create(); #endregion } } #region Planillas Cuenta Cajas // Para cada planilla fiscal foreach (Entities.PlanillasFiscales planilla in Planillas) { // Creamos un abono en la cuenta de cajas Entities.CuentaCajas ccs = new Entities.CuentaCajas(); ccs.Abono = planilla.Precio; ccs.Caja_ID = Sesion.Caja_ID.Value; ccs.Cargo = 0; ccs.Comentarios = "PAGO EN CAJA - PLANILLAS -"; ccs.Concepto_ID = 147; ccs.Cuenta_ID = 6; ccs.Empresa_ID = planilla.Empresa_ID; ccs.Estacion_ID = Sesion.Estacion_ID.Value; ccs.Fecha = getDate; ccs.Saldo = 0; // Se calcula solo ccs.Sesion_ID = Sesion.Sesion_ID; ccs.Ticket_ID = Ticket.Ticket_ID; ccs.Usuario_ID = Sesion.Usuario_ID; ccs.Create(); } #endregion #region Vales Cuenta Cajas // Para cada vale prepagado foreach (Entities.ValesPrepagados vale in Vales) { // Creamos un abono en la cuenta de cajas Entities.CuentaCajas ccs = new Entities.CuentaCajas(); ccs.Abono = vale.Denominacion; ccs.Caja_ID = Sesion.Caja_ID.Value; ccs.Cargo = 0; ccs.Comentarios = "PAGO EN CAJA - VALES -"; ccs.Concepto_ID = 148; ccs.Cuenta_ID = 5; ccs.Empresa_ID = 6; // Los vales son de Axertis ccs.Estacion_ID = Sesion.Estacion_ID.Value; ccs.Fecha = getDate; ccs.Saldo = 0; // Se calcula solo ccs.Sesion_ID = Sesion.Sesion_ID; ccs.Ticket_ID = Ticket.Ticket_ID; ccs.Usuario_ID = Sesion.Usuario_ID; ccs.Create(); } #endregion // Si hay vales prepagados if (Operacion.TotalVales > 0) { #region Flujo Caja Vales // Creamos un abono en la cuenta de flujo de caja CuentaFlujo = new Entities.CuentaFlujoCajas(); CuentaFlujo.Abono = Operacion.TotalVales; CuentaFlujo.Caja_ID = Sesion.Caja_ID.Value; CuentaFlujo.Cargo = 0; CuentaFlujo.Concepto = "PAGO CON VALES"; CuentaFlujo.Fecha = getDate; CuentaFlujo.Moneda_ID = 3; // Los vales CuentaFlujo.Saldo = 0; // Se calcula solo CuentaFlujo.Sesion_ID = Sesion.Sesion_ID; CuentaFlujo.Ticket_ID = Ticket.Ticket_ID; CuentaFlujo.Usuario_ID = Sesion.Usuario_ID; CuentaFlujo.Create(); #endregion #region Retribucion de Vales // El total de los vales decimal totalvales = this.Operacion.TotalVales; // El pago con vales decimal pagovales; // Para cada adeudo foreach (Entities.AdeudosDeConductor adeudo in Adeudos) { // Si fue pagado if (adeudo.Pagar > 0) { // Si el total de vales es menor o igual que el adeudo pagado if (totalvales <= adeudo.Pagar) { // El pago de vales es el tota pagovales = totalvales; } else // Si no { // El pago de vales es la cantidad pagada pagovales = adeudo.Pagar; } // Creamos la retribución de vales para la cuenta de cajas // es decir, se carga la cantidad de pago con vales // que fueron utilizados en lugar del pago con efectivo Entities.CuentaCajas ccs = new Entities.CuentaCajas(); ccs.Cargo = Math.Abs(pagovales); ccs.Caja_ID = Sesion.Caja_ID.Value; ccs.Abono = 0; ccs.Comentarios = "RETRIBUCION EN CAJA - VALES -"; ccs.Concepto_ID = adeudo.Concepto_ID; ccs.Cuenta_ID = adeudo.Cuenta_ID; ccs.Empresa_ID = adeudo.Empresa_ID; // Los vales son de Axertis ccs.Estacion_ID = Sesion.Estacion_ID.Value; ccs.Fecha = getDate; ccs.Saldo = 0; // Se calcula solo ccs.Sesion_ID = Sesion.Sesion_ID; ccs.Ticket_ID = Ticket.Ticket_ID; ccs.Usuario_ID = Sesion.Usuario_ID; ccs.Create(); // Se disminuye el total de vales totalvales -= pagovales; // En cuanto se llegue a 0 // sale del ciclo if (totalvales == 0) break; } } #endregion } // Si hubo pago con efectivo pago con efectivo if (Operacion.PagoEfectivo > 0) { // El efectivo se ingresa a la cuenta de flujo de caja CuentaFlujo = new Entities.CuentaFlujoCajas(); CuentaFlujo.Abono = Operacion.PagoEfectivo; CuentaFlujo.Caja_ID = Sesion.Caja_ID.Value; CuentaFlujo.Cargo = 0; CuentaFlujo.Concepto = "PAGO CON EFECTIVO"; CuentaFlujo.Fecha = getDate; CuentaFlujo.Moneda_ID = 1; // El efectivo CuentaFlujo.Saldo = 0; // Se calcula automáticamente CuentaFlujo.Sesion_ID = Sesion.Sesion_ID; CuentaFlujo.Ticket_ID = Ticket.Ticket_ID; CuentaFlujo.Usuario_ID = Sesion.Usuario_ID; CuentaFlujo.Create(); } // Si hay cambio if (Math.Abs(Operacion.Cambio) > 0) { // El cambio, en efectivo, sale de la caja CuentaFlujo = new Entities.CuentaFlujoCajas(); CuentaFlujo.Abono = 0; CuentaFlujo.Caja_ID = Sesion.Caja_ID.Value; CuentaFlujo.Cargo = Math.Abs(Operacion.Cambio); CuentaFlujo.Concepto = "CAMBIO / PAGO CONDUCTOR"; CuentaFlujo.Fecha = getDate; CuentaFlujo.Moneda_ID = 1; // El efectivo CuentaFlujo.Saldo = 0; // Se calcula automáticamente CuentaFlujo.Sesion_ID = Sesion.Sesion_ID; CuentaFlujo.Ticket_ID = Ticket.Ticket_ID; CuentaFlujo.Usuario_ID = Sesion.Usuario_ID; CuentaFlujo.Create(); } // Solamente si hay servicios, estos se ingresan // a la cuenta de flujo de caja if (Math.Abs(Operacion.TotalServicios) > 0) { CuentaFlujo.Cargo = 0; CuentaFlujo.Caja_ID = Sesion.Caja_ID.Value; CuentaFlujo.Abono = Math.Abs(Operacion.TotalServicios); CuentaFlujo.Concepto = "CANJE DE BOLETOS"; CuentaFlujo.Fecha = getDate; CuentaFlujo.Moneda_ID = 2; // Boletos de Servicios CuentaFlujo.Saldo = 0; // Se calcula automáticamente CuentaFlujo.Sesion_ID = Sesion.Sesion_ID; CuentaFlujo.Ticket_ID = Ticket.Ticket_ID; CuentaFlujo.Usuario_ID = Sesion.Usuario_ID; CuentaFlujo.Create(); } // Dar de baja los vales foreach (Entities.ValesPrepagados vale in Vales) { MarcarVale(vale); } // Dar de baja las planillas fiscales foreach (Entities.PlanillasFiscales planilla in Planillas) { MarcarPlanilla(planilla); } // Dar de baja los servicios que existan foreach (Entities.ServiciosPendientesConductor sp in this.ServiciosPendientes) { MarcarServicio(sp); } }