コード例 #1
0
        public void GrabarDocumentoComentarioEstado(string idActaDocumento, string comentario, string idEstadoDocumento, string actualizarEstadoFinal, string imprimirCarta, string setearSaltoLinea, Usuario usuarioLogin)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();
            ServicioDocumentos   servDocumento    = new ServicioDocumentos();

            int _idActaDocumento = idActaDocumento.ConvertirInt();

            if (_idActaDocumento == -1)
            {
                return;
            }

            RepositoryGenerico <ActaDocumento> repository = new RepositoryGenerico <ActaDocumento>();
            ActaDocumento actaDocumento = repository.Obtener(_idActaDocumento);


            actaDocumento.Descripcion       = comentario;
            actaDocumento.ImprimirCarta     = imprimirCarta.ConvertirBool();
            actaDocumento.SetearSaltosLinea = setearSaltoLinea.ConvertirBoolNulleable();

            EstadoDocumento  estado     = servParametricas.EstadoDocumentoObtener(idEstadoDocumento.ConvertirInt());
            DocumentoVersion docVersion = actaDocumento.DocumentoVersion;

            servDocumento.GrabarDocumentoVersionEstado(docVersion, estado, actualizarEstadoFinal.ConvertirBool(), usuarioLogin);

            repository.Actualizar(actaDocumento);
        }
コード例 #2
0
        void btnAceptar_Click(object sender, EventArgs e)
        {
            Documento.FechaAnulacion = new DateTime?(DateTime.Now);
            TipoDocumento tipoDocumento = TipoDocumento.Get(Documento.TipoDocumentoID);

            if (checkEliminar.Checked && tipoDocumento.ConsecutivoActual - 1 == Documento.Consecutivo)
            {
                tipoDocumento.ConsecutivoActual--;
                tipoDocumento.Update();
                updateArticulo();
                Documento.Delete();
                MessageBox.Show("Documento se elimino con exito!", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                return;
            }
            if (Documento.Observacion != string.Empty)
            {
                Documento expr_11C = Documento;
                expr_11C.Observacion += Environment.NewLine;
            }
            Documento expr_137 = Documento;

            expr_137.Observacion += "ANULADA";
            if (txtMotivo.Text != string.Empty)
            {
                Documento expr_169 = Documento;
                expr_169.Observacion = expr_169.Observacion + " Motivo:" + txtMotivo.Text;
            }
            Documento.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.ANULADO).ID;
            updateArticulo();
            Documento.Update();
            MessageBox.Show("Documento se anulo con exito!", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }
コード例 #3
0
        public void EstadoDocumentoGrabar(string id, string descripcion)
        {
            EstadoDocumento estadoDocumento;

            int _id = -1;

            if (!int.TryParse(id, out _id))
            {
                _id = -1;
            }

            if (_id == -1)
            {
                estadoDocumento = new EstadoDocumento();
            }
            else
            {
                estadoDocumento = this.EstadoDocumentoObtener(_id);
            }

            estadoDocumento.Descripcion = descripcion == null ? string.Empty : descripcion;
            estadoDocumento.Vigente     = true;

            RepositoryGenerico <EstadoDocumento> repository = new RepositoryGenerico <EstadoDocumento>();

            repository.Actualizar(estadoDocumento);
        }
コード例 #4
0
        public DocumentoVersionEstado CrearDocumentoVersionEstado(TipoDocumento tipoDocumento, string idEstado, string fechaEstado, Usuario usuarioLogin)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();

            DocumentoVersionEstado versionEstado = new DocumentoVersionEstado();

            versionEstado.Fecha = fechaEstado.ConvertirDateTime();

            EstadoDocumento estadoActual = servParametricas.EstadoDocumentoObtener(idEstado.ConvertirInt());

            versionEstado.Estado = estadoActual;

            versionEstado.Usuario                = usuarioLogin;
            versionEstado.ProfesionalAutor       = null;
            versionEstado.ProfesionalPresenta    = null;
            versionEstado.ProfesionalResponsable = null;
            versionEstado.Observaciones          = string.Empty;

            TipoDocumentoFlujoEstado flujoEstado = tipoDocumento.ObtenerFlujoDefault().ObtenerFlujoEstado(estadoActual);

            if (flujoEstado != null)
            {
                versionEstado.EstadoFinal = flujoEstado.Final;
            }
            else
            {
                versionEstado.EstadoFinal = false;
            }

            versionEstado.Validar();

            return(versionEstado);
        }
コード例 #5
0
        /// <summary>
        /// Metodo para agregar la informacion del pedido y sus detalles
        /// </summary>
        public void RegistrarNuevoPedido()
        {
            try
            {
                //Agregar pedido a la base de datos
                RepositorioPedido.AgregarPedido(Pedido);
                //Agregar detalle del pedido a la base de datos
                RepositorioDetallePedido.AgregarDetallePedido(Pedido);

                EstadoDocumento estadoDocumento = new EstadoDocumento();
                estadoDocumento.IdEstado = 1;
                estadoDocumento.Read();

                DocumentoVenta documentoVenta = new DocumentoVenta();

                //Asignar el pedido al documento de venta
                documentoVenta.Pedido = this.Pedido;

                documentoVenta.EstadoDocumento = estadoDocumento;

                documentoVenta.Insert();
            }catch (Exception ex)
            {
            }
        }
