/// <summary>
        /// Genera un nuevo número de control de liquidación para modificar el campo: NroControl del objeto que viene como parámetro.
        /// Ejecuta un procedimiento DAL de Insert Liquidación Taller, enviando como parametro el objeto modificado.
        /// </summary>
        /// <param name="_liquidTaller">Objeto de tipo LiquidacionTallerDTO con los datos de liquidación.</param>
        /// <returns>Variable de tipo int con la cantidad de ingresos.</returns>
        public int IngresarLiquidacionTaller(LiquidacionTallerDTO _liquidTaller)
        {
            string id          = UltimoNroControlLiquidacion();
            int    _nroControl = int.Parse(id == "" ? "0" : id) + 1;

            _liquidTaller.NroControl = _nroControl;
            return(_liquidTallerDal.InsertLiquidacionTaller(_liquidTaller));
        }
        /// <summary>
        /// Completa aulgunos datos faltantes del listado de Pagos Libres y se totaliza lo facturado ya sea en soles o dolares,
        /// para la ejecución del metodo DAL de Insert Documento Pago Libre.
        /// Construye un objeto de tipo LiquidacionTallerDTO y se completa con algunos valores faltantes como el monto facturado
        /// obtenido desde lo totalizado de Pagos Libres, para poder ejecutar el metodo BLL de Ingresasar Liquidación Taller.
        /// </summary>
        /// <param name="listDocLibre">Lista genérica de tipo DocumentoPagoLibreDTO, con los pagos libres agregados</param>
        /// <param name="_codProveedor">Código de Proveedor</param>
        /// <param name="_tipoMov">Tipo de Movimiento</param>
        /// <param name="_moneda">Moneda (S/D)</param>
        /// <param name="_usuario">Nombre de Usuario</param>
        /// <returns>Variable de tipo int con el número de liquidación generado e ingresado.</returns>
        public int GuardarDocumentoPagoLibre(List <DocumentoPagoLibreDTO> listDocLibre, string _codProveedor, string _tipoMov, string _moneda, string _usuario)
        {
            int nroInsertLiquid;
            int nroInsertDocLibre = 0;
            //Campos para Liquidacion
            double _montoFacturacionSoles   = 0;
            double _montoFacturacionDolares = 0;
            int    _nroLiquidacion          = NroLiquidacion();

            foreach (DocumentoPagoLibreDTO docLibre in listDocLibre)
            {
                docLibre.TipoMovimiento = _tipoMov;
                docLibre.Moneda         = _moneda;
                docLibre.NroDocumento   = _nroLiquidacion;
                if (_moneda == "S")
                {
                    _montoFacturacionSoles += docLibre.Total;
                }
                else if (_moneda == "D")
                {
                    _montoFacturacionDolares += docLibre.Total;
                }
                else
                {
                    _montoFacturacionSoles   += 0;
                    _montoFacturacionDolares += 0;
                }

                _docPagoLibreDal.InsertDocumentoPagoLibre(docLibre);
                nroInsertDocLibre++;
            }

            //Ingresar Liquidacion
            LiquidacionTallerDTO _liquidTallerDto = new LiquidacionTallerDTO()
            {
                CodProveedor        = _codProveedor,
                TipoMovimiento      = _tipoMov,
                SerieDocumento      = 0,
                NroDocumento        = _nroLiquidacion,
                ConceptoCompra      = string.Empty,
                Moneda              = _moneda,
                MontoFacturaSoles   = _montoFacturacionSoles,
                MontoFacturaDolares = _montoFacturacionDolares,
                Usuario             = _usuario
            };

            nroInsertLiquid = _liquidTallerBll.IngresarLiquidacionTaller(_liquidTallerDto);
            if ((nroInsertLiquid > 0) && (nroInsertDocLibre > 0))
            {
                return(_nroLiquidacion);
            }
            else
            {
                return(0);
            }
        }
