/// <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); } }
/// <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); } }
/// <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)); }