コード例 #6
0
        public void GrabarDocumento(Acta acta, string idActaDocumento, string idDocumento, string idDocumentoVersion, string comentario, string idResponsableComite, string imprimirCarta, Usuario usuarioLogin)
        {
            ServicioDocumentos servDocumento = new ServicioDocumentos();
            ServicioEquipos    servEquipo    = new ServicioEquipos();

            ActaDocumento actaDocumento = null;

            int _idDocumentoVersion = idDocumentoVersion.ConvertirInt();

            if (_idDocumentoVersion == -1)
            {
                throw new ApplicationException("Debe seleccionar documento y versión a comentar");
            }

            int _idActaDocumento = idActaDocumento.ConvertirInt();

            if (_idActaDocumento == -1)
            {
                actaDocumento = new ActaDocumento();
            }
            else
            {
                actaDocumento = acta.ObtenerDocumento(_idActaDocumento);
            }

            DocumentoVersion docVersion = servDocumento.Obtener(idDocumento)
                                          .ObtenerVersion(_idDocumentoVersion);

            actaDocumento.DocumentoVersion  = docVersion;
            actaDocumento.Descripcion       = comentario;
            actaDocumento.ResponsableComite = servEquipo.ProfesionalObtener(idResponsableComite.ConvertirInt());
            actaDocumento.OrdenEstudio      = acta.ObtenerOrdenEstudio(docVersion.Documento.Estudio.Id);
            actaDocumento.OrdenDocumento    = acta.ObtenerOrdenUltimoDocumentoDelEstudio(docVersion.Documento.Estudio.Id);
            actaDocumento.ImprimirCarta     = imprimirCarta.ConvertirBool();

            if (_idActaDocumento == -1)
            {
                ServicioParametricas servParametricas = new ServicioParametricas();
                Parametro            parmsEstado      = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_EN_EVALUACION");
                string          _idEstado             = (parmsEstado != null) ? parmsEstado.Valor : null;
                EstadoDocumento estado = servParametricas.EstadoDocumentoObtener(_idEstado.ConvertirInt());
                servDocumento.GrabarDocumentoVersionEstado(docVersion, estado, false, usuarioLogin);
            }

            actaDocumento.Validar();

            if (_idActaDocumento == -1)
            {
                /*Si el estudio al cual pertenece el documento no existe en el acta,
                 * se crea automaticamente notas al pie y al continuacion de los documentos tratados*/
                if (!acta.EstudioTieneNotas(docVersion.Documento.IdEstudio))
                {
                    string descripcionNota = string.Format("{0} - ESTUDIO {1}", acta.Descripcion, docVersion.Documento.NombreEstudio);
                    this.GrabarNuevaNota(acta.Id.ToString(), "0", "-1", docVersion.Documento.Estudio.Id.ToString(), string.Format("{0} - INICIO", descripcionNota), DateTime.Now.ToString(), null, string.Empty);
                    this.GrabarNuevaNota(acta.Id.ToString(), "1", "-1", docVersion.Documento.Estudio.Id.ToString(), string.Format("{0} - FINAL", descripcionNota), DateTime.Now.ToString(), null, string.Empty);
                }
                acta.AgregarDocumento(actaDocumento);
            }
        }
コード例 #7
0
ファイル: VentaDetalle.cs プロジェクト: jcanales688/jlym
 public void EstablecerReferenciaEstadoDocumentoDeVenta(string pCodigoEstadoDocumento)
 {
     if (!string.IsNullOrEmpty(pCodigoEstadoDocumento))
     {
         this.CodigoEstadoDocumento = pCodigoEstadoDocumento.Trim();
         this.EstadoDocumento       = null;
     }
 }
コード例 #8
0
        public void ProcesarEstudiosFinalizados(Usuario usuarioLogin)
        {
            ServicioDocumentos   servDocs   = new ServicioDocumentos();
            ServicioParametricas servParams = new ServicioParametricas();

            List <EstudioDTO> estudios    = this.repository.ListarEstudiosDTO(4).ToList <EstudioDTO>().ToList <EstudioDTO>();
            List <Documento>  docsEstudio = new List <Documento>();

            estudios.ForEach(delegate(EstudioDTO dto)
            {
                docsEstudio = this.ObtenerDocumentos(dto.Id.ToString());

                docsEstudio.ForEach(delegate(Documento doc)
                {
                    try
                    {
                        if (doc.TipoDocumento.Vigente)
                        {
                            doc.Versiones.ToList <DocumentoVersion>().ForEach(delegate(DocumentoVersion dv)
                            {
                                EstadoDocumento proximoEstado    = null;
                                DocumentoVersionEstado estadoDoc = dv.ObtenerVersionEstado();
                                if (!estadoDoc.EstadoFinal.Value)
                                {
                                    /*
                                     * IdEstado	Descripcion
                                     *  1	    INGRESADO
                                     *  2	    EN EVALUACION
                                     *  3	    APROBADO
                                     *  4	    PEDIDO DE CAMBIOS
                                     *  5	    TOMA CONOCIMIENTO
                                     */
                                    switch (estadoDoc.Estado.Id)
                                    {
                                    case 1:                                                                            //
                                        proximoEstado = servParams.EstadoDocumentoObtener(2);
                                        servDocs.GrabarDocumentoVersionEstado(dv, proximoEstado, false, usuarioLogin); //grabamos en evaluacion
                                        servDocs.Grabar(doc);
                                        servDocs.GrabarDocumentoVersionEstado(dv, null, true, usuarioLogin);           //grabamos estado final
                                        servDocs.Grabar(doc);
                                        break;

                                    case 2:                                                                  //
                                        servDocs.GrabarDocumentoVersionEstado(dv, null, true, usuarioLogin); //grabamos estado final
                                        servDocs.Grabar(doc);
                                        break;
                                    }
                                }
                            });
                        }
                    }
                    catch
                    {
                        //servDocs.Sincronizar();
                    }
                });
            });
        }