Exemple #3
0
        /// <summary>
        /// Genera un nuevo número de liquidación y recorre el listado de pagos de taller para enviar cada elemento a un procedimiento
        /// DAL de Insert Documento Pago Taller y Actualizacion de Número de Asignacion de Ordenes.
        /// Construye un objeto de tipo LiquidacionTallerDTO totalizando los pagos de taller y lo envía al procedimiento BLL de
        /// Insert Liquidación Taller.
        /// </summary>
        /// <param name="_listDocPagoTaller">Lista Genérica de tipo DocumentoPagoTallerDTO, con los pagos de taller agregados.</param>
        /// <param name="_moneda">Moneda (S/D)</param>
        /// <param name="_usuario">Nombre de Usuario</param>
        /// <returns>Variable de tipo int con el número de liquidacion ingresado.</returns>
        public int IngresarDocumentoPagoTaller(List <DocumentoPagoTallerDTO> _listDocPagoTaller, string _moneda, string _usuario)
        {
            int nroInsertsDoc   = 0;
            int nroUpdatesAsig  = 0;
            int nroInsertLiquid = 0;

            string _tipoMovimiento          = string.Empty;
            string _codProveedor            = string.Empty;
            int    _seriedoc                = 0;
            int    _nroLiquidacion          = NroLiquidacion();
            int    _operacion               = 0;
            double _montoFacturacionSoles   = 0;
            double _montoFacturacionDolares = 0;

            foreach (DocumentoPagoTallerDTO _doc in _listDocPagoTaller)
            {
                //Insertar Registros de Asignacion a Documentos
                _doc.NroDocumento = _nroLiquidacion;
                if (_docPagoTallerDal.InsertDocumentoPagoTaller(_doc) > 0)
                {
                    nroInsertsDoc++;
                }
                //Actualizar NumeroOrden2 en Tabla AsignacionOrdenesDet
                if (_asigOrdenesDal.UpdateNumeroOrden2AsignacionOrdenes(_doc) > 0)
                {
                    nroUpdatesAsig++;
                }

                if (_listDocPagoTaller.IndexOf(_doc) == 0)
                {
                    _codProveedor   = _doc.CodProveedor;
                    _tipoMovimiento = _doc.TipoDocumento;
                    _operacion      = _doc.CategoriaOperacion;
                }
                _montoFacturacionSoles   += _doc.MontoFacturacionSoles;
                _montoFacturacionDolares += _doc.MontoFacturacionDolares;
            }
            //Ingresar Liquidacion
            LiquidacionTallerDTO _liquidTallerDto = new LiquidacionTallerDTO()
            {
                CodProveedor        = _codProveedor,
                TipoMovimiento      = _tipoMovimiento,
                SerieDocumento      = _seriedoc,
                NroDocumento        = _nroLiquidacion,
                ConceptoCompra      = _operacion.ToString(),
                Moneda              = _moneda,
                MontoFacturaSoles   = _montoFacturacionSoles,
                MontoFacturaDolares = _montoFacturacionDolares,
                Usuario             = _usuario
            };

            nroInsertLiquid = _liquidTallerBll.IngresarLiquidacionTaller(_liquidTallerDto);
            if (nroInsertsDoc > 0 && nroUpdatesAsig > 0 && nroInsertLiquid > 0)
            {
                return(_nroLiquidacion);
            }
            else
            {
                return(0);
            }
        }
