public bool GuardarRequerimiento(TipoMantenimiento tipoMantenimiento, Requerimiento entidadCab, List <VwRequerimientodet> entidadDetList) { using (var db = OrmLiteHelper.DbFactory.Open()) { using (IDbTransaction trans = db.OpenTransaction(IsolationLevel.ReadCommitted)) { switch (tipoMantenimiento) { case TipoMantenimiento.Nuevo: db.Save(entidadCab); if (entidadCab.Idrequerimiento > 0) { var tipocp = db.SingleById <Tipocp>(entidadCab.Idtipocp); if (tipocp.Numeracionauto) { db.Update <Tipocp>(new { Numerocorrelativocp = Convert.ToInt32(entidadCab.Numeroreq) + 1 }, p => p.Idtipocp == tipocp.Idtipocp); } } break; case TipoMantenimiento.Modificar: db.Update(entidadCab); break; } //int numeroItem = 1; //foreach (var item in entidadDetList.Where(x=>x.DataEntityState != DataEntityState.Deleted)) //{ // item.DataEntityState = DataEntityState.Modified; // item.Numeroitem = numeroItem; // numeroItem++; //} if (entidadCab.Idrequerimiento > 0) { foreach (var item in entidadDetList) { Requerimientodet requerimientodet = new Requerimientodet(); requerimientodet.Idrequerimientodet = item.Idrequerimientodet; requerimientodet.Idrequerimiento = entidadCab.Idrequerimiento; requerimientodet.Numeroitem = item.Numeroitem; requerimientodet.Idarticulo = item.Idarticulo; requerimientodet.Idimpuesto = item.Idimpuesto; requerimientodet.Idunidadmedida = item.Idunidadmedida; requerimientodet.Especificacion = item.Especificacion; requerimientodet.Cantidad = item.Cantidad; requerimientodet.Preciounitario = item.Preciounitario; requerimientodet.Importetotal = item.Importetotal; requerimientodet.Idcentrodecosto = item.Idcentrodecosto; requerimientodet.Cantidadinicial = item.Cantidadinicial; requerimientodet.Idtipoafectacionigv = item.Idtipoafectacionigv; requerimientodet.Porcentajepercepcion = item.Porcentajepercepcion; requerimientodet.Aprobado = item.Aprobado; requerimientodet.Calcularitem = item.Calcularitem; requerimientodet.Createdby = item.Createdby; requerimientodet.Creationdate = item.Creationdate; requerimientodet.Modifiedby = item.Modifiedby; requerimientodet.Lastmodified = item.Lastmodified; //Nuevo if (item.Idrequerimientodet == 0 && item.DataEntityState != DataEntityState.Deleted) { db.Save(requerimientodet); item.Idrequerimientodet = requerimientodet.Idrequerimientodet; } //Modificar if (item.Idrequerimientodet > 0 && item.DataEntityState == DataEntityState.Modified) { db.Update(requerimientodet); } //Eliminar if (item.Idrequerimientodet > 0 && item.DataEntityState == DataEntityState.Deleted) { db.DeleteById <Requerimientodet>(item.Idrequerimientodet); } } //Verificar si hubo cambios en el orden de items int cntNoOrden = 0; int nItemInicial = 0; foreach (var item in entidadDetList.Where(x => x.DataEntityState != DataEntityState.Deleted)) { if (nItemInicial + 1 != item.Numeroitem) { cntNoOrden++; } nItemInicial = item.Numeroitem; } if (cntNoOrden > 0) { int numeroItem = 1; //Reenumerar y actualizar solo el nro de item foreach (var item in entidadDetList.Where(x => x.DataEntityState != DataEntityState.Deleted)) { item.Numeroitem = numeroItem; Requerimientodet requerimientodet = new Requerimientodet { Numeroitem = item.Numeroitem, Idrequerimientodet = item.Idrequerimientodet }; db.Update <Requerimientodet>(new { requerimientodet.Numeroitem }, p => p.Idrequerimientodet == requerimientodet.Idrequerimientodet); numeroItem++; } } } trans.Commit(); return(true); } } }
public void UpdateRequerimientodet(Requerimientodet entity) { RequerimientodetDao.Update(entity); }
private void btnActualizarEstado_Click(object sender, EventArgs e) { switch (Parametros.TipoConsultaReq) { case 0: //Pendiente de aprobacion break; case 1: //Req Aproados if (Service.RequerimientoTieneReferenciasOrdenDeCompra(VwRequerimientoSel.Idrequerimiento)) { XtraMessageBox.Show("Requerimiento ya tiene referencia en ordenes de compra.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } break; } if (gvConsulta.RowCount == 0) { XtraMessageBox.Show("No hay requerimientos pendientes de aprobación.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (gvDetalle.RowCount == 0) { XtraMessageBox.Show("El requerimiento no tiene items.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } int totalItemsSeleccionados = VwRequerimientodetList.Count(x => x.Aprobado); if (totalItemsSeleccionados == 0) { XtraMessageBox.Show("Debe seleccionar items a aprobar", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } var idEstadoSel = iIdestadoreq.EditValue; if (idEstadoSel == null) { XtraMessageBox.Show("Seleccione el estado", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } switch (Parametros.IdEstadoReq) { case 0: // Pendientes de Aprobacion if (Service.RequerimientoAprobado(VwRequerimientoSel.Idrequerimiento)) { XtraMessageBox.Show("Requerimiento ya esta aprobado.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); CargarRequerimientos(); return; } break; case 1: // Aprobados break; } if (DialogResult.Yes == XtraMessageBox.Show("Desea actualizar el estado del requerimiento", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)) { Requerimiento requerimiento = Service.GetRequerimiento(x => x.Idrequerimiento == VwRequerimientoSel.Idrequerimiento); if (requerimiento != null) { int idRequerimientoSel = requerimiento.Idrequerimiento; requerimiento.Totalbruto = (decimal)rTotalbruto.EditValue; requerimiento.Totalgravado = (decimal)rTotalgravado.EditValue; requerimiento.Totalinafecto = (decimal)rTotalinafecto.EditValue; requerimiento.Totalexonerado = (decimal)rtotalexonerado.EditValue; requerimiento.Totalimpuesto = (decimal)rTotalimpuesto.EditValue; requerimiento.Importetotal = (decimal)rImportetotal.EditValue; requerimiento.Porcentajepercepcion = (decimal)rPorcentajepercepcion.EditValue; requerimiento.Importetotalpercepcion = (decimal)rImportetotalpercepcion.EditValue; requerimiento.Totaldocumento = (decimal)rTotaldocumento.EditValue; requerimiento.Idestadoreq = (int)iIdestadoreq.EditValue; //IdEstadoreq: 3 (Aprobado) requerimiento.Fechaaprobacion = (int)idEstadoSel == 3 ? (DateTime?)DateTime.Now : null; requerimiento.Idempleadoaprueba = SessionApp.UsuarioSel.Idusuario; requerimiento.Observacionaprobacion = iObservacionReq.Text.Trim(); Service.UpdateRequerimiento(requerimiento); foreach (var item in VwRequerimientodetList) { ////Eliminar los desaprobado //if (!item.Itemseleccionado) //{ // Service.DeleteRequerimientodet(item.Idrequerimientodet); //} //Si se modifico la cantidad if (item.DataEntityState == DataEntityState.Modified && item.Itemseleccionado) { Requerimientodet itemRedDet = Service.GetRequerimientodet(item.Idrequerimientodet); itemRedDet.Cantidad = item.Cantidad; itemRedDet.Importetotal = item.Importetotal; itemRedDet.Aprobado = item.Aprobado; Service.UpdateRequerimientodet(itemRedDet); } } if ((int)idEstadoSel == 3 || (int)idEstadoSel == 5) //Cuando este aprobado o desaprobado { Tipocp tipocpReq = Service.GetTipocp(x => x.Idtipocp == requerimiento.Idtipocp); if (tipocpReq != null) { //Insertar informacion de aprobacion de documento Documentoaprobacion documentoaprobacionReq = new Documentoaprobacion { Idtipodocmov = tipocpReq.Idtipodocmov, Iddocumentomov = requerimiento.Idrequerimiento, Empleadoaprueba = SessionApp.EmpleadoSel.Idempleado, Fechaaprobacion = DateTime.Now, Aprobado = true, Comentario = iObservacionReq.Text.Trim() }; int iddocumentoaprobacion = Service.SaveDocumentoaprobacion(documentoaprobacionReq); if (iddocumentoaprobacion > 0) { } } } //Si se cambia a registrado o desaprobado eliminar registros de documentoaprobacion if ((int)idEstadoSel == 1 || (int)idEstadoSel == 4 && idRequerimientoSel > 0) { //3:REQUERIMIENTO Service.EliminarReferenciasDocumentoAprobacion(3, idRequerimientoSel); } CargarRequerimientos(); } } }
public int SaveRequerimientodet(Requerimientodet entity) { return(RequerimientodetDao.Save(entity)); }