コード例 #9
0
 private void dataGridViewDocumentos_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
 {
     if (e.Value is EstadoDocumento)
     {
         EstadoDocumento estadoDocumento = (EstadoDocumento)e.Value;
         //estadoDocumento.Load();
         e.Value = estadoDocumento.Descripcion;
     }
 }
コード例 #10
0
ファイル: VentaDetalle.cs プロジェクト: jcanales688/jlym
        //EstadoDocumento
        public void EstablecerEstadoDocumentoDeVentaDetalle(EstadoDocumento pEstadoDocumento)
        {
            if (pEstadoDocumento == null)
            {
                throw new ArgumentException(Mensajes.excepcion_EstadoDocumentoDeVentaDetalleEnEstadoNuloOTransitorio);
            }

            this.CodigoEstadoDocumento = pEstadoDocumento.CodigoEstadoDocumento;
            this.EstadoDocumento       = pEstadoDocumento;
        }
コード例 #11
0
        public void EstablecerEstadoDocumentoAnuladoDeConfiguracionPuntoVenta(EstadoDocumento pEstadoDocumentoAnulado)
        {
            if (pEstadoDocumentoAnulado == null)
            {
                throw new ArgumentException(Mensajes.excepcion_EstadoDocumentoAnuladoDeConfiguracionPuntoVentaNuloOTransitorio);
            }

            //relacion
            this.CodigoEstadoDocumentoAnulado = pEstadoDocumentoAnulado.CodigoEstadoDocumento;
            this.EstadoDocumentoAnulado       = pEstadoDocumentoAnulado;
        }
コード例 #12
0
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            this.Comprobante.FechaAnulacion = new DateTime?(DateTime.Now);
            foreach (DetalleComprobante current in this.Comprobante.Detalles)
            {
                if (current.Documento != null)
                {
                    Documento documento = current.Documento;
                    //this.ddao.Load(documento);
                    documento.TotalAbono -= current.Total + current.Retencion + current.Descuento;
                    if (documento.TotalAbono <= 0m)
                    {
                        documento.TotalAbono        = 0m;
                        documento.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.FACTURADO).ID;
                    }
                    else
                    {
                        documento.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO_PARCIALMENTE).ID;
                    }
                    documento.Update();;
                }
            }
            if (this.checkEliminar.Checked)
            {
                TipoDocumento tipoDocumento = TipoDocumento.Get(Comprobante.TipoDocumentoID);
                //this.tdao.Load(tipoDocumento);
                if (tipoDocumento.ConsecutivoActual - 1 == this.Comprobante.Consecutivo)
                {
                    tipoDocumento.ConsecutivoActual--;
                    tipoDocumento.Update();
                    Comprobante.Delete();
                    MessageBox.Show("Comprobante se elimino con exito!", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    base.Close();
                    return;
                }
            }
            if (this.Comprobante.Observacion != string.Empty)
            {
                Comprobante expr_191 = this.Comprobante;
                expr_191.Observacion += Environment.NewLine;
            }
            Comprobante expr_1AC = this.Comprobante;

            expr_1AC.Observacion += "ANULADA";
            if (this.txtMotivo.Text != string.Empty)
            {
                Comprobante expr_1DE = this.Comprobante;
                expr_1DE.Observacion = expr_1DE.Observacion + " Motivo:" + this.txtMotivo.Text;
            }
            this.Comprobante.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.ANULADO).ID;
            Comprobante.Update();
            MessageBox.Show("Documento se anulo con exito!", "SoluPYME " + Entorno.VERSION, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            base.Close();
        }
コード例 #13
0
        public List <EstadoDocumento> DocumentoObtenerEstados(string idDocumento, string idVersion)
        {
            Documento          documento = this.Obtener(idDocumento);
            DocumentoVersion   version   = documento.ObtenerVersion(idVersion.ConvertirInt());
            TipoDocumentoFlujo flujo     = documento.TipoDocumento.ObtenerFlujoDefault();

            DocumentoVersionEstado estadoActual = version.ObtenerVersionEstado();

            EstadoDocumento estado = estadoActual == null ? null : estadoActual.Estado;

            return(flujo.ObtenerEstados(estado));
        }
コード例 #14
0
 private void dataGridViewDocumento_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
 {
     if (e.Value is Tercero)
     {
         Tercero tercero = (Tercero)e.Value;
         e.Value = tercero.NombreComercial;
     }
     if (e.Value is EstadoDocumento)
     {
         EstadoDocumento estadoDocumento = (EstadoDocumento)e.Value;
         e.Value = estadoDocumento.Descripcion;
     }
 }