Exemple #4
0
        /// <summary>
        /// Ejecuta una consulta de inserción en la tabla Liquidacion_Talleres de la BD.
        /// </summary>
        /// <param name="_liquidTallerDto">Objeto LiquidacionTallerDTO</param>
        /// <returns>Variable de tipo int con la cantidad de registros ingresados.</returns>
        public int InsertLiquidacionTaller(LiquidacionTallerDTO _liquidTallerDto)
        {
            List <SqlParameter> _sqlParam = new List <SqlParameter>();

            string query = @"
                insert into Liquidacion_Talleres(
	                cod_empresa, 
                    nro_de_control, 
                    periodo, 
                    cod_proveedor, 
                    tipo_movimiento,
	                serie_documento, 
                    nro_documento, 
                    fecha_documento, 
                    concepto_compra,
	                c_igv, c_sol, 
                    asiento_generado, 
                    moneda, 
                    fecha_de_cancelacion, 
                    tipo_de_cambio,
	                tipo_de_cambio_aplic, 
                    monto_factura_afecto_soles, 
                    monto_factura_afecto_dolares,
	                tipo_igv, 
                    monto_igv_soles, 
                    monto_igv_dolares, 
                    otros_montos_soles, 
                    otros_montos_dolares,
	                estado, usuario, glosa, 
                    fecha_de_contabilizac, 
                    monto_total_doc_soles, 
                    montototal_doc_dolares,
	                cod_cuenta_total_venta, 
                    voucher, ref_caja, 
                    fecha_creacion, 
                    anno, Semana
                ) values(
                    1, @nrocontrol, @periodo, @codproveedor, @tipomovimiento, @seriedoc, 
                    @numerodoc, convert(date, @fechadoc), @conceptocompra, @cigv, @csol, '', 
                    @moneda, convert(date, @fechacancelacion), 1, '', 
                    @montofacturasoles, @montofacturadolares, @tipoigv, @montoigvsoles, @montoigvdolares, 0, 0, 'P', 
                    @usuario, @glosa, convert(date, @fechacontabilizacion),
                    @montototalsoles, @montototaldolares, '420101', '', '', convert(date, @fechacreacion), @anio, @semana
                )";

            _sqlParam.Add(new SqlParameter("@nrocontrol", SqlDbType.Int)
            {
                Value = _liquidTallerDto.NroControl
            });
            _sqlParam.Add(new SqlParameter("@periodo", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.Periodo
            });
            _sqlParam.Add(new SqlParameter("@codproveedor", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.CodProveedor
            });
            _sqlParam.Add(new SqlParameter("@tipomovimiento", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.TipoMovimiento
            });
            _sqlParam.Add(new SqlParameter("@seriedoc", SqlDbType.Int)
            {
                Value = _liquidTallerDto.SerieDocumento
            });
            _sqlParam.Add(new SqlParameter("@numerodoc", SqlDbType.Int)
            {
                Value = _liquidTallerDto.NroDocumento
            });
            _sqlParam.Add(new SqlParameter("@fechadoc", SqlDbType.DateTime)
            {
                Value = _liquidTallerDto.FechaDocumento
            });
            _sqlParam.Add(new SqlParameter("@conceptocompra", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.ConceptoCompra
            });
            _sqlParam.Add(new SqlParameter("@cigv", SqlDbType.Int)
            {
                Value = _liquidTallerDto.CIgv
            });
            _sqlParam.Add(new SqlParameter("@csol", SqlDbType.Int)
            {
                Value = _liquidTallerDto.CSol
            });
            _sqlParam.Add(new SqlParameter("@moneda", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.Moneda
            });
            _sqlParam.Add(new SqlParameter("@fechacancelacion", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.FechaCancelacion
            });
            _sqlParam.Add(new SqlParameter("@montofacturasoles", SqlDbType.Decimal)
            {
                Value = _liquidTallerDto.MontoFacturaSoles
            });
            _sqlParam.Add(new SqlParameter("@montofacturadolares", SqlDbType.Decimal)
            {
                Value = _liquidTallerDto.MontoFacturaDolares
            });
            _sqlParam.Add(new SqlParameter("@tipoigv", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.TipoIgv
            });
            _sqlParam.Add(new SqlParameter("@montoigvsoles", SqlDbType.Decimal)
            {
                Value = _liquidTallerDto.MontoIgvSoles
            });
            _sqlParam.Add(new SqlParameter("@montoigvdolares", SqlDbType.Decimal)
            {
                Value = _liquidTallerDto.MontoIgvDolares
            });
            _sqlParam.Add(new SqlParameter("@usuario", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.Usuario
            });
            _sqlParam.Add(new SqlParameter("@glosa", SqlDbType.VarChar)
            {
                Value = _liquidTallerDto.Glosa
            });
            _sqlParam.Add(new SqlParameter("@fechacontabilizacion", SqlDbType.DateTime)
            {
                Value = _liquidTallerDto.FechaContabilizacion
            });
            _sqlParam.Add(new SqlParameter("@montototalsoles", SqlDbType.Decimal)
            {
                Value = _liquidTallerDto.MontoTotalSoles
            });
            _sqlParam.Add(new SqlParameter("@montototaldolares", SqlDbType.Decimal)
            {
                Value = _liquidTallerDto.MontoTotalDolares
            });
            _sqlParam.Add(new SqlParameter("@fechacreacion", SqlDbType.DateTime)
            {
                Value = _liquidTallerDto.FechaCreacion
            });
            _sqlParam.Add(new SqlParameter("@anio", SqlDbType.Int)
            {
                Value = _liquidTallerDto.Anio
            });
            _sqlParam.Add(new SqlParameter("@semana", SqlDbType.Int)
            {
                Value = _liquidTallerDto.Semana
            });

            return(_trans.ExecuteQuery(query, _sqlParam));
        }