コード例 #15
0
        internal void LlenarComprobante()
        {
            this.comprobante.Load();
            this.tipoDocumento = TipoDocumento.Get(this.comprobante.TipoDocumentoID);
            formateo           = "##0";
            if (this.tipoDocumento.CantidadDecimal > 0)
            {
                formateo += this.CalcularNumeroDecimal(this.tipoDocumento.CantidadDecimal);
            }
            this.tercero = Tercero.Get(this.comprobante.TerceroID);
            this.txtCodigoTercero.Text   = this.tercero.Codigo;
            this.txtNombreComercial.Text = this.tercero.NombreComercial;
            this.dtpFechaCreacion.Value  = this.comprobante.FechaComprobante.Value;
            this.lbConsecutivo.Text      = string.Format("{0:" + this.CalcularCerosIzquierda(TipoDocumento.Get(this.comprobante.TipoDocumentoID).CerosIzquierda) + "}", this.comprobante.Consecutivo);
            this.LlenarDataGrid();
            this.txtObservacion.Text = this.comprobante.Observacion;
            if (this.comprobante.FormaPago == Comprobante.CHEQUE)
            {
                this.txtSucursal.Text      = this.comprobante.Sucursal;
                this.txtNumeroCheque.Text  = this.comprobante.NumeroCheque;
                this.cbBanco.SelectedValue = this.comprobante.BancoID;
            }
            this.cbCondicion.SelectedIndex = this.cbCondicion.FindStringExact(this.comprobante.FormaPago);
            string format = "{0:N" + this.tipoDocumento.CantidadDecimal + "}";

            this.txtDescuento.Text = string.Format(format, this.comprobante.TotalDescuento);
            this.txtRetencion.Text = string.Format(format, this.comprobante.TotalRetencion);
            this.txtTotal.Text     = string.Format(format, this.comprobante.Total);
            if (TipoDocumento.Get(this.comprobante.TipoDocumentoID).Codigo == TipoDocumentoMaestro.COMPROBANTE_EGRESO)
            {
                this.rbEgreso.PerformClick();
            }
            else
            {
                this.rbIngreso.PerformClick();
            }
            this.cbImpresionComprobante.SelectedValue = this.comprobante.ImpresionDocumentoID;
            if (!string.IsNullOrEmpty(comprobante.EstadoDocumentoID.ToString()) && EstadoDocumento.Get(this.comprobante.EstadoDocumentoID).Descripcion == EstadoDocumento.ANULADO)
            {
                //this.btnAnular.Enabled = false;
            }
            this.dicDetallesComprobante = new Dictionary <Documento, decimal>();
            foreach (DetalleComprobante current in this.comprobante.Detalles)
            {
                if (current.Documento != null)
                {
                    this.dicDetallesComprobante.Add(current.Documento, current.Total);
                }
            }
            this.EvaluarTercero();
        }
コード例 #16
0
        private string AgregarEstado(string idTipoDocumento, string idFlujo, string idEstado, string idEstadoPadre, string final)
        {
            JavaScriptSerializer serializer = new JavaScriptSerializer();

            try
            {
                ServicioDocumentos   servicio        = new ServicioDocumentos();
                ServicioParametricas servParametrica = new ServicioParametricas();
                TipoDocumento        tipoDocumento   = servicio.TipoDocumentoObtener(int.Parse(idTipoDocumento));
                TipoDocumentoFlujo   flujo           = tipoDocumento.ObtenerFlujo(int.Parse(idFlujo));

                if (flujo == null)
                {
                    return(serializer.Serialize(new { result = "Error", message = "No existe ítem, refresque la pantalla" }));
                }

                EstadoDocumento estado = servParametrica.EstadoDocumentoObtener(int.Parse(idEstado));

                EstadoDocumento estadoPadre    = null;
                int             _idEstadoPadre = -1;
                if (int.TryParse(idEstadoPadre, out _idEstadoPadre))
                {
                    estadoPadre = servParametrica.EstadoDocumentoObtener(int.Parse(idEstadoPadre));
                }

                bool estadoFinal = (string.IsNullOrEmpty(final)) ? false : bool.Parse(final);
                flujo.AgregarEstado(estado, estadoPadre, estadoFinal);

                servicio.TipoDocumentoGrabar(tipoDocumento);
                tipoDocumento = servicio.TipoDocumentoObtener(int.Parse(idTipoDocumento));
                flujo         = tipoDocumento.ObtenerFlujo(int.Parse(idFlujo));

                return(flujo.SerializaToJson());
            }
            catch (Exception ex)
            {
                return(serializer.Serialize(new { result = "Error", message = ex.Message }));
            }
        }
コード例 #17
0
        private void EstablecerEstados(TipoDocumentoFlujo flujo, bool seEvalua, bool seTomaConocimiento)
        {
            ServicioParametricas servParametrica = new ServicioParametricas();
            EstadoDocumento      _estado         = null;
            EstadoDocumento      _estadoPadre    = null;

            int estado_Ingresado        = servParametrica.ParametroObtener("ESTADO_DOC_INGRESADO").ConvertirInt();
            int estado_EnEvaluacion     = servParametrica.ParametroObtener("ESTADO_DOC_EN_EVALUACION").ConvertirInt();
            int estado_Aprobado         = servParametrica.ParametroObtener("ESTADO_DOC_APROBADO").ConvertirInt();
            int estado_PedidoCambio     = servParametrica.ParametroObtener("ESTADO_DOC_PEDIDO_CAMBIO").ConvertirInt();
            int estado_TomaConocimiento = servParametrica.ParametroObtener("ESTADO_DOC_TOMA_CONOCIMIENTO").ConvertirInt();

            _estado      = servParametrica.EstadoDocumentoObtener(estado_Ingresado);
            _estadoPadre = null;
            flujo.AgregarEstado(_estado, _estadoPadre, false);

            _estado      = servParametrica.EstadoDocumentoObtener(estado_EnEvaluacion);
            _estadoPadre = servParametrica.EstadoDocumentoObtener(estado_Ingresado);
            flujo.AgregarEstado(_estado, _estadoPadre, false);

            if (seEvalua)
            {
                _estado      = servParametrica.EstadoDocumentoObtener(estado_Aprobado);
                _estadoPadre = servParametrica.EstadoDocumentoObtener(estado_EnEvaluacion);
                flujo.AgregarEstado(_estado, _estadoPadre, true);

                _estado      = servParametrica.EstadoDocumentoObtener(estado_PedidoCambio);
                _estadoPadre = servParametrica.EstadoDocumentoObtener(estado_EnEvaluacion);
                flujo.AgregarEstado(_estado, _estadoPadre, true);
            }
            else if (seTomaConocimiento)
            {
                _estado      = servParametrica.EstadoDocumentoObtener(estado_TomaConocimiento);
                _estadoPadre = servParametrica.EstadoDocumentoObtener(estado_EnEvaluacion);
                flujo.AgregarEstado(_estado, _estadoPadre, true);
            }
        }
コード例 #18
0
ファイル: VentaFactory.cs プロジェクト: jcanales688/jlym
        public static Venta CrearVenta(string pNumeroDocumento, DateTime pFechaDocumento, DateTime pFechaProceso,
                                       string pPeriodo, decimal pTotalNacional, decimal pTotalExtranjera,
                                       decimal pSubTotalNacional, decimal pSubTotalExtranjera, decimal pImpuestoIgvNacional,
                                       decimal pImpuestoIGVExtranjera, decimal pImpuestoIscNacional, decimal pImpuestoIscExtranjera,
                                       decimal pTotalNoAfectoNacional, decimal pTotalNoAfectoExtranjera, decimal pTotalAfectoNacional,
                                       decimal pValorVenta, decimal pPorcentajeDescuentoPrimero, decimal pPorcentajeDescuentoSegundo,
                                       decimal pTotalDescuentoNacional, decimal pTotalDescuentoExtranjera, decimal pTotalVueltoNacional,
                                       decimal pTotalVueltoExtranjera, decimal pTotalEfectivoNacional, decimal pTotalEfectivoExtranjera,
                                       string pPlaca, decimal pNumeroVale, decimal pTipoCambio,
                                       bool pProcesadoCierreZ, bool pProcesadoCierreX, int pKilometraje, bool pAfectaInventario,
                                       Moneda pMoneda, ClaseTipoCambio pClaseTipoCambio, Cliente pCliente,
                                       TipoDocumento pTipoDocumento, EstadoDocumento pEstadoDocumento, Vendedor pVendedor,
                                       CondicionPago pCondicionPago, TipoPago pTipoPago, ConfiguracionPuntoVenta pConfiguracionPuntoVenta,
                                       Almacen pAlmacen, TipoNegocio pTipoNegocio, UsuarioSistema pUsuarioSistema)
        {
            var venta = new Venta();

            venta.GenerarNuevaIdentidad();

            venta.NumeroDocumento            = pNumeroDocumento;
            venta.FechaDocumento             = pFechaDocumento;
            venta.FechaProceso               = pFechaProceso;
            venta.Periodo                    = pPeriodo;
            venta.TotalNacional              = pTotalNacional;
            venta.TotalExtranjera            = pTotalExtranjera;
            venta.SubTotalNacional           = pSubTotalNacional;
            venta.SubTotalExtranjera         = pSubTotalExtranjera;
            venta.ImpuestoIgvNacional        = pImpuestoIgvNacional;
            venta.ImpuestoIgvExtranjera      = pImpuestoIGVExtranjera;
            venta.ImpuestoIscNacional        = pImpuestoIscNacional;
            venta.ImpuestoIscExtranjera      = pImpuestoIscExtranjera;
            venta.TotalNoAfectoNacional      = pTotalNoAfectoNacional;
            venta.TotalNoAfectoExtranjera    = pTotalNoAfectoExtranjera;
            venta.TotalAfectoNacional        = pTotalAfectoNacional;
            venta.ValorVenta                 = pValorVenta; //Investigar de donde sale el valor venta ? venta.Subtotalventa
            venta.PorcentajeDescuentoPrimero = pPorcentajeDescuentoPrimero;
            venta.PorcentajeDescuentoSegundo = pPorcentajeDescuentoSegundo;
            venta.TotalDescuentoNacional     = pTotalDescuentoNacional;
            venta.TotalDescuentoExtranjera   = pTotalDescuentoExtranjera;
            venta.TotalVueltoNacional        = pTotalVueltoNacional;
            venta.TotalVueltoExtranjera      = pTotalVueltoExtranjera;
            venta.TotalEfectivoNacional      = pTotalEfectivoNacional;
            venta.TotalEfectivoExtranjera    = pTotalEfectivoExtranjera;
            venta.RucCliente                 = pCliente.Ruc;                 //pRucCliente;
            venta.NombreCompletoCliente      = pCliente.NombresORazonSocial; //pNombreCompletoCliente;
            venta.Placa            = pPlaca;
            venta.NumeroVale       = pNumeroVale;
            venta.TipoCambio       = pTipoCambio;
            venta.ProcesadoCierreZ = pProcesadoCierreZ;
            venta.ProcesadoCierreX = pProcesadoCierreX;
            venta.Kilometraje      = pKilometraje;
            venta.AfectaInventario = pAfectaInventario;

            venta.Habilitar();

            venta.EstablecerMonedaDeVenta(pMoneda);
            venta.EstablecerClaseTipoCambioDeVenta(pClaseTipoCambio);
            venta.EstablecerClienteDeVenta(pCliente);
            venta.EstablecerTipoDocumentoDeVenta(pTipoDocumento);
            venta.EstablecerEstadoDocumentoDeVenta(pEstadoDocumento);
            venta.EstablecerVendedorDeVenta(pVendedor);
            venta.EstablecerCondicionPagoDeVenta(pCondicionPago);
            venta.EstablecerTipoPagoDeVenta(pTipoPago);
            venta.EstablecerConfiguracionPuntoVentaDeVenta(pConfiguracionPuntoVenta);
            venta.EstablecerAlmacenDeVenta(pAlmacen);
            venta.EstablecerTipoNegocioDeVenta(pTipoNegocio);
            venta.EstablecerUsuarioSistemaDeVenta(pUsuarioSistema);

            venta.EstablecerImpuestoIgvDeCliente(pCliente.ImpuestoIgv);

            if (pCliente.ImpuestoIsc != null)
            {
                venta.EstablecerImpuestoIscDeCliente(pCliente.ImpuestoIsc);
            }


            return(venta);
        }
コード例 #19
0
        private void ProcesarDocumentos(List <ActaDocumento> actaDocumentos)
        {
            if (actaDocumentos == null || actaDocumentos.Count == 0)
            {
                return;
            }

            CartaRespuestaModelo modeloCarta = actaEstudio.CartaRespuestaModelo;

            estudioTratado = ProcesadorHelpers.ObtenerDatosEstudioTratado(actaEstudio.Estudio);

            List <DocumentoTratado> documentosEvaluados        = new List <DocumentoTratado>();
            List <DocumentoTratado> documentosTomaConocimiento = new List <DocumentoTratado>();
            List <DocumentoTratado> documentosPedidoCambio     = new List <DocumentoTratado>();

            DocumentoTratado documentoTratado = new DocumentoTratado();

            int documentosEvaluadosAprobados = 0;

            actaDocumentos.OrderBy(item => item.OrdenGrupoTipoDocumento)
            .ToList <ActaDocumento>()
            .ForEach(delegate(ActaDocumento actaDoc)
            {
                if (actaDoc.DocumentoVersion.Documento.TipoDocumento.ListarCartaRespuesta)
                {
                    if (actaDoc.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo == null)
                    {
                        throw new ApplicationException("Debe asignar Grupo para " + actaDoc.DocumentoVersion.Documento.TipoDocumento.Descripcion);
                    }

                    if (actaDoc.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo.SeEvalua())
                    {
                        if (actaDoc.DocumentoVersion.Documento.IdEstadoActual.Equals(IdEstadoAprobado))
                        {
                            documentosEvaluadosAprobados++;
                        }
                        documentoTratado       = ProcesadorHelpers.ObtenerDocumentoTratado(actaDoc, false);
                        documentoTratado.Orden = string.Format("{0}{1}{2}", actaDoc.Acta.Fecha.ToString("yyyyMMdd"), actaDoc.OrdenGrupoTipoDocumento.ToString(), actaDoc.OrdenDocumento.ToString("00"));
                        documentosEvaluados.Add(documentoTratado);
                    }

                    if (actaDoc.DocumentoVersion.Documento.TipoDocumento.TipoDocumentoGrupo.SeTomaConocimiento())
                    {
                        documentoTratado       = ProcesadorHelpers.ObtenerDocumentoTratado(actaDoc, false);
                        documentoTratado.Orden = string.Format("{0}{1}{2}", actaDoc.Acta.Fecha.ToString("yyyyMMdd"), actaDoc.OrdenGrupoTipoDocumento.ToString(), actaDoc.OrdenDocumento.ToString("00"));
                        documentosTomaConocimiento.Add(documentoTratado);
                    }

                    EstadoDocumento estadoDocumento = actaDoc.DocumentoVersion.ObtenerVersionEstado().Estado;
                    if (estadoDocumento.Id.Equals(this.IdEstadoPedidoCambio))
                    {
                        documentoTratado       = ProcesadorHelpers.ObtenerDocumentoTratado(actaDoc, false);
                        documentoTratado.Orden = string.Format("{0}{1}{2}", actaDoc.Acta.Fecha.ToString("yyyyMMdd"), actaDoc.OrdenGrupoTipoDocumento.ToString(), actaDoc.OrdenDocumento.ToString("00"));
                        documentosPedidoCambio.Add(documentoTratado);
                    }
                }
            });

            List <TipoDocumentoTratado> documentosTratados          = ProcesarDocumentosTratados(TiposDocumentosTratados, actaDocumentos);
            List <TipoDocumentoTratado> documentosTratadosEvaluados = ProcesarDocumentosTratados(TiposDocumentosEvaluados, actaDocumentos);

            List <string> vocalesImprime = new List <string>();

            Vocales.ForEach(delegate(Profesional profesional)
            {
                vocalesImprime.Add(string.Format("{0} ({1})", profesional.NombreYApellido,
                                                 (profesional.RolComite != null) ? profesional.RolComite.Descripcion : string.Empty));
            });

            IDictionary datos;

            if (this.NombrePlantilla.Contains("PlantillaAprobacionEstudio"))
            {
                datos = ObtenerDatosPlantillaAprobacionEstudio(modeloCarta, documentosTratados, documentosTratadosEvaluados, vocalesImprime);
            }
            else
            {
                datos = ObtenerDatosPlantilla(modeloCarta, documentosEvaluados, documentosTomaConocimiento, documentosPedidoCambio, vocalesImprime);
            }


            INVelocity fileEngine = NVelocityFactory.CreateNVelocityFileEngine(ProcesadorHelpers.DirectorioPlantillas, true);

            HTMLProcesado.Add(fileEngine.Process(datos, NombrePlantilla));
        }
コード例 #20
0
        private ConfiguracionPuntoVenta MapeoConfiguracionPuntoVenta(ConfiguracionPuntoVenta pConfiguracionPuntoVenta, EstadoDocumento pEstadoDocumentoPorDefecto,
                                                                     TipoPago pTipoPagoPorDefecto, EstadoDocumento pEstadoDocumentoAnulado)
        {
            var configuracionPuntoDeVenta = new ConfiguracionPuntoVenta();

            configuracionPuntoDeVenta = pConfiguracionPuntoVenta;
            configuracionPuntoDeVenta.EstablecerEstadoDocumentoDefaultDeConfiguracionPuntoVenta(pEstadoDocumentoPorDefecto);
            configuracionPuntoDeVenta.EstablecerTipoPagoDefaultDeConfiguracionPuntoVenta(pTipoPagoPorDefecto);
            configuracionPuntoDeVenta.EstablecerEstadoDocumentoAnuladoDeConfiguracionPuntoVenta(pEstadoDocumentoAnulado);

            return(configuracionPuntoDeVenta);
        }
コード例 #21
0
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            StringBuilder stringBuilder = new StringBuilder();

            if (this.tercero != null)
            {
                this.comprobante.TerceroID = this.tercero.ID;
            }
            else
            {
                stringBuilder.Append("Tercero es requerido!\n");
            }
            if (this.comprobante.Detalles.Count == 0)
            {
                stringBuilder.Append("No existen detalles! \n");
            }
            IList <DetalleComprobante> detalles = this.comprobante.Detalles;

            foreach (DetalleComprobante current in detalles)
            {
                if (current.Concepto == string.Empty)
                {
                    stringBuilder.Append("El concepto debe contener una descripción\n");
                }
                if (current.Total <= 0m)
                {
                    stringBuilder.Append("El total debe contener un valor\n");
                }
            }
            if (this.comprobante.Total == 0m)
            {
                stringBuilder.Append("El total debe contener un valor\n");
            }
            this.comprobante.TipoDocumentoID  = this.tipoDocumento.ID;
            this.comprobante.FechaComprobante = new DateTime?(this.dtpFechaCreacion.Value);
            this.comprobante.FormaPago        = Convert.ToString(this.cbCondicion.SelectedItem);
            if (this.comprobante.FormaPago == CHEQUE)
            {
                this.comprobante.NumeroCheque = this.txtNumeroCheque.Text;
                this.comprobante.BancoID      = (this.cbBanco.SelectedItem as Banco).ID;
                this.comprobante.Sucursal     = this.txtSucursal.Text;
            }
            this.comprobante.Observacion          = this.txtObservacion.Text;
            this.comprobante.ImpresionDocumentoID = (this.cbImpresionComprobante.SelectedItem as ImpresionDocumento).ID;
            if (stringBuilder.Length > 0)
            {
                MessageBox.Show(stringBuilder.ToString(), "Advertencia!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return;
            }
            this.comprobante.UsuarioID = Entorno.USUARIO.ID;
            if (this.comprobante.ID == 0)
            {
                //this.tipoDocumento.Load();
                this.comprobante.Consecutivo = this.tipoDocumento.ConsecutivoActual;
                this.comprobante.Save();

                this.tipoDocumento.ConsecutivoActual++;
                this.tipoDocumento.Update();
                using (IEnumerator <DetalleComprobante> enumerator2 = this.comprobante.Detalles.GetEnumerator()) {
                    while (enumerator2.MoveNext())
                    {
                        DetalleComprobante current2 = enumerator2.Current;
                        if (current2.Documento != null)
                        {
                            documento = current2.Documento;
                            //documento.LoadByComprobante(comprobante);
                            documento.TotalAbono += current2.Total + current2.Retencion + current2.Descuento;
                            if (preferencias.RedondeoSistema)
                            {
                                documento.TotalAbono = Math.Round(documento.TotalAbono, preferencias.NumeroDecimal);
                            }
                            else
                            {
                                if (preferencias.RedondeoInferior)
                                {
                                    documento.TotalAbono = Math.Floor(documento.TotalAbono);
                                }
                                else
                                {
                                    if (preferencias.RedondeoSuperior)
                                    {
                                        documento.TotalAbono = Math.Ceiling(documento.TotalAbono);
                                    }
                                }
                            }
                            if (documento.TotalAbono >= documento.Total)
                            {
                                documento.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO).ID;
                            }
                            else
                            {
                                documento.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO_PARCIALMENTE).ID;
                            }
                            documento.Update();
                        }
                    }
                }
            }
            if (this.dicDetallesComprobante != null && this.dicDetallesComprobante.Count > 0)
            {
                foreach (KeyValuePair <Documento, decimal> current3 in this.dicDetallesComprobante)
                {
                    Documento key = current3.Key;
                    //key.LoadByComprobante();
                    key.TotalAbono -= current3.Value;
                    if (key.TotalAbono == 0m)
                    {
                        key.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.FACTURADO).ID;
                    }
                    else
                    {
                        key.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO_PARCIALMENTE).ID;
                    }
                    key.Update();
                }
            }
            foreach (DetalleComprobante current4 in this.comprobante.Detalles)
            {
                if (current4.Documento != null)
                {
                    Documento documento2 = current4.Documento;
                    //documento2.LoadByComprobante();
                    documento2.TotalAbono += current4.Total + current4.Retencion + current4.Descuento;
                    if (documento2.TotalAbono >= documento2.Total)
                    {
                        documento2.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO).ID;
                    }
                    else
                    {
                        documento2.EstadoDocumentoID = EstadoDocumento.FindByEstado(EstadoDocumento.PAGADO_PARCIALMENTE).ID;
                    }
                    documento2.Update();
                }
            }
            this.comprobante.Update();
            MessageBox.Show("Comprobante grabado con exito!", "SoluPYME " + Entorno.VERSION, MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }
コード例 #22
0
        public void GrabarDocumentoVersionEstado(string idEstudio, string idDocumento, string idVersion, string idVersionEstado, string idEstado, string fecha, string idProfesionalAutor, string idProfesionalPresenta, string idProfesionalResponsable, Usuario usuarioLogin)
        {
            ServicioParametricas servParametricas = new ServicioParametricas();
            ServicioEquipos      servEquipo       = new ServicioEquipos();

            Documento        documento = this.Obtener(idDocumento);
            DocumentoVersion version   = documento.ObtenerVersion(idVersion.ConvertirInt());

            DocumentoVersionEstado versionEstadoActual = version.ObtenerVersionEstado();

            if (versionEstadoActual != null && versionEstadoActual.Estado != null)
            {
                //para no duplicar el estado, si ya lo tiene no hce nada
                if (versionEstadoActual.Estado.Id == idEstado.ConvertirInt())
                {
                    return;
                }
                //si ya tiene un estado final se quita primero, para que quede un solo estado final
                if (versionEstadoActual.EstadoFinal.HasValue && versionEstadoActual.EstadoFinal.Value)
                {
                    version.EliminarVersionEstado(versionEstadoActual.Id);
                }
            }

            DocumentoVersionEstado versionEstado = null;

            int _idVersionEstado = idVersionEstado.ConvertirInt();

            if (_idVersionEstado == -1)
            {
                versionEstado = new DocumentoVersionEstado();
            }
            else
            {
                versionEstado = version.ObtenerVersionEstado(_idVersionEstado);
            }

            versionEstado.Fecha = string.IsNullOrEmpty(fecha) ? DateTime.MinValue : DateTime.Parse(fecha);

            EstadoDocumento nuevoEstado = null;

            nuevoEstado          = servParametricas.EstadoDocumentoObtener(idEstado.ConvertirInt());
            versionEstado.Estado = nuevoEstado;

            versionEstado.Usuario                = usuarioLogin;
            versionEstado.ProfesionalAutor       = servEquipo.ProfesionalObtener(idProfesionalAutor.ConvertirInt());
            versionEstado.ProfesionalPresenta    = servEquipo.ProfesionalObtener(idProfesionalPresenta.ConvertirInt());
            versionEstado.ProfesionalResponsable = servEquipo.ProfesionalObtener(idProfesionalResponsable.ConvertirInt());
            versionEstado.Observaciones          = string.Empty;

            TipoDocumentoFlujoEstado flujoEstado = documento.TipoDocumento.ObtenerFlujoDefault().ObtenerFlujoEstado(nuevoEstado);

            if (flujoEstado != null)
            {
                versionEstado.EstadoFinal = flujoEstado.Final;
            }
            else
            {
                versionEstado.EstadoFinal = false;
            }

            versionEstado.Validar();

            if (_idVersionEstado == -1)
            {
                version.AgregarVersionEstado(versionEstado);
            }

            this.Grabar(documento);
        }
コード例 #23
0
        public void GrabarDocumentoVersionEstado(DocumentoVersion version, EstadoDocumento estado, bool actualizarEstadoFinal, Usuario usuarioLogin)
        {
            if (estado == null && !actualizarEstadoFinal)
            {
                return;
            }

            ServicioParametricas servParametricas = new ServicioParametricas();

            DocumentoVersionEstado versionEstadoActual = version.ObtenerVersionEstado();

            if (versionEstadoActual != null && versionEstadoActual.Estado != null)
            {
                //para no duplicar el estado, si ya lo tiene no hce nada
                if (versionEstadoActual.Estado == estado)
                {
                    return;
                }

                //si ya tiene un estado final y no se está actualizando estado final, se quita primero para que quede un solo estado final
                if (versionEstadoActual.EstadoFinal.HasValue && versionEstadoActual.EstadoFinal.Value)
                {
                    if (actualizarEstadoFinal)
                    {
                        return;
                    }
                    else
                    {
                        version.EliminarVersionEstado(versionEstadoActual.Id);
                    }
                }
            }

            EstadoDocumento estadoAprobadoExistente         = null;
            EstadoDocumento estadoTomaConocimientoExistente = null;
            EstadoDocumento nuevoEstado = null;

            if (actualizarEstadoFinal)
            {
                List <EstadoDocumento> listEstados = version.Documento.TipoDocumento.ObtenerFlujoDefault().ObtenerEstados(versionEstadoActual.Estado);

                Parametro parmsEstado      = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_APROBADO");
                string    idEstadoAprobado = (parmsEstado != null) ? parmsEstado.Valor : null;
                estadoAprobadoExistente = listEstados.Find(delegate(EstadoDocumento match) { return(match.Id == idEstadoAprobado.ConvertirInt()); });

                parmsEstado = servParametricas.ObtenerObjeto <Parametro>("Descripcion", "ESTADO_DOC_TOMA_CONOCIMIENTO");
                string idEstadoTomaConocimiento = (parmsEstado != null) ? parmsEstado.Valor : null;
                estadoTomaConocimientoExistente = listEstados.Find(delegate(EstadoDocumento match) { return(match.Id == idEstadoTomaConocimiento.ConvertirInt()); });

                if (estadoAprobadoExistente == null && estadoTomaConocimientoExistente == null)
                {
                    return;
                }

                nuevoEstado = (estadoAprobadoExistente != null) ? estadoAprobadoExistente : estadoTomaConocimientoExistente;
            }
            else
            {
                nuevoEstado = estado;
            }

            DocumentoVersionEstado versionEstado = new DocumentoVersionEstado();

            versionEstado.Fecha         = DateTime.Now;
            versionEstado.Estado        = nuevoEstado;
            versionEstado.Usuario       = usuarioLogin;
            versionEstado.Observaciones = string.Empty;

            TipoDocumentoFlujoEstado flujoEstado = version.Documento.TipoDocumento.ObtenerFlujoDefault().ObtenerFlujoEstado(nuevoEstado);

            if (flujoEstado != null)
            {
                versionEstado.EstadoFinal = flujoEstado.Final;
            }
            else
            {
                versionEstado.EstadoFinal = false;
            }

            versionEstado.Validar();

            version.AgregarVersionEstado(versionEstado);